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

Annotation 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 - (hide annotations) (download)
Tue Nov 16 17:23:25 2004 UTC (19 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +1 -1 lines
FILE REMOVED
use eesupp/src version instead.

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/exch2/exch_uv_xyz_rx.template,v 1.2 2004/04/05 15:27:06 edhill Exp $
2 afe 1.1 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 edhill 1.2
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