/[MITgcm]/MITgcm/eesupp/src/exch_uv_xy_rx.template
ViewVC logotype

Annotation of /MITgcm/eesupp/src/exch_uv_xy_rx.template

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


Revision 1.12 - (hide annotations) (download)
Mon May 14 13:15:05 2012 UTC (12 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64, checkpoint65, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63n, checkpoint63o, checkpoint65o, checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, HEAD
Changes since 1.11: +24 -13 lines
add new CPP option (DISCONNECTED_TILES) to disconnect tiles (no exchange
 between tiles, just fill-in edges assuming locally periodic subdomain) and
 add corresponding exchange subroutines (EXCH0);

1 jmc 1.12 C $Header: /u/gcmpack/MITgcm/eesupp/src/exch_uv_xy_rx.template,v 1.11 2010/05/19 01:53:46 jmc Exp $
2 cnh 1.3 C $Name: $
3 adcroft 1.2
4 jmc 1.5 #include "PACKAGES_CONFIG.h"
5 adcroft 1.2 #include "CPP_EEOPTIONS.h"
6 jmc 1.7 #ifdef ALLOW_EXCH2
7     #include "W2_OPTIONS.h"
8     #endif
9 adcroft 1.2
10 cnh 1.3 CBOP
11     C !ROUTINE: EXCH_UV_XY_RX
12    
13     C !INTERFACE:
14 adcroft 1.2 SUBROUTINE EXCH_UV_XY_RX(
15 jmc 1.12 U uPhi, vPhi,
16 jmc 1.11 I withSigns, myThid )
17    
18 cnh 1.3 C !DESCRIPTION:
19     C *==========================================================*
20 jmc 1.7 C | SUBROUTINE EXCH_UV_XY_RX
21 jmc 1.11 C | o Handle exchanges for _RX, 2-dimensional vector arrays.
22 cnh 1.3 C *==========================================================*
23 jmc 1.11 C | Vector arrays need to be rotated and interchaged for
24     C | exchange operations on some grids. This driver routine
25     C | branches to support this.
26 cnh 1.3 C *==========================================================*
27 adcroft 1.2
28 cnh 1.3 C !USES:
29 jmc 1.11 IMPLICIT NONE
30    
31 adcroft 1.2 C === Global data ===
32     #include "SIZE.h"
33     #include "EEPARAMS.h"
34    
35 cnh 1.3 C !INPUT/OUTPUT PARAMETERS:
36 adcroft 1.2 C === Routine arguments ===
37 jmc 1.12 C uPhi :: 2 components of a vector field with overlap regions
38     C vPhi :: to be exchanged
39 cnh 1.3 C withSigns :: Flag controlling whether vector is signed.
40 jmc 1.11 C myThid :: my Thread Id. number
41 jmc 1.12 _RX uPhi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
42     _RX vPhi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
43 adcroft 1.2 LOGICAL withSigns
44     INTEGER myThid
45    
46 cnh 1.3 C !LOCAL VARIABLES:
47 jmc 1.9 #ifndef ALLOW_EXCH2
48 adcroft 1.2 C == Local variables ==
49 cnh 1.3 C OL[wens] :: Overlap extents in west, east, north, south.
50     C exchWidth[XY] :: Extent of regions that will be exchanged.
51 adcroft 1.2 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY, myNz
52 jmc 1.9 #endif
53 cnh 1.3 CEOP
54 adcroft 1.2
55 jmc 1.5 #ifdef ALLOW_EXCH2
56 jmc 1.7 #ifdef W2_USE_R1_ONLY
57     CALL EXCH2_UV_CGRID_3D_RX(
58 jmc 1.12 U uPhi, vPhi,
59 jmc 1.11 I withSigns, 1, myThid )
60 jmc 1.7 #else
61 jmc 1.11 CALL EXCH2_UV_3D_RX(
62 jmc 1.12 U uPhi, vPhi,
63 jmc 1.11 I withSigns, 1, myThid )
64 jmc 1.7 #endif
65     #else /* ALLOW_EXCH2 */
66 jmc 1.5
67 adcroft 1.2 OLw = OLx
68     OLe = OLx
69     OLn = OLy
70     OLs = OLy
71     exchWidthX = OLx
72     exchWidthY = OLy
73     myNz = 1
74     IF (useCubedSphereExchange) THEN
75 jmc 1.12 CALL EXCH1_UV_RX_CUBE( uPhi, vPhi, withSigns,
76 adcroft 1.2 I OLw, OLe, OLs, OLn, myNz,
77     I exchWidthX, exchWidthY,
78 jmc 1.11 I EXCH_UPDATE_CORNERS, myThid )
79 adcroft 1.2 ELSE
80 jmc 1.12 #ifdef DISCONNECTED_TILES
81     CALL EXCH0_RX( uPhi,
82     I OLw, OLe, OLs, OLn, myNz,
83     I exchWidthX, exchWidthY,
84     I EXCH_UPDATE_CORNERS, myThid )
85     CALL EXCH0_RX( vPhi,
86     I OLw, OLe, OLs, OLn, myNz,
87     I exchWidthX, exchWidthY,
88     I EXCH_UPDATE_CORNERS, myThid )
89     #else /* DISCONNECTED_TILES */
90     CALL EXCH1_RX( uPhi,
91 jmc 1.11 I OLw, OLe, OLs, OLn, myNz,
92     I exchWidthX, exchWidthY,
93     I EXCH_UPDATE_CORNERS, myThid )
94 jmc 1.12 CALL EXCH1_RX( vPhi,
95 jmc 1.11 I OLw, OLe, OLs, OLn, myNz,
96     I exchWidthX, exchWidthY,
97     I EXCH_UPDATE_CORNERS, myThid )
98 jmc 1.12 #endif /* DISCONNECTED_TILES */
99 adcroft 1.2 ENDIF
100    
101 jmc 1.12 #endif /* ALLOW_EXCH2 */
102    
103 adcroft 1.2 RETURN
104     END
105 jmc 1.5
106     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
107    
108     CEH3 ;;; Local Variables: ***
109     CEH3 ;;; mode:fortran ***
110     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22