Checks whether a data pointer exists
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_data_obj), | intent(in) | :: | area |
data area |
whether the data pointer exists
FUNCTION dbcsr_data_exists(area) RESULT(valid)
!! Checks whether a data pointer exists
TYPE(dbcsr_data_obj), INTENT(IN) :: area
!! data area
LOGICAL :: valid
!! whether the data pointer exists
CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_data_exists'
INTEGER :: error_handle
! ---------------------------------------------------------------------------
IF (careful_mod) THEN
CALL timeset(routineN, error_handle)
END IF
!
valid = dbcsr_data_valid(area)
IF (.NOT. valid) &
DBCSR_ABORT("Data area is invalid.")
SELECT CASE (area%d%data_type)
CASE (dbcsr_type_int_4)
valid = ASSOCIATED(area%d%i4)
CASE (dbcsr_type_int_8)
valid = ASSOCIATED(area%d%i8)
CASE (dbcsr_type_real_4)
valid = ASSOCIATED(area%d%r_sp)
CASE (dbcsr_type_real_8)
valid = ASSOCIATED(area%d%r_dp)
CASE (dbcsr_type_complex_4)
valid = ASSOCIATED(area%d%c_sp)
CASE (dbcsr_type_complex_8)
valid = ASSOCIATED(area%d%c_dp)
CASE (dbcsr_type_real_4_2d)
valid = ASSOCIATED(area%d%r2_sp)
CASE (dbcsr_type_real_8_2d)
valid = ASSOCIATED(area%d%r2_dp)
CASE (dbcsr_type_complex_4_2d)
valid = ASSOCIATED(area%d%c2_sp)
CASE (dbcsr_type_complex_8_2d)
valid = ASSOCIATED(area%d%c2_dp)
CASE default
DBCSR_ABORT("Invalid data type.")
END SELECT
IF (careful_mod) THEN
CALL timestop(error_handle)
END IF
END FUNCTION dbcsr_data_exists