35 |
|
|
36 |
#include "SIZE.h" |
#include "SIZE.h" |
37 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
|
c#include "EESUPPORT.h" |
|
38 |
#include "W2_EXCH2_SIZE.h" |
#include "W2_EXCH2_SIZE.h" |
39 |
#include "W2_EXCH2_TOPOLOGY.h" |
#include "W2_EXCH2_TOPOLOGY.h" |
40 |
#ifdef W2_FILL_NULL_REGIONS |
#ifdef W2_FILL_NULL_REGIONS |
73 |
negOne = 1. |
negOne = 1. |
74 |
IF (withSigns) negOne = -1. |
IF (withSigns) negOne = -1. |
75 |
|
|
|
IF ( useCubedSphereExchange ) THEN |
|
|
C--- using CubedSphereExchange: |
|
|
|
|
76 |
C-- First call the exchanges for the two components |
C-- First call the exchanges for the two components |
77 |
|
|
78 |
CALL EXCH2_RX1_CUBE( uPhi, 'T ', |
CALL EXCH2_RX1_CUBE( uPhi, 'T ', |
97 |
c CALL EXCH2_3D_RX( uPhi, myNz, myThid ) |
c CALL EXCH2_3D_RX( uPhi, myNz, myThid ) |
98 |
c CALL EXCH2_3D_RX( vPhi, myNz, myThid ) |
c CALL EXCH2_3D_RX( vPhi, myNz, myThid ) |
99 |
|
|
100 |
|
IF ( useCubedSphereExchange ) THEN |
101 |
|
|
102 |
C-- Then, depending on which tile we are, we may need |
C-- Then, depending on which tile we are, we may need |
103 |
C 1) to switch u and v components and also to switch the signs |
C 1) to switch u and v components and also to switch the signs |
104 |
C 2) to shift the index along the face edge. |
C 2) to shift the index along the face edge. |
114 |
|
|
115 |
C- Now choose what to do at each edge of the halo based on which face |
C- Now choose what to do at each edge of the halo based on which face |
116 |
C (we assume that bj is always=1) |
C (we assume that bj is always=1) |
117 |
myTile = W2_myTileList(bi) |
myTile = W2_myTileList(bi,bj) |
118 |
myFace = exch2_myFace(myTile) |
myFace = exch2_myFace(myTile) |
119 |
|
|
120 |
C-- Loops on level index: |
C-- Loops on level index: |
403 |
ENDDO |
ENDDO |
404 |
ENDDO |
ENDDO |
405 |
|
|
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
|
|
|
|
|
ELSE |
|
|
C--- not using CubedSphereExchange: |
|
|
|
|
|
#ifndef AUTODIFF_EXCH2 |
|
|
CALL EXCH_RX( uPhi, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
CALL EXCH_RX( vPhi, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
#endif |
|
|
|
|
406 |
C--- using or not using CubedSphereExchange: end |
C--- using or not using CubedSphereExchange: end |
407 |
ENDIF |
ENDIF |
408 |
|
|