60 #ifdef USE_8_BYTE_WORDS 62 mpi_buffer_detach => mpi_buffer_detach8, mpi_buffer_attach => mpi_buffer_attach8
68 INTEGER(KIND=JPIM),
INTENT(IN) :: KMP_TYPE
69 INTEGER(KIND=JPIM),
OPTIONAL,
INTENT(IN) :: KMBX_SIZE
70 INTEGER(KIND=JPIM),
OPTIONAL,
INTENT(IN) :: KPROCIDS(:)
71 INTEGER(KIND=JPIM),
OPTIONAL,
INTENT(OUT) :: KERROR
72 LOGICAL,
INTENT(IN),
OPTIONAL :: LDINFO
73 INTEGER(KIND=JPIM) :: IMBX_DEFAULT_SIZE = 1000000
74 INTEGER(KIND=JPIM) :: IBUFFMPI,IERROR,ILEN
75 LOGICAL :: LLABORT=.true., llinfo
78 & cdmessage=
'MPL_BUFFER_METHOD: MPL NOT INITIALISED ',ldabort=llabort)
85 IF(
PRESENT(ldinfo))
THEN 95 IF(ibuffmpi == 0) ibuffmpi=imbx_default_size
104 IF(
PRESENT(kerror))
THEN 107 IF( ierror /= 0 )
THEN 108 CALL mpl_message(ierror,
'MPL_BUFFER_METHOD ',
'MPI_BUFFER_ATTACH ERROR',ldabort=llabort)
113 IF(
PRESENT(kerror))
THEN 116 CALL mpl_message(kmp_type,
'MPL_BUFFER_METHOD',
'INVALID KMP_TYPE=',ldabort=llabort)
127 IF(
PRESENT(kprocids))
THEN 129 CALL mpl_message(cdmessage=
'MPL_BUFFER_METHOD: KPROCIDS NOT CORRECT',ldabort=llabort)
subroutine, public mpl_message(KERROR, CDMESSAGE, CDSTRING, LDABORT)
integer(kind=jpim), parameter jp_blocking_buffered
integer(kind=jpim) mpl_numproc
subroutine, public mpl_buffer_method(KMP_TYPE, KMBX_SIZE, KERROR, KPROCIDS, LDINFO)
integer(kind=jpim), parameter jp_blocking_standard
integer(kind=jpim), parameter jp_attached_buffer_bytes
integer(kind=jpim) mpl_rank
integer(kind=jpim) mpl_mbx_size
integer(kind=jpim) mpl_method
integer(kind=jpim), dimension(:), allocatable, target mpl_attached_buffer
integer(kind=jpim), dimension(:), allocatable mpl_ids
integer(kind=jpim) mpl_unit