Returns the size of a data type in bytes
MPI mapping mpi_type_size
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mp_type_descriptor_type), | intent(in) | :: | type_descriptor |
data type |
||
integer, | intent(out) | :: | type_size |
size of the data type |
SUBROUTINE mp_type_size(type_descriptor, type_size)
!! Returns the size of a data type in bytes
!!
!! MPI mapping
!! mpi_type_size
TYPE(mp_type_descriptor_type), INTENT(IN) :: type_descriptor
!! data type
INTEGER, INTENT(OUT) :: type_size
!! size of the data type
#if defined(__parallel)
CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_size'
INTEGER :: ierr
ierr = 0
CALL MPI_TYPE_SIZE(type_descriptor%type_handle, type_size, ierr)
IF (ierr .NE. 0) &
DBCSR_ABORT("mpi_type_size @ "//routineN)
#else
SELECT CASE (type_descriptor%type_handle)
CASE (1)
type_size = real_4_size
CASE (3)
type_size = real_8_size
CASE (5)
type_size = 2*real_4_size
CASE (7)
type_size = 2*real_8_size
END SELECT
#endif
END SUBROUTINE mp_type_size