Module ocean_tpm_mod
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
PUBLIC DATA
None.
PUBLIC ROUTINES
-
do_time_calc
-
DESCRIPTION
- call subroutines to perform time calculations
-
ocean_tpm_bbc
-
DESCRIPTION
- call subroutines to perform bottom boundary condition
calculations
-
ocean_tpm_restart
-
DESCRIPTION
- Write out restart files registered through register_restart_file
-
ocean_tpm_end
-
DESCRIPTION
- Finish up calculations for the tracer packages,
possibly writing out non-field restart information
-
ocean_tpm_init_sfc
-
DESCRIPTION
- call subroutines to perform surface coupler initializations
Note: this subroutine should be merged into ocean_tpm_start
-
ocean_tpm_sum_sfc
-
DESCRIPTION
- call subroutines to perform surface coupler initializations
-
ocean_tpm_avg_sfc
-
DESCRIPTION
- call subroutines to perform surface coupler initializations
-
ocean_tpm_zero_sfc
-
DESCRIPTION
- call subroutines to perform surface coupler initializations
-
ocean_tpm_sfc_end
-
DESCRIPTION
- call subroutines to perform surface coupler initializations
-
ocean_tpm_sbc
-
DESCRIPTION
- call subroutines to perform surface boundary condition
calculations
-
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.
-
ocean_tpm_flux_init
-
DESCRIPTION
- Set up any extra fields needed by the ocean-atmosphere gas fluxes
-
ocean_tpm_source
-
DESCRIPTION
- Calculate the source arrays for the tracer packages
-
ocean_tpm_start
-
DESCRIPTION
- Start the tracer packages.
This could include reading in extra restart information,
processing namelists or doing initial calculations
-
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.