Module ocean_passive_mod
OVERVIEW
Set up for idealized passive tracers.
This module setups various passive tracer configurations.
Some idealized initial conditions are provided.
These tracers are used for various idealized purposes,
such as tracing water mass transports, testing
advection schemes, etc.
These passive tracers are always initialized within
this module with an idealized profile.
No preprocessing step is required. To define a common initial condition
for all passive tracers use the namelist "ocean_passive_nml"
This setting can be overwritten for each tracer by the namelist feature of the tracer field_table.
For example
"namelists","ocean_mod","ocean_passive/patch"
restore = f
init_condition = temp_sq_init
init_condition is one of :: 'level', 'wall','patch', 'patch_'klevel, with "klevel" an integer
for the k-level that will place the patch.
'exponential', 'shelfbowl', 'rho_surface', 'temp_sq_init', 'salt_sq_init'
Default is 'patch'
With rho_surface' a density surface can be selected, the density value
is defined in the field table namelist, for example
init_surface = 1025
However, if an initial file exists for a passive tracer,
then ocean_tracer_mod will overwrite the passive tracer
with the tracer concentration in the initial file. In this
way, we can, for example, initialize a passive tracer with
some profile that is not readily determined via a simple
algorithmic procedure.
If restoring of a passive tracer to its initial value is enabled by
setting in the field table
restore = t
the initial field is used only to find the grid cells where to restore the
passive tracer to the initial tracer field. Restoring is done where the tracer
concentration exceeds 0.00001. The inital value of passive tracers with restoring
is always set to '1'. With the field_table namelist
init_value = some_real
this can be changed to another but also constant value.
All passive tracers in this module are dimensionless and are
treated the same internally to this module. However, they can
generally have different initial conditions and can use
different advection schemes. Indeed, one motivation for
developing this module is to test advection schemes, with
the same initial condition used for each of the tracers,
but different advection schemes. In this way we can readily
determine the difference between advection schemes on various
profiles within mom4p1.
Sample passive tracers are setup here. The user can modify
code in a straightforward manner to change the number of
passive tracers and/or the initial profiles.
OTHER MODULES USED
constants_mod
field_manager_mod
fm_util_mod
fms_mod
mpp_mod
ocean_domains_mod
ocean_tpm_util_mod
ocean_types_mod
PUBLIC INTERFACE
PUBLIC DATA
None.
PUBLIC ROUTINES
-
ocean_passive_init
-
DESCRIPTION
- Initialize the indices for passive tracer fields.
This routine is called by ocean_model.F90.
-
passive_tracer_init
-
DESCRIPTION
- Initialize profiles for the passive tracers.
This routine is called by ocean_tracer.F90.
-
ocean_passive_tracer_init
-
DESCRIPTION
- Initialize restoring to initial values for the passive tracers.
or
Initialize profiles for the passive tracers which are tagged with
specific values of the temperature field or potential density field.
or
Initialize profiles for the passive tracers which are defined
as the temperature or salinity squared. These tracers are used
for diagnosing the level of spurious mixing associated with
PSOM advection.
-
surface_init
-
DESCRIPTION
- Initialize passive tracer according to a particular iso-surface.
-
layer_init
-
DESCRIPTION
- Initialize tracer inside a depth layer to have a value, and
zero outside the layer.
-
wall_init
-
DESCRIPTION
- Initialize tracer inside an (i,k) wall to have a value, and
zero outside the wall.
-
patch_init
-
DESCRIPTION
- Initialize tracer with simple shapes based on vertical layer:
Level k=1, square pill box
Level k=2, circular pill box (cylinder)
Level k=3, circular cone
Level k=4, cosine bell
Level k=5, Gaussian bell
Levels k>5, square patch based on i,j coordinates (original "patch").
-
patch_init_klevel
-
DESCRIPTION
- Initialize tracer with gaussian patch or constant on a level,
both on a single k-level
-
exponential_init
-
DESCRIPTION
- Initialize tracer with a vertical exponential profile.
-
shelfbowl_init
-
DESCRIPTION
- Initialize tracer as in the shelfbowl topography of use for studying
idealized overflow problems, as in Winton etal (1998).
-
update_tracer_passive
-
DESCRIPTION
- Update the squared tracer.
Restore passive tracers.
NAMELIST
&ocean_passive_nml
-
debug_this_module
For debugging the module.
[logical]
-
common_init_condition
Default for the tracer initial conditions.
Options are the following:
common_init_condition='level'
common_init_condition='wall'
common_init_condition='patch'
common_init_condition='patch_'klevel, with "klevel" an integer
for the k-level that will place the patch.
common_init_condition='exponential'
common_init_condition='shelfbowl'
common_init_condition='rho_surface'
common_init_condition='temp_sq_init'
common_init_condition='salt_sq_init'
Default=common_init_condition='patch'
[character]
-
layer_value
Value of tracer concentration within the layer.
Default=1.0.
[real]
-
layer_ztop
Depth at the top of the tracer layer.
[real]
-
layer_zbot
Depth at the bottom of the tracer layer.
[real]
-
patch_init_klevel_gaussian
To initialize on the klevel with a gaussian region.
Default=patch_init_klevel_gaussian=.false.
[logical]
-
wall_value
Value of tracer concentration within the wall.
Default=1.0.
[real]
-
wall_ratio_south
Ratio of the full j-range, northward of which
we place the wall.
[real]
-
wall_ratio_north
Ratio of the full j-range, southward of which
we place the wall.
[real]
-
patch_value
Value of the tracer concentration within a patch.
Default=1.0.
[real]
-
patch_ztop
Depth at the top of the tracer patch.
[real]
-
patch_zbot
Depth at the bottom of the tracer patch.
[real]
-
patch_ratio1
For setting position of tracer patch.
[real]
-
patch_ratio2
For setting position of tracer patch.
[real]
-
efold_depth
The efolding depth used for exponential tracer profile.
Default=1000.0.
[real, units: metre]
-
exponential_value
The tracer value at zero depth when choosing the exponential profile.
Default=1.0.
[real, units: dimensionless]
DATA SETS
None.
ERROR MESSAGES
None.