MOM6
|
This module contains routines that implement physical fluxes of tracers (e.g. due to surface fluxes or mixing). These are intended to be called from call_tracer_column_fns in the MOM_tracer_flow_control module.
Functions/Subroutines | |
subroutine, public | tracer_vertdiff (h_old, ea, eb, dt, tr, G, GV, sfc_flux, btm_flux, btm_reservoir, sink_rate, convert_flux_in) |
This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. More... | |
subroutine, public | applytracerboundaryfluxesinout (G, GV, Tr, dt, fluxes, h, evap_CFL_limit, minimum_forcing_depth, in_flux_optional, out_flux_optional, update_h_opt) |
This routine is modeled after applyBoundaryFluxesInOut in MOM_diabatic_aux.F90 NOTE: Please note that in this routine sfc_flux gets set to zero to ensure that the surface flux of the tracer does not get applied again during a subsequent call to tracer_vertdif. More... | |
subroutine, public mom_tracer_diabatic::applytracerboundaryfluxesinout | ( | type(ocean_grid_type), intent(in) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | Tr, | ||
real, intent(in) | dt, | ||
type(forcing), intent(in) | fluxes, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | h, | ||
real, intent(in) | evap_CFL_limit, | ||
real, intent(in) | minimum_forcing_depth, | ||
real, dimension(szi_(g),szj_(g)), intent(in), optional | in_flux_optional, | ||
real, dimension(szi_(g),szj_(g)), intent(in), optional | out_flux_optional, | ||
logical, intent(in), optional | update_h_opt | ||
) |
This routine is modeled after applyBoundaryFluxesInOut in MOM_diabatic_aux.F90 NOTE: Please note that in this routine sfc_flux gets set to zero to ensure that the surface flux of the tracer does not get applied again during a subsequent call to tracer_vertdif.
[in] | g | Grid structure |
[in] | gv | ocean vertical grid structure |
[in,out] | tr | Tracer concentration on T-cell |
[in] | dt | Time-step over which forcing is applied [s] |
[in] | fluxes | Surface fluxes container |
[in,out] | h | Layer thickness [H ~> m or kg m-2] |
[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 [m] |
[in] | in_flux_optional | The total time-integrated amount of tracer that enters with freshwater |
[in] | out_flux_optional | The total time-integrated amount of tracer that leaves with freshwater |
[in] | update_h_opt | Optional flag to determine whether h should be updated |
Definition at line 225 of file MOM_tracer_diabatic.F90.
subroutine, public mom_tracer_diabatic::tracer_vertdiff | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, gv %ke), intent(in) | h_old, |
real, dimension( g %isd: g %ied, g %jsd: g %jed, gv %ke), intent(in) | ea, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, gv %ke), intent(in) | eb, | ||
real, intent(in) | dt, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, gv %ke), intent(inout) | tr, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed), intent(in), optional | sfc_flux, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed), intent(in), optional | btm_flux, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed), intent(inout), optional | btm_reservoir, | ||
real, intent(in), optional | sink_rate, | ||
logical, intent(in), optional | convert_flux_in | ||
) |
This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme.
[in] | g | ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | h_old | layer thickness before entrainment [H ~> m or kg m-2] |
[in] | ea | amount of fluid entrained from the layer above [H ~> m or kg m-2] |
[in] | eb | amount of fluid entrained from the layer below [H ~> m or kg m-2] |
[in,out] | tr | tracer concentration in concentration units [CU] |
[in] | dt | amount of time covered by this call [s] |
[in] | sfc_flux | surface flux of the tracer [CU kg m-2 s-1] |
[in] | btm_flux | The (negative upward) bottom flux of the tracer [CU kg m-2 s-1] |
[in,out] | btm_reservoir | amount of tracer in a bottom reservoir [CU kg m-2]; formerly [CU m] |
[in] | sink_rate | rate at which the tracer sinks [m s-1] |
[in] | convert_flux_in | True if the specified sfc_flux needs to be integrated in time |
Definition at line 27 of file MOM_tracer_diabatic.F90.