/[MITgcm]/MITgcm/pkg/exch2/exch2_send_rx2.template
ViewVC logotype

Diff of /MITgcm/pkg/exch2/exch2_send_rx2.template

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5 by jmc, Sun Jul 24 01:21:36 2005 UTC revision 1.6 by jmc, Tue Jul 29 20:25:23 2008 UTC
# Line 9  C $Name$ Line 9  C $Name$
9       I       tJlo, tJhi, tjStride,       I       tJlo, tJhi, tjStride,
10       I       tKlo, tKhi, tkStride,       I       tKlo, tKhi, tkStride,
11       I       thisTile, nN,       I       thisTile, nN,
12       I       e2Bufr1_RX, e2BufrRecSize,       O       e2Bufr1_RX, e2BufrRecSize,
13       I       e2Bufr2_RX,       O       e2Bufr2_RX,
14       I       array1,       I       array1,
15       I       i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi,       I       i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi,
16       I       array2,       I       array2,
# Line 36  C     === Routine arguments === Line 36  C     === Routine arguments ===
36        INTEGER i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi        INTEGER i1Lo, i1Hi, j1Lo, j1Hi, k1Lo, k1Hi
37        INTEGER i2Lo, i2Hi, j2Lo, j2Hi, k2Lo, k2Hi        INTEGER i2Lo, i2Hi, j2Lo, j2Hi, k2Lo, k2Hi
38        INTEGER thisTile, nN        INTEGER thisTile, nN
39        INTEGER e2BufrRecSize        INTEGER e2BufrRecSize
40        _RX     e2Bufr1_RX( e2BufrRecSize )        _RX     e2Bufr1_RX( e2BufrRecSize )
41        _RX     e2Bufr2_RX( e2BufrRecSize )        _RX     e2Bufr2_RX( e2BufrRecSize )
42        _RX     array1(i1Lo:i1Hi,j1Lo:j1Hi,k1Lo:k1Hi)        _RX     array1(i1Lo:i1Hi,j1Lo:j1Hi,k1Lo:k1Hi)
# Line 64  C Line 64  C
64        INTEGER  tt        INTEGER  tt
65        INTEGER itb, jtb        INTEGER itb, jtb
66        INTEGER isb, jsb        INTEGER isb, jsb
67        INTEGER pi(2), pj(2), oi, oj, oi_c, oi_f, oj_c, oj_f        INTEGER pi(2), pj(2), oi, oj
68        _RX     sa1, sa2, val1, val2        _RX     sa1, sa2, val1, val2
69        INTEGER iBufr1, iBufr2        INTEGER iBufr1, iBufr2
70        INTEGER itlreduce        INTEGER itlreduce
# Line 78  C     MPI setup Line 78  C     MPI setup
78        CHARACTER*(MAX_LEN_MBUF) messageBuffer        CHARACTER*(MAX_LEN_MBUF) messageBuffer
79    
80        IF     ( commSetting .EQ. 'P' ) THEN        IF     ( commSetting .EQ. 'P' ) THEN
81  C      Need to check that buffer synchronisation token is decremented  C      Need to check that buffer synchronisation token is decremented
82  C      before filling buffer. This is needed for parallel processing  C      before filling buffer. This is needed for parallel processing
83  C      shared memory modes only.  C      shared memory modes only.
84        ENDIF        ENDIF
85    
86        tt=exch2_neighbourId(nN, thisTile )        tt=exch2_neighbourId(nN, thisTile )
87        itb=exch2_tbasex(tt)        itb=exch2_tBasex(tt)
88        jtb=exch2_tbasey(tt)        jtb=exch2_tBasey(tt)
89        isb=exch2_tbasex(thisTile)        isb=exch2_tBasex(thisTile)
90        jsb=exch2_tbasey(thisTile)        jsb=exch2_tBasey(thisTile)
91        pi(1)=exch2_pi(1,nN,thisTile)        pi(1)=exch2_pij(1,nN,thisTile)
92        pi(2)=exch2_pi(2,nN,thisTile)        pi(2)=exch2_pij(2,nN,thisTile)
93        pj(1)=exch2_pj(1,nN,thisTile)        pj(1)=exch2_pij(3,nN,thisTile)
94        pj(2)=exch2_pj(2,nN,thisTile)        pj(2)=exch2_pij(4,nN,thisTile)
95    
96  C     Extract into bufr1 (target i-index array)  C     Extract into bufr1 (target i-index array)
97  C     if pi(1) is  1 then +i in target <=> +i in source so bufr1 should get +array1  C     if pi(1) is  1 then +i in target <=> +i in source so bufr1 should get +array1
# Line 104  C     if pj(1) is -1 then +i in target < Line 104  C     if pj(1) is -1 then +i in target <
104         sa1 = ABS(sa1)         sa1 = ABS(sa1)
105         sa2 = ABS(sa2)         sa2 = ABS(sa2)
106        ENDIF        ENDIF
107        oi_c=exch2_oi(nN,thisTile)        oi = exch2_oi(nN,thisTile)
108        oi_f=exch2_oi_f(nN,thisTile)        oj = exch2_oj(nN,thisTile)
       oi=oi_c  
       oj_c=exch2_oj(nN,thisTile)  
       oj_f=exch2_oj_f(nN,thisTile)  
       oj=oj_c  
