Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:42:51 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
b4d5e534c1 Step*0001 #include "OFFLINE_OPTIONS.h"
                0002 
                0003       SUBROUTINE OFFLINE_READPARMS( myThid )
ce5b6f2183 Jean*0004 C     *==========================================================*
                0005 C     | SUBROUTINE OFFLINE_READPARMS
                0006 C     | o Routine to initialize OFFLINE variables and constants.
                0007 C     *==========================================================*
                0008 C     | Initialize OFFLINE    parameters, read in data.off
                0009 C     *==========================================================*
b4d5e534c1 Step*0010       IMPLICIT NONE
                0011 
                0012 C     === Global variables ===
                0013 #include "SIZE.h"
                0014 #include "EEPARAMS.h"
                0015 #include "PARAMS.h"
                0016 #include "OFFLINE.h"
e6751e3c9f Jean*0017 #include "OFFLINE_SWITCH.h"
b4d5e534c1 Step*0018 
                0019 C     === Routine arguments ===
                0020       INTEGER myThid
                0021 
a5d7db336e Jean*0022 C     === Local variables ===
                0023 C     msgBuf     :: Informational/error message buffer
                0024 C     iUnit      :: Work variable for IO unit number
                0025       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0026       INTEGER iUnit
                0027 C     Retired main data.offline file parameters
                0028       CHARACTER*(MAX_LEN_FNAM) KPP_ghatFile
bdc15dcb10 Jean*0029       INTEGER offlineOffsetIter
a5d7db336e Jean*0030 
b4d5e534c1 Step*0031 C--   Bulk Formula parameter
                0032       NAMELIST /OFFLINE_PARM01/
e6751e3c9f Jean*0033      &         UvelFile, VvelFile, WvelFile, ThetFile, SaltFile,
                0034      &         GMwxFile, GMwyFile, GMwzFile,
                0035      &         ConvFile, KPP_DiffSFile, KPP_ghatKFile,
                0036      &         HFluxFile, SFluxFile, IceFile,
ce5b6f2183 Jean*0037      &         KPP_ghatFile
b4d5e534c1 Step*0038 
                0039       NAMELIST /OFFLINE_PARM02/
bdc15dcb10 Jean*0040      &         offlineIter0, deltaToffline, offlineTimeOffset,
                0041      &         offlineForcingPeriod, offlineForcingCycle,
                0042      &         offlineLoadPrec, offlineOffsetIter
b4d5e534c1 Step*0043 
a5d7db336e Jean*0044 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
b4d5e534c1 Step*0045 
ae4c29e0db Jean*0046       IF ( .NOT.useOffLine ) THEN
                0047 C-    pkg OFFLINE is not used
                0048         _BEGIN_MASTER(myThid)
                0049 C-    Track pkg activation status:
                0050 C     print a (weak) warning if data.off is found
                0051          CALL PACKAGES_UNUSED_MSG( 'useOffLine', ' ', 'off' )
                0052         _END_MASTER(myThid)
                0053         RETURN
                0054       ENDIF
                0055 
b4d5e534c1 Step*0056       _BEGIN_MASTER(myThid)
                0057 
                0058       WRITE(msgBuf,'(A)') ' OFFLINE_READPARMS: opening data.off'
                0059       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
ce5b6f2183 Jean*0060      &                    SQUEEZE_RIGHT, myThid )
                0061 
b4d5e534c1 Step*0062       CALL OPEN_COPY_DATA_FILE(
                0063      I                          'data.off', 'OFFLINE_READPARMS',
                0064      O                          iUnit,
                0065      I                          myThid )
                0066 
ce5b6f2183 Jean*0067 C--   Default values for params in OFFLINE_PARM01 :
e6751e3c9f Jean*0068       UvelFile = ' '
                0069       VvelFile = ' '
                0070       WvelFile = ' '
                0071       ThetFile = ' '
                0072       SaltFile = '  '
                0073       GMwxFile = ' '
                0074       GMwyFile = ' '
                0075       GMwzFile = ' '
                0076       ConvFile = ' '
                0077       KPP_DiffSFile= ' '
                0078       KPP_ghatKFile= ' '
                0079       KPP_ghatFile = 'KPP_ghatFile has been replaced by KPP_ghatKFile'
                0080       HFluxFile= ' '
                0081       SFluxFile= ' '
                0082       IceFile  = ' '
