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

Contents of /MITgcm_contrib/high_res_cube/code-mods/exch_uv_xy_rl.F

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


Revision 1.2 - (show annotations) (download)
Fri Feb 6 21:12:01 2004 UTC (21 years, 10 months ago) by dimitri
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
FILE REMOVED
removed files that have been ported to pkg/exch2
added tile configuration with missing tiles

1 C $Header: /usr/local/gcmpack/MITgcm_contrib/high_res_cube/code-mods/exch_uv_xy_rl.F,v 1.1 2003/11/11 18:08:07 cnh Exp $
2 C $Name: $
3
4 #include "CPP_EEOPTIONS.h"
5
6 CBOP
7 C !ROUTINE: EXCH_UV_XY_RL
8
9 C !INTERFACE:
10 SUBROUTINE EXCH_UV_XY_RL(
11 U Uphi, Vphi, withSigns,
12 I myThid )
13 IMPLICIT NONE
14 C !DESCRIPTION:
15 C *==========================================================*
16 C | SUBROUTINE EXCH_UV_XY_RL
17 C | o Handle exchanges for _RL, two-dimensional arrays.
18 C *==========================================================*
19 C | Driver exchange routine which branches to cube sphere or
20 C | global, simple cartesian index grid. Exchange routine is
21 C | called with two arrays that are components of a vector.
22 C | These components are rotated and interchanged on the
23 C | rotated grid during cube exchanges.
24 C *==========================================================*
25
26 C !USES:
27 C === Global data ===
28 #include "SIZE.h"
29 #include "EEPARAMS.h"
30 #include "EESUPPORT.h"
31
32 C !INPUT/OUTPUT PARAMETERS:
33 C === Routine arguments ===
34 C Uphi :: Arrays with overlap regions are to be exchanged
35 C Vphi Note - The interface to EXCH_ assumes that
36 C the standard Fortran 77 sequence association rules
37 C apply.
38 C myThid :: My thread id.
39 C withSigns :: Flag controlling whether vector is signed.
40 _RL Uphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
41 _RL Vphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
42 LOGICAL withSigns
43 INTEGER myThid
44
45 C !LOCAL VARIABLES:
46 C == Local variables ==
47 C OL[wens] :: Overlap extents in west, east, north, south.
48 C exchWidth[XY] :: Extent of regions that will be exchanged.
49 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY, myNz
50 CEOP
51 CALL EXCH2_UV_XY_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 = 1
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_RL_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_RL( 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_RL( 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_XY_RL( Uphi, myThid )
85 _EXCH_XY_RL( Vphi, myThid )
86 ENDIF
87
88 RETURN
89 END

  ViewVC Help
Powered by ViewVC 1.1.22