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

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

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

revision 1.1 by adcroft, Thu Sep 27 19:43:36 2001 UTC revision 1.15 by jmc, Mon Aug 30 23:09:21 2010 UTC
# Line 1  Line 1 
1  \section{Gent/McWiliams/Redi SGS Eddy parameterization}  \subsection{GMREDI: Gent/McWiliams/Redi SGS Eddy Parameterization}
2    \label{sec:pkg:gmredi}
3    \begin{rawhtml}
4    <!-- CMIREDIR:gmredi: -->
5    \end{rawhtml}
6    
7  There are two parts to the Redi/GM parameterization of geostrophic  There are two parts to the Redi/GM parameterization of geostrophic
8  eddies. The first aims to mix tracer properties along isentropes  eddies. The first aims to mix tracer properties along isentropes
# Line 31  and Redi scheme, substantial cancellatio Line 35  and Redi scheme, substantial cancellatio
35  that the horizontal fluxes are unmodified from the lateral diffusion  that the horizontal fluxes are unmodified from the lateral diffusion
36  parameterization.  parameterization.
37    
38  \subsection{Redi scheme: Isopycnal diffusion}  \subsubsection{Redi scheme: Isopycnal diffusion}
39    
40  The Redi scheme diffuses tracers along isopycnals and introduces a  The Redi scheme diffuses tracers along isopycnals and introduces a
41  term in the tendency (rhs) of such a tracer (here $\tau$) of the form:  term in the tendency (rhs) of such a tracer (here $\tau$) of the form:
# Line 71  S_x & S_y & |S|^2 \\ Line 75  S_x & S_y & |S|^2 \\
75  \end{equation}  \end{equation}
76    
77    
78  \subsection{GM parameterization}  \subsubsection{GM parameterization}
79    
80  The GM parameterization aims to parameterise the ``advective'' or  The GM parameterization aims to parameterise the ``advective'' or
81  ``transport'' effect of geostrophic eddies by means of a ``bolus''  ``transport'' effect of geostrophic eddies by means of a ``bolus''
# Line 100  F_y & = & \kappa_{GM} S_y Line 104  F_y & = & \kappa_{GM} S_y
104  This is the form of the GM parameterization as applied by Donabasaglu,  This is the form of the GM parameterization as applied by Donabasaglu,
105  1997, in MOM versions 1 and 2.  1997, in MOM versions 1 and 2.
106    
107  \subsection{Griffies Skew Flux}  \subsubsection{Griffies Skew Flux}
108    
109  Griffies notes that the discretisation of bolus velocities involves  Griffies notes that the discretisation of bolus velocities involves
110  multiple layers of differencing and interpolation that potentially  multiple layers of differencing and interpolation that potentially
# Line 167  In the instance that $\kappa_{GM} = \kap Line 171  In the instance that $\kappa_{GM} = \kap
171  \end{array}  \end{array}
172  \right)  \right)
173  \end{equation}  \end{equation}
174  which differs from the variable laplacian diffusion tensor by only  which differs from the variable Laplacian diffusion tensor by only
175  two non-zero elements in the $z$-row.  two non-zero elements in the $z$-row.
176    
177  \subsection{Variable $\kappa_{GM}$}  \fbox{ \begin{minipage}{4.75in}
178    {\em S/R GMREDI\_CALC\_TENSOR} ({\em pkg/gmredi/gmredi\_calc\_tensor.F})
179    
180    $\sigma_x$: {\bf SlopeX} (argument on entry)
181    
182    $\sigma_y$: {\bf SlopeY} (argument on entry)
183    
184    $\sigma_z$: {\bf SlopeY} (argument)
185    
186    $S_x$: {\bf SlopeX} (argument on exit)
187    
188    $S_y$: {\bf SlopeY} (argument on exit)
189    
190    \end{minipage} }
191    
192    
193    
194    \subsubsection{Variable $\kappa_{GM}$}
195    
196  Visbeck et al., 1996, suggest making the eddy coefficient,  Visbeck et al., 1996, suggest making the eddy coefficient,
197  $\kappa_{GM}$, a function of the Eady growth rate,  $\kappa_{GM}$, a function of the Eady growth rate,
# Line 196  Substituting into the formula for $\kapp Line 217  Substituting into the formula for $\kapp
217  \end{displaymath}  \end{displaymath}
218    
219    
220  \subsection{Tapering and stability}  \subsubsection{Tapering and stability}
221    
222  Experience with the GFDL model showed that the GM scheme has to be  Experience with the GFDL model showed that the GM scheme has to be
223  matched to the convective parameterization. This was originally  matched to the convective parameterization. This was originally
224  expressed in connection with the introduction of the KPP boundary  expressed in connection with the introduction of the KPP boundary
225  layer scheme (Large et al., 97) but infact, as subsequent experience  layer scheme (Large et al., 97) but in fact, as subsequent experience
226  with the MIT model has found, is necessary for any convective  with the MIT model has found, is necessary for any convective
227  parameterization.  parameterization.
228    
# Line 219  $z_\sigma^{*}$: {\bf dRdSigmaLtd} (argum Line 240  $z_\sigma^{*}$: {\bf dRdSigmaLtd} (argum
240    
241  \end{minipage} }  \end{minipage} }
242    
243    \begin{figure}
244    \begin{center}
245    \resizebox{5.0in}{3.0in}{\includegraphics{s_phys_pkgs/figs/tapers.eps}}
246    \end{center}
247    \caption{Taper functions used in GKW99 and DM95.}
248    \label{fig:tapers}
249    \end{figure}
250    
251    \begin{figure}
252    \begin{center}
253    \resizebox{5.0in}{3.0in}{\includegraphics{s_phys_pkgs/figs/effective_slopes.eps}}
254    \end{center}
255    \caption{Effective slope as a function of ``true'' slope using Cox
256    slope clipping, GKW91 limiting and DM95 limiting.}
257    \label{fig:effective_slopes}
258    \end{figure}
259    
260  \subsubsection{Slope clipping}  
261    Slope clipping:
262    
263  Deep convection sites and the mixed layer are indicated by  Deep convection sites and the mixed layer are indicated by
264  homogenized, unstable or nearly unstable stratification. The slopes in  homogenized, unstable or nearly unstable stratification. The slopes in
265  such regions can be either infinite, very large with a sign reversal  such regions can be either infinite, very large with a sign reversal
266  or simply very large. From a numerical point of view, large slopes  or simply very large. From a numerical point of view, large slopes
267  lead to large variations in the tensor elements (implying large bolus  lead to large variations in the tensor elements (implying large bolus
268  flow) and can be numerically unstable. This was first reognized by  flow) and can be numerically unstable. This was first recognized by
269  Cox, 1987, who implemented ``slope clipping'' in the isopycnal mixing  Cox, 1987, who implemented ``slope clipping'' in the isopycnal mixing
270  tensor. Here, the slope magnitude is simply restricted by an upper  tensor. Here, the slope magnitude is simply restricted by an upper
271  limit:  limit:
# Line 262  a) using the GM scheme with clipping and Line 300  a) using the GM scheme with clipping and
300  diffusion). The classic result of dramatically reduced mixed layers is  diffusion). The classic result of dramatically reduced mixed layers is
301  evident. Indeed, the deep convection sites to just one or two points  evident. Indeed, the deep convection sites to just one or two points
302  each and are much shallower than we might prefer. This, it turns out,  each and are much shallower than we might prefer. This, it turns out,
303  is due to the over zealous restratification due to the bolus transport  is due to the over zealous re-stratification due to the bolus transport
304  parameterization. Limiting the slopes also breaks the adiabatic nature  parameterization. Limiting the slopes also breaks the adiabatic nature
305  of the GM/Redi parameterization, re-introducing diabatic fluxes in  of the GM/Redi parameterization, re-introducing diabatic fluxes in
306  regions where the limiting is in effect.  regions where the limiting is in effect.
307    
308  \subsubsection{Tapering: Gerdes, Koberle and Willebrand, Clim. Dyn. 1991}  Tapering: Gerdes, Koberle and Willebrand, Clim. Dyn. 1991:
309    
310  The tapering scheme used in Gerdes et al., 1991, (\cite{gkw91})  The tapering scheme used in Gerdes et al., 1999, (\cite{gkw:99})
311  addressed two issues with the clipping method: the introduction of  addressed two issues with the clipping method: the introduction of
312  large vertical fluxes in addition to convective adjustment fluxes is  large vertical fluxes in addition to convective adjustment fluxes is
313  avoided by tapering the GM/Redi slopes back to zero in  avoided by tapering the GM/Redi slopes back to zero in
# Line 291  that the effective vertical diffusivity Line 329  that the effective vertical diffusivity
329  The GKW tapering scheme is activated in the model by setting {\bf  The GKW tapering scheme is activated in the model by setting {\bf
330  GM\_tap\-er\_scheme = 'gkw91'} in {\em data.gmredi}.  GM\_tap\-er\_scheme = 'gkw91'} in {\em data.gmredi}.
331    
332  \subsection{Tapering: Danabasoglu and McWilliams, J. Clim. 1995}  \subsubsection{Tapering: Danabasoglu and McWilliams, J. Clim. 1995}
333    
334  The tapering scheme used by Danabasoglu and McWilliams, 1995,  The tapering scheme used by Danabasoglu and McWilliams, 1995,
335  \cite{DM95}, followed a similar procedure but used a different  \cite{dm:95}, followed a similar procedure but used a different
336  tapering function, $f_1(S)$:  tapering function, $f_1(S)$:
337  \begin{equation}  \begin{equation}
338  f_1(S) = \frac{1}{2} \left( 1+\tanh \left[ \frac{S_c - |S|}{S_d} \right] \right)  f_1(S) = \frac{1}{2} \left( 1+\tanh \left[ \frac{S_c - |S|}{S_d} \right] \right)
# Line 308  slopes. Line 346  slopes.
346  The DM tapering scheme is activated in the model by setting {\bf  The DM tapering scheme is activated in the model by setting {\bf
347  GM\_tap\-er\_scheme = 'dm95'} in {\em data.gmredi}.  GM\_tap\-er\_scheme = 'dm95'} in {\em data.gmredi}.
348    
349  \subsection{Tapering: Large, Danabasoglu and Doney, JPO 1997}  \subsubsection{Tapering: Large, Danabasoglu and Doney, JPO 1997}
350    
351  The tapering used in Large et al., 1997, \cite{ldd97}, is based on the  The tapering used in Large et al., 1997, \cite{ldd:97}, is based on the
352  DM95 tapering scheme, but also tapers the scheme with an additional  DM95 tapering scheme, but also tapers the scheme with an additional
353  function of height, $f_2(z)$, so that the GM/Redi SGS fluxes are  function of height, $f_2(z)$, so that the GM/Redi SGS fluxes are
354  reduced near the surface:  reduced near the surface:
# Line 326  GM\_tap\-er\_scheme = 'ldd97'} in {\em d Line 364  GM\_tap\-er\_scheme = 'ldd97'} in {\em d
364    
365    
366    
367    
368  \begin{figure}  \begin{figure}
369    \begin{center}
370  %\includegraphics{mixedlayer-cox.eps}  %\includegraphics{mixedlayer-cox.eps}
371  %\includegraphics{mixedlayer-diff.eps}  %\includegraphics{mixedlayer-diff.eps}
372    Figure missing.
373    \end{center}
374  \caption{Mixed layer depth using GM parameterization with a) Cox slope  \caption{Mixed layer depth using GM parameterization with a) Cox slope
375  clipping and for comparison b) using horizontal constant diffusion.}  clipping and for comparison b) using horizontal constant diffusion.}
376  \ref{fig-mixedlayer}  \label{fig-mixedlayer}
 \end{figure}  
   
 \begin{figure}  
 %\includegraphics{slopelimits.eps}  
 \caption{Effective slope as a function of ``true'' slope using a) Cox  
 slope clipping, b) GKW91 limiting, c) DM95 limiting and d) LDD97  
 limiting.}  
