/[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.7 - (show annotations) (download) (as text)
Tue Aug 2 22:26:58 2005 UTC (18 years, 9 months ago) by heimbach
Branch: MAIN
Changes since 1.6: +151 -5 lines
File MIME type: application/x-tex
Updating

1 \subsection{KPP: Nonlocal K-Profile Parameterization for
2 Vertical 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 The nonlocal K-Profile Parameterization (KPP) scheme
15 of \cite{lar-eta:94} unifies the treatment of a variety of
16 unresolved processes involved in vertical mixing.
17 To consider it as one mixing scheme is, in the view of the authors,
18 somewhat misleading since it consists of several entities
19 to deal with distinct mixing processes in the ocean's surface
20 boundary layer, and the interior:
21 %
22 \begin{enumerate}
23 %
24 \item
25 mixing in the interior is goverened by
26 shear instability (modeled as function of the local gradient
27 Richardson number), internal wave activity (assumed constant),
28 and double-diffusion (not implemented here).
29 %
30 \item
31 a boundary layer depth $h$ or \texttt{hbl} is determined
32 at each grid point, based on a critical value of turbulent
33 processes parameterized by a bulk Richardson number;
34 %
35 \item
36 mixing is strongly enhanced in the boundary layer under the
37 stabilizing or destabilizing influence of surface forcing
38 (buoyancy and momentum) enabling boundary layer properties
39 to penetrate well into the thermocline;
40 mixing is represented through a polynomial profile whose
41 coefficients are determined subject to several contraints;
42 %
43 \item
44 the boundary-layer profile is made to agree with similarity
45 theory of turbulence and is matched, in the asymptotic sense
46 (function and derivative agree at the boundary),
47 to the interior thus fixing the polynomial coefficients;
48 matching allows for some fraction of the boundary layer mixing
49 to affect the interior, and vice versa;
50 %
51 \item
52 a ``non-local'' term $\hat{\gamma}$ or \texttt{ghat}
53 which is independent of the vertical property gradient further
54 enhances mixing where the water column is unstable
55 %
56 \end{enumerate}
57 %
58 The scheme has been extensively compared to observations
59 (see e.g. \cite{lar-eta:97}) and is now coomon in many
60 ocean models.
61
62 The following sections will describe the KPP package
63 configuration and compiling (\ref{sec:pkg:kpp:comp}),
64 the settings and choices of runtime parameters
65 (\ref{sec:pkg:kpp:runtime}),
66 more detailed description of equations to which these
67 parameters relate (\ref{sec:pkg:kpp:equations}),
68 and key subroutines where they are used (\ref{sec:pkg:kpp:subroutines}),
69 and diagnostics output of KPP-derived diffusivities, viscosities
70 and boundary-layer/mixed-layer depths.
71
72 %----------------------------------------------------------------------
73
74 \subsubsection{KPP configuration and compiling
75 \label{sec:pkg:kpp:comp}}
76
77 As with all MITgcm packages, KPP can be turned on or off at compile time
78 %
79 \begin{itemize}
80 %
81 \item
82 using the \texttt{packages.conf} file by adding \texttt{kpp} to it,
83 %
84 \item
85 or using \texttt{genmake2} adding
86 \texttt{-enable=kpp} or \texttt{-disable=kpp} switches
87 %
88 \end{itemize}
89 (see Section \ref{sect:buildingCode}).
90
91 Parts of the KPP code can be enabled or disabled at compile time
92 via CPP preprocessor flags. These options are set in
93 \texttt{KPP\_OPTIONS.h}. Table \ref{tab:pkg:kpp:cpp} summarizes them.
94
95 \begin{table}[h!]
96 \centering
97 \label{tab:pkg:kpp:cpp}
98 {\footnotesize
99 \begin{tabular}{|l|l|}
100 \hline
101 \textbf{CPP option} & \textbf{Description} \\
102 \hline \hline
103 \texttt{\_KPP\_RL} &
104 ~ \\
105 \texttt{FRUGAL\_KPP} &
106 ~ \\
107 \texttt{KPP\_SMOOTH\_SHSQ} &
108 ~ \\
109 \texttt{KPP\_SMOOTH\_DVSQ} &
110 ~ \\
111 \texttt{KPP\_SMOOTH\_DENS} &
112 ~ \\
113 \texttt{KPP\_SMOOTH\_VISC} &
114 ~ \\
115 \texttt{KPP\_SMOOTH\_DIFF} &
116 ~ \\
117 \texttt{KPP\_ESTIMATE\_UREF} &
118 ~ \\
119 \texttt{INCLUDE\_DIAGNOSTICS\_INTERFACE\_CODE} &
120 ~ \\
121 \texttt{KPP\_GHAT} &
122 ~ \\
123 \texttt{EXCLUDE\_KPP\_SHEAR\_MIX} &
124 ~ \\
125 \hline
126 \end{tabular}
127 }
128 \caption{~}
129 \end{table}
130
131
132 %----------------------------------------------------------------------
133
134 \subsubsection{Run-time parameters
135 \label{sec:pkg:kpp:runtime}}
136
137 Run-time parameters are set in files
138 \texttt{data.pkg} and \texttt{data.kpp}
139 which are read in \texttt{kpp\_readparms.F}.
140 Run-time parameters may be broken into 3 categories:
141 (i) switching on/off the package at runtime,
142 (ii) required MITgcm flags,
143 (iii) package flags and parameters.
144
145 \paragraph{Enabling the package}
146 ~ \\
147 %
148 The KPP package is switched on at runtime by setting
149 \texttt{useKPP = .TRUE.} in \texttt{data.pkg}.
150
151 \paragraph{Required MITgcm flags}
152 ~ \\
153 %
154 The following flags/parameters of the MITgcm dynamical
155 kernel need to be set in conjunction with KPP:
156
157 \begin{tabular}{ll}
158 \texttt{implicitViscosity = .TRUE.} & enable implicit vertical viscosity \\
159 \texttt{implicitDiffusion = .TRUE.} & enable implicit vertical diffusion \\
160 \end{tabular}
161
162
163 \paragraph{Package flags and parameters}
164 ~ \\
165 %
166 Table \ref{tab:pkg:kpp:runtime_flags} summarizes the
167 runtime flags that are set in \texttt{data.pkg}, and
168 their default values.
169
170 \begin{table}[h!]
171 \centering
172 \label{tab:pkg:kpp:runtime_flags}
173 {\footnotesize
174 \begin{tabular}{|l|c|l|}
175 \hline
176 \textbf{Flag/parameter} & \textbf{default} & \textbf{Description} \\
177 \hline \hline
178 \multicolumn{3}{|c|}{\textit{I/O related parameters} } \\
179 \hline
180 kpp\_freq & \texttt{deltaTClock} &
181 Recomputation frequency for KPP fields \\
182 kpp\_dumpFreq & \texttt{dumpFreq} &
183 Dump frequency of KPP field snapshots \\
184 kpp\_taveFreq & \texttt{taveFreq} &
185 Averaging and dump frequency of KPP fields \\
186 KPPmixingMaps & \texttt{.FALSE.} &
187 include KPP diagnostic maps in STDOUT \\
188 KPPwriteState & \texttt{.FALSE.} &
189 write KPP state to file \\
190 KPP\_ghatUseTotalDiffus & \texttt{.FALSE.} &
191 if \texttt{.T.} compute non-local term using total vertical diffusivity \\
192 ~ & ~ &
193 if \texttt{.F.} use KPP vertical diffusivity \\
194 \hline
195 \multicolumn{3}{|c|}{\textit{Genral KPP parameters} } \\
196 \hline
197 minKPPhbl & \texttt{delRc(1)} &
198 Minimum boundary layer depth \\
199 epsilon & 0.1 &
200 nondimensional extent of the surface layer \\
201 vonk & 0.4 &
202 von Karman constant \\
203 dB\_dz & 5.2E-5 1/s$^2$ &
204 maximum dB/dz in mixed layer hMix \\
205 concs & 98.96 &
206 ~ \\
207 concv & 1.8 &
208 ~ \\
209 \hline
210 \multicolumn{3}{|c|}{\textit{Boundary layer parameters (S/R \texttt{bldepth})} } \\
211 \hline
212 Ricr & 0.3 &
213 critical bulk Richardson number \\
214 cekman & 0.7 &
215 coefficient for Ekman depth \\
216 cmonob & 1.0 &
217 coefficient for Monin-Obukhov depth \\
218 concv & 1.8 &
219 ratio of interior to entrainment depth buoyancy frequency \\
220 hbf & 1.0 &
221 fraction of depth to which absorbed solar radiation contributes \\
222 ~ & ~ &
223 to surface buoyancy forcing \\
224 Vtc & \texttt{~} &
225 non-dim. coeff. for velocity scale of turbulant velocity shear \\
226 ~ & ~ &
227 ( = function of concv,concs,epsilon,vonk,Ricr) \\
228 \hline
229 \multicolumn{3}{|c|}{\textit{Boundary layer mixing parameters (S/R \texttt{blmix})} } \\
230 \hline
231 cstar & 10. &
232 proportionality coefficient for nonlocal transport \\
233 cg & ~ &
234 non-dimensional coefficient for counter-gradient term \\
235 ~ & ~ &
236 ( = function of cstar,vonk,concs,epsilon) \\
237 \hline
238 \multicolumn{3}{|c|}{\textit{Interior mixing parameters (S/R \texttt{Ri\_iwmix})} } \\
239 \hline
240 Riinfty & 0.7 &
241 gradient Richardson number limit for shear instability \\
242 BVDQcon & -0.2E-4 1/s$^2$ &
243 Brunt-V\"ai\"sal\"a squared \\
244 difm0 & 0.005 m$^2$/s &
245 viscosity max. due to shear instability \\
246 difs0 & 0.005 m$^2$/s &
247 tracer diffusivity max. due to shear instability \\
248 dift0 & 0.005 m$^2$/s &
249 heat diffusivity max. due to shear instability \\
250 difmcon & 0.1 &
251 viscosity due to convective instability \\
252 difscon & 0.1 &
253 tracer diffusivity due to convective instability \\
254 diftcon & 0.1 &
255 heat diffusivity due to convective instability \\
256 \hline
257 \multicolumn{3}{|c|}{\textit{Double-diffusive mixing parameters (S/R \texttt{ddmix})} } \\
258 \hline
259 Rrho0 & not used &
260 limit for double diffusive density ratio \\
261 dsfmax & not used &
262 maximum diffusivity in case of salt fingering \\
263 \hline
264 \hline
265 \end{tabular}
266 }
267 \caption{~}
268 \end{table}
269
270
271
272 %----------------------------------------------------------------------
273
274 \subsubsection{Equations
275 \label{sec:pkg:kpp:equations}}
276
277 We restrict ourselves to writing out only the essential equations
278 that relate to main processes and parameters mentioned above.
279 We closely follow the notation of \cite{lar-eta:94}.
280
281 \paragraph{Mixing in the boundary layer} ~ \\
282 %
283 ~
284
285 The vertical fluxes $\overline{wx}$
286 of momentum and tracer properties $X$
287 is composed of a gradient-flux term (proportional to
288 the vertical property divergence $\partial_z X$), and
289 a ``nonlocal'' term $\gamma_x$ that enhances the
290 gradient-flux mixing coefficient $K_x$
291 %
292 \begin{equation}
293 \overline{wx}(d) \, = \, -K_x \left(
294 \frac{\partial X}{\partial z} \, - \, \gamma_x \right)
295 \end{equation}
296
297 \begin{itemize}
298 %
299 \item
300 \textit{Boundary layer mixing profile} \\
301 %
302 It is expressed as the product of the boundary layer depth $h$,
303 a depth-dependent turbulent velocity scale $w_x(\sigma)$ and a
304 non-dimensional shape function $G(\sigma)$
305 %
306 \begin{equation}
307 K_x(\sigma) \, = \, h \, w_x(\sigma) \, G(\sigma)
308 \end{equation}
309 %
310 with dimensionless vertical coordinate $\sigma = d/h$.
311 For details of $ w_x(\sigma)$ and $G(\sigma)$ we refer to
312 \cite{lar-eta:94}.
313
314 %
315 \item
316 \textit{Nonlocal mixing term} \\
317 %
318 The nonlocal transport term $\gamma$ is nonzero only for
319 tracers in unstable (convective) forcing conditions.
320 Thus, depending on the stability parameter $\zeta = d/L$
321 (with depth $d$, Monin-Obukhov length scale $L$)
322 it has the following form:
323 %
324 \begin{eqnarray}
325 \begin{array}{cl}
326 \gamma_x \, = \, 0 & \zeta \, \ge \, 0 \\
327 ~ & ~ \\
328 \left.
329 \begin{array}{c}
330 \gamma_m \, = \, 0 \\
331 ~ \\
332 \gamma_s \, = \, C_s
333 \frac{\overline{w s_0}}{w_s(\sigma) h} \\
334 ~ \\
335 \gamma_{\theta} \, = \, C_s
336 \frac{\overline{w \theta_0}+\overline{w \theta_R}}{w_s(\sigma) h} \\
337 \end{array}
338 \right\}
339 &
340 \zeta \, < \, 0 \\
341 \end{array}
342 \end{eqnarray}
343
344 \end{itemize}
345
346
347 \paragraph{Mixing in the interior} ~ \\
348 %
349 ~
350
351 \paragraph{Implicit time integration} ~ \\
352 %
353 ~
354
355 %----------------------------------------------------------------------
356
357 \subsubsection{Key subroutines
358 \label{sec:pkg:kpp:subroutines}}
359
360 \paragraph{kpp\_calc:} Top-level routine. \\
361 ~
362
363 \paragraph{kpp\_mix:} Intermediate-level routine \\
364 ~
365
366 \paragraph{ri\_iwmix:} ~ \\
367 %
368 Compute interior viscosity and diffusivity coefficients due to
369 %
370 \begin{itemize}
371 %
372 \item
373 shear instability (dependent on a local gradient Richardson number),
374 %
375 \item
376 to background internal wave activity, and
377 %
378 \item
379 to static instability (local Richardson number < 0).
380 %
381 \end{itemize}
382
383
384 \paragraph{bldepth:} ~ \\
385 %
386 The oceanic planetary boundary layer depth, \texttt{hbl}, is determined as
387 the shallowest depth where the bulk Richardson number is
388 equal to the critical value, \texttt{Ricr}.
389
390 Bulk Richardson numbers are evaluated by computing velocity and
391 buoyancy differences between values at zgrid(kl) < 0 and surface
392 reference values.
393 In this configuration, the reference values are equal to the
394 values in the surface layer.
395 When using a very fine vertical grid, these values should be
396 computed as the vertical average of velocity and buoyancy from
397 the surface down to epsilon*zgrid(kl).
398
399 When the bulk Richardson number at k exceeds Ricr, hbl is
400 linearly interpolated between grid levels zgrid(k) and zgrid(k-1).
401
402 The water column and the surface forcing are diagnosed for
403 stable/ustable forcing conditions, and where hbl is relative
404 to grid points (caseA), so that conditional branches can be
405 avoided in later subroutines.
406
407 \paragraph{blmix:} ~ \\
408 %
409 Compute boundary layer mixing coefficients.
410 Mixing coefficients within boundary layer depend on surface
411 forcing and the magnitude and gradient of interior mixing below
412 the boundary layer ("matching").
413 %
414 \begin{enumerate}
415 %
416 \item
417 compute velocity scales at hbl
418 %
419 \item
420 find the interior viscosities and derivatives at hbl
421 %
422 \item
423 compute turbulent velocity scales on the interfaces
424 %
425 \item
426 compute the dimensionless shape functions at the interfaces
427 %
428 \item
429 compute boundary layer diffusivities at the interfaces
430 %
431 \item
432 compute nonlocal transport term
433 %
434 \item
435 find diffusivities at kbl-1 grid level
436 %
437 \end{enumerate}
438
439 \paragraph{kpp\_calc\_diff\_t/\_s, kpp\_calc\_visc:} ~ \\
440 %
441 Add contribution to net diffusivity/viscosity from
442 KPP diffusivity/viscosity.
443
444 \paragraph{kpp\_transport\_t/\_s/\_ptr:} ~ \\
445 %
446 Add non local KPP transport term (ghat) to diffusive
447 temperature/salinity/passive tracer flux.
448 The nonlocal transport term is nonzero only for scalars
449 in unstable (convective) forcing conditions.
450
451 \paragraph{Flow chart:} ~ \\
452 %
453 {\footnotesize
454 \begin{verbatim}
455
456 C !CALLING SEQUENCE:
457 c ...
458 c kpp_calc (TOP LEVEL ROUTINE)
459 c |
460 c |-- statekpp: o compute all EOS/density-related arrays
461 c | o uses S/R FIND_ALPHA, FIND_BETA, FIND_RHO
462 c |
463 c |-- kppmix
464 c | |--- ri_iwmix (compute interior mixing coefficients due to constant
465 c | | internal wave activity, static instability,
466 c | | and local shear instability).
467 c | |
468 c | |--- bldepth (diagnose boundary layer depth)
469 c | |
470 c | |--- blmix (compute boundary layer diffusivities)
471 c | |
472 c | |--- enhance (enhance diffusivity at interface kbl - 1)
473 c | o
474 c |
475 c |-- swfrac
476 c o
477
478 \end{verbatim}
479 }
480
481 %----------------------------------------------------------------------
482
483 \subsubsection{KPP diagnostics
484 \label{sec:pkg:kpp:diagnostics}}
485
486 Diagnostics output is available via the diagnostics package
487 (see Section \ref{sec:pkg:diagnostics}).
488 Available output fields are summarized in
489 Table \ref{tab:pkg:kpp:diagnostics}.
490
491 \begin{table}[h!]
492 \centering
493 \label{tab:pkg:kpp:diagnostics}
494 {\footnotesize
495 \begin{verbatim}
496 ------------------------------------------------------
497 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c)
498 ------------------------------------------------------
499 KPPviscA| 23 |SM |m^2/s |KPP vertical eddy viscosity coefficient
500 KPPdiffS| 23 |SM |m^2/s |Vertical diffusion coefficient for salt & tracers
501 KPPdiffT| 23 |SM |m^2/s |Vertical diffusion coefficient for heat
502 KPPghat | 23 |SM |s/m^2 |Nonlocal transport coefficient
503 KPPhbl | 1 |SM |m |KPP boundary layer depth, bulk Ri criterion
504 KPPmld | 1 |SM |m |Mixed layer depth, dT=.8degC density criterion
505 KPPfrac | 1 |SM | |Short-wave flux fraction penetrating mixing layer
506 \end{verbatim}
507 }
508 \caption{~}
509 \end{table}
510
511 %----------------------------------------------------------------------
512
513 \subsubsection{Reference experiments}
514
515 lab\_sea:
516
517 natl\_box:
518
519 %----------------------------------------------------------------------
520
521 \subsubsection{References}
522

  ViewVC Help
Powered by ViewVC 1.1.22