Back to home page

MITgcm

 
 

    


File indexing completed on 2021-11-06 05:18:24 UTC

view on githubraw file Latest commit 016b84c4 on 2021-11-02 20:24:44 UTC
08be60903a Mart*0001 #include "MY82_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: MY82_READPARMS
                0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE MY82_READPARMS( myThid )
                0008 
                0009 C !DESCRIPTION:
                0010 C     Initialize MY82 parameters, read in data.pp
                0011 
                0012 C !USES: ===============================================================
                0013       IMPLICIT NONE
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "PARAMS.h"
016b84c482 Mart*0017 #include "MY82.h"
08be60903a Mart*0018 
                0019 C !INPUT PARAMETERS: ===================================================
fb62f539dc Jean*0020 C  myThid       :: thread number
08be60903a Mart*0021       INTEGER myThid
                0022 
                0023 C !OUTPUT PARAMETERS: ==================================================
                0024 C  none
                0025 
                0026 #ifdef ALLOW_MY82
                0027 
                0028 C !LOCAL VARIABLES: ====================================================
fb62f539dc Jean*0029 C  iUnit        :: unit number for I/O
                0030 C  msgBuf       :: message buffer
08be60903a Mart*0031       INTEGER iUnit
                0032       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0033 CEOP
                0034 
                0035       NAMELIST /MY_PARM01/
fb62f539dc Jean*0036      &     MYviscMax,
                0037      &     MYdiffMax,
08be60903a Mart*0038      &     MYhblScale,
                0039      &     MYdumpFreq,
                0040      &     MYMixingMaps,
016b84c482 Mart*0041      &     MYwriteState
08be60903a Mart*0042 
ae4c29e0db Jean*0043 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0044 
                0045       IF ( .NOT.useMY82 ) THEN
                0046 C-    pkg MY82 is not used
                0047         _BEGIN_MASTER(myThid)
                0048 C-    Track pkg activation status:
                0049          MYisON = .FALSE.
                0050 C     print a (weak) warning if data.my82 is found
                0051          CALL PACKAGES_UNUSED_MSG( 'useMY82', ' ', ' ' )
                0052         _END_MASTER(myThid)
                0053         RETURN
                0054       ENDIF
                0055 
08be60903a Mart*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
ae4c29e0db Jean*0058       MYisON = .TRUE.
08be60903a Mart*0059 
                0060 C Set defaults values for parameters in MY82.h
                0061       MYviscMax    = 1. _d 0
                0062       MYdiffMax    = 1. _d 0
fb62f539dc Jean*0063       MYhblScale   = 0.1 _d 0
                0064       RiMax        = 0.1950 _d 0
08be60903a Mart*0065       MYdumpFreq   = dumpFreq
                0066       MYMixingMaps = .FALSE.
                0067       MYwriteState = .FALSE.
                0068 
                0069 C Open and read the data.pp file
                0070       _BEGIN_MASTER(myThid)
                0071       WRITE(msgBuf,'(A)') ' MY82_READPARMS: opening data.my82'
                0072       CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
                0073      &                   SQUEEZE_RIGHT , 1)
                0074       CALL OPEN_COPY_DATA_FILE(
                0075      I                   'data.my82', 'MY82_READPARMS',
                0076      O                   iUnit,
                0077      I                   myThid )
                0078       READ(UNIT=iUnit,NML=MY_PARM01)
                0079       WRITE(msgBuf,'(A)')
                0080      &  ' MY82_READPARMS: finished reading data.my82'
                0081       CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
                0082      &                   SQUEEZE_RIGHT , 1)
                0083 
                0084 C Close the open data file
7a77863887 Mart*0085 #ifdef SINGLE_DISK_IO
08be60903a Mart*0086       CLOSE(iUnit)
7a77863887 Mart*0087 #else
                0088       CLOSE(iUnit,STATUS='DELETE')
                0089 #endif /* SINGLE_DISK_IO */
08be60903a Mart*0090       _END_MASTER(myThid)
                0091 
                0092 C Everyone else must wait for the parameters to be loaded
                0093       _BARRIER
                0094 
fb62f539dc Jean*0095 C Now set-up any remaining parameters that result from the input parameters
08be60903a Mart*0096       IF ( MYviscMax .LE. 0. ) THEN
                0097        WRITE(msgBuf,'(A)') 'MYviscMax must be greater than zero'
016b84c482 Mart*0098        CALL PRINT_ERROR( msgBuf, myThid )
08be60903a Mart*0099        STOP 'ABNORMAL END: S/R MY82_READPARMS'
                0100       ENDIF
                0101       IF ( MYdiffMax .LE. 0. ) THEN
                0102        WRITE(msgBuf,'(A)') 'MYdiffMax must be greater than zero'
016b84c482 Mart*0103        CALL PRINT_ERROR( msgBuf, myThid )
08be60903a Mart*0104        STOP 'ABNORMAL END: S/R MY82_READPARMS'
                0105       ENDIF
                0106 #endif /* ALLOW_MY82 */
                0107 
                0108       RETURN
                0109       END