MOM6
|
Routines used to set up and use a set of (one for now) dynamically passive tracers in the ISOMIP configuration.
For now, just one passive tracer is injected in the sponge layer.
Data Types | |
type | isomip_tracer_cs |
ISOMIP tracer package control structure. More... | |
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) |
Initializes the NTR tracer fields in tr(:,:,:,:) More... | |
subroutine, public | isomip_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, including the surface boundary conditions and any other column tracer physics or chemistry to the tracers from this file. More... | |
subroutine, public | isomip_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... | |
subroutine, public | isomip_tracer_end (CS) |
Deallocate any memory used by the ISOMIP tracer package. More... | |
Variables | |
integer, parameter | ntr = 1 |
ntr is the number of tracers in this module. More... | |
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 | ||
) |
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 [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. 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. |
Definition at line 150 of file ISOMIP_tracer.F90.
References mom_error_handler::mom_error(), ntr, and mom_io::query_vardesc().
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(unit_scale_type), intent(in) | US, | ||
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, including the surface boundary conditions and any other column tracer physics or chemistry to the tracers from this file.
[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 ISOMIP_register_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 250 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 | ) |
Deallocate any memory used by the ISOMIP tracer package.
cs | The control structure returned by a previous call to ISOMIP_register_tracer. |
Definition at line 361 of file ISOMIP_tracer.F90.
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 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 ISOMIP_register_tracer. |
Definition at line 330 of file ISOMIP_tracer.F90.
References ntr.
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 69 of file ISOMIP_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 |
ntr is the number of tracers in this module.
Definition at line 42 of file ISOMIP_tracer.F90.
Referenced by initialize_isomip_tracer(), isomip_tracer_column_physics(), isomip_tracer_surface_state(), and register_isomip_tracer().