56 |
C myTiles :: List of nt tiles that this process owns. |
C myTiles :: List of nt tiles that this process owns. |
57 |
C commSetting :: Mode of communication used to exchnage with this neighbor |
C commSetting :: Mode of communication used to exchnage with this neighbor |
58 |
C myThid :: Thread number of this instance of EXCH2_RECV_RX1 |
C myThid :: Thread number of this instance of EXCH2_RECV_RX1 |
59 |
C |
C |
60 |
INTEGER tILo, tIHi, tiStride |
INTEGER tILo, tIHi, tiStride |
61 |
INTEGER tJLo, tJHi, tjStride |
INTEGER tJLo, tJHi, tjStride |
62 |
INTEGER tKLo, tKHi, tkStride |
INTEGER tKLo, tKHi, tkStride |
63 |
INTEGER i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi |
INTEGER i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi |
64 |
INTEGER thisTile, nN, thisI |
INTEGER thisTile, nN, thisI |
65 |
INTEGER e2BufrRecSize |
INTEGER e2BufrRecSize |
66 |
INTEGER mnb, nt |
INTEGER mnb, nt |
67 |
_RX e2Bufr1_RX( e2BufrRecSize, mnb, nt, 2 ) |
_RX e2Bufr1_RX( e2BufrRecSize, mnb, nt, 2 ) |
68 |
_RX array(i1Lo:i1Hi,j1Lo:j1Hi,k1Lo:k1Hi) |
_RX array(i1Lo:i1Hi,j1Lo:j1Hi,k1Lo:k1Hi) |
88 |
C mb, nb :: Selects e2Bufr, msgHandle record to use |
C mb, nb :: Selects e2Bufr, msgHandle record to use |
89 |
C ir :: |
C ir :: |
90 |
INTEGER mb, nb, ir |
INTEGER mb, nb, ir |
91 |
C oN :: Opposing send record number |
C oN :: Opposing send record number |
92 |
INTEGER oN |
INTEGER oN |
93 |
C Loop counters |
C Loop counters |
94 |
c INTEGER I, nri, nrj, nrk |
c INTEGER I, nri, nrj, nrk |
109 |
tt=exch2_neighbourId(nN, thisTile ) |
tt=exch2_neighbourId(nN, thisTile ) |
110 |
oN=exch2_opposingSend(nN, thisTile ) |
oN=exch2_opposingSend(nN, thisTile ) |
111 |
|
|
112 |
C Handle receive end data transport according to communication mechanism between |
C Handle receive end data transport according to communication mechanism between |
113 |
C source and target tile |
C source and target tile |
114 |
IF ( commSetting .EQ. 'P' ) THEN |
IF ( commSetting .EQ. 'P' ) THEN |
115 |
C 1 Need to check and spin on data ready assertion for multithreaded mode, for now do nothing i.e. |
C 1 Need to check and spin on data ready assertion for multithreaded mode, for now do nothing i.e. |
134 |
theTag = (tt-1)*W2_maxNeighbours + oN |
theTag = (tt-1)*W2_maxNeighbours + oN |
135 |
tProc = exch2_tProc(thisTile)-1 |
tProc = exch2_tProc(thisTile)-1 |
136 |
sProc = exch2_tProc(tt)-1 |
sProc = exch2_tProc(tt)-1 |
137 |
theType = MPI_REAL8 |
theType = _MPI_TYPE_RX |
138 |
nri = (tIhi-tIlo+1)/tiStride |
nri = (tIhi-tIlo+1)/tiStride |
139 |
nrj = (tJhi-tJlo+1)/tjStride |
nrj = (tJhi-tJlo+1)/tjStride |
140 |
nrk = (tKhi-tKlo+1)/tkStride |
nrk = (tKhi-tKlo+1)/tkStride |
179 |
ENDDO |
ENDDO |
180 |
ENDDO |
ENDDO |
181 |
ENDDO |
ENDDO |
182 |
|
|
183 |
RETURN |
RETURN |
184 |
END |
END |
185 |
|
|