PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_nphysics_new_mod

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


OVERVIEW

Compute the effects of neutral physics processes (neutral diffusion and neutral skew-diffusion).

Compute the effects of neutral physics processes (neutral diffusion and neutral skew-diffusion).


OTHER MODULES USED

              constants_mod
fms_mod
fms_io_mod
mpp_mod
mpp_domains_mod
ocean_domains_mod
ocean_nphysics_util_new_mod
ocean_nphysics_flux_mod
ocean_nphysics_tensor_mod
ocean_nphysics_skew_mod
ocean_nphysics_diff_mod
ocean_operators_mod
ocean_parameters_mod
ocean_types_mod
ocean_util_mod

PUBLIC INTERFACE

ocean_nphysics_new_init:
register fields:
neutral_physics_new:
tracer_gradients:
density_calculations:
gradrho:
adjust_drhodz:
neutral_slopes:
neutral_blayer:
ocean_nphysics_new_restart:
ocean_nphysics_new_end:


PUBLIC ROUTINES

  1. ocean_nphysics_new_init

    DESCRIPTION
    Initialises diagnostics, namelists and constants.


  2. register fields

    DESCRIPTION
    Register diagnostic fields.


  3. neutral_physics_new

    DESCRIPTION
    This public interface computes the effects of neutral physics processes (neutral diffusion and neutral skew-diffusion). --Returns rossby_radius for use in lapgen_friction module. --Returns gm_diffusivity for use in visc_form_drag module --Updates the value of T_prog(n)%th_tendency with the explicit thickness weighted tendency due to neutral physics and also T_prog(n)%K33_implicit with the implicit component.


  4. tracer_gradients

    DESCRIPTION
    Compute the tracer derivatives. G(2004) 16.58 dTdx(i) = (T(i+1) - T(i))/dxte dTdT(j) = (T(j+1) - T(j))/dytn dTdz(k) = (T(k) - T(k+1))/dzwt Horizontal derivatives are taken along surfaces of constant vertical coordinate (constant k-level) This approach ensures that when neutral physics defaults to "horizontal" physics next to boundaries, it will do so as horizontal, defined along surfaces of constant s-surfaces, and so will not generate spurious extrema. Additionally, when using generalized vertical coordinates, the neutral diffusion slope should be computed relative to the s-surfaces. The skew diffusion slope should ideally be computed with respect to z-surfaces, as z-surfaces define available potential energy. However, when s and z surfaces are reasonably close, as they are in the interior for zstar and pstar vertical coordinates, then we choose to to dissipate thickness as defined relative to the zstar or pstar surfaces. This should not be such a big deal, and it is certainly easier computationally than worrying about computing two separate sets of slopes. More on this detail is discussed in "Elements of MOM". NOTE: This approach is not appropriate for sigma-models. Indeed, many assumptions in the neutral physics modules need to be rethought for terrain following vertical coordinates.


  5. density_calculations

    DESCRIPTION
    This subroutine computes a number of values based on the density gradient. These are the neutral slope vector, the neutral buoyancy frequency, gravity wave speed, Rossby radius and boundary layer depth.


  6. gradrho

    DESCRIPTION
    Calculate the raw density gradients. No smoothing or limiting applied here.


  7. adjust_drhodz

    DESCRIPTION
    Comments about smoothing drhodz: 1/ Tests in coupled 1-degree model showed extreme sensitivity of MOC to smoothing. GFDL users generally do NOT smooth, hence the default drhodz_smooth_vert=drhodz_smooth_horz=.false. 2/ Smoothing the vertical derivative of drhodz helps produce a regularized (i.e., well behaved) neutral slope vector. 3/ An attempt was made to smooth dTdz and dSdz rather than drhodz. The resulting slope was smooth, but not as smooth as when acting on drhodz itself.


  8. neutral_slopes

    DESCRIPTION
    Compute the neutral slope vector along with its magnitude. The neutral slope vector is defined as -grad_h(rho)/(drho/dz).


  9. neutral_blayer

    DESCRIPTION
    Locate the vertical index of the neutral boundary layer. This layer is defined as the point where the magnitude of the neutral slope vector first drops below smax, when searching down from the surface.


  10. ocean_nphysics_new_restart

    DESCRIPTION
    Write out the restart data for this module


  11. ocean_nphysics_new_end

    DESCRIPTION
    Writes out the restart data.



NAMELIST

&ocean_nphysics_new_nml

use_this_module
Must be set .true. to use this module. Default use_this_module = .false.
[logical]
drhodz_smooth_vert
For smoothing vertical density gradient before computing neutral slope. Exercise caution if using this option. Default drhodz_smooth_vert=.false.
[logical]
drhodz_smooth_horz
For smoothing vertical density gradient before computing neutral slope. Exercise caution if using this option. Default drhodz_smooth_horz=.false.
[logical]
smax
Slope maximum parameter for setting behaviour of neutral physics. Default smax=0.01.
[real]
vel_micom_smooth
For horizontal smoothing of drhodz before computing neutral slopes. Default vel_micom_smooth=0.2.
[real, units: m/s]


REFERENCES

  1. S.M. Griffies Fundamentals of Ocean Climate Models (FOCM) (2004) Princeton University Press
  2. S.M. Griffies, Elements of MOM (2012)


top