31 |
|
|
32 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
33 |
C === Routine arguments === |
C === Routine arguments === |
34 |
C thisTile :: receiveing tile Id. number |
C thisTile :: receiving tile Id. number |
35 |
C nN :: Neighbour entry that we are processing |
C nN :: Neighbour entry that we are processing |
36 |
C e2BufrRecSize :: Number of elements in each entry of e2Bufr1_RX |
C e2BufrRecSize :: Number of elements in each entry of e2Bufr1_RX |
37 |
C iBufr1 :: number of buffer-1 elements to transfert |
C iBufr1 :: number of buffer-1 elements to transfer |
38 |
C iBufr2 :: number of buffer-2 elements to transfert |
C iBufr2 :: number of buffer-2 elements to transfer |
39 |
C e2Bufr1_RX :: Data transport buffer array. This array is used in one of |
C e2Bufr1_RX :: Data transport buffer array. This array is used in one of |
40 |
C e2Bufr2_RX :: two ways. For PUT communication the entry in the buffer |
C e2Bufr2_RX :: two ways. For PUT communication the entry in the buffer |
41 |
C :: associated with the source for this receive (determined |
C :: associated with the source for this receive (determined |
80 |
C Setup MPI stuff here |
C Setup MPI stuff here |
81 |
theTag1 = (soT-1)*W2_maxNeighbours*2 + oNb-1 |
theTag1 = (soT-1)*W2_maxNeighbours*2 + oNb-1 |
82 |
theTag2 = (soT-1)*W2_maxNeighbours*2 + W2_maxNeighbours + oNb-1 |
theTag2 = (soT-1)*W2_maxNeighbours*2 + W2_maxNeighbours + oNb-1 |
83 |
tProc = exch2_tProc(thisTile)-1 |
tProc = W2_tileProc(thisTile)-1 |
84 |
sProc = exch2_tProc(soT)-1 |
sProc = W2_tileProc(soT)-1 |
85 |
theType = _MPI_TYPE_RX |
theType = _MPI_TYPE_RX |
86 |
CALL MPI_Recv( e2Bufr1_RX, iBufr1, theType, sProc, |
CALL MPI_Recv( e2Bufr1_RX, iBufr1, theType, sProc, |
87 |
& theTag1, MPI_COMM_MODEL, mpiStatus, mpiRc ) |
& theTag1, MPI_COMM_MODEL, mpiStatus, mpiRc ) |