Warning, /eesupp/src/exch_z_3d_rx.template is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
ce7304455e Jean*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_EEOPTIONS.h"
0003
0004 CBOP
0005 C !ROUTINE: EXCH_Z_3D_RX
0006
0007 C !INTERFACE:
0008 SUBROUTINE EXCH_Z_3D_RX(
0009 U phi,
0010 I myNz, myThid )
0011 IMPLICIT NONE
0012 C !DESCRIPTION:
0013 C *==========================================================*
0014 C | SUBROUTINE EXCH_Z_3D_RX
0015 C | o Handle exchanges for _RX, 3-dim, zeta coord arrays.
0016 C *==========================================================*
0017 C | Branch to appropriate exchange routine for a zeta coord
0018 C | array on the current grid scheme.
0019 C *==========================================================*
0020
0021 C !USES:
0022 C == Global variables ==
0023 #include "SIZE.h"
0024 #include "EEPARAMS.h"
0025
0026 C !INPUT/OUTPUT PARAMETERS:
0027 C == Routine arguments ==
0028 C phi :: Array with overlap regions are to be exchanged
0029 C Note - The interface to EXCH_RX assumes that
0030 C the standard Fortran 77 sequence association rules
0031 C apply.
0032 C myNz :: 3rd dimension of array to exchange
0033 C myThid :: My thread id.
0034 INTEGER myNz
0035 _RX phi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNz,nSx,nSy)
0036 INTEGER myThid
0037
0038 C !LOCAL VARIABLES:
3e943aa97a Jean*0039 #ifndef ALLOW_EXCH2
ce7304455e Jean*0040 C == Local variables ==
0041 C OL[wens] :: Overlap extents in west, east, north, south.
0042 C exchWidth[XY] :: Extent of regions that will be exchanged.
0043 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
3e943aa97a Jean*0044 #endif
ce7304455e Jean*0045 CEOP
0046
0047 #ifdef ALLOW_EXCH2
0048 CALL EXCH2_Z_3D_RX(
0049 U phi,
0050 I myNz, myThid )
3e943aa97a Jean*0051 #else /* ALLOW_EXCH2 */
ce7304455e Jean*0052
0053 OLw = OLx
0054 OLe = OLx
0055 OLn = OLy
0056 OLs = OLy
0057 exchWidthX = OLx
0058 exchWidthY = OLy
0059 IF (useCubedSphereExchange) THEN
45d7b5cc4e Jean*0060 CALL EXCH1_Z_RX_CUBE( phi, .FALSE.,
ce7304455e Jean*0061 I OLw, OLe, OLs, OLn, myNz,
0062 I exchWidthX, exchWidthY,
45d7b5cc4e Jean*0063 I EXCH_UPDATE_CORNERS, myThid )
ce7304455e Jean*0064 ELSE
6979a1789e Jean*0065 #ifdef DISCONNECTED_TILES
0066 CALL EXCH0_RX( phi,
0067 I OLw, OLe, OLs, OLn, myNz,
0068 I exchWidthX, exchWidthY,
0069 I EXCH_UPDATE_CORNERS, myThid )
0070 #else /* DISCONNECTED_TILES */
45d7b5cc4e Jean*0071 CALL EXCH1_RX( phi,
ce7304455e Jean*0072 I OLw, OLe, OLs, OLn, myNz,
0073 I exchWidthX, exchWidthY,
45d7b5cc4e Jean*0074 I EXCH_UPDATE_CORNERS, myThid )
6979a1789e Jean*0075 #endif /* DISCONNECTED_TILES */
ce7304455e Jean*0076 ENDIF
0077
3e943aa97a Jean*0078 #endif /* ALLOW_EXCH2 */
6979a1789e Jean*0079
0080 RETURN
ce7304455e Jean*0081 END