MOM6
|
This tracer package is used to test advection schemes.
Data Types | |
type | advection_test_tracer_cs |
The control structure for the advect_test_tracer module. More... | |
Functions/Subroutines | |
logical function, public | register_advection_test_tracer (HI, GV, param_file, CS, tr_Reg, restart_CS) |
Register tracer fields and subroutines to be used with MOM. More... | |
subroutine, public | initialize_advection_test_tracer (restart, day, G, GV, h, diag, OBC, CS, sponge_CSp) |
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. More... | |
subroutine, public | advection_test_tracer_column_physics (h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, minimum_forcing_depth) |
Applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this package. This is a simple example of a set of advected passive tracers. More... | |
subroutine, public | advection_test_tracer_surface_state (state, h, G, CS) |
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. More... | |
integer function, public | advection_test_stock (h, stocks, G, GV, CS, names, units, stock_index) |
Calculate the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. More... | |
subroutine, public | advection_test_tracer_end (CS) |
Deallocate memory associated with this module. More... | |
Variables | |
integer, parameter | ntr = 11 |
The number of tracers in this module. More... | |
integer function, public advection_test_tracer::advection_test_stock | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, |
real, dimension(:), intent(out) | stocks, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(advection_test_tracer_cs), pointer | CS, | ||
character(len=*), dimension(:), intent(out) | names, | ||
character(len=*), dimension(:), intent(out) | units, | ||
integer, intent(in), optional | stock_index | ||
) |
Calculate the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.
[in] | g | The ocean's grid structure |
[in] | h | Layer thicknesses [H ~> m or kg m-2] |
[out] | stocks | the mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc]. |
[in] | gv | The ocean's vertical grid structure |
cs | The control structure returned by a previous call to register_advection_test_tracer. | |
[out] | names | the names of the stocks calculated. |
[out] | units | the units of the stocks calculated. |
[in] | stock_index | the coded index of a specific stock being sought. |
Definition at line 352 of file advection_test_tracer.F90.
References mom_io::query_vardesc().
Referenced by mom_tracer_flow_control::call_tracer_stocks().
subroutine, public advection_test_tracer::advection_test_tracer_column_physics | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_old, |
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_new, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | ea, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), 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(advection_test_tracer_cs), pointer | CS, | ||
real, intent(in), optional | evap_CFL_limit, | ||
real, intent(in), optional | minimum_forcing_depth | ||
) |
Applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this package. 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 thermodynamic and tracer 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 to register_advection_test_tracer. | |
[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 260 of file advection_test_tracer.F90.
References mom_tracer_diabatic::applytracerboundaryfluxesinout(), ntr, and mom_tracer_diabatic::tracer_vertdiff().
subroutine, public advection_test_tracer::advection_test_tracer_end | ( | type(advection_test_tracer_cs), pointer | CS | ) |
Deallocate memory associated with this module.
cs | The control structure returned by a previous call to register_advection_test_tracer. |
Definition at line 393 of file advection_test_tracer.F90.
subroutine, public advection_test_tracer::advection_test_tracer_surface_state | ( | type(surface), intent(inout) | state, |
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(advection_test_tracer_cs), pointer | CS | ||
) |
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.
[in] | g | The ocean's grid structure. |
[in,out] | state | A structure containing fields that describe the surface state of the ocean. |
[in] | h | Layer thickness [H ~> m or kg m-2]. |
cs | The control structure returned by a previous call to register_advection_test_tracer. |
Definition at line 320 of file advection_test_tracer.F90.
subroutine, public advection_test_tracer::initialize_advection_test_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(szi_(g),szj_(g),szk_(g)), intent(in) | h, | ||
type(diag_ctrl), intent(in), target | diag, | ||
type(ocean_obc_type), pointer | OBC, | ||
type(advection_test_tracer_cs), pointer | CS, | ||
type(sponge_cs), pointer | sponge_CSp | ||
) |
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.
[in] | restart | .true. if the fields have already been read from a restart file. |
[in] | day | Time of the start of the run. |
[in] | g | The ocean's grid structure |
[in] | gv | The ocean's vertical grid structure |
[in] | h | Layer thicknesses [H ~> m or kg m-2] |
[in] | diag | A structure that is used to regulate diagnostic output. |
obc | This open boundary condition type specifies whether, where, and what open boundary conditions are used. | |
cs | The control structure returned by a previous call to register_advection_test_tracer. | |
sponge_csp | Pointer to the control structure for the sponges. |
Definition at line 168 of file advection_test_tracer.F90.
References ntr, and mom_io::query_vardesc().
logical function, public advection_test_tracer::register_advection_test_tracer | ( | type(hor_index_type), intent(in) | HI, |
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(advection_test_tracer_cs), pointer | CS, | ||
type(tracer_registry_type), pointer | tr_Reg, | ||
type(mom_restart_cs), pointer | restart_CS | ||
) |
Register tracer fields and subroutines to be used with MOM.
[in] | hi | A horizontal index type structure |
[in] | gv | The ocean's vertical grid structure |
[in] | param_file | A structure to parse for run-time parameters |
cs | The control structure returned by a previous call to register_advection_test_tracer. | |
tr_reg | A pointer that is set to point to the control structure for the tracer advection and diffusion module | |
restart_cs | A pointer to the restart control structure |
Definition at line 68 of file advection_test_tracer.F90.
References atmos_ocean_fluxes_mod::aof_set_coupler_flux(), mom_error_handler::mom_error(), ntr, mom_tracer_registry::register_tracer(), and mom_io::var_desc().
|
private |
The number of tracers in this module.
Definition at line 34 of file advection_test_tracer.F90.
Referenced by advection_test_tracer_column_physics(), initialize_advection_test_tracer(), and register_advection_test_tracer().