Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mp_comm_type), | intent(in) | :: | comm1 | |||
type(mp_comm_type), | intent(in) | :: | comm2 | |||
integer, | intent(out) | :: | res |
SUBROUTINE mp_comm_compare(comm1, comm2, res) TYPE(mp_comm_type), INTENT(IN) :: comm1, comm2 INTEGER, INTENT(OUT) :: res CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_comm_compare' INTEGER :: handle, ierr, iout ierr = 0 CALL timeset(routineN, handle) iout = 0 res = 0 #if defined(__parallel) CALL mpi_comm_compare(comm1%handle, comm2%handle, iout, ierr) IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_compare @ "//routineN) SELECT CASE (iout) CASE (MPI_IDENT) res = 0 CASE (MPI_CONGRUENT) res = 1 CASE (MPI_SIMILAR) res = 2 CASE (MPI_UNEQUAL) res = 3 CASE default res = 4 END SELECT #else MARK_USED(comm1) MARK_USED(comm2) #endif CALL timestop(handle) END SUBROUTINE mp_comm_compare