namespace mom_kappa_shear¶
Overview¶
Shear-dependent mixing following Jackson et al. 2008. More…
namespace mom_kappa_shear { // global functions subroutine, public calculate_kappa_shear( u_in u_in, v_in v_in, h h, tv tv, p_surf p_surf, kappa_io kappa_io, tke_io tke_io, kv_io kv_io, dt dt, G G, GV GV, US US, CS CS, initialize_all initialize_all ); subroutine, public calc_kappa_shear_vertex( u_in u_in, v_in v_in, h h, T_in T_in, S_in S_in, tv tv, p_surf p_surf, kappa_io kappa_io, tke_io tke_io, kv_io kv_io, dt dt, G G, GV GV, US US, CS CS, initialize_all initialize_all ); logical function, public kappa_shear_init( Time Time, G G, GV GV, US US, param_file param_file, diag diag, CS CS ); logical function, public kappa_shear_is_used(param_file param_file); logical function, public kappa_shear_at_vertex(param_file param_file); } // namespace mom_kappa_shear
Detailed Documentation¶
Shear-dependent mixing following Jackson et al. 2008.
By Laura Jackson and Robert Hallberg, 2006-2008
This file contains the subroutines that determine the diapycnal diffusivity driven by resolved shears, as specified by the parameterizations described in Jackson and Hallberg (JPO, 2008).
The technique by which the 6 equations (for kappa, TKE, u, v, T, and S) are solved simultaneously has been dramatically revised from the previous version. The previous version was not converging in some cases, especially near the surface mixed layer, while the revised version does. The revised version solves for kappa and TKE with shear and stratification fixed, then marches the density and velocities forward with an adaptive (and aggressive) time step in a predictor-corrector-corrector emulation of a trapezoidal scheme. Run-time-settable parameters determine the tolerence to which the kappa and TKE equations are solved and the minimum time step that can be taken.
Global Functions¶
subroutine, public calculate_kappa_shear( u_in u_in, v_in v_in, h h, tv tv, p_surf p_surf, kappa_io kappa_io, tke_io tke_io, kv_io kv_io, dt dt, G G, GV GV, US US, CS CS, initialize_all initialize_all )
Subroutine for calculating shear-driven diffusivity and TKE in tracer columns.
Parameters:
g |
The ocean’s grid structure. |
gv |
The ocean’s vertical grid structure. |
us |
A dimensional unit scaling type |
u_in |
Initial zonal velocity [L T-1 ~> m s-1]. |
v_in |
Initial meridional velocity [L T-1 ~> m s-1]. |
h |
Layer thicknesses [H ~> m or kg m-2]. |
tv |
A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. |
p_surf |
The pressure at the ocean surface [Pa] (or NULL). |
kappa_io |
The diapycnal diffusivity at each interface |
tke_io |
The turbulent kinetic energy per unit mass at |
kv_io |
The vertical viscosity at each interface |
dt |
Time increment [T ~> s]. |
cs |
The control structure returned by a previous call to kappa_shear_init. |
initialize_all |
If present and false, the previous value of kappa is used to start the iterations |
subroutine, public calc_kappa_shear_vertex( u_in u_in, v_in v_in, h h, T_in T_in, S_in S_in, tv tv, p_surf p_surf, kappa_io kappa_io, tke_io tke_io, kv_io kv_io, dt dt, G G, GV GV, US US, CS CS, initialize_all initialize_all )
Subroutine for calculating shear-driven diffusivity and TKE in corner columns.
Parameters:
g |
The ocean’s grid structure. |
gv |
The ocean’s vertical grid structure. |
us |
A dimensional unit scaling type |
u_in |
Initial zonal velocity [L T-1 ~> m s-1]. |
v_in |
Initial meridional velocity [L T-1 ~> m s-1]. |
h |
Layer thicknesses [H ~> m or kg m-2]. |
t_in |
Layer potential temperatures [degC] |
s_in |
Layer salinities in ppt. |
tv |
A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. |
p_surf |
The pressure at the ocean surface [Pa] (or NULL). |
kappa_io |
The diapycnal diffusivity at each interface |
tke_io |
The turbulent kinetic energy per unit mass at |
kv_io |
The vertical viscosity at each interface [Z2 T-1 ~> m2 s-1]. |
dt |
Time increment [T ~> s]. |
cs |
The control structure returned by a previous call to kappa_shear_init. |
initialize_all |
If present and false, the previous value of kappa is used to start the iterations |
logical function, public kappa_shear_init( Time Time, G G, GV GV, US US, param_file param_file, diag diag, CS CS )
This subroutineinitializesthe parameters that regulate shear-driven mixing.
Parameters:
time |
The current model time. |
g |
The ocean’s grid structure. |
gv |
The ocean’s vertical grid structure. |
us |
A dimensional unit scaling type |
param_file |
A structure to parse for run-time parameters. |
diag |
A structure that is used to regulate diagnostic output. |
cs |
A pointer that is set to point to the control structure for this module |
Returns:
True if module is to be used, False otherwise
logical function, public kappa_shear_is_used(param_file param_file)
This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used without needing to duplicate the log entry.
Parameters:
param_file |
A structure to parse for run-time parameters |
logical function, public kappa_shear_at_vertex(param_file param_file)
This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used without needing to duplicate the log entry.
Parameters:
param_file |
A structure to parse for run-time parameters |