Warning, /eesupp/src/exch_xyz_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
372f3f7be0 Jean*0001 #include "PACKAGES_CONFIG.h"
aea29c8517 Alis*0002 #include "CPP_EEOPTIONS.h"
0003
43632c73d8 Jean*0004 CBOP
4c563c2ee9 Chri*0005 C !ROUTINE: EXCH_XYZ_RX
0006
0007 C !INTERFACE:
43632c73d8 Jean*0008 SUBROUTINE EXCH_XYZ_RX(
0009 U phi,
aea29c8517 Alis*0010 I myThid )
0011
4c563c2ee9 Chri*0012 C !DESCRIPTION:
0013 C *==========================================================*
43632c73d8 Jean*0014 C | SUBROUTINE EXCH_XYZ_RX
0015 C | o Handle exchanges for _RX, three-dim scalar arrays.
4c563c2ee9 Chri*0016 C *==========================================================*
0017 C | Invoke appropriate exchange routine depending on type
0018 C | of grid (cube or globally indexed) to be operated on.
0019 C *==========================================================*
0020
0021 C !USES:
43632c73d8 Jean*0022 IMPLICIT NONE
45d7b5cc4e Jean*0023
aea29c8517 Alis*0024 C === Global data ===
0025 #include "SIZE.h"
0026 #include "EEPARAMS.h"
0027
4c563c2ee9 Chri*0028 C !INPUT/OUTPUT PARAMETERS:
aea29c8517 Alis*0029 C === Routine arguments ===
4c563c2ee9 Chri*0030 C phi :: Array with overlap regions are to be exchanged
0031 C myThid :: My thread id.
aea29c8517 Alis*0032 _RX phi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
0033 INTEGER myThid
0034
4c563c2ee9 Chri*0035 C !LOCAL VARIABLES:
3e943aa97a Jean*0036 #ifndef ALLOW_EXCH2
aea29c8517 Alis*0037 C == Local variables ==
4c563c2ee9 Chri*0038 C OL[wens] :: Overlap extents in west, east, north, south.
0039 C exchWidth[XY] :: Extent of regions that will be exchanged.
aea29c8517 Alis*0040 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY, myNz
3e943aa97a Jean*0041 #endif
4c563c2ee9 Chri*0042 CEOP
0043
372f3f7be0 Jean*0044 #ifdef ALLOW_EXCH2
43632c73d8 Jean*0045 CALL EXCH2_3D_RX( phi, Nr, myThid )
3e943aa97a Jean*0046 #else /* ALLOW_EXCH2 */
372f3f7be0 Jean*0047
aea29c8517 Alis*0048 OLw = OLx
0049 OLe = OLx
0050 OLn = OLy
0051 OLs = OLy
0052 exchWidthX = OLx
0053 exchWidthY = OLy
0054 myNz = Nr
0055 IF (useCubedSphereExchange) THEN
45d7b5cc4e Jean*0056 CALL EXCH1_RX_CUBE( phi, .FALSE.,
aea29c8517 Alis*0057 I OLw, OLe, OLs, OLn, myNz,
0058 I exchWidthX, exchWidthY,
45d7b5cc4e Jean*0059 I EXCH_UPDATE_CORNERS, myThid )
aea29c8517 Alis*0060 ELSE
6979a1789e Jean*0061 #ifdef DISCONNECTED_TILES
0062 CALL EXCH0_RX( phi,
0063 I OLw, OLe, OLs, OLn, myNz,
0064 I exchWidthX, exchWidthY,
0065 I EXCH_UPDATE_CORNERS, myThid )
0066 #else /* DISCONNECTED_TILES */
45d7b5cc4e Jean*0067 CALL EXCH1_RX( phi,
aea29c8517 Alis*0068 I OLw, OLe, OLs, OLn, myNz,
0069 I exchWidthX, exchWidthY,
45d7b5cc4e Jean*0070 I EXCH_UPDATE_CORNERS, myThid )
6979a1789e Jean*0071 #endif /* DISCONNECTED_TILES */
aea29c8517 Alis*0072 ENDIF
0073
3e943aa97a Jean*0074 #endif /* ALLOW_EXCH2 */
6979a1789e Jean*0075
0076 RETURN
aea29c8517 Alis*0077 END