/[MITgcm]/MITgcm_contrib/high_res_cube/code-mods/exch_uv_xyz_rs.F
ViewVC logotype

Annotation of /MITgcm_contrib/high_res_cube/code-mods/exch_uv_xyz_rs.F

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


Revision 1.1 - (hide annotations) (download)
Tue Nov 11 18:08:07 2003 UTC (22 years, 1 month ago) by cnh
Branch: MAIN
Branch point for: initial
Initial revision

1 cnh 1.1 C $Header: /u/gcmpack/MITgcm/eesupp/src/exch_uv_xyz_rx.template,v 1.3 2001/09/21 03:55:50 cnh Exp $
2     C $Name: $
3    
4     #include "CPP_EEOPTIONS.h"
5    
6     CBOP
7    
8     C !ROUTINE: EXCH_UV_XYZ_RS
9    
10     C !INTERFACE:
11     SUBROUTINE EXCH_UV_XYZ_RS(
12     U Uphi, Vphi, withSigns,
13     I myThid )
14     IMPLICIT NONE
15     C !DESCRIPTION:
16     C *==========================================================*
17     C | SUBROUTINE EXCH_UV_XYZ_RS
18     C | o Handle exchanges for _RS, 3-dimensional vector arrays.
19     C *==========================================================*
20     C | Vector arrays need to be rotated and interchaged for
21     C | exchange operations on some grids. This driver routine
22     C | branches to support this.
23     C *==========================================================*
24    
25     C !USES:
26     C === Global data ===
27     #include "SIZE.h"
28     #include "EEPARAMS.h"
29     #include "EESUPPORT.h"
30    
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_RL assumes that
35     C the standard Fortran 77 sequence association rules
36     C apply.
37     C myThid :: My thread id.
38     _RS Uphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
39     _RS Vphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
40     LOGICAL withSigns
41     INTEGER myThid
42    
43     C !LOCAL VARIABLES:
44     C == Local variables ==
45     C OL[wens] :: Overlap extents in west, east, north, south.
46     C exchWidth[XY] :: Extent of regions that will be exchanged.
47     INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY, myNz
48    
49     CEOP
50    
51     CALL EXCH2_UV_XYZ_RL(
52     U Uphi, Vphi, withSigns,
53     I myThid )
54     RETURN
55    
56     OLw = OLx
57     OLe = OLx
58     OLn = OLy
59     OLs = OLy
60     exchWidthX = OLx
61     exchWidthY = OLy
62     myNz = Nr
63     C ** NOTE ** The exchange routine we use here does not
64     C require the preceeding and following barriers.
65     C However, the slow, simple exchange interface
66     C that is calling it here is meant to ensure
67     C that threads are synchronised before exchanges
68     C begine.
69     IF (useCubedSphereExchange) THEN
70     CALL EXCH_UV_RS_CUBE( Uphi, Vphi, withSigns,
71     I OLw, OLe, OLs, OLn, myNz,
72     I exchWidthX, exchWidthY,
73     I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
74     ELSE
75     c CALL EXCH_RS( Uphi,
76     c I OLw, OLe, OLs, OLn, myNz,
77     c I exchWidthX, exchWidthY,
78     c I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
79     c CALL EXCH_RS( Vphi,
80     c I OLw, OLe, OLs, OLn, myNz,
81     c I exchWidthX, exchWidthY,
82     c I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
83     c_jmc: for JAM compatibility, replace the 2 CALLs above by the 2 CPP_MACROs:
84     _EXCH_XYZ_RS( Uphi, myThid )
85     _EXCH_XYZ_RS( Vphi, myThid )
86     ENDIF
87    
88     RETURN
89     END

  ViewVC Help
Powered by ViewVC 1.1.22