Back to home page

MITgcm

 
 

    


File indexing completed on 2023-07-14 05:10:08 UTC

view on githubraw file Latest commit de57a2ec on 2023-07-13 16:55:13 UTC
6d54cf9ca1 Ed H*0001 #include "AUTODIFF_OPTIONS.h"
12db830d08 Patr*0002 
c39faf5a93 Jean*0003 C     ==================================================================
                0004 C     active_files_ad.F: Routines to handle the I/O of the active file
                0005 C                        for the adjoint calculations. All files are
                0006 C                        direct access files.
                0007 C     Routines
                0008 C     o  adactive_read_xy_loc     - Adjoint of active_read_xy_loc
                0009 C     o  adactive_read_xyz_loc    - Adjoint of active_read_xyz_loc
                0010 C     o  adactive_read_xz_loc     - Adjoint of active_read_xz_loc
                0011 C     o  adactive_read_yz_loc     - Adjoint of active_read_yz_loc
                0012 C
                0013 C     o  adactive_write_xy_loc    - Adjoint of active_write_xy_loc
                0014 C     o  adactive_write_xyz_loc   - Adjoint of active_write_xyz_loc
                0015 C     o  adactive_write_xz_loc    - Adjoint of active_write_xz_loc
                0016 C     o  adactive_write_yz_loc    - Adjoint of active_write_yz_loc
                0017 C
                0018 C        changed: Christian Eckert eckert@mit.edu 24-Apr-2000
                0019 C                 - Added routines that do active writes on tiles
                0020 C                   instead of a whole thread.
                0021 C        changed: Patrick Heimbach heimbach@mit.edu 27-May-2000
                0022 C                 - changed suboutine argument list:
                0023 C                   dropped mycurrentiter, mycurrenttime
                0024 C        changed: heimbach@mit.edu 25-Mar-2002
                0025 C                 - added active file handling of xz-/yz-arrays
                0026 C     ==================================================================
                0027 
                0028 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0029 CBOP
                0030 C     !ROUTINE: adactive_read_xy_loc
                0031 C     !INTERFACE:
0a92c8c20d Patr*0032 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0033       subroutine adactive_read_xy_loc(
                0034      I                             active_var_file,
c39faf5a93 Jean*0035      I                             iRec,
12db830d08 Patr*0036      I                             doglobalread,
                0037      I                             lAdInit,
c39faf5a93 Jean*0038      I                             myIter,
                0039      I                             myThid,
12db830d08 Patr*0040      I                             adactive_var
                0041      &                           )
0a92c8c20d Patr*0042 #else
                0043       subroutine adactive_read_xy_loc(
                0044      I                             active_var_file,
                0045      I                             adactive_var,
c39faf5a93 Jean*0046      I                             iRec,
0a92c8c20d Patr*0047      I                             doglobalread,
                0048      I                             lAdInit,
c39faf5a93 Jean*0049      I                             myIter,
                0050      I                             myThid,
438282c1af Patr*0051      I                             dummy,
c39faf5a93 Jean*0052      O                             addummy
0a92c8c20d Patr*0053      &                           )
                0054 #endif
12db830d08 Patr*0055 
                0056 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0057 C     ==================================================================
                0058 C     SUBROUTINE adactive_read_xy_loc
                0059 C     ==================================================================
                0060 C     o Adjoint of active_read_xy_loc.
                0061 C     started: Christian Eckert eckert@mit.edu 24-May-1999
                0062 C     ==================================================================
12db830d08 Patr*0063 C     \ev
                0064 
                0065 C     !USES:
c39faf5a93 Jean*0066       IMPLICIT NONE
12db830d08 Patr*0067 
c39faf5a93 Jean*0068 C     == global variables ==
12db830d08 Patr*0069 #include "EEPARAMS.h"
                0070 #include "SIZE.h"
                0071 
                0072 C     !INPUT/OUTPUT PARAMETERS:
