Module ocean_nphysicsA_mod
OVERVIEW
Thickness weighted and density weighted time tendency for tracer
from Laplacian neutral diffusion + Laplacian GM skew-diffusion.
This module computes the cell thickness weighted and density
weighted tracer tendency from small angle Laplacian neutral diffusion
plus Laplacian GM skew-diffusion. The algorithms are based on
mom4p0d methods. The fundamental differences from the ocean_nphysicsB
methods relate to the handling of fluxes near the domain boundaries.
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
time_manager_mod
ocean_domains_mod
ocean_nphysics_util_mod
ocean_operators_mod
ocean_parameters_mod
ocean_sigma_transport_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC DATA
None.
PUBLIC ROUTINES
-
ocean_nphysicsA_init
-
DESCRIPTION
- Initialize the neutral physics module by registering fields for
diagnostic output and performing some numerical checks to see
that namelist settings are appropriate.
-
nphysicsA
-
DESCRIPTION
- This function computes the thickness weighted and density weighted
time tendency for tracer from neutral physics. Full discussion
and details are provided by Griffies (2004).
Here is a brief summary.
---How the neutral diffusive flux components are computed:
The vertical flux component is split into diagonal (3,3) and
off-diagonal (3,1) and (3,2) terms. The off-diagonal (3,1) and (3,2)
terms are included explicitly in time. The main contribution from the
(3,3) term to the time tendency is included implicitly in time
along with the usual contribution from diapycnal processes
(vertical mixing schemes). This is the K33_implicit term.
This approach is necessary with high vertical resolution, as
noted by Cox (1987). However, splitting the vertical flux into
an implicit and explicit piece compromises the
integrity of the vertical flux component (see Griffies et al. 1998).
So to minimize the disparity engendered by this split, the portion of
K33 that can be stably included explicitly in time is computed along
with the (3,1) and (3,2) terms.
All other terms in the mixing tensor are included explicitly in time
using a forward time step as required for temporal stability of
numerical diffusive processes.
The off-diagonal terms in the horizontal flux components, and all terms
in the vertical flux component, are tapered in regions of steep neutral
slope according to the requirements of linear stability. MOM4 allows for
choice of two tapering schemes:
(a) the tanh taper of Danabasoglu and McWilliams (1995)
(b) the quadratic scheme of Gerdes, Koberle, and Willebrand (1991)
Linear stability is far less stringent on the diagonal (1,1) and (2,2)
part of the horizontal flux. Indeed, these terms in practice need
not be tapered in steep sloped regions. The namelist
neutral_taper_diagonal=.false. keeps the diagnonal terms maintained
for all neutral slopes. This approach assists in reducing numerical
noise in regions where the physical system experiences a lot of
diapycnal mixing anyhow.
---How the skew diffusive flux components are computed:
The GM skew flux components are purely off-diagonal.
They are generally tapered when neutral slope
is large (neutral_physics_simple=.false).
Doing so maintains a nontrivial GM slumping effect even when the
neutral slopes are vertical. The alternative neutral_physics_simple=.true.
is the approach used in MOM3, whereby GM effects are removed
in steep sloped regions. neutral_physics_simple=.false. is
less efficient, but has been seen to yield superior simulations.
-
neutral_blayer
-
DESCRIPTION
- Subroutine computes the boundary layer as determined by
1. steep neutral slopes
2. depth within which typical mesoscale eddies are partially outcropped
3. depth within which vertical mixing scheme (e.g., kpp) computes a boundary layer
Note: Only consider surface boundary layers here.
Scheme originally coded for mom4p0 by Stephen.Griffies@noaa.gov
with help for optimization by Russell.Fiedler@csiro.au.
-
fz_terms
-
DESCRIPTION
- Subroutine computes the tracer independent pieces of the vertical
flux component. As a result of this routine,
Array tensor_31 = x-diffusivity*slope (m^2/sec) for fz
Array tensor_32 = y-diffusivity*slope (m^2/sec) for fz
K33 is the (3,3) term in small angle Redi diffusion tensor.
It is broken into an explicit in time piece and implicit
in time piece. It is weighted by density for non-Boussinesq
and rho0 for Boussinesq.
K33 has units (kg/m^3)*m^2/sec.
Also will compute the squared Eady growth rate, with the maximum
slope contributing to this growth rate set by smax.
-
fx_flux
-
DESCRIPTION
- Subroutine computes the zonal neutral physics tracer flux component.
Compute this component for all tracers at level k.
fx has physical dimensions (area*diffusivity*density*tracer gradient)
-
fy_flux
-
DESCRIPTION
- Subroutine computes the meridional neutral physics tracer flux component.
Compute this component for all tracers at level k.
fy has physical dimensions (area*diffusivity*density*tracer gradient)
-
fz_flux
-
DESCRIPTION
- Subroutine computes the vertical neutral physics tracer flux component.
Compute this component for all tracers at level k.
Surface and bottom boundary condition fz(k=0)=fz(k=kmt(i,j))=0
fz has physical dimensions (density*diffusivity*tracer gradient)
-
gm_velocity
-
DESCRIPTION
- Subroutine computes GM eddy-induced velocity field for diagnostics.
Compute ustar and vstar at U-cell point, and wstar at T-cell bottom.
Do a two-point average rather than more democratic four-point avg
in order to avoid having to call mpp_update domains on tensor_31 and
tensor_32. The 0.5 factor is due to the two-point average.
Note that this algorithm is ad hoc. Researchers interested in this
field may wish to test alternatives.
-
slope_function_gm
-
DESCRIPTION
- Function for defining effective slope in diagnostic GM velocity
calculation. Used only for diagnostic purposes.
-
ocean_nphysicsA_restart
-
DESCRIPTION
- Write out restart files registered through register_restart_file
-
ocean_nphysicsA_end
-
DESCRIPTION
- Write to restart.
NAMELIST
&ocean_nphysicsA_nml
-
use_this_module
Must be true to use this module. Default is false.
[logical]
-
debug_this_module
For printing starting and ending checksums for restarts
[logical]
-
use_gm_skew
Must be true to use GM skewsion. Set to false if wish to
incorporate the "GM-effect" through form drag, as in
ocean_form_drag module. Default use_gm_skew=.true.
[logical]
-
diffusion_all_explicit
To compute all contributions from neutral diffusion explicitly in time, including
the K33 diagonal piece. This approach is available only when have small time
steps and/or running with just a single tracer. It is for testing purposes.
[logical]
-
neutral_physics_simple
If .true. then must have aredi_equal_agm=.true.. The horizontal fluxes are then
computed as horizontal downgradient diffusive fluxes regardless the neutral slope.
This approach precluds one from being able to have the GM-skew fluxes remain active
in the steep sloped regions, thus shutting off their effects to reduce the slopes
of isopycnals in convective and mixed layer regimes. It is for this reason that
neutral_physics_simple=.false. is the recommended default in MOM4.
[logical]
-
neutral_physics_limit
When tracer falls outside a specified range, revert to horizontal
diffusive fluxes at this cell. This is an ad hoc and incomplete attempt
to maintain monotonicity with the neutral physics scheme.
Default neutral_physics_limit=.true.
[logical]
-
tmask_neutral_on
If .true. then this logical reduces the neutral fluxes to
horizontal/vertical diffusion next to boundaries.
This approach has been found to reduce spurious
extrema resulting from truncation of triads used to compute
a neutral flux component. Default tmask_neutral_on=.false.
[logical]
-
dm_taper
Set to true to use the tanh tapering scheme of Danabasoglu and McWilliams.
Default is true.
[logical]
-
gkw_taper
Set to true to use the quadradic tapering scheme of Gerdes, Koberle, and Willebrand.
Default is false.
[logical]
-
neutral_linear_gm_taper
If .true. then with neutral_physics_simple=.false., will linearly taper GM
skew fluxes towards the surface within regions of steep neutral slopes.
This approach leads to a constant horizontal eddy-induced velocity in
the steeply sloping regions and is recommended for realistic simulations.
[logical]
-
neutral_sine_taper
If .true. then with neutral_physics_simple=.false., will apply a sine-taper
to GM and neutral diffusive fluxes in regions where the penetration depth
of eddies is deeper than the grid point. This method is essential for
fine vertical resolution grids.
[logical]
-
turb_blayer_min
Minimum depth of a surface turbulent boundary layer
used in the transition of the neutral physics fluxes
to the surface. Note that in mom4p0,
turb_blayer_min was always set to zero.
[real]
-
neutral_blayer_diagnose
Diagnose properties of the neutral physics boundary layer, whether have
neutral_linear_gm_taper or neutral_sine_taper true or not.
[logical]
-
neutral_taper_diagonal
For cases with neutral_physics_simple=.false., then neutral_taper_diagonal=.true.
will taper the diagonal pieces of the horizontal flux components when neutral slopes
are steep. With neutral_taper_diagonal=.false., then the horizontal flux components will
remain enabled for all slopes, thus producing horizontal downgradient diffusion in
regions of vertical neutral directions.
[logical, units: dimensionless]
-
transport_units
The units for writing out the transport. Either in
Sv (10^9 kg/s) or mks (kg/s). Note the mks unit is requested
for CMIP5 purposes.
Default transport_units = 'Sv'.
[character]
DATA SETS
None.
ERROR MESSAGES
None.
REFERENCES
- S.M. Griffies, A. Gnanadesikan, R.C. Pacanowski, V. Larichev,
J.K. Dukowicz, and R.D. Smith
Isoneutral diffusion in a z-coordinate ocean model
Journal of Physical Oceanography (1998) vol 28 pages 805-830
- S.M. Griffies
The Gent-McWilliams Skew-flux
Journal of Physical Oceanography (1998) vol 28 pages 831-841
- S.M. Griffies
Fundamentals of Ocean Climate Models (2004)
Princeton University Press
- S.M. Griffies
Elements of mom4p1 (2008)
- G. Danabasoglu and J. C. McWilliams
Sensitivity of the global ocean circulation to
parameterizations of mesoscale tracer transports
Journal of Climate (1995) vol 8 pages 2967--2987
- Gerdes, Koberle, and Willebrand
The influence of numerical advection schemes on the results of ocean
general circulation models, Climate Dynamics (1991), vol. 5,
pages 211--226.
COMPILER SPECIFICS
None.
PRECOMPILER OPTIONS
None.
LOADER OPTIONS
None.
TEST PROGRAM
None.
KNOWN BUGS
None.
NOTES
Numerical implementation of the flux components follows the triad
approach documented in the references and implemented in MOM2 and MOM3.
The MOM4 algorithm accounts for partial bottom cells and generalized
orthogonal horizontal coordinates.
neutral_physics_simple=.true. requires aredi_equal_agm=.true.
neutral_physics_simple=.true. results in down-gradient
horizontal flux components. This setting reduces the overall cost
of the neutral physics scheme, but it is not used at GFDL
anymore, since we favor methods whereby treatment of GM and Redi
in the boundary layers are distinct.
In steep slope regions, neutral diffusive fluxes are tapered to
zero with the tanh taper of Danabasoglu and McWilliams (1995) or the
quadratic scheme of Gerdes, Koberle, and Willebrand. However, if
neutral_physics_simple=.false., the GM skew-diffusive fluxes
can remain nonzero if have neutral_linear_gm_taper=.true.
FUTURE PLANS
None.