MOM6
|
Calculations of isoneutral slopes and stratification.
Functions/Subroutines | |
subroutine, public | calc_isoneutral_slopes (G, GV, US, h, e, tv, dt_kappa_smooth, slope_x, slope_y, N2_u, N2_v, halo) |
Calculate isopycnal slopes, and optionally return N2 used in calculation. More... | |
subroutine, public | vert_fill_ts (h, T_in, S_in, kappa_dt, T_f, S_f, G, GV, halo_here, larger_h_denom) |
Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity. More... | |
subroutine, public mom_isopycnal_slopes::calc_isoneutral_slopes | ( | type(ocean_grid_type), intent(in) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
type(unit_scale_type), intent(in) | US, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke+1), intent(in) | e, | ||
type(thermo_var_ptrs), intent(in) | tv, | ||
real, intent(in) | dt_kappa_smooth, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke+1), intent(inout) | slope_x, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke+1), intent(inout) | slope_y, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke+1), intent(inout), optional | N2_u, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke+1), intent(inout), optional | N2_v, | ||
integer, intent(in), optional | halo | ||
) |
Calculate isopycnal slopes, and optionally return N2 used in calculation.
[in] | g | The ocean's grid structure |
[in] | gv | The ocean's vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | h | Layer thicknesses [H ~> m or kg m-2] |
[in] | e | Interface heights [Z ~> m] or units given by 1/eta_to_m) |
[in] | tv | A structure pointing to various thermodynamic variables |
[in] | dt_kappa_smooth | A smoothing vertical diffusivity times a smoothing timescale [Z2 ~> m2]. |
[in,out] | slope_x | Isopycnal slope in i-direction [nondim] |
[in,out] | slope_y | Isopycnal slope in j-direction [nondim] |
[in,out] | n2_u | Brunt-Vaisala frequency squared at |
[in,out] | n2_v | Brunt-Vaisala frequency squared at |
[in] | halo | Halo width over which to compute |
Definition at line 28 of file MOM_isopycnal_slopes.F90.
References vert_fill_ts().
Referenced by mom_lateral_mixing_coeffs::calc_slope_functions().
subroutine, public mom_isopycnal_slopes::vert_fill_ts | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, |
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | T_in, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | S_in, | ||
real, intent(in) | kappa_dt, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(out) | T_f, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(out) | S_f, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
integer, intent(in), optional | halo_here, | ||
logical, intent(in), optional | larger_h_denom | ||
) |
Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity.
[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] | t_in | Input temperature [degC] |
[in] | s_in | Input salinity [ppt] |
[in] | kappa_dt | A vertical diffusivity to use for smoothing times a smoothing timescale [Z2 ~> m2]. |
[out] | t_f | Filled temperature [degC] |
[out] | s_f | Filled salinity [ppt] |
[in] | halo_here | Number of halo points to work on, 0 by default |
[in] | larger_h_denom | Present and true, add a large enough minimal thickness in the denominator of the flux calculations so that the fluxes are never so large as eliminate the transmission of information across groups of massless layers. |
Definition at line 334 of file MOM_isopycnal_slopes.F90.
Referenced by calc_isoneutral_slopes(), mom_set_diffusivity::set_diffusivity(), mom_int_tide_input::set_int_tide_input(), and mom_thickness_diffuse::thickness_diffuse_full().