/[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.12 by jmc, Wed Oct 20 21:54:17 2004 UTC revision 1.23 by mlosch, Wed Aug 9 15:23:37 2017 UTC
# Line 17  C     !USES: Line 17  C     !USES:
17  #include "SIZE.h"  #include "SIZE.h"
18  #include "EEPARAMS.h"  #include "EEPARAMS.h"
19  #include "PARAMS.h"  #include "PARAMS.h"
 #include "GRID.h"  
20  #include "KPP_PARAMS.h"  #include "KPP_PARAMS.h"
21    
22  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
# Line 26  CEOP Line 25  CEOP
25    
26  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
27  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
28  C     msgBuf      - Informational/error meesage 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    
# Line 37  C--   KPP vertical mixing parameters Line 35  C--   KPP vertical mixing parameters
35        NAMELIST /KPP_PARM01/        NAMELIST /KPP_PARM01/
36       & kpp_freq, kpp_dumpFreq, kpp_taveFreq,       & kpp_freq, kpp_dumpFreq, kpp_taveFreq,
37       & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus,       & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus,
38         & KPPuseDoubleDiff, LimitHblStable,
39       & minKPPhbl,       & minKPPhbl,
40       & epsln, phepsi, epsilon, vonk, dB_dz,       & epsln, phepsi, epsilon, vonk, dB_dz,
41       & conc1, conam, concm, conc2, zetam,       & conc1, conam, concm, conc2, zetam,
42       & conas, concs, conc3, zetas,       & conas, concs, conc3, zetas,
43       & Ricr, cekman, cmonob, concv, hbf,       & Ricr, cekman, cmonob, concv, hbf,
44       & zmin, zmax, umin, umax,       & zmin, zmax, umin, umax,
45       & num_v_smooth_Ri, num_v_smooth_BV,       & num_v_smooth_Ri, num_v_smooth_BV,
46       & num_z_smooth_sh, num_m_smooth_sh,       & num_z_smooth_sh, num_m_smooth_sh,
47       & Riinfty, BVSQcon, difm0, difs0, dift0,       & Riinfty, BVSQcon, difm0, difs0, dift0,
48       & difmcon, difscon, diftcon,       & difmcon, difscon, diftcon,
49         & Rrho0, dsfmax,
50       & cstar       & cstar
51    
52    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
53    
54          IF ( .NOT.useKPP ) THEN
55    C-    pkg KPP is not used
56            _BEGIN_MASTER(myThid)
57    C-    Track pkg activation status:
58    C     print a (weak) warning if data.kpp is found
59             CALL PACKAGES_UNUSED_MSG( 'useKPP', ' ', ' ' )
60            _END_MASTER(myThid)
61            RETURN
62          ENDIF
63    
64        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
65    
66        WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp'        WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp'
67        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
68       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
69    
   
70        CALL OPEN_COPY_DATA_FILE(        CALL OPEN_COPY_DATA_FILE(
71       I                          'data.kpp', 'KPP_INIT',       I                          'data.kpp', 'KPP_INIT',
72       O                          iUnit,       O                          iUnit,
73       I                          myThid )       I                          myThid )
74    
75  C--   set default KPP vertical mixing parameters  C--   set default KPP vertical mixing parameters
76        kpp_freq      = deltaTClock        kpp_freq               = deltaTClock
77        kpp_dumpFreq  = dumpFreq        kpp_dumpFreq           = dumpFreq
78        kpp_taveFreq  = taveFreq        kpp_taveFreq           = taveFreq
79        KPPmixingMaps = .FALSE.        KPPmixingMaps          = .FALSE.
80        KPPwriteState = .FALSE.        KPPwriteState          = .FALSE.
81          KPPuseDoubleDiff       = .FALSE.
82          LimitHblStable         = .TRUE.
83        KPP_ghatUseTotalDiffus = .FALSE.        KPP_ghatUseTotalDiffus = .FALSE.
84        IF ( setCenterDr ) THEN        minKPPhbl = UNSET_RL
         minKPPhbl   = delRc(1)  
       ELSE  
         minKPPhbl   = delR(1)*0.5  
       ENDIF  
85    
86  C-----------------------------------------------------------------------  C-----------------------------------------------------------------------
87  C define some non-dimensional constants and  C define some non-dimensional constants and
88  C the vertical mixing coefficients in m-k-s units  C the vertical mixing coefficients in m-k-s units
89  C-----------------------------------------------------------------------  C-----------------------------------------------------------------------
   
       epsln   = 1.e-20  
       phepsi  = 1.e-10  
       epsilon = 0.1  
       vonk    = 0.40  
       dB_dz   = 5.2e-5  
       conc1   = 5.0  
       conam   = 1.257  
       concm   = 8.380  
       conc2   = 16.0  
       zetam   = -0.2  
       conas   = -28.86  
       concs   = 98.96  
       conc3   = 16.0  
       zetas   = -1.0  
   
 c     parameters for subroutine "bldepth"  
   
       Ricr    = 0.30  
       cekman  = 0.7  
       cmonob  = 1.0  
       concv   = 1.8  
       hbf     = 1.0  
   
 c     parameters and common arrays for subroutines  
 c     "kmixinit" and "wscale"  
   
       zmin    = -4.e-7  
       zmax    = 0.0  
       umin    = 0.0  
       umax    = .04  
90    
91  c     parameters for subroutine "Ri_iwmix"        epsln   =   1. _d -20
92          phepsi  =   1. _d -10
93          epsilon =   1. _d -1
94          vonk    =   0.4 _d 0
95          dB_dz   =   5.2 _d -5
96          conc1   =   5. _d 0
97          conam   =   1.257 _d 0
98          concm   =   8.380 _d 0
99          conc2   =  16. _d 0
100          zetam   =  -0.2 _d 0
101          conas   = -28.86 _d 0
102          concs   =  98.96 _d 0
103          conc3   =  16. _d 0
104          zetas   =  -1. _d 0
105    
106    C     parameters for subroutine "bldepth"
107    
108          Ricr    = 0.3 _d 0
109          cekman  = 0.7 _d 0
110          cmonob  = 1.  _d 0
111          concv   = 1.8 _d 0
112          hbf     = 1.  _d 0
113    
114    C     parameters and common arrays for subroutines
115    C     "kmixinit" and "wscale"
116    
117          zmin    = -4. _d -7
118          zmax    =  0. _d 0
119          umin    =  0. _d 0
120          umax    =  4. _d -2
121    
122    C     parameters for subroutine "Ri_iwmix"
123    
124        num_v_smooth_Ri = 0        num_v_smooth_Ri = 0
125        num_v_smooth_BV = 0        num_v_smooth_BV = 0
126        num_z_smooth_sh = 0        num_z_smooth_sh = 0
127        num_m_smooth_sh = 0        num_m_smooth_sh = 0
128        Riinfty = 0.7        Riinfty =  0.7 _d 0
129        BVSQcon = -0.2e-4        BVSQcon = -0.2 _d -4
130    
131          difm0   = 5. _d -3
132          difs0   = 5. _d -3
133          dift0   = 5. _d -3
134    
135          difmcon = 0.1 _d 0
136          difscon = 0.1 _d 0
137          diftcon = 0.1 _d 0
138    
139        difm0   = 0.005  C     parameters for double diffusion routine "KPP_DOUBLEDIFF"
140        difs0   = 0.005  
141        dift0   = 0.005        Rrho0   = 1.9 _d 0
142          dsfmax  = 10. _d -3
       difmcon = 0.1  
       difscon = 0.1  
       diftcon = 0.1  
143    
144  C     parameters for subroutine "blmix"  C     parameters for subroutine "blmix"
145    
# Line 152  C      CALL MODELDATA_EXAMPLE( myThid ) Line 166  C      CALL MODELDATA_EXAMPLE( myThid )
166         STOP 'ABNORMAL END: S/R KPP_INIT'         STOP 'ABNORMAL END: S/R KPP_INIT'
167        ENDIF        ENDIF
168    
169    #ifdef SINGLE_DISK_IO
170        CLOSE(iUnit)        CLOSE(iUnit)
171    #else
172          CLOSE(iUnit,STATUS='DELETE')
173    #endif /* SINGLE_DISK_IO */
174    
175        WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp'        WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp'
176        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
# Line 160  C      CALL MODELDATA_EXAMPLE( myThid ) Line 178  C      CALL MODELDATA_EXAMPLE( myThid )
178    
179        _END_MASTER(myThid)        _END_MASTER(myThid)
180    
 #ifdef ALLOW_MNC  
       IF (useMNC) THEN  
 C       Define grid types for KPP variables  
         CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t',  
      &       4,5, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name',  
      &       'KPP_vertical_eddy_viscosity_coefficient', myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz',  
      &       'coordinates','XC YC RC iter', myThid)  
           
         CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t',  
      &       4,5, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name',  
      &       'KPP_salt-tracer_vertical_diffusion_coefficient',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS',  
      &       'coordinates','XC YC RC iter', myThid)  
           
         CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t',  
      &       4,5, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name',  
      &       'KPP_vertical_heat_diffusion_coefficient', myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT',  
      &       'coordinates','XC YC RC iter', myThid)  
           
         CALL MNC_CW_ADD_VNAME('KPPghat', 'Cen_xy_Hn__C__t',  
      &       4,5, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','units','s/m^2',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','long_name',  
      &       'KPP_nonlocal_transport_coefficient', myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPghat',  
      &       'coordinates','XC YC RC iter', myThid)  
           
         CALL MNC_CW_ADD_VNAME('KPPhbl', 'Cen_xy_Hn__-__t',  
      &       3,4, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','units','m',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','long_name',  
      &       'KPP_mixing_layer_depth', myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl',  
      &       'coordinates','XC YC iter', myThid)  
           
         CALL MNC_CW_ADD_VNAME('KPPfrac', 'Cen_xy_Hn__-__t',  
      &       3,4, myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','units','dimless',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','long_name',  
      &       'KPP_short-wave_fraction_penetrating_mixing_layer',  
      &       myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac',  
      &       'coordinates','XC YC iter', myThid)  
       ENDIF  
 #endif /* ALLOW_MNC */  
   
181  C--   Everyone else must wait for the parameters to be loaded  C--   Everyone else must wait for the parameters to be loaded
182        _BARRIER        _BARRIER
183    
184  #endif /* ALLOW_KPP */  #endif /* ALLOW_KPP */
185    
186        return        RETURN
187        end        END

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

  ViewVC Help
Powered by ViewVC 1.1.22