Back to home page

MITgcm

 
 

    


File indexing completed on 2020-05-13 05:10:40 UTC

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