Returns the allocated data size
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_data_obj), | intent(in) | :: | area |
data area |
size of data
FUNCTION dbcsr_data_get_size(area) RESULT(data_size)
!! Returns the allocated data size
TYPE(dbcsr_data_obj), INTENT(IN) :: area
!! data area
INTEGER :: data_size
!! size of data
data_size = 0
IF (ASSOCIATED(area%d)) THEN
SELECT CASE (area%d%data_type)
CASE (dbcsr_type_int_4)
IF (ASSOCIATED(area%d%i4)) &
data_size = SIZE(area%d%i4)
CASE (dbcsr_type_int_8)
IF (ASSOCIATED(area%d%i8)) &
data_size = SIZE(area%d%i8)
CASE (dbcsr_type_real_8)
IF (ASSOCIATED(area%d%r_dp)) &
data_size = SIZE(area%d%r_dp)
CASE (dbcsr_type_real_4)
IF (ASSOCIATED(area%d%r_sp)) &
data_size = SIZE(area%d%r_sp)
CASE (dbcsr_type_complex_8)
IF (ASSOCIATED(area%d%c_dp)) &
data_size = SIZE(area%d%c_dp)
CASE (dbcsr_type_complex_4)
IF (ASSOCIATED(area%d%c_sp)) &
data_size = SIZE(area%d%c_sp)
CASE (dbcsr_type_real_8_2d)
IF (ASSOCIATED(area%d%r2_dp)) &
data_size = SIZE(area%d%r2_dp)
CASE (dbcsr_type_real_4_2d)
IF (ASSOCIATED(area%d%r2_sp)) &
data_size = SIZE(area%d%r2_sp)
CASE (dbcsr_type_complex_8_2d)
IF (ASSOCIATED(area%d%c2_dp)) &
data_size = SIZE(area%d%c2_dp)
CASE (dbcsr_type_complex_4_2d)
IF (ASSOCIATED(area%d%c2_sp)) &
data_size = SIZE(area%d%c2_sp)
CASE default
DBCSR_ABORT("Incorrect data type")
END SELECT
ELSE
DBCSR_WARN("Uninitialized data area")
data_size = 0
END IF
END FUNCTION dbcsr_data_get_size