/[MITgcm]/MITgcm/pkg/kpp/kpp_readparms.F
ViewVC logotype

Diff of /MITgcm/pkg/kpp/kpp_readparms.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.23 by mlosch, Wed Aug 9 15:23:37 2017 UTC revision 1.24 by jmc, Thu Oct 19 00:34:25 2017 UTC
# Line 25  CEOP Line 25  CEOP
25    
26  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
27  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
28  C     msgBuf      - Informational/error message buffer  C     msgBuf     :: Informational/error message buffer
29  C     errIO       - IO error flag  C     errIO      :: IO error flag
30  C     iUnit       - Work variable for IO unit number  C     iUnit      :: Work variable for IO unit number
31        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
32        INTEGER errIO, iUnit        INTEGER errIO, iUnit
33    C-    retired parameters:
34    C     nRetired   :: Count number of "retired" parameters found in namelist.
35          INTEGER nRetired
36          LOGICAL KPPmixingMaps
37          INTEGER num_v_smooth_BV, num_z_smooth_sh, num_m_smooth_sh
38    
39  C--   KPP vertical mixing parameters  C--   KPP vertical mixing parameters
40        NAMELIST /KPP_PARM01/        NAMELIST /KPP_PARM01/
41       & kpp_freq, kpp_dumpFreq, kpp_taveFreq,       & kpp_freq, kpp_dumpFreq, kpp_taveFreq,
42       & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus,       & KPPwriteState, KPP_ghatUseTotalDiffus,
43       & KPPuseDoubleDiff, LimitHblStable,       & KPPuseDoubleDiff, LimitHblStable,
44       & minKPPhbl,       & minKPPhbl,
45       & epsln, phepsi, epsilon, vonk, dB_dz,       & epsln, phepsi, epsilon, vonk, dB_dz,
# Line 42  C--   KPP vertical mixing parameters Line 47  C--   KPP vertical mixing parameters
47       & conas, concs, conc3, zetas,       & conas, concs, conc3, zetas,
48       & Ricr, cekman, cmonob, concv, hbf,       & Ricr, cekman, cmonob, concv, hbf,
49       & zmin, zmax, umin, umax,       & zmin, zmax, umin, umax,
50       & num_v_smooth_Ri, num_v_smooth_BV,       & num_v_smooth_Ri,
      & num_z_smooth_sh, num_m_smooth_sh,  
51       & Riinfty, BVSQcon, difm0, difs0, dift0,       & Riinfty, BVSQcon, difm0, difs0, dift0,
52       & difmcon, difscon, diftcon,       & difmcon, difscon, diftcon,
53       & Rrho0, dsfmax,       & Rrho0, dsfmax,
54       & cstar       & cstar,
55         & KPPmixingMaps,
56         & num_v_smooth_BV, num_z_smooth_sh, num_m_smooth_sh
57    
58  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
59    
# Line 63  C     print a (weak) warning if data.kpp Line 69  C     print a (weak) warning if data.kpp
69    
70        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
71    
72        WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp'        WRITE(msgBuf,'(A)') ' KPP_READPARMS: opening data.kpp'
73        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
74       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT, myThid )
75    
76        CALL OPEN_COPY_DATA_FILE(        CALL OPEN_COPY_DATA_FILE(
77       I                          'data.kpp', 'KPP_INIT',       I                          'data.kpp', 'KPP_READPARMS',
78       O                          iUnit,       O                          iUnit,
79       I                          myThid )       I                          myThid )
80    
# Line 76  C--   set default KPP vertical mixing pa Line 82  C--   set default KPP vertical mixing pa
82        kpp_freq               = deltaTClock        kpp_freq               = deltaTClock
83        kpp_dumpFreq           = dumpFreq        kpp_dumpFreq           = dumpFreq
84        kpp_taveFreq           = taveFreq        kpp_taveFreq           = taveFreq
       KPPmixingMaps          = .FALSE.  
85        KPPwriteState          = .FALSE.        KPPwriteState          = .FALSE.
86        KPPuseDoubleDiff       = .FALSE.        KPPuseDoubleDiff       = .FALSE.
87        LimitHblStable         = .TRUE.        LimitHblStable         = .TRUE.
# Line 122  C     "kmixinit" and "wscale" Line 127  C     "kmixinit" and "wscale"
127  C     parameters for subroutine "Ri_iwmix"  C     parameters for subroutine "Ri_iwmix"
128    
129        num_v_smooth_Ri = 0        num_v_smooth_Ri = 0
       num_v_smooth_BV = 0  
       num_z_smooth_sh = 0  
       num_m_smooth_sh = 0  
