Module ocean_sigma_transport_mod
OVERVIEW
Thickness weighted and density weighted time tendency for
tracer from transport within a bottom "sigma" layer.
The advective portion of this routine is experimental,
and has many problems. It is retained in MOM for
exploratory use only. Also note that the advection
contributes a lot of instability when running realistic
simulations with pressure vertical coordinates. The
instability mechanism is unknown.
This module computes the thickness weighted and density weighted
time tendency for tracer arising from
1. Laplacian diffusion within a bottom turbulent boundary layer.
2. Upwind advection within this layer. Advection velocities
determined by model resolved velocity and parameterized
downslope velocity. We use first order upwind tracer advection
to ensure positive definite tracer transport in the sigma
layer. As the sigma layer is a proxy for a bottom turbulent
boundary layer, the added mixing from the first order upwind
should be physically acceptable.
CAUTION: The advective portion of this algorithm has problems
and it retained in MOM only for research purposes. It
is NOT supported for general use.
The diffusivity used to determine the strength of the diffusion
is generally set to be a function of the local horizontal grid
spacing. Diffusivity is the sum of an a priori background plus
a velocity dependent diffusivity. It is large if there is a
a heavier parcel living adjacent within the "sigma layer" above
a lighter parcel. It is small otherwise.
The advection is set to zero if the density is not downslope
favorable. That is, rho_{,x} * H_{,x} < 0 for downslope
flow in the x-direction, and likewise in the y-direction.
The thickness of the bottom layer can span more than a single
bottom grid cell. This feature allows the sigma
layer thickness to undulate in time according to the convergence
or divergence of mass within the sigma layer.
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
fms_io_mod
mpp_domains_mod
mpp_mod
ocean_domains_mod
ocean_density_mod
ocean_operators_mod
ocean_parameters_mod
ocean_tracer_util_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC ROUTINES
-
ocean_sigma_transport_init
-
DESCRIPTION
-
Initialize the sigma transport module by registering fields for
diagnostic output and performing some numerical checks to see
that namelist settings are appropriate.
-
sigma_transport
-
DESCRIPTION
-
This subroutine computes the thickness weighted and density
weighted time tendency for tracer arising from transport in a
bottom turbulent boundary layer. The result is stored in
tracer th_tendency.
NOTE: In this algorithm, we ideally wish to have advection
velocity components on full data domain. Unfortunately,
from ocean_advection_velocity_mod, they are only known
on the following domains:
Adv_vel%uhrho_et: (isd,ied) x (jsc,jed)
Adv_vel%vhrho_nt: (isc,ied) x (jsd,jed).
So to proceed with the sigma_transport algorithm, we
transfer into local arrays and then update. These
updates may be avoided (possibly), but at the price
of much more logic in the algorithm. We choose to
instead do the updates and have less logic. This
decision may need to be revisited.
CAUTION: The advective portion of this algorithm
has fundamental problems. It is retained in MOM
only for process physics research purposes. It is
NOT recommended for use in general use.
-
ocean_sigma_transport_restart
-
DESCRIPTION
-
Write out restart files registered through register_restart_file
-
ocean_sigma_transport_end
-
DESCRIPTION
-
Write to restart.
-
advect_sigma_upwind
-
DESCRIPTION
-
First order upwind to advect tracers in sigma layer.
-
watermass_diag_init
-
DESCRIPTION
-
Initialization of watermass diagnostic output files.
-
watermass_diag
-
DESCRIPTION
-
Diagnose effects from sigma transport on the watermass transformation.
NAMELIST
&ocean_sigma_transport_nml
-
use_this_module
Must be true to use this module. Default is false.
[logical]
-
debug_this_module
For debugging.
[logical]
-
sigma_diffusion_on
For using sigma diffusion. Default is true.
[logical]
-
sigma_advection_on
For using sigma advection. Default is false.
[logical]
-
sigma_advection_sgs_only
In many cases, adding the resolved transport to the
sigma-advective transport produces a tremendous level of
noise at the bottom. The problem is that there are
grid-scale features that may cause large jumps in whether
the velocity should be added or not, depending on the logic
of the scheme. For this reason, it may be prudent to remove
the resolved velocity from that contributing to the sigma
transport scheme. Note that its removal from sigma transport
does not remove the contributions of the resolved velocity
from the resolved advective transport arising from
ocean_tracer_advect_mod. It simply removes it from the
added transport arising in the sigma transport module.
Default is sigma_advection_sgs_only=.true.
[logical]
-
sigma_advection_check
If true, then will only include the resolved advection
velocity in the sigma-layer if the direction of
transport is downslope favorable for enhancing deep density.
IF false, then will include the velocity regardless.
This option aims to reduce the large divergences
that occur for the case when only include the velocity
if it is favorable for deep water getting more dense.
Default is sigma_advection_check=.true.
[logical]
-
thickness_sigma_layer
Initial thickness of the bottom sigma layer.
[real, units: meter]
-
thickness_sigma_min
Minimum thickness of the bottom sigma layer.
[real, units: meter]
-
thickness_sigma_max
Maximum thickness of the bottom sigma layer.
[real, units: meter]
-
sigma_just_in_bottom_cell
For just having sigma layer in the bottom cell, as in mom4p0.
This option must be .false. in order to use sigma_advection_on=.true.
Default sigma_just_in_bottom_cell=.true.
[logical]
-
tmask_sigma_on
IF .true. then masks out fluxes passing into the sigma layer, except those
associated with sigma transport. Typically set to .false.
[logical]
-
sigma_diffusivity
Sigma tracer diffusivity for use if not using micom diffusivity.
[real, units: m^2/sec]
-
sigma_diffusivity_ratio
When flow along sigma surface is stable (i.e., heavy parcels are below lighter parcels)
then sigma diffusivity is reduced by sigma_diffusivity_ratio from the case where
heavy parcels are above lighter parcels.
[real, units: dimensionless]
-
tracer_mix_micom
If .true., then the sigma diffusivity is set according to a velocity scale
times the grid spacing.
[logical]
-
vel_micom
Velocity scale that is used for computing the MICOM diffusivity.
[real, units: m/sec]
-
campingoose_mu
Dissipation rate for the bottom friction. Campin and Goosse
suggest campingoose_mu=10^-4
[real, units: inverse seconds]
-
campingoose_delta
Fraction of a grid cell participating in the overflow process.
Campin and Goosse suggest campingoose_delta=1/3.
[real, units: dimensionless]
-
sigma_umax
Maximum downslope speed allowed in sigma layer.
In some cases, the model will be unstable if sigma_umax
is too large.
[real, units: m/s]
-
smooth_sigma_velocity
To smooth the sigma advective transport velocity.
Default is smooth_sigma_velocity=.true.
[logical]
-
smooth_sigma_thickness
To smooth the sigma thickness. This may be needed especially
for case with sigma advection, in which case the thickness
can become noisy. Default is smooth_sigma_thickness=.true.
[logical]
-
sigma_velmicom
For smoothing the sigma_thickness, use this as velocity scale to
determine the thickness diffusivity.
Default is smooth_velmicom = 0.2
[real, units: m/s]
REFERENCES
-
A. Beckmann and R. Doscher, 1997: A method for improved
representation of dense water spreading over
topography in geopotential--coordinate models
Journal of Physical Oceanography, vol 27,
pages 581--59.
-
R. Doscher and A. Beckmann, 2000:
Effects of a bottom boundary layer parameterization
in a coarse-resolution model of the North Atlantic Ocean
Journal of Atmospheric and Oceanic Technology,
vol 17 pages 698--707
-
Campin and Goosse 1999: Parameterization of density-driven downsloping
flow for a coarse-resolution model in z-coordinate", Tellus 51A,
pages 412-430.
-
S.M. Griffies: Elements of MOM (2012)