Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:39:17 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
d8206d87ee Patr*0001 #include "EBM_OPTIONS.h"
                0002 
3b760ca956 Jean*0003 CBOP 0
                0004 C !ROUTINE: EBM_READPARMS
                0005 
                0006 C !INTERFACE:
d8206d87ee Patr*0007       SUBROUTINE EBM_READPARMS( myThid )
                0008 
3b760ca956 Jean*0009 C     !DESCRIPTION:
                0010 C     *==========================================================*
                0011 C     | SUBROUTINE EBM_READPARMS
                0012 C     | o Routine to read in parameters from file data.ebm
                0013 C     *==========================================================*
                0014 
                0015 C     !USES:
                0016       IMPLICIT NONE
d8206d87ee Patr*0017 C     === Global variables ===
                0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
                0020 #include "PARAMS.h"
                0021 #include "GRID.h"
                0022 #ifdef ALLOW_EBM
                0023 #include "EBM.h"
                0024 #endif
                0025 
3b760ca956 Jean*0026 C     !INPUT PARAMETERS:
                0027 C     myThid     :: my Thread Id number
d8206d87ee Patr*0028       INTEGER myThid
3b760ca956 Jean*0029 CEOP
d8206d87ee Patr*0030 
                0031 #ifdef ALLOW_EBM
3b760ca956 Jean*0032 C     !LOCAL VARIABLES:
                0033 C     msgBuf     :: Informational/error message buffer
                0034 C     errIO      :: IO error flag
                0035 C     iUnit      :: Work variable for IO unit number
d8206d87ee Patr*0036       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0037       INTEGER errIO, iUnit
                0038 
                0039 C--   Namelist
                0040       NAMELIST /EBM_PARM01/
2c03616886 Jean*0041      & tauThetaZonRelax,
d8206d87ee Patr*0042      & scale_runoff,
                0043      & RunoffFile
                0044 
920a6107ff Jean*0045 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0046 
                0047       IF ( .NOT.useEBM ) THEN
                0048 C-    PKG ebm is not used
                0049         _BEGIN_MASTER(myThid)
                0050 C-    Track pkg activation status:
                0051 C     print a (weak) warning if data.ebm is found
                0052          CALL PACKAGES_UNUSED_MSG( 'useEBM', ' ', ' ' )
                0053         _END_MASTER(myThid)
                0054         RETURN
                0055       ENDIF
                0056 
d8206d87ee Patr*0057       _BEGIN_MASTER(myThid)
                0058 
3b760ca956 Jean*0059       WRITE(msgBuf,'(A)') ' EBM_READPARMS: opening data.ebm'
d8206d87ee Patr*0060       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
3b760ca956 Jean*0061      &                    SQUEEZE_RIGHT, myThid )
1d82a71159 Jean*0062       errIO = 0
d8206d87ee Patr*0063       CALL OPEN_COPY_DATA_FILE(
3b760ca956 Jean*0064      I                          'data.ebm', 'EBM_READPARMS',
                0065      O                          iUnit,
                0066      I                          myThid )
d8206d87ee Patr*0067 
3b760ca956 Jean*0068 C--   set default
d8206d87ee Patr*0069       tauThetaZonRelax = 0.
                0070       scale_runoff = 1.
                0071       RunoffFile = ' '
                0072 
                0073 C-----------------------------------------------------------------------
                0074 
                0075 C--   Read settings from model parameter file "data.ebm".
1d82a71159 Jean*0076       READ( UNIT=iUnit, NML=EBM_PARM01 )
                0077 c     READ( UNIT=iUnit, NML=EBM_PARM01, IOSTAT=errIO )
d8206d87ee Patr*0078       IF ( errIO .LT. 0 ) THEN
3b760ca956 Jean*0079        WRITE(msgBuf,'(A)') 'S/R EBM_READPARMS'
                0080        CALL PRINT_ERROR( msgBuf, myThid )
                0081        WRITE(msgBuf,'(A)') 'Error reading numerical model '
                0082        CALL PRINT_ERROR( msgBuf, myThid )
                0083        WRITE(msgBuf,'(A)') 'parameter file "data.ebm"'
                0084        CALL PRINT_ERROR( msgBuf, myThid )
                0085        WRITE(msgBuf,'(A)') 'Problem in namelist EBM_PARM01'
                0086        CALL PRINT_ERROR( msgBuf, myThid )
                0087        STOP 'ABNORMAL END: S/R EBM_READPARMS'
d8206d87ee Patr*0088       ENDIF
3b760ca956 Jean*0089 C     Close the open data file
7a77863887 Mart*0090 #ifdef SINGLE_DISK_IO
d8206d87ee Patr*0091       CLOSE(iUnit)
7a77863887 Mart*0092 #else
                0093       CLOSE(iUnit,STATUS='DELETE')
                0094 #endif /* SINGLE_DISK_IO */
d8206d87ee Patr*0095 
3b760ca956 Jean*0096       WRITE(msgBuf,'(A)') ' EBM_READPARMS: finished reading data.ebm'
d8206d87ee Patr*0097       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
3b760ca956 Jean*0098      &                    SQUEEZE_RIGHT, myThid )
d8206d87ee Patr*0099 
2c03616886 Jean*0100 C--   Set other parameters
d8206d87ee Patr*0101       IF ( tauThetaZonRelax .NE. 0. _d 0 ) THEN
3b760ca956 Jean*0102         IF ( tauThetaClimRelax.NE.0. _d 0 ) THEN
                0103           WRITE(msgBuf,'(2A)') 'EBM_READPARMS: ',
                0104      &     'tauThetaClimRelax > 0 AND tauThetaZonRelax > 0'
                0105           CALL PRINT_ERROR( msgBuf, myThid )
                0106           WRITE(msgBuf,'(2A)') 'EBM_READPARMS: ',
                0107      &     'cannot relax Temp. to 2-d map AND ZonAver SST'
                0108           CALL PRINT_ERROR( msgBuf, myThid )
                0109           STOP 'ABNORMAL END: S/R EBM_READPARMS'
                0110         ELSE
                0111           WRITE(msgBuf,'(2A)') ' EBM_READPARMS: ',
                0112      &     'set tauThetaClimRelax to tauThetaZonRelax value'
                0113           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0114      &                        SQUEEZE_RIGHT, myThid )
                0115           tauThetaClimRelax = tauThetaZonRelax
                0116         ENDIF
d8206d87ee Patr*0117       ENDIF
2c03616886 Jean*0118 C-   Set latitude boundaries used in EBM
                0119       latBnd(1) =  0. _d 0
                0120       latBnd(2) = 35. _d 0
                0121       latBnd(3) = 85. _d 0
d8206d87ee Patr*0122 
                0123       _END_MASTER(myThid)
                0124 
                0125 C--   Everyone else must wait for the parameters to be loaded
                0126       _BARRIER
                0127 
                0128 #endif /* ALLOW_EBM */
                0129 
3b760ca956 Jean*0130       RETURN
                0131       END