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

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

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


Revision 1.1 - (hide annotations) (download) (as text)
Thu Sep 27 19:43:36 2001 UTC (23 years, 9 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 adcroft 1.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