Module ocean_lap_tracer_mod
OVERVIEW
Thickness weighted and density weighted time tendency
for tracer from lateral laplacian diffusion.
This module computes lateral laplacian diffusion of a tracer.
There are two main options.
(1) The lateral tracer fluxes can be aligned with the z-coordinate surfaces,
in which case the fluxes must be approximated if (i) we use non-geopotential
vertical coordinates, (ii) next to partial bottom step topography.
This form of the diffusion is not recommended since it can lead to
the creation of spurious extrema.
(2) The lateral tracer fluxes can be aligned surfaces of constant vertical
coordinate. In this case the fluxes are no longer strictly "horizontal."
However, the operator is simpler and it ensures that no suprious
extrema are created. It is for this reason that the simpler operator
is preferred.
The diffusivity used to determine the strength of the tendency can be
a general function of space yet it is constant in time. A namelist
option exists that determines this diffusivity as a local function
of the grid spacing.
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
ocean_domains_mod
ocean_obc_mod
ocean_operators_mod
ocean_parameters_mod
ocean_types_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC ROUTINES
-
ocean_lap_tracer_init
-
DESCRIPTION
-
Initialize the laplacian diffusion module by
registering fields for diagnostic output and performing some
numerical checks to see that diffusivity is set appropriately.
-
lap_tracer
-
DESCRIPTION
-
This function computes the thickness weighted and density weighted
time tendency for tracer from lateral laplacian diffusion.
NAMELIST
&ocean_lap_tracer_nml
-
use_this_module
Must be true to use this module. Default is false.
[logical]
-
horz_z_diffuse
To compute diffusion along surfaces of constant depth.
This operation must necessarily be approximate for the two
cases (i) non-geopotential vertical coordinates, (2)
next to partial bottom step topography. There are cases where
use of this operator can lead to spurious creation of extrema
due to truncation errors associated with the "slope" term.
For most cases where lateral diffusion is required, we
will want it to be "diffusive" in the sense that no extrema are
created. So the default is horz_z_diffuse=.false.
The option to use horz_z_diffuse=.true. is maintained for
legacy purposes alone.
[logical]
-
horz_s_diffuse
To compute diffusion along surfaces of constant vertical s-coordinate.
This operation is ensured of obtaining a smoothing operator
that does not create extrema. It is the default for this
reason.
[logical]
-
alap
This is the value for the space-time constant Laplacian diffusivity.
[real, units: m^2/sec]
-
tracer_mix_micom
If .true., then the diffusivity is set according to a velocity scale times
the grid spacing. It is based on an approach recommended by
Eric Chassignet that is used in the Miami Isopycnal Model (MICOM).
[logical]
-
vel_micom
Velocity scale that is used for computing the MICOM diffusivity.
[real, units: m/sec]
-
read_diffusivity_mask
Allows for reading of a mask that to apply diffusivity
only in selected regions.
Default read_diffusivity_mask=.false.
[logical]
-
verbose_init
For verbose writes during initialization
[logical]
NOTES
The numerical implementation requires no calls to mpp_update_domains.