3 |
|
|
4 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
5 |
#include "W2_OPTIONS.h" |
#include "W2_OPTIONS.h" |
6 |
|
#define DO_CORNER_COPY_V2U |
7 |
|
|
8 |
CBOP |
CBOP |
9 |
C !ROUTINE: EXCH2_UV_3D_RX |
C !ROUTINE: EXCH2_UV_3D_RX |
28 |
C === Global data === |
C === Global data === |
29 |
#include "SIZE.h" |
#include "SIZE.h" |
30 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
|
cph-mpi#include "EESUPPORT.h" |
|
31 |
#include "W2_EXCH2_TOPOLOGY.h" |
#include "W2_EXCH2_TOPOLOGY.h" |
32 |
#include "W2_EXCH2_PARAMS.h" |
#include "W2_EXCH2_PARAMS.h" |
33 |
|
|
71 |
|
|
72 |
IF (useCubedSphereExchange) THEN |
IF (useCubedSphereExchange) THEN |
73 |
|
|
74 |
CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'UV', |
CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'Cg', |
75 |
I OLw, OLe, OLs, OLn, myNz, |
I OLw, OLe, OLs, OLn, myNz, |
76 |
I exchWidthX, exchWidthY, |
I exchWidthX, exchWidthY, |
77 |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
78 |
CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'UV', |
CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'Cg', |
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'UV', |
|
79 |
I OLw, OLe, OLs, OLn, myNz, |
I OLw, OLe, OLs, OLn, myNz, |
80 |
I exchWidthX, exchWidthY, |
I exchWidthX, exchWidthY, |
81 |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
82 |
|
c CALL EXCH2_RX2_CUBE( Uphi, Vphi, withSigns, 'Cg', |
83 |
|
c I OLw, OLe, OLs, OLn, myNz, |
84 |
|
c I exchWidthX, exchWidthY, |
85 |
|
c I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
86 |
|
|
87 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
88 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
89 |
myTile = W2_myTileList(bi) |
myTile = W2_myTileList(bi) |
90 |
|
|
91 |
|
#ifdef DO_CORNER_COPY_V2U |
92 |
IF ( exch2_isEedge(myTile) .EQ. 1 .AND. |
IF ( exch2_isEedge(myTile) .EQ. 1 .AND. |
93 |
& exch2_isSedge(myTile) .EQ. 1 ) THEN |
& exch2_isSedge(myTile) .EQ. 1 ) THEN |
94 |
DO k=1,myNz |
DO k=1,myNz |
119 |
ENDDO |
ENDDO |
120 |
ENDIF |
ENDIF |
121 |
ENDIF |
ENDIF |
122 |
|
#endif |
123 |
|
|
124 |
C-- Now zero out the null areas that should not be used in the numerics |
C-- Now zero out the null areas that should not be used in the numerics |
125 |
C Also add one valid u,v value next to the corner, that allows |
C Also add one valid u,v value next to the corner, that allows |