Sets the data area of a matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(inout) | :: | matrix |
matrix for which to set the data area |
||
type(dbcsr_data_obj), | intent(in) | :: | data_area |
data area to set |
||
type(dbcsr_data_obj), | intent(out), | optional | :: | previous_data_area |
previous data area |
SUBROUTINE dbcsr_switch_data_area(matrix, data_area, previous_data_area) !! Sets the data area of a matrix TYPE(dbcsr_type), INTENT(INOUT) :: matrix !! matrix for which to set the data area TYPE(dbcsr_data_obj), INTENT(IN) :: data_area !! data area to set TYPE(dbcsr_data_obj), INTENT(OUT), OPTIONAL :: previous_data_area !! previous data area CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_switch_data_area' INTEGER :: handle ! --------------------------------------------------------------------------- CALL timeset(routineN, handle) IF (PRESENT(previous_data_area)) THEN previous_data_area = matrix%data_area ELSE CALL dbcsr_data_release(matrix%data_area) END IF matrix%data_area = data_area CALL dbcsr_data_hold(matrix%data_area) CALL timestop(handle) END SUBROUTINE dbcsr_switch_data_area