Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:43:13 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6060ec2938 Dimi*0001 #include "SBO_OPTIONS.h"
                0002 
85d26bffb0 Jean*0003 CBOP
                0004 C !ROUTINE: SBO_READPARMS
                0005 
                0006 C !INTERFACE:
6060ec2938 Dimi*0007       SUBROUTINE SBO_READPARMS( myThid )
85d26bffb0 Jean*0008 
                0009 C !DESCRIPTION: \bv
2901724751 Jean*0010 C     *==========================================================*
                0011 C     | SUBROUTINE SBO_READPARMS
                0012 C     | o Routine to read in file data.sbo
                0013 C     *==========================================================*
6060ec2938 Dimi*0014 
85d26bffb0 Jean*0015 C !USES:
                0016       IMPLICIT NONE
6060ec2938 Dimi*0017 C     === Global variables ===
                0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
2901724751 Jean*0020 #include "PARAMS.h"
6060ec2938 Dimi*0021 #include "SBO.h"
                0022 
85d26bffb0 Jean*0023 C !INPUT PARAMETERS:
                0024 C     myThid   :: my Thread Id number
6060ec2938 Dimi*0025       INTEGER myThid
                0026 
                0027 #ifdef ALLOW_SBO
85d26bffb0 Jean*0028 C !LOCAL VARIABLES:
6060ec2938 Dimi*0029 C     === Local variables ===
85d26bffb0 Jean*0030 C     msgBuf   :: Informational/error message buffer
                0031 C     iUnit    :: Work variable for IO unit number
                0032 C     nRetired :: Counter used to trap namelists containing "retired" parameters
6060ec2938 Dimi*0033 
                0034       CHARACTER*(MAX_LEN_MBUF) msgBuf
85d26bffb0 Jean*0035       INTEGER iUnit
                0036       INTEGER nRetired, errCount
                0037       _RL     sbo_taveFreq
                0038 CEOP
6060ec2938 Dimi*0039 
                0040 C--   SBO parameters
85d26bffb0 Jean*0041       NAMELIST /SBO_PARM01/ sbo_taveFreq, sbo_monFreq
6060ec2938 Dimi*0042 
2901724751 Jean*0043 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0044 
ae4c29e0db Jean*0045       IF ( .NOT.useSBO ) THEN
                0046 C-    pkg SBO is not used
                0047         _BEGIN_MASTER(myThid)
                0048 C-    Track pkg activation status:
                0049 C     print a (weak) warning if data.sbo is found
                0050          CALL PACKAGES_UNUSED_MSG( 'useSBO', ' ', ' ' )
                0051         _END_MASTER(myThid)
                0052         RETURN
                0053       ENDIF
                0054 
6060ec2938 Dimi*0055       _BEGIN_MASTER(myThid)
85d26bffb0 Jean*0056       errCount = 0
6060ec2938 Dimi*0057 
2901724751 Jean*0058       WRITE(msgBuf,'(A)') ' SBO_READPARMS: opening data.sbo'
6060ec2938 Dimi*0059       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
2901724751 Jean*0060      &                    SQUEEZE_RIGHT, myThid )
6060ec2938 Dimi*0061 
                0062       CALL OPEN_COPY_DATA_FILE(
2901724751 Jean*0063      I                          'data.sbo', 'SBO_READPARMS',
6060ec2938 Dimi*0064      O                          iUnit,
                0065      I                          myThid )
                0066 
                0067 C--   set default SBO parameters
85d26bffb0 Jean*0068       sbo_monFreq  = monitorFreq
                0069 
                0070 C--   Initialise retired parameters to unlikely value
                0071       nRetired = 0
                0072       sbo_taveFreq = UNSET_RL
6060ec2938 Dimi*0073 
                0074 C-----------------------------------------------------------------------
                0075 
                0076 C--   Read settings from model parameter file "data.sbo".
85d26bffb0 Jean*0077       READ(UNIT=iUnit,NML=SBO_PARM01)
6060ec2938 Dimi*0078 
85d26bffb0 Jean*0079 C     Close the open data file
7a77863887 Mart*0080 #ifdef SINGLE_DISK_IO
6060ec2938 Dimi*0081       CLOSE(iUnit)
7a77863887 Mart*0082 #else
                0083       CLOSE(iUnit,STATUS='DELETE')
                0084 #endif /* SINGLE_DISK_IO */
6060ec2938 Dimi*0085 
2901724751 Jean*0086       WRITE(msgBuf,'(A)') ' SBO_READPARMS: finished reading data.sbo'
6060ec2938 Dimi*0087       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
2901724751 Jean*0088      &                    SQUEEZE_RIGHT, myThid )
6060ec2938 Dimi*0089 
85d26bffb0 Jean*0090 C     Check for retired parameters still being used
                0091       IF ( sbo_taveFreq .NE. UNSET_RL ) THEN
                0092         nRetired = nRetired + 1
                0093         WRITE(msgBuf,'(A,A)') 'S/R SBO_READPARMS: "sbo_taveFreq" ',
                0094      &  'is no longer allowed in file "data.sbo"'
                0095         CALL PRINT_ERROR( msgBuf, myThid )
                0096       ENDIF
                0097 
                0098 C--   Check whether any retired parameters were found.
                0099       IF ( nRetired .GT. 0 ) THEN
                0100         WRITE(msgBuf,'(2A)') 'S/R SBO_READPARMS: ',
                0101      &   'Error reading parameter file "data.sbo"'
                0102         CALL PRINT_ERROR( msgBuf, myThid )
                0103         WRITE(msgBuf,'(A)')
                0104      &   'some out of date parameters were found in the namelist'
                0105         CALL PRINT_ERROR( msgBuf, myThid )
                0106         errCount = errCount + 1
                0107       ENDIF
                0108 
                0109 C--   Stop if any error was found (including retired params):
                0110       IF ( errCount .GE. 1 ) THEN
                0111         WRITE(msgBuf,'(A,I3,A)')
                0112      &   'S/R SBO_READPARMS: detected', errCount,' fatal error(s)'
                0113         CALL PRINT_ERROR( msgBuf, myThid )
                0114         CALL ALL_PROC_DIE( 0 )
                0115         STOP 'ABNORMAL END: S/R SBO_READPARMS'
                0116       ENDIF
                0117 
6060ec2938 Dimi*0118       _END_MASTER(myThid)
                0119 
                0120 C--   Everyone else must wait for the parameters to be loaded
                0121       _BARRIER
                0122 
f6bfe3bad8 Alis*0123 #endif /* ALLOW_SBO */
6060ec2938 Dimi*0124 
2901724751 Jean*0125       RETURN
                0126       END