Calculation of the stratification (Source File: stratification.F90)

*INTERFACE:*

subroutine stratification(nlev,buoy_method,dt,cnpar,nub,gamB)

This routine computes the mean potential density, , the mean potential buoyancy, , defined in (33), and the mean buoyancy frequency,

which is based on potential density or buoyancy such that for , the entropy is constant in the whole water column and mixing does not work against buoyancy forces. If GOTM used as a turbulence library in your own three-dimensional model, you have to insure that the computed by you, and passed to the turbulence routines in GOTM, is consistent with the concept of potential density and your equation of state.

The mean potential density is evaluated from the equation of state, (242), according to

where denotes the mean potential temperature, the mean salinity and the mean reference pressure. The buoyancy frequency defined in (38) can be decomposed into contributions due to potential temperature and salinity stratification,

where we introduced the quantities

with the thermal expansion coefficient defined in (244), and

with the saline contraction coefficient defined in (245). It is important to note that in the actual code the reference pressure, , has been replaced by the (approximate) hydrostatic pressure. Only if this dependence is replaced by the constant reference pressure at the surface in the equation of state, see section 8.4, the model is truely based on potential temperature and density. Otherwise, the model is based on in-situ quantities.

Alternatively to the procedure outlined above, depending on the values of the
parameter `buoy_method`, the buoyancy may be calculated by means of the
transport equation (34). This equation then replaces the computation of
and and is only recommended for idealized studies.

*USES:*

use meanflow, only: h,S,T,buoy,rho use meanflow, only: NN,NNT,NNS use meanflow, only: gravity,rho_0 use eqstate, only: eqstate1 IMPLICIT NONE

number of vertical layers integer, intent(in) :: nlev method to compute buoyancy integer, intent(in) :: buoy_method time step (s) REALTYPE, intent(in) :: dt numerical "implicitness" parameter REALTYPE, intent(in) :: cnpar diffusivity of buoyancy (m^2/s) REALTYPE, intent(in) :: nub(0:nlev) non-local buoyancy flux (m^2/s^3) REALTYPE, intent(in) :: gamb(0:nlev)

Original author(s): Karsten Bolding & Hans Burchard $Log: stratification.F90,v $ Revision 1.7 2005-07-18 08:54:33 lars changed docu for html compliance Revision 1.6 2005/06/27 13:44:07 kbk modified + removed traling blanks Revision 1.5 2003/03/28 09:20:35 kbk added new copyright to files Revision 1.4 2003/03/28 08:56:56 kbk removed tabs Revision 1.3 2003/03/10 08:50:07 gotm Improved documentation and cleaned up code Revision 1.2 2001/11/18 11:50:37 gotm Cleaned Revision 1.1.1.1 2001/02/12 15:55:57 gotm initial import into CVS

Karsten Bolding 2012-01-24