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

Module ocean_tpm_mod

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


OVERVIEW

Ocean tracer package module

Currently this module only works for the ocean model, but it could be extended (or generalized) to work with other models.

This module consists of eight subroutines, three are called as the model is intialized, four are called every time-step, and one is called at model ending. The subroutines are called in the following order.

These routines are called once at model startup in the ocean_tracer_init routine:

ocean_tpm_init: This routine saves pointers to "global" model structures, such as Grid and Domain. Also this routine will call specified routines to set default values for each tracer for such things as advection scheme, tracer name, etc.

ocean_tpm_flux_init: this routine initalizes field elements relating to the ocean-atmosphere gas fluxes

ocean_tpm_start: This routine calls specified routines to allocate appropriate storage for the tracer packages, perform pre-processing and initialization (possibly from extra restart information) and set parameters, either via namelist or via the field manager.

These routines are called each time-step from update_ocean_tracer (one before integration and one after):

ocean_tpm_sbc: Calls specified routines to handle surface coundary condition calculations. Some or all of this functionality may be moved into a new, generalized boundary condition manager.

ocean_tpm_bbc: Calls specified routines to handle bottom coundary condition calculations.

ocean_tpm_source: Calls specified routines to calculate the source array for each tracer in the tracer packages.

ocean_tpm_tracer: For those packages which need to do post-processing after the continuity equation has been integrated, calls may be placed here. This could be for global, annual means, for instance.

This routine is called once at the end of the run from ocean_tracer_end:

ocean_tpm_end: Call routines to finish up any loose ends, such as saving extra restart fields.

The following routines are called in relation to tying in to the FMS coupler to calculate fluxes for the additional tracers:

ocean_tpm_init_sfc: Allocate arrays for the accumulation of data to be used by the coupler

ocean_tpm_sum_sfc: Accumulate data for the coupler

ocean_tpm_avg_sfc: Take the time-mean of the fields for the coupler

ocean_tpm_zero_sfc: Zero out the fields for the coupler to allow for accumulation for the next time period

ocean_tpm_sfc_end: Save out fields for the restart.



OTHER MODULES USED

              mpp_mod
mpp_domains_mod
ocean_types_mod
ocean_age_tracer_mod
ocean_residency_mod
ocean_pert_co2_mod
ocmip2_abiotic_mod
ocmip2_cfc_mod
ocmip2_biotic_mod
ocean_bgc_restore_mod
ocmip2_he_mod
ocean_po4_pre_mod
ocean_ibgc_mod
ocean_generic_mod
ocean_frazil_mod
ocean_tempsalt_mod
ocean_passive_mod
transport_matrix_mod
time_manager_mod
coupler_types_mod

PUBLIC INTERFACE

do_time_calc:
ocean_tpm_bbc:
ocean_tpm_restart:
ocean_tpm_end:
ocean_tpm_init_sfc:
ocean_tpm_sum_sfc:
ocean_tpm_avg_sfc:
ocean_tpm_zero_sfc:
ocean_tpm_sfc_end:
ocean_tpm_sbc:
ocean_tpm_init:
ocean_tpm_flux_init:
ocean_tpm_source:
ocean_tpm_start:
ocean_tpm_tracer:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. do_time_calc

    DESCRIPTION
    call subroutines to perform time calculations


  2. ocean_tpm_bbc

    DESCRIPTION
    call subroutines to perform bottom boundary condition calculations


  3. ocean_tpm_restart

    DESCRIPTION
    Write out restart files registered through register_restart_file


  4. ocean_tpm_end

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


  5. ocean_tpm_init_sfc

    DESCRIPTION
    call subroutines to perform surface coupler initializations

    Note: this subroutine should be merged into ocean_tpm_start


  6. ocean_tpm_sum_sfc

    DESCRIPTION
    call subroutines to perform surface coupler initializations


  7. ocean_tpm_avg_sfc

    DESCRIPTION
    call subroutines to perform surface coupler initializations


  8. ocean_tpm_zero_sfc

    DESCRIPTION
    call subroutines to perform surface coupler initializations


  9. ocean_tpm_sfc_end

    DESCRIPTION
    call subroutines to perform surface coupler initializations


  10. ocean_tpm_sbc

    DESCRIPTION
    call subroutines to perform surface boundary condition calculations


  11. ocean_tpm_init

    DESCRIPTION
    Set up any extra fields needed by the tracer packages

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


  12. ocean_tpm_flux_init

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


  13. ocean_tpm_source

    DESCRIPTION
    Calculate the source arrays for the tracer packages


  14. ocean_tpm_start

    DESCRIPTION
    Start the tracer packages. This could include reading in extra restart information, processing namelists or doing initial calculations


  15. ocean_tpm_tracer

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



DATA SETS

None.


ERROR MESSAGES

None.


REFERENCES

None.


COMPILER SPECIFICS

None.


PRECOMPILER OPTIONS

None.


LOADER OPTIONS

None.


TEST PROGRAM

None.


KNOWN BUGS

None.


NOTES

None.


FUTURE PLANS

None.


top