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

Annotation of /MITgcm/pkg/exch2/exch2_3d_rx.template

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


Revision 1.6 - (hide annotations) (download)
Thu May 6 23:28:45 2010 UTC (14 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint63, checkpoint62g, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x
Changes since 1.5: +5 -59 lines
- S/R EXCH2_RX1,2_CUBE: remove argument "simulationMode" ;
- add argument "signOption" to EXCH2_RX1_CUBE (will be needed for SM exch)

1 jmc 1.6 C $Header: /u/gcmpack/MITgcm/pkg/exch2/exch2_3d_rx.template,v 1.5 2009/06/28 00:57:51 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "CPP_EEOPTIONS.h"
5     #include "W2_OPTIONS.h"
6    
7     CBOP
8     C !ROUTINE: EXCH2_3D_RX
9    
10     C !INTERFACE:
11     SUBROUTINE EXCH2_3D_RX(
12     U phi,
13     I myNz, myThid )
14    
15     C !DESCRIPTION:
16     C *==========================================================*
17     C | SUBROUTINE EXCH2_3D_RX
18     C | o Handle exchanges for _RX, three-dim scalar arrays.
19     C *==========================================================*
20    
21     C !USES:
22     IMPLICIT NONE
23     C === Global data ===
24     #include "SIZE.h"
25     #include "EEPARAMS.h"
26 jmc 1.4 #include "W2_EXCH2_SIZE.h"
27 jmc 1.1 #include "W2_EXCH2_TOPOLOGY.h"
28 jmc 1.4 #ifdef W2_FILL_NULL_REGIONS
29 jmc 1.1 #include "W2_EXCH2_PARAMS.h"
30 jmc 1.4 #endif
31 jmc 1.1
32     C !INPUT/OUTPUT PARAMETERS:
33     C === Routine arguments ===
34     C phi :: Array with overlap regions are to be exchanged
35     C myNz :: 3rd dimension of array to exchange
36     C myThid :: My thread id.
37     INTEGER myNz
38     _RX phi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNz,nSx,nSy)
39     INTEGER myThid
40    
41     C !LOCAL VARIABLES:
42     C == Local variables ==
43     C OL[wens] :: Overlap extents in west, east, north, south.
44     C exchWidth[XY] :: Extent of regions that will be exchanged.
45     INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
46     #ifdef W2_FILL_NULL_REGIONS
47     INTEGER bi, bj, myTile, i, j, k
48     #endif
49    
50     CEOP
51    
52     OLw = OLx
53     OLe = OLx
54     OLn = OLy
55     OLs = OLy
56     exchWidthX = OLx
57     exchWidthY = OLy
58    
59 jmc 1.6 CALL EXCH2_RX1_CUBE( phi, .FALSE., 'T ',
60 jmc 1.1 I OLw, OLe, OLs, OLn, myNz,
61     I exchWidthX, exchWidthY,
62 jmc 1.6 I EXCH_UPDATE_CORNERS, myThid )
63 jmc 1.1
64 jmc 1.6 CALL EXCH2_RX1_CUBE( phi, .FALSE., 'T ',
65 jmc 1.1 I OLw, OLe, OLs, OLn, myNz,
66     I exchWidthX, exchWidthY,
67 jmc 1.6 I EXCH_UPDATE_CORNERS, myThid )
68 jmc 1.1
69     #ifdef W2_FILL_NULL_REGIONS
70 jmc 1.5 IF (useCubedSphereExchange) THEN
71 jmc 1.1 DO bj=myByLo(myThid),myByHi(myThid)
72     DO bi=myBxLo(myThid),myBxHi(myThid)
73 jmc 1.5 myTile = W2_myTileList(bi,bj)
74 jmc 1.1 C South-east corner
75     IF ( exch2_isEedge(myTile) .EQ. 1 .AND.
76     & exch2_isSedge(myTile) .EQ. 1 ) THEN
77     DO j=1-OLy,0
78     DO i=sNx+1,sNx+OLx
79     DO k=1,myNz
80     phi(i,j,k,bi,bj)=e2FillValue_RX
81     ENDDO
82     ENDDO
83     ENDDO
84     ENDIF
85     C North-east corner
86     IF ( exch2_isEedge(myTile) .EQ. 1 .AND.
87     & exch2_isNedge(myTile) .EQ. 1 ) THEN
88     DO j=sNy+1,sNy+OLy
89     DO i=sNx+1,sNx+OLx
90     DO k=1,myNz
91     phi(i,j,k,bi,bj)=e2FillValue_RX
92     ENDDO
93     ENDDO
94     ENDDO
95     ENDIF
96     C South-west corner
97     IF ( exch2_isWedge(myTile) .EQ. 1 .AND.
98     & exch2_isSedge(myTile) .EQ. 1 ) THEN
99     DO j=1-OLy,0
100     DO i=1-OLx,0
101     DO k=1,myNz
102     phi(i,j,k,bi,bj)=e2FillValue_RX
103     ENDDO
104     ENDDO
105     ENDDO
106     ENDIF
107     C North-west corner
108     IF ( exch2_isWedge(myTile) .EQ. 1 .AND.
109     & exch2_isNedge(myTile) .EQ. 1 ) THEN
110     DO j=sNy+1,sNy+OLy
111     DO i=1-OLx,0
112     DO k=1,myNz
113     phi(i,j,k,bi,bj)=e2FillValue_RX
114     ENDDO
115     ENDDO
116     ENDDO
117     ENDIF
118     ENDDO
119     ENDDO
120 jmc 1.5 ENDIF
121 jmc 1.1 #endif /* W2_FILL_NULL_REGIONS */
122    
123     RETURN
124     END
125    
126     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
127    
128     CEH3 ;;; Local Variables: ***
129     CEH3 ;;; mode:fortran ***
130     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22