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