synchronizes with a barrier a given group of mpi tasks
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | group |
mpi communicator |
||
integer, | intent(out) | :: | request |
SUBROUTINE mp_isync(group, request)
!! synchronizes with a barrier a given group of mpi tasks
INTEGER, INTENT(IN) :: group
!! mpi communicator
INTEGER, INTENT(OUT) :: request
CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isync'
INTEGER :: handle, ierr
ierr = 0
CALL timeset(routineN, handle)
#if defined(__parallel)
CALL mpi_ibarrier(group, request, ierr)
IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibarrier @ "//routineN)
#else
MARK_USED(group)
request = mp_request_null
#endif
CALL timestop(handle)
END SUBROUTINE mp_isync