fill the indexed mpi datatype, which describes how the data in the state vector relates to the entries in the buffer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_longbuffer_type), | intent(inout) | :: | me | |||
integer, | intent(in) | :: | pos(nvals) | |||
integer, | intent(in) | :: | nvals |
subroutine tem_commbuf_long_fillindexed(me, pos, nvals) ! -------------------------------------------------------------------- ! type(tem_longbuffer_type), intent(inout) :: me integer, intent(in) :: nvals integer, intent(in) :: pos(nvals) ! -------------------------------------------------------------------- ! integer :: ierror ! -------------------------------------------------------------------- ! me%nvals = nvals ! call mpi_type_create_indexed_block(count, blocklength, & ! & array_of_displacements, & ! & oldtype, newtype, ierror) call mpi_type_create_indexed_block( nvals, 1, pos - 1, & & long_k_mpi, me%memindexed, ierror ) call check_mpi_error(ierror,'create indexed block in tem_commbuf_long_fillindexed') call mpi_type_commit(me%memindexed, ierror) call check_mpi_error(ierror,'commit memindexed in tem_commbuf_long_fillindexed') end subroutine tem_commbuf_long_fillindexed