|
MOM6
|
In general, the discrete equations are written as simple difference equations based on the Arakawa C-grid as described in section Horizontal grids. One of the more interesting exceptions is the Coriolis term. It is computed in the form shown in \eqref2{h-equations,momentum}, or:
\[ \frac{( f + \zeta )}{h} \, \hat{\mathbf{z}} \times h \, \mathbf{u} \]
This term needs to be evaluated at \(u\) points for the \(v\) equation and vice versa, plus we need to keep the thickness, \(h\), positive definite. MOM6 contains a number of options for how to compute this term.
\[ \frac{1}{4 dx} \left( q_{i,j} (vh_{i+1,j} + vh_{i,j}) + q_{i,j-1} (vh_{i+1,j-1} + vh_{i,j-1}) \right) \]
where \(q = \frac{f + \zeta}{h}\) and \(h\) is an area-weighted average of the four thicknesses surrounding the \(q\) point, such that it is guaranteed to be positive definite.There is a variant on this scheme with the CORIOLIS_EN_DIS option. If true, two estimates of the thickness fluxes \(vh\) are used to estimate the Coriolis term, and the one that dissipates energy relative to the other one is used.
\[ \frac{1}{8 dx} ( q_{i,j} + q_{i,j-1} ) ((vh_{i+1,j} + vh_{i,j}) + (vh_{i+1,j-1} + vh_{i,j-1}) ) \]
\begin{eqnarray} \frac{1}{dx} (a_{i,j} vh_{i+1,j} &+ b_{i,j} vh_{i,j} + d_{i,j} vh_{i+1,j-1} + c_{i,j} vh_{i,j-1} \\ &+ ep_{i,j}*uh_{i-1,j} - ep_{i+1,j}*uh_{i+1,j}) \label{eq:Coriolis_abcd} \end{eqnarray}
with\begin{eqnarray} a_{i,j} &= \frac{1}{24} (2.0*(q_{i+1,j} + q_{i,j-1}) + (q_{i,j} + q_{i+1,j-1})) \\ b_{i,j} &= \frac{1}{24} ((q_{i,j} + q_{i-1,j-1}) + 2.0*(q_{i-1,j} + q_{i,j-1})) \\ c_{i,j} &= \frac{1}{24} (2.0*(q_{i,j} + q_{i-1,j-1}) + (q_{i-1,j} + q_{i,j-1})) \\ d_{i,j} &= \frac{1}{24} ((q_{i+1,j} + q_{i,j-1}) + 2.0*(q_{i,j} + q_{i+1,j-1})) \\ ep_{i,j} &= \frac{1}{24}((q_{i,j} - q_{i-1,j-1}) + (q_{i-1,j} - q_{i,j-1})) \end{eqnarray}
\[ \frac{1}{dx} (a_{i,j} vh_{i+1,j} + b_{i,j} vh_{i,j} + d_{i,j} vh_{i+1,j-1} + c_{i,j} vh_{i,j-1}) \]
and\begin{eqnarray} a_{i,j} &= \frac{1}{12} (q_{i,j} + (q_{i+1,j} + q_{i,j-1})) \\ b_{i,j} &= \frac{1}{12} (q_{i,j} + (q_{i-1,j} + q_{i,j-1})) \\ c_{i,j} &= \frac{1}{12} (q_{i,j} + (q_{i-1,j-1} + q_{i,j-1})) \\ d_{i,j} &= \frac{1}{12} (q_{i,j} + (q_{i+1,j-1} + q_{i,j-1})) \end{eqnarray}
Some of these options also support the BOUND_CORIOLIS flag. If true, the Coriolis terms in the \(u\) equation are bounded by the four estimates of \(\frac{(f+\zeta)}{h}vh\) from the four neighboring \(v\) points, and similarly in the \(v\) equation. This option would have no effect on the SADOURNY75_ENERGY scheme if it were possible to use centered difference thickness fluxes.
Note, if BOUND_CORIOLIS is on, it will also turn on the BOUND_CORIOLIS_BIHARM option by default. This option uses a viscosity that increases with the square of the velocity shears, so that the resulting viscous drag is of comparable magnitude to the Coriolis terms when the velocity differences between adjacent grid points is 0.5*BOUND_CORIOLIS_VEL.
Two sets of boundary conditions have been coded in the definition of relative vorticity. These are written as:
NOSLIP defined (in spherical coordinates):
\begin{eqnarray} \mbox{relvort} &= dv/dx \mbox{ (east $\&$ west)}, \mbox{ with } v = 0. \\ \mbox{relvort} &= -\sec(\phi) * d(u \cos(\phi))/dy \mbox{ (north $\&$ south)}, \mbox{ with } u = 0. \end{eqnarray}
Free slip (NOSLIP not defined):
\[ \mbox{relvort} = 0 \mbox{ (all boundaries)} \]
with \(\phi\) defined as latitude. The free slip boundary condition is much more natural on a C-grid.