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

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

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


Revision 1.18 - (show annotations) (download)
Fri Nov 14 21:34:48 2008 UTC (15 years, 7 months ago) by dfer
Branch: MAIN
CVS Tags: checkpoint61f, checkpoint61n, checkpoint61g, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i
Changes since 1.17: +2 -7 lines
- Fix default of minKPPhbl
- move fixed initialization to kpp_init_fixed.F

1 C $Header: /u/gcmpack/MITgcm/pkg/kpp/kpp_readparms.F,v 1.17 2008/10/30 18:51:36 dfer Exp $
2 C $Name: $
3 #include "KPP_OPTIONS.h"
4
5 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
6 CBOP 0
7 C !ROUTINE: KPP_READPARMS
8
9 C !INTERFACE:
10 SUBROUTINE KPP_READPARMS( myThid )
11
12 C !DESCRIPTION:
13 C Routine to read in file data.kpp
14
15 C !USES:
16 IMPLICIT NONE
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "KPP_PARAMS.h"
21
22 C !INPUT PARAMETERS:
23 INTEGER myThid
24 CEOP
25
26 C !LOCAL VARIABLES:
27 #ifdef ALLOW_KPP
28 C msgBuf - Informational/error meesage buffer
29 C errIO - IO error flag
30 C iUnit - Work variable for IO unit number
31
32 CHARACTER*(MAX_LEN_MBUF) msgBuf
33 INTEGER errIO, iUnit
34
35 C-- KPP vertical mixing parameters
36 NAMELIST /KPP_PARM01/
37 & kpp_freq, kpp_dumpFreq, kpp_taveFreq,
38 & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus,
39 & minKPPhbl,
40 & epsln, phepsi, epsilon, vonk, dB_dz,
41 & conc1, conam, concm, conc2, zetam,
42 & conas, concs, conc3, zetas,
43 & Ricr, cekman, cmonob, concv, hbf,
44 & zmin, zmax, umin, umax,
45 & num_v_smooth_Ri, num_v_smooth_BV,
46 & num_z_smooth_sh, num_m_smooth_sh,
47 & Riinfty, BVSQcon, difm0, difs0, dift0,
48 & difmcon, difscon, diftcon,
49 & cstar
50
51 _BEGIN_MASTER(myThid)
52
53 WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp'
54 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
55 & SQUEEZE_RIGHT , 1)
56
57
58 CALL OPEN_COPY_DATA_FILE(
59 I 'data.kpp', 'KPP_INIT',
60 O iUnit,
61 I myThid )
62
63 C-- set default KPP vertical mixing parameters
64 kpp_freq = deltaTClock
65 kpp_dumpFreq = dumpFreq
66 kpp_taveFreq = taveFreq
67 KPPmixingMaps = .FALSE.
68 KPPwriteState = .FALSE.
69 KPP_ghatUseTotalDiffus = .FALSE.
70 minKPPhbl = UNSET_RL
71
72 C-----------------------------------------------------------------------
73 C define some non-dimensional constants and
74 C the vertical mixing coefficients in m-k-s units
75 C-----------------------------------------------------------------------
76
77 epsln = 1. _d -20
78 phepsi = 1. _d -10
79 epsilon = 1. _d -1
80 vonk = 0.4 _d 0
81 dB_dz = 5.2 _d -5
82 conc1 = 5. _d 0
83 conam = 1.257 _d 0
84 concm = 8.380 _d 0
85 conc2 = 16. _d 0
86 zetam = -0.2 _d 0
87 conas = -28.86 _d 0
88 concs = 98.96 _d 0
89 conc3 = 16. _d 0
90 zetas = -1. _d 0
91
92 C parameters for subroutine "bldepth"
93
94 Ricr = 0.3 _d 0
95 cekman = 0.7 _d 0
96 cmonob = 1. _d 0
97 concv = 1.8 _d 0
98 hbf = 1. _d 0
99
100 C parameters and common arrays for subroutines
101 C "kmixinit" and "wscale"
102
103 zmin = -4. _d -7
104 zmax = 0. _d 0
105 umin = 0. _d 0
106 umax = 4. _d -2
107
108 C parameters for subroutine "Ri_iwmix"
109
110 num_v_smooth_Ri = 0
111 num_v_smooth_BV = 0
112 num_z_smooth_sh = 0
113 num_m_smooth_sh = 0
114 Riinfty = 0.7 _d 0
115 BVSQcon = -0.2 _d -4
116
117 difm0 = 5. _d -3
118 difs0 = 5. _d -3
119 dift0 = 5. _d -3
120
121 difmcon = 0.1 _d 0
122 difscon = 0.1 _d 0
123 diftcon = 0.1 _d 0
124
125 C parameters for subroutine "blmix"
126
127 cstar = 10.
128
129 C-----------------------------------------------------------------------
130
131 C-- Read settings from model parameter file "data.kpp".
132 READ(UNIT=iUnit,NML=KPP_PARM01,IOSTAT=errIO)
133 IF ( errIO .LT. 0 ) THEN
134 WRITE(msgBuf,'(A)')
135 & 'S/R INI_PARMS'
136 CALL PRINT_ERROR( msgBuf , 1)
137 WRITE(msgBuf,'(A)')
138 & 'Error reading numerical model '
139 CALL PRINT_ERROR( msgBuf , 1)
140 WRITE(msgBuf,'(A)')
141 & 'parameter file "data.kpp"'
142 CALL PRINT_ERROR( msgBuf , 1)
143 WRITE(msgBuf,'(A)')
144 & 'Problem in namelist KPP_PARM01'
145 CALL PRINT_ERROR( msgBuf , 1)
146 C CALL MODELDATA_EXAMPLE( myThid )
147 STOP 'ABNORMAL END: S/R KPP_INIT'
148 ENDIF
149
150 CLOSE(iUnit)
151
152 WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp'
153 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
154 & SQUEEZE_RIGHT , 1)
155
156 _END_MASTER(myThid)
157
158 #ifdef ALLOW_MNC
159 IF (useMNC) THEN
160 C Define grid types for KPP variables
161 CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t',
162 & 4,5, myThid)
163 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s',
164 & myThid)
165 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name',
166 & 'KPP_vertical_eddy_viscosity_coefficient', myThid)
167 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz',
168 & 'coordinates','XC YC RC iter', myThid)
169
170 CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t',
171 & 4,5, myThid)
172 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s',
173 & myThid)
174 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name',
175 & 'KPP_salt-tracer_vertical_diffusion_coefficient',
176 & myThid)
177 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS',
178 & 'coordinates','XC YC RC iter', myThid)
179
180 CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t',
181 & 4,5, myThid)
182 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s',
183 & myThid)
184 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name',
185 & 'KPP_vertical_heat_diffusion_coefficient', myThid)
186 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT',
187 & 'coordinates','XC YC RC iter', myThid)
188
189 CALL MNC_CW_ADD_VNAME('KPPGHAT', 'Cen_xy_Hn__C__t',
190 & 4,5, myThid)
191 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','units','s/m^2',
192 & myThid)
193 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','long_name',
194 & 'KPP_nonlocal_transport_coefficient', myThid)
195 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT',
196 & 'coordinates','XC YC RC iter', myThid)
197
198 CALL MNC_CW_ADD_VNAME('KPPHBL', 'Cen_xy_Hn__-__t',
199 & 3,4, myThid)
200 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','units','m',
201 & myThid)
202 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','long_name',
203 & 'KPP_boundary_layer_depth', myThid)
204 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL',
205 & 'coordinates','XC YC iter', myThid)
206
207 CALL MNC_CW_ADD_VNAME('KPPFRAC', 'Cen_xy_Hn__-__t',
208 & 3,4, myThid)
209 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','units','dimless',
210 & myThid)
211 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','long_name',
212 & 'KPP_short-wave_fraction_penetrating_mixing_layer',
213 & myThid)
214 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC',
215 & 'coordinates','XC YC iter', myThid)
216 ENDIF
217 #endif /* ALLOW_MNC */
218
219 C-- Everyone else must wait for the parameters to be loaded
220 _BARRIER
221
222 #endif /* ALLOW_KPP */
223
224 RETURN
225 END

  ViewVC Help
Powered by ViewVC 1.1.22