MOM6
|
This module contains the routines used to set up and use a set of (one for now) dynamically passive tracers. For now, just one passive tracer is injected in the sponge layer. Set up and use passive tracers requires the following: (1) register_ISOMIP_tracer (2)
Data Types | |
type | isomip_tracer_cs |
tracer control structure More... | |
type | p3d |
Functions/Subroutines | |
logical function, public | register_isomip_tracer (HI, GV, param_file, CS, tr_Reg, restart_CS) |
This subroutine is used to register tracer fields. More... | |
subroutine, public | initialize_isomip_tracer (restart, day, G, GV, h, diag, OBC, CS, ALE_sponge_CSp, diag_to_Z_CSp) |
Initializes the NTR tracer fields in tr(:,:,:,:) More... | |
subroutine, public | isomip_tracer_column_physics (h_old, h_new, ea, eb, fluxes, dt, G, GV, CS, evap_CFL_limit, minimum_forcing_depth) |
This subroutine applies diapycnal diffusion and any other column. More... | |
subroutine, public | isomip_tracer_surface_state (state, h, G, CS) |
This particular tracer package does not report anything back to the coupler. More... | |
subroutine, public | isomip_tracer_end (CS) |
Variables | |
integer, parameter | ntr = 1 |
subroutine, public isomip_tracer::initialize_isomip_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(isomip_tracer_cs), pointer | CS, | ||
type(ale_sponge_cs), pointer | ALE_sponge_CSp, | ||
type(diag_to_z_cs), pointer | diag_to_Z_CSp | ||
) |
Initializes the NTR tracer fields in tr(:,:,:,:)
[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. |
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 ISOMIP_register_tracer. | |
ale_sponge_csp | A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated. | |
diag_to_z_csp | A pointer to the control structure for diagnostics in depth space. |
Definition at line 172 of file ISOMIP_tracer.F90.
References mom_tracer_registry::add_tracer_diagnostics(), mom_error_handler::mom_error(), ntr, mom_io::query_vardesc(), and mom_diag_to_z::register_z_tracer().
subroutine, public isomip_tracer::isomip_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(isomip_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.
[in] | g | The ocean's grid structure |
[in] | gv | The ocean's vertical grid structure |
[in] | dt | The amount of time covered by this call, in s |
Definition at line 308 of file ISOMIP_tracer.F90.
References mom_tracer_diabatic::applytracerboundaryfluxesinout(), ntr, and mom_tracer_diabatic::tracer_vertdiff().
subroutine, public isomip_tracer::isomip_tracer_end | ( | type(isomip_tracer_cs), pointer | CS | ) |
Definition at line 436 of file ISOMIP_tracer.F90.
References ntr.
Referenced by mom_tracer_flow_control::tracer_flow_control_end().
subroutine, public isomip_tracer::isomip_tracer_surface_state | ( | type(surface), intent(inout) | state, |
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(isomip_tracer_cs), pointer | CS | ||
) |
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, in m or kg m-2. |
cs | The control structure returned by a previous call to ISOMIP_register_tracer. |
Definition at line 415 of file ISOMIP_tracer.F90.
References ntr, and coupler_util::set_coupler_values().
logical function, public isomip_tracer::register_isomip_tracer | ( | type(hor_index_type), intent(in) | HI, |
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(isomip_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 94 of file ISOMIP_tracer.F90.
References atmos_ocean_fluxes_mod::aof_set_coupler_flux(), mom_error_handler::mom_error(), ntr, and mom_io::var_desc().
|
private |
Definition at line 49 of file ISOMIP_tracer.F90.
Referenced by initialize_isomip_tracer(), isomip_tracer_column_physics(), isomip_tracer_end(), isomip_tracer_surface_state(), and register_isomip_tracer().