/[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.9 - (show annotations) (download) (as text)
Wed Apr 5 23:42:27 2006 UTC (19 years, 3 months ago) by molod
Branch: MAIN
Changes since 1.8: +1 -9 lines
File MIME type: application/x-tex
Adding lists of available diagnostics

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

  ViewVC Help
Powered by ViewVC 1.1.22