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 ) |