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

Module ocean_age_tracer_mod

Contact:  Richard D. Slater
Reviewers:  John P. Dunne Stephen M. Griffies
Change History: WebCVS Log


OVERVIEW

Ocean age tracer module

This module will perform the necessary operations to handle a series of ocean age tracers. The following types are allowed:

normal: the age of the designated surface area is fixed at 0, while all other grid points increase in age. Therefore, the resultant age is the length of time since that water has been in contact with the designated area of surface. (This is the default type.)

Note that the tracer "concentration" known as "age" is in units of years, hence the multiplier "secs_in_year_r" applied to t_prog(index)%source. This multiplier IS NOT needed for any other terms, since they all have units with meter/sec, and this is multiplied by dtime(secs) when time stepping.



OTHER MODULES USED

 field_manager_mod
mpp_mod
time_manager_mod
ocean_tpm_util_mod
fm_util_mod
ocean_types_mod

PUBLIC INTERFACE

ocean_age_tracer_end:
ocean_age_tracer_init:
ocean_age_tracer_source:
ocean_age_tracer_start:
ocean_age_tracer_tracer:
set_array:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. ocean_age_tracer_end

    DESCRIPTION
    Finish up calculations for the tracer packages, possibly writing out non-field restart information


  2. ocean_age_tracer_init

    DESCRIPTION
    Set up any extra fields needed by the tracer packages

    Save pointers to various "types", such as Grid and Domains.


  3. ocean_age_tracer_source

    DESCRIPTION
    Calculate the source arrays for the tracer packages


  4. ocean_age_tracer_start

    DESCRIPTION
    Start the ocean age tracer package

    Age tracer surface area specification

    wlon : western longitude of surface age region elon : eastern longitude of surface age region slat : southern latitude of surface age region nlat : northern latitude of surface age region coastal_only : if true, then only apply the changes in coastal boxes t_mask : logical array controlling whether to apply the following inhibitions and depletions to each month (true means set the masks, false means use the defaults everywhere)

    To set the surface areas, a number of namelists are read, each containing the above values. You may specify up to num_region rectangles bounded by (wlon,elon,nlat,slat). Any grid box whose center is in one of these rectangles will be considered to be part of the surface area where the age is reset to zero every time-step.

    These masks may be time-dependent by specifying t_mask. For any month that t_mask is true (1=Jan), the rectangular regions will be set, otherwise they will be skipped.

    nlat may not equal slat, and wlon may not equal elon

    If slat > nlat, then nothing will be done for that rectangle

    The initial surface area is empty, with the default rectangle setting the surface area to be empty

    More than num_regions rectangles may be used to specify the area by using more than one namelist


  5. ocean_age_tracer_tracer

    DESCRIPTION
    Subroutine to do calculations needed every time-step after the continuity equation has been integrated


  6. set_array

    DESCRIPTION
    Set up an array covering the model domain with a user-specified value, in user-specified regions. There are a given number of 2-d regions specified by the values slat, nlat, wlon and elon. The longitudes are for a cyclic domain, and if wlon and elon are on opposite sides of the cut, the correct thing will be done. Elon is considered to be east of wlon, so if elon is less than wlon, then the region east of elon to the cut will be filled, and the region from the cut to wlon will be filled.

    After setting up the array in this routine, it may prove useful to allow fine-tuning the settings via an array in a namelist.

    Arguments: Input: num_regions number of user-specified regions which will be filled wlon 1-d array of western (starting) longitudes for the rectangular regions elon 1-d array of eastern (ending) longitudes for the rectangular regions slat 1-d array of southern (starting) latitudes for the rectangular regions nlat 1-d array of northern (ending) latitudes for the rectangular regions Note: if slat >= nlat, then nothing is done for that region set_value the value to assign to array in the user-specified regions unset_value the value to assign to array outside of the user-specified regions name character variable used in informative messages coastal_only true to limit changes only to coastal points (i.e., at least one bordering point is land)

    Output: array 2-d array which will contain the set- and unset- values. The array is assumed to have a border one unit wide on all edges, ala MOM. A cyclic boundary condition will be set if requested.



DATA SETS

None.


ERROR MESSAGES

None.


top