tem_commbuf_long_fillindexed Subroutine

private subroutine tem_commbuf_long_fillindexed(me, pos, nvals)

fill the indexed mpi datatype, which describes how the data in the state vector relates to the entries in the buffer.

Arguments

Type IntentOptional Attributes Name
type(tem_longbuffer_type), intent(inout) :: me
integer, intent(in) :: pos(nvals)
integer, intent(in) :: nvals

Calls

proc~~tem_commbuf_long_fillindexed~~CallsGraph proc~tem_commbuf_long_fillindexed tem_commbuf_long_fillindexed mpi_type_commit mpi_type_commit proc~tem_commbuf_long_fillindexed->mpi_type_commit mpi_type_create_indexed_block mpi_type_create_indexed_block proc~tem_commbuf_long_fillindexed->mpi_type_create_indexed_block proc~check_mpi_error check_mpi_error proc~tem_commbuf_long_fillindexed->proc~check_mpi_error mpi_error_string mpi_error_string proc~check_mpi_error->mpi_error_string proc~tem_abort tem_abort proc~check_mpi_error->proc~tem_abort mpi_abort mpi_abort proc~tem_abort->mpi_abort

Source Code

  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