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

Module ocean_po4_pre_mod

Contact:  Jennifer Simeon
Reviewers:  Eric Galbraith
Change History: WebCVS Log


OVERVIEW

Add-on ocean biogeochemistry module

This module has simple implementation of preformed phosphate. Where, po4_pre=po4, if z <= mld

It is an optional package that requires TOPAZ, ocmip2_biotic, or ocean_bgc_restore to be running.

Various mixed layer depth options are available and can be set via namelist

1 = kpp mixed layer (default) 2 = buoyancy criteria defined mixed layer, where this buoyancy references in situ density 3 = buoyancy criteria defined mixed layer, where this buoyancy references potential density



OTHER MODULES USED

    field_manager_mod
mpp_mod
fms_mod
time_manager_mod
mpp_domains_mod
ocean_tpm_util_mod
fm_util_mod
ocean_types_mod
ocean_tracer_diag_mod
diag_manager_mod

PUBLIC INTERFACE

allocate_arrays:
ocean_po4_pre_bbc:
ocean_po4_pre_end:
ocean_po4_pre_sbc:
ocean_po4_pre_flux_init:
ocean_po4_pre_init:
ocean_po4_pre_init_sfc:
ocean_po4_pre_sum_sfc:
ocean_po4_pre_zero_sfc:
ocean_po4_pre_avg_sfc:
ocean_po4_pre_sfc_end:
ocean_po4_pre_source:
ocean_po4_pre_start:
ocean_po4_pre_tracer:
set_array:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. allocate_arrays

    DESCRIPTION
    Dynamically allocate arrays


  2. ocean_po4_pre_bbc

    DESCRIPTION
    calculate the surface boundary conditions


  3. ocean_po4_pre_end

    DESCRIPTION
    Clean up various PO4_PRE quantities for this run.


  4. ocean_po4_pre_sbc

    DESCRIPTION
    Calculate the surface boundary conditions


  5. ocean_po4_pre_flux_init

    DESCRIPTION
    Set up any extra fields needed by the ocean-atmosphere gas fluxes


  6. ocean_po4_pre_init

    DESCRIPTION
    Set up any extra fields needed by the tracer packages

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


  7. ocean_po4_pre_init_sfc

    DESCRIPTION
    Initialize surface fields for flux calculations

    Note: this subroutine should be merged into ocean_po4_pre_start


  8. ocean_po4_pre_sum_sfc

    DESCRIPTION
    Sum surface fields for flux calculations


  9. ocean_po4_pre_zero_sfc

    DESCRIPTION
    Sum surface fields for flux calculations


  10. ocean_po4_pre_avg_sfc

    DESCRIPTION
    Sum surface fields for flux calculations


  11. ocean_po4_pre_sfc_end

    DESCRIPTION
    Finish up stuff for surface fields for flux calculations


  12. ocean_po4_pre_source

    DESCRIPTION
    compute the source terms for the PO4_PREs, including boundary conditions (not done in setvbc, to minimize number of hooks required in MOM base code)


  13. ocean_po4_pre_start

    DESCRIPTION
    Initialize variables, read in namelists, calculate constants for a given run and allocate diagnostic arrays


  14. ocean_po4_pre_tracer

    DESCRIPTION
    Perform things that should be done in tracer, but are done here in order to minimize the number of hooks necessary in the MOM4 basecode


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


REFERENCES

  1. No reference yet.


COMPILER SPECIFICS

None.


PRECOMPILER OPTIONS

None.


LOADER OPTIONS

None.


TEST PROGRAM

None.


KNOWN BUGS

None.


NOTES

None.


FUTURE PLANS

None.


top