377  \end{figure}  \end{figure}
378    
379    \subsubsection{Package Reference}
380    \label{sec:pkg:gmredi:diagnostics}
381    
382  %\begin{figure}  {\footnotesize
 %\includegraphics{coxslope.eps}  
 %\includegraphics{gkw91slope.eps}  
 %\includegraphics{dm95slope.eps}  
 %\includegraphics{ldd97slope.eps}  
 %\caption{Effective slope magnitude at 100~m depth evaluated using a)  
 %Cox slope clipping, b) GKW91 limiting, c) DM95 limiting and d) LDD97  
 %limiting.}  
 %\end{figure}  
   
 \section{Discretisation and code}  
   
 This is the old documentation.....has to be brought upto date with MITgcm.  
   
   
 The Gent-McWilliams-Redi parameterization is implemented through the  
 package ``gmredi''. There are two necessary calls to ``gmredi''  
 routines other than initialization; 1) to calculate the slope tensor  
 as a function of the current model state ({\bf gmredi\_calc\_tensor})  
 and 2) evaluation of the lateral and vertical fluxes due to gradients  
 along isopycnals or bolus transport ({\bf gmredi\_xtransport}, {\bf  
 gmredi\_ytransport} and {\bf gmredi-rtransport}).  
   
 Each element of the tensor is discretised to be adiabatic and so that  
 there would be no flux if the gmredi operator is applied to buoyancy.  
 To acheive this we have to consider both these constraints for each  
 row of the tensor, each row corresponding to a 'u', 'v' or 'w' point  
 on the model grid.  
   
 The code that implements the Redi/GM/Griffies schemes involves an  
 original core routine {\bf inc\_tracer()} that is used to calculate  
 the tendency in the tracers (namely, salt and potential temperature)  
 and a new routine {\bf RediTensor()} that calculates the tensor  
 components and $\kappa_{GM}$.  
   
 \subsection{subroutine RediTensor()}  
   
 {\small  
383  \begin{verbatim}  \begin{verbatim}
384  subroutine RediTensor(Temp,Salt,Kredigm,K31,K32,K33, nIter,DumpFlag)  ------------------------------------------------------------------------
385                        |---in--| |-------out-------|  <-Name->|Levs|<-parsing code->|<--  Units   -->|<- Tile (max=80c)
386  ! Input  ------------------------------------------------------------------------
387  real Temp(Nx,Ny,Nz)     ! Potential temperature  GM_VisbK|  1 |SM P    M1      |m^2/s           |Mixing coefficient from Visbeck etal parameterization
388  real Salt(Nx,Ny,Nz)     ! Salinity  GM_Kux  | 15 |UU P 177MR      |m^2/s           |K_11 element (U.point, X.dir) of GM-Redi tensor
389  ! Output  GM_Kvy  | 15 |VV P 176MR      |m^2/s           |K_22 element (V.point, Y.dir) of GM-Redi tensor
390  real Kredigm(Nx,Ny,Nz)  ! Redi/GM eddy coefficient  GM_Kuz  | 15 |UU   179MR      |m^2/s           |K_13 element (U.point, Z.dir) of GM-Redi tensor
391  real K31(Nx,Ny,Nz)      ! Redi/GM (3,1) tensor component  GM_Kvz  | 15 |VV   178MR      |m^2/s           |K_23 element (V.point, Z.dir) of GM-Redi tensor
392  real K32(Nx,Ny,Nz)      ! Redi/GM (3,2) tensor component  GM_Kwx  | 15 |UM   181LR      |m^2/s           |K_31 element (W.point, X.dir) of GM-Redi tensor
393  real K33(Nx,Ny,Nz)      ! Redi/GM (3,3) tensor component  GM_Kwy  | 15 |VM   180LR      |m^2/s           |K_32 element (W.point, Y.dir) of GM-Redi tensor
394  ! Auxiliary input  GM_Kwz  | 15 |WM P    LR      |m^2/s           |K_33 element (W.point, Z.dir) of GM-Redi tensor
395  integer nIter           ! interation/time-step number  GM_PsiX | 15 |UU   184LR      |m^2/s           |GM Bolus transport stream-function : X component
396  logical DumpFlag        ! flag to indicate routine should ``dump''  GM_PsiY | 15 |VV   183LR      |m^2/s           |GM Bolus transport stream-function : Y component
397    GM_KuzTz| 15 |UU   186MR      |degC.m^3/s      |Redi Off-diagonal Tempetature flux: X component
398    GM_KvzTz| 15 |VV   185MR      |degC.m^3/s      |Redi Off-diagonal Tempetature flux: Y component
399  \end{verbatim}  \end{verbatim}
400  }  }
401    
402  The subroutine {\bf RediTensor()} is called from {\bf model()} with  \subsubsection{Experiments and tutorials that use gmredi}
403  input arguments $T$ and $S$. It returns the 3D-arrays {\tt Kredigm},  \label{sec:pkg:gmredi:experiments}
 {\t K31}, {\tt K32} and {\tt K33} which represent $\kappa_{GM}$ (at  
 $T/S$ points) and the three components of the bottom row in the  
 Redi/GM tensor; $2 S_x$, $2 S_y$ and $|S|^2$ respectively, all at $W$  
 points.  
   
 The discretisations and algorithm within {\bf RediTensor()} are as  
 follows.  The routine first calculates the locally reference potential  
 density $\sigma_\theta$ from $T$ and $S$ and calculates the potential  
 density gradients in subroutine {\bf gradSigma()}:  
   
 \centerline{\begin{tabular}{ccl}  
 & & \\  
 Array & Grid-point & Definition \\  
 {\tt SigX} & U &  
 $\sigma_x = \frac{1}{\Delta x} \delta_x \sigma|_{z(k)}$  
 \\  
 {\tt SigY} & V &  
 $\sigma_y = \frac{1}{\Delta y} \delta_y \sigma|_{z(k)}$  
 \\  
 {\tt SigZ} & W &  
 $\sigma_z = \frac{1}{\Delta z}  
 [ \sigma|_{z(k)}(k-1/2) - \sigma|_{z(k)}(k+1/2) ]$  
 \\  
 \\  
 \end{tabular}}  
   
 Note that $\sigma_z$ is the static stability because the potential  
 densities are referenced to the same reference level ($W$-level).  
