PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module ocean_passive_mod

Contact:  Stephen M. Griffies Alistair Adcroft
Reviewers: 
Change History: WebCVS Log


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

ocean_passive_init:
passive_tracer_init:
ocean_passive_tracer_init:
surface_init:
layer_init:
wall_init:
patch_init:
patch_init_klevel:
exponential_init:
shelfbowl_init:
update_tracer_passive:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. ocean_passive_init

    DESCRIPTION
    Initialize the indices for passive tracer fields. This routine is called by ocean_model.F90.


  2. passive_tracer_init

    DESCRIPTION
    Initialize profiles for the passive tracers. This routine is called by ocean_tracer.F90.


  3. 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.


  4. surface_init

    DESCRIPTION
    Initialize passive tracer according to a particular iso-surface.


  5. layer_init

    DESCRIPTION
    Initialize tracer inside a depth layer to have a value, and zero outside the layer.



  6. wall_init

    DESCRIPTION
    Initialize tracer inside an (i,k) wall to have a value, and zero outside the wall.



  7. 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").



  8. patch_init_klevel

    DESCRIPTION
    Initialize tracer with gaussian patch or constant on a level, both on a single k-level


  9. exponential_init

    DESCRIPTION
    Initialize tracer with a vertical exponential profile.



  10. shelfbowl_init

    DESCRIPTION
    Initialize tracer as in the shelfbowl topography of use for studying idealized overflow problems, as in Winton etal (1998).



  11. 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.


top