Back to home page

darwin3

 
 

    


File indexing completed on 2024-12-17 18:37:26 UTC

view on githubraw file Latest commit adbc8a15 on 2024-01-18 21:46:00 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
                0002 
                0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0004 CBOP
                0005 C !ROUTINE: OASIM_READPARMS
                0006 
                0007 C !INTERFACE:
                0008       SUBROUTINE OASIM_READPARMS( myThid )
                0009 
                0010 C     !DESCRIPTION:
                0011 C     Set OASIM runtime parameters
                0012 
                0013 C     !USES:
                0014       IMPLICIT NONE
                0015 #include "SIZE.h"
                0016 #include "EEPARAMS.h"
                0017 #include "PARAMS.h"
                0018 #include "OASIM_SIZE.h"
                0019 #include "OASIM_PARAMS.h"
                0020 #include "OASIM_FIELDS.h"
                0021 
                0022 C     !INPUT PARAMETERS:
                0023       INTEGER myThid
                0024 CEOP
                0025 
                0026 #ifdef ALLOW_OASIM
                0027 
                0028 C     !LOCAL VARIABLES:
                0029 C     msgBuf     :: Informational/error message buffer
                0030 C     iUnit      :: Work variable for IO unit number
                0031       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0032       INTEGER iUnit
                0033 
                0034       NAMELIST /OASIM_PARM/ oasim_atmoFile
                0035       NAMELIST /OASIM_PARM/ oasim_waterFile
                0036       NAMELIST /OASIM_PARM/ oasim_slingoFile
                0037 #ifdef OASIM_READ_UNFORMATTED
                0038       NAMELIST /OASIM_PARM/ oasim_modisCloudFile
                0039       NAMELIST /OASIM_PARM/ oasim_cloudClimFile
                0040       NAMELIST /OASIM_PARM/ oasim_cloudCoverFile
                0041       NAMELIST /OASIM_PARM/ oasim_cloudCoverClimFile
                0042       NAMELIST /OASIM_PARM/ oasim_opticsFile
                0043       NAMELIST /OASIM_PARM/ oasim_aerosolFile
                0044       NAMELIST /OASIM_PARM/ oasim_aerosolClimFile
                0045       NAMELIST /OASIM_PARM/ oasim_aerTauFile
                0046       NAMELIST /OASIM_PARM/ oasim_aerTauClimFile
                0047 #endif
                0048       NAMELIST /OASIM_PARM/ oasim_startYear
                0049       NAMELIST /OASIM_PARM/ oasim_dTsolz
                0050       NAMELIST /OASIM_PARM/ oasim_am, oasim_Vi
                0051       NAMELIST /OASIM_PARM/ oasim_fixedSolz
                0052       NAMELIST /OASIM_PARM/ oasim_fixedLon
                0053       NAMELIST /OASIM_PARM/ oasim_monitorFreq
                0054       NAMELIST /OASIM_PARM/ oasim_fixedLon
                0055       NAMELIST /OASIM_PARM/ oasim_PARwgt
d59efd689f Oliv*0056       NAMELIST /OASIM_PARM/ oasim_rmus
87dd4f7d5f Oliv*0057 
                0058       _BEGIN_MASTER(myThid)
                0059 
adbc8a15cd Oliv*0060 C-----------------------------------------------------------------------
                0061 C     check prerequisites indepent of oasim runtime parameters
                0062 #ifndef OASIM_READ_UNFORMATTED
                0063 #ifdef ALLOW_EXF
                0064       IF (.NOT.useEXF) THEN
                0065 #else
                0066       IF (.TRUE.) THEN
                0067 #endif
                0068         WRITE(msgBuf,'(2A)') 'OASIM_CHECK: need the exf package or ',
                0069      &   'define OASIM_READ_UNFORMATTED.'
                0070         CALL PRINT_ERROR( msgBuf, myThid )
                0071         CALL ALL_PROC_DIE( 0 )
                0072         STOP 'ABNORMAL END: S/R OASIM_CHECK'
                0073       ENDIF
                0074 #endif
                0075 
                0076 C-----------------------------------------------------------------------
87dd4f7d5f Oliv*0077 C     default values
                0078       oasim_atmoFile       = ' '
                0079       oasim_waterFile      = ' '
                0080       oasim_slingoFile     = ' '
                0081 #ifdef OASIM_READ_UNFORMATTED
                0082       oasim_modisCloudFile = ' '
                0083       oasim_cloudClimFile  = ' '
                0084       oasim_cloudCoverFile = ' '
                0085       oasim_cloudCoverClimFile = ' '
                0086       oasim_opticsFile     = ' '
                0087       oasim_aerosolFile    = ' '
                0088       oasim_aerosolClimFile = ' '
                0089       oasim_aerTauFile     = ' '
                0090       oasim_aerTauClimFile = ' '
                0091 #endif
                0092       oasim_startYear      = UNSET_I
                0093       oasim_dTsolz         = 900. _d 0
                0094       oasim_am             = 1.0 _d 0
                0095       oasim_Vi             = 25.0 _d 0
                0096       oasim_fixedSolz      = -1 _d 0
                0097       oasim_fixedLon       = UNSET_RL
                0098       oasim_monitorFreq    = monitorFreq
                0099       oasim_PARwgt(:)      = 0 _d 0
                0100       oasim_rmus           = 1./0.83 _d 0
d59efd689f Oliv*0101 
87dd4f7d5f Oliv*0102       WRITE(msgBuf,'(A)') 'OASIM_READPARMS: opening data.oasim'
                0103       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0104      &                    SQUEEZE_RIGHT , 1)
                0105       CALL OPEN_COPY_DATA_FILE(
                0106      I                     'data.oasim', 'OASIM_READPARMS',
                0107      O                     iUnit,
                0108      I                     myThid )
                0109 
                0110 #ifndef OASIM_READ_UNFORMATTED
                0111       CALL OASIM_EXF_READPARMS(iUnit, -1, myThid)
                0112 #endif
                0113 
                0114 C     Read parameters from open data file
                0115       READ(UNIT=iUnit,NML=OASIM_PARM)
                0116       WRITE(msgBuf,'(A)')
                0117      &    'OASIM_READPARMS: finished reading data.oasim'
                0118       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0119      &    SQUEEZE_RIGHT , 1)
                0120 C     Close the open data file
                0121       CLOSE(iUnit)
                0122 
                0123 #ifndef ALLOW_CAL
                0124       IF ( oasim_startYear .EQ. UNSET_I ) THEN
                0125         WRITE(msgBuf,'(2A)') 'OASIM_READPARAMS:',
                0126      &   ' must provide oasim_startYear unless using cal package'
                0127         CALL PRINT_ERROR( msgBuf , myThid)
                0128         CALL ALL_PROC_DIE( 0 )
                0129         STOP 'ABNORMAL END: S/R OASIM_READPARAMS'
                0130       ENDIF
                0131 #endif
                0132 
                0133       _END_MASTER(myThid)
                0134 
                0135 C--   Everyone else must wait for the parameters to be loaded
                0136       _BARRIER
                0137 
                0138 #endif /* ALLOW_OASIM */
                0139 
                0140       RETURN
                0141       END