PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_form_drag_mod

Contact:  S.M. Griffies
Reviewers: 
Change History: WebCVS Log


OVERVIEW

Compute form drag as per Greatbatch and Lamb (1990) and/or Aiki etal (2004).

Compute thickness weighted and density weighted tendency [velocity*(kg/m^3)*meter/sec] for velocity associated with parameterized form drag. Code employs the methods described in Greatbatch and Lamb (1990) as well as Aiki etal (2004). This scheme has not been updated for C-grid specific layout. However, there is little reason to expect that shifting the viscosity by 1/2 grid point will make sense physically for this scheme. Indeed, one does not expect this scheme to be relevant near boundaries anyhow. So use for both Bgrid and Cgrid should be reasonable, though with the caveat that differences will appear near boundaries.


OTHER MODULES USED

       constants_mod
diag_manager_mod
fms_mod
mpp_mod
mpp_domains_mod
ocean_domains_mod
ocean_parameters_mod
ocean_types_mod
ocean_workspace_mod

PUBLIC INTERFACE

ocean_form_drag_init:
compute_visc_form_drag:
form_drag_accel:


PUBLIC ROUTINES

  1. ocean_form_drag_init

    DESCRIPTION
    Initial set up for parameterized pressure form drag.


  2. compute_visc_form_drag

    DESCRIPTION
    Compute vertical viscosity arising from parameterized form drag according to the methods from the Greatbatch TEM approach. Follow the method of Ferreira and Marshall (2006) for transitioning through the diabatic surface mixed layer. We take the surf_blthick from mixed layer schemes (e.g., KPP), and use this to define the region where the eddy induced velocity has zero vertical shear. Note that we do not introduce an additional transitional layer. There are four methods to compute the vertical viscosity within the interior, with one required to be chosen: 1/ form_drag_gbatch_f2overN2 visc = kappa*(f/N)^2, with kappa=gm-diffusivity 2/ form_drag_gbatch_f2overNb2 visc = kappa*(f/Nb)^2, with Nb=buoyancy freq just below surface mixed layer 3/ form_drag_gbatch_f2overNo2 visc = kappa*(f/No)^2, with No=constant buoyancy freq 4/ form_drag_gbatch_alpha_f2 visc = alpha*f^2, with alpha = constant (units of m^2*sec)


  3. form_drag_accel

    DESCRIPTION
    Compute the rho*dz weighted acceleration from the Aiki etal form drag scheme.



NAMELIST

&ocean_form_drag_nml

