/[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.11 - (show annotations) (download) (as text)
Mon Aug 30 23:09:21 2010 UTC (13 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.10: +7 -5 lines
File MIME type: application/x-tex
clean-up latex built:
 (remove multiple definition of label; fix missing reference; replace
  non-standard latex stuff; ...)

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

  ViewVC Help
Powered by ViewVC 1.1.22