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

Contents of /MITgcm/pkg/exch2/exch_uv_xyz_rx.template

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


Revision 1.3 - (show annotations) (download)
Tue Nov 16 17:23:25 2004 UTC (19 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +1 -1 lines
FILE REMOVED
use eesupp/src version instead.

1 C $Header: /u/gcmpack/MITgcm/pkg/exch2/exch_uv_xyz_rx.template,v 1.2 2004/04/05 15:27:06 edhill Exp $
2 C $Name: $
3
4 #include "CPP_EEOPTIONS.h"
5
6 CBOP
7
8 C !ROUTINE: EXCH_UV_XYZ_RX
9
10 C !INTERFACE:
11 SUBROUTINE EXCH_UV_XYZ_RX(
12 U Uphi, Vphi, withSigns,
13 I myThid )
14 IMPLICIT NONE
15 C !DESCRIPTION:
16 C *==========================================================*
17 C | SUBROUTINE EXCH_UV_XYZ_RX
18 C | o Handle exchanges for _RX, 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_RX assumes that
35 C the standard Fortran 77 sequence association rules
36 C apply.
37 C myThid :: My thread id.
38 _RX Uphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
39 _RX 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 CALL EXCH2_UV_XYZ_RX(
51 U Uphi, Vphi, withSigns,
52 I myThid )
53 RETURN
54
55 OLw = OLx
56 OLe = OLx
57 OLn = OLy
58 OLs = OLy
59 exchWidthX = OLx
60 exchWidthY = OLy
61 myNz = Nr
62 C ** NOTE ** The exchange routine we use here does not
63 C require the preceeding and following barriers.
64 C However, the slow, simple exchange interface
65 C that is calling it here is meant to ensure
66 C that threads are synchronised before exchanges
67 C begine.
68 IF (useCubedSphereExchange) THEN
69 CALL EXCH_UV_RX_CUBE( Uphi, Vphi, withSigns,
70 I OLw, OLe, OLs, OLn, myNz,
71 I exchWidthX, exchWidthY,
72 I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
73 ELSE
74 c CALL EXCH_RX( Uphi,
75 c I OLw, OLe, OLs, OLn, myNz,
76 c I exchWidthX, exchWidthY,
77 c I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
78 c CALL EXCH_RX( Vphi,
79 c I OLw, OLe, OLs, OLn, myNz,
80 c I exchWidthX, exchWidthY,
81 c I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
82 c_jmc: for JAM compatibility, replace the 2 CALLs above by the 2 CPP_MACROs:
83 _EXCH_XYZ_RX( Uphi, myThid )
84 _EXCH_XYZ_RX( Vphi, myThid )
85 ENDIF
86
87 RETURN
88 END
89
90 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
91
92 CEH3 ;;; Local Variables: ***
93 CEH3 ;;; mode:fortran ***
94 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22