approximate isopycnal geostrophic streamfunction 
(75-term equation)



geo_strf_isopycnal = gsw_geo_strf_isopycnal(SA,CT,p,p_ref,Neutral_Density,p_Neutral_Density,A)


Calculates the approximate isopycnal geostrophic streamfunction as 
defined in McDougall-Klocker (2010)  (see Eqn. (3.30.1) of IOC et al. (2010)).
This is the geostrophic streamfunction for the difference between the 
horizontal velocity at the pressure concerned, p, and the horizontal 
velocity at the reference pressure, p_ref.  It is designed to be used as
the geostrophic streamfunction in an approximately neutral surface (such
as a Neutral Density surface, a potential density surface or an omega 
surface (Klocker et al., 2009)).  Reference values of Absolute Salinity,
Conservative Temperature and pressure are found by interpolation of a 
one-dimensional look-up table, with the interpolating variable being 
Neutral_Density (gamma_n).  This function calculates specific volume 
anomaly using the computationally efficient 75-term expression for 
specific volume (Roquet et al., 2015).
The first three input arguments are a series of vertical profiles.  The 
fourth argument, p_ref, is the reference pressure to which the stream
function is referenced.  When p_ref is zero, gsw_geo_strf_isopycnal 
returns the isopycnal geostrophic streamfunction with respect to the sea
surface, otherwise, the function returns the geostrophic streamfunction 
with respect to the (deep) reference pressure p_ref.  The last three 
arguments pertain to the (usually relatively few) surfaces on which the 
isopycnal geostrophic streamfunction is to be calculated.  The two input
arguments, Neutral_Density and p_Neutral_Density, are the Neutral 
Density label and the pressure of each of the (usually relatively few) 
surfaces.  p_Neutral_Density is the series of pressures where the 
surfaces intersect the vertical profiles.  These surfaces do not have to
be the very best approximately neutral surfaces; rather the onus is on 
the user to use a surface that is sufficiently neutral for their 
purpose.  The input variable "Neutral_Density" is used to find reference
values of SA, CT and p by vertcal interpolation down a single reference 
cast.  As an alternative to the user supplying Neutral Density for this 
purpose, the code allows for sigma_2 to be used as the vertical 
interpolating variable instead of Neutral Density.     
Click for a more detailed description of the
approximate isopycnal geostrophic streamfunction.


SA    =  Absolute Salinity                                      [ g/kg ]
CT    =  Conservative Temperature                              [ deg C ]
p     =  sea pressure                                           [ dbar ]
         ( i.e. absolute pressure - 10.1325 dbar )
p_ref =  reference pressure                                     [ dbar ]
         ( i.e. reference absolute pressure - 10.1325 dbar )
Neutral_Density   =  Neutral Density anomaly                  [ kg/m^3 ]
                     ( i.e. Neutral Density minus 1000 kg/m^3 )
p_Neutral_Density =  pressure of the Neutral_Density surface.
A            =  if nothing is entered the programme defaults to "Neutral
                Density" as the vertical interpolating variable. 
             =  's2' or 'sigma2', for sigma_2 as the vertical interpolating
SA & CT need to have the same dimensions.
p may have dimensions Mx1 or 1xN or MxN, where SA & CT are MxN.
p_ref needs to be a unique value, it can have dimensions Mx1 or 1xN or
Neutral_Density & p_Neutral_Density need to have the same dimensions,
and they need to have dimensions BxN, where B is the number of surfaces.


geo_strf_isopycnal = isopycnal geostrophic streamfunction    [ m^2/s^2 ]
                     as defined by McDougall & Klocker (2010)       


For each oceanographic profile consisting of (SA, CT, p)
SA = [34.7118; 34.8915; 35.0256; 34.8472; 34.7366; 34.7324;]
CT = [28.8099; 28.4392; 22.7862; 10.2262;  6.8272;  4.3236;]
p =  [     10;      50;     125;     250;     600;    1000;]
p_ref = 1000;
Both the "Neutral_Density" and the pressure of each of the neutral
density surfaces needs to be pre-computed and supplied. In this 
example we are interested in only two neutral surfaces 
(26.7 & 27.8 kg/m^3)
Neutral_Density   = [26.7; 27.8;]
p_Neutral_Density = [ 650;  810;]
geo_strf_isopycnal = ...
geo_strf_isopycnal =


Trevor McDougall and Paul Barker                    [ ]


3.06.12 (15th June, 2020)


IOC, SCOR and IAPSO, 2010: The international thermodynamic equation of
 seawater - 2010: Calculation and use of thermodynamic properties.
 Intergovernmental Oceanographic Commission, Manuals and Guides No. 56,
 UNESCO (English), 196 pp.  Available from the TEOS-10 web site.
  See section 3.30 of this TEOS-10 Manual.
Jackett, D. R. and T. J. McDougall, 1997: A neutral density variable
 for the world’s oceans. Journal of Physical Oceanography, 27, 237-263.
Klocker, A., T. J. McDougall and D. R. Jackett, 2009: A new method
 for forming approximately neutral surfaces.  Ocean Sci., 5, 155-172.
McDougall, T. J. and A. Klocker, 2010: An approximate geostrophic
 streamfunction for use in density surfaces.  Ocean Modelling, 32,
  The McDougall-Klocker geostrophic streamfunction is defined in
  Eqn. (62) of this paper.
McDougall, T.J., D.R. Jackett, D.G. Wright and R. Feistel, 2003: 
 Accurate and computationally efficient algorithms for potential 
 temperature and density of seawater.  J. Atmosph. Ocean. Tech., 20,
 pp. 730-741.
Roquet, F., G. Madec, T.J. McDougall and P.M. Barker, 2015: Accurate
 polynomial expressions for the density and specific volume of seawater 
 using the TEOS-10 standard.  Ocean Modelling, 90, pp. 29-43.
The software is available from