Module ocean_submesoscale_mod
OVERVIEW
This module computes a streamfunction within
the upper surface boundary layer, and applies this
streamfunction to all tracers.
This module computes a streamfunction within
the upper surface boundary layer, and applies this
streamfunction to all tracers.
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
ocean_domains_mod
ocean_operators_mod
ocean_parameters_mod
ocean_tracer_diag_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC DATA
None.
PUBLIC ROUTINES
-
ocean_submesoscale_init
-
DESCRIPTION
- Initialization for the ocean_submesoscale module.
-
submeso_restrat
-
DESCRIPTION
- This routine computes a thickness and density weighted time tendency
for each tracer, arising from the effects of parameterized
submesoscale eddies in the surface mixed layer.
-
compute_bldepth
-
DESCRIPTION
- Compute the boundary layer depth and kblt.
-
tracer_derivs
-
DESCRIPTION
- Compute the tracer derivatives:
horizontal derivative (constant k-level)
and vertical derivative.
-
compute_psi
-
DESCRIPTION
- Compute the vector streamfunction
Units of psi are m^2/sec
If computing skewsion tendency, then need psi at depth_zt.
If computing advection tendency, then need psi at depth_zwt.
-
compute_transport
-
DESCRIPTION
- Compute the mass transport from submeso
-
compute_submeso_skewsion
-
DESCRIPTION
- Compute tendency from skewsion for submeso.
-
compute_flux_x
-
DESCRIPTION
- Subroutine computes the zonal submesoscale tracer flux component.
fx has physical dimensions (area*diffusivity*density*tracer gradient)
-
compute_flux_y
-
DESCRIPTION
- Subroutine computes the meridional submesoscale tracer flux component.
fy has physical dimensions (area*diffusivity*density*tracer gradient)
-
compute_flux_z
-
DESCRIPTION
- Subroutine computes the vertical submeso tracer flux component.
Surface and bottom boundary condition fz(k=0)=fz(k=kmt(i,j))=0
fz has physical dimensions (density*diffusivity*tracer gradient)
-
compute_submeso_advection
-
DESCRIPTION
- Sweby scheme to compute the tendency from advection for submeso.
Presently this scheme has problems, and is not usable.
-
maximum_bottom_w_general
-
DESCRIPTION
- Compute maximum vertical velocity from submeso.
NAMELIST
&ocean_submesoscale_nml
-
use_this_module=
Must be .true. to use this module.
[logical]
-
debug_this_module
For debugging purposes.
[logical]
-
diag_step
Number of time steps between computing max bottom value for wrho_bt_submeso.
Default diag_step=1200.
[integer]
-
submeso_skew_flux
For computing the tendency as convergence of skew flux.
Default submeso_skew_flux=.true.
[logical]
-
submeso_advective_flux
For computing the tendency as convergence of advective flux.
This approach uses flux limited sweby advection, which ensures
that the resulting tendency will not create extrema in the
tracer field.
This option has a bug, and so cannot be used.
Default submeso_advective_flux=.false.
[logical]
-
submeso_diag_advect_transport
For diagnosing the advective mass transport.
Doing so requires a call to a subroutine. If not aiming
to diagnose the velocity, then saves time to set
submeso_diag_advect_transport=.false.
Default submeso_diag_advect_transport=.false.
[logical]
-
use_hblt_constant
For running with a constant boundary layer depth. This for the case when
not using a realistic mixed layer scheme. Default use_hblt_constant=.false.
[logical]
-
constant_hblt
The boundary layer depth for the case when use_hblt_constant=.true.
Default constant_hblt=100.0.
[real, units: metre]
-
use_hblt_equal_mld
For using the diagnosed mld as the hblt for submeso.
This is useful for those test models that do not have a mixed layer
scheme enabled, such as KPP, where the mixed layer scheme provides a
boundary layer depth. In this case, it is sensible to employ the diagnosed
mixed layer depth for the submeso scheme. Additionally, in general it is
more physical to use the mld than the KPP hblt as the depth over which
the submesoscale eddies act. Hence, default use_hblt_equal_mld=.true.
[logical]
-
min_kblt
The minimum number of vertical cells in the surface boundary layer
that are required in order to compute the submesoscale streamfunction.
Default min_kblt=3. Need at least three to fit a parabola with zero
streamfunction at the top and bottom of the boundary layer.
[integer, units: dimensionless]
-
minimum_hblt
For setting a floor to the hblt used for submesoscale scheme.
Default minimum_hblt=0.0.
[real, units: metre]
-
smooth_hblt
For smoothing on the hblt field. This is useful since the hblt
obtained from KPP or diagnosed mld can have some grid noise.
Default smooth_hblt=.false.
[logical]
-
vel_micom_smooth
Velocity scale that is used for computing the Laplacian mixing
coefficient used in the Laplacian smoothing of hblt.
Default vel_micom_smooth=0.2.
[real, units: m/sec]
-
smooth_psi
For doing a horizontal 1-2-1 smoothing on the psix and psiy fields.
This is useful to reduce noise. Default smooth_psi=.true.
[logical]
-
limit_psi
For limiting the magnitude of psi in order to reduce possibility of
model crashes. Default limit_psi=.true.
[logical]
-
limit_psi_velocity_scale
Velocity scale used to limit the value of psi when limit_psi=.true.
Default limit_psi_velocity_scale=0.5.
[real, units: metre/sec]
-
submeso_limit_flux
For limiting the fluxes arising from submeso scheme, according to
tmask_limit. When reach a point where tmask_limit=1.0, then set
the submeso flux for this cell to zero.
Default submeso_limit_flux=.true.
[logical]
-
coefficient_ce
The dimensionless coefficient from the Fox-Kemper etal scheme.
They recommend setting coefficient_ce between 0.06 and 0.08.
Default coefficient_ce=0.07.
[real, units: dimensionless]
-
time_constant
Timescale to mix momentum across the mixed layer.
Default time_constant=86400.0 = 1day.
[real, units: seconds]
-
front_length_const
Take constant horizontal length scale of submesoscale front.
Default front_length_const=5e3.
[real, units: metre]
-
front_length_deform_radius
To compute the front length using the mixed layer deformation
radius. Default front_length_deform_radius=.true. Note,
will have a floor on the variable front length set by the
nml setting for front_length_const.
[logical]
-
transport_units
The units for writing out the transport. Either in
Sv (10^9 kg/s) or mks (kg/s). Note the mks unit is requested
for CMIP5 purposes.
Default transport_units = 'Sv'.
[character]
DATA SETS
None.
ERROR MESSAGES
None.
REFERENCES
- Fox-Kemper, Ferrari, and Hallberg 2008: Parameterization of
mixed layer eddies. Part I: theory and diagnosis
Journal of Physical Oceanography, in press.
- Fox-Kemper, Danabasoglu, Ferrari, and Hallberg 2008:
Parameterizing submesoscale physics in global models.
Clivar Exchanges, vol 13, no.1, Jan2008. pages 3-5.
COMPILER SPECIFICS
None.
PRECOMPILER OPTIONS
None.
LOADER OPTIONS
None.
TEST PROGRAM
None.
KNOWN BUGS
None.
NOTES
None.
FUTURE PLANS
None.