Back to home page

MITgcm

 
 

    


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