c39faf5a93 Jean*0073 C     active_var_file: filename
                0074 C     adactive_var:    array
                0075 C     iRec:            record number
                0076 C     myIter:          number of optimization iteration (default: 0)
                0077 C     myThid:          thread number for this instance
                0078 C     doglobalread:    flag for global or local read/write
                0079 C                      (default: .false.)
                0080 C     lAdInit:         initialisation of corresponding adjoint
                0081 C                      variable and write to active file
                0082       CHARACTER*(*) active_var_file
                0083       _RL     adactive_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0084       INTEGER iRec
                0085       INTEGER myIter,myThid
                0086       LOGICAL doglobalread
                0087       LOGICAL lAdInit
b4daa24319 Shre*0088 C Tags for IO: ctrl input and adjoint (gradient) output
                0089       _RL  dummy, addummy
12db830d08 Patr*0090 
c39faf5a93 Jean*0091 C     !LOCAL VARIABLES:
                0092       CHARACTER*(2) adpref
de57a2ec4b Mart*0093       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0094       INTEGER myNr
                0095       LOGICAL useCurrentDir
12db830d08 Patr*0096 CEOP
                0097 
                0098       adpref = 'ad'
f9d7cbfb72 Ou W*0099       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0100       myNr = 1
                0101       useCurrentDir = .TRUE.
12db830d08 Patr*0102 
c39faf5a93 Jean*0103       CALL ACTIVE_READ_3D_RL(
                0104      &                 fname, adactive_var, doglobalread,
                0105      &                 useCurrentDir, lAdInit, iRec, myNr,
                0106      &                 REVERSE_SIMULATION, myIter, myThid )
12db830d08 Patr*0107 
c39faf5a93 Jean*0108       RETURN
                0109       END
12db830d08 Patr*0110 
c39faf5a93 Jean*0111 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0112 CBOP
                0113 C     !ROUTINE: adactive_read_xyz_loc
                0114 C     !INTERFACE:
0a92c8c20d Patr*0115 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0116       subroutine adactive_read_xyz_loc(
                0117      I                              active_var_file,
c39faf5a93 Jean*0118      I                              iRec,
12db830d08 Patr*0119      I                              doglobalread,
                0120      I                              lAdInit,
c39faf5a93 Jean*0121      I                              myIter,
                0122      I                              myThid,
12db830d08 Patr*0123      I                              adactive_var
                0124      &                            )
0a92c8c20d Patr*0125 #else
                0126       subroutine adactive_read_xyz_loc(
                0127      I                              active_var_file,
                0128      I                              adactive_var,
c39faf5a93 Jean*0129      I                              iRec,
0a92c8c20d Patr*0130      I                              doglobalread,
                0131      I                              lAdInit,
c39faf5a93 Jean*0132      I                              myIter,
                0133      I                              myThid,
438282c1af Patr*0134      I                              dummy,
                0135      I                              addummy
0a92c8c20d Patr*0136      &                            )
                0137 #endif
12db830d08 Patr*0138 
                0139 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0140 C     ==================================================================
                0141 C     SUBROUTINE adactive_read_xyz_loc
                0142 C     ==================================================================
                0143 C     o Adjoint of active_read_xyz_loc.
                0144 C     started: Christian Eckert eckert@mit.edu 24-May-1999
                0145 C     ==================================================================
12db830d08 Patr*0146 C     \ev
                0147 
                0148 C     !USES:
c39faf5a93 Jean*0149       IMPLICIT NONE
12db830d08 Patr*0150 
c39faf5a93 Jean*0151 C     == global variables ==
12db830d08 Patr*0152 #include "EEPARAMS.h"
                0153 #include "SIZE.h"
                0154 
c39faf5a93 Jean*0155 C     !INPUT/OUTPUT PARAMETERS:
                0156 C     active_var_file: filename
                0157 C     adactive_var:    array
                0158 C     iRec:            record number
                0159 C     myIter:          number of optimization iteration (default: 0)
                0160 C     myThid:          thread number for this instance
                0161 C     doglobalread:    flag for global or local read/write
                0162 C                      (default: .false.)
                0163 C     lAdInit:         initialisation of corresponding adjoint
                0164 C                      variable and write to active file
                0165       CHARACTER*(*) active_var_file
                0166       _RL     adactive_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0167       INTEGER iRec
                0168       INTEGER myIter,myThid
                0169       LOGICAL doglobalread
                0170       LOGICAL lAdInit
