next up previous contents
Next: 40.3 trace_coupled_fluxes Up: 40. Diagnostics for numerical Previous: 40.1 General debug options

   
40.2 stability_tests

Option stability_tests computes various stability criteria and related items within a portion or all of the model domain. The limits of volume of domain to be considered when testing are set through namelist. Refer to Section 14.4 for information on namelist variables. If MOM blows up, this diagnostic is useful in finding where it went unstable. The following are computed:

1.
Based on local velocities within each cell, a maximum local time step is computed for the three principal directions as


   
$\displaystyle \Delta\tau^x_{i,k,j}$ = $\displaystyle \frac{\csuj\cdot\dxui}{2\cdot u_{i,k,j,1,\tau}}$ (40.1)
$\displaystyle \Delta\tau^y_{i,k,j}$ = $\displaystyle \frac{\dyuj}{2\cdot u_{i,k,j,2,\tau} }$ (40.2)
$\displaystyle \Delta\tau^z_{i,k,j}$ = $\displaystyle \frac{dzw_k}{2\cdot adv\_vbt_{i,k,j}}$ (40.3)

These local time steps are compared with the model specified time step and the location of the largest is chosen as the position of the most unstable cell. If the local time step exceeds the model time step by an amount which can be set through namelist, then a CFL violation is detected. Refer to Section 14.4.4 for a discussion of the CFL condition and choosing time step lengths. The number of times a CFL violation is allowed may also be set through namelist. Refer to section 14.4.7 for setting a region over which stability calculations are performed. The default region is the entire domain. Variables within the local neighborhood of the offending cells are shown and when the number of offenses exceeds the allowable number, the model is brought down.

2.
The local Reynolds number is estimated along each of the principle directions as


reyxi,k,j = $\displaystyle \frac{u_{i,k,j,1,\tau}\cdot\csuj \dxui}{visc\_ceu_{i,k,j}}$ (40.4)
reyyi,k,j = $\displaystyle \frac{u_{i,k,j,2,\tau}\cdot \dyuj}{visc\_cnu_{i,k,j}}$ (40.5)
reyzi,k,j = $\displaystyle \frac{adv\_vbu_{i,k,j}\cdot dzw_k}{visc\_cbu_{i,k,j}}$ (40.6)

and the location of the maximum is found and printed.

3.
The local Peclet number is estimated along each of the principle directions as


peclxi,k,j = $\displaystyle \frac{u_{i,k,j,1,\tau}\cdot\csuj \dxui}{diff\_cet_{i,k,j}}$ (40.7)
peclyi,k,j = $\displaystyle \frac{u_{i,k,j,2,\tau}\cdot \dyuj}{diff\_cnt_{i,k,j}}$ (40.8)
peclzi,k,j = $\displaystyle \frac{adv\_vbt_{i,k,j}\cdot dzw_k}{diff\_cnt_{i,k,j}}$ (40.9)

and the location of the maximum is found and printed.

4.
The locations where numerics are breaking down and producing spurious tracer extrema are determined. This is done by searching the immediate neighborhood of cell (i,k,j) for extrema in temperature at $\tau $ and $\tau-1$. If $t_{i,k,j,1,\tau+1}$ exceeds this extrema by an amount which may be specified through namelist, then there is numerical truncation at (i,k,j). Note that this statement can only be made because of the incompressibility condition. If there are more than 100 locations exhibiting numerical truncation, only the first 100 locations are shown.

5.
The locations are shown where predicted temperatures or salinities are outside the bounds of temperatures and salinities which were used for the construction of density coefficients. If there are more than 100 locations where this occurs, only the first 100 locations are shown.

6.
The location of maximum error in continuity is calculated considering all U cells and T cells separately.

7.
The maximum error in vertical velocity at the ocean bottom on T cells is computed. This is the residual error from integrating Equation (22.17) vertically from the surface to the ocean bottom.

8.
The maximum vertical velocity at the ocean bottom on U cells from Equation (22.24) is computed. This is non-zero if the bottom has a slope since the bottom flow is required to parallel the bottom slope.

As described above, if more than a specified number of CFL violations are found when this diagnostic is active (only at times specified by the interval), the integration will stop indicating where the most unstable locations are with matrix printouts of variables in the neighborhoods. If a violation is not found, statistics will be printed indicating how close the integration is to violating the CFL condition along with other information described above. The output from this diagnostic may only be written as ascii to the model printout. The interval between output is specified by variable stabint.


next up previous contents
Next: 40.3 trace_coupled_fluxes Up: 40. Diagnostics for numerical Previous: 40.1 General debug options
RC Pacanowski and SM Griffies, GFDL, Jan 2000