/[MITgcm]/manual/s_phys_pkgs/text/kpp.tex
ViewVC logotype

Contents of /manual/s_phys_pkgs/text/kpp.tex

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


Revision 1.6 - (show annotations) (download) (as text)
Mon Aug 1 22:31:36 2005 UTC (19 years, 11 months ago) by heimbach
Branch: MAIN
Changes since 1.5: +371 -2 lines
File MIME type: application/x-tex
Updating (mostly kpp.tex, and corrections to exf.tex)

1 \subsection{KPP: Nonlocal K-Profile Parameterization for
2 Diapycnal Mixing}
3
4 \label{sec:pkg:kpp}
5 \begin{rawhtml}
6 <!-- CMIREDIR:package_kpp: -->
7 \end{rawhtml}
8
9 Authors: Dimitris Menemenlis and Patrick Heimbach
10
11 \subsubsection{Introduction
12 \label{sec:pkg:kpp:intro}}
13
14 %----------------------------------------------------------------------
15
16 \subsubsection{KPP configuration and compiling}
17
18 As with all MITgcm packages, KPP can be turned on or off at compile time
19 %
20 \begin{itemize}
21 %
22 \item
23 using the \texttt{packages.conf} file by adding \texttt{kpp} to it,
24 %
25 \item
26 or using \texttt{genmake2} adding
27 \texttt{-enable=kpp} or \texttt{-disable=kpp} switches
28 %
29 \end{itemize}
30 (see Section \ref{sect:buildingCode}).
31
32 Parts of the KPP code can be enabled or disabled at compile time
33 via CPP preprocessor flags. These options are set in
34 \texttt{KPP\_OPTIONS.h}. Table \ref{tab:pkg:kpp:cpp} summarizes them.
35
36 \begin{table}[h!]
37 \label{tab:pkg:kpp:cpp}
38 {\footnotesize
39 \begin{tabular}{|l|l|}
40 \hline
41 \textbf{CPP option} & \textbf{Description} \\
42 \hline \hline
43 \texttt{\_KPP\_RL} &
44 ~ \\
45 \texttt{FRUGAL\_KPP} &
46 ~ \\
47 \texttt{KPP\_SMOOTH\_SHSQ} &
48 ~ \\
49 \texttt{KPP\_SMOOTH\_DVSQ} &
50 ~ \\
51 \texttt{KPP\_SMOOTH\_DENS} &
52 ~ \\
53 \texttt{KPP\_SMOOTH\_VISC} &
54 ~ \\
55 \texttt{KPP\_SMOOTH\_DIFF} &
56 ~ \\
57 \texttt{KPP\_ESTIMATE\_UREF} &
58 ~ \\
59 \texttt{INCLUDE\_DIAGNOSTICS\_INTERFACE\_CODE} &
60 ~ \\
61 \texttt{KPP\_GHAT} &
62 ~ \\
63 \texttt{EXCLUDE\_KPP\_SHEAR\_MIX} &
64 ~ \\
65 \hline
66 \end{tabular}
67 }
68 \caption{~}
69 \end{table}
70
71
72
73 %----------------------------------------------------------------------
74
75 \subsubsection{Run-time parameters
76 \label{sec:pkg:kpp:runtime}}
77
78 Run-time parameters are set in files
79 \texttt{data.pkg} and \texttt{data.kpp}
80 which are read in \texttt{kpp\_readparms.F}.
81 Run-time parameters may be broken into 3 categories:
82 (i) switching on/off the package at runtime,
83 (ii) required MITgcm flags,
84 (iii) package flags and parameters.
85
86 \paragraph{Enabling the package}
87 ~ \\
88 %
89 The KPP package is switched on at runtime by setting
90 \texttt{useKPP = .TRUE.} in \texttt{data.pkg}.
91
92 \paragraph{Required MITgcm flags}
93 ~ \\
94 %
95 The following flags/parameters of the MITgcm dynamical
96 kernel need to be set in conjunction with KPP:
97
98 \begin{tabular}{ll}
99 \texttt{implicitViscosity = .TRUE.} & enable implicit vertical viscosity \\
100 \texttt{implicitDiffusion = .TRUE.} & enable implicit vertical diffusion \\
101 \end{tabular}
102
103
104 \paragraph{Package flags and parameters}
105 ~ \\
106 %
107 \begin{table}[h!]
108 \label{tab:pkg:kpp:runtime_flags}
109 {\footnotesize
110 \begin{tabular}{|l|c|l|}
111 \hline
112 \textbf{Flag/parameter} & \textbf{default} & \textbf{Description} \\
113 \hline \hline
114 \multicolumn{3}{|c|}{\textit{I/O related parameters} } \\
115 \hline
116 kpp\_freq & \texttt{deltaTClock} &
117 Recomputation frequency for KPP fields \\
118 kpp\_dumpFreq & \texttt{dumpFreq} &
119 Dump frequency of KPP field snapshots \\
120 kpp\_taveFreq & \texttt{taveFreq} &
121 Averaging and dump frequency of KPP fields \\
122 KPPmixingMaps & \texttt{.FALSE.} &
123 include KPP diagnostic maps in STDOUT \\
124 KPPwriteState & \texttt{.FALSE.} &
125 write KPP state to file \\
126 KPP\_ghatUseTotalDiffus & \texttt{.FALSE.} &
127 if \texttt{.T.} compute non-local term using total vertical diffusivity \\
128 ~ & ~ &
129 if \texttt{.F.} use KPP vertical diffusivity \\
130 \hline
131 \multicolumn{3}{|c|}{\textit{Genral KPP parameters} } \\
132 \hline
133 minKPPhbl & \texttt{delRc(1)} &
134 Minimum boundary layer depth \\
135 epsilon & 0.1 &
136 nondimensional extent of the surface layer \\
137 vonk & 0.4 &
138 von Karman constant \\
139 dB\_dz & 5.2E-5 1/s$^2$ &
140 maximum dB/dz in mixed layer hMix \\
141 concs & 98.96 &
142 ~ \\
143 concv & 1.8 &
144 ~ \\
145 \hline
146 \multicolumn{3}{|c|}{\textit{Boundary layer parameters (S/R \texttt{bldepth})} } \\
147 \hline
148 Ricr & 0.3 &
149 critical bulk Richardson number \\
150 cekman & 0.7 &
151 coefficient for Ekman depth \\
152 cmonob & 1.0 &
153 coefficient for Monin-Obukhov depth \\
154 concv & 1.8 &
155 ratio of interior to entrainment depth buoyancy frequency \\
156 hbf & 1.0 &
157 fraction of depth to which absorbed solar radiation contributes \\
158 ~ & ~ &
159 to surface buoyancy forcing \\
160 Vtc & \texttt{~} &
161 non-dim. coeff. for velocity scale of turbulant velocity shear \\
162 ~ & ~ &
163 ( = function of concv,concs,epsilon,vonk,Ricr) \\
164 \hline
165 \multicolumn{3}{|c|}{\textit{Boundary layer mixing parameters (S/R \texttt{blmix})} } \\
166 \hline
167 cstar & 10. &
168 proportionality coefficient for nonlocal transport \\
169 cg & ~ &
170 non-dimensional coefficient for counter-gradient term \\
171 ~ & ~ &
172 ( = function of cstar,vonk,concs,epsilon) \\
173 \hline
174 \multicolumn{3}{|c|}{\textit{Interior mixing parameters (S/R \texttt{Ri\_iwmix})} } \\
175 \hline
176 Riinfty & 0.7 &
177 gradient Richardson number limit for shear instability \\
178 BVDQcon & -0.2E-4 1/s$^2$ &
179 Brunt-V\"ai\"sal\"a squared \\
180 difm0 & 0.005 m$^2$/s &
181 viscosity max. due to shear instability \\
182 difs0 & 0.005 m$^2$/s &
183 tracer diffusivity max. due to shear instability \\
184 dift0 & 0.005 m$^2$/s &
185 heat diffusivity max. due to shear instability \\
186 difmcon & 0.1 &
187 viscosity due to convective instability \\
188 difscon & 0.1 &
189 tracer diffusivity due to convective instability \\
190 diftcon & 0.1 &
191 heat diffusivity due to convective instability \\
192 \hline
193 \multicolumn{3}{|c|}{\textit{Double-diffusive mixing parameters (S/R \texttt{ddmix})} } \\
194 \hline
195 Rrho0 & not used &
196 limit for double diffusive density ratio \\
197 dsfmax & not used &
198 maximum diffusivity in case of salt fingering \\
199 \hline
200 \hline
201 \end{tabular}
202 }
203 \caption{~}
204 \end{table}
205
206
207
208 %----------------------------------------------------------------------
209
210 \subsubsection{Equations
211 \label{sec:pkg:kpp:equations}}
212
213 %----------------------------------------------------------------------
214
215 \subsubsection{Key subroutines
216 \label{sec:pkg:kpp:subroutines}}
217
218 \paragraph{kpp\_calc:} Top-level routine. \\
219 ~
220
221 \paragraph{kpp\_mix:} Intermediate-level routine \\
222 ~
223
224 \paragraph{ri\_iwmix:} ~ \\
225 %
226 Compute interior viscosity and diffusivity coefficients due to
227 %
228 \begin{itemize}
229 %
230 \item
231 shear instability (dependent on a local gradient Richardson number),
232 %
233 \item
234 to background internal wave activity, and
235 %
236 \item
237 to static instability (local Richardson number < 0).
238 %
239 \end{itemize}
240
241
242 \paragraph{bldepth:} ~ \\
243 %
244 The oceanic planetary boundary layer depth, \texttt{hbl}, is determined as
245 the shallowest depth where the bulk Richardson number is
246 equal to the critical value, \texttt{Ricr}.
247
248 Bulk Richardson numbers are evaluated by computing velocity and
249 buoyancy differences between values at zgrid(kl) < 0 and surface
250 reference values.
251 In this configuration, the reference values are equal to the
252 values in the surface layer.
253 When using a very fine vertical grid, these values should be
254 computed as the vertical average of velocity and buoyancy from
255 the surface down to epsilon*zgrid(kl).
256
257 When the bulk Richardson number at k exceeds Ricr, hbl is
258 linearly interpolated between grid levels zgrid(k) and zgrid(k-1).
259
260 The water column and the surface forcing are diagnosed for
261 stable/ustable forcing conditions, and where hbl is relative
262 to grid points (caseA), so that conditional branches can be
263 avoided in later subroutines.
264
265 \paragraph{blmix:} ~ \\
266 %
267 Compute boundary layer mixing coefficients.
268 Mixing coefficients within boundary layer depend on surface
269 forcing and the magnitude and gradient of interior mixing below
270 the boundary layer ("matching").
271 %
272 \begin{enumerate}
273 %
274 \item
275 compute velocity scales at hbl
276 %
277 \item
278 find the interior viscosities and derivatives at hbl
279 %
280 \item
281 compute turbulent velocity scales on the interfaces
282 %
283 \item
284 compute the dimensionless shape functions at the interfaces
285 %
286 \item
287 compute boundary layer diffusivities at the interfaces
288 %
289 \item
290 compute nonlocal transport term
291 %
292 \item
293 find diffusivities at kbl-1 grid level
294 %
295 \end{enumerate}
296
297 \paragraph{kpp\_calc\_diff\_t/s, kpp\_calc\_visc:} ~ \\
298 %
299 Add contribution to net diffusivity/viscosity from
300 KPP diffusivity/viscosity.
301
302 \paragraph{kpp\_transport\_t/s/ptr:} ~ \\
303 %
304 Add non local KPP transport term (ghat) to diffusive
305 temperature/salinity/passive tracer flux.
306 The nonlocal transport term is nonzero only for scalars
307 in unstable (convective) forcing conditions.
308
309 {\footnotesize
310 \begin{verbatim}
311
312 C !CALLING SEQUENCE:
313 c ...
314 c kpp_calc (TOP LEVEL ROUTINE)
315 c |
316 c |-- statekpp: o compute all EOS/density-related arrays
317 c | o uses S/R FIND_ALPHA, FIND_BETA, FIND_RHO
318 c |
319 c |-- kppmix
320 c | |--- ri_iwmix (compute interior mixing coefficients due to constant
321 c | | internal wave activity, static instability,
322 c | | and local shear instability).
323 c | |
324 c | |--- bldepth (diagnose boundary layer depth)
325 c | |
326 c | |--- blmix (compute boundary layer diffusivities)
327 c | |
328 c | |--- enhance (enhance diffusivity at interface kbl - 1)
329 c | o
330 c |
331 c |-- swfrac
332 c o
333
334 \end{verbatim}
335 }
336
337 %----------------------------------------------------------------------
338
339 \subsubsection{KPP diagnostics
340 \label{sec:pkg:kpp:diagnostics}}
341
342 Diagnostics output is available via the diagnostics package
343 (see Section \ref{sec:pkg:diagnostics}).
344 Available output fields are summarized in
345 Table \ref{tab:pkg:kpp:diagnostics}.
346
347 \begin{table}[h!]
348 \label{tab:pkg:kpp:diagnostics}
349 {\footnotesize
350 \begin{verbatim}
351 ------------------------------------------------------
352 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c)
353 ------------------------------------------------------
354 KPPviscA| 23 |SM |m^2/s |KPP vertical eddy viscosity coefficient
355 KPPdiffS| 23 |SM |m^2/s |Vertical diffusion coefficient for salt & tracers
356 KPPdiffT| 23 |SM |m^2/s |Vertical diffusion coefficient for heat
357 KPPghat | 23 |SM |s/m^2 |Nonlocal transport coefficient
358 KPPhbl | 1 |SM |m |KPP boundary layer depth, bulk Ri criterion
359 KPPmld | 1 |SM |m |Mixed layer depth, dT=.8degC density criterion
360 KPPfrac | 1 |SM | |Short-wave flux fraction penetrating mixing layer
361 \end{verbatim}
362 }
363 \caption{~}
364 \end{table}
365
366 %----------------------------------------------------------------------
367
368 \subsubsection{Reference experiments}
369
370 lab\_sea:
371
372 natl\_box:
373
374 %----------------------------------------------------------------------
375
376 \subsubsection{References}

  ViewVC Help
Powered by ViewVC 1.1.22