Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:37:52 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "AUTODIFF_OPTIONS.h"
12db830d08 Patr*0002 
c39faf5a93 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_loc     - Read  an active 2D variable from file.
                0009 C    o  active_read_xyz_loc    - Read  an active 3D variable from file.
                0010 C    o  active_read_xz_loc     - Read  an active 2D xz-slice from file.
                0011 C    o  active_read_yz_loc     - Read  an active 2D yz-slice from file.
                0012 C
                0013 C    o  active_write_xy_loc    - Write an active 2D variable to a file.
                0014 C    o  active_write_xyz_loc   - Write an active 3D variable to a file.
                0015 C    o  active_write_xz_loc    - Write an active 2D xz-slice to a file.
                0016 C    o  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: active_read_xy_loc
                0028 C     !INTERFACE:
                0029       subroutine active_read_xy_loc(
                0030      I                           active_var_file,
                0031      O                           active_var,
c39faf5a93 Jean*0032      I                           iRec,
12db830d08 Patr*0033      I                           doglobalread,
                0034      I                           lAdInit,
                0035      I                           myOptimIter,
c39faf5a93 Jean*0036      I                           myThid
12db830d08 Patr*0037      I                         , dummy
                0038      &                         )
                0039 
                0040 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0041 C     ==================================================================
                0042 C     SUBROUTINE active_read_xy_loc
                0043 C     ==================================================================
                0044 C     o Read an active 2D (XY) variable from file.
                0045 C     started: Christian Eckert eckert@mit.edu 30-Jun-1999
                0046 C     ==================================================================
12db830d08 Patr*0047 C     \ev
                0048 
                0049 C     !USES:
c39faf5a93 Jean*0050       IMPLICIT NONE
12db830d08 Patr*0051 
c39faf5a93 Jean*0052 C     == global variables ==
12db830d08 Patr*0053 #include "EEPARAMS.h"
                0054 #include "SIZE.h"
                0055 
                0056 C     !INPUT/OUTPUT PARAMETERS:
c39faf5a93 Jean*0057 C     active_var_file: filename
                0058 C     active_var:      array
                0059 C     iRec:            record number
                0060 C     myOptimIter:     number of optimization iteration (default: 0)
                0061 C     myThid:          thread number for this instance
                0062 C     doglobalread:    flag for global or local read/write
                0063 C                      (default: .false.)
                0064 C     lAdInit:         initialisation of corresponding adjoint
                0065 C                      variable and write to active file
                0066       CHARACTER*(*) active_var_file
                0067       _RL     active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0068       INTEGER iRec
                0069       INTEGER myOptimIter
                0070       INTEGER myThid
                0071       LOGICAL doglobalread
                0072       LOGICAL lAdInit
12db830d08 Patr*0073       _RL     dummy
                0074 
                0075 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0076       INTEGER myNr
                0077       LOGICAL useCurrentDir
12db830d08 Patr*0078 CEOP
                0079 
