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

Contents of /manual/s_phys_pkgs/text/gmredi.tex

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


Revision 1.1 - (show annotations) (download) (as text)
Thu Sep 27 19:43:36 2001 UTC (23 years, 10 months ago) by adcroft
Branch: MAIN
File MIME type: application/x-tex
Added quick pass at doc. for GM/Redi. Code description is
out of date and need to find figures. Tapering is upto date.

1 \section{Gent/McWiliams/Redi SGS Eddy parameterization}
2
3 There are two parts to the Redi/GM parameterization of geostrophic
4 eddies. The first aims to mix tracer properties along isentropes
5 (neutral surfaces) by means of a diffusion operator oriented along the
6 local isentropic surface (Redi). The second part, adiabatically
7 re-arranges tracers through an advective flux where the advecting flow
8 is a function of slope of the isentropic surfaces (GM).
9
10 The first GCM implementation of the Redi scheme was by Cox 1987 in the
11 GFDL ocean circulation model. The original approach failed to
12 distinguish between isopycnals and surfaces of locally referenced
13 potential density (now called neutral surfaces) which are proper
14 isentropes for the ocean. As will be discussed later, it also appears
15 that the Cox implementation is susceptible to a computational mode.
16 Due to this mode, the Cox scheme requires a background lateral
17 diffusion to be present to conserve the integrity of the model fields.
18
19 The GM parameterization was then added to the GFDL code in the form of
20 a non-divergent bolus velocity. The method defines two
21 stream-functions expressed in terms of the isoneutral slopes subject
22 to the boundary condition of zero value on upper and lower
23 boundaries. The horizontal bolus velocities are then the vertical
24 derivative of these functions. Here in lies a problem highlighted by
25 Griffies et al., 1997: the bolus velocities involve multiple
26 derivatives on the potential density field, which can consequently
27 give rise to noise. Griffies et al. point out that the GM bolus fluxes
28 can be identically written as a skew flux which involves fewer
29 differential operators. Further, combining the skew flux formulation
30 and Redi scheme, substantial cancellations take place to the point
31 that the horizontal fluxes are unmodified from the lateral diffusion
32 parameterization.
33
34 \subsection{Redi scheme: Isopycnal diffusion}
35
36 The Redi scheme diffuses tracers along isopycnals and introduces a
37 term in the tendency (rhs) of such a tracer (here $\tau$) of the form:
38 \begin{equation}
39 \bf{\nabla} \cdot \kappa_\rho \bf{K}_{Redi} \bf{\nabla} \tau
40 \end{equation}
41 where $\kappa_\rho$ is the along isopycnal diffusivity and
42 $\bf{K}_{Redi}$ is a rank 2 tensor that projects the gradient of
43 $\tau$ onto the isopycnal surface. The unapproximated projection tensor is:
44 \begin{equation}
45 \bf{K}_{Redi} = \left(
46 \begin{array}{ccc}
47 1 + S_x& S_x S_y & S_x \\
48 S_x S_y & 1 + S_y & S_y \\
49 S_x & S_y & |S|^2 \\
50 \end{array}
51 \right)
52 \end{equation}
53 Here, $S_x = -\partial_x \sigma / \partial_z \sigma$ and $S_y =
54 -\partial_y \sigma / \partial_z \sigma$ are the components of the
55 isoneutral slope.
56
57 The first point to note is that a typical slope in the ocean interior
58 is small, say of the order $10^{-4}$. A maximum slope might be of
59 order $10^{-2}$ and only exceeds such in unstratified regions where
60 the slope is ill defined. It is therefore justifiable, and
61 customary, to make the small slope approximation, $|S| << 1$. The Redi
62 projection tensor then becomes:
63 \begin{equation}
64 \bf{K}_{Redi} = \left(
65 \begin{array}{ccc}
66 1 & 0 & S_x \\
67 0 & 1 & S_y \\
68 S_x & S_y & |S|^2 \\
69 \end{array}
70 \right)
71 \end{equation}
72
73
74 \subsection{GM parameterization}
75
76 The GM parameterization aims to parameterise the ``advective'' or
77 ``transport'' effect of geostrophic eddies by means of a ``bolus''
78 velocity, $\bf{u}^*$. The divergence of this advective flux is added
79 to the tracer tendency equation (on the rhs):
80 \begin{equation}
81 - \bf{\nabla} \cdot \tau \bf{u}^*
82 \end{equation}
83
84 The bolus velocity is defined as:
85 \begin{eqnarray}
86 u^* & = & - \partial_z F_x \\
87 v^* & = & - \partial_z F_y \\
88 w^* & = & \partial_x F_x + \partial_y F_y
89 \end{eqnarray}
90 where $F_x$ and $F_y$ are stream-functions with boundary conditions
91 $F_x=F_y=0$ on upper and lower boundaries. The virtue of casting the
92 bolus velocity in terms of these stream-functions is that they are
93 automatically non-divergent ($\partial_x u^* + \partial_y v^* = -
94 \partial_{xz} F_x - \partial_{yz} F_y = - \partial_z w^*$). $F_x$ and
95 $F_y$ are specified in terms of the isoneutral slopes $S_x$ and $S_y$:
96 \begin{eqnarray}
97 F_x & = & \kappa_{GM} S_x \\
98 F_y & = & \kappa_{GM} S_y
99 \end{eqnarray}
100 This is the form of the GM parameterization as applied by Donabasaglu,
101 1997, in MOM versions 1 and 2.
102
103 \subsection{Griffies Skew Flux}
104
105 Griffies notes that the discretisation of bolus velocities involves
106 multiple layers of differencing and interpolation that potentially
107 lead to noisy fields and computational modes. He pointed out that the
108 bolus flux can be re-written in terms of a non-divergent flux and a
109 skew-flux:
110 \begin{eqnarray*}
111 \bf{u}^* \tau
112 & = &
113 \left( \begin{array}{c}
114 - \partial_z ( \kappa_{GM} S_x ) \tau \\
115 - \partial_z ( \kappa_{GM} S_y ) \tau \\
116 (\partial_x \kappa_{GM} S_x + \partial_y \kappa_{GM} S_y)\tau
117 \end{array} \right)
118 \\
119 & = &
120 \left( \begin{array}{c}
121 - \partial_z ( \kappa_{GM} S_x \tau) \\
122 - \partial_z ( \kappa_{GM} S_y \tau) \\
123 \partial_x ( \kappa_{GM} S_x \tau) + \partial_y ( \kappa_{GM} S_y) \tau)
124 \end{array} \right)
125 + \left( \begin{array}{c}
126 \kappa_{GM} S_x \partial_z \tau \\
127 \kappa_{GM} S_y \partial_z \tau \\
128 - \kappa_{GM} S_x \partial_x \tau - \kappa_{GM} S_y) \partial_y \tau
129 \end{array} \right)
130 \end{eqnarray*}
131 The first vector is non-divergent and thus has no effect on the tracer
132 field and can be dropped. The remaining flux can be written:
133 \begin{equation}
134 \bf{u}^* \tau = - \kappa_{GM} \bf{K}_{GM} \bf{\nabla} \tau
135 \end{equation}
136 where
137 \begin{equation}
138 \bf{K}_{GM} =
139 \left(
140 \begin{array}{ccc}
141 0 & 0 & -S_x \\
142 0 & 0 & -S_y \\
143 S_x & S_y & 0
144 \end{array}
145 \right)
146 \end{equation}
147 is an anti-symmetric tensor.
148
149 This formulation of the GM parameterization involves fewer derivatives
150 than the original and also involves only terms that already appear in
151 the Redi mixing scheme. Indeed, a somewhat fortunate cancellation
152 becomes apparent when we use the GM parameterization in conjunction
153 with the Redi isoneutral mixing scheme:
154 \begin{equation}
155 \kappa_\rho \bf{K}_{Redi} \bf{\nabla} \tau
156 - u^* \tau =
157 ( \kappa_\rho \bf{K}_{Redi} + \kappa_{GM} \bf{K}_{GM} ) \bf{\nabla} \tau
158 \end{equation}
159 In the instance that $\kappa_{GM} = \kappa_{\rho}$ then
160 \begin{equation}
161 \kappa_\rho \bf{K}_{Redi} + \kappa_{GM} \bf{K}_{GM} =
162 \kappa_\rho
163 \left( \begin{array}{ccc}
164 1 & 0 & 0 \\
165 0 & 1 & 0 \\
166 2 S_x & 2 S_y & |S|^2
167 \end{array}
168 \right)
169 \end{equation}
170 which differs from the variable laplacian diffusion tensor by only
171 two non-zero elements in the $z$-row.
172
173 \subsection{Variable $\kappa_{GM}$}
174
175 Visbeck et al., 1996, suggest making the eddy coefficient,
176 $\kappa_{GM}$, a function of the Eady growth rate,
177 $|f|/\sqrt{Ri}$. The formula involves a non-dimensional constant,
178 $\alpha$, and a length-scale $L$:
179 \begin{displaymath}
180 \kappa_{GM} = \alpha L^2 \overline{ \frac{|f|}{\sqrt{Ri}} }^z
181 \end{displaymath}
182 where the Eady growth rate has been depth averaged (indicated by the
183 over-line). A local Richardson number is defined $Ri = N^2 / (\partial
184 u/\partial z)^2$ which, when combined with thermal wind gives:
185 \begin{displaymath}
186 \frac{1}{Ri} = \frac{(\frac{\partial u}{\partial z})^2}{N^2} =
187 \frac{ ( \frac{g}{f \rho_o} | {\bf \nabla} \sigma | )^2 }{N^2} =
188 \frac{ M^4 }{ |f|^2 N^2 }
189 \end{displaymath}
190 where $M^2$ is defined $M^2 = \frac{g}{\rho_o} |{\bf \nabla} \sigma|$.
191 Substituting into the formula for $\kappa_{GM}$ gives:
192 \begin{displaymath}
193 \kappa_{GM} = \alpha L^2 \overline{ \frac{M^2}{N} }^z =
194 \alpha L^2 \overline{ \frac{M^2}{N^2} N }^z =
195 \alpha L^2 \overline{ |S| N }^z
196 \end{displaymath}
197
198
199 \subsection{Tapering and stability}
200
201 Experience with the GFDL model showed that the GM scheme has to be
202 matched to the convective parameterization. This was originally
203 expressed in connection with the introduction of the KPP boundary
204 layer scheme (Large et al., 97) but infact, as subsequent experience
205 with the MIT model has found, is necessary for any convective
206 parameterization.
207
208 \fbox{ \begin{minipage}{4.75in}
209 {\em S/R GMREDI\_SLOPE\_LIMIT} ({\em
210 pkg/gmredi/gmredi\_slope\_limit.F})
211
212 $\sigma_x, s_x$: {\bf SlopeX} (argument)
213
214 $\sigma_y, s_y$: {\bf SlopeY} (argument)
215
216 $\sigma_z$: {\bf dSigmadRReal} (argument)
217
218 $z_\sigma^{*}$: {\bf dRdSigmaLtd} (argument)
219
220 \end{minipage} }
221
222
223 \subsubsection{Slope clipping}
224
225 Deep convection sites and the mixed layer are indicated by
226 homogenized, unstable or nearly unstable stratification. The slopes in
227 such regions can be either infinite, very large with a sign reversal
228 or simply very large. From a numerical point of view, large slopes
229 lead to large variations in the tensor elements (implying large bolus
230 flow) and can be numerically unstable. This was first reognized by
231 Cox, 1987, who implemented ``slope clipping'' in the isopycnal mixing
232 tensor. Here, the slope magnitude is simply restricted by an upper
233 limit:
234 \begin{eqnarray}
235 |\nabla \sigma| & = & \sqrt{ \sigma_x^2 + \sigma_y^2 } \\
236 S_{lim} & = & - \frac{|\nabla \sigma|}{ S_{max} }
237 \;\;\;\;\;\;\;\; \mbox{where $S_{max}$ is a parameter} \\
238 \sigma_z^\star & = & \min( \sigma_z , S_{lim} ) \\
239 {[s_x,s_y]} & = & - \frac{ [\sigma_x,\sigma_y] }{\sigma_z^\star}
240 \end{eqnarray}
241 Notice that this algorithm assumes stable stratification through the
242 ``min'' function. In the case where the fluid is well stratified ($\sigma_z < S_{lim}$) then the slopes evaluate to:
243 \begin{equation}
244 {[s_x,s_y]} = - \frac{ [\sigma_x,\sigma_y] }{\sigma_z}
245 \end{equation}
246 while in the limited regions ($\sigma_z > S_{lim}$) the slopes become:
247 \begin{equation}
248 {[s_x,s_y]} = \frac{ [\sigma_x,\sigma_y] }{|\nabla \sigma|/S_{max}}
249 \end{equation}
250 so that the slope magnitude is limited $\sqrt{s_x^2 + s_y^2} =
251 S_{max}$.
252
253 The slope clipping scheme is activated in the model by setting {\bf
254 GM\_tap\-er\_scheme = 'clipping'} in {\em data.gmredi}.
255
256 Even using slope clipping, it is normally the case that the vertical
257 diffusion term (with coefficient $\kappa_\rho{\bf K}_{33} =
258 \kappa_\rho S_{max}^2$) is large and must be time-stepped using an
259 implicit procedure (see section on discretisation and code later).
260 Fig. \ref{fig-mixedlayer} shows the mixed layer depth resulting from
261 a) using the GM scheme with clipping and b) no GM scheme (horizontal
262 diffusion). The classic result of dramatically reduced mixed layers is
263 evident. Indeed, the deep convection sites to just one or two points
264 each and are much shallower than we might prefer. This, it turns out,
265 is due to the over zealous restratification due to the bolus transport
266 parameterization. Limiting the slopes also breaks the adiabatic nature
267 of the GM/Redi parameterization, re-introducing diabatic fluxes in
268 regions where the limiting is in effect.
269
270 \subsubsection{Tapering: Gerdes, Koberle and Willebrand, Clim. Dyn. 1991}
271
272 The tapering scheme used in Gerdes et al., 1991, (\cite{gkw91})
273 addressed two issues with the clipping method: the introduction of
274 large vertical fluxes in addition to convective adjustment fluxes is
275 avoided by tapering the GM/Redi slopes back to zero in
276 low-stratification regions; the adjustment of slopes is replaced by a
277 tapering of the entire GM/Redi tensor. This means the direction of
278 fluxes is unaffected as the amplitude is scaled.
279
280 The scheme inserts a tapering function, $f_1(S)$, in front of the
281 GM/Redi tensor:
282 \begin{equation}
283 f_1(S) = \min \left[ 1, \left( \frac{S_{max}}{|S|}\right)^2 \right]
284 \end{equation}
285 where $S_{max}$ is the maximum slope you want allowed. Where the
286 slopes, $|S|<S_{max}$ then $f_1(S) = 1$ and the tensor is un-tapered
287 but where $|S| \ge S_{max}$ then $f_1(S)$ scales down the tensor so
288 that the effective vertical diffusivity term $\kappa f_1(S) |S|^2 =
289 \kappa S_{max}^2$.
290
291 The GKW tapering scheme is activated in the model by setting {\bf
292 GM\_tap\-er\_scheme = 'gkw91'} in {\em data.gmredi}.
293
294 \subsection{Tapering: Danabasoglu and McWilliams, J. Clim. 1995}
295
296 The tapering scheme used by Danabasoglu and McWilliams, 1995,
297 \cite{DM95}, followed a similar procedure but used a different
298 tapering function, $f_1(S)$:
299 \begin{equation}
300 f_1(S) = \frac{1}{2} \left( 1+\tanh \left[ \frac{S_c - |S|}{S_d} \right] \right)
301 \end{equation}
302 where $S_c = 0.004$ is a cut-off slope and $S_d=0.001$ is a scale over
303 which the slopes are smoothly tapered. Functionally, the operates in
304 the same way as the GKW91 scheme but has a substantially lower
305 cut-off, turning off the GM/Redi SGS parameterization for weaker
306 slopes.
307
308 The DM tapering scheme is activated in the model by setting {\bf
309 GM\_tap\-er\_scheme = 'dm95'} in {\em data.gmredi}.
310
311 \subsection{Tapering: Large, Danabasoglu and Doney, JPO 1997}
312
313 The tapering used in Large et al., 1997, \cite{ldd97}, is based on the
314 DM95 tapering scheme, but also tapers the scheme with an additional
315 function of height, $f_2(z)$, so that the GM/Redi SGS fluxes are
316 reduced near the surface:
317 \begin{equation}
318 f_2(S) = \frac{1}{2} \left( 1 + \sin(\pi \frac{z}{D} - \pi/2)\right)
319 \end{equation}
320 where $D = L_\rho |S|$ is a depth-scale and $L_\rho=c/f$ with
321 $c=2$~m~s$^{-1}$. This tapering with height was introduced to fix
322 some spurious interaction with the mixed-layer KPP parameterization.
323
324 The LDD tapering scheme is activated in the model by setting {\bf
325 GM\_tap\-er\_scheme = 'ldd97'} in {\em data.gmredi}.
326
327
328
329 \begin{figure}
330 %\includegraphics{mixedlayer-cox.eps}
331 %\includegraphics{mixedlayer-diff.eps}
332 \caption{Mixed layer depth using GM parameterization with a) Cox slope
333 clipping and for comparison b) using horizontal constant diffusion.}
334 \ref{fig-mixedlayer}
335 \end{figure}
336
337 \begin{figure}
338 %\includegraphics{slopelimits.eps}
339 \caption{Effective slope as a function of ``true'' slope using a) Cox
340 slope clipping, b) GKW91 limiting, c) DM95 limiting and d) LDD97
341 limiting.}
342 \end{figure}
343
344
345 %\begin{figure}
346 %\includegraphics{coxslope.eps}
347 %\includegraphics{gkw91slope.eps}
348 %\includegraphics{dm95slope.eps}
349 %\includegraphics{ldd97slope.eps}
350 %\caption{Effective slope magnitude at 100~m depth evaluated using a)
351 %Cox slope clipping, b) GKW91 limiting, c) DM95 limiting and d) LDD97
352 %limiting.}
353 %\end{figure}
354
355 \section{Discretisation and code}
356
357 This is the old documentation.....has to be brought upto date with MITgcm.
358
359
360 The Gent-McWilliams-Redi parameterization is implemented through the
361 package ``gmredi''. There are two necessary calls to ``gmredi''
362 routines other than initialization; 1) to calculate the slope tensor
363 as a function of the current model state ({\bf gmredi\_calc\_tensor})
364 and 2) evaluation of the lateral and vertical fluxes due to gradients
365 along isopycnals or bolus transport ({\bf gmredi\_xtransport}, {\bf
366 gmredi\_ytransport} and {\bf gmredi-rtransport}).
367
368 Each element of the tensor is discretised to be adiabatic and so that
369 there would be no flux if the gmredi operator is applied to buoyancy.
370 To acheive this we have to consider both these constraints for each
371 row of the tensor, each row corresponding to a 'u', 'v' or 'w' point
372 on the model grid.
373
374 The code that implements the Redi/GM/Griffies schemes involves an
375 original core routine {\bf inc\_tracer()} that is used to calculate
376 the tendency in the tracers (namely, salt and potential temperature)
377 and a new routine {\bf RediTensor()} that calculates the tensor
378 components and $\kappa_{GM}$.
379
380 \subsection{subroutine RediTensor()}
381
382 {\small
383 \begin{verbatim}
384 subroutine RediTensor(Temp,Salt,Kredigm,K31,K32,K33, nIter,DumpFlag)
385 |---in--| |-------out-------|
386 ! Input
387 real Temp(Nx,Ny,Nz) ! Potential temperature
388 real Salt(Nx,Ny,Nz) ! Salinity
389 ! Output
390 real Kredigm(Nx,Ny,Nz) ! Redi/GM eddy coefficient
391 real K31(Nx,Ny,Nz) ! Redi/GM (3,1) tensor component
392 real K32(Nx,Ny,Nz) ! Redi/GM (3,2) tensor component
393 real K33(Nx,Ny,Nz) ! Redi/GM (3,3) tensor component
394 ! Auxiliary input
395 integer nIter ! interation/time-step number
396 logical DumpFlag ! flag to indicate routine should ``dump''
397 \end{verbatim}
398 }
399
400 The subroutine {\bf RediTensor()} is called from {\bf model()} with
401 input arguments $T$ and $S$. It returns the 3D-arrays {\tt Kredigm},
402 {\t K31}, {\tt K32} and {\tt K33} which represent $\kappa_{GM}$ (at
403 $T/S$ points) and the three components of the bottom row in the
404 Redi/GM tensor; $2 S_x$, $2 S_y$ and $|S|^2$ respectively, all at $W$
405 points.
406
407 The discretisations and algorithm within {\bf RediTensor()} are as
408 follows. The routine first calculates the locally reference potential
409 density $\sigma_\theta$ from $T$ and $S$ and calculates the potential
410 density gradients in subroutine {\bf gradSigma()}:
411
412 \centerline{\begin{tabular}{ccl}
413 & & \\
414 Array & Grid-point & Definition \\
415 {\tt SigX} & U &
416 $\sigma_x = \frac{1}{\Delta x} \delta_x \sigma|_{z(k)}$
417 \\
418 {\tt SigY} & V &
419 $\sigma_y = \frac{1}{\Delta y} \delta_y \sigma|_{z(k)}$
420 \\
421 {\tt SigZ} & W &
422 $\sigma_z = \frac{1}{\Delta z}
423 [ \sigma|_{z(k)}(k-1/2) - \sigma|_{z(k)}(k+1/2) ]$
424 \\
425 \\
426 \end{tabular}}
427
428 Note that $\sigma_z$ is the static stability because the potential
429 densities are referenced to the same reference level ($W$-level).
430
431 The next step calculates the three tensor components {\tt K13}, {\tt
432 K23} and {\tt K33} in subroutine {\bf KtensorWface()}. First, the
433 lateral gradients $\sigma_x$ and $\sigma_y$ are interpolated to the
434 $W$ points and stored in intermediate variables:
435 \begin{eqnarray*}
436 \mbox{\tt Sx} & = & \overline{ \overline{ \sigma_x }^x }^z \\
437 \mbox{\tt Sy} & = & \overline{ \overline{ \sigma_y }^y }^z
438 \end{eqnarray*}
439 Next, the magnitude of ${\bf \nabla}_z \sigma$ is stored in an intermediate
440 variable:
441 \begin{displaymath}
442 \mbox{\tt Sxy2} = \sqrt{ {\tt Sx}^2 + {\tt Sy}^2 }
443 \end{displaymath}
444 The stratification ($\sigma_z$) is ``checked'' such that the slope
445 vector has magnitude less than or equal to {\tt Smax} and stored in
446 an intermediate variable:
447 \begin{displaymath}
448 \mbox{\tt Sz} = \max ( \sigma_z , - \mbox{\tt Sxy2/Smax} )
449 \end{displaymath}
450 This guarantees stability and at the same time retains the lateral
451 orientation of the slope vector. The tensor components are then calculated:
452 \begin{eqnarray*}
453 \mbox{\tt K13} & = & -2 {\tt Sx/Sz} \\
454 \mbox{\tt K23} & = & -2 {\tt Sx/Sz} \\
455 \mbox{\tt K33} & = & ({\tt Sx/Sz})^2 + ({\tt Sy/Sz})^2
456 \end{eqnarray*}
457
458 Finally, {\tt Kredigm} ($\kappa_{GM}$) is calculated in subroutine
459 {\bf GMRediCoefficient()}. First, all the gradients are interpolated
460 to the $T/S$ points and stored in intermediate variables:
461 \begin{eqnarray*}
462 \mbox{\tt Sx} & = & \overline{ \sigma_x }^x \\
463 \mbox{\tt Sy} & = & \overline{ \sigma_y }^y \\
464 \mbox{\tt Sz} & = & \overline{ \sigma_z }^z
465 \end{eqnarray*}
466 Again, a nominal stratification is found by ``check'' the magnitude of
467 the slope vector but here is converted to a Brunt-Vasala frequency:
468 \begin{eqnarray*}
469 {\tt M2} & = & \sqrt{ {\tt Sx}^2 + {\tt Sy}^2} \\
470 {\tt N2} & = & - \frac{g}{\rho_o} \max ( {\tt Sz} , -{\tt M2 / Smax}
471 \end{eqnarray*}
472 The magnitude of the slope is then $|S| = {\tt M2}/{\tt N2}$. The Eady
473 growth rate is defined as $|f|/\sqrt(Ri) = |S| N$ and is calculated
474 as:
475 \begin{displaymath}
476 {\tt FrRi} = \frac{\tt M2}{\tt N2} ( - \frac{g}{\rho} {\tt Sz} )
477 \end{displaymath}
478 The Eady growth rate is then averaged over the upper layers (about
479 1100m) and $\kappa_{GM}$ specified from this 2D-variable:
480 \begin{displaymath}
481 {\tt Kredigm} = 0.02 * (200d3 **2) * {\tt FrRi}
482 \end{displaymath}
483
484 \subsection{subroutine inc\_tracer()}
485
486 {\bf inc\-tracer()} is called from {\bf model()} and has {\em four
487 new} arguments:
488 \begin{verbatim}
489 subroutine inc_tracer( ...,Kredigm,K31,K32,K33, ... )
490 real Kredigm(Nx,Ny,Nz) ! Eddy coefficient
491 real K31(Nx,Ny,Nz) ! (3,1) tensor coefficient
492 real K32(Nx,Ny,Nz) ! (3,2) tensor coefficient
493 real K33(Nx,Ny,Nz) ! (3,3) tensor coefficient
494 \end{verbatim}
495
496 Within the routine, the lateral fluxes, {\tt fluxWest} and {\tt
497 fluxSouth}, in the Redi/GM/Griffies scheme are very similar to the
498 conventional horizontal diffusion terms except that the diffusion
499 coefficient is a function of space and must be interpolated from the
500 $T/S$ points:
501 \begin{eqnarray*}
502 {\tt fluxWest}(\tau) & = & \ldots +
503 \overline{\tt Kredigm}^x \partial_x \tau \\
504 {\tt fluxSouth}(\tau) & = & \ldots +
505 \overline{\tt Kredigm}^y \partial_y \tau
506 \end{eqnarray*}
507
508 The Redi/GM/Griffies scheme adds three terms to the vertical flux
509 ({\tt fluxUpper}) in the tracer equation. It is discretise simply:
510 \begin{displaymath}
511 {\tt fluxUpper}(\tau) = \ldots + \overline{\tt Kredigm}^z
512 \left(
513 {\tt K13} \overline{\partial_x \tau}^{xz} +
514 {\tt K23} \overline{\partial_y \tau}^{yz} +
515 {\tt K33} \partial_z \tau
516 \right)
517 \end{displaymath}
518 On boundaries, {\tt fluxUpper} is set to zero.
519
520

  ViewVC Help
Powered by ViewVC 1.1.22