b4daa24319 Shre*0171 C Tags for IO: ctrl input and adjoint (gradient) output
                0172       _RL  dummy, addummy
12db830d08 Patr*0173 
c39faf5a93 Jean*0174 C     !LOCAL VARIABLES:
                0175       CHARACTER*(2) adpref
de57a2ec4b Mart*0176       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0177       INTEGER myNr
                0178       LOGICAL useCurrentDir
12db830d08 Patr*0179 CEOP
                0180 
                0181       adpref = 'ad'
f9d7cbfb72 Ou W*0182       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0183       myNr = Nr
                0184       useCurrentDir = .TRUE.
12db830d08 Patr*0185 
c39faf5a93 Jean*0186       CALL ACTIVE_READ_3D_RL(
                0187      &                 fname, adactive_var, doglobalread,
                0188      &                 useCurrentDir, lAdInit, iRec, myNr,
                0189      &                 REVERSE_SIMULATION, myIter, myThid )
12db830d08 Patr*0190 
c39faf5a93 Jean*0191       RETURN
                0192       END
12db830d08 Patr*0193 
c39faf5a93 Jean*0194 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0195 CBOP
                0196 C     !ROUTINE: adactive_read_xz_loc
                0197 C     !INTERFACE:
0a92c8c20d Patr*0198 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0199       subroutine adactive_read_xz_loc(
                0200      I                              active_var_file,
c39faf5a93 Jean*0201      I                              iRec,
12db830d08 Patr*0202      I                              doglobalread,
                0203      I                              lAdInit,
c39faf5a93 Jean*0204      I                              myIter,
                0205      I                              myThid,
12db830d08 Patr*0206      I                              adactive_var
                0207      &                            )
0a92c8c20d Patr*0208 #else
                0209       subroutine adactive_read_xz_loc(
                0210      I                              active_var_file,
                0211      I                              adactive_var,
c39faf5a93 Jean*0212      I                              iRec,
0a92c8c20d Patr*0213      I                              doglobalread,
                0214      I                              lAdInit,
c39faf5a93 Jean*0215      I                              myIter,
                0216      I                              myThid,
438282c1af Patr*0217      I                              dummy,
c39faf5a93 Jean*0218      O                              addummy
0a92c8c20d Patr*0219      &                            )
                0220 #endif
12db830d08 Patr*0221 
                0222 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0223 C     ==================================================================
                0224 C     SUBROUTINE adactive_read_xz_loc
                0225 C     ==================================================================
                0226 C     o Adjoint of active_read_xz_loc.
                0227 C     started: heimbach@mit.edu 05-Mar-2001
                0228 C     ==================================================================
12db830d08 Patr*0229 C     \ev
                0230 
                0231 C     !USES:
c39faf5a93 Jean*0232       IMPLICIT NONE
12db830d08 Patr*0233 
c39faf5a93 Jean*0234 C     == global variables ==
12db830d08 Patr*0235 #include "EEPARAMS.h"
                0236 #include "SIZE.h"
                0237 
c39faf5a93 Jean*0238 C     !INPUT/OUTPUT PARAMETERS:
                0239 C     active_var_file: filename
                0240 C     adactive_var:    array
                0241 C     iRec:            record number
                0242 C     myIter:          number of optimization iteration (default: 0)
                0243 C     myThid:          thread number for this instance
                0244 C     doglobalread:    flag for global or local read/write
                0245 C                      (default: .false.)
                0246 C     lAdInit:         initialisation of corresponding adjoint
                0247 C                      variable and write to active file
                0248       CHARACTER*(*) active_var_file
                0249       _RL     adactive_var(1-OLx:sNx+OLx,Nr,nSx,nSy)
                0250       INTEGER iRec
                0251       INTEGER myIter,myThid
                0252       LOGICAL doglobalread
                0253       LOGICAL lAdInit
b4daa24319 Shre*0254 C Tags for IO: ctrl input and adjoint (gradient) output
                0255       _RL  dummy, addummy
12db830d08 Patr*0256 
c39faf5a93 Jean*0257 C     !LOCAL VARIABLES:
                0258       CHARACTER*(2) adpref
de57a2ec4b Mart*0259       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0260       INTEGER myNr
                0261       LOGICAL useCurrentDir
