Back to home page

MITgcm

 
 

    


File indexing completed on 2025-11-07 06:08:37 UTC

view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
d8d1486ca1 Jean*0001 #include "KL10_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: KL10_READPARMS
                0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE KL10_READPARMS( myThid )
                0008 
                0009 C !DESCRIPTION:
                0010 C     Initialize KL10 parameters, read in data.kl10
                0011 
                0012 C !USES: ===============================================================
                0013       IMPLICIT NONE
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "KL10.h"
                0017 #include "PARAMS.h"
                0018 
                0019 C !INPUT PARAMETERS: ===================================================
                0020 C  myThid               :: thread number
                0021       INTEGER myThid
                0022 
                0023 C !OUTPUT PARAMETERS: ==================================================
                0024 C  none
                0025 
                0026 #ifdef ALLOW_KL10
                0027 
                0028 C !LOCAL VARIABLES: ====================================================
                0029 C  iUnit                :: unit number for I/O
                0030 C  msgBuf               :: message buffer
                0031       INTEGER iUnit
                0032       CHARACTER*(MAX_LEN_MBUF) msgBuf
b7411f1a84 Jean*0033 C--   retired parameters:
                0034       _RL KLtaveFreq
d8d1486ca1 Jean*0035 CEOP
                0036 
                0037       NAMELIST /KL10_PARM01/
                0038      &     KLviscMax,
                0039      &     KLdumpFreq,
                0040      &     KLwriteState,
                0041      &     KLtaveFreq
                0042 
                0043       IF ( .NOT.useKL10 ) THEN
                0044 C-    pkg KL10 is not used
                0045         _BEGIN_MASTER(myThid)
                0046 C-    Track pkg activation status:
                0047          KL10isON = .FALSE.
                0048 C     print a (weak) warning if data.kl10 is found
                0049          CALL PACKAGES_UNUSED_MSG( 'useKL10', ' ', ' ' )
                0050         _END_MASTER(myThid)
                0051         RETURN
                0052       ENDIF
                0053 
                0054       _BEGIN_MASTER(myThid)
                0055 
                0056 C This routine has been called by the main model so we set our
                0057 C internal flag to indicate we are in business
                0058       KL10isON = .TRUE.
                0059 
                0060 C Set defaults values for parameters in KL10.h
                0061       KLviscMax    = 300. _d 0
                0062       KLdumpFreq   = dumpFreq
                0063       KLwriteState = .FALSE.
b7411f1a84 Jean*0064       KLtaveFreq   = UNSET_RL
d8d1486ca1 Jean*0065 
                0066 C Open and read the data.kl10 file
                0067       WRITE(msgBuf,'(A)') ' KL10_READPARMS: opening data.kl10'
                0068       CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
                0069      &                   SQUEEZE_RIGHT , 1)
                0070       CALL OPEN_COPY_DATA_FILE(
                0071      I                   'data.kl10', 'KL10_READPARMS',
                0072      O                   iUnit,
                0073      I                   myThid )
                0074       READ(UNIT=iUnit,NML=KL10_PARM01)
                0075       WRITE(msgBuf,'(A)')
                0076      &  ' KL10_READPARMS: finished reading data.kl10'
                0077       CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
                0078      &                   SQUEEZE_RIGHT , 1)
                0079 
                0080 C Close the open data file
7a77863887 Mart*0081 #ifdef SINGLE_DISK_IO
d8d1486ca1 Jean*0082       CLOSE(iUnit)
7a77863887 Mart*0083 #else
                0084       CLOSE(iUnit,STATUS='DELETE')
                0085 #endif /* SINGLE_DISK_IO */
d8d1486ca1 Jean*0086 
b7411f1a84 Jean*0087 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0088 C--   Check for retired parameters:
                0089       IF ( KLtaveFreq .NE. UNSET_RL ) THEN
                0090         WRITE(msgBuf,'(2A)') 'KL10_READPARMS: "KLtaveFreq"',
                0091      &    ' is no longer allowed in file "data.kl10"'
                0092         CALL PRINT_ERROR( msgBuf, myThid )
                0093         WRITE(msgBuf,'(2A)') 'KL10_READPARMS: ',
                0094      &    ' since "pkg/timeave" has been removed.'
                0095         CALL PRINT_ERROR( msgBuf, myThid )
                0096 c       errCount = errCount + 1
                0097         STOP 'ABNORMAL END: S/R KL10_READPARMS'
                0098       ENDIF
d8d1486ca1 Jean*0099 
                0100 C Now set-up any remaining parameters that result from the input parameters
                0101       IF ( KLviscMax .LE. 0. ) THEN
b7411f1a84 Jean*0102         WRITE(msgBuf,'(A)') 'KLviscMax must be greater than zero'
                0103         CALL PRINT_ERROR( msgBuf , 1)
                0104         STOP 'ABNORMAL END: S/R KL10_READPARMS'
d8d1486ca1 Jean*0105       ENDIF
b7411f1a84 Jean*0106 
                0107       _END_MASTER(myThid)
                0108 
                0109 C Everyone else must wait for the parameters to be loaded
                0110       _BARRIER
d8d1486ca1 Jean*0111 #endif /* ALLOW_KL10 */
                0112 
                0113       RETURN
                0114       END