109  C     if pi(1) is 1 then +i in source aligns with +i in target  C     if pi(1) is 1 then +i in source aligns with +i in target
110  C     if pj(1) is 1 then +i in source aligns with +j in target  C     if pj(1) is 1 then +i in source aligns with +j in target
111        itlreduce=0        itlreduce=0
112        jtlreduce=0        jtlreduce=0
113        IF ( pi(1) .EQ. -1 ) THEN        IF ( pi(1) .EQ. -1 ) THEN
114         oi=oi_f         oi = exch2_oi(nN,thisTile)+1
115         itlreduce=1         itlreduce=1
116        ENDIF        ENDIF
117        IF ( pj(1) .EQ. -1 ) THEN        IF ( pj(1) .EQ. -1 ) THEN
118         oj=oj_f         oj = exch2_oj(nN,thisTile)+1
119         itlreduce=1         itlreduce=1
120        ENDIF        ENDIF
121        iBufr1=0        iBufr1=0
122  #ifdef W2_E2_DEBUG_ON  #ifdef W2_E2_DEBUG_ON
123        WRITE(messageBuffer,'(A,I4,A,I4)') 'EXCH2_SEND_RX2 sourceTile= ',        WRITE(messageBuffer,'(A,I4,A,I4)') 'EXCH2_SEND_RX2 sourceTile= ',
124       &                                   thisTile,       &                                   thisTile,
125       &                                   ' targetTile= ',tt       &                                   ' targetTile= ',tt
126        CALL PRINT_MESSAGE(messageBuffer,        CALL PRINT_MESSAGE(messageBuffer,
# Line 147  C       DO itl=1,32,31 Line 143  C       DO itl=1,32,31
143       &       +sa2*array2(isl,jsl,ktl)       &       +sa2*array2(isl,jsl,ktl)
144           e2Bufr1_RX(iBufr1)=val1           e2Bufr1_RX(iBufr1)=val1
145  #ifdef W2_E2_DEBUG_ON  #ifdef W2_E2_DEBUG_ON
146           WRITE(messageBuffer,'(A,2I4)')           WRITE(messageBuffer,'(A,2I4)')
147       &           'EXCH2_SEND_RX2 target  u(itl, jtl) = ', itl, jtl       &           'EXCH2_SEND_RX2 target  u(itl, jtl) = ', itl, jtl
148           CALL PRINT_MESSAGE(messageBuffer,           CALL PRINT_MESSAGE(messageBuffer,
149       I         standardMessageUnit,SQUEEZE_RIGHT,       I         standardMessageUnit,SQUEEZE_RIGHT,
150       I         myThid)       I         myThid)
151           IF (     pi(1) .EQ. 1 ) THEN           IF (     pi(1) .EQ. 1 ) THEN
152  C         i index aligns  C         i index aligns
153            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
154       &           '               source +u(isl, jsl) = ', isl, jsl       &           '               source +u(isl, jsl) = ', isl, jsl
155           ELSEIF ( pi(1) .EQ. -1 ) THEN           ELSEIF ( pi(1) .EQ. -1 ) THEN
156  C         reversed i index aligns  C         reversed i index aligns
157            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
158       &            '               source -u(isl, jsl) = ', isl, jsl       &            '               source -u(isl, jsl) = ', isl, jsl
159           ELSEIF ( pj(1) .EQ.  1 ) THEN           ELSEIF ( pj(1) .EQ.  1 ) THEN
160            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
161       &            '               source +v(isl, jsl) = ', isl, jsl       &            '               source +v(isl, jsl) = ', isl, jsl
162           ELSEIF ( pj(1) .EQ. -1 ) THEN           ELSEIF ( pj(1) .EQ. -1 ) THEN
163            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
164       &            '               source -v(isl, jsl) = ', isl, jsl       &            '               source -v(isl, jsl) = ', isl, jsl
165           ENDIF           ENDIF
166           CALL PRINT_MESSAGE(messageBuffer,           CALL PRINT_MESSAGE(messageBuffer,
167       I         standardMessageUnit,SQUEEZE_RIGHT,       I         standardMessageUnit,SQUEEZE_RIGHT,
168       I         myThid)       I         myThid)
169           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN
170            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
171       &           '               *** isl is out of bounds '       &           '               *** isl is out of bounds '
172            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
173       I     standardMessageUnit,SQUEEZE_RIGHT,       I     standardMessageUnit,SQUEEZE_RIGHT,
174       I     myThid)       I     myThid)
175           ENDIF           ENDIF
176           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN
177            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
178       &           '               *** jsl is out of bounds '       &           '               *** jsl is out of bounds '
179            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
180       I     standardMessageUnit,SQUEEZE_RIGHT,       I     standardMessageUnit,SQUEEZE_RIGHT,
# Line 193  C         Ran off end of buffer. This sh Line 189  C         Ran off end of buffer. This sh
189           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN
190  C         Forward mode send getting from points outside of the  C         Forward mode send getting from points outside of the
191  C         tiles exclusive domain bounds in X. This should not happen  C         tiles exclusive domain bounds in X. This should not happen
192            WRITE(messageBuffer,'(A,I4,I4)')            WRITE(messageBuffer,'(A,I4,I4)')
193       &     'EXCH2_SEND_RX2 tIlo, tIhi =', tIlo, tIhi       &     'EXCH2_SEND_RX2 tIlo, tIhi =', tIlo, tIhi
194            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
195       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
196       I     myThid)       I     myThid)
197            WRITE(messageBuffer,'(A,3I4)')            WRITE(messageBuffer,'(A,3I4)')
198       &     'EXCH2_SEND_RX2 itl, jtl, isl =', itl, jtl, isl       &     'EXCH2_SEND_RX2 itl, jtl, isl =', itl, jtl, isl
199            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
200       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
# Line 208  C         tiles exclusive domain bounds Line 204  C         tiles exclusive domain bounds
204           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN
205  C         Forward mode send getting from points outside of the  C         Forward mode send getting from points outside of the
206  C         tiles exclusive domain bounds in Y. This should not happen  C         tiles exclusive domain bounds in Y. This should not happen
207            WRITE(messageBuffer,'(A,I4,I4)')            WRITE(messageBuffer,'(A,I4,I4)')
208       &     'EXCH2_SEND_RX2 tJlo, tJhi =', tJlo, tJhi       &     'EXCH2_SEND_RX2 tJlo, tJhi =', tJlo, tJhi
209            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
210       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
211       I     myThid)       I     myThid)
212            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
213       &     'EXCH2_SEND_RX2 itl, jtl =', itl, jtl       &     'EXCH2_SEND_RX2 itl, jtl =', itl, jtl
214            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
215       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
216       I     myThid)       I     myThid)
217            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
218       &     'EXCH2_SEND_RX2 isl, jsl =', isl, jsl           &     'EXCH2_SEND_RX2 isl, jsl =', isl, jsl
219            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
220       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
221       I     myThid)       I     myThid)
# Line 242  C     if pj(2) is -1 then +j in target < Line 238  C     if pj(2) is -1 then +j in target <
238         sa1 = ABS(sa1)         sa1 = ABS(sa1)
239         sa2 = ABS(sa2)         sa2 = ABS(sa2)
240        ENDIF        ENDIF
241        oi_c=exch2_oi(nN,thisTile)        oi = exch2_oi(nN,thisTile)
242        oi_f=exch2_oi_f(nN,thisTile)        oj = exch2_oj(nN,thisTile)
       oi=oi_c  
       oj_c=exch2_oj(nN,thisTile)  
       oj_f=exch2_oj_f(nN,thisTile)  
       oj=oj_c  