12db830d08 Patr*0262 CEOP
                0263 
                0264       adpref = 'ad'
f9d7cbfb72 Ou W*0265       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0266       myNr = Nr
                0267       useCurrentDir = .TRUE.
12db830d08 Patr*0268 
c39faf5a93 Jean*0269       CALL ACTIVE_READ_XZ_RL(
                0270      &                 fname, adactive_var, doglobalread,
                0271      &                 useCurrentDir, lAdInit, iRec, myNr,
                0272      &                 REVERSE_SIMULATION, myIter, myThid )
12db830d08 Patr*0273 
c39faf5a93 Jean*0274       RETURN
                0275       END
12db830d08 Patr*0276 
c39faf5a93 Jean*0277 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0278 CBOP
                0279 C     !ROUTINE: adactive_read_yz_loc
                0280 C     !INTERFACE:
0a92c8c20d Patr*0281 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0282       subroutine adactive_read_yz_loc(
                0283      I                              active_var_file,
c39faf5a93 Jean*0284      I                              iRec,
12db830d08 Patr*0285      I                              doglobalread,
                0286      I                              lAdInit,
c39faf5a93 Jean*0287      I                              myIter,
                0288      I                              myThid,
12db830d08 Patr*0289      I                              adactive_var
                0290      &                            )
0a92c8c20d Patr*0291 #else
                0292       subroutine adactive_read_yz_loc(
                0293      I                              active_var_file,
                0294      I                              adactive_var,
c39faf5a93 Jean*0295      I                              iRec,
0a92c8c20d Patr*0296      I                              doglobalread,
                0297      I                              lAdInit,
c39faf5a93 Jean*0298      I                              myIter,
                0299      I                              myThid,
438282c1af Patr*0300      I                              dummy,
                0301      O                              addummy
0a92c8c20d Patr*0302      &                            )
                0303 #endif
12db830d08 Patr*0304 
                0305 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0306 C     ==================================================================
                0307 C     SUBROUTINE adactive_read_yz_loc
                0308 C     ==================================================================
                0309 C     o Adjoint of active_read_yz_loc.
                0310 C     started: heimbach@mit.edu 05-Mar-2001
                0311 C     ==================================================================
12db830d08 Patr*0312 C     \ev
                0313 
                0314 C     !USES:
c39faf5a93 Jean*0315       IMPLICIT NONE
12db830d08 Patr*0316 
c39faf5a93 Jean*0317 C     == global variables ==
12db830d08 Patr*0318 #include "EEPARAMS.h"
                0319 #include "SIZE.h"
                0320 
c39faf5a93 Jean*0321 C     !INPUT/OUTPUT PARAMETERS:
                0322 C     active_var_file: filename
                0323 C     adactive_var:    array
                0324 C     iRec:            record number
                0325 C     myIter:          number of optimization iteration (default: 0)
                0326 C     myThid:          thread number for this instance
                0327 C     doglobalread:    flag for global or local read/write
                0328 C                      (default: .false.)
                0329 C     lAdInit:         initialisation of corresponding adjoint
                0330 C                      variable and write to active file
                0331       CHARACTER*(*) active_var_file
                0332       _RL     adactive_var(1-OLy:sNy+OLy,Nr,nSx,nSy)
                0333       INTEGER iRec
                0334       INTEGER myIter,myThid
                0335       LOGICAL doglobalread
                0336       LOGICAL lAdInit
b4daa24319 Shre*0337 C Tags for IO: ctrl input and adjoint (gradient) output
                0338       _RL  dummy, addummy
12db830d08 Patr*0339 
c39faf5a93 Jean*0340 C     !LOCAL VARIABLES:
                0341       CHARACTER*(2) adpref
de57a2ec4b Mart*0342       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0343       INTEGER myNr
                0344       LOGICAL useCurrentDir
12db830d08 Patr*0345 CEOP
                0346 
                0347       adpref = 'ad'
f9d7cbfb72 Ou W*0348       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0349       myNr = Nr
                0350       useCurrentDir = .TRUE.
12db830d08 Patr*0351 
c39faf5a93 Jean*0352       CALL ACTIVE_READ_YZ_RL(
                0353      &                 fname, adactive_var, doglobalread,
                0354      &                 useCurrentDir, lAdInit, iRec, myNr,
                0355      &                 REVERSE_SIMULATION, myIter, myThid )
