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

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

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


Revision 1.3 - (hide annotations) (download)
Fri Aug 17 18:34:17 2007 UTC (16 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint62, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59g, checkpoint59f, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.2: +7 -5 lines
cleaning:
 - only 1 RETURN instruction per S/R (to help TAF)
 - comment out #include "EXCH.h" in wrapper EXCH S/R (not necessary)
 - comment out unnecessary #include "EESUPPORT.h" (to make TAF happy)

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/eesupp/src/exch_z_3d_rx.template,v 1.2 2006/11/17 22:35:03 heimbach Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_EEOPTIONS.h"
6    
7     CBOP
8     C !ROUTINE: EXCH_Z_3D_RX
9    
10     C !INTERFACE:
11     SUBROUTINE EXCH_Z_3D_RX(
12     U phi,
13     I myNz, myThid )
14     IMPLICIT NONE
15     C !DESCRIPTION:
16     C *==========================================================*
17     C | SUBROUTINE EXCH_Z_3D_RX
18     C | o Handle exchanges for _RX, 3-dim, zeta coord arrays.
19     C *==========================================================*
20     C | Branch to appropriate exchange routine for a zeta coord
21     C | array on the current grid scheme.
22     C *==========================================================*
23    
24     C !USES:
25     C == Global variables ==
26     #include "SIZE.h"
27     #include "EEPARAMS.h"
28 jmc 1.3 c#include "EESUPPORT.h"
29     c#include "EXCH.h"
30 jmc 1.1
31     C !INPUT/OUTPUT PARAMETERS:
32     C == Routine arguments ==
33     C phi :: Array with overlap regions are to be exchanged
34     C Note - The interface to EXCH_RX assumes that
35     C the standard Fortran 77 sequence association rules
36     C apply.
37     C myNz :: 3rd dimension of array to exchange
38     C myThid :: My thread id.
39     INTEGER myNz
40     _RX phi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNz,nSx,nSy)
41     INTEGER myThid
42    
43     C !LOCAL VARIABLES:
44 jmc 1.3 #ifndef ALLOW_EXCH2
45 jmc 1.1 C == Local variables ==
46     C OL[wens] :: Overlap extents in west, east, north, south.
47     C exchWidth[XY] :: Extent of regions that will be exchanged.
48     INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
49 jmc 1.3 #endif
50 jmc 1.1 CEOP
51    
52     #ifdef ALLOW_EXCH2
53     CALL EXCH2_Z_3D_RX(
54     U phi,
55     I myNz, myThid )
56     RETURN
57 jmc 1.3 #else /* ALLOW_EXCH2 */
58 jmc 1.1
59     OLw = OLx
60     OLe = OLx
61     OLn = OLy
62     OLs = OLy
63     exchWidthX = OLx
64     exchWidthY = OLy
65     C ** NOTE ** The exchange routine we use here does not
66     C require the preceeding and following barriers.
67     C However, the slow, simple exchange interface
68     C that is calling it here is meant to ensure
69     C that threads are synchronised before exchanges
70     C begine.
71     IF (useCubedSphereExchange) THEN
72     CALL EXCH_Z_RX_CUBE( phi,
73     I OLw, OLe, OLs, OLn, myNz,
74     I exchWidthX, exchWidthY,
75     I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
76     ELSE
77     CALL EXCH_RX( phi,
78     I OLw, OLe, OLs, OLn, myNz,
79     I exchWidthX, exchWidthY,
80     I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
81     ENDIF
82    
83     RETURN
84 jmc 1.3 #endif /* ALLOW_EXCH2 */
85 jmc 1.1 END

  ViewVC Help
Powered by ViewVC 1.1.22