404    
405  The next step calculates the three tensor components {\tt K13}, {\tt  \begin{itemize}
406  K23} and {\tt K33} in subroutine {\bf KtensorWface()}. First, the  \item{Global Ocean tutorial, in tutorial\_global\_oce\_latlon verification directory,
407  lateral gradients $\sigma_x$ and $\sigma_y$ are interpolated to the  described in section \ref{sec:eg-global} }
408  $W$ points and stored in intermediate variables:  \item{ Front Relax experiment, in front\_relax verification directory.}
409  \begin{eqnarray*}  \item{ Ideal 2D Ocean experiment, in ideal\_2D\_oce verification directory.}
410  \mbox{\tt Sx} & = & \overline{ \overline{ \sigma_x }^x }^z \\  \end{itemize}
 \mbox{\tt Sy} & = & \overline{ \overline{ \sigma_y }^y }^z  
 \end{eqnarray*}  
 Next, the magnitude of ${\bf \nabla}_z \sigma$ is stored in an intermediate  
 variable:  
 \begin{displaymath}  
 \mbox{\tt Sxy2} = \sqrt{ {\tt Sx}^2 + {\tt Sy}^2 }  
 \end{displaymath}  
 The stratification ($\sigma_z$) is ``checked'' such that the slope  
 vector has magnitude less than or equal to {\tt Smax} and stored in  
 an intermediate variable:  
 \begin{displaymath}  
 \mbox{\tt Sz} = \max ( \sigma_z , - \mbox{\tt Sxy2/Smax} )  
 \end{displaymath}  
 This guarantees stability and at the same time retains the lateral  
 orientation of the slope vector. The tensor components are then calculated:  
 \begin{eqnarray*}  
 \mbox{\tt K13} & = & -2 {\tt Sx/Sz} \\  
 \mbox{\tt K23} & = & -2 {\tt Sx/Sz} \\  
 \mbox{\tt K33} & = & ({\tt Sx/Sz})^2 + ({\tt Sy/Sz})^2  
 \end{eqnarray*}  