12db830d08 Patr*0356 
c39faf5a93 Jean*0357       RETURN
                0358       END
12db830d08 Patr*0359 
c39faf5a93 Jean*0360 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0361 CBOP
c39faf5a93 Jean*0362 C     !ROUTINE: adactive_write_xy_loc
12db830d08 Patr*0363 C     !INTERFACE:
0a92c8c20d Patr*0364 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0365       subroutine adactive_write_xy_loc(
                0366      I                              active_var_file,
c39faf5a93 Jean*0367      I                              iRec,
                0368      I                              myIter,
                0369      I                              myThid,
12db830d08 Patr*0370      U                              adactive_var,
                0371      I                              dummy
                0372      &                            )
0a92c8c20d Patr*0373 #else
                0374       subroutine adactive_write_xy_loc(
                0375      I                              active_var_file,
                0376      U                              adactive_var,
c39faf5a93 Jean*0377      I                              iRec,
                0378      I                              myIter,
                0379      I                              myThid,
0a92c8c20d Patr*0380      I                              dummy
                0381      &                            )
                0382 #endif
12db830d08 Patr*0383 
                0384 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0385 C     ==================================================================
                0386 C     SUBROUTINE adactive_write_xy_loc
                0387 C     ==================================================================
                0388 C     o Adjoint of active_write_xy_loc.
                0389 C     started: Christian Eckert eckert@mit.edu 24-May-1999
                0390 C     ==================================================================
12db830d08 Patr*0391 C     \ev
                0392 
                0393 C     !USES:
c39faf5a93 Jean*0394       IMPLICIT NONE
12db830d08 Patr*0395 
c39faf5a93 Jean*0396 C     == global variables ==
12db830d08 Patr*0397 #include "EEPARAMS.h"
                0398 #include "SIZE.h"
                0399 
c39faf5a93 Jean*0400 C     !INPUT/OUTPUT PARAMETERS:
                0401 C     active_var_file: filename
                0402 C     adactive_var:    array
                0403 C     iRec:            record number
                0404 C     myIter:          number of optimization iteration (default: 0)
                0405 C     myThid:          thread number for this instance
                0406       CHARACTER*(*) active_var_file
                0407       _RL     adactive_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0408       INTEGER iRec
                0409       INTEGER myIter,myThid
12db830d08 Patr*0410       _RL     dummy
                0411 
                0412 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0413       CHARACTER*(2) adpref
de57a2ec4b Mart*0414       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0415       INTEGER myNr
                0416       LOGICAL globalFile
                0417       LOGICAL useCurrentDir
12db830d08 Patr*0418 CEOP
                0419 
                0420       adpref = 'ad'
f9d7cbfb72 Ou W*0421       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0422       myNr = 1
                0423       globalFile = .FALSE.
                0424       useCurrentDir = .TRUE.
                0425 
                0426       CALL ACTIVE_WRITE_3D_RL(
                0427      &                 fname, adactive_var, globalFile,
                0428      &                 useCurrentDir, iRec, myNr,
                0429      &                 REVERSE_SIMULATION, myIter, myThid )
                0430 
                0431       RETURN
                0432       END
                0433 
                0434 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0435 CBOP
c39faf5a93 Jean*0436 C     !ROUTINE: adactive_write_xyz_loc
12db830d08 Patr*0437 C     !INTERFACE:
0a92c8c20d Patr*0438 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0439       subroutine adactive_write_xyz_loc(
                0440      I                               active_var_file,
c39faf5a93 Jean*0441      I                               iRec,
                0442      I                               myIter,
                0443      I                               myThid,
12db830d08 Patr*0444      U                               adactive_var,
                0445      I                               dummy
                0446      &                             )
0a92c8c20d Patr*0447 #else
                0448       subroutine adactive_write_xyz_loc(
                0449      I                               active_var_file,
                0450      U                               adactive_var,
c39faf5a93 Jean*0451      I                               iRec,
                0452      I                               myIter,
                0453      I                               myThid,
0a92c8c20d Patr*0454      I                               dummy
                0455      &                             )
                0456 #endif