243  C     if pi(2) is 1 then +i in source aligns with +j in target  C     if pi(2) is 1 then +i in source aligns with +j in target
244  C     if pj(2) is 1 then +j in source aligns with +j in target  C     if pj(2) is 1 then +j in source aligns with +j in target
245        itlreduce=0        itlreduce=0
246        jtlreduce=0        jtlreduce=0
247        IF ( pi(2) .EQ. -1 ) THEN        IF ( pi(2) .EQ. -1 ) THEN
248         jtlreduce=1         jtlreduce=1
249         oi=oi_f         oi = exch2_oi(nN,thisTile)+1
250        ENDIF        ENDIF
251        IF ( pj(2) .EQ. -1 ) THEN        IF ( pj(2) .EQ. -1 ) THEN
252         jtlreduce=1         jtlreduce=1
253         oj=oj_f         oj = exch2_oj(nN,thisTile)+1
254        ENDIF        ENDIF
255        iBufr2=0        iBufr2=0
256  #ifdef W2_E2_DEBUG_ON  #ifdef W2_E2_DEBUG_ON
257        WRITE(messageBuffer,'(A,I4,A,I4)') 'EXCH2_SEND_RX2 sourceTile= ',        WRITE(messageBuffer,'(A,I4,A,I4)') 'EXCH2_SEND_RX2 sourceTile= ',
258       &                                   thisTile,       &                                   thisTile,
259       &                                   ' targetTile= ',tt       &                                   ' targetTile= ',tt
260        CALL PRINT_MESSAGE(messageBuffer,        CALL PRINT_MESSAGE(messageBuffer,
# Line 285  C       DO itl=1,32,31 Line 277  C       DO itl=1,32,31
277       &       +sa2*array2(isl,jsl,ktl)       &       +sa2*array2(isl,jsl,ktl)
278           e2Bufr2_RX(iBufr2)=val2           e2Bufr2_RX(iBufr2)=val2
279  #ifdef W2_E2_DEBUG_ON  #ifdef W2_E2_DEBUG_ON
280           WRITE(messageBuffer,'(A,2I4)')           WRITE(messageBuffer,'(A,2I4)')
281       &            'EXCH2_SEND_RX2 target  v(itl, jtl) = ', itl, jtl       &            'EXCH2_SEND_RX2 target  v(itl, jtl) = ', itl, jtl
282           CALL PRINT_MESSAGE(messageBuffer,           CALL PRINT_MESSAGE(messageBuffer,
283       I         standardMessageUnit,SQUEEZE_RIGHT,       I         standardMessageUnit,SQUEEZE_RIGHT,
284       I         myThid)       I         myThid)
285           IF (     pi(2) .EQ. 1 ) THEN           IF (     pi(2) .EQ. 1 ) THEN
286  C         i index aligns  C         i index aligns
287            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
288       &          '               source +u(isl, jsl) = ', isl, jsl       &          '               source +u(isl, jsl) = ', isl, jsl
289           ELSEIF ( pi(2) .EQ. -1 ) THEN           ELSEIF ( pi(2) .EQ. -1 ) THEN
290  C         reversed i index aligns  C         reversed i index aligns
291            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
292       &          '               source -u(isl, jsl) = ', isl, jsl       &          '               source -u(isl, jsl) = ', isl, jsl
293           ELSEIF ( pj(2) .EQ.  1 ) THEN           ELSEIF ( pj(2) .EQ.  1 ) THEN
294            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
295       &          '               source +v(isl, jsl) = ', isl, jsl       &          '               source +v(isl, jsl) = ', isl, jsl
296           ELSEIF ( pj(2) .EQ. -1 ) THEN           ELSEIF ( pj(2) .EQ. -1 ) THEN
297            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
298       &          '               source -v(isl, jsl) = ', isl, jsl       &          '               source -v(isl, jsl) = ', isl, jsl
299           ENDIF           ENDIF
300           CALL PRINT_MESSAGE(messageBuffer,           CALL PRINT_MESSAGE(messageBuffer,
301       I         standardMessageUnit,SQUEEZE_RIGHT,       I         standardMessageUnit,SQUEEZE_RIGHT,
302       I         myThid)       I         myThid)
303           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN
304            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
305       &          '               *** isl is out of bounds '       &          '               *** isl is out of bounds '
306            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
307       I     standardMessageUnit,SQUEEZE_RIGHT,       I     standardMessageUnit,SQUEEZE_RIGHT,
308       I     myThid)       I     myThid)
309           ENDIF           ENDIF
310           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN
311            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
312       &          '               *** jsl is out of bounds '       &          '               *** jsl is out of bounds '
313            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
314       I     standardMessageUnit,SQUEEZE_RIGHT,       I     standardMessageUnit,SQUEEZE_RIGHT,
315       I     myThid)       I     myThid)
# Line 332  C         Ran off end of buffer. This sh Line 324  C         Ran off end of buffer. This sh
324           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN           IF ( isl .LT. i1Lo .OR. isl .GT. i1Hi ) THEN
325  C         Forward mode send getting from points outside of the  C         Forward mode send getting from points outside of the
326  C         tiles exclusive domain bounds in X. This should not happen  C         tiles exclusive domain bounds in X. This should not happen
327            WRITE(messageBuffer,'(A,I4,I4)')            WRITE(messageBuffer,'(A,I4,I4)')
328       &     'EXCH2_SEND_RX2 tIlo, tIhi =', tIlo, tIhi       &     'EXCH2_SEND_RX2 tIlo, tIhi =', tIlo, tIhi
329            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
330       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
331       I     myThid)       I     myThid)
332            WRITE(messageBuffer,'(A,3I4)')            WRITE(messageBuffer,'(A,3I4)')
333       &     'EXCH2_SEND_RX2 itl, jtl, isl =', itl, jtl, isl       &     'EXCH2_SEND_RX2 itl, jtl, isl =', itl, jtl, isl
334            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
335       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
# Line 347  C         tiles exclusive domain bounds Line 339  C         tiles exclusive domain bounds
339           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN           IF ( jsl .LT. j1Lo .OR. jsl .GT. j1Hi ) THEN
340  C         Forward mode send getting from points outside of the  C         Forward mode send getting from points outside of the
341  C         tiles exclusive domain bounds in Y. This should not happen  C         tiles exclusive domain bounds in Y. This should not happen
342            WRITE(messageBuffer,'(A,I4,I4)')            WRITE(messageBuffer,'(A,I4,I4)')
343       &     'EXCH2_SEND_RX2 tJlo, tJhi =', tJlo, tJhi       &     'EXCH2_SEND_RX2 tJlo, tJhi =', tJlo, tJhi
344            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
345       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
346       I     myThid)       I     myThid)
347            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
348       &     'EXCH2_SEND_RX2 itl, jtl =', itl, jtl       &     'EXCH2_SEND_RX2 itl, jtl =', itl, jtl
349            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
350       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
351       I     myThid)       I     myThid)
352            WRITE(messageBuffer,'(A,2I4)')            WRITE(messageBuffer,'(A,2I4)')
353       &     'EXCH2_SEND_RX2 isl, jsl =', isl, jsl           &     'EXCH2_SEND_RX2 isl, jsl =', isl, jsl
354            CALL PRINT_MESSAGE(messageBuffer,            CALL PRINT_MESSAGE(messageBuffer,
355       I     standardMessageUnit,SQUEEZE_BOTH,       I     standardMessageUnit,SQUEEZE_BOTH,
356       I     myThid)       I     myThid)
# Line 372  C         tiles exclusive domain bounds Line 364  C         tiles exclusive domain bounds
364    
365  C     Do data transport depending on communication mechanism between source and target tile  C     Do data transport depending on communication mechanism between source and target tile
366        IF     ( commSetting .EQ. 'P' ) THEN        IF     ( commSetting .EQ. 'P' ) THEN
367  C      Need to set data ready assertion (increment buffer  C      Need to set data ready assertion (increment buffer
368  C      synchronisation token) for multithreaded mode, for now do  C      synchronisation token) for multithreaded mode, for now do
369  C      nothing i.e. assume only one thread per process.  C      nothing i.e. assume only one thread per process.
370        ELSEIF ( commSetting .EQ. 'M' ) THEN        ELSEIF ( commSetting .EQ. 'M' ) THEN
371  #ifdef ALLOW_USE_MPI  #ifdef ALLOW_USE_MPI
# Line 418  C      Setup MPI stuff here Line 410  C      Setup MPI stuff here
410       I      myThid)       I      myThid)
411  #endif /* W2_E2_DEBUG_ON */  #endif /* W2_E2_DEBUG_ON */
412         CALL MPI_Isend( e2Bufr1_RX, iBufr1, theType,         CALL MPI_Isend( e2Bufr1_RX, iBufr1, theType,
413       I                 tProc, theTag1, MPI_COMM_MODEL,       I                 tProc, theTag1, MPI_COMM_MODEL,
414       O                 theHandle1, mpiRc )       O                 theHandle1, mpiRc )
415         CALL MPI_Isend( e2Bufr2_RX, iBufr2, theType,         CALL MPI_Isend( e2Bufr2_RX, iBufr2, theType,
416       I                 tProc, theTag2, MPI_COMM_MODEL,       I                 tProc, theTag2, MPI_COMM_MODEL,
417       O                 theHandle2, mpiRc )       O                 theHandle2, mpiRc )
418  C      Store MPI_Wait token in messageHandle.  C      Store MPI_Wait token in messageHandle.
419         e2_msgHandle1(1) = theHandle1         e2_msgHandle1(1) = theHandle1
# Line 430  C      Store MPI_Wait token in messageHa Line 422  C      Store MPI_Wait token in messageHa
422        ELSE        ELSE
423         STOP 'EXCH2_SEND_RX2:: commSetting VALUE IS INVALID'         STOP 'EXCH2_SEND_RX2:: commSetting VALUE IS INVALID'
424        ENDIF        ENDIF
425    
426        RETURN        RETURN
427        END        END
428    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22