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

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

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

revision 1.2 by edhill, Mon Apr 5 15:27:06 2004 UTC revision 1.3 by jmc, Sun Jul 24 01:35:06 2005 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
5    #include "W2_OPTIONS.h"
6    
7  CBOP  CBOP
8    
9  C     !ROUTINE: EXCH_XYZ_RX  C     !ROUTINE: EXCH_XYZ_RX
10    
11  C     !INTERFACE:  C     !INTERFACE:
12        SUBROUTINE EXCH2_XYZ_RX(        SUBROUTINE EXCH2_XYZ_RX(
13       U                       phi,       U                       phi,
14       I                       myThid )       I                       myThid )
15        IMPLICIT NONE        IMPLICIT NONE
16    
17  C     !DESCRIPTION:  C     !DESCRIPTION:
18  C     *==========================================================*  C     *==========================================================*
19  C     | SUBROUTINE EXCH_XYZ_RX                                      C     | SUBROUTINE EXCH_XYZ_RX
20  C     | o Handle exchanges for _RX, three-dim scalar arrays.    C     | o Handle exchanges for _RX, three-dim scalar arrays.
21  C     *==========================================================*  C     *==========================================================*
22  C     | Invoke appropriate exchange routine depending on type  C     | Invoke appropriate exchange routine depending on type
23  C     | of grid (cube or globally indexed) to be operated on.  C     | of grid (cube or globally indexed) to be operated on.
# Line 58  C                However, the slow, simp Line 60  C                However, the slow, simp
60  C                that is calling it here is meant to ensure  C                that is calling it here is meant to ensure
61  C                that threads are synchronised before exchanges  C                that threads are synchronised before exchanges
62  C                begine.  C                begine.
63    
64        IF (useCubedSphereExchange) THEN        IF (useCubedSphereExchange) THEN
65    
66         CALL EXCH2_RX1_CUBE( phi, 'T ',         CALL EXCH2_RX1_CUBE( phi, 'T ',
67       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
68       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
69       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
70    
71    #ifdef W2_FILL_NULL_REGIONS
72         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
73          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
74           myTile = W2_myTileList(bi)           myTile = W2_myTileList(bi)
# Line 72  C        South-east corner Line 77  C        South-east corner
77       &        exch2_isSedge(myTile) .EQ. 1 ) THEN       &        exch2_isSedge(myTile) .EQ. 1 ) THEN
78            DO j=1-OLy,0            DO j=1-OLy,0
79             DO i=sNx+1,sNx+OLx             DO i=sNx+1,sNx+OLx
80              DO k=1,Nr              DO k=1,Nr
81               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
82              ENDDO              ENDDO
83             ENDDO             ENDDO
84            ENDDO            ENDDO
# Line 83  C        North-east corner Line 88  C        North-east corner
88       &        exch2_isNedge(myTile) .EQ. 1 ) THEN       &        exch2_isNedge(myTile) .EQ. 1 ) THEN
89            DO j=sNy+1,sNy+OLy            DO j=sNy+1,sNy+OLy
90             DO i=sNx+1,sNx+OLx             DO i=sNx+1,sNx+OLx
91              DO k=1,Nr              DO k=1,Nr
92               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
93              ENDDO              ENDDO
94             ENDDO             ENDDO
95            ENDDO            ENDDO
# Line 94  C        South-west corner Line 99  C        South-west corner
99       &        exch2_isSedge(myTile) .EQ. 1 ) THEN       &        exch2_isSedge(myTile) .EQ. 1 ) THEN
100            DO j=1-OLy,0            DO j=1-OLy,0
101             DO i=1-OLx,0             DO i=1-OLx,0
102              DO k=1,Nr              DO k=1,Nr
103               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
104              ENDDO              ENDDO
105             ENDDO             ENDDO
106            ENDDO            ENDDO
# Line 105  C        North-west corner Line 110  C        North-west corner
110       &        exch2_isNedge(myTile) .EQ. 1 ) THEN       &        exch2_isNedge(myTile) .EQ. 1 ) THEN
111            DO j=sNy+1,sNy+OLy            DO j=sNy+1,sNy+OLy
112             DO i=1-OLx,0             DO i=1-OLx,0
113              DO k=1,Nr              DO k=1,Nr
114               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
115              ENDDO              ENDDO
116             ENDDO             ENDDO
117            ENDDO            ENDDO
118           ENDIF           ENDIF
119          ENDDO          ENDDO
120         ENDDO         ENDDO
121    #endif /* W2_FILL_NULL_REGIONS */
122    
123         CALL EXCH2_RX1_CUBE( phi, 'T ',         CALL EXCH2_RX1_CUBE( phi, 'T ',
124       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
125       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
126       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
127    
128    #ifdef W2_FILL_NULL_REGIONS
129         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
130          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
131           myTile = W2_myTileList(bi)           myTile = W2_myTileList(bi)
# Line 126  C        South-east corner Line 134  C        South-east corner
134       &        exch2_isSedge(myTile) .EQ. 1 ) THEN       &        exch2_isSedge(myTile) .EQ. 1 ) THEN
135            DO j=1-OLy,0            DO j=1-OLy,0
136             DO i=sNx+1,sNx+OLx             DO i=sNx+1,sNx+OLx
137              DO k=1,Nr              DO k=1,Nr
138               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
139              ENDDO              ENDDO
140             ENDDO             ENDDO
141            ENDDO            ENDDO
# Line 137  C        North-east corner Line 145  C        North-east corner
145       &        exch2_isNedge(myTile) .EQ. 1 ) THEN       &        exch2_isNedge(myTile) .EQ. 1 ) THEN
146            DO j=sNy+1,sNy+OLy            DO j=sNy+1,sNy+OLy
147             DO i=sNx+1,sNx+OLx             DO i=sNx+1,sNx+OLx
148              DO k=1,Nr              DO k=1,Nr
149               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
150              ENDDO              ENDDO
151             ENDDO             ENDDO
152            ENDDO            ENDDO
# Line 148  C        South-west corner Line 156  C        South-west corner
156       &        exch2_isSedge(myTile) .EQ. 1 ) THEN       &        exch2_isSedge(myTile) .EQ. 1 ) THEN
157            DO j=1-OLy,0            DO j=1-OLy,0
158             DO i=1-OLx,0             DO i=1-OLx,0
159              DO k=1,Nr              DO k=1,Nr
160               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
161              ENDDO              ENDDO
162             ENDDO             ENDDO
163            ENDDO            ENDDO
# Line 159  C        North-west corner Line 167  C        North-west corner
167       &        exch2_isNedge(myTile) .EQ. 1 ) THEN       &        exch2_isNedge(myTile) .EQ. 1 ) THEN
168            DO j=sNy+1,sNy+OLy            DO j=sNy+1,sNy+OLy
169             DO i=1-OLx,0             DO i=1-OLx,0
170              DO k=1,Nr              DO k=1,Nr
171               phi(i,j,k,bi,bj)=0.               phi(i,j,k,bi,bj)=e2FillValue_RX
172              ENDDO              ENDDO
173             ENDDO             ENDDO
174            ENDDO            ENDDO
175           ENDIF           ENDIF
176          ENDDO          ENDDO
177         ENDDO         ENDDO
178    #endif /* W2_FILL_NULL_REGIONS */
179    
180        ELSE        ELSE
181    
182         CALL EXCH_RX( phi,         CALL EXCH_RX( phi,
183       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
184       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
185       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
186    
187        ENDIF        ENDIF
188    
189        RETURN        RETURN

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22