Back to home page

MITgcm

 
 

    


File indexing completed on 2023-05-28 05:09:43 UTC

view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
b4daa24319 Shre*0001 #include "PACKAGES_CONFIG.h"
                0002 #include "CPP_EEOPTIONS.h"
                0003 
                0004 C--  File exch_tap_d.F: Tapenade Tangent Linear EXCH1 routines
                0005 C--   Contents
                0006 C--   o  EXCH1_UV_RL_CUBE_D
                0007 C--   o  EXCH1_UV_RS_CUBE_D
                0008 C--   o  EXCH1_RL_CUBE_D
                0009 C--   o  EXCH1_RS_CUBE_D
                0010 C--   o  EXCH1_RL_D
                0011 C--   o  EXCH1_RS_D
                0012 
                0013 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0014 
                0015       SUBROUTINE EXCH1_UV_RL_CUBE_D(
                0016      U                 Uarray, Uarrayd, Varray, Varrayd,
                0017      I                 withSigns,
                0018      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0019      I                 exchWidthX, exchWidthY,
                0020      I                 cornerMode, myThid )
                0021       IMPLICIT NONE
                0022 #include "SIZE.h"
                0023 #include "EEPARAMS.h"
                0024 
                0025       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0026       _RL     Uarray( 1-myOLw:sNx+myOLe,
                0027      &                1-myOLs:sNy+myOLn,
                0028      &                myNz, nSx, nSy )
                0029       _RL     Uarrayd( 1-myOLw:sNx+myOLe,
                0030      &                1-myOLs:sNy+myOLn,
                0031      &                myNz, nSx, nSy )
                0032       _RL     Varray( 1-myOLw:sNx+myOLe,
                0033      &                1-myOLs:sNy+myOLn,
                0034      &                myNz, nSx, nSy )
                0035       _RL     Varrayd( 1-myOLw:sNx+myOLe,
                0036      &                1-myOLs:sNy+myOLn,
                0037      &                myNz, nSx, nSy )
                0038       LOGICAL withSigns
                0039       INTEGER exchWidthX
                0040       INTEGER exchWidthY
                0041       INTEGER cornerMode
                0042       INTEGER myThid
                0043 
                0044       CALL EXCH1_UV_RL_CUBE(
                0045      &                 Uarray, Varray,
                0046      &                 withSigns,
                0047      &                 myOLw, myOLe, myOLs, myOLn, myNz,
                0048      &                 exchWidthX, exchWidthY,
                0049      &                 cornerMode, myThid )
                0050 
                0051       CALL EXCH1_UV_RL_CUBE(
                0052      &                 Uarrayd, Varrayd,
                0053      &                 withSigns,
                0054      &                 myOLw, myOLe, myOLs, myOLn, myNz,
                0055      &                 exchWidthX, exchWidthY,
                0056      &                 cornerMode, myThid )
                0057 
                0058       END
                0059 
                0060 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0061 
                0062       SUBROUTINE EXCH1_UV_RS_CUBE_D(
                0063      U                 Uarray, Uarrayd, Varray, Varrayd,
                0064      I                 withSigns,
                0065      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0066      I                 exchWidthX, exchWidthY,
                0067      I                 cornerMode, myThid )
                0068       IMPLICIT NONE
                0069 #include "SIZE.h"
                0070 #include "EEPARAMS.h"
                0071 
                0072       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0073       _RS     Uarray( 1-myOLw:sNx+myOLe,
                0074      &                1-myOLs:sNy+myOLn,
                0075      &                myNz, nSx, nSy )
                0076       _RS     Uarrayd( 1-myOLw:sNx+myOLe,
                0077      &                1-myOLs:sNy+myOLn,
                0078      &                myNz, nSx, nSy )
                0079       _RS     Varray( 1-myOLw:sNx+myOLe,
                0080      &                1-myOLs:sNy+myOLn,
                0081      &                myNz, nSx, nSy )
                0082       _RS     Varrayd( 1-myOLw:sNx+myOLe,
                0083      &                1-myOLs:sNy+myOLn,
                0084      &                myNz, nSx, nSy )
                0085       LOGICAL withSigns
                0086       INTEGER exchWidthX
                0087       INTEGER exchWidthY
                0088       INTEGER cornerMode
                0089       INTEGER myThid
                0090 
                0091       CALL EXCH1_UV_RS_CUBE(
                0092      &                 Uarray, Varray,
                0093      &                 withSigns,
                0094      &                 myOLw, myOLe, myOLs, myOLn, myNz,
                0095      &                 exchWidthX, exchWidthY,
                0096      &                 cornerMode, myThid )
                0097 
                0098       CALL EXCH1_UV_RS_CUBE(
                0099      &                 Uarrayd, Varrayd,
                0100      &                 withSigns,
                0101      &                 myOLw, myOLe, myOLs, myOLn, myNz,
                0102      &                 exchWidthX, exchWidthY,
                0103      &                 cornerMode, myThid )
                0104 
                0105       END
                0106 
                0107 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0108 
                0109       SUBROUTINE EXCH1_RL_CUBE_D(
                0110      U                 array, arrayd,
                0111      I                 withSigns,
                0112      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0113      I                 exchWidthX, exchWidthY,
                0114      I                 cornerMode, myThid )
                0115       IMPLICIT NONE
                0116 #include "SIZE.h"
                0117 #include "EEPARAMS.h"
                0118 
                0119       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0120       _RL     array( 1-myOLw:sNx+myOLe,
                0121      &               1-myOLs:sNy+myOLn,
                0122      &               myNz, nSx, nSy )
                0123       _RL     arrayd( 1-myOLw:sNx+myOLe,
                0124      &               1-myOLs:sNy+myOLn,
                0125      &               myNz, nSx, nSy )
                0126       LOGICAL withSigns
                0127       INTEGER exchWidthX
                0128       INTEGER exchWidthY
                0129       INTEGER cornerMode
                0130       INTEGER myThid
                0131 
                0132       CALL EXCH1_RL_CUBE(arrayd, withSigns,myOLw, myOLe, myOLs, myOLn,
                0133      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0134 
                0135       CALL EXCH1_RL_CUBE(array, withSigns,myOLw, myOLe, myOLs, myOLn,
                0136      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0137 
                0138       END
                0139 
                0140 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0141 
                0142       SUBROUTINE EXCH1_RS_CUBE_D(
                0143      U                 array, arrayd,
                0144      I                 withSigns,
                0145      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0146      I                 exchWidthX, exchWidthY,
                0147      I                 cornerMode, myThid )
                0148       IMPLICIT NONE
                0149 #include "SIZE.h"
                0150 #include "EEPARAMS.h"
                0151 
                0152       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0153       _RS     array( 1-myOLw:sNx+myOLe,
                0154      &               1-myOLs:sNy+myOLn,
                0155      &               myNz, nSx, nSy )
                0156       _RS     arrayd( 1-myOLw:sNx+myOLe,
                0157      &               1-myOLs:sNy+myOLn,
                0158      &               myNz, nSx, nSy )
                0159       LOGICAL withSigns
                0160       INTEGER exchWidthX
                0161       INTEGER exchWidthY
                0162       INTEGER cornerMode
                0163       INTEGER myThid
                0164 
                0165       CALL EXCH1_RS_CUBE(arrayd, withSigns,myOLw, myOLe, myOLs, myOLn,
                0166      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0167 
                0168       CALL EXCH1_RS_CUBE(array, withSigns,myOLw, myOLe, myOLs, myOLn,
                0169      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0170 
                0171       END
                0172 
                0173 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0174 
                0175       SUBROUTINE EXCH1_RL_D(
                0176      U                 array, arrayd,
                0177      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0178      I                 exchWidthX, exchWidthY,
                0179      I                 cornerMode, myThid )
                0180       IMPLICIT NONE
                0181 #include "SIZE.h"
                0182 #include "EEPARAMS.h"
                0183 #include "EXCH.h"
                0184 
                0185       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0186       _RL     array( 1-myOLw:sNx+myOLe,
                0187      &               1-myOLs:sNy+myOLn,
                0188      &               myNz, nSx, nSy )
                0189       _RL     arrayd( 1-myOLw:sNx+myOLe,
                0190      &               1-myOLs:sNy+myOLn,
                0191      &               myNz, nSx, nSy )
                0192       INTEGER exchWidthX
                0193       INTEGER exchWidthY
                0194       INTEGER cornerMode
                0195       INTEGER myThid
                0196 
                0197       CALL EXCH1_RL(arrayd,myOLw, myOLe, myOLs, myOLn,
                0198      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0199       CALL EXCH1_RL(array,myOLw, myOLe, myOLs, myOLn,
                0200      &     myNz, exchWidthX , exchWidthY, cornerMode, myThid )
                0201       END
                0202 
                0203 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0204 
                0205       SUBROUTINE EXCH1_RS_D(
                0206      U                 array, arrayd,
                0207      I                 myOLw, myOLe, myOLs, myOLn, myNz,
                0208      I                 exchWidthX, exchWidthY,
                0209      I                 cornerMode, myThid )
                0210       IMPLICIT NONE
                0211 #include "SIZE.h"
                0212 #include "EEPARAMS.h"
                0213 #include "EXCH.h"
                0214 
                0215       INTEGER myOLw, myOLe, myOLs, myOLn, myNz
                0216       _RS     array( 1-myOLw:sNx+myOLe,
                0217      &               1-myOLs:sNy+myOLn,
                0218      &               myNz, nSx, nSy )
                0219       _RS     arrayd( 1-myOLw:sNx+myOLe,
                0220      &               1-myOLs:sNy+myOLn,
                0221      &               myNz, nSx, nSy )
                0222       INTEGER exchWidthX
                0223       INTEGER exchWidthY
                0224       INTEGER cornerMode
                0225       INTEGER myThid
                0226 
                0227       CALL EXCH1_RS(arrayd, myOLw, myOLe, myOLs,
                0228      &     myOLn, myNz, exchWidthX, exchWidthY,
                0229      &     cornerMode, myThid)
                0230 
                0231       CALL EXCH1_RS(array, myOLw, myOLe, myOLs,
                0232      &     myOLn, myNz, exchWidthX, exchWidthY,
                0233      &     cornerMode, myThid)
                0234 
                0235       END