1 |
subroutine exch_uv_agrid_xy_RX( component1,component2, myThid ) |
C $Header$ |
2 |
|
C $Name$ |
3 |
|
|
4 |
|
#include "PACKAGES_CONFIG.h" |
5 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
6 |
|
|
7 |
|
SUBROUTINE EXCH_UV_AGRID_XY_RX( component1,component2, withSigns, |
8 |
|
. myThid ) |
9 |
|
|
10 |
implicit none |
implicit none |
11 |
|
|
12 |
C*=====================================================================* |
C*=====================================================================* |
13 |
C Purpose: subroutine exch_uv_agrid_xyz_rx will |
C Purpose: subroutine exch_uv_agrid_xyz_RX will |
14 |
C handle exchanges for a 2D vector field on an A-grid. |
C handle exchanges for a 2D vector field on an A-grid. |
15 |
C |
C |
16 |
C Input: component1(lon,lat,bi,bj) - first component of vector |
C Input: component1(lon,lat,bi,bj) - first component of vector |
17 |
C component2(lon,lat,bi,bj) - second component of vector |
C component2(lon,lat,bi,bj) - second component of vector |
18 |
C myThid - tile number |
C withSigns (logical) - true to use signs of components |
19 |
|
C myThid - tile number |
20 |
C |
C |
21 |
C Output: component1 and component2 are updated (halo regions filled) |
C Output: component1 and component2 are updated (halo regions filled) |
22 |
C |
C |
25 |
C |
C |
26 |
C NOTES: 1) This code, as written, only works on ONE PROCESSOR! |
C NOTES: 1) This code, as written, only works on ONE PROCESSOR! |
27 |
C 2) This code assumes that the faces are square (sNx=sNy....) |
C 2) This code assumes that the faces are square (sNx=sNy....) |
28 |
C (also - we don't worry about barriers) |
C (also - we do not worry about barriers) |
29 |
C*=====================================================================* |
C*=====================================================================* |
30 |
|
|
31 |
#include "SIZE.h" |
#include "SIZE.h" |
36 |
C == Argument list variables == |
C == Argument list variables == |
37 |
_RX component1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RX component1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
38 |
_RX component2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RX component2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
39 |
|
LOGICAL withSigns |
40 |
INTEGER myThid |
INTEGER myThid |
41 |
|
|
42 |
C == Local variables == |
C == Local variables == |
51 |
_RX dummy1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RX dummy1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
52 |
_RX dummy2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RX dummy2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
53 |
|
|
54 |
|
#ifdef ALLOW_EXCH2 |
55 |
|
CALL EXCH2_UV_AGRID_XY_RX( component1,component2, withSigns, |
56 |
|
. myThid ) |
57 |
|
RETURN |
58 |
|
#endif |
59 |
|
|
60 |
OLw = OLx |
OLw = OLx |
61 |
OLe = OLx |
OLe = OLx |
62 |
OLn = OLy |
OLn = OLy |
151 |
|
|
152 |
RETURN |
RETURN |
153 |
END |
END |
154 |
|
|
155 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
156 |
|
|
157 |
|
CEH3 ;;; Local Variables: *** |
158 |
|
CEH3 ;;; mode:fortran *** |
159 |
|
CEH3 ;;; End: *** |