/[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.6 - (hide annotations) (download) (as text)
Mon Aug 1 22:31:36 2005 UTC (19 years, 11 months ago) by heimbach
Branch: MAIN
Changes since 1.5: +371 -2 lines
File MIME type: application/x-tex
Updating (mostly kpp.tex, and corrections to exf.tex)

1 heimbach 1.6 \subsection{KPP: Nonlocal K-Profile Parameterization for
2     Diapycnal 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     %----------------------------------------------------------------------
15    
16     \subsubsection{KPP configuration and compiling}
17    
18     As with all MITgcm packages, KPP can be turned on or off at compile time
19     %
20     \begin{itemize}
21     %
22     \item
23     using the \texttt{packages.conf} file by adding \texttt{kpp} to it,
24     %
25     \item
26     or using \texttt{genmake2} adding
27     \texttt{-enable=kpp} or \texttt{-disable=kpp} switches
28     %
29     \end{itemize}
30     (see Section \ref{sect:buildingCode}).
31    
32     Parts of the KPP code can be enabled or disabled at compile time
33     via CPP preprocessor flags. These options are set in
34     \texttt{KPP\_OPTIONS.h}. Table \ref{tab:pkg:kpp:cpp} summarizes them.
35    
36     \begin{table}[h!]
37     \label{tab:pkg:kpp:cpp}
38     {\footnotesize
39     \begin{tabular}{|l|l|}
40     \hline
41     \textbf{CPP option} & \textbf{Description} \\
42     \hline \hline
43     \texttt{\_KPP\_RL} &
44     ~ \\
45     \texttt{FRUGAL\_KPP} &
46     ~ \\
47     \texttt{KPP\_SMOOTH\_SHSQ} &
48     ~ \\
49     \texttt{KPP\_SMOOTH\_DVSQ} &
50     ~ \\
51     \texttt{KPP\_SMOOTH\_DENS} &
52     ~ \\
53     \texttt{KPP\_SMOOTH\_VISC} &
54     ~ \\
55     \texttt{KPP\_SMOOTH\_DIFF} &
56     ~ \\
57     \texttt{KPP\_ESTIMATE\_UREF} &
58     ~ \\
59     \texttt{INCLUDE\_DIAGNOSTICS\_INTERFACE\_CODE} &
60     ~ \\
61     \texttt{KPP\_GHAT} &
62     ~ \\
63     \texttt{EXCLUDE\_KPP\_SHEAR\_MIX} &
64     ~ \\
65     \hline
66     \end{tabular}
67     }
68     \caption{~}
69     \end{table}
70    
71    
72    
73     %----------------------------------------------------------------------
74    
75     \subsubsection{Run-time parameters
76     \label{sec:pkg:kpp:runtime}}
77    
78     Run-time parameters are set in files
79     \texttt{data.pkg} and \texttt{data.kpp}
80     which are read in \texttt{kpp\_readparms.F}.
81     Run-time parameters may be broken into 3 categories:
82     (i) switching on/off the package at runtime,
83     (ii) required MITgcm flags,
84     (iii) package flags and parameters.
85    
86     \paragraph{Enabling the package}
87     ~ \\
88     %
89     The KPP package is switched on at runtime by setting
90     \texttt{useKPP = .TRUE.} in \texttt{data.pkg}.
91    
92     \paragraph{Required MITgcm flags}
93     ~ \\
94     %
95     The following flags/parameters of the MITgcm dynamical
96     kernel need to be set in conjunction with KPP:
97    
98     \begin{tabular}{ll}
99     \texttt{implicitViscosity = .TRUE.} & enable implicit vertical viscosity \\
100     \texttt{implicitDiffusion = .TRUE.} & enable implicit vertical diffusion \\
101     \end{tabular}
102    
103    
104     \paragraph{Package flags and parameters}
105     ~ \\
106     %
107     \begin{table}[h!]
108     \label{tab:pkg:kpp:runtime_flags}
109     {\footnotesize
110     \begin{tabular}{|l|c|l|}
111     \hline
112     \textbf{Flag/parameter} & \textbf{default} & \textbf{Description} \\
113     \hline \hline
114     \multicolumn{3}{|c|}{\textit{I/O related parameters} } \\
115     \hline
116     kpp\_freq & \texttt{deltaTClock} &
117     Recomputation frequency for KPP fields \\
118     kpp\_dumpFreq & \texttt{dumpFreq} &
119     Dump frequency of KPP field snapshots \\
120     kpp\_taveFreq & \texttt{taveFreq} &
121     Averaging and dump frequency of KPP fields \\
122     KPPmixingMaps & \texttt{.FALSE.} &
123     include KPP diagnostic maps in STDOUT \\
124     KPPwriteState & \texttt{.FALSE.} &
125     write KPP state to file \\
126     KPP\_ghatUseTotalDiffus & \texttt{.FALSE.} &
127     if \texttt{.T.} compute non-local term using total vertical diffusivity \\
128     ~ & ~ &
129     if \texttt{.F.} use KPP vertical diffusivity \\
130     \hline
131     \multicolumn{3}{|c|}{\textit{Genral KPP parameters} } \\
132     \hline
133     minKPPhbl & \texttt{delRc(1)} &
134     Minimum boundary layer depth \\
135     epsilon & 0.1 &
136     nondimensional extent of the surface layer \\
137     vonk & 0.4 &
138     von Karman constant \\
139     dB\_dz & 5.2E-5 1/s$^2$ &
140     maximum dB/dz in mixed layer hMix \\
141     concs & 98.96 &
142     ~ \\
143     concv & 1.8 &
144     ~ \\
145     \hline
146     \multicolumn{3}{|c|}{\textit{Boundary layer parameters (S/R \texttt{bldepth})} } \\
147     \hline
148     Ricr & 0.3 &
149     critical bulk Richardson number \\
150     cekman & 0.7 &
151     coefficient for Ekman depth \\
152     cmonob & 1.0 &
153     coefficient for Monin-Obukhov depth \\
154     concv & 1.8 &
155     ratio of interior to entrainment depth buoyancy frequency \\
156     hbf & 1.0 &
157     fraction of depth to which absorbed solar radiation contributes \\
158     ~ & ~ &
159     to surface buoyancy forcing \\
160     Vtc & \texttt{~} &
161     non-dim. coeff. for velocity scale of turbulant velocity shear \\
162     ~ & ~ &
163     ( = function of concv,concs,epsilon,vonk,Ricr) \\
164     \hline
165     \multicolumn{3}{|c|}{\textit{Boundary layer mixing parameters (S/R \texttt{blmix})} } \\
166     \hline
167     cstar & 10. &
168     proportionality coefficient for nonlocal transport \\
169     cg & ~ &
170     non-dimensional coefficient for counter-gradient term \\
171     ~ & ~ &
172     ( = function of cstar,vonk,concs,epsilon) \\
173     \hline
174     \multicolumn{3}{|c|}{\textit{Interior mixing parameters (S/R \texttt{Ri\_iwmix})} } \\
175     \hline
176     Riinfty & 0.7 &
177     gradient Richardson number limit for shear instability \\
178     BVDQcon & -0.2E-4 1/s$^2$ &
179     Brunt-V\"ai\"sal\"a squared \\
180     difm0 & 0.005 m$^2$/s &
181     viscosity max. due to shear instability \\
182     difs0 & 0.005 m$^2$/s &
183     tracer diffusivity max. due to shear instability \\
184     dift0 & 0.005 m$^2$/s &
185     heat diffusivity max. due to shear instability \\
186     difmcon & 0.1 &
187     viscosity due to convective instability \\
188     difscon & 0.1 &
189     tracer diffusivity due to convective instability \\
190     diftcon & 0.1 &
191     heat diffusivity due to convective instability \\
192     \hline
193     \multicolumn{3}{|c|}{\textit{Double-diffusive mixing parameters (S/R \texttt{ddmix})} } \\
194     \hline
195     Rrho0 & not used &
196     limit for double diffusive density ratio \\
197     dsfmax & not used &
198     maximum diffusivity in case of salt fingering \\
199     \hline
200     \hline
201     \end{tabular}
202     }
203     \caption{~}
204     \end{table}
205    
206    
207    
208     %----------------------------------------------------------------------
209    
210     \subsubsection{Equations
211     \label{sec:pkg:kpp:equations}}
212    
213     %----------------------------------------------------------------------
214    
215     \subsubsection{Key subroutines
216     \label{sec:pkg:kpp:subroutines}}
217    
218     \paragraph{kpp\_calc:} Top-level routine. \\
219     ~
220    
221     \paragraph{kpp\_mix:} Intermediate-level routine \\
222     ~
223    
224     \paragraph{ri\_iwmix:} ~ \\
225     %
226     Compute interior viscosity and diffusivity coefficients due to
227     %
228     \begin{itemize}
229     %
230     \item
231     shear instability (dependent on a local gradient Richardson number),
232     %
233     \item
234     to background internal wave activity, and
235     %
236     \item
237     to static instability (local Richardson number < 0).
238     %
239     \end{itemize}
240    
241    
242     \paragraph{bldepth:} ~ \\
243     %
244     The oceanic planetary boundary layer depth, \texttt{hbl}, is determined as
245     the shallowest depth where the bulk Richardson number is
246     equal to the critical value, \texttt{Ricr}.
247    
248     Bulk Richardson numbers are evaluated by computing velocity and
249     buoyancy differences between values at zgrid(kl) < 0 and surface
250     reference values.
251     In this configuration, the reference values are equal to the
252     values in the surface layer.
253     When using a very fine vertical grid, these values should be
254     computed as the vertical average of velocity and buoyancy from
255     the surface down to epsilon*zgrid(kl).
256    
257     When the bulk Richardson number at k exceeds Ricr, hbl is
258     linearly interpolated between grid levels zgrid(k) and zgrid(k-1).
259    
260     The water column and the surface forcing are diagnosed for
261     stable/ustable forcing conditions, and where hbl is relative
262     to grid points (caseA), so that conditional branches can be
263     avoided in later subroutines.
264    
265     \paragraph{blmix:} ~ \\
266     %
267     Compute boundary layer mixing coefficients.
268     Mixing coefficients within boundary layer depend on surface
269     forcing and the magnitude and gradient of interior mixing below
270     the boundary layer ("matching").
271     %
272     \begin{enumerate}
273     %
274     \item
275     compute velocity scales at hbl
276     %
277     \item
278     find the interior viscosities and derivatives at hbl
279     %
280     \item
281     compute turbulent velocity scales on the interfaces
282     %
283     \item
284     compute the dimensionless shape functions at the interfaces
285     %
286     \item
287     compute boundary layer diffusivities at the interfaces
288     %
289     \item
290     compute nonlocal transport term
291     %
292     \item
293     find diffusivities at kbl-1 grid level
294     %
295     \end{enumerate}
296    
297     \paragraph{kpp\_calc\_diff\_t/s, kpp\_calc\_visc:} ~ \\
298     %
299     Add contribution to net diffusivity/viscosity from
300     KPP diffusivity/viscosity.
301    
302     \paragraph{kpp\_transport\_t/s/ptr:} ~ \\
303     %
304     Add non local KPP transport term (ghat) to diffusive
305     temperature/salinity/passive tracer flux.
306     The nonlocal transport term is nonzero only for scalars
307     in unstable (convective) forcing conditions.
308    
309     {\footnotesize
310     \begin{verbatim}
311    
312     C !CALLING SEQUENCE:
313     c ...
314     c kpp_calc (TOP LEVEL ROUTINE)
315     c |
316     c |-- statekpp: o compute all EOS/density-related arrays
317     c | o uses S/R FIND_ALPHA, FIND_BETA, FIND_RHO
318     c |
319     c |-- kppmix
320     c | |--- ri_iwmix (compute interior mixing coefficients due to constant
321     c | | internal wave activity, static instability,
322     c | | and local shear instability).
323     c | |
324     c | |--- bldepth (diagnose boundary layer depth)
325     c | |
326     c | |--- blmix (compute boundary layer diffusivities)
327     c | |
328     c | |--- enhance (enhance diffusivity at interface kbl - 1)
329     c | o
330     c |
331     c |-- swfrac
332     c o
333    
334     \end{verbatim}
335     }
336    
337     %----------------------------------------------------------------------
338    
339     \subsubsection{KPP diagnostics
340     \label{sec:pkg:kpp:diagnostics}}
341    
342     Diagnostics output is available via the diagnostics package
343     (see Section \ref{sec:pkg:diagnostics}).
344     Available output fields are summarized in
345     Table \ref{tab:pkg:kpp:diagnostics}.
346    
347     \begin{table}[h!]
348     \label{tab:pkg:kpp:diagnostics}
349     {\footnotesize
350     \begin{verbatim}
351     ------------------------------------------------------
352     <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c)
353     ------------------------------------------------------
354     KPPviscA| 23 |SM |m^2/s |KPP vertical eddy viscosity coefficient
355     KPPdiffS| 23 |SM |m^2/s |Vertical diffusion coefficient for salt & tracers
356     KPPdiffT| 23 |SM |m^2/s |Vertical diffusion coefficient for heat
357     KPPghat | 23 |SM |s/m^2 |Nonlocal transport coefficient
358     KPPhbl | 1 |SM |m |KPP boundary layer depth, bulk Ri criterion
359     KPPmld | 1 |SM |m |Mixed layer depth, dT=.8degC density criterion
360     KPPfrac | 1 |SM | |Short-wave flux fraction penetrating mixing layer
361     \end{verbatim}
362     }
363     \caption{~}
364     \end{table}
365    
366     %----------------------------------------------------------------------
367    
368     \subsubsection{Reference experiments}
369    
370     lab\_sea:
371    
372     natl\_box:
373    
374     %----------------------------------------------------------------------
375    
376     \subsubsection{References}

  ViewVC Help
Powered by ViewVC 1.1.22