Module ocean_vert_chen_mod
OVERVIEW
Vertical viscosity and diffusivity according Chen scheme
This scheme was originally developed by researchers
at the CSIRO Marine and Atmospheric Research and
Bureau of Meteorology, both in Australia.
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
fms_io_mod
mpp_domains_mod
mpp_mod
ocean_density_mod
ocean_domains_mod
ocean_parameters_mod
ocean_shortwave_csiro_mod
ocean_types_mod
ocean_util_mod
ocean_vert_util_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC ROUTINES
-
ocean_vert_chen_init
-
DESCRIPTION
-
Initialization for the Chen vertical mixing scheme
input:
dzt = thickness of vertical levels (m)
km = number of vertical levels
yt = latitude of grid points (deg)
dtts = density time step (sec)
dtuv = internal mode time step (sec)
error = logical to signal problems
vmixset= logical to determine if a vertical mixing scheme was
chosen
output:
visc_cbu_limit = visc max due to shear instability (m**2/sec)
diff_cbt_limit = diffusivity .. (m**2/sec)
visc_cbu_iw = visc background due to internal waves(m**2/sec)
diff_cbt_iw = diffusivity .. (m**2/sec)
error = true if some inconsistancy was found
-
vert_mix_chen
-
DESCRIPTION
-
--Compute interior mixing everywhere:
interior mixing gets computed at all cell interfaces due to constant
internal wave background activity ("visc_cbu_iw" and "diff_cbt_iw").
Additionally, mixing can be enhanced by contribution from shear
instability which is a function of the local Ri.
--Boundary layer:
(A) Boundary layer depth:
at every gridpoint the depth of the Kraus boundary layer
("hbl") gets computed.
(B) Boundary layer mixing:
within the boundary layer, above hbl, vertical mixing is
set to a maximum
inputs
outputs
hbl = boundary layer depth (meters)
visc_cbu = viscosity coefficient at bottom of U cells (m^2/s)
diff_cbt = diffusion coefficient at bottom of T cells (m^2/s)
-
kraus_turner
-
DESCRIPTION
-
Calculate the Kraus mixed layer depth
Note: This formulation assumes a single exponential decay in the solar
shortwave penetration.
Use smf_bgrid since this array contains the primary smf array read in from
from the coupler in ocean_core/ocean_sbc.F90, when using the FMS coupler.
real dbloc(ij_bounds) = local delta buoyancy (m/s^2)
real ustar(ij_bounds) = surface friction velocity (m/s)
real Bo(ij_bounds) = surface turbulent buoyancy forcing(m^2/s^3)
real Bosol(ij_bounds) = radiative buoyancy forcing (m^2/s^3)
output
real hbl(ij_bounds) ! boundary layer depth (m)
real mixmask(ij_bounds,nk) ! fraction of cell which resides in mixed layer
integer kbl(ij_bounds) ! index of first grid level below hbl
-
ri_for_chen
-
DESCRIPTION
-
Compute Richardson number on tracer and velocity cell bottoms.
rit = richardson number at bottom of T cells
riu = richardson number at bottom of U cells
-
ocean_vert_chen_restart
-
DESCRIPTION
-
Write out restart files registered through register_restart_file
-
ocean_vert_chen_end
-
DESCRIPTION
-
Save the Kraus boundary layer depth to start next time step.
NAMELIST
&ocean_vert_chen_nml
-
use_this_module
Must be true to use this module. Default is false.
[logical]
-
debug_this_module
For debugging. Default debug_this_module=.false.
[logical]
-
diff_cbt_iw
Background vertical diffusivity. Note that if using Bryan-Lewis as a
background diffusivity, then should set diff_cbt_iw=0.0.
[real, units: m^2/sec]
-
visc_cbu_iw
Background vertical viscosity
[real, units: m^2/sec]
-
visc_cbu_limit
Enhanced vertical viscosity due to shear instability
[real, units: m^2/sec]
-
diff_cbt_limit
Enhanced vertical diffusivity due to shear instability
[real, units: m^2/sec]
-
bulk_tn
Bulk turblence parameter n_0
[real, units: ]
-
bulk_tm
Bulk turblence parameter m_0
[real, units: ]
-
hbl_growth_max
Maximum growth rate of kraus mixed layer
[real, units: m/sec]
REFERENCES
-
Chen, D., L.M. Rothstein and A.J. Busalacchi, 1994:
A hybrid vertical mixing scheme and its application
to tropical ocean models,
J. Phys. Oceanogr., 24, 2156-2179
NOTES
Surface fresh water contributes to surface buoyancy via conversion to
a locally implied salt flux.
This module typically runs with the ocean_shortwave_csiro scheme.
Use smf_bgrid since this array contains the primary smf array read in from
from the coupler in ocean_core/ocean_sbc.F90, when using the FMS coupler.