Create block buffer for MPI communication.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(block_buffer_type), | intent(out) | :: | buffer |
block buffer |
||
integer, | intent(in) | :: | nblock |
number of blocks total number of block entries number of dimensions |
||
integer, | intent(in) | :: | ndata |
number of blocks total number of block entries number of dimensions |
||
integer, | intent(in) | :: | data_type |
number of blocks total number of block entries number of dimensions |
||
integer, | intent(in) | :: | ndim |
number of blocks total number of block entries number of dimensions |
SUBROUTINE block_buffer_create(buffer, nblock, ndata, data_type, ndim) !! Create block buffer for MPI communication. TYPE(block_buffer_type), INTENT(OUT) :: buffer !! block buffer INTEGER, INTENT(IN) :: nblock, ndata, data_type, ndim !! number of blocks !! total number of block entries !! number of dimensions buffer%nblock = nblock buffer%data_type = data_type buffer%endpos = 0 buffer%ndim = ndim SELECT CASE (data_type) # 201 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_reshape.F" CASE (dbcsr_type_real_8) ALLOCATE (buffer%msg_r_dp (ndata)) # 201 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_reshape.F" CASE (dbcsr_type_real_4) ALLOCATE (buffer%msg_r_sp (ndata)) # 201 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_reshape.F" CASE (dbcsr_type_complex_8) ALLOCATE (buffer%msg_c_dp (ndata)) # 201 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_reshape.F" CASE (dbcsr_type_complex_4) ALLOCATE (buffer%msg_c_sp (ndata)) # 204 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_reshape.F" END SELECT ALLOCATE (buffer%indx(nblock, ndim + 1)) END SUBROUTINE block_buffer_create