use_this_module
Needs to be true in order to use this scheme. Default is false.
[logical]
debug_this_module
For debugging.
[logical]
verbose_init
For verbose initialization information.
[logical]
use_form_drag_gbatch
For using the Greatbatch form drag approach, which places the contributions from "GM" into the momentum equation. use_form_drag_gbatch, is the traditional transformed Eulerian mean approach as per Greatbatch and Lamb (1990) and Greatbatch (1998). In this approach, we modify visc_cbu so that the the "GM-effects" occur through vertical viscosity. Since thise scheme is experimental, it is not recommended for general use, so we set default use_form_drag_gbatch=.false.
[logical]
form_drag_gbatch_surf_layer
Logical to enable the use of a diabatic layer over which the eddy-induce velocity is assumed to be constant with depth. Default form_drag_gbatch_surf_layer=.false.
[logical]
ksurf_blayer_min
Minimum number of vertical grid points in the surface turbulent boundary layer for use with form_drag_gbatch_surf_layer=.true. Default ksurf_blayer_min=3.
[integer]
form_drag_gbatch_alpha_f2
For use of a vertical viscosity with the form_drag_gbatch that is equal to visc = form_drag_gbatch_alpha * f^2. This form of the vertical viscosity is used by Ferreira and Marshall, 2006. Default form_drag_gbatch_alpha_f2=.false.
[logical]
form_drag_gbatch_alpha
For use of a vertical viscosity with the form_drag_gbatch that is equal to visc = form_drag_gbatch_alpha * f^2. Default form_drag_gbatch_alpha=3e8
[real, units: m^2*sec]
form_drag_gbatch_f2overN2
To compute vertical viscosity according to visc=kappa*(f/N)**2 with kappa=gm-diffusivity, f=Coriolis, and N=buoyancy frequency. This is the form suggested by Greatbatch and Lamb (1990). Default form_drag_gbatch_f2overN2=.false.
[logical]
form_drag_gbatch_f2overNb2
To compute vertical viscosity according to visc=kappa*(f/Nb)**2 with kappa=gm-diffusivity, f=Coriolis, and Nb=buoyancy frequency just below the diabatic mixed layer. This is the form suggested by Danabasoglu and Marshall (2007). Default form_drag_gbatch_f2overNb2=.false.
[logical]
form_drag_gbatch_f2overNo2
To compute vertical viscosity according to visc=kappa*(f/No)**2 with kappa=gm-diffusivity, f=Coriolis, and No=constant buoyancy frequency set via namelist. Default form_drag_gbatch_f2overNo2=.false.
[logical]
form_drag_gbatch_No
To compute vertical viscosity according to visc=kappa*(f/No)**2 with kappa=gm-diffusivity, f=Coriolis, and No=constant buoyancy frequency. Default form_drag_gbatch_No=5e-3
[real, units: sec^-1]
form_drag_gbatch_smooth_N2
For vertically smoothing the squared buoyancy frequency for use in computing the vertical viscosity in the form drag approach. Default form_drag_gbatch_smooth_N2=.false.
[logical]
num_121_passes
Number of 1-2-1 passes for vertically smoothing the squared buoyancy frequency. Default num_121_passes=1.
[integer]
visc_cbu_form_drag_max
Maximum vertical viscosity used for the form drag contribution to vertical friction from the Greatbatch TEM approach. Default visc_cbu_form_drag_max=1m^2/sec.
[real, units: m^2/sec]
vel_form_drag_max
For diagnostic purpuses, maximum form drag eddy induced velocity. Default vel_form_drag_max=1m/sec.
[real, units: m/sec]
N_squared_min
Minimum sequared buoyancy frequency (N^2) for use in computing the vertical viscosity from the Greatbatch form drag scheme. Default N_squared_min=1e-10.
[real, units: 1/sec]
use_form_drag_aiki
For using the Aiki form drag approach.
[logical]
cprime_aiki
Dimensionless parameters from the Aiki etal scheme. Default cprime_aiki=0.3.
[real, units: dimensionless]
form_drag_aiki_scale_by_gm
Compute a dimensionless scale function proportional to the GM-diffusivity, for use with the Aiki etal form drag scheme. Default form_drag_aiki_scale_by_gm=.false.
[logical]
form_drag_aiki_bottom_layer
For implementing the Aiki form drag just in a selected number of bottom layers. Will still insist that the scheme conserves momentum, as a form drag scheme should do. Default form_drag_aiki_bottom_layer=.false.
[logical]
form_drag_aiki_bottom_klevels
Number of klevels above the bottom that we choose to close the Aiki form drag scheme. Default form_drag_aiki_bottom_klevels=3. This should ideally be less than the minimum number of klevels in the model.
[integer]
form_drag_aiki_scale_by_gradH
For scaling the coefficient used by the form drag scheme with the bottom slope.
[logical]
form_drag_aiki_gradH_power
For scaling the coefficient used by the form drag scheme with the bottom slope raised to the power "form_drag_aiki_gradH_power".
[real]
form_drag_aiki_gradH_max
For scaling setting the maximum of the bottom slope for use with scaling the form drag coefficient. Default form_drag_aiki_gradH_max=.05
[logical]


REFERENCES

  1. Greatbatch and Lamb, 1990: On parameterizing vertical mixing of momentum in non eddy-resolving ocean models. Journal of Physical Oceanography. vol. 20, pages 1634-1637.
  2. Greatbatch, 1998: Exploring the relationship betwen eddy-induced transport velocity, vertical momentum transfer, and the isopycnal flux of potential vorticity. Journal of Physical Oceanography, vol. 28, pages 422-432.
  3. Aiki, Jacobson, and Yamagata, 2004: Parameterizing ocean eddy transports from surface to bottom. Geophysical Research Letters, vol. 31.
  4. Ferreira and Marshall, 2006: Formulation and implementation of a residual-mean ocean circulation model. Ocean Modelling, vol. 13, pages 86--107.
  5. Danabosaglu and Marshall, 2007: Effects of vertical variations of thickness diffusivity in an ocean general circulation model. Ocean Modelling, vol. 18, pages 122-141.


top