Module ocean_vert_gotm_mod
OVERVIEW
Vertical viscosity and diffusivity according GOTM.
This module contains interfaces to initialize and invoke the
Generalized Ocean Turbulence Model (GOTM) parameterizations.
Full documentation of the schemes available with GOTM
can be found at www.gotm.net.
MOM is distributed with the basic routines from the 4.0
release of GOTM. Questions about GOTM should be directed
to the GOTM users group at www.gotm.net.
This module assumes a twolevel time stepping scheme is used
to update the turbulence scalar fields tke and diss.
Presently it has only been implemented assuming Bgrid.
So it needs to be updated for Cgrid layout.
Here is a brief outline of the GOTM scheme:
The non-conservative part of the tke
equation is P+B-diss, where P=shear production,
B=buoyancy production. The non-conservative part of
the diss equation is a linear combination of tke,
P, B and diss.
The conservatie part of both tke and diss equations is
3D advection.
So vertical shear and buoyancy contribute to the
source and sinks (respectively) of tke and dissipation.
The mixing coefficients are the product of a stability
function, sqrt(tke), and turbulence length scale (the latter
a non-linear function of tke and diss).
In the hydro model (i.e., MOM), buoyancy fluxes are the
surface boundary conditions for vertical diffusion of temp (heat
fluxes) and salt (freshwater fluxes), which in turn determine the
density, and thus enter GOTM via the calculation of buoyancy production.
Hence, buoyancy fluxes are NOT directly required as surface boundary
conditions for GOTM.
Wind stress provides the surface boundary condition for vertical
momentum mixing in MOM. This information then enters GOTM
via the shear production calculation. However, wind stress
can enter the GOTM tke equation as the surface boundary
condition for vertical diffusion of tke (i.e. the prescribed,
or Dirichlet, condition). This information is typically used in
Mellor-Yamada turbulence models. An alternate no-flux (Neumann)
condition is used in the k-e models, and so do not require wind stress.
Boundary conditions for vertical diffusion of diss involve roughness,
tke, and constants (both Neumann and Dirichlet).
OTHER MODULES USED
constants_mod
diag_manager_mod
fms_mod
fms_io_mod
mpp_domains_mod
mpp_mod
mtridiagonal
turbulence
ocean_domains_mod
ocean_parameters_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod
ocean_obc_mod
PUBLIC INTERFACE
PUBLIC ROUTINES
-
ocean_vert_gotm_init
-
DESCRIPTION
-
Initialization for the MOM wrapper to the GOTM vertical mixing scheme.
For restarts:
We use twolevel time stepping scheme to update tke and diss,
so only need to read in the taup1_gotm value.
call mpp_update_domains since need tke and diss in halos for
the advection calculation.
We need viscosity and diffusivity saved to restarts in order
to update the tke and diss fields within GOTM.
-
vert_mix_gotm_bgrid
-
DESCRIPTION
-
This subroutine computes the vertical diffusivity and viscosity
according to the GOTM mixing model.
The tke, diss, NN, and SS arrays are computed on tracer cells.
Use smf_bgrid since this array uses the primary smf array read in from
the coupler in ocean_core/ocean_sbc.F90 when using the FMS coupler.
-
advect_gotm_compute
-
DESCRIPTION
-
Wrapper for advection of GOTM scalar fields tke and diss.
Horizontally tke and diss are on tracer cells, so advection just as if
they were tracers.
Vertically they are between tracer cells. We do not average but shift
tke and diss upward to tracer points for vertical advection. At the bottom
tke and diss are define by the Dirichlet boundary condition.
Since use a two-level time stepping scheme for tke and diss,
it is necessary to advect these scalars with an upwind biased
advection scheme.
-
advect_gotm_upwind
-
DESCRIPTION
-
First order upwind to advect GOTM scalar turbulence quantities tke and diss.
-
advect_gotm_sweby
-
DESCRIPTION
-
Sweby scheme to advect GOTM scalar turbulence quantities tke and diss.
-
ocean_vert_gotm_restart
-
DESCRIPTION
-
Write out restart files registered through register_restart_file
-
ocean_vert_gotm_end
-
DESCRIPTION
-
Save the advection term for restarting the next time step.
NAMELIST
&ocean_vert_gotm_nml
-
use_this_module
Must be true to use this module. Default is .false.
[logical]
-
debug_this_module
For debugging. Default is .false.
[logical]
-
do_turbulence_gotm
For debugging. If do_turbulence_gotm=.false., then
will not invoke the GOTM scheme. Will only advect
tke and diss using 3d advection scheme.
Default is .true., so that will invoke GOTM scheme.
[logical]
-
do_advection_gotm
For debugging. If do_advection_gotm=.false., then
will not invoke the advection of tke and diss.
Default is .true., so that will 3d advect tke and diss.
[logical]
-
write_a_restart
Set true to write a restart. False setting only for rare
cases where wish to benchmark model without measuring the cost
of writing restarts and associated chksums.
Default is write_a_restart=.true.
[logical]
-
advect_gotm_method
For choosing how to advect the GOTM scalar fields tke and diss.
Options are advect_gotm_method='upwind' (the default)
advect_gotm_method='sweby'
[character]
-
diff_cbt_min
Background diffusivity. Default is 1.0e-5.
[real, units: m^2/sec]
-
visc_cbu_min
Background viscosity. Default is 1.0e-5.
[real, units: m^2/sec]
-
z0s
Surface roughness length. Default is 1m.
[real, units: m]
-
z0b
Bottom roughness length. Default is .002m.
[real, units: m]
-
min_tke
Minimum turbulent kinetic energy. Default=1.0e-6.
[real, units: m^2/s^2]
-
min_diss
Minimum energy dissipation. Default=1.0e-10.
[real, units: m^2/s^3]
REFERENCES
-
Burchard, H., K. Bolding and M. R. Villarreal
GOTM, a general ocean turbulence model. Theory
implementation and test cases.
European Communities, EUR 18745 EN, 1999