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

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

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


Revision 1.7 - (hide annotations) (download) (as text)
Tue Aug 2 22:26:58 2005 UTC (19 years, 11 months ago) by heimbach
Branch: MAIN
Changes since 1.6: +151 -5 lines
File MIME type: application/x-tex
Updating

1 heimbach 1.6 \subsection{KPP: Nonlocal K-Profile Parameterization for
2 heimbach 1.7 Vertical Mixing}
3 heimbach 1.1
4 edhill 1.3 \label{sec:pkg:kpp}
5     \begin{rawhtml}
6     <!-- CMIREDIR:package_kpp: -->
7     \end{rawhtml}
8 heimbach 1.6
9     Authors: Dimitris Menemenlis and Patrick Heimbach
10    
11     \subsubsection{Introduction
12     \label{sec:pkg:kpp:intro}}
13    
14 heimbach 1.7 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 heimbach 1.6 %----------------------------------------------------------------------
73    
74 heimbach 1.7 \subsubsection{KPP configuration and compiling
75     \label{sec:pkg:kpp:comp}}
76 heimbach 1.6
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 heimbach 1.7 \centering
97 heimbach 1.6 \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 heimbach 1.7 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 heimbach 1.6 \begin{table}[h!]
171 heimbach 1.7 \centering
172 heimbach 1.6 \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 heimbach 1.7 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 heimbach 1.6 %----------------------------------------------------------------------
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 heimbach 1.7 \paragraph{kpp\_calc\_diff\_t/\_s, kpp\_calc\_visc:} ~ \\
440 heimbach 1.6 %
441     Add contribution to net diffusivity/viscosity from
442     KPP diffusivity/viscosity.
443    
444 heimbach 1.7 \paragraph{kpp\_transport\_t/\_s/\_ptr:} ~ \\
445 heimbach 1.6 %
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 heimbach 1.7 \paragraph{Flow chart:} ~ \\
452     %
453 heimbach 1.6 {\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 heimbach 1.7 \centering
493 heimbach 1.6 \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 heimbach 1.7

  ViewVC Help
Powered by ViewVC 1.1.22