20 SUBROUTINE mpl_testsome (KARRAY_OF_REQUESTS, KARRAY_OF_INDICES, &
21 & KARRAY_OF_INDICES1, KOUTCOUNT, KOUTCOUNT1, &
22 & KERROR, CDSTRING, LDWAIT)
23 INTEGER(KIND=JPIM),
INTENT (IN) :: KARRAY_OF_REQUESTS (:)
24 INTEGER(KIND=JPIM),
INTENT (OUT) :: KARRAY_OF_INDICES (:)
25 INTEGER(KIND=JPIM),
INTENT (OUT),
OPTIONAL :: KARRAY_OF_INDICES1 (:)
26 INTEGER(KIND=JPIM),
INTENT (OUT),
OPTIONAL :: KOUTCOUNT
27 INTEGER(KIND=JPIM),
INTENT (OUT),
OPTIONAL :: KOUTCOUNT1
28 INTEGER(KIND=JPIM),
INTENT (OUT),
OPTIONAL :: KERROR
29 CHARACTER*(*),
INTENT(IN),
OPTIONAL :: CDSTRING
30 LOGICAL,
INTENT(IN),
OPTIONAL :: LDWAIT
32 INTEGER(KIND=JPIM) :: IERROR
33 INTEGER(KIND=JPIM) :: IINCOUNT
34 INTEGER(KIND=JPIM) :: IOUTCOUNT
35 INTEGER(KIND=JPIM) :: IARRAY_OF_STATUSES (mpi_status_size,
size (karray_of_requests))
36 INTEGER(KIND=JPIM) :: II, IJ, IK
38 LOGICAL :: LLABORT=.true.
42 iincount =
SIZE (karray_of_requests)
43 karray_of_indices = -1
46 IF (
PRESENT (ldwait)) llwait = ldwait
49 CALL mpi_waitsome(iincount, karray_of_requests, ioutcount, &
50 karray_of_indices, iarray_of_statuses, ierror)
52 CALL mpi_testsome(iincount, karray_of_requests, ioutcount, &
53 karray_of_indices, iarray_of_statuses, ierror)
56 IF (
PRESENT (koutcount))
THEN 60 IF (
PRESENT (koutcount1))
THEN 61 koutcount1 = iincount - ioutcount
64 IF (
PRESENT (karray_of_indices1))
THEN 65 karray_of_indices1 = -1
69 IF (ii .EQ. karray_of_indices(ij))
THEN 72 karray_of_indices1(ik) = ii
78 IF (
PRESENT (kerror))
THEN 81 IF(ierror /= 0)
CALL mpl_message(ierror,
'MPL_TESTSOME',cdstring,ldabort=llabort)
subroutine, public mpl_message(KERROR, CDMESSAGE, CDSTRING, LDABORT)
subroutine, public mpl_testsome(KARRAY_OF_REQUESTS, KARRAY_OF_INDICES, KARRAY_OF_INDICES1, KOUTCOUNT, KOUTCOUNT1, KERROR, CDSTRING, LDWAIT)