Back to home page

MITgcm

 
 

    


File indexing completed on 2022-03-25 05:10:02 UTC

view on githubraw file Latest commit 64811cb0 on 2022-03-25 02:40:24 UTC
0dc94a8572 Patr*0001 #include "MYPACKAGE_OPTIONS.h"
                0002 
3d0c17158b Ed H*0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
64811cb024 Jean*0004 CBOP
3d0c17158b Ed H*0005 C !ROUTINE: MYPACKAGE_READPARMS
                0006 
                0007 C !INTERFACE:
0dc94a8572 Patr*0008       SUBROUTINE MYPACKAGE_READPARMS( myThid )
                0009 
3d0c17158b Ed H*0010 C     !DESCRIPTION:
                0011 C     Initialize MYPACKAGE variables and constants.
                0012 
                0013 C     !USES:
                0014       IMPLICIT NONE
64811cb024 Jean*0015 C     == Global variables ===
0dc94a8572 Patr*0016 #include "SIZE.h"
                0017 #include "EEPARAMS.h"
                0018 #include "PARAMS.h"
                0019 #include "MYPACKAGE.h"
                0020 
3d0c17158b Ed H*0021 C     !INPUT PARAMETERS:
0dc94a8572 Patr*0022       INTEGER myThid
3d0c17158b Ed H*0023 CEOP
0dc94a8572 Patr*0024 
dbd9426b2e Jean*0025 C     !LOCAL VARIABLES:
                0026 C     msgBuf     :: Informational/error message buffer
                0027 C     iUnit      :: Work variable for IO unit number
                0028       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0029       INTEGER iUnit
                0030 
0dc94a8572 Patr*0031       NAMELIST /MYPACKAGE_PARM01/
5b141690f8 Jean*0032      &       myPa_MNC,
                0033      &       myPa_StaV_Cgrid, myPa_Tend_Cgrid,
                0034      &       myPa_applyTendT, myPa_applyTendS,
                0035      &       myPa_applyTendU, myPa_applyTendV,
                0036      &       myPa_doSwitch1,  myPa_doSwitch2,
                0037      &       myPa_index1,     myPa_index2,
                0038      &       myPa_param1,     myPa_param2,
                0039      &       myPa_string1,    myPa_string2,
                0040      &       myPa_Scal1File,  myPa_Scal2File,
                0041      &       myPa_VelUFile,   myPa_VelVFile,
                0042      &       myPa_Surf1File,  myPa_Surf2File
0dc94a8572 Patr*0043 
ae4c29e0db Jean*0044       IF ( .NOT.useMYPACKAGE ) THEN
                0045 C-    pkg MYPACKAGE is not used
                0046         _BEGIN_MASTER(myThid)
                0047 C-    Track pkg activation status:
                0048 C     print a (weak) warning if data.mypackage is found
                0049          CALL PACKAGES_UNUSED_MSG( 'useMYPACKAGE', ' ', ' ' )
                0050         _END_MASTER(myThid)
                0051         RETURN
                0052       ENDIF
                0053 
0dc94a8572 Patr*0054       _BEGIN_MASTER(myThid)
                0055 
                0056 C--   Default values for MYPACKAGE
5b141690f8 Jean*0057       myPa_MNC         = useMNC
                0058       myPa_StaV_Cgrid  = .TRUE.
                0059       myPa_Tend_Cgrid  = .TRUE.
                0060       myPa_applyTendT  = .FALSE.
                0061       myPa_applyTendS  = .FALSE.
                0062       myPa_applyTendU  = .FALSE.
                0063       myPa_applyTendV  = .FALSE.
                0064 C-    additional parameters:
                0065       myPa_doSwitch1   = .FALSE.
                0066       myPa_doSwitch2   = .FALSE.
                0067       myPa_index1      = 0
                0068       myPa_index2      = 0
                0069       myPa_param1      = 0. _d 0
                0070       myPa_param2      = 0. _d 0
                0071       myPa_string1     = ' '
                0072       myPa_string2     = ' '
                0073 C-    file names for initial conditions:
                0074       myPa_Scal1File   = ' '
                0075       myPa_Scal2File   = ' '
                0076       myPa_VelUFile    = ' '
                0077       myPa_VelVFile    = ' '
                0078       myPa_Surf1File   = ' '
                0079       myPa_Surf2File   = ' '
                0080 
0dc94a8572 Patr*0081       WRITE(msgBuf,'(A)') 'MYPACKAGE_READPARMS: opening data.mypackage'
                0082       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
64811cb024 Jean*0083      &                    SQUEEZE_RIGHT, myThid )
0dc94a8572 Patr*0084       CALL OPEN_COPY_DATA_FILE(
                0085      I                     'data.mypackage', 'MYPACKAGE_READPARMS',
                0086      O                     iUnit,
                0087      I                     myThid )
                0088 
                0089 C     Read parameters from open data file
                0090       READ(UNIT=iUnit,NML=MYPACKAGE_PARM01)
5b141690f8 Jean*0091       WRITE(msgBuf,'(A)')
0dc94a8572 Patr*0092      &    'MYPACKAGE_READPARMS: finished reading data.mypackage'
                0093       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
64811cb024 Jean*0094      &                    SQUEEZE_RIGHT, myThid )
0dc94a8572 Patr*0095 C     Close the open data file
7a77863887 Mart*0096 #ifdef SINGLE_DISK_IO
0dc94a8572 Patr*0097       CLOSE(iUnit)
7a77863887 Mart*0098 #else
                0099       CLOSE(iUnit,STATUS='DELETE')
                0100 #endif /* SINGLE_DISK_IO */
0dc94a8572 Patr*0101 
                0102 C     Make sure that we locally honor the global MNC on/off flag
5b141690f8 Jean*0103       myPa_MNC = myPa_MNC .AND. useMNC
0dc94a8572 Patr*0104 #ifndef ALLOW_MNC
                0105 C     Fix to avoid running without getting any output:
5b141690f8 Jean*0106       myPa_MNC = .FALSE.
0dc94a8572 Patr*0107 #endif
5b141690f8 Jean*0108       myPa_MDSIO = (.NOT. myPa_MNC) .OR. outputTypesInclusive
0dc94a8572 Patr*0109 
                0110       _END_MASTER(myThid)
                0111 
                0112 C--   Everyone else must wait for the parameters to be loaded
                0113       _BARRIER
                0114 
                0115       RETURN
                0116       END