411    
412  Finally, {\tt Kredigm} ($\kappa_{GM}$) is calculated in subroutine  % DO NOT EDIT HERE
 {\bf GMRediCoefficient()}. First, all the gradients are interpolated  
 to the $T/S$ points and stored in intermediate variables:  
 \begin{eqnarray*}  
 \mbox{\tt Sx} & = & \overline{ \sigma_x }^x \\  
 \mbox{\tt Sy} & = & \overline{ \sigma_y }^y \\  
 \mbox{\tt Sz} & = & \overline{ \sigma_z }^z  
 \end{eqnarray*}  
 Again, a nominal stratification is found by ``check'' the magnitude of  
 the slope vector but here is converted to a Brunt-Vasala frequency:  
 \begin{eqnarray*}  
 {\tt M2} & = & \sqrt{ {\tt Sx}^2 + {\tt Sy}^2} \\  
 {\tt N2} & = & - \frac{g}{\rho_o} \max ( {\tt Sz} , -{\tt M2 / Smax}  
 \end{eqnarray*}  
 The magnitude of the slope is then $|S| = {\tt M2}/{\tt N2}$. The Eady  
 growth rate is defined as $|f|/\sqrt(Ri) = |S| N$ and is calculated  
 as:  
 \begin{displaymath}  
 {\tt FrRi} = \frac{\tt M2}{\tt N2} ( - \frac{g}{\rho} {\tt Sz} )  
 \end{displaymath}  
 The Eady growth rate is then averaged over the upper layers (about  
 1100m) and $\kappa_{GM}$ specified from this 2D-variable:  
 \begin{displaymath}  
 {\tt Kredigm} = 0.02 * (200d3 **2) * {\tt FrRi}  
 \end{displaymath}  
   
 \subsection{subroutine inc\_tracer()}  
   
 {\bf inc\-tracer()} is called from {\bf model()} and has {\em four  
 new} arguments:  
 \begin{verbatim}  
 subroutine inc_tracer( ...,Kredigm,K31,K32,K33, ... )  
 real Kredigm(Nx,Ny,Nz)  ! Eddy coefficient  
 real K31(Nx,Ny,Nz)      ! (3,1) tensor coefficient  
 real K32(Nx,Ny,Nz)      ! (3,2) tensor coefficient  
 real K33(Nx,Ny,Nz)      ! (3,3) tensor coefficient  
 \end{verbatim}  
413    
 Within the routine, the lateral fluxes, {\tt fluxWest} and {\tt  
 fluxSouth}, in the Redi/GM/Griffies scheme are very similar to the  
 conventional horizontal diffusion terms except that the diffusion  
 coefficient is a function of space and must be interpolated from the  
 $T/S$ points:  
 \begin{eqnarray*}  
 {\tt fluxWest}(\tau) & = & \ldots +  
 \overline{\tt Kredigm}^x \partial_x \tau \\  
 {\tt fluxSouth}(\tau) & = & \ldots +  
 \overline{\tt Kredigm}^y \partial_y \tau  
 \end{eqnarray*}  
   
 The Redi/GM/Griffies scheme adds three terms to the vertical flux  
 ({\tt fluxUpper}) in the tracer equation. It is discretise simply:  
 \begin{displaymath}  
 {\tt fluxUpper}(\tau) = \ldots + \overline{\tt Kredigm}^z  
 \left(  
 {\tt K13} \overline{\partial_x \tau}^{xz} +  
 {\tt K23} \overline{\partial_y \tau}^{yz} +  
 {\tt K33} \partial_z \tau  
 \right)  
 \end{displaymath}  
 On boundaries, {\tt fluxUpper} is set to zero.  
414    
415    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22