PreTEOS-10 software


Version 3.1 : January, 1997

Neutral Density surfaces are the most natural layer interfaces stratifying the deep ocean circulation. Neutral Density arises as the continuous analogue of discretely defined locally-referenced potential density surfaces, surfaces which have long been recognised as the most sophisticated for deep ocean density stratification. To account for the compressible nature of sea-water, neutral density is a function of both hydrography and geographical position, and as such is much simpler to use than the cumbersome potential density surface method currently in use.

The Neutral Density code comes as a package of MATLAB and/or FORTRAN routines which enable the user to fit neutral density surfaces to arbitrary hydrographic data. The FORTRAN implementation consists of a FORTRAN subroutine which labels a cast of hydrographic data with neutral density, and another subroutine which then finds the positions of specified neutral density surfaces within the water column. The MATLAB implementation consists of two MATLAB functions performing these same operations, only on sections of hydrographic data. Versions are available for Unix workstations running with the NETCDF data archiving library and PC's not running NETCDF. This latter code is suitable for compilation on Unix workstations or other machines not running the NETCDF library. The MATLAB version for the Microsoft Windows (32 bit) does not require compilation of the underlying FORTRAN code, unlike the UNIX version of the code. All code comes with documentation in the form of Readme files, as well as Makefiles and examples to provide check values for the user.


Jackett, David R., Trevor J. McDougall, 1997: A Neutral Density Variable for the World's Oceans. J. Phys. Oceanogr., 27, 237–263. doi: 10.1175/1520-0485(1997)0272.0.CO;2

Note that a short summary of this paper appeared in International WOCE Newsletter, 1995, Vol.19, 30-33.


The use of density surfaces in the analysis of oceanographic data and in models of the ocean circulation is widespread. The present best method of fitting these isopycnal surfaces to hydrographic data is based on a linked sequence of potential density surfaces referred to a discrete set of reference pressures. This method is both time consuming and cumbersome in its implementation. In this paper the authors introduce a new density variable, Neutral Density γn, which is a continuous analog of these discretely referenced potential density surfaces. The level surfaces of γn form neutral surfaces, which are the most appropriate surfaces within which an ocean model's calculations should be performed or analyzed. The authors have developed a computational algorithm for evaluating γn from a given hydrographic observation so that the formation of Neutral Density surfaces requires a simple call to a computational function. Neutral Density is of necessity not only a function of the three state variables: salinity, temperature, and pressure, but also of longitude and latitude. The spatial dependence of γn is achieved by accurately labeling a global hydrographic dataset with neutral density. Arbitrary hydrographic data can then be labeled with reference to this global γn field. The global dataset is derived from the Levitus climatology of the world's oceans, with minor modifications made to ensure static stability and an adequate representation of the densest seawater. An initial field of γn is obtained by solving, using a combination of numerical techniques, a system of differential equations that describe the fundamental neutral surface property. This global field of γn values is further iterated in the characteristic coordinate system of the neutral surfaces to reduce any errors incurred during this solution procedure and to distribute the inherent path-dependent error associated with the definition of neutral surfaces over the entire globe. Comparisons are made between neutral surfaces calculated from γn and the present best isopycnal surfaces along independent sections of hydrographic data. The development of this neutral density variable increases the accuracy of the best-practice isopycnal surfaces currently in use but, more importantly, provides oceanographers with a much easier method of fitting such surfaces to hydrographic data.

Code and documentation

Code and documentation for neutral density are available for

January, 1997

Fortran/Matlab using netcdf

Fortran using random access files for compilation on any machine

Matlab with pre-compiled Fortran for Windows (32-bit) or Linux

10th March, 2017

(bug fix 18th June, 2019)

Installation instructions for matlab only code

Download Matlab only code, no compilation required, will run on any machine.

Corresponding author address:

Professor Trevor J. McDougall
School of Mathematics and Statistics
University of New South Wales
Sydney NSW 2052