| 93 |
IF ( usingMPI ) THEN |
IF ( usingMPI ) THEN |
| 94 |
#endif |
#endif |
| 95 |
C Set default behavior to have MPI comms done by a single thread. |
C Set default behavior to have MPI comms done by a single thread. |
| 96 |
C Most MPI implementations don't support concurrent comms from |
C Most MPI implementations do not support concurrent comms from |
| 97 |
C several threads. |
C several threads. |
| 98 |
IF ( nThreads .GT. 1 ) THEN |
IF ( nThreads .GT. 1 ) THEN |
| 99 |
_BARRIER |
_BARRIER |
| 159 |
& theProc, theTag, MPI_COMM_MODEL, |
& theProc, theTag, MPI_COMM_MODEL, |
| 160 |
& mpiStatus, mpiRc ) |
& mpiStatus, mpiRc ) |
| 161 |
# else |
# else |
| 162 |
pReqI=exchNReqsX(1,bi,bj)+1 |
pReqI=exchNReqsX(1,bi,bj)+1 |
| 163 |
CALL ampi_recv_RX( |
CALL ampi_recv_RX( |
| 164 |
& westRecvBuf_RX(1,eBl,bi,bj) , |
& westRecvBuf_RX(1,eBl,bi,bj) , |
| 165 |
& theSize , |
& theSize , |
| 191 |
& theProc, theTag, MPI_COMM_MODEL, |
& theProc, theTag, MPI_COMM_MODEL, |
| 192 |
& mpiStatus, mpiRc ) |
& mpiStatus, mpiRc ) |
| 193 |
# else |
# else |
| 194 |
pReqI=exchNReqsX(1,bi,bj)+1 |
pReqI=exchNReqsX(1,bi,bj)+1 |
| 195 |
CALL ampi_recv_RX( |
CALL ampi_recv_RX( |
| 196 |
& eastRecvBuf_RX(1,eBl,bi,bj) , |
& eastRecvBuf_RX(1,eBl,bi,bj) , |
| 197 |
& theSize , |
& theSize , |
| 236 |
IF ( westRecvAck(eBl,bi,bj) .EQ. 0 ) GOTO 10 |
IF ( westRecvAck(eBl,bi,bj) .EQ. 0 ) GOTO 10 |
| 237 |
IF ( eastRecvAck(eBl,bi,bj) .EQ. 0 ) GOTO 10 |
IF ( eastRecvAck(eBl,bi,bj) .EQ. 0 ) GOTO 10 |
| 238 |
# else |
# else |
| 239 |
do while ((westRecvAck(eBl,bi,bj) .EQ. 0. |
do while ((westRecvAck(eBl,bi,bj) .EQ. 0. |
| 240 |
& .or. |
& .or. |
| 241 |
& eastRecvAck(eBl,bi,bj) .EQ. 0. )) |
& eastRecvAck(eBl,bi,bj) .EQ. 0. )) |
| 242 |
CALL FOOL_THE_COMPILER( spinCount ) |
CALL FOOL_THE_COMPILER( spinCount ) |