b4d5e534c1 Step*0083 
                0084 C--   Read parameters from open data file
                0085       READ(UNIT=iUnit,NML=OFFLINE_PARM01)
                0086 
ce5b6f2183 Jean*0087 C--   Default values for params in OFFLINE_PARM02 :
bdc15dcb10 Jean*0088       deltaToffline= deltaTclock
                0089       offlineIter0 = nIter0      !initial offline field timestep
                0090       offlineTimeOffset = 0.     !time offset
                0091       offlineOffsetIter = UNSET_I
                0092       offlineForcingPeriod = 2592000.
                0093       offlineForcingCycle = 31104000.
                0094       offlineLoadPrec = readBinaryPrec
ce5b6f2183 Jean*0095 
b4d5e534c1 Step*0096 C--   Read parameters from open data file
                0097       READ(UNIT=iUnit,NML=OFFLINE_PARM02)
                0098 
                0099       WRITE(msgBuf,'(A)')
                0100      &      ' OFFLINE_READPARMS: finished reading data.off'
                0101       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
ce5b6f2183 Jean*0102      &                    SQUEEZE_RIGHT, myThid )
b4d5e534c1 Step*0103 
                0104 C--   Close the open data file
7a77863887 Mart*0105 #ifdef SINGLE_DISK_IO
b4d5e534c1 Step*0106       CLOSE(iUnit)
7a77863887 Mart*0107 #else
                0108       CLOSE(iUnit,STATUS='DELETE')
                0109 #endif /* SINGLE_DISK_IO */
e6751e3c9f Jean*0110 
bdc15dcb10 Jean*0111 C--   Check for retired parameters still being used
                0112       IF ( KPP_ghatFile .NE.
                0113      &    'KPP_ghatFile has been replaced by KPP_ghatKFile' ) THEN
                0114 c       nRetired = nRetired+1
                0115         WRITE(msgBuf,'(A,A)') 'S/R OFFLINE_READPARMS: "KPP_ghatFile"',
                0116      &                     ' is no longer allowed in file "data.off"'
                0117         CALL PRINT_ERROR( msgBuf, myThid )
                0118         WRITE(msgBuf,'(A,A)') 'S/R OFFLINE_READPARMS: read instead ',
                0119      &           'the product ghat*diffKz from file "KPP_ghatKFile"'
                0120         CALL PRINT_ERROR( msgBuf, myThid )
                0121         STOP 'ABNORMAL END: S/R OFFLINE_READPARMS'
                0122       ENDIF
                0123       IF ( offlineOffsetIter .NE. UNSET_I ) THEN
                0124         WRITE(msgBuf,'(A,A)') 'S/R OFFLINE_READPARMS: ',
                0125      &   'offlineOffsetIter is no longer allowed in file "data.off"'
                0126         CALL PRINT_ERROR( msgBuf, myThid )
                0127         WRITE(msgBuf,'(A,A)') 'S/R OFFLINE_READPARMS: ',
                0128      &   'instead set "offlineTimeOffset" to OffsetIter*deltaToffline'
                0129         CALL PRINT_ERROR( msgBuf, myThid )
                0130         STOP 'ABNORMAL END: S/R OFFLINE_READPARMS'
                0131       ENDIF
                0132 
e6751e3c9f Jean*0133 C--   derive other parameters:
                0134       offlineLoadGMRedi = ( GMwxFile .NE. ' ' )
                0135      &                .OR.( GMwyFile .NE. ' ' )
                0136      &                .OR.( GMwzFile .NE. ' ' )
                0137       offlineLoadKPP    = ( KPP_DiffSFile .NE. ' ' )
                0138      &                .OR.( KPP_ghatKFile .NE. ' ' )
                0139       offlineLoadConvec = ( ConvFile .NE. ' ' )
                0140 
b4d5e534c1 Step*0141       _END_MASTER(myThid)
                0142 
                0143 C--   Everyone else must wait for the parameters to be loaded
                0144       _BARRIER
                0145 
2b1d1f88ad Jean*0146       RETURN
                0147       END