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

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

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

revision 1.5 by molod, Mon Jul 18 20:45:27 2005 UTC revision 1.7 by heimbach, Tue Aug 2 22:26:58 2005 UTC
# Line 1  Line 1 
1  \subsection{KPP Package: Ocean vertical mixing --  \subsection{KPP: Nonlocal K-Profile Parameterization for
2  the nonlocal K-profile parameterization scheme}  Vertical Mixing}
3    
4  \label{sec:pkg:kpp}  \label{sec:pkg:kpp}
5  \begin{rawhtml}  \begin{rawhtml}
6  <!-- CMIREDIR:package_kpp: -->  <!-- CMIREDIR:package_kpp: -->
7  \end{rawhtml}  \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    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22