c39faf5a93 Jean*0080       myNr = 1
                0081       useCurrentDir = .TRUE.
                0082       CALL ACTIVE_READ_3D_RL(
                0083      &                 active_var_file, active_var, doglobalread,
                0084      &                 useCurrentDir, lAdInit, iRec, myNr,
                0085      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0086 
c39faf5a93 Jean*0087       RETURN
                0088       END
12db830d08 Patr*0089 
c39faf5a93 Jean*0090 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0091 CBOP
                0092 C     !ROUTINE: active_read_xyz_loc
                0093 C     !INTERFACE:
                0094       subroutine active_read_xyz_loc(
                0095      I                            active_var_file,
                0096      O                            active_var,
c39faf5a93 Jean*0097      I                            iRec,
12db830d08 Patr*0098      I                            doglobalread,
                0099      I                            lAdInit,
                0100      I                            myOptimIter,
c39faf5a93 Jean*0101      I                            myThid
12db830d08 Patr*0102      I                         , dummy
                0103      &                           )
                0104 
                0105 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0106 C     ==================================================================
                0107 C     SUBROUTINE active_read_xyz_loc
                0108 C     ==================================================================
                0109 C     o Read an active 3D variable from file.
                0110 C     started: Christian Eckert eckert@mit.edu 30-Jun-1999
                0111 C     ==================================================================
12db830d08 Patr*0112 C     \ev
                0113 
                0114 C     !USES:
c39faf5a93 Jean*0115       IMPLICIT NONE
12db830d08 Patr*0116 
c39faf5a93 Jean*0117 C     == global variables ==
12db830d08 Patr*0118 #include "EEPARAMS.h"
                0119 #include "SIZE.h"
                0120 
                0121 C     !INPUT/OUTPUT PARAMETERS:
c39faf5a93 Jean*0122 C     active_var_file: filename
                0123 C     active_var:      array
                0124 C     iRec:            record number
                0125 C     myOptimIter:     number of optimization iteration (default: 0)
                0126 C     myThid:          thread number for this instance
                0127 C     doglobalread:    flag for global or local read/write
                0128 C                      (default: .false.)
                0129 C     lAdInit:         initialisation of corresponding adjoint
                0130 C                      variable and write to active file
                0131       CHARACTER*(*) active_var_file
                0132       _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0133       INTEGER iRec
                0134       INTEGER myOptimIter
                0135       INTEGER myThid
                0136       LOGICAL doglobalread
                0137       LOGICAL lAdInit
12db830d08 Patr*0138       _RL     dummy
                0139 
                0140 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0141       INTEGER myNr
                0142       LOGICAL useCurrentDir
12db830d08 Patr*0143 CEOP
                0144 
c39faf5a93 Jean*0145       myNr = Nr
                0146       useCurrentDir = .TRUE.
                0147       CALL ACTIVE_READ_3D_RL(
                0148      &                 active_var_file, active_var, doglobalread,
                0149      &                 useCurrentDir, lAdInit, iRec, myNr,
                0150      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0151 
c39faf5a93 Jean*0152       RETURN
                0153       END
12db830d08 Patr*0154 
c39faf5a93 Jean*0155 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0156 CBOP
                0157 C     !ROUTINE: active_read_xz_loc
                0158 C     !INTERFACE:
                0159       subroutine active_read_xz_loc(
                0160      I                           active_var_file,
                0161      O                           active_var,
c39faf5a93 Jean*0162      I                           iRec,
12db830d08 Patr*0163      I                           doglobalread,
                0164      I                           lAdInit,
                0165      I                           myOptimIter,
c39faf5a93 Jean*0166      I                           myThid
12db830d08 Patr*0167      I                         , dummy
                0168      &                         )
                0169 
                0170 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0171 C     ==================================================================
                0172 C     SUBROUTINE active_read_xz_loc
                0173 C     ==================================================================
                0174 C     o Read an active 2D xz-slice from file.
                0175 C     started: heimbach@mit.edu 05-Mar-2001
                0176 C     ==================================================================
12db830d08 Patr*0177 C     \ev
                0178 
                0179 C     !USES:
c39faf5a93 Jean*0180       IMPLICIT NONE
12db830d08 Patr*0181 
c39faf5a93 Jean*0182 C     == global variables ==
12db830d08 Patr*0183 #include "EEPARAMS.h"
                0184 #include "SIZE.h"
                0185 
                0186 C     !INPUT/OUTPUT PARAMETERS:
c39faf5a93 Jean*0187 C     active_var_file: filename
                0188 C     active_var:      array
                0189 C     iRec:            record number
                0190 C     myOptimIter:     number of optimization iteration (default: 0)
                0191 C     myThid:          thread number for this instance
                0192 C     doglobalread:    flag for global or local read/write
                0193 C                      (default: .false.)
                0194 C     lAdInit:         initialisation of corresponding adjoint
                0195 C                      variable and write to active file
                0196       CHARACTER*(*) active_var_file
                0197       _RL     active_var(1-OLx:sNx+OLx,nSx,nSy)
                0198       INTEGER iRec
                0199       INTEGER myOptimIter
                0200       INTEGER myThid
                0201       LOGICAL doglobalread
                0202       LOGICAL lAdInit
12db830d08 Patr*0203       _RL     dummy
                0204 
                0205 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0206       INTEGER myNr
                0207       LOGICAL useCurrentDir
12db830d08 Patr*0208 CEOP
                0209 
c39faf5a93 Jean*0210       myNr = Nr
                0211       useCurrentDir = .TRUE.
                0212       CALL ACTIVE_READ_XZ_RL(
                0213      &                 active_var_file, active_var, doglobalread,
                0214      &                 useCurrentDir, lAdInit, iRec, myNr,
                0215      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0216 
c39faf5a93 Jean*0217       RETURN
                0218       END
12db830d08 Patr*0219 
c39faf5a93 Jean*0220 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0221 CBOP
                0222 C     !ROUTINE: active_read_yz_loc
                0223 C     !INTERFACE:
                0224        subroutine active_read_yz_loc(
                0225      I                           active_var_file,
                0226      O                           active_var,
c39faf5a93 Jean*0227      I                           iRec,
12db830d08 Patr*0228      I                           doglobalread,
                0229      I                           lAdInit,
                0230      I                           myOptimIter,
c39faf5a93 Jean*0231      I                           myThid
12db830d08 Patr*0232      I                         , dummy
                0233      &                         )
                0234 
                0235 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0236 C     ==================================================================
                0237 C     SUBROUTINE active_read_yz_loc
                0238 C     ==================================================================
                0239 C     o Read an active 2D yz-slice from file.
                0240 C     started: heimbach@mit.edu 05-Mar-2001
                0241 C     ==================================================================
12db830d08 Patr*0242 C     \ev
                0243 
c39faf5a93 Jean*0244       IMPLICIT NONE
12db830d08 Patr*0245 
c39faf5a93 Jean*0246 C     == global variables ==
12db830d08 Patr*0247 #include "EEPARAMS.h"
                0248 #include "SIZE.h"
                0249 
                0250 C     !INPUT/OUTPUT PARAMETERS:
c39faf5a93 Jean*0251 C     active_var_file: filename
                0252 C     active_var:      array
                0253 C     iRec:            record number
                0254 C     myOptimIter:     number of optimization iteration (default: 0)
                0255 C     myThid:          thread number for this instance
                0256 C     doglobalread:    flag for global or local read/write
                0257 C                      (default: .false.)
                0258 C     lAdInit:         initialisation of corresponding adjoint
                0259 C                      variable and write to active file
                0260       CHARACTER*(*) active_var_file
                0261       _RL     active_var(1-OLy:sNy+OLy,nSx,nSy)
                0262       INTEGER iRec
                0263       INTEGER myOptimIter
                0264       INTEGER myThid
                0265       LOGICAL doglobalread
                0266       LOGICAL lAdInit
12db830d08 Patr*0267       _RL     dummy
                0268 
                0269 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0270       INTEGER myNr
                0271       LOGICAL useCurrentDir
12db830d08 Patr*0272 CEOP
                0273 
c39faf5a93 Jean*0274       myNr = Nr
                0275       useCurrentDir = .TRUE.
                0276       CALL ACTIVE_READ_YZ_RL(
                0277      &                 active_var_file, active_var, doglobalread,
                0278      &                 useCurrentDir, lAdInit, iRec, myNr,
                0279      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0280 
c39faf5a93 Jean*0281       RETURN
                0282       END
12db830d08 Patr*0283 
c39faf5a93 Jean*0284 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0285 CBOP
                0286 C     !ROUTINE: active_write_xy_loc
                0287 C     !INTERFACE:
                0288       subroutine active_write_xy_loc(
                0289      I                            active_var_file,
                0290      I                            active_var,
c39faf5a93 Jean*0291      I                            iRec,
12db830d08 Patr*0292      I                            myOptimIter,
c39faf5a93 Jean*0293      I                            myThid
12db830d08 Patr*0294      I                         , dummy
                0295      &                          )
                0296 
                0297 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0298 C     ==================================================================
                0299 C     SUBROUTINE active_write_xy_loc
                0300 C     ==================================================================
                0301 C     o Write an active 2D variable to a file.
                0302 C     started: Christian Eckert eckert@mit.edu 30-Jun-1999
                0303 C     ==================================================================
12db830d08 Patr*0304 C     \ev
                0305 
                0306 C     !USES:
c39faf5a93 Jean*0307       IMPLICIT NONE
12db830d08 Patr*0308 
c39faf5a93 Jean*0309 C     == global variables ==
12db830d08 Patr*0310 #include "EEPARAMS.h"
                0311 #include "SIZE.h"
                0312 
c39faf5a93 Jean*0313 C     !INPUT/OUTPUT PARAMETERS:
                0314 C     active_var_file: filename
                0315 C     active_var:      array
                0316 C     iRec:            record number
                0317 C     myOptimIter:     number of optimization iteration (default: 0)
                0318 C     myThid:          thread number for this instance
                0319       CHARACTER*(*) active_var_file
                0320       _RL     active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0321       INTEGER iRec
                0322       INTEGER myOptimIter
                0323       INTEGER myThid
12db830d08 Patr*0324       _RL     dummy
                0325 
                0326 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0327       INTEGER myNr
                0328       LOGICAL globalFile
                0329       LOGICAL useCurrentDir
12db830d08 Patr*0330 CEOP
                0331 
c39faf5a93 Jean*0332       myNr = 1
                0333       globalFile = .FALSE.
                0334       useCurrentDir = .TRUE.
                0335       CALL ACTIVE_WRITE_3D_RL(
                0336      &                 active_var_file, active_var, globalFile,
                0337      &                 useCurrentDir, iRec, myNr,
                0338      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0339 
c39faf5a93 Jean*0340       RETURN
                0341       END
12db830d08 Patr*0342 
c39faf5a93 Jean*0343 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0344 CBOP
                0345 C     !ROUTINE: active_write_xyz_loc
                0346 C     !INTERFACE:
                0347       subroutine active_write_xyz_loc(
                0348      I                             active_var_file,
                0349      I                             active_var,
c39faf5a93 Jean*0350      I                             iRec,
12db830d08 Patr*0351      I                             myOptimIter,
c39faf5a93 Jean*0352      I                             myThid
12db830d08 Patr*0353      I                         , dummy
                0354      &                           )
                0355 
                0356 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0357 C     ==================================================================
                0358 C     SUBROUTINE active_write_xyz_loc
                0359 C     ==================================================================
                0360 C     o Write an active 3D variable to a file.
                0361 C     started: Christian Eckert eckert@mit.edu 30-Jun-1999
                0362 C     ==================================================================
12db830d08 Patr*0363 C     \ev
                0364 
                0365 C     !USES:
c39faf5a93 Jean*0366       IMPLICIT NONE
12db830d08 Patr*0367 
c39faf5a93 Jean*0368 C     == global variables ==
12db830d08 Patr*0369 #include "EEPARAMS.h"
                0370 #include "SIZE.h"
                0371 
c39faf5a93 Jean*0372 C     !INPUT/OUTPUT PARAMETERS:
                0373 C     active_var_file: filename
                0374 C     active_var:      array
                0375 C     iRec:            record number
                0376 C     myOptimIter:     number of optimization iteration (default: 0)
                0377 C     myThid:          thread number for this instance
                0378       CHARACTER*(*) active_var_file
                0379       _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0380       INTEGER iRec
                0381       INTEGER myOptimIter
                0382       INTEGER myThid
12db830d08 Patr*0383       _RL     dummy
                0384 
                0385 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0386       INTEGER myNr
                0387       LOGICAL globalFile
                0388       LOGICAL useCurrentDir
12db830d08 Patr*0389 CEOP
                0390 
c39faf5a93 Jean*0391       myNr = Nr
                0392       globalFile = .FALSE.
                0393       useCurrentDir = .TRUE.
                0394       CALL ACTIVE_WRITE_3D_RL(
                0395      &                 active_var_file, active_var, globalFile,
                0396      &                 useCurrentDir, iRec, myNr,
                0397      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0398 
c39faf5a93 Jean*0399       RETURN
                0400       END
12db830d08 Patr*0401 
c39faf5a93 Jean*0402 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0403 CBOP
                0404 C     !ROUTINE: active_write_xz_loc
                0405 C     !INTERFACE:
                0406       subroutine active_write_xz_loc(
                0407      I                            active_var_file,
                0408      I                            active_var,
c39faf5a93 Jean*0409      I                            iRec,
12db830d08 Patr*0410      I                            myOptimIter,
c39faf5a93 Jean*0411      I                            myThid
12db830d08 Patr*0412      I                         , dummy
                0413      &                          )
                0414 
                0415 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0416 C     ==================================================================
                0417 C     SUBROUTINE active_write_xz_loc
                0418 C     ==================================================================
                0419 C     o Write an active 2D xz-slice to a file.
                0420 C     started: heimbach@mit.edu 05-Mar-2001
                0421 C     ==================================================================
12db830d08 Patr*0422 C     \ev
                0423 
                0424 C     !USES:
c39faf5a93 Jean*0425       IMPLICIT NONE
12db830d08 Patr*0426 
c39faf5a93 Jean*0427 C     == global variables ==
12db830d08 Patr*0428 #include "EEPARAMS.h"
                0429 #include "SIZE.h"
                0430 
c39faf5a93 Jean*0431 C     !INPUT/OUTPUT PARAMETERS:
                0432 C     active_var_file: filename
                0433 C     active_var:      array
                0434 C     iRec:            record number
                0435 C     myOptimIter:     number of optimization iteration (default: 0)
                0436 C     myThid:          thread number for this instance
                0437       CHARACTER*(*) active_var_file
                0438       _RL     active_var(1-OLx:sNx+OLx,nSx,nSy)
                0439       INTEGER iRec
                0440       INTEGER myOptimIter
                0441       INTEGER myThid
12db830d08 Patr*0442       _RL     dummy
                0443 
                0444 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0445       INTEGER myNr
                0446       LOGICAL globalFile
                0447       LOGICAL useCurrentDir
12db830d08 Patr*0448 CEOP
                0449 
c39faf5a93 Jean*0450       myNr = Nr
                0451       globalFile = .FALSE.
                0452       useCurrentDir = .TRUE.
                0453       CALL ACTIVE_WRITE_XZ_RL(
                0454      &                 active_var_file, active_var, globalFile,
                0455      &                 useCurrentDir, iRec, myNr,
                0456      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0457 
c39faf5a93 Jean*0458       RETURN
                0459       END
12db830d08 Patr*0460 
c39faf5a93 Jean*0461 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12db830d08 Patr*0462 CBOP
                0463 C     !ROUTINE: active_write_yz_loc
                0464 C     !INTERFACE:
                0465       subroutine active_write_yz_loc(
                0466      I                            active_var_file,
                0467      I                            active_var,
c39faf5a93 Jean*0468      I                            iRec,
12db830d08 Patr*0469      I                            myOptimIter,
c39faf5a93 Jean*0470      I                            myThid
12db830d08 Patr*0471      I                         , dummy
                0472      &                          )
                0473 
                0474 C     !DESCRIPTION: \bv
c39faf5a93 Jean*0475 C     ==================================================================
                0476 C     SUBROUTINE active_write_yz_loc
                0477 C     ==================================================================
                0478 C     o Write an active 2D variable to a file.
                0479 C     started: heimbach@mit.edu 05-Mar-2001
                0480 C     ==================================================================
12db830d08 Patr*0481 C     \ev
                0482 
                0483 C     !USES:
c39faf5a93 Jean*0484       IMPLICIT NONE
12db830d08 Patr*0485 
c39faf5a93 Jean*0486 C     == global variables ==
12db830d08 Patr*0487 #include "EEPARAMS.h"
                0488 #include "SIZE.h"
                0489 
c39faf5a93 Jean*0490 C     !INPUT/OUTPUT PARAMETERS:
                0491 C     active_var_file: filename
                0492 C     active_var:      array
                0493 C     iRec:            record number
                0494 C     myOptimIter:     number of optimization iteration (default: 0)
                0495 C     myThid:          thread number for this instance
                0496       CHARACTER*(*) active_var_file
                0497       _RL     active_var(1-OLy:sNy+OLy,nSx,nSy)
                0498       INTEGER iRec
                0499       INTEGER myOptimIter
                0500       INTEGER myThid
12db830d08 Patr*0501       _RL     dummy
                0502 
                0503 C     !LOCAL VARIABLES:
c39faf5a93 Jean*0504       INTEGER myNr
                0505       LOGICAL globalFile
                0506       LOGICAL useCurrentDir
12db830d08 Patr*0507 CEOP
                0508 
c39faf5a93 Jean*0509       myNr = Nr
                0510       globalFile = .FALSE.
                0511       useCurrentDir = .TRUE.
                0512       CALL ACTIVE_WRITE_YZ_RL(
                0513      &                 active_var_file, active_var, globalFile,
                0514      &                 useCurrentDir, iRec, myNr,
                0515      &                 FORWARD_SIMULATION, myOptimIter, myThid )
12db830d08 Patr*0516 
c39faf5a93 Jean*0517       RETURN
                0518       END