PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_pressure_mod

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


OVERVIEW

Compute the hydrostatic pressure and forces from pressure. Includes methods for either Bgrid or Cgrid.

This module computes hydrostatic pressure and the pressure force acting at a velocity point (traditional finite difference approach). This force is used for the linear momentum equation. This module takes account of the vertical coordinate, which determines details of the calculation. This module allows for either Bgrid or Cgrid calculation.


OTHER MODULES USED

       constants_mod
diag_manager_mod
fms_mod
mpp_io_mod
mpp_mod
mpp_domains_mod
ocean_domains_mod
ocean_operators_mod
ocean_parameters_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod
ocean_obc_mod

PUBLIC INTERFACE

ocean_pressure_init:
pressure_force:
press_grad_force_depth_bgrid:
press_grad_force_press_bgrid:
press_grad_force_depth_cgrid:
press_grad_force_press_cgrid:
pressure_in_dbars:
hydrostatic_pressure:
geopotential_anomaly:
press_grad_force_depth_blob:
press_grad_force_press_blob:
pressure_in_dbars_blob:
hydrostatic_pressure_blob:
geopotential_anomaly_blob:


PUBLIC ROUTINES

  1. ocean_pressure_init

    DESCRIPTION
    Initialize the pressure module


  2. pressure_force

    DESCRIPTION
    Compute the horizontal force [Pa=N/m^2] from pressure. Use the traditional approach whereby the pressure force is computed as a finite difference gradient centred at the U-cell point.


  3. press_grad_force_depth_bgrid

    DESCRIPTION
    Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the velocity cell point. Assume B-grid arrangement here. For depth-like vertical coordinates, we exclude surface and applied pressures (i.e., we are computing here the gradient of the baroclinic pressure). The surface and applied pressures are accounted for in the barotropic module. Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzu should be at tau.


  4. press_grad_force_press_bgrid

    DESCRIPTION
    Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the velocity cell corner point. Assume B-grid arrangement here. For pressure-like vertical coordinates, we omit the bottom pressure and bottom geopotential. These pressures are accounted for in the barotropic module. Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzu should be at tau.


  5. press_grad_force_depth_cgrid

    DESCRIPTION
    Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the T-cell face, thus acting on the C-grid velocity components. Assume C-grid arrangement here. For depth-like vertical coordinates, we exclude surface and applied pressures (i.e., we are computing here the gradient of the baroclinic pressure). The surface and applied pressures are included in ocean_barotropic. Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzten should be at time tau.


  6. press_grad_force_press_cgrid

    DESCRIPTION
    Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the T-cell face, thus acting on the C-grid velocity components. Assume C-grid arrangement here. For pressure-like vertical coordinates, we omit the bottom pressure and bottom geopotential; these are handled in ocean_barotropic. Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzu should be at tau.


  7. pressure_in_dbars

    DESCRIPTION
    Compute pressure (dbars) exerted at T cell grid point by weight of water column above the grid point. rho = density in kg/m^3 psurf = surface pressure in Pa= kg/(m*s^2) = hydrostatic pressure at z=0 associated with fluid between z=0 and z=eta_t. Also include pressure from atmosphere and ice, both of which are part of the patm array. This routine is used by ocean_density to compute the pressure used in the equation of state. It is only called when the vertical coordinate is DEPTH_BASED.


  8. hydrostatic_pressure

    DESCRIPTION
    Hydrostatic pressure [Pa=N/m^2=kg/(m*s^2)] at T cell grid points. For GEOPOTENTIAL vertical coordinate, integration is from z=0 to depth of grid point. This integration results in the so-called "baroclinic" pressure. For ZSTAR or ZSIGMA, vertical coordinate, integration is from z=eta to depth of grid point. This is allowed because ZSTAR and ZSIGMA absorb the undulations of the surface height into their definition. If the input density "rho" is an anomoly, the resulting presure will be a hydrostatic pressure anomoly. If "rho" is full density, the presure will be a full hydrostatic pressure.


  9. geopotential_anomaly

    DESCRIPTION
    Geopotential anomaly [m^2/s^2] at T cell grid points. Integration here is from z=-H to depth of grid point. Input should be density anomaly rhoprime = rho-rho0. This function is needed when computing pressure gradient for PRESSURE_BASED vertical coordinates. WARNING: Thickness%method==FINITEVOLUME has been found to be problematic. It remains under development. It is NOT supported for general use.


  10. press_grad_force_depth_blob

    DESCRIPTION
    This routine respects the partition between Eulerian system mass and the Lagrangian system mass associated with the Lagrangian blobs model. The pressure gradient from the total (combined Eulerian and Lagrangian systems) is calculated. Aside from that, the routine is the same as for press_grad_force_depth. Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the velocity cell point. For depth-like vertical coordinates, we exclude surface and applied pressures (i.e., we are computing here the gradient of the baroclinic pressure). Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzu should be at tau.


  11. press_grad_force_press_blob

    DESCRIPTION
    This routine respects the partition between Eulerian system mass and the Lagrangian system mass associated with the Lagrangian blobs model. The pressure gradient from the total (combined Eulerian and Lagrangian systems) system is calculated. Aside from that, the routine is the same as for press_grad_force_press. Compute the force from pressure using a finite difference method to compute the thickness weighted pressure gradient at the velocity cell point. For pressure-like vertical coordinates, we omit the bottom pressure and bottom geopotential. Account is taken of variable partial cell thickness. 1 = dp/dx; 2 = dp/dy Thickness weight since this is what we wish to use in update of the velocity. Resulting thickness weighted pressure gradient has dimensions of Pa = N/m^2 = kg/(m*s^2). Thickness%dzu should be at tau.


  12. pressure_in_dbars_blob

    DESCRIPTION
    This routine respects the partition between Eulerian system mass and the Lagrangian system mass associated with the Lagrangian blobs model. The pressure from the combined system is calculated. Aside from that, the routine is the same as for pressure_in_dbars. Compute pressure (dbars) exerted at T cell grid point by weight of water column above the grid point. rho = density in kg/m^3 psurf = surface pressure in Pa= kg/(m*s^2) = hydrostatic pressure at z=0 associated with fluid between z=0 and z=eta_t. Also include pressure from atmosphere and ice, both of which are part of the patm array. This routine is used by ocean_density to compute the pressure used in the equation of state. It is only called when the vertical coordinate is DEPTH_BASED.


  13. hydrostatic_pressure_blob

    DESCRIPTION
    This routine respects the partition between Eulerian system mass and the Lagrangian system mass associated with the Lagrangian blobs model. The hydrostatic pressure from the combined system is calculated. Aside from that, the routine is the same as for Hydrostatic_pressure. Hydrostatic pressure [Pa=N/m^2=kg/(m*s^2)] at T cell grid points. For GEOPOTENTIAL vertical coordinate, integration is from z=0 to depth of grid point. This integration results in the so-called "baroclinic" pressure. For ZSTAR, vertical coordinate, integration is from z=eta to depth of grid point. This is allowed because ZSTAR absorbs the undulations of the surface height into their definition. If the input density "rho" is an anomoly, the resulting presure will be a hydrostatic pressure anomoly. If "rho" is full density, the presure will be a full hydrostatic pressure.


  14. geopotential_anomaly_blob

    DESCRIPTION
    This routine respects the partition between Eulerian system mass and the Lagrangian system mass associated with the Lagrangian blobs model. The geopotential from the combined system is calculated. Aside from that, the routine is the same as for geopotential_anomaly. Geopotential anomaly [m^2/s^2] at T cell grid points. Integration here is from z=-H to depth of grid point. Input should be density anomaly rhoprime = rho-rho0. This function is needed when computing pressure gradient for PRESSURE_BASED vertical coordinates. WARNING: Thickness%method==FINITEVOLUME has been found to be problematic. It remains under development. It is NOT supported for general use.



NAMELIST

&ocean_pressure_nml

debug_this_module
For debugging.
[logical]
zero_correction_term_grad
For debugging it is often useful to zero the contribution to the pressure gradient that arises from the "correction" term. Implemented only for depth based vertical coordinate models.
[logical]
zero_diagonal_press_grad
For debugging it is often useful to zero the contribution to the pressure gradient that arises from the along k-level gradient. Implemented only for depth based vertical coordinate models.
[logical]
zero_pressure_force
For debugging it is often useful to zero the pressure force to zero.
[logical]
zero_eta_over_h_zstar_pressure
For debugging zstar, we drop any eta/H contribution to the hydrostatic pressure. This is wrong physically, but useful for certain tests.
[logical]


REFERENCES

  1. S.M. Griffies, 2012: Elements of MOM


top