PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_nphysics_skew_mod

Contact:  Tim Leslie Stephen M. Griffies
Reviewers: 
Change History: WebCVS Log


OVERVIEW

Thickness weighted and density weighted time tendency for tracer from Laplacian neutral diffusion + Laplacian skew-diffusion.

This module computes the cell thickness weighted and density weighted tracer tendency from small angle Laplacian neutral diffusion plus Laplacian skew-diffusion. The algorithms for neutral diffusion are based on mom4p0d methods. The algorithm for neutral skewsion are based on a projection onto a few of the lowest baroclinic modes. This module is experimental, and should be used with caution.


OTHER MODULES USED

              constants_mod
fms_mod
mpp_mod
ocean_domains_mod
ocean_nphysics_util_new_mod
ocean_parameters_mod
ocean_types_mod
ocean_util_mod

PUBLIC INTERFACE

ocean_nphysics_skew_init:
register fields:
gm_tensor:
compute_transport_modes:
do_regularize_transport:
compute_transport_bvp:
invtri_bvp:
do_smooth_transport:


PUBLIC ROUTINES

  1. ocean_nphysics_skew_init

    DESCRIPTION
    Initialization routine.


  2. register fields

    DESCRIPTION
    Register diagnostic fields.


  3. gm_tensor

    DESCRIPTION
    Compute the skew tensor terms using the GM method.


  4. compute_transport_modes

    DESCRIPTION
    Compute transport as projection onto baroclinic modes. Units of upsilon are m^2/sec Subroutine computes the baroclinic wave speeds and the dimensionless baroclinic mode eigenfunction for the vertical velocity baroclinic modes. These modes vanish at the surface and the bottom. We use the Chelton etal WKB analytic formulae for the speeds and modes. The baroclinic modes are dimensionless, and normalized over the depth of the ocean, from free surface to bottom. The speeds are m/sec.


  5. do_regularize_transport

    DESCRIPTION
    regularize the transport to keep magnitude under control in regions of weak vertical stratification.


  6. compute_transport_bvp

    DESCRIPTION
    Compute transport by solving a boundary value problem. psi is centered on bottom of tracer cell; for example, psi(k=1)=psi at bottom of tracer cell k=1. psi vanishes at the ocean surface: psi(k=0)=0 and ocean bottom: psi(k=kmt)=0. We solve for psi(k=1,kmt-1) using a tridiagonal solver from Section 2.4 of Press etal 1986. Units of psi are m^2/sec


  7. invtri_bvp

    DESCRIPTION
    Solve the vertical diffusion equation implicitly using the method of inverting a tridiagonal matrix as described in Numerical Recipes in Fortran, The art of Scientific Computing, Second Edition, Press, Teukolsky, Vetterling, Flannery, 1992 pages 42,43. enforce upsilon(k=kmt) = 0 via use of mask(k+1).


  8. do_smooth_transport

    DESCRIPTION



NAMELIST

&ocean_nphysics_skew_nml

gm_transport
To compute tendency from GM skewsion. Default gm_transport=.false.
[logical]
bc_modes_transport
To compute tendency from GM skewsion using streamfunction established by baroclinic modes. Default bc_modes_transport=.false.
[logical]
bvp_transport
To compute tendency from GM skewsion using streamfunction established by a boundary value problem. Default bvp_transport=.false.
[logical]
number_bc_modes
The number of baroclinic modes used to construct the eddy induced streamfunction when bc_modes_transport. Default number_bc_modes=1.
[integer]
min_bc_speed
The minimum speed used for computing the baroclinic modes. Default min_bc_speed=1e-6
[real, units: m/s]
regularize_transport
To reduce the magnitude of psi in regions of weak stratification, using the slope = smax_psi to set the overall scale of the max allowed for psi. Default regularize_transport=.true.
[logical]
smax_psi
Maximum slope used for setting the overall scale of a modal contribution to the parameterized transport. Default smax_psi=0.1.
[real]
bvp_constant_speed
For taking a constant speed to be used for the calculation of the BVP streamfunction. Default bvp_constant_speed=.false.
[logical]
bvp_speed
For setting the speed weighting the second order derivative operator in the BVP streamfunction method: c^2 = max[bvp_min_speed, (bvp_speed-c_mode)^2]. If bvp_constant_speed, then c^2 = bvp_speed^2. Default bvp_speed=0.0, in which case c^2 = c_mode^2.
[real, units: m/s]
bvp_bc_mode
The particular baroclinic mode used to construct the BVP streamfunction. If bvp_bc_mode=0, then will set bc_speed=0 when computing the BVP streamfunction. Default bvp_bc_mode=1.
[integer]
bvp_min_speed
For setting a minimum speed for use with the calculation of the BVP streamfunction. We need bvp_min_speed>0 to ensure that the second order derivative operator contributes to the calculation of the streamfunction. Default bvp_min_speed=0.1.
[real, units: m/s]
bv_freq_smooth_vert
To smooth the buoyancy frequency for use in computing the baroclinic modes. Generally this field has already been smooted in ocean_density_mod, but we maintain the possibility of further smoothing here. Default bv_freq_smooth_vert=.false.
[logical]
smooth_transport
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]


REFERENCES

  1. S.M. Griffies The Gent-McWilliams Skew-flux Journal of Physical Oceanography (1998) vol 28 pages 831-841
  2. R. Ferrari, S.M. Griffies, A.J.G. Nurser, and G.K. Vallis A boundary value problem for the parameterized mesoscale eddy transport Ocean Modelling, 2009.
  3. S.M. Griffies Fundamentals of Ocean Climate Models (2004) Princeton University Press
  4. S.M. Griffies: Elements of MOM (2012)


top