12db830d08 Patr*0457 
                0458 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0459 C     ==================================================================
                0460 C     SUBROUTINE adactive_write_xyz_loc
                0461 C     ==================================================================
                0462 C     o Adjoint of active_write_xyz_loc.
                0463 C     started: Christian Eckert eckert@mit.edu 24-May-1999
                0464 C     ==================================================================
12db830d08 Patr*0465 C     \ev
                0466 
                0467 C     !USES:
c39faf5a93 Jean*0468       IMPLICIT NONE
12db830d08 Patr*0469 
c39faf5a93 Jean*0470 C     == global variables ==
12db830d08 Patr*0471 #include "EEPARAMS.h"
                0472 #include "SIZE.h"
                0473 
c39faf5a93 Jean*0474 C     !INPUT/OUTPUT PARAMETERS:
                0475 C     active_var_file: filename
                0476 C     adactive_var:    array
                0477 C     iRec:            record number
                0478 C     myIter:          number of optimization iteration (default: 0)
                0479 C     myThid:          thread number for this instance
                0480       CHARACTER*(*) active_var_file
                0481       _RL     adactive_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0482       INTEGER iRec
                0483       INTEGER myIter,myThid
12db830d08 Patr*0484       _RL dummy
                0485 
                0486 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0487       CHARACTER*(2) adpref
de57a2ec4b Mart*0488       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0489       INTEGER myNr
                0490       LOGICAL globalFile
                0491       LOGICAL useCurrentDir
12db830d08 Patr*0492 CEOP
                0493 
                0494       adpref = 'ad'
f9d7cbfb72 Ou W*0495       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0496       myNr = Nr
                0497       globalFile = .FALSE.
                0498       useCurrentDir = .TRUE.
                0499 
                0500       CALL ACTIVE_WRITE_3D_RL(
                0501      &                 fname, adactive_var, globalFile,
                0502      &                 useCurrentDir, iRec, myNr,
                0503      &                 REVERSE_SIMULATION, myIter, myThid )
                0504 
                0505       RETURN
                0506       END
                0507 
                0508 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0509 CBOP
c39faf5a93 Jean*0510 C     !ROUTINE: adactive_write_xz_loc
12db830d08 Patr*0511 C     !INTERFACE:
0a92c8c20d Patr*0512 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0513       subroutine adactive_write_xz_loc(
                0514      I                               active_var_file,
c39faf5a93 Jean*0515      I                               iRec,
                0516      I                               myIter,
                0517      I                               myThid,
12db830d08 Patr*0518      U                               adactive_var,
                0519      I                               dummy
                0520      &                             )
0a92c8c20d Patr*0521 #else
                0522       subroutine adactive_write_xz_loc(
                0523      I                               active_var_file,
                0524      U                               adactive_var,
c39faf5a93 Jean*0525      I                               iRec,
                0526      I                               myIter,
                0527      I                               myThid,
0a92c8c20d Patr*0528      I                               dummy
                0529      &                             )
                0530 #endif
12db830d08 Patr*0531 
                0532 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0533 C     ==================================================================
                0534 C     SUBROUTINE adactive_write_xz_loc
                0535 C     ==================================================================
                0536 C     o Adjoint of active_write_xz_loc.
                0537 C     started: heimbach@mit.edu 05-Mar-2001
                0538 C     ==================================================================
12db830d08 Patr*0539 C     \ev
                0540 
                0541 C     !USES:
c39faf5a93 Jean*0542       IMPLICIT NONE
12db830d08 Patr*0543 
c39faf5a93 Jean*0544 C     == global variables ==
12db830d08 Patr*0545 #include "EEPARAMS.h"
                0546 #include "SIZE.h"
                0547 
c39faf5a93 Jean*0548 C     !INPUT/OUTPUT PARAMETERS:
                0549 C     active_var_file: filename
                0550 C     adactive_var:    array
                0551 C     iRec:            record number
                0552 C     myIter:          number of optimization iteration (default: 0)
                0553 C     myThid:          thread number for this instance
                0554       CHARACTER*(*) active_var_file
                0555       _RL     adactive_var(1-OLx:sNx+OLx,Nr,nSx,nSy)
                0556       INTEGER iRec
                0557       INTEGER myIter,myThid
