PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module ocean_submesoscale_mod

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


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

ocean_submesoscale_init:
submeso_restrat:
compute_bldepth:
tracer_derivs:
compute_psi:
compute_transport:
compute_submeso_skewsion:
compute_flux_x:
compute_flux_y:
compute_flux_z:
compute_submeso_advection:
maximum_bottom_w_general:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. ocean_submesoscale_init

    DESCRIPTION
    Initialization for the ocean_submesoscale module.


  2. 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.


  3. compute_bldepth

    DESCRIPTION
    Compute the boundary layer depth and kblt.


  4. tracer_derivs

    DESCRIPTION
    Compute the tracer derivatives: horizontal derivative (constant k-level) and vertical derivative.


  5. 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.



  6. compute_transport

    DESCRIPTION
    Compute the mass transport from submeso


  7. compute_submeso_skewsion

    DESCRIPTION
    Compute tendency from skewsion for submeso.



  8. compute_flux_x

    DESCRIPTION
    Subroutine computes the zonal submesoscale tracer flux component.

    fx has physical dimensions (area*diffusivity*density*tracer gradient)



  9. compute_flux_y

    DESCRIPTION
    Subroutine computes the meridional submesoscale tracer flux component.

    fy has physical dimensions (area*diffusivity*density*tracer gradient)



  10. 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)



  11. compute_submeso_advection

    DESCRIPTION
    Sweby scheme to compute the tendency from advection for submeso. Presently this scheme has problems, and is not usable.



  12. 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

  1. Fox-Kemper, Ferrari, and Hallberg 2008: Parameterization of mixed layer eddies. Part I: theory and diagnosis Journal of Physical Oceanography, in press.
  2. 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.


top