130        Riinfty =  0.7 _d 0        Riinfty =  0.7 _d 0
131        BVSQcon = -0.2 _d -4        BVSQcon = -0.2 _d -4
132    
# Line 145  C     parameters for subroutine "blmix" Line 147  C     parameters for subroutine "blmix"
147    
148        cstar   = 10.        cstar   = 10.
149    
150    C-    Retired parameters: initialised to unlikely value:
151          nRetired = 0
152          KPPmixingMaps   = .FALSE.
153          num_v_smooth_BV = UNSET_I
154          num_z_smooth_sh = UNSET_I
155          num_m_smooth_sh = UNSET_I
156    
157  C-----------------------------------------------------------------------  C-----------------------------------------------------------------------
158    
159  C--   Read settings from model parameter file "data.kpp".  C--   Read settings from model parameter file "data.kpp".
160        READ(UNIT=iUnit,NML=KPP_PARM01,IOSTAT=errIO)        WRITE(msgBuf,'(A)') ' KPP_READPARMS ; starts to read KPP_PARM01'
161          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
162         &                    SQUEEZE_RIGHT, myThid )
163          READ( UNIT=iUnit, NML=KPP_PARM01 )
164    c     READ( UNIT=iUnit, NML=KPP_PARM01, IOSTAT=errIO )
165    c     WRITE(msgBuf,'(A,I6,A)')
166    c    & ' KPP_READPARMS ; read KPP_PARM01 (', errIO, ' )'
167    c     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
168    c    &                    SQUEEZE_RIGHT, myThid )
169        IF ( errIO .LT. 0 ) THEN        IF ( errIO .LT. 0 ) THEN
170         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
171       &  'S/R INI_PARMS'       &  'S/R KPP_READPARMS: Error reading parameter file "data.kpp"'
172         CALL PRINT_ERROR( msgBuf , 1)         CALL PRINT_ERROR( msgBuf, myThid )
        WRITE(msgBuf,'(A)')  
      &  'Error reading numerical model '  
        CALL PRINT_ERROR( msgBuf , 1)  
173         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
174       &  'parameter file "data.kpp"'       &  'S/R KPP_READPARMS: Problem in namelist KPP_PARM01'
175         CALL PRINT_ERROR( msgBuf , 1)         CALL PRINT_ERROR( msgBuf, myThid )
176         WRITE(msgBuf,'(A)')         STOP 'ABNORMAL END: S/R KPP_READPARMS'
177       &  'Problem in namelist KPP_PARM01'        ELSE
178         CALL PRINT_ERROR( msgBuf , 1)         WRITE(msgBuf,'(A)') ' KPP_READPARMS ; read KPP_PARM01 : OK'
179  C      CALL MODELDATA_EXAMPLE( myThid )         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
180         STOP 'ABNORMAL END: S/R KPP_INIT'       &                     SQUEEZE_RIGHT, myThid )
181        ENDIF        ENDIF
182    
183  #ifdef SINGLE_DISK_IO  #ifdef SINGLE_DISK_IO
# Line 172  C      CALL MODELDATA_EXAMPLE( myThid ) Line 186  C      CALL MODELDATA_EXAMPLE( myThid )
186        CLOSE(iUnit,STATUS='DELETE')        CLOSE(iUnit,STATUS='DELETE')
187  #endif /* SINGLE_DISK_IO */  #endif /* SINGLE_DISK_IO */
188    
189        WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp'        WRITE(msgBuf,'(A)') ' KPP_READPARMS: finished reading data.kpp'
190        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
191       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT, myThid )
192    
193    C--   Print message and stop when retired parameters were found in namelist
194          IF ( KPPmixingMaps ) THEN
195            nRetired = nRetired + 1
196            WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "KPPmixingMaps"',
197         &                       ' no longer allowed in file "data.kpp"'
198            CALL PRINT_ERROR( msgBuf, myThid )
199          ENDIF
200          IF ( num_v_smooth_BV .NE. UNSET_I ) THEN
201            nRetired = nRetired + 1
202            WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_v_smooth_BV"',
203         &                       ' no longer allowed in file "data.kpp"'
204            CALL PRINT_ERROR( msgBuf, myThid )
205          ENDIF
206          IF ( num_z_smooth_sh .NE. UNSET_I ) THEN
207            nRetired = nRetired + 1
208            WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_z_smooth_sh"',
209         &                       ' no longer allowed in file "data.kpp"'
210            CALL PRINT_ERROR( msgBuf, myThid )
211          ENDIF
212          IF ( num_m_smooth_sh .NE. UNSET_I ) THEN
213            nRetired = nRetired + 1
214            WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_m_smooth_sh"',
215         &                       ' no longer allowed in file "data.kpp"'
216            CALL PRINT_ERROR( msgBuf, myThid )
217          ENDIF
218    
219          IF ( nRetired .GT. 0 ) THEN
220           WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: ',
221         &  'Error reading file "data.kpp":'
222           CALL PRINT_ERROR( msgBuf, myThid )
223           WRITE(msgBuf,'(I4,A)') nRetired,
224         &      ' out-of-date parameters were found in the namelist(s)'
225           CALL PRINT_ERROR( msgBuf, myThid )
226    c      errCount = errCount + 1
227           CALL ALL_PROC_DIE( 0 )
228           STOP 'ABNORMAL END: S/R KPP_READPARMS'
229          ENDIF
230    
231        _END_MASTER(myThid)        _END_MASTER(myThid)
232    

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22