Conjugate a DBCSR matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(inout) | :: | matrix |
DBCSR matrix |
SUBROUTINE dbcsr_conjg(matrix) !! Conjugate a DBCSR matrix TYPE(dbcsr_type), INTENT(INOUT) :: matrix !! DBCSR matrix CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_conjg' INTEGER :: blk, col, data_type, handle, row LOGICAL :: tr TYPE(dbcsr_data_obj) :: data_any TYPE(dbcsr_iterator) :: iter ! --------------------------------------------------------------------------- ! CALL timeset(routineN, handle) data_type = dbcsr_get_data_type(matrix) CALL dbcsr_data_init(data_any) CALL dbcsr_data_new(data_any, data_type) CALL dbcsr_iterator_start(iter, matrix) DO WHILE (dbcsr_iterator_blocks_left(iter)) CALL dbcsr_iterator_next_block(iter, row, col, data_any, tr, blk) SELECT CASE (data_type) CASE (dbcsr_type_complex_4) data_any%d%c_sp = CONJG(data_any%d%c_sp) CASE (dbcsr_type_complex_8) data_any%d%c_dp = CONJG(data_any%d%c_dp) CASE DEFAULT ! needed for g95 END SELECT END DO CALL dbcsr_iterator_stop(iter) CALL dbcsr_data_clear_pointer(data_any) CALL dbcsr_data_release(data_any) CALL timestop(handle) END SUBROUTINE dbcsr_conjg