12db830d08 Patr*0558       _RL dummy
                0559 
                0560 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0561       CHARACTER*(2) adpref
de57a2ec4b Mart*0562       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0563       INTEGER myNr
                0564       LOGICAL globalFile
                0565       LOGICAL useCurrentDir
12db830d08 Patr*0566 CEOP
                0567 
                0568       adpref = 'ad'
f9d7cbfb72 Ou W*0569       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0570       myNr = Nr
                0571       globalFile = .FALSE.
                0572       useCurrentDir = .TRUE.
                0573 
                0574       CALL ACTIVE_WRITE_XZ_RL(
                0575      &                 fname, adactive_var, globalFile,
                0576      &                 useCurrentDir, iRec, myNr,
                0577      &                 REVERSE_SIMULATION, myIter, myThid )
                0578 
                0579       RETURN
                0580       END
                0581 
                0582 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0583 CBOP
c39faf5a93 Jean*0584 C     !ROUTINE: adactive_write_yz_loc
12db830d08 Patr*0585 C     !INTERFACE:
0a92c8c20d Patr*0586 #ifdef AUTODIFF_TAMC_COMPATIBILITY
12db830d08 Patr*0587       subroutine adactive_write_yz_loc(
                0588      I                               active_var_file,
c39faf5a93 Jean*0589      I                               iRec,
                0590      I                               myIter,
                0591      I                               myThid,
12db830d08 Patr*0592      U                               adactive_var,
                0593      I                               dummy
                0594      &                             )
0a92c8c20d Patr*0595 #else
                0596       subroutine adactive_write_yz_loc(
                0597      I                               active_var_file,
                0598      U                               adactive_var,
c39faf5a93 Jean*0599      I                               iRec,
                0600      I                               myIter,
                0601      I                               myThid,
0a92c8c20d Patr*0602      I                               dummy
                0603      &                             )
                0604 #endif
12db830d08 Patr*0605 
                0606 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0607 C     ==================================================================
                0608 C     SUBROUTINE adactive_write_yz_loc
                0609 C     ==================================================================
                0610 C     o Adjoint of active_write_yz_loc.
                0611 C     started: heimbach@mit.edu 05-Mar-2001
                0612 C     ==================================================================
12db830d08 Patr*0613 C     \ev
                0614 
                0615 C     !USES:
c39faf5a93 Jean*0616       IMPLICIT NONE
12db830d08 Patr*0617 
c39faf5a93 Jean*0618 C     == global variables ==
12db830d08 Patr*0619 #include "EEPARAMS.h"
                0620 #include "SIZE.h"
                0621 
c39faf5a93 Jean*0622 C     !INPUT/OUTPUT PARAMETERS:
                0623 C     active_var_file: filename
                0624 C     adactive_var:    array
                0625 C     iRec:            record number
                0626 C     myIter:          number of optimization iteration (default: 0)
                0627 C     myThid:          thread number for this instance
                0628       CHARACTER*(*) active_var_file
                0629       _RL     adactive_var(1-OLy:sNy+OLy,Nr,nSx,nSy)
                0630       INTEGER iRec
                0631       INTEGER myIter,myThid
12db830d08 Patr*0632       _RL dummy
                0633 
                0634 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0635       CHARACTER*(2) adpref
de57a2ec4b Mart*0636       CHARACTER*(MAX_LEN_FNAM) fname
c39faf5a93 Jean*0637       INTEGER myNr
                0638       LOGICAL globalFile
                0639       LOGICAL useCurrentDir
12db830d08 Patr*0640 CEOP
                0641 
                0642       adpref = 'ad'
f9d7cbfb72 Ou W*0643       CALL ADD_PREFIX( adpref, active_var_file, fname )
c39faf5a93 Jean*0644       myNr = Nr
                0645       globalFile = .FALSE.
                0646       useCurrentDir = .TRUE.
                0647 
                0648       CALL ACTIVE_WRITE_YZ_RL(
                0649      &                 fname, adactive_var, globalFile,
                0650      &                 useCurrentDir, iRec, myNr,
                0651      &                 REVERSE_SIMULATION, myIter, myThid )
                0652 
                0653       RETURN
                0654       END