MOM6
|
This module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer.
Data Types | |
type | rgc_tracer_cs |
tracer control structure More... | |
Functions/Subroutines | |
logical function, public | register_rgc_tracer (HI, GV, param_file, CS, tr_Reg, restart_CS) |
This subroutine is used to register tracer fields. More... | |
subroutine, public | initialize_rgc_tracer (restart, day, G, GV, h, diag, OBC, CS, layer_CSp, sponge_CSp) |
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. More... | |
subroutine, public | rgc_tracer_column_physics (h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, minimum_forcing_depth) |
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. More... | |
subroutine, public | rgc_tracer_end (CS) |
Variables | |
integer, parameter | ntr = 1 |
The number of tracers in this module. More... | |
subroutine, public rgc_tracer::initialize_rgc_tracer | ( | logical, intent(in) | restart, |
type(time_type), intent(in), target | day, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, | ||
type(diag_ctrl), intent(in), target | diag, | ||
type(ocean_obc_type), pointer | OBC, | ||
type(rgc_tracer_cs), pointer | CS, | ||
type(sponge_cs), pointer | layer_CSp, | ||
type(ale_sponge_cs), pointer | sponge_CSp | ||
) |
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.
[in] | g | Grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | restart | .true. if the fields have already been read from a restart file. |
[in] | day | Time of the start of the run. |
[in] | h | Layer thickness, in m or kg m-2. |
[in] | diag | Structure used to regulate diagnostic output. |
obc | This open boundary condition type specifies whether, where, and what open boundary conditions are used. This is not being used for now. | |
cs | The control structure returned by a previous call to RGC_register_tracer. | |
layer_csp | A pointer to the control structure | |
sponge_csp | A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated. |
Definition at line 156 of file RGC_tracer.F90.
References mom_ale_sponge::get_ale_sponge_nz_data(), mom_error_handler::mom_error(), ntr, mom_io::query_vardesc(), and mom_sponge::set_up_sponge_field().
logical function, public rgc_tracer::register_rgc_tracer | ( | type(hor_index_type), intent(in) | HI, |
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(rgc_tracer_cs), pointer | CS, | ||
type(tracer_registry_type), pointer | tr_Reg, | ||
type(mom_restart_cs), pointer | restart_CS | ||
) |
This subroutine is used to register tracer fields.
[in] | hi | A horizontal index type structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | param_file | A structure indicating the open file to parse for model parameter values. |
cs | A pointer that is set to point to the control structure for this module (in/out). | |
tr_reg | A pointer to the tracer registry. | |
restart_cs | A pointer to the restart control structure. |
Definition at line 68 of file RGC_tracer.F90.
References mom_error_handler::mom_error(), ntr, mom_tracer_registry::register_tracer(), and mom_io::var_desc().
subroutine, public rgc_tracer::rgc_tracer_column_physics | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h_old, |
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h_new, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | ea, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | eb, | ||
type(forcing), intent(in) | fluxes, | ||
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(unit_scale_type), intent(in) | US, | ||
type(rgc_tracer_cs), pointer | CS, | ||
real, intent(in), optional | evap_CFL_limit, | ||
real, intent(in), optional | minimum_forcing_depth | ||
) |
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.
[in] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | h_old | Layer thickness before entrainment [H ~> m or kg m-2]. |
[in] | h_new | Layer thickness after entrainment [H ~> m or kg m-2]. |
[in] | ea | an array to which the amount of fluid entrained |
[in] | eb | an array to which the amount of fluid entrained |
[in] | fluxes | A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs. |
[in] | dt | The amount of time covered by this call [T ~> s]. |
[in] | us | A dimensional unit scaling type |
cs | The control structure returned by a previous call. | |
[in] | evap_cfl_limit | Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [nondim]. |
[in] | minimum_forcing_depth | The smallest depth over which fluxes can be applied [H ~> m or kg m-2]. |
Definition at line 278 of file RGC_tracer.F90.
References mom_tracer_diabatic::applytracerboundaryfluxesinout(), ntr, and mom_tracer_diabatic::tracer_vertdiff().
subroutine, public rgc_tracer::rgc_tracer_end | ( | type(rgc_tracer_cs), pointer | CS | ) |
cs | The control structure returned by a previous call to RGC_register_tracer. |
Definition at line 343 of file RGC_tracer.F90.
|
private |
The number of tracers in this module.
Definition at line 42 of file RGC_tracer.F90.
Referenced by initialize_rgc_tracer(), register_rgc_tracer(), and rgc_tracer_column_physics().