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

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

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

revision 1.4 by jmc, Tue May 12 19:44:58 2009 UTC revision 1.9 by jmc, Tue Sep 4 00:47:14 2012 UTC
# Line 35  C     !USES: Line 35  C     !USES:
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  c#ifdef W2_FILL_NULL_REGIONS
41  #include "W2_EXCH2_PARAMS.h"  c#include "W2_EXCH2_PARAMS.h"
42  #endif  c#endif
43    
44  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
45  C     == Argument list variables ==  C     == Argument list variables ==
# Line 59  C     exchWidth[XY] :: Extent of regions Line 58  C     exchWidth[XY] :: Extent of regions
58  C     uPhiNW,uPhiSE :: temporary array to hold corner value (CS grid)  C     uPhiNW,uPhiSE :: temporary array to hold corner value (CS grid)
59  C     vPhiNW,vPhiSE :: temporary array to hold corner value (CS grid)  C     vPhiNW,vPhiSE :: temporary array to hold corner value (CS grid)
60  C     uLoc,vLoc     :: local copy of the vector components with haloes filled.  C     uLoc,vLoc     :: local copy of the vector components with haloes filled.
61  C     msgBuf        :: Informational/error meesage buffer  C     msgBuf        :: Informational/error message buffer
62    
63        INTEGER local_maxDim        INTEGER local_maxDim
64        PARAMETER( local_maxDim = 8*Nr )        PARAMETER( local_maxDim = 8*Nr )
# Line 108  C-     save 2 corners value (in case we Line 107  C-     save 2 corners value (in case we
107           ENDDO           ENDDO
108          ENDDO          ENDDO
109         ENDDO         ENDDO
110    C---  using or not using CubedSphereExchange: end
111          ENDIF
112    
113  C--   First call the exchanges for the two components  C--   First call the exchanges for the two components
114    
115         CALL EXCH2_RX1_CUBE( uPhi, 'T ',         CALL EXCH2_RX1_CUBE( uPhi, .FALSE., 'T ',
116       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
117       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
118       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            EXCH_IGNORE_CORNERS, myThid )
119         CALL EXCH2_RX1_CUBE( uPhi, 'T ',         CALL EXCH2_RX1_CUBE( uPhi, .FALSE., 'T ',
120       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
121       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
122       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            EXCH_UPDATE_CORNERS, myThid )
123    
124         CALL EXCH2_RX1_CUBE( vPhi, 'T ',         CALL EXCH2_RX1_CUBE( vPhi, .FALSE., 'T ',
125       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
126       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
127       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            EXCH_IGNORE_CORNERS, myThid )
128         CALL EXCH2_RX1_CUBE( vPhi, 'T ',         CALL EXCH2_RX1_CUBE( vPhi, .FALSE., 'T ',
129       I            OLw, OLe, OLs, OLn, myNz,       I            OLw, OLe, OLs, OLn, myNz,
130       I            exchWidthX, exchWidthY,       I            exchWidthX, exchWidthY,
131       I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )       I            EXCH_UPDATE_CORNERS, myThid )
132    
133  C- note: can substitute the low-level S/R calls above with:  C- note: can substitute the low-level S/R calls above with:
134  c      CALL EXCH2_3D_RX( uPhi, myNz, myThid )  c      CALL EXCH2_3D_RX( uPhi, myNz, myThid )
135  c      CALL EXCH2_3D_RX( vPhi, myNz, myThid )  c      CALL EXCH2_3D_RX( vPhi, myNz, myThid )
136    
137          IF ( useCubedSphereExchange ) THEN
138    
139  C--   Then, depending on which tile we are, we may need  C--   Then, depending on which tile we are, we may need
140  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
141  C     2) to shift the index along the face edge.  C     2) to shift the index along the face edge.
# Line 146  C--   Loops on tile indices: Line 149  C--   Loops on tile indices:
149         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
150          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
151    
152  C-    Now choose what to do at each edge of the halo based on which face  C-    Choose what to do at each edge of the halo based on which face we are
153  C    (we assume that bj is always=1)           myTile = W2_myTileList(bi,bj)
          myTile = W2_myTileList(bi)  
154           myFace = exch2_myFace(myTile)           myFace = exch2_myFace(myTile)
155    
156  C--   Loops on level index:  C--   Loops on level index:
# Line 407  C--   end of Loops on tile indices (bi,b Line 409  C--   end of Loops on tile indices (bi,b
409          ENDDO          ENDDO
410         ENDDO         ENDDO
411    
 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  
   
412  C---  using or not using CubedSphereExchange: end  C---  using or not using CubedSphereExchange: end
413        ENDIF        ENDIF
414    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22