9 |
|
|
10 |
C !INTERFACE: |
C !INTERFACE: |
11 |
SUBROUTINE EXCH2_SM_3D_RX( |
SUBROUTINE EXCH2_SM_3D_RX( |
12 |
U phi, |
U phi, |
13 |
I withSigns, myNz, myThid ) |
I withSigns, myNz, myThid ) |
14 |
|
|
15 |
C !DESCRIPTION: |
C !DESCRIPTION: |
16 |
C*=====================================================================* |
C*=====================================================================* |
68 |
|
|
69 |
C-- First call the exchanges |
C-- First call the exchanges |
70 |
|
|
71 |
CALL EXCH2_RX1_CUBE( phi, 'T ', |
CALL EXCH2_RX1_CUBE( phi, .FALSE., 'T ', |
72 |
I OLw, OLe, OLs, OLn, myNz, |
I OLw, OLe, OLs, OLn, myNz, |
73 |
I exchWidthX, exchWidthY, |
I exchWidthX, exchWidthY, |
74 |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
I EXCH_UPDATE_CORNERS, myThid ) |
75 |
CALL EXCH2_RX1_CUBE( phi, 'T ', |
CALL EXCH2_RX1_CUBE( phi, .FALSE., 'T ', |
76 |
I OLw, OLe, OLs, OLn, myNz, |
I OLw, OLe, OLs, OLn, myNz, |
77 |
I exchWidthX, exchWidthY, |
I exchWidthX, exchWidthY, |
78 |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
I EXCH_UPDATE_CORNERS, myThid ) |
79 |
|
|
80 |
C- note: can substitute the low-level S/R call above with: |
C- note: can substitute the low-level S/R call above with: |
81 |
c CALL EXCH2_3D_RX( phi, myNz, myThid ) |
c CALL EXCH2_3D_RX( phi, myNz, myThid ) |
83 |
IF ( useCubedSphereExchange ) THEN |
IF ( useCubedSphereExchange ) THEN |
84 |
C--- using CubedSphereExchange: |
C--- using CubedSphereExchange: |
85 |
|
|
86 |
C-- Then we may need to switch u and v components |
C-- Then we may need to switch the signs depending on which cube face |
87 |
C and/or the signs depending on which cube face we are located. |
C we are located. |
88 |
|
|
89 |
C-- Loops on tile indices: |
C-- Loops on tile indices: |
90 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
91 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
92 |
|
|
93 |
C-- Then we may need to switch the signs depending on which cube face |
C Choose what to do at each edge of the halo based on which face we are |
|
C we are located (we assume that bj is always=1). |
|
|
C Choose what to do at each edge of the halo based on which face |
|
94 |
myTile = W2_myTileList(bi,bj) |
myTile = W2_myTileList(bi,bj) |
95 |
myFace = exch2_myFace(myTile) |
myFace = exch2_myFace(myTile) |
96 |
|
|