namespace mom_set_diffusivity¶
Overview¶
Calculate vertical diffusivity from all mixing processes. More…
namespace mom_set_diffusivity { // global functions subroutine, public set_diffusivity( u u, v v, h h, u_h u_h, v_h v_h, tv tv, fluxes fluxes, optics optics, visc visc, dt_in_T dt_in_T, G G, GV GV, US US, CS CS, Kd_lay Kd_lay, Kd_int Kd_int ); subroutine, public set_bbl_tke( u u, v v, h h, fluxes fluxes, visc visc, G G, GV GV, US US, CS CS ); subroutine, public set_diffusivity_init( Time Time, G G, GV GV, US US, param_file param_file, diag diag, CS CS, int_tide_CSp int_tide_CSp, tm_CSp tm_CSp, halo_TS halo_TS ); subroutine, public set_diffusivity_end(CS CS); } // namespace mom_set_diffusivity
Detailed Documentation¶
Calculate vertical diffusivity from all mixing processes.
Global Functions¶
subroutine, public set_diffusivity( u u, v v, h h, u_h u_h, v_h v_h, tv tv, fluxes fluxes, optics optics, visc visc, dt_in_T dt_in_T, G G, GV GV, US US, CS CS, Kd_lay Kd_lay, Kd_int Kd_int )
Sets the interior vertical diffusion of scalars due to the following processes:
Shear-driven mixing: two options, Jackson et at. and KPP interior;
Background mixing via CVMix (Bryan-Lewis profile) or the scheme described by Harrison & Hallberg, JPO 2008;
Double-diffusion, old method and new method via CVMix;
Tidal mixing: many options available, see
MOM_tidal_mixing.F90
; In addition, this subroutine has the option to set the interior vertical viscosity associated with processes 1,2 and 4 listed above, which is stored in viscKv_slow. Vertical viscosity due to shear-driven mixing is passed via viscKv_shear
Parameters:
g |
The ocean’s grid structure. |
gv |
The ocean’s vertical grid structure. |
us |
A dimensional unit scaling type |
u |
The zonal velocity [L T-1 ~> m s-1]. |
v |
The meridional velocity [L T-1 ~> m s-1]. |
h |
Layer thicknesses [H ~> m or kg m-2]. |
u_h |
Zonal velocity interpolated to h points [L T-1 ~> m s-1]. |
v_h |
Meridional velocity interpolated to h points [L T-1 ~> m s-1]. |
tv |
Structure with pointers to thermodynamic fields. Out is for tvTempxPmE. |
fluxes |
A structure of thermodynamic surface fluxes |
optics |
A structure describing the optical properties of the ocean. |
visc |
Structure containing vertical viscosities, bottom boundary layer properies, and related fields. |
dt_in_t |
Time increment [s]. |
cs |
Module control structure. |
kd_lay |
Diapycnal diffusivity of each layer [Z2 T-1 ~> m2 s-1]. |
kd_int |
Diapycnal diffusivity at each interface [Z2 T-1 ~> m2 s-1]. |
subroutine, public set_bbl_tke( u u, v v, h h, fluxes fluxes, visc visc, G G, GV GV, US US, CS CS )
This subroutine calculates several properties related to bottom boundary layer turbulence.
Parameters:
g |
The ocean’s grid structure |
gv |
The ocean’s vertical grid structure |
us |
A dimensional unit scaling type |
u |
The zonal velocity [L T-1 ~> m s-1] |
v |
The meridional velocity [L T-1 ~> m s-1] |
h |
Layer thicknesses [H ~> m or kg m-2] |
fluxes |
A structure of thermodynamic surface fluxes |
visc |
Structure containing vertical viscosities, bottom boundary layer properies, and related fields. |
cs |
Diffusivity control structure |
subroutine, public set_diffusivity_init( Time Time, G G, GV GV, US US, param_file param_file, diag diag, CS CS, int_tide_CSp int_tide_CSp, tm_CSp tm_CSp, halo_TS halo_TS )
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 used to regulate diagnostic output. |
cs |
pointer set to point to the module control structure. |
int_tide_csp |
pointer to the internal tides control structure (BDM) |
tm_csp |
pointer to tidal mixing control structure |
halo_ts |
The halo size of tracer points that must be valid for the calculations in set_diffusivity. |
subroutine, public set_diffusivity_end(CS CS)
Clear pointers and dealocate memory.
Parameters:
cs |
Control structure for this module |