[cdftools] 14/228: JMM add latex documentation in DOC directory. Valid for both user guide and programmer guide.
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jun 12 08:21:23 UTC 2015
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch master
in repository cdftools.
commit 178bf33ea5ef1111cac83c2c9694d2b634fab7e1
Author: molines <molines at 1055176f-818a-41d9-83e1-73fbe5b947c5>
Date: Fri Mar 5 11:42:39 2010 +0000
JMM add latex documentation in DOC directory. Valid for both user guide and programmer guide.
git-svn-id: http://servforge.legi.grenoble-inp.fr/svn/CDFTOOLS/trunk@290 1055176f-818a-41d9-83e1-73fbe5b947c5
---
DOC/Makefile | 38 +
DOC/cdftools_prog.pdf | Bin 130318 -> 0 bytes
DOC/cdftools_prog.tex | 831 ++++++++++++++
DOC/cdftools_user.pdf | Bin 327764 -> 0 bytes
DOC/cdftools_user.tex | 2926 +++++++++++++++++++++++++++++++++++++++++++++++++
DOC/chkguide.ksh | 42 +
DOC/chkuserdone.ksh | 33 +
DOC/template.tex | 13 +
8 files changed, 3883 insertions(+)
diff --git a/DOC/Makefile b/DOC/Makefile
new file mode 100644
index 0000000..be3f817
--- /dev/null
+++ b/DOC/Makefile
@@ -0,0 +1,38 @@
+# $Rev: 26 $
+# $Id: Makefile 26 2007-11-22 15:54:13Z molines $
+# $Date: 2007-11-22 16:54:13 +0100 (Thu, 22 Nov 2007) $
+#-----------------------------------------------------------
+TEX=latex
+CDFTOOLS=cdftools
+CDFTOOLS_dev=/home/molines/DEV/CDFTOOLS_dev
+CDFTOOLSDIR=CDFTOOLS_2.1
+
+all: $(CDFTOOLS)_prog.dvi $(CDFTOOLS)_user.dvi index
+
+$(CDFTOOLS).dvi: $(CDFTOOLS).tex
+
+index: $(CDFTOOLS)_prog.dvi $(CDFTOOLS)_user.dvi
+ makeindex $(CDFTOOLS)_user.idx
+ makeindex $(CDFTOOLS)_prog.idx
+
+#pdf: $(CDFTOOLS)_user.pdf $(CDFTOOLS)_prog.pdf
+
+pdf: $(CDFTOOLS)_user.tex $(CDFTOOLS)_prog.tex
+ pdflatex $(CDFTOOLS)_user.tex
+ pdflatex $(CDFTOOLS)_prog.tex
+
+# to force recompilation of tex file when index is updated
+touch:
+ touch *.tex
+
+clean:
+ \rm -f *.dvi *.log *.aux *~ *.idx *.ind *.ilg *.toc
+
+commit:
+ svn ci
+
+web: pdf
+ hevea $(CDFTOOLS)_user.tex
+ scp $(CDFTOOLS)_user.html molines at meolipc:/var/www/web/CDFTOOLS/cdftools-2.1.html
+ scp $(CDFTOOLS)_user.hind molines at meolipc:/var/www/web/CDFTOOLS/cdftools-2.1.hind
+ scp $(CDFTOOLS)_user.pdf molines at meolipc:/var/www/web/CDFTOOLS/cdftools-2.1.pdf
diff --git a/DOC/cdftools_prog.pdf b/DOC/cdftools_prog.pdf
deleted file mode 100644
index b9f3653..0000000
Binary files a/DOC/cdftools_prog.pdf and /dev/null differ
diff --git a/DOC/cdftools_prog.tex b/DOC/cdftools_prog.tex
new file mode 100644
index 0000000..42f1ec7
--- /dev/null
+++ b/DOC/cdftools_prog.tex
@@ -0,0 +1,831 @@
+\documentclass[a4paper,11pt]{article}
+\usepackage[latin1]{inputenc}
+\usepackage{makeidx}
+\makeindex
+% to use index, after a first compilation, run makeindex *.idx file
+% then command \printindex will incorporate the index in the latex file.
+%Check if we are compiling under latex or pdflatex
+ \ifx\pdftexversion\undefined
+ \usepackage[dvips]{graphicx}
+ \else
+ \usepackage[pdftex]{graphicx}
+ \fi
+\setlength{\textwidth}{16.5 cm}
+\setlength{\textheight}{23.5 cm}
+\topmargin 0 pt
+\oddsidemargin 0 pt
+\evensidemargin 0 pt
+%
+\begin{document}
+\newcommand{\etal}{{\it et al.}}
+\newcommand{\DegN}{$^{\circ}$N}
+\newcommand{\DegW}{$^{\circ}$W}
+\newcommand{\DegE}{$^{\circ}$E}
+\newcommand{\DegS}{$^{\circ}$S}
+\newcommand{\Deg}{$^{\circ}$}
+\newcommand{\DegC}{$^{\circ}$C}
+\newcommand{\DS}{ \renewcommand{\baselinestretch}{1.8} \tiny \normalsize}
+\newcommand{\ST}{ \renewcommand{\baselinestretch}{1.2} \tiny \normalsize}
+\newcommand{\ao}{add\_offset}
+\newcommand{\SF}{scale\_factor}
+
+\title{CDFTOOLS: a fortran 90 package of programs and libraries for diagnostic
+of the DRAKKAR OPA9 output.\\
+Part II : Programmer guide}
+
+\author{J.M. Molines \thanks{Laboratoire des Ecoulements G\'eophysiques et Industriels, CNRS UMR 5519, Grenoble, France}\ }
+
+
+\date{Last update: $ $Rev: 14 $ $ $ $Date: 2007-04-17 18:30:39 +0200 (Tue, 17 Apr 2007) $ $ }
+
+\maketitle
+\section*{Introduction}
+This document is a technical description of the different functions and subroutines which belong to cdfio.f90 and eos.f90 fortran 90 modules.
+They are used basically in the core of the cdftools program either to perform the Netcdf I/O or to compute the equation of state for sea water.
+
+\section{ cdfio module}
+\subsection*{\underline{ TYPE variable}}
+\addcontentsline{toc}{subsection}{TYPE variable}
+\index{TYPE variable}
+\begin{description}
+\item[Structure:] We defined a derived type for managing the variables attribute. It is defined as follow:
+\begin{small}
+\begin{verbatim}
+ TYPE, PUBLIC :: variable
+ character(LEN=80):: name
+ character(LEN=80):: units
+ real(kind=4) :: missing_value
+ real(kind=4) :: valid_min
+ real(kind=4) :: valid_max
+ real(kind=4) :: scale_factor=1.
+ real(kind=4) :: add_offset=0.
+ real(kind=4) :: savelog10=0.
+ character(LEN=80):: long_name
+ character(LEN=80):: short_name
+ character(LEN=80):: online_operation
+ character(LEN=80):: axis
+ character(LEN=80):: precision='r4' ! possible values are i2, r4, r8
+ END TYPE variable
+\end{verbatim}
+\end{small}
+\item[Purpose:] This is used in the cdftools to avoid the former 'att.txt' file which held the variable attributes. Now, each
+ program needing variables output in a netcdf file, must use a structure (or an array of structure) defining the name and attributes
+ of the variable. This structure or array of structure is passed as argument to the following functions: {\tt createvar, putatt, getvarname}
+\item[Example:] Self explaining example from cdfpvor.f90:
+\begin{small}
+\begin{verbatim}
+....
+ TYPE(variable), DIMENSION(3) :: typvar !: structure for attribute
+....
+ ! define variable name and attribute
+ typvar(1)%name= 'vorelvor' ; typvar(2)%name= 'vostrvor'; typvar(3)%name= 'vototvor'
+ typvar%units='kg.m-4.s-1' ; typvar%missing_value=0.
+ typvar%valid_min= -1000. ; typvar%valid_max= 1000.
+ typvar(1)%long_name='Relative_component_of_Ertel_PV'
+ typvar(2)%long_name='Stretching_component_of_Ertel_PV'
+ typvar(3)%long_name='Ertel_potential_vorticity'
+ typvar(1)%short_name='vorelvor'; typvar(2)%short_name='vostrvor'
+ typvar(3)%short_name='vototvor'
+ typvar%online_operation='N/A'; typvar%axis='TZYX'
+ ncout =create(cfileout, cfilet, npiglo,npjglo,npk)
+ ierr= createvar (ncout ,typvar,3, ipk,id_varout )
+ ierr= putheadervar(ncout, cfilet,npiglo,npjglo,npk)
+ ....
+\end{verbatim}
+\end{small}
+\end{description}
+
+\newpage
+\subsection*{\underline{ INTERFACE putvar}}
+\addcontentsline{toc}{subsection}{INTERFACE putvar}
+\index{INTERFACE putvar}
+\begin{description}
+\item[Generic interface]
+\begin{small} \begin{verbatim}
+ INTERFACE putvar
+ MODULE PROCEDURE putvarr4, putvari2, putvarzo
+ END INTERFACE
+\end{verbatim} \end{small}
+\item[Purpose:] This generic interface re-direct putvar call to either putvarr4 for real*4 input array, putvari2 for integer*2 input array, or
+to putvarzo for degenerated 3D-2D arrays corresponding to zonal integration. It also redirect putvar to the reputvarr4 function, which allows to
+rewrite a variable in an already existing file.
+\item[Example:]
+ierr = putvar(ncout, id\_varout(jvar) ,i2d, jk, npiglo, npjglo) \\
+... \\
+ierr = putvar(ncout, id\_varout(jvar) ,sal, jk, npiglo, npjglo) \\
+Example for reputvarr4 \\
+istatus=putvar(cfile,'Bathymetry',jk,npiglo,npjglo, kimin=imin, kjmin=jmin, ptab)
+
+
+\end{description}
+
+
+\subsection*{\underline{ FUNCTION closeout(kout )}}
+\addcontentsline{toc}{subsection}{closeout}
+\index{closeout}
+\begin{description}
+\item[Arguments:]
+INTEGER, INTENT(in) :: kout. Netcdf ID of the file to be closed.
+\item[Purpose:] Close an open netcdf file, specified by its ID
+\item[Example:] istatus = closeout(ncout)
+\end{description}
+
+\subsection*{\underline{ FUNCTION ncopen(cdfile) }}
+\addcontentsline{toc}{subsection}{ncopen}
+\index{ncopen}
+\begin{description}
+\item[Arguments:]
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! file name \\
+ INTEGER :: ncopen ! return status
+\item[Purpose:] open file cdfile and return file ID
+\item[Example:] ncid=ncopen('ORCA025-G70\_y1956m05d16\_gridU.nc')
+\item[Remark:] This function is usefull for editing an existing file. The return ncid can be used as the first argument of
+ put var, for instance.
+\end{description}
+
+\subsection*{\underline{ FUNCTION copyatt(cdvar, kidvar, kcin, kcout )}}
+\addcontentsline{toc}{subsection}{copyatt}
+\index{copyatt}
+\begin{description}
+\item[Arguments:] \ \\
+CHARACTER(LEN=*), INTENT(in) :: cdvar !: Name of the variable \\
+INTEGER,INTENT(in) :: kidvar !: var id of variable cdvar \\
+INTEGER,INTENT(in) :: kcin !: ncid of the file where to read the attributes \\
+INTEGER,INTENT(in) :: kcout !: ncid of the output file.
+INTEGER :: copyout !: function return value: return an error status.
+\item[Purpose:] Copy all the attributes for one variable, taking the example from another file, specified by its
+ncid. Return the status of the function. If $\neq$ 0, indicates an error.
+\item[Example:] \ \\
+\begin{verbatim}
+ istatus = NF90\_DEF\_VAR(icout,'nav\_lon',NF90\_FLOAT,nvdim(1:2),id\_lon)
+ istatus = copyatt('nav\_lon',id\_lon,ncid,icout)
+\end{verbatim}
+\item[Remark:] This function is used internally to cdfio, in the function create.
+\end{description}
+\newpage
+
+\subsection*{\underline{ FUNCTION create(cdfile, cdfilref ,kx,ky,kz, cdep) }}
+\addcontentsline{toc}{subsection}{create}
+\index{create}
+\begin{description}
+\item[Arguments:]\ \\
+CHARACTER(LEN=*), INTENT(in) :: cdfile !: name of file to create \\
+CHARACTER(LEN=*), INTENT(in) :: cdfilef !: name of file used as reference for attributes \\
+INTEGER,INTENT(in) :: kx, ky, kz !: value of the dimensions x, y and z (depth) \\
+CHARACTER(LEN=*), OPTIONAL, INTENT(in) :: cdep !: name of depth variable if differs from cdfile\\
+INTEGER :: create !: function return value : the ncid of created variable.
+\item[Purpose:] Create a netcdf file (IOIPSL type) and copy attributes for nav\_lon, nav\_lat, depth and time\_counter
+from the reference file given in argument. It is supposed that the reference file is also IOIPSL compliant. For historical
+reason, there many different names for the depth dimension and variable. If we want to create the new data set with a depth
+name that differs from the reference file, the cdep optional argument can be used.
+The return value of the fuction is the ncid of the file just created.
+\item[Example:] \ \\
+\begin{verbatim}
+ ! create output fileset
+ cfileout='cdfmoy.nc'
+ cfileout2='cdfmoy2.nc'
+ ! create output file taking the sizes in cfile
+
+ ncout =create(cfileout, cfile,npiglo,npjglo,npk)
+ ncout2=create(cfileout2,cfile,npiglo,npjglo,npk)
+\end{verbatim}
+or
+\begin{verbatim}
+ ! create output fileset
+ cfileout='w.nc'
+ ! create output file taking the sizes in cfile
+
+ ncout =create(cfileout, cdfile,npiglo,npjglo,npk,'depthw')
+\end{verbatim}
+
+\end{description}
+\newpage
+
+\subsection*{\underline{ FUNCTION createvar (kout,ptyvar,kvar,kpk, kidvo) }}
+\addcontentsline{toc}{subsection}{createvar}
+\index{createvar}
+\begin{description}
+\item[Arguments:] \ \\
+\begin{small} \begin{verbatim}
+ ! * Arguments
+ INTEGER, INTENT(in) :: kout, kvar
+ INTEGER, DIMENSION(kvar), INTENT(in) :: kpk
+ INTEGER, DIMENSION(kvar), INTENT(out) :: kidvo
+ INTEGER :: createvar
+ TYPE (variable), DIMENSION(kvar) ,INTENT(in) :: ptyvar
+\end{verbatim} \end{small}
+\item[Purpose:] Creates the kvar variables defined by the ptyvar and kpk arrays. Save the varid's in kidvo.
+\item[Example:] \ \\
+\begin{verbatim}
+ ncout =create(cfileout, cfile,npiglo,npjglo,npk)
+ ncout2=create(cfileout2,cfile,npiglo,npjglo,npk)
+
+ ierr= createvar(ncout ,typvar, nvars, ipk, id_varout )
+ ierr= createvar(ncout2, typvar2, nvars, ipk, id_varout2)
+\end{verbatim}
+
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getatt(cdfile,cdvar,cdatt) }}
+\addcontentsline{toc}{subsection}{getatt}
+\index{getatt}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdatt, \& ! attribute name to look for\\
+ \& cdfile, \& ! file to look at\\
+ \& cdvar\\
+ REAL(KIND=4) :: getatt
+\item[Purpose:] Return a REAL value with the values of the attribute cdatt for all the variable cdvar in cdfile
+\item[Example:] \ \\
+\begin{verbatim}
+ ! get missing_value attribute
+ spval = getatt( cfile,'votemper','missing_value')
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvaratt(cdfile,cdvar,cdunits, pmissing\_value, cdlong\_name, cdshort\_name) }}
+\addcontentsline{toc}{subsection}{getvaratt}
+\index{getvaratt}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=80), INTENT(in) :: cdfile, cdvar \\
+ CHARACTER(LEN=80), INTENT(out) :: cdunits, cdlong\_name, cdshort\_name \\
+ REAL(KIND=4), INTENT(out) :: pmissing\_value
+\item[Purpose:] Read standard units, longname. missing\_value and short name atribute for a given variable of a cdf file.
+\item[Example:] \ \\
+\begin{verbatim}
+ ! get variable standard attribute
+ ierr = getvaratt( cfile,'votemper',cunit, spval, clongname, cshortname)
+\end{verbatim}
+\end{description}
+
+\subsection*{\underline{FUNCTION getspval (cdfile,cdvar) }}
+\addcontentsline{toc}{subsection}{getspval}
+\index{getspval}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile , \& ! File name to look at
+ \& cdvar ! variable name
+ REAL(KIND=4) :: getspval ! the missing value for cdvar
+\item[Purpose:] Return the SPVAL value of the variable cdvar in cdfile
+\item[Example:] \ \\
+\begin{verbatim}
+ ! get variable standard attribute
+ spval = getspval( cfile,'votemper')
+\end{verbatim}
+\end{description}
+
+\subsection*{\underline{FUNCTION cvaratt(cdfile,cdvar,cdunits, pmissing\_value, cdlong\_name, cdshort\_name) }}
+\addcontentsline{toc}{subsection}{cvaratt}
+\index{cvaratt}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=80), INTENT(in) :: cdfile, cdvar \\
+ CHARACTER(LEN=80), INTENT(in) :: cdunits, cdlong\_name, cdshort\_name \\
+ INTEGER :: cvaratt \\
+ REAL(KIND=4) :: pmissing\_value
+\item[Purpose:] Change standard units, longname. missing\_value and short name atribute for a given variable of a cdf file.
+\item[Example:] \ \\
+\begin{verbatim}
+ ! get variable standard attribute
+ ierr = cvaratt( cfile,'votemper',cunit, spval, clongname, cshortname)
+\end{verbatim}
+\end{description}
+
+
+\newpage
+\subsection*{\underline{FUNCTION getdim (cdfile,cdim\_name,cdtrue,kstatus) }}
+\addcontentsline{toc}{subsection}{getdim}
+\index{getdim}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile , \& ! File name to look at \\
+ \& cdim\_name ! dimension name to look at \\
+ CHARACTER(LEN=80),OPTIONAL, INTENT(out) :: cdtrue ! full name of the read dimension \\
+ INTEGER, OPTIONAL, INTENT(out) :: kstatus ! status of the nf inquire \\
+ INTEGER :: getdim ! the value for dim cdim\_name, in file cdfile
+\item[Purpose:] Return the INTEGER value of the dimension identified with cdim\_name in cdfile
+\item[Example:]\ \\
+\begin{verbatim}
+ npiglo= getdim (cfile,'x')
+ npjglo= getdim (cfile,'y')
+ npk = getdim (cfile,'depth',kstatus=istatus)
+ ....
+ idum=getdim(cdfilref,'depth',cldep) ! return in cldep the name of the dim
+ ! whose 'depth' is used as proxy
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvdim (cdfile,cdvar) }}
+\addcontentsline{toc}{subsection}{getvdim}
+\index{getvdim}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! File name to look at \\
+ CHARACTER(LEN=*), INTENT(inout) :: cdvar ! variable name to look at. \\
+ INTEGER :: getvdim ! number of dim for cdvar \\
+\item[Purpose:] Return the number of dimension for variable cdvar in cdfile.
+
+If $cdvar$ is not found in $cdfile$, then a list a available variables is displayed and the
+user is asked to choose the required one. In this case, $cdvar$ is updated to the choosen
+variable name, and is made available to the calling program.
+
+This function is intended to be used with prognostic variables of the model, which are
+defined in the file either as [TZXY] (3D variable) or as [TXY] (2D variable). The time
+dimension is not considered. Erroneous results are produced if the variables is [ZXY] or [XY].
+
+\item[Example:]\
+\begin{verbatim}
+ ...
+ cvar='variablex'
+ nvdim = getvdim(cfilev,cvar)
+ IF (nvdim == 2 ) nvpk = 1 ! 2D variable ==> 1 level
+ IF (nvdim == 3 ) nvpk = npk ! 3D variable ==> npk levels
+ PRINT *, TRIM(cvar),' has ', nvdim,' dimensions
+ ...
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getipk (cdfile,knvars,cdep) }}
+\addcontentsline{toc}{subsection}{getipk}
+\index{getipk}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! File to look at\\
+ INTEGER, INTENT(in) :: knvars ! Number of variables in cdfile\\
+ CHARACTER(LEN=*), OPTIONAL, INTENT(in) :: cdep ! optional depth dim name\\
+ INTEGER, DIMENSION(knvars) :: getipk ! array (variables ) of levels
+\item[Purpose:]return the number of levels for all the variables in cdfile. Return 0 if the variable in a vector. \\
+ returns npk when 4D variables ( x,y,z,t ) \\
+ returns 1 when 3D variables ( x,y, t ) \\
+ returns 0 when other ( vectors ) \\
+ If cdep argument is present, use it as the depth dimension name (instead of default 'dep')
+\item[Example:]\ \\
+\begin{verbatim}
+ ! ipk gives the number of level or 0 if not a T[Z]YX variable
+ ipk(:) = getipk (cfile,nvars)
+...
+ ipk(:) = getipk (cisofile, nvars, cdep=sigmalevel)
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getnvar (cdfile) }}
+\addcontentsline{toc}{subsection}{getnvar}
+\index{getnvar}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! file to look at \\
+ INTEGER :: getnvar ! return the number of variables \\
+\item[Purpose:] Return the number of variables in cdfile
+\item[Example:]\ \\
+\begin{verbatim}
+ nvars = getnvar(cfile)
+ PRINT *,' nvars =', nvars
+\end{verbatim}
+\end{description}
+
+\subsection*{\underline{ FUNCTION getvarid( cdfile, knvars ) }}
+\addcontentsline{toc}{subsection}{getvarid}
+\index{getvarid}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile \\
+ INTEGER, INTENT(in) :: knvars ! Number of variables in cdfile\\
+ INTEGER, DIMENSION(knvars) :: getvarid
+\item[Purpose:] return a real array with the nvar variable id
+\item[Example:]\ \\
+\begin{verbatim}
+ ...
+ nvars = getnvar(cfile)
+ varid(1:nvars)=getvarid(cfile,nvars)
+ ...
+\end{verbatim}
+\end{description}
+
+
+\newpage
+\subsection*{\underline{FUNCTION getvar (cdfile,cdvar,klev,kpi,kpj,kimin,kjmin,ktime) }}
+\addcontentsline{toc}{subsection}{getvar}
+\index{getvar}
+\begin{description}
+\item[Arguments:]\ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kpi,kpj ! horizontal size of the 2D variable \\
+ INTEGER, OPTIONAL, INTENT(in) :: klev ! Optional variable. If missing 1 is assumed \\
+ INTEGER, OPTIONAL, INTENT(in) :: kimin,kjmin ! Optional : set initial point to get \\
+ INTEGER, OPTIONAL, INTENT(in) :: ktime ! Optional variable. If missing 1 is assumed \\
+ REAL(KIND=4), DIMENSION(kpi,kpj) :: getvar ! 2D REAL 4 holding variable field at klev
+\item[Purpose:] Return the 2D REAL variable cdvar, from cdfile at level klev. \\
+ kpi,kpj are the horizontal size of the 2D variable
+\item[Example:]\ \\
+\begin{verbatim}
+ v2d(:,:)= getvar(cfile, cvarname(jvar), jk ,npiglo, npjglo )
+...
+ jt=25
+ v2d(:,:)= getvar(cfile, cvarname(jvar), jk ,npiglo, npjglo ,ktime=jt)
+\end{verbatim}
+\item[Remark:] The optional keyword ktime is {\bf NOT YET} to be used. ( working on it).
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvarxz (cdfile,cdvar,kj,kpi,kpz,kimin,kkmin,ktime) }}
+\addcontentsline{toc}{subsection}{getvarxz}
+\index{getvarxz}
+\begin{description}
+\item[Arguments:]\ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kpi,kpz ! size of the 2D variable \\
+ INTEGER, INTENT(in) :: kj ! Optional variable. If missing 1 is assumed \\
+ INTEGER, OPTIONAL, INTENT(in) :: kimin,kkmin ! Optional set initial point to get \\
+ INTEGER, OPTIONAL, INTENT(in) :: ktime ! Optional variable. If missing 1 is assumed \\
+ REAL(KIND=4), DIMENSION(kpi,kpz) :: getvarxz ! 2D REAL 4 holding variable x-z slab at kj \\
+\item[Purpose:] Return the 2D REAL variable x-z slab cvar, from cdfile at j=kj \\
+ kpi,kpz are the size of the 2D variable. The time frame can be specified using the optional argument ktime.
+\item[Example:]\ \\
+\begin{verbatim}
+ v2d(:,:)= getvarxz(cfile, cvarname(jvar), jj ,npiglo,npk, imin, kmin )
+ ...
+ v2d(:,:)= getvarxz(cfile, cvarname(jvar), jj ,npiglo,npk, imin, kmin, ktime=jt)
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvaryz (cdfile,cdvar,ki,kpj,kpz,kjmin,kkmin,ktime) }}
+\addcontentsline{toc}{subsection}{getvaryz}
+\index{getvaryz}
+\begin{description}
+\item[Arguments:]\ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kpj,kpz ! size of the 2D variable \\
+ INTEGER, INTENT(in) :: ki ! Optional variable. If missing 1 is assumed \\
+ INTEGER, OPTIONAL, INTENT(in) :: kjmin,kkmin ! Optional set initial point to get \\
+ INTEGER, OPTIONAL, INTENT(in) :: ktime ! Optional variable. If missing 1 is assumed
+ REAL(KIND=4), DIMENSION(kpj,kpz) :: getvaryz ! 2D REAL 4 holding variable x-z slab at kj \\
+\item[Purpose:] Return the 2D REAL variable y-z slab cvar, from cdfile at i=ki \\
+ kpj,kpz are the size of the 2D variable. The time frame can be specified using the optional argument ktime.
+\item[Example:]\ \\
+\begin{verbatim}
+ v2d(:,:)= getvaryz(cfile, cvarname(jvar), ji ,npjglo,npk,jmin,kmin )
+ ...
+ v2d(:,:)= getvaryz(cfile, cvarname(jvar), ji ,npjglo,npk,jmin,kmin, ktime=jt )
+\end{verbatim}
+\end{description}
+\newpage
+
+
+\subsection*{\underline{SUBROUTINE gettimeseries (cdfile, cdvar, kilook, kjlook,klev) }}
+\addcontentsline{toc}{subsection}{gettimeseries}
+\index{gettimeseries}
+\begin{description}
+\item[Arguments:]\ \\
+ IMPLICIT NONE \\
+ CHARACTER(LEN=*),INTENT(in) :: cdfile, cdvar \\
+ INTEGER,INTENT(in) :: kilook,kjlook \\
+ INTEGER, OPTIONAL, INTENT(in) :: klev
+\item[Purpose:] Display a 2 column output ( time, variable) for
+ a given variable of a given file at a given point.
+\item[Example:]\ \\
+\begin{verbatim}
+ CALL gettimeseries(cfile,cvar,ilook,jlook,klev=ilevel)
+...
+ CALL gettimeseries(cfile,cvar,ilook,jlook)
+\end{verbatim}
+\end{description}
+\newpage
+
+
+\subsection*{\underline{FUNCTION getvar1d (cdfile,cdvar,kk,kstatus) }}
+\addcontentsline{toc}{subsection}{getvar1d}
+\index{getvar1d}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kk ! size of 1D vector to be returned \\
+ INTEGER, OPTIONAL, INTENT(out) :: kstatus ! return status concerning the variable existence \\
+ REAL(KIND=4), DIMENSION(kk) :: getvar1d ! real returned vector \\
+\item[Purpose:] Return 1D variable cdvar from cdfile, of size kk
+\item[Example:]\ \\
+\begin{verbatim}
+ tim=getvar1d(cfile,'time_counter',1)
+....
+ z1d=getvar1d(cdfile,'deptht',kpk,idept)
+ IF ( idept /= NF90_NOERR ) THEN
+ z1d=getvar1d(cdfile,'depthu',kpk,idepu)
+ IF ( idepu /= NF90_NOERR ) THEN
+ z1d=getvar1d(cdfile,'depthv',kpk,idepv)
+ IF ( idepv /= NF90_NOERR ) THEN
+ z1d=getvar1d(cdfile,'depthw',kpk,idepv)
+ IF ( idepw /= NF90_NOERR ) THEN
+ PRINT *,' No depth variable found in ', TRIM(cdfile)
+ STOP
+ ENDIF
+ ENDIF
+ ENDIF
+ ENDIF
+\end{verbatim}
+This last example shows how to use the optional argument kstatus in order to figure out which is the real name
+of the depth variable.
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvare3 (cdfile,cdvar,kk) }}
+\addcontentsline{toc}{subsection}{getvare3}
+\index{getvare3}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kk ! size of 1D vector to be returned \\
+ REAL(KIND=4), DIMENSION(kk) :: getvare3 ! return e3 variable form the coordinate file
+\item[Purpose:] Special routine for e3, which in fact is a 1D variable
+ but defined as e3 (1,1,npk,1) in coordinates.nc (!!)
+\item[Example:]\ \\
+\begin{verbatim}
+ gdepw(:) = getvare3(coordzgr, 'gdepw',npk)
+ e3t(:) = getvare3(coordzgr, 'e3t', npk )
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION getvarname (cdfile, knvars,ptypvar) }}
+\addcontentsline{toc}{subsection}{getvarname}
+\index{getvarname}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! name of file to work with \\
+ INTEGER, INTENT(in) :: knvars ! Number of variables in cdfile \\
+ TYPE (variable), DIMENSION (knvars) :: ptypvar ! Retrieve variables attributes
+ CHARACTER(LEN=80), DIMENSION(knvars) :: getvarname ! return an array with the names of the variables
+\item[Purpose:] Return a character array with the knvars variable names, and the ptypvar structure array filled with the attribute
+ read in cdfile
+\item[Example:]\ \\
+\begin{verbatim}
+ cvarname(:)=getvarname(cfile,nvars,typvar)
+ ! typvar is output from getvarname
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION putatt (tyvar,kout,kid) }}
+\addcontentsline{toc}{subsection}{putatt}
+\index{putatt}
+\begin{description}
+\item[Arguments:] \ \\
+ TYPE (variable) ,INTENT(in) :: tyvar
+ INTEGER, INTENT(in) :: kout ! ncid of the output file \\
+ INTEGER, INTENT(in) :: kid ! variable id \\
+ INTEGER :: putatt ! return variable : error code.
+\item[Purpose:] Uses the structure tyvar for setting the variable attributes for kid and write them in file id kout.
+\item[Example:]\ \\
+\begin{verbatim}
+ ! add attributes
+ istatus = putatt(ptyvar(jv), kout,kidvo(jv))
+\end{verbatim}
+\item[Remark:] This is almost an internal routine called by createvar.
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION putheadervar(kout, cdfile, kpi,kpj,kpk,pnavlon, pnavlat,pdep,cdep ) }}
+\addcontentsline{toc}{subsection}{putheadervar}
+\index{putheadervar}
+\begin{description}
+\item[Arguments:] \ \\
+ INTEGER, INTENT(in) :: kout ! ncid of the outputfile (already open ) \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile ! file from where the headers will be copied \\
+ INTEGER, INTENT(in) :: kpi,kpj,kpk ! dimension of nav\_lon,nav\_lat (kpi,kpj), and depht(kpk) \\
+ REAL(KIND=4), OPTIONAL, DIMENSION(kpi,kpj) :: pnavlon, pnavlat ! to get rid of nav\_lon , nav\_lat of cdfile \\
+ REAL(KIND=4), OPTIONAL,DIMENSION(kpk), INTENT(in) :: pdep ! dep array if not on cdfile \\
+ CHARACTER(LEN=*), OPTIONAL, INTENT(in) :: cdep ! optional name of vertical variable \\
+ INTEGER :: putheadervar ! return status
+\item[Purpose:] Copy header variables from cdfile to the already open ncfile (ncid=kout)\\
+If the 2 first optional arguments are given, they are taken for nav\_lon and nav\_lat, instead of those read in file cdfile.
+This is usefull for f-points results whne no basic ''gridF'' files exist. If the third optional argument is given, it is
+taken as the depht(:) array in place of the the depth read in cdfile. If all 3 optional arguments are used, cdfile will
+not be used and a dummy argument can be passed to the function instead. If optional argument cdep is used, it is then used as the name
+for the variable associated with the vertical dimension.
+\item[Example:]\ \\
+\begin{verbatim}
+ ierr= putheadervar(ncout , cfile, npiglo, npjglo, npk)
+ ierr= putheadervar(ncout2, cfile, npiglo, npjglo, npk)
+\end{verbatim}
+or
+\begin{verbatim}
+ ierr= putheadervar(ncout , cfile, npiglo, npjglo, npk, glamf, gphif )
+\end{verbatim}
+or
+\begin{verbatim}
+ ierr= putheadervar(ncout , 'dummy', npiglo, npjglo, npk, glamt, gphit, gdepw )
+\end{verbatim}
+
+\end{description}
+\newpage
+
+\subsection*{\underline{FUNCTION putvar(kout, kid,ptab, klev, kpi, kpj) }}
+\addcontentsline{toc}{subsection}{putvar}
+\index{putvar}
+\begin{description}
+\item[Arguments:] \ \\
+ INTEGER, INTENT(in) :: kout , \& ! ncid of output file \\
+ \& kid ! varid of output variable \\
+ REAL(KIND=4), DIMENSION(kpi,kpj),INTENT(in) :: ptab ! 2D array to write in file \\
+ INTEGER, INTENT(in) :: klev ! level at which ptab will be written \\
+ INTEGER, INTENT(in) :: kpi,kpj ! dimension of ptab \\
+ INTEGER :: putvar ! return status
+\item[Purpose:] copy a 2D level of ptab in already open file kout, using variable kid
+\item[Example:]\ \\
+\begin{verbatim}
+ierr = putvar(ncout, id_varout(jvar) ,rmean, jk, npiglo, npjglo)
+\end{verbatim}
+\item[Remark:] Putvar is a generic interface, as explained above. For the interface with reputvar, the syntax is shown below.
+\end{description}
+
+\subsection*{\underline{FUNCTION reputvarr4 (cdfile,cdvar,klev,kpi,kpj,kimin,kjmin, ktime,ptab) }}
+\addcontentsline{toc}{subsection}{reputvarr4}
+\index{reputvarr4}
+\begin{description}
+\item[Arguments:] \ \\
+ CHARACTER(LEN=*), INTENT(in) :: cdfile, \& ! file name to work with \\
+ \& cdvar ! variable name to work with \\
+ INTEGER, INTENT(in) :: kpi,kpj ! horizontal size of the 2D variable \\
+ INTEGER, OPTIONAL, INTENT(in) :: klev ! Optional variable. If missing 1 is assumed \\
+ INTEGER, OPTIONAL, INTENT(in) :: kimin,kjmin ! Optional variable. If missing 1 is assumed \\
+ INTEGER, OPTIONAL, INTENT(in) :: ktime ! Optional variable. If missing 1 is assumed \\
+ REAL(KIND=4), DIMENSION(kpi,kpj) :: ptab ! 2D REAL 4 holding variable field at klev
+
+\item[Purpose:] Change an existing variable in inputfile
+\item[Example:]\ \\
+\begin{verbatim}
+ierr = putvar(cfile, 'votemper', 4, npiglo,npjglo, kimin=10, kjmin=200, temperature)
+\end{verbatim}
+\item[Remark:] With this function, the input file is modified !
+\end{description}
+
+\newpage
+
+\subsection*{\underline{FUNCTION putvar1d(kout,ptab,kk,cdtype) }}
+\addcontentsline{toc}{subsection}{putvar1d}
+\index{putvar1d}
+\begin{description}
+\item[Arguments:] \ \\
+ INTEGER, INTENT(in) :: kout ! ncid of output file \\
+ REAL(KIND=4), DIMENSION(kk),INTENT(in) :: ptab ! 1D array to write in file \\
+ INTEGER, INTENT(in) :: kk ! number of elements in ptab \\
+ CHARACTER(LEN=1), INTENT(in) :: cdtype ! either T or D (for time or depth) \\
+ INTEGER :: putvar1d ! return status
+\item[Purpose:] Copy 1D variable (size kk) hold in ptab, with id kid, into file id kout
+\item[Example:]\ \\
+\begin{verbatim}
+ ierr=putvar1d(ncout,timean,1,'T')
+ ierr=putvar1d(ncout2,timean,1,'T')
+...
+ istatus = putvar1d(kout,depw(:),kpk,'D')
+\end{verbatim}
+\end{description}
+\newpage
+
+\subsection*{\underline{SUBROUTINE ERR\_HDL(kstatus) }}
+\addcontentsline{toc}{subsection}{ERR\_HDL}
+\index{ERR\_HDL}
+\begin{description}
+\item[Arguments:] \ \\
+INTEGER, INTENT(in) :: kstatus
+\item[Purpose:] Error handler for NetCDF routine. Stop if kstatus indicates error conditions.
+Else indicate the error message.
+\item[Example:]\ \\
+\begin{verbatim}
+ CALL ERR_HDL(istatus)
+\end{verbatim}
+\end{description}
+\newpage
+
+\section{ eos module}
+% FUNCTION eos
+% FUNCTION eosbn2
+\subsection*{\underline{FUNCTION sigma0 ( ptem, psal, kpi,kpj) }}
+\addcontentsline{toc}{subsection}{sigma0}
+\index{sigma0}
+\begin{description}
+\item[Arguments:] \ \\
+ REAL(KIND=4), DIMENSION(kpi,kpj), INTENT(in) :: ptem, psal ! Temperature and Salinity arrays \\
+ INTEGER,INTENT(in) :: kpi,kpj !: dimension of 2D arrays \\
+ REAL(KIND=8), DIMENSION(kpi,kpj) :: sigma0 ! Potential density
+\item[Purpose:] Compute the potential volumic mass (Kg/m3) from potential temperature and
+ salinity fields
+\item[Example:]\ \\
+\begin{verbatim}
+\end{verbatim}
+\end{description}
+
+\subsection*{\underline{FUNCTION sigmai( ptem, psal, pref, kpi,kpj) }}
+\addcontentsline{toc}{subsection}{sigmai}
+\index{sigmai}
+\begin{description}
+\item[Arguments:] \ \\
+ REAL(KIND=4), DIMENSION(kpi,kpj), INTENT(in) :: ptem, psal ! Temperature and Salinity arrays \\
+ REAL(KIND=4), INTENT(in) :: pref !: reference pressure (dbar) \\
+ INTEGER,INTENT(in) :: kpi,kpj !: dimension of 2D arrays \\
+ REAL(KIND=8), DIMENSION(kpi,kpj) :: sigmai ! Potential density a level pref
+\item[Purpose:] Compute the potential volumic mass (Kg/m3) from potential temperature and
+ salinity fields at reference level specified by $pref$.
+\item[Example:]\ \\
+\begin{verbatim}
+\end{verbatim}
+\end{description}
+
+\newpage
+
+\subsection*{\underline{FUNCTION eosbn2 ( ptem, psal, pdep,pe3w, kpi,kpj,kup,kdown )}}
+\addcontentsline{toc}{subsection}{eosbn2}
+\index{eosbn2}
+\begin{description}
+\item[Arguments:] \ \\
+ REAL(KIND=4), DIMENSION(kpi,kpj,2), INTENT(in) :: ptem, psal ! temperature and salinity arrays \\
+ ! (2 levels, only ) \\
+ REAL(KIND=4) :: pdep ! depthw (W points) \\
+ REAL(KIND=4), DIMENSION(kpi,kpj), INTENT(in) :: pe3w ! vertical scale factor at W points \\
+ INTEGER, INTENT(in) :: kpi,kpj ! horizontal size of the grid \\
+ INTEGER, INTENT(in) :: kup,kdown ! index cdfmeannd lower layer \\
+ ! for the actual level \\
+ REAL(KIND=4), DIMENSION(kpi,kpj) :: eosbn2 ! result interpolated at T levels
+
+\item[Purpose:] Compute the local Brunt-Vaisala frequency
+\item[Example:]\ \\
+\begin{verbatim}
+ DO jk = npk-1, 2, -1
+ PRINT *,'level ',jk
+ zmask(:,:)=1.
+ ztemp(:,:,iup)= getvar(cfilet, 'votemper', jk-1 ,npiglo, npjglo)
+ WHERE(ztemp(:,:,idown) == 0 ) zmask = 0
+ zsal(:,:,iup) = getvar(cfilet, 'vosaline', jk-1 ,npiglo,npjglo)
+
+ gdepw(:,:) = getvar(coordzgr, 'gdepw', jk, 1, 1)
+ e3w(:,:) = getvar(coordzgr, 'e3w_ps', jk,1, 1 )
+
+ zwk(:,:,iup) = eosbn2 ( ztemp,zsal,gdepw(1,1),e3w, npiglo,npjglo , &
+ iup,idown)* zmask(:,:)
+ ! now put zn2 at T level (k )
+ WHERE ( zwk(:,:,idown) == 0 )
+ zn2(:,:) = zwk(:,:,iup)
+ ELSEWHERE
+ zn2(:,:) = 0.5 * ( zwk(:,:,iup) + zwk(:,:,idown) ) * zmask(:,:)
+ END WHERE
+
+ ierr = putvar(ncout, id_varout(1) ,zn2, jk, npiglo, npjglo )
+ itmp = idown ; idown = iup ; iup = itmp
+
+ END DO ! loop to next level
+
+\end{verbatim}
+\end{description}
+
+\newpage
+
+\subsection*{\underline{FUNCTION albet ( ptem, psal, pdep, kpi,kpj )}}
+\addcontentsline{toc}{subsection}{albet}
+\index{albet}
+\begin{description}
+\item[Arguments:] \ \\
+ REAL(KIND=4), DIMENSION(kpi,kpj,2), INTENT(in) :: ptem, psal ! temperature and salinity arrays \\
+ ! (2 levels, only ) \\
+ REAL(KIND=4) :: pdep ! depthw (W points) \\
+ INTEGER, INTENT(in) :: kpi,kpj ! horizontal size of the grid \\
+ ! for the actual level \\
+ REAL(KIND=4), DIMENSION(kpi,kpj) :: albet ! result interpolated at T levels
+
+\item[Purpose:] Compute the ratio alpha/beta
+\item[Method:] Use the equation of the OPA code (Mc Dougall, 1987)
+\item[Remark:] This is a function that may be used together with beta for computing the buoyancy flux, from forcing fields.
+\end{description}
+
+\subsection*{\underline{FUNCTION beta ( ptem, psal, pdep, kpi,kpj )}}
+\addcontentsline{toc}{subsection}{beta}
+\index{beta}
+\begin{description}
+\item[Arguments:] \ \\
+ REAL(KIND=4), DIMENSION(kpi,kpj,2), INTENT(in) :: ptem, psal ! temperature and salinity arrays \\
+ ! (2 levels, only ) \\
+ REAL(KIND=4) :: pdep ! depthw (W points) \\
+ INTEGER, INTENT(in) :: kpi,kpj ! horizontal size of the grid \\
+ ! for the actual level \\
+ REAL(KIND=4), DIMENSION(kpi,kpj) :: beta ! result interpolated at T levels
+
+\item[Purpose:] Compute the beta coefficient
+\item[Method:] Use the equation of the OPA code (Mc Dougall, 1987)
+\item[Remark:] This is a function that may be used together with albet for computing the buoyancy flux, from forcing fields.
+\end{description}
+
+\newpage
+
+
+\tableofcontents
+\printindex
+\end{document}
diff --git a/DOC/cdftools_user.pdf b/DOC/cdftools_user.pdf
deleted file mode 100644
index 4504599..0000000
Binary files a/DOC/cdftools_user.pdf and /dev/null differ
diff --git a/DOC/cdftools_user.tex b/DOC/cdftools_user.tex
new file mode 100644
index 0000000..e7ec3ec
--- /dev/null
+++ b/DOC/cdftools_user.tex
@@ -0,0 +1,2926 @@
+\documentclass[a4paper,11pt]{article}
+\usepackage[latin1]{inputenc}
+%\usepackage[a4paper=true,ps2pdf=true,pagebackref=true,breaklinks=true]{hyperref}
+\usepackage{makeidx}
+\makeindex
+% to use index, after a first compilation, run makeindex *.idx file
+% then command \printindex will incorporate the index in the latex file.
+%Check if we are compiling under latex or pdflatex
+ \ifx\pdftexversion\undefined
+ \usepackage[dvips]{graphicx}
+ \else
+ \usepackage[pdftex]{graphicx}
+ \fi
+\setlength{\textwidth}{16.5 cm}
+\setlength{\textheight}{23.5 cm}
+\topmargin 0 pt
+\oddsidemargin 0 pt
+\evensidemargin 0 pt
+%
+\begin{document}
+\newcommand{\etal}{{\it et al.}}
+\newcommand{\DegN}{$^{\circ}$N}
+\newcommand{\DegW}{$^{\circ}$W}
+\newcommand{\DegE}{$^{\circ}$E}
+\newcommand{\DegS}{$^{\circ}$S}
+\newcommand{\Deg}{$^{\circ}$}
+\newcommand{\DegC}{$^{\circ}$C}
+\newcommand{\DS}{ \renewcommand{\baselinestretch}{1.8} \tiny \normalsize}
+\newcommand{\ST}{ \renewcommand{\baselinestretch}{1.2} \tiny \normalsize}
+\newcommand{\ao}{add\_offset}
+\newcommand{\SF}{scale\_factor}
+
+\title{CDFTOOLS: a fortran 90 package of programs and libraries for diagnostic
+of the DRAKKAR OPA9 output.\\
+Part I : User Guide }
+
+\author{J.M. Molines \thanks{Laboratoire des Ecoulements G\'eophysiques et Industriels, CNRS UMR 5519, Grenoble, France}\ }
+
+
+\date{Last update: $ $Rev: 37 $ $ $ $Date: 2009-12-09 17:30:43 +0100 (Wed, 09 Dec 2009) $ $ }
+
+
+\maketitle
+\section*{Introduction}
+This document describes a set of programs written in Fortran 90, used as diagnostic tools for
+NEMO-OPA9 model output. This work has been initialized in the frame of the DRAKKAR project, where
+large model configuration are run. For this reason, a special care has been taken to minimize the
+required amount of memory. Also, most of the programs assume that the data base is DRAKKAR-like,
+which means with one file per snap-shot, cdf variable names etc... Shell scripts are also indicated
+as demo for how to use the programs. The user must carefully check all the variables in the scripts in
+order to ensure the compatibility with its own settings.
+
+The programs are sorted by category: Statistical (means, variance, RMS, EKE, etc ...), transport (mass,
+heat, salt), derived quantities (densities, Brunt Vaisala frequency, potential vorticity) and extracting/information tools
+(vertical profiles, position on the horizontal grid etc ...).
+
+This package is open, and in order to help for new developments, all the netcdf IO (at the IOIPSL standard)
+are collected in a unique module (cdfio.f90) which is used by the programs. In the same way the routines or
+functions concerning the equation of state of sea water are also collected into the module eos.f90.
+Developpers may read part II of this manual which is the programmer guide, where
+functions and subroutines included in these modules are described.
+
+\subsection*{Recently added tools}
+\begin{description}
+\item[cdflspv] : compute large scale potential vorticity (ie without relative vorticity)
+\item[cdfgeo-uv] : compute geostrophic velocities from SSH
+\item[cdfzeromean] : compute a zero-mean field.
+\item[cdfmoyuv cdfmoyuvwt cdfnrjcomp cdfkempemekeepe cdfbti cdfbci] : ask Ang\'elique !
+\item[cdfisopycdep] : compute isoypcnal depths.
+\item[cdfsiginsitu] : compute in situ density.
+\item[cdfsigintegr] : compute integral of a quantity between isopycnal surfaces.
+\item[cdfvertmean] : compute vertical mean of a quantity between 2 horizontal levels.
+\item[cdfpendep] : compute penetration depth (ratio of surface concentration to inventory) for passive tracers.
+\item[cdfmoyt] : Just as cdfmoy but for instance, takes files with monthly fields (12) in it and return a monthly climatology.
+\item[cdflinreg] : Evaluates the linear trend on a time series of intput files, for each variables in the file.
+\item[cdfbuoyflx] : Evaluates the components of the fresh water flux, heat fluxes, and their respective buoyancy flux contribution.
+\item[cdfwflx] : Evaluates the components of the fresh water flux.
+\item[cdfmkmask] : Make a mask file from a standard gridT file using vosaline 0 values.
+\item[cdfspeed] : Compute the modulus of a velocity field (checked for forcing field only).
+\item[cdfmltmask] : Multiply a field by a mask: usefull for masking Levitus or forcing field.
+\item[cdfweight] : A tool to compute a weight file for further colocalisation.
+\item[cdfcoloc] : A tool to colocate model data on observed data, using a weight file fromCompute the modulus of a velocity field (checked for forcing field only).
+\item[cdfbathy] : A tool to modify and tune nemo bathymetry.
+\item[cdfstd] : Compute the standard deviation of variables from a series of files given as input.
+\item[cdfmoy\_annual] : Compute an annual mean from monthly means, applying weights to take into account that monthly mean were not computed
+ with the same amount of data
+\item[cdfclip] : Save functionality than nckss but does not change the order of the variables.
+\item[cdfconvert] : Convert a set of dimg CLIPPER output file to DRAKKAR like netcdf file.
+\item[cdfflxconv] : Convert a set of fluxes dimgfile (Clipper like) to a set of CDF files (Drakkar like )
+\item[cdf16bit] : Convert a standard 32bits model output file into a 16 bit file, using scale\_factor and add\_offset
+\item[cdfvita] : Compute surface ocean velocities components and module on the A-Grid (at T-points) from a opa C-grid input.
+\item[cdfmeanvar] : Compute spatial 3D mean as well as corresponding variance.
+\item[cdfstddevts] : Compute RMS for Temperature and Salinity. (goes together with cdfmoy\_sal2\_temp2).
+\item[cdfmax] : Display min/max for a variable in a file with location.
+\item[cdfmxlheatc] : Compute the Heat Content of the mixed layer ( J/m2).
+\item[cdfmxlsaltc] : Compute the Salt Content of the mixed layer (kg/m2)
+\item[cdfsigtrp] : Compute density class transport across a section.
+\item[cdfzoom] : Show an ASCII representation of a 2D (x-y, x-z or y-z) slab from any variable of an output file.
+\item[cdfmocsig] : Compute the MOC as a function of potential density ($\sigma_1$)
+\item[cdficediags]: Compute sea ice area, extent and volume from an icemod output
+\item[cdfzonalsum] : Compute the zonal sum of the variables in a file, may uses sub basins.
+ (useful for tracer inventory, for instance).
+\end{description}
+
+\newpage
+\section{Statistics}
+\subsection*{\underline{cdfmoy:}}
+\addcontentsline{toc}{subsection}{cdfmoy}
+\index{cdfmoy}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument.
+\item[Usage:] {\em cdfmoy nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_gridT.nc or xxx\_gridU.nc). \
+
+For instance: cdfmoy ORCA025-G32\_y0010m10d??\_gridT.nc will compute the mean 'gridT' file for month 10 of year 10.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, vozocrtx, vomecrty, vovecrtz are saved.
+\item[Remark:] Assumes that land value are set to 0.
+\item[Associated script:] {\em cdfmoy.ll}: This script is used in the DRAKKAR project to calculate monthly means, quarterly
+means and annual means. This is a good example of how to use cdfmoy.\\
+{\em cdfmoy-inter.ll}: This is a variant of the first script to compute inter-annual means.
+\end{description}
+
+\subsection*{\underline{cdfmoyt:}}
+\addcontentsline{toc}{subsection}{cdfmoyt}
+\index{cdfmoyt}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument, not scanning individual files.
+\item[Usage:] {\em cdfmoyt nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_1m\_xxx.nc. \
+
+For instance: cdfmoyt REYNOLDS\_SST\_1m\_1982.nc REYNOLDS\_SST\_1m\_1983.nc will compute a file with the average of the monthly field that are in the input files.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, vozocrtx, vomecrty, vovecrtz, sst are saved.
+\item[Remark:] Assumes that land value are set to 0.
+\end{description}
+
+
+\subsection*{\underline{cdfmoy\_mpp:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_mpp}
+\index{cdfmoy\_mpp}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument. This is a parallel version of cdfmoy (experimental).
+ Paralelization is done across the tags. For the future, it may be probably more interesting do parallelize for the levels...
+\item[Usage:] {\em cdfmoy\_mpp nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_gridT.nc or xxx\_gridU.nc). \
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, vozocrtx, vomecrty, vovecrtz are saved.
+\item[Remark:] Assumes that land value are set to 0.
+\item[Associated script:] none
+\end{description}
+
+
+\subsection*{\underline{cdfmoy\_sp:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_sp}
+\index{cdfmoy\_sp}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument, just as in cdfmoy. The only difference
+is that land value (or missing values) are not necessarily 0. Useful when 0 have a physical meaning.
+\item[Usage:] {\em cdfmoy\_sp nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_gridT.nc or xxx\_gridU.nc). \
+
+For instance: cdfmoy\_sp ORCA025-G32\_y0010m10d??\_gridT.nc will compute the mean 'gridT' file for month 10 of year 10.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, vozocrtx, vomecrty, vovecrtz are saved.
+\item[Remark:]
+\item[Associated scripts:] {\em cdfmoy\_sp.ll}: This is an example where it is necessary to use cdfmoy\_sp instead of
+cdfmoy.
+\end{description}
+
+\subsection*{\underline{cdfmoy\_chsp:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_chsp}
+\index{cdfmoy\_chsp}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument, just as in cdfmoy. The only difference
+is that land value (or missing values) are not necessarily 0. Useful when 0 have a physical meaning. This version takes into account
+missing value from input files, but write results with missing value = 0 (as in drakkar runs). Usefull for reformating MERA data.
+\item[Usage:] {\em cdfmoy\_chsp nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_gridT.nc or xxx\_gridU.nc). \
+
+For instance: cdfmoy\_chsp MERA11\_y0010m10d??\_gridT.nc will compute the mean 'gridT' file for month 10 of year 10.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, vozocrtx, vomecrty, vovecrtz are saved.
+\item[Remark:]
+\item[Associated scripts:] none
+\end{description}
+
+\subsection*{\underline{cdfmoy\_sal2\_temp2:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_sal2\_temp2}
+\index{cdfmoy\_sal2\_temp2}
+\begin{description}
+\item[Purpose:] As cdfmoy above: Compute the mean fields for the file list given in argument but additional quadratic means for temperature
+ and salinity are kept in the output file, if they appear in the input file.
+\item[Usage:] {\em cdfmoy\_sal2\_temp2 nc\_files }
+\item[Input:] A list of homogeneous model output files ({\em e.g.: } xxx\_gridT.nc or xxx\_gridU.nc). \
+
+For instance: cdfmoy ORCA025-G32\_y0010m10d??\_gridT.nc will compute the mean 'gridT' file for month 10 of year 10.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 2 files are produced : {\em cdfmoy.nc} and {\em cdfmoy2.nc}. {\em cdfmoy.nc} holds the mean fields
+for all the variables in the input files. {\em cdfmoy2.nc} holds the quadratic mean of some input variables (not all).
+In the current version, the quadratic mean for sossheig, votemper, vosaline, vozocrtx, vomecrty, vovecrtz are saved.
+\item[Remark:] Assumes that land value have are set to 0. If you have used this tools, it is likely that you want to compute temperature and
+salinity variability. See {\bf cdfstdts} \index{cdfstdevts} for this purpose.
+\item[Associated script:] You can adapt {\em cdfmoy.ll} and other for this case. Its almost the same. Only the content of the {\em cdfmoy2.nc} will differ.
+\end{description}
+
+\subsection*{\underline{cdfmoy\_annual:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_annual}
+\index{cdfmoy\_annual}
+\begin{description}
+\item[Purpose:] Compute the mean fields for the file list given in argument.
+\item[Usage:] {\em cdfmoy\_annual 12 monthly mean files (DRAKKAR like)}
+\item[Input:] A list of homogeneous 12 monthly means.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 1 files are produced : {\tt cdfmoy\_annual.nc}
+\item[Remark:] Assumes that land value are set to 0. This program is usefull for calculating the annual mean from the monthly means
+calculated in DRAKKAR project. In this case, the weight applied to the months are 6 5 7 6 6 6 6 6 6 7. Anne-Marie claims that this
+may change the computation of water mass balances.
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmoyuvwt:}}
+\addcontentsline{toc}{subsection}{cdfmoyuvwt}
+\index{cdfmoyuvwt}
+\begin{description}
+\item[Purpose:] Compute various time mean values for subsequent cdfbci or/and cdfbti.
+\item[Usage:] {\em cdfmoyuvwt config imin imax jmin jmax listoftags }
+\item[Input:] config is the conf-case name of the experiment, imin, imax, jmin, jmax, delimit a zoomed area, list of tags
+ gives the time tags to take into account in the time mean computation. This program assumes that gridT, gridU gridV and gridW
+ files for the given config and tags are present in the current directory.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] 1 files are produced : {\tt moyuvwt.nc} This file contains 11 variables
+ \begin{enumerate}
+ \item {\bf ubar}:temporal mean of u on U point
+ \item {\bf vbar}:temporal mean of v on V point
+ \item {\bf u2bar}: temporal mean of u * u on U point
+ \item {\bf v2bar}: temporal mean of v * v on V point
+ \item {\bf uvbar}: temporal mean of u * v on T point
+ \item {\bf wbar}: temporal mean of w on W point
+ \item {\bf tbar}: temporal mean of T on T point (in K)
+ \item {\bf utbar}: temporal mean of u * T (in K) on T point
+ \item {\bf vtbar}: temporal mean of v * T (in K) on T point
+ \item {\bf t2bar}: temporal mean of T * T (in $K^2$) on T point
+ \item {\bf wtbar}: temporal mean of w * T (in $K$) on T point
+ \end{enumerate}
+\item[Associated script:] none
+\item[Remark]: a cdfmoyuv program also exists, but is obsolete and replaced by this one.
+\item[Author]: An\'elique Melet, ask for details.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmoy\_freq:}}
+\addcontentsline{toc}{subsection}{cdfmoy\_freq}
+\index{cdfmoy\_freq}
+\begin{description}
+\item[Purpose:] Compute time mean just as cdfmoy, but this program is adapted to deal with forcing files. It is designed for instance to compute monthly mean from a 6-hour forcing file
+\item[Usage:] {\em cdfmou\_freq forcing\_file out\_frequency}
+\item[Input:] Forcing file is given as input, and out\_frequency can be either {\em daily}, {\em monthly} or {\em annual}.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] Output netcdf file is cdfmoy\_daily or cdfmoy\_monthly or cdfmoy\_annual depending on the required output frequemcy. It contains the same variables than the input file.
+\item[Remark/bugs :]
+\item[Associated scripts:]
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmean:}}
+\addcontentsline{toc}{subsection}{cdfmean}
+\index{cdfmean}
+\begin{description}
+\item[Purpose:] Compute the mean value of a field, weighted by the local metric. If the variable is a 3D variable,
+the mean value is given for each level, then the global mean is printed. The mean value can be computed on a limited
+domain, specified on the command line.
+\item[Usage:] {\em cdfmean nc\_files nc\_var $T | U | V | F | W$ [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] nc\_file is the name of the netcdf file which hold the variable.
+
+nc\_var is the netcdf variable name for the mean computation. If a wrong or dummy variable is given, the program
+presents the list of available variables in the file, and ask for a choice.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variable nc\_var.
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+For instance: {\tt cdfmean ORCA025-G42\_y0010\_ANNUAL\_gridT.nc votemper T } will compute the mean temperature over
+the whole domain.
+
+ {\tt cdfmean ORCA025-G42\_y0010\_ANNUAL\_gridT.nc xxx T } will ask a variable name from the list of variables contained
+in the file. Careful, the type of point (T U V or F ) is not asked interactively; this is not really a problem as in most
+of the OPA9 output, files are build for each type (gridT, gridU etc...).
+
+ {\tt cdfmean ORCA025-G42\_y0010\_ANNUAL\_gridU.nc vozocrtx U 300 320 400 653 0 0 } will compute the mean U-component
+of the velocity on a horizontally limited area, for the whole water column.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the mean will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate mean values for each level are also
+displayed.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmean-full:}}
+\addcontentsline{toc}{subsection}{cdfmean-full}
+\index{cdfmean-full}
+\begin{description}
+\item[Purpose:] Compute the mean value of a field, weighted by the local metric. If the variable is a 3D variable,
+the mean value is given for each level, then the global mean is printed. The mean value can be computed on a limited
+domain, specified on the command line. This is the -full version (full steps) of cdfmean.
+\item[Usage:] {\em cdfmean-full nc\_files nc\_var $T | U | V | F | W$ [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] nc\_file is the name of the netcdf file which hold the variable.
+
+nc\_var is the netcdf variable name for the mean computation. If a wrong or dummy variable is given, the program
+presents the list of available variables in the file, and ask for a choice.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variable nc\_var.
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+For instance: {\tt cdfmean-full ORCA025-G42\_y0010\_ANNUAL\_gridT.nc votemper T } will compute the mean temperature over
+the whole domain.
+
+ {\tt cdfmean-full ORCA025-G42\_y0010\_ANNUAL\_gridT.nc xxx T } will ask a variable name from the list of variables contained
+in the file. Careful, the type of point (T U V or F ) is not asked interactively; this is not really a problem as in most
+of the OPA9 output, files are build for each type (gridT, gridU etc...).
+
+ {\tt cdfmean-full ORCA025-G42\_y0010\_ANNUAL\_gridU.nc vozocrtx U 300 320 400 653 0 0 } will compute the mean U-component
+of the velocity on a horizontally limited area, for the whole water column.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the mean will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate mean values for each level are also
+displayed.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfsum:}}
+\addcontentsline{toc}{subsection}{cdfsum}
+\index{cdfsum}
+\begin{description}
+\item[Purpose:] Compute the sum value of the field (3D, weighted).
+\item[Usage:] {\em cdfsum nc\_file nc\_var $T| U | V | F | W$ [imin imax jmin jmax kmin kmax] }
+\item[Input:] nc\_file is the name of the netcdf file which hold the variable. nc\_var is the netcdf variable name for the
+sum computation.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variable nc\_var.
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the sum value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+\item[Required mesh\_mask files or other files:] iles mesh\_hgr.nc, mesh\_zgr.nc ,mask.nc
+\item[Output:] done on standard output
+\item[Remark/bugs :] This program can be used for computing inventory, for instance.
+\item[Associated scripts:] none
+\end{description}
+
+\newpage
+
+\newpage
+\subsection*{\underline{cdfzeromean:}}
+\addcontentsline{toc}{subsection}{cdfzeromean}
+\index{cdfzeromean}
+\begin{description}
+\item[Purpose:] Compute the mean value of a field, weighted by the local metric. If the variable is a 3D variable,
+the mean value is given for each level, then the global mean is printed. The mean value can be computed on a limited
+domain, specified on the command line. Then, the overall mean value is rested from the initial field, in order to produce
+a zero-mean field.
+\item[Usage:] {\em cdfzeromean nc\_files nc\_var $T | U | V | F | W$ [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] nc\_file is the name of the netcdf file which hold the variable.
+
+nc\_var is the netcdf variable name for the mean computation. If a wrong or dummy variable is given, the program
+presents the list of available variables in the file, and ask for a choice.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variable nc\_var.
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0. The mean value is computed on this local domain. It is rested from the whole domain in the output file.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the mean will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate mean values for each level are also
+displayed. A netcdf file (zeromean.nc) is created with the zero-meaned variable, same name and attributes, except the long name
+which indicates that the variable has been modified.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfvertmean:}}
+\addcontentsline{toc}{subsection}{cdfvertmean}
+\index{cdfvertmean}
+\begin{description}
+\item[Purpose:] Compute the vertical average of a scalar quantity between z layers
+\item[Usage:] {\em cdfvertmean nc\_file nc\_var $T | U | V | F | W$ z1 z2 } Partial steps.
+\item[Input:] nc\_file is the data file holding 3D variable nc\_var. The user must specify on which grid point type
+this variable is ( $T | U | V | F | W$ ) and the deptht (m) z1 and z2 limiting 2 horizontal layers used for the vertical mean.
+\item[Required mesh\_mask files or other files:] mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] The output is done on the file {\tt vertmean.nc} with the 2D variable (same unit as nc\_var) {\tt sovertmean}
+\item[Remark:]
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmeanvar:}}
+\addcontentsline{toc}{subsection}{cdfmeanvar}
+\index{cdfmeanvar}
+\begin{description}
+\item[Purpose:] This program is very similar to the previous in the list: It computes the mean value of a field, and its
+ spatial variance, weighted by the local metric. If the variable is a 3D variable,
+the mean value and variance are given for each level, then the global mean/variance are printed. The mean/variance values can be
+ computed on a limited domain, specified on the command line.
+\item[Usage:] {\em cdfmeanvar nc\_files nc\_var $T | U | V | F | W$ [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] nc\_file is the name of the netcdf file which hold the variable.
+
+nc\_var is the netcdf variable name for the mean computation. If a wrong or dummy variable is given, the program
+presents the list of available variables in the file, and ask for a choice.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variable nc\_var.
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+For instance: {\tt cdfmeanvar ORCA025-G42\_y0010\_ANNUAL\_gridT.nc votemper T } will compute the mean temperature over
+the whole domain.
+
+ {\tt cdfmeanvar ORCA025-G42\_y0010\_ANNUAL\_gridT.nc xxx T } will ask a variable name from the list of variables contained
+in the file. Careful, the type of point (T U V or F ) is not asked interactively; this is not really a problem as in most
+of the OPA9 output, files are build for each type (gridT, gridU etc...).
+
+ {\tt cdfmeanvar ORCA025-G42\_y0010\_ANNUAL\_gridU.nc vozocrtx U 300 320 400 653 0 0 } will compute the mean U-component
+of the velocity on a horizontally limited area, for the whole water column.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the mean will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate mean values for each level are also
+displayed.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfheatc:}}
+\addcontentsline{toc}{subsection}{cdfheatc}
+\index{cdfheatc}
+\begin{description}
+\item[Purpose:] Compute the heat content for the ocean in a given 3D domain (or the whole domain).
+The heat content (Joules) is computed and given for each levels, then the global heat content (J) is printed, as well as the heat
+content per unit of volume (J/m3). A sub-domain can be specified on the command line.
+\item[Usage:] {\em cdfheatc gridTfiles [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] gridTfile is the name of the netcdf file which holds $votemper$. \\
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+For instance: {\tt cdfheatc ORCA025-G42\_y0010\_ANNUAL\_gridT.nc } will compute the heat content over
+the whole domain.
+
+ {\tt cdfheatc ORCA025-G42\_y0010\_ANNUAL\_gridT.nc 300 320 400 653 0 0 } will compute the heat content
+on a horizontally limited area, for the whole water column.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the heat content will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate values for each level are also
+displayed.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+\subsection*{\underline{cdfheatc-full:}}
+\addcontentsline{toc}{subsection}{cdfheatc-full}
+\index{cdfheatc-full}
+\begin{description}
+\item[Purpose:] Compute the heat content for the ocean in a given 3D domain (or the whole domain).
+The heat content (Joules) is computed and given for each levels, then the global heat content (J) is printed, as well as the heat
+content per unit of volume (J/m3). A sub-domain can be specified on the command line. This is the FULL STEP version
+\item[Usage:] {\em cdfheatc gridTfiles [ imin imax jmin jmax kmin kmax ] }
+\item[Input:] gridTfile is the name of the netcdf file which holds $votemper$. \\
+
+imin imax jmin jmax kmin kmax : optional parameters. If used, all 6 must be specified. They indicate the limited
+area (in i,j,k coordinates) where the mean value will be computed. The user can specify 0 as input, which means that
+the corresponding coordinate will be considered for the whole extent; in this case the pair of coordinates must be set
+to 0.
+
+For instance: {\tt cdfheatc-full ORCA025-G04\_y0010\_ANNUAL\_gridT.nc } will compute the heat content over
+the whole domain.
+
+ {\tt cdfheatc-full ORCA025-G04\_y0010\_ANNUAL\_gridT.nc 300 320 400 653 0 0 } will compute the heat content
+on a horizontally limited area, for the whole water column.
+
+ Other valid specifications for the limited area
+can be, for example : 0 0 400 600 1 15 : the heat content will be computed for the upper 15 levels, for a whole zonal band starting
+at j=400 and ending at j=600.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are printed on the standard output. For 3D fields, intermediate values for each level are also
+displayed.
+\item[Remark/bugs :] In this version, no special care has been taken to handle neither the periodic grids, nor the north folding conditions.
+This will be done in a future release.
+\item[Associated scripts:] {None. This program is more typically an interactive program. As it is written, it can handle grids as big
+as ORCA025 on a small Linux machine (with only 512 Mb of core memory).}
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfmxlheatc-full:}}
+\addcontentsline{toc}{subsection}{cdfmxlheatc-full}
+\index{cdfmxlheatc-full}
+\begin{description}
+\item[Purpose:] Compute the heat content for the ocean in the mixed layer read in the gridT file, FULL STEP case.
+\item[Usage:] {\em cdfmxlheatc-full gridTfile }
+\item[Input:] gridTfile is the name of the netcdf file which holds $votemper$ and $somxl010$ \\
+\item[Required mesh\_mask files or other files:] mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are written in the netcdf file mxlheatc.nc, in the variable $somxlheatc$. Units are Joules/m2
+\end{description}
+
+\subsection*{\underline{cdfmxlsaltc:}}
+\addcontentsline{toc}{subsection}{cdfmxlsaltc}
+\index{cdfmxlsaltc}
+\begin{description}
+\item[Purpose:] Compute the salt content for the ocean in the mixed layer read in the gridT file.
+\item[Usage:] {\em cdfmxlsaltc gridTfile }
+\item[Input:] gridTfile is the name of the netcdf file which holds $votemper$ and $somxl010$ \\
+
+For instance: {\tt cdfmxlsaltc ORCA025-G42\_y0010\_m03d15\_gridT.nc } will compute the salt content in the mixed layer for this file.
+
+\item[Required mesh\_mask files or other files:] mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are written in the netcdf file mxlsaltc.nc, in the variable $somxlsaltc$. Units are kg/m2
+\item[Associated scripts:] {None.}
+\end{description}
+
+\subsection*{\underline{cdfmxlhcsc:}}
+\addcontentsline{toc}{subsection}{cdfmxlhcsc}
+\index{cdfmxlhcsc}
+\begin{description}
+\item[Purpose:] Compute the heat content and Salt content in the mixed layer. One can choose a temperature criteria or a density criteria for the mxl
+ determination. The Heat/Salt content can be limited to a fraction of the MLD (for instance avoiding near surface layers).
+\item[Usage:] {\em cdfmxlhcsc gridTfile crit val [hmin] }
+\item[Input:] gridTfile is the name of the netcdf file which holds $votemper$ \\
+ crit can be 'density' or 'temperature' \\
+ val is tha value for the criteria (e.g. -0.2 for temp, 0.01 or 0.03 for density). \\
+ hmin is 0 by default. If another value is given, then the vertical integral is limited to [hmin,mld]
+
+\item[Required mesh\_mask files or other files:] mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] Results are written in the netcdf file mxlhcsc.nc. Variables are either \\
+ somxl010 (mld based on density criterium 0.01) \\
+ somxl030 (mld on density criterium 0.03) \\
+ somxlt02 (mld on temperature criterium -0.2) \\
+Then always : somxlheatc and somxlsaltc
+\item[Associated scripts:] {None.}
+\end{description}
+
+
+
+\newpage
+\subsection*{\underline{cdfzonalmean:}}
+\addcontentsline{toc}{subsection}{cdfzonalmean}
+\index{cdfzonalmean}
+\begin{description}
+\item[Purpose:] Compute the zonal mean value for all the variables in the file given as argument.
+\item[Usage:] {\em cdfzonalmean nc\_files $T | U | V | F | W$ [ sub\_basin\_mask ]}
+\item[Input:] nc\_file is the name of the netcdf file which hold the variables.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variables in the file.
+
+ sub\_basin\_mask: If given the program read this file to set a sub\_basin\_mask (for global configurations). If this argument
+is not given, then the zonal mean is assumed to be global, which is OK for a basin configuration, such as NATL4, for instance.
+For instance: {\tt cdfzonalmean ORCA025-G42\_y0010\_ANNUAL\_gridT.nc T } will compute the zonal mean temperature over
+the whole domain; the resulting variable is a 2D variable (latitude,depth).
+
+{\tt cdfzonalmean ORCA025-G42\_y0010\_ANNUAL\_gridT.nc T new\_maskglo} will compute the zonal mean of all the variables contained
+in the file. A zonal mean for each sub basin will be output.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] The program outputs as many variables as there are in the input file times the number of sub-basin (5) if the sub-basin
+mask is given. Variables name starts with 'zo' which replaces the 'vo' or 'so' of the input variable. The name of the sub basin is then
+appended to the variable name: For instance, zonal mean for votemper gives (in case of sub-basins) : $zotemper\_glo, zotemper\_atl
+zotemper\_inp, zotemper\_ind zotemper\_pac$.
+\item[Associated scripts:] {None}
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfzonalsum:}}
+\addcontentsline{toc}{subsection}{cdfzonalsum}
+\index{cdfzonalsum}
+\begin{description}
+\item[Purpose:] Compute the zonal sum value for all the variables in the file given as argument.
+\item[Usage:] {\em cdfzonalsum nc\_files $T | U | V | F | W$ [ sub\_basin\_mask ]}
+\item[Input:] nc\_file is the name of the netcdf file which hold the variables.
+
+$ T | U | V | F | W $ : specify the point on the C-grid, corresponding to the variables in the file.
+
+ sub\_basin\_mask: If given the program read this file to set a sub\_basin\_mask (for global configurations). If this argument
+is not given, then the zonal sum is assumed to be global, which is OK for a basin configuration, such as NATL4, for instance.
+For instance: {\tt cdfzonalsum ORCA025-G50\_y1958\_ANNUAL\_ptrcT.nc T } will compute the zonal sum
+of the variables over the whole domain; the resulting variable is a 2D variable (latitude,depth), or just
+a vector (latitude) if the input variable is already a 2D horizontal variable (inventory, for instance).
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc must be in the current directory.
+\item[Output:] The program outputs as many variables as there are in the input file times the number of sub-basin (5) if the sub-basin
+mask is given. Variables name starts with 'zo' which replaces the 'vo' or 'so' of the input variable. The name of the sub basin is then
+appended to the variable name: For instance, zonal sum for votemper gives (in case of sub-basins) : $zotemper\_glo, zotemper\_atl
+zotemper\_inp, zotemper\_ind zotemper\_pac$.
+\item[Associated scripts:] {see cdftrc.ll}
+\item[See also:] cdfzonalout : this a formatting tool to print ASCII results in a good shape for the 1D results produced as ncdf by cdfzonalsum.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfzonalout:}}
+\addcontentsline{toc}{subsection}{cdfzonalout}
+\index{cdfzonalout}
+\begin{description}
+\item[Purpose:] Produce a nice ASCII output for 1D variables resulting from cdfzonalsum, or cdfzonalmean
+\item[Usage:] {\em cdfzonalout zonalsum.nc }
+\item[Input:] zonalsum.nc is a netcdf file output from cdfzonalsum or cdfzonalmean
+\item[Output:] Output is done on stantard output (can be re-directed to a file via $>$)
+\item[Associated scripts:] {see cdftrc.ll}
+\end{description}
+
+\begin{verbatim}
+Number of 1D variables : 6
+ zoinvcfc_glo
+ zoinvc14_glo
+ zoqtrcfc_glo
+ zoqtrc14_glo
+ zoqintcfc_glo
+ zoqintc14_glo
+ npiglo= 1
+ npjglo= 1021
+ npk = 46
+ J LAT zoinvcfc_glo zoinvc14_glo
+ 1021 89.8876 0.114485E-06 1639.13867
+ 1020 89.9478 0.114504E-06 1660.38854
+ 1019 89.8876 0.114485E-06 1639.13867
+ 1018 89.7937 0.112609E-06 1521.98022
+ 1017 89.6954 0.111228E-06 1462.95922
+ 1016 89.5956 0.110859E-06 1355.69262
+ 1015 89.4949 0.109885E-06 1315.38806
+ 1014 89.3935 0.109691E-06 1265.77246
+ 1013 89.2915 0.109644E-06 1211.48840
+ 1012 89.1890 0.108149E-06 1163.96777
+ 1011 89.0860 0.105885E-06 1132.33557
+ 1010 88.9825 0.103872E-06 1096.84130
+ .....
+
+\end{verbatim}
+
+
+\newpage
+\subsection*{\underline{cdfvT:}}
+\addcontentsline{toc}{subsection}{cdfvT}
+\index{cdfvT}
+\begin{description}
+\item[Purpose:] Compute the mean UT, US, VT, VS for transport computation.
+\item[Usage:] {\em cdfvT CONFIG 'list\_of\_tags' }
+\item[Input:] CONFIG is the valid config name ( e.g. ORCA025-G32, NATL4-B01, ORCA05-K18 ...). In general
+model output files are build as \$CONFIG\_\$tag\_grid?.nc. The tag part of the name is usually something like
+y0008m09d10 for instance, but virtually, it is the part of the name between \$CONFIG\_ and \_grid.\\
+list\_of\_tags is just the succession of the tags that are to be used in the mean. \\
+When using cdfvT, we assume that all the data files ( i.e. gridT, gridU and gridV files for the given CONFIG and
+tags) are in the current directory.
+
+For instance: cdfvT ORCA025-G32 y0010m10d01 y0010m10d06 y0010m10d11 will compute the mean UT etc fields for the 3
+given tags.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em vt.nc}. This file contains the four 3-D variables vozout, vozous, vomevt, vomevs.
+\item[Remark:] For the sake of simplicity, only one file is used as output, but one should remember that
+the U-transports (UT and US) are computed at the C-grid U-point, and that the V-transports (VT and VS) are
+ computed at the C-grid V-point. In fact, temperature and salinity are interpolated on the corresponding
+velocity point, in order to respect mass conservation.
+\item[Associated script:] {\em cdfvT.ll}: This script is used in the DRAKKAR project to compute the monthly, quarterly and
+annual means for the UT US VT VS terms.\\
+{\em cdfvT-inter}: This is a variant of the first script for inter-annual means.
+\end{description}
+
+\subsection*{\underline{cdfvsig:}}
+\addcontentsline{toc}{subsection}{cdfvsig}
+\index{cdfvsig}
+\begin{description}
+\item[Purpose:] Compute the mean u$.$sigma, v$.$sigma and w$.$sigma from tags given as arguments
+\item[Usage:] {\em cdfvsig CONFIG 'list\_of\_tags' }
+\item[Input:] CONFIG is the valid config name ( e.g. ORCA025-G32, NATL4-B01, ORCA05-K18 ...).
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em usig.nc, vsig.nc, wsig.nc}. Each of these files contains the variables (eg for u files) \\
+ vousig = 3D mean product u x sigma \\
+ vosigu = 3D mean density field at u-points \\
+ vozocrtx = 3D mean velocity computed exactly as the other fields
+\item[Remark:] All variables can be used to compute the eddy contribution.
+\item[Associated script:] {\em cdfvsig.ll}:
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfeke:}}
+\addcontentsline{toc}{subsection}{cdfeke}
+\index{cdfeke}
+\begin{description}
+\item[Purpose:] Compute the Eddy Kinetic Energy (EKE).
+\item[Usage:] {\em cdfeke gridU gridU2 gridV gridV2 gridT}
+\item[Input:] gridU and gridU2 hold respectively the mean and quadratic mean for U-points. The same for gridV and
+gridV2. These files are produced by cdfmoy. They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means). The EKE is computed with respect to this period of time. \\
+An extra gridT type file is given in argument, just for reading the T-grid, for the header of the output file. In fact,
+EKE is computed on the T-points.\\
+For instance: cdfeke ORCA035-G32\_y0008-0010\_gridU.nc ORCA035-G32\_y0008-0010\_gridU2.nc \\
+ORCA035-G32\_y0008-0010\_gridV.nc ORCA035-G32\_y0008-0010\_gridV2.nc ORCA035-G32\_y0008-0010\_gridT2.nc \\
+will compute the EKE for the period y0008-0010.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em eke.nc}. This file hold the variable voeke.
+\item[Remark:] EKE is computed at T-points.
+\item[Associated script:] {\em cdfeke.ll}: This script can be used to compute EKE. It is a good
+example on how to use cdfeke. Note that this script must be used after cdfmoy.ll, because it requires the mean and
+mean quadratic files to be already computed.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfrmsssh:}}
+\addcontentsline{toc}{subsection}{cdfrmsssh}
+\index{cdfrmsssh}
+\begin{description}
+\item[Purpose:] Compute the RMS of the SSH.
+\item[Usage:] {\em cdfrmsssh gridT gridT2 }
+\item[Input:] gridT and gridT2 hold respectively the mean and quadratic mean for T-points.
+These files are produced by cdfmoy. They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means). The RMS is computed with respect to this period of time. \\
+For instance: cdfrmsssh ORCA035-G32\_y0008-0010\_gridT.nc ORCA035-G32\_y0008-0010\_gridT2.nc \\
+will compute the RMS SSH for the period y0008-0010.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em rmsssh.nc}. This file hold the variable sossheig\_rms.
+\item[Remark:]
+\item[Associated script:] {\em cdfrms.ll}: This scripts is use to compute both RMS ssh and the Stdev of W.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfstdevw:}}
+\addcontentsline{toc}{subsection}{cdfstdevw}
+\index{cdfstdevw}
+\begin{description}
+\item[Purpose:] Compute the standard deviation for W.
+\item[Usage:] {\em cdfstdevw gridW gridW2 }
+\item[Input:] gridW and gridW2 hold respectively the mean and quadratic mean for W-points.
+These files are produced by cdfmoy. They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means). The standard deviation is computed with respect to this period of time. \\
+For instance: cdfstdevw ORCA035-G32\_y0008-0010\_gridW.nc ORCA035-G32\_y0008-0010\_gridW2.nc \\
+will compute the standard deviation of W for the period y0008-0010.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em rmsw.nc}. This file hold the variable vovecrtz\_rms.
+\item[Remark:]
+\item[Associated script:] {\em cdfrms.ll}: This scripts is use to compute both RMS ssh and the Stdev of W.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfstdevts:}}
+\addcontentsline{toc}{subsection}{cdfstdevts}
+\index{cdfstdevts}
+\begin{description}
+\item[Purpose:] Compute the standard deviation for temperature and salinity
+\item[Usage:] {\em cdfstdevts gridX gridX2 }
+\item[Input:] gridX and gridX2 hold respectively the mean and quadratic mean for T-points.
+These files are produced by cdfmoy\_sal2\_temp2. They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means). The standard deviation is computed with respect to this period of time. \\
+For instance: cdfstdevts ORCA035-G32\_y0008-0010\_gridT.nc ORCA035-G32\_y0008-0010\_gridT2.nc \\
+will compute the standard deviation of T and D for the period y0008-0010.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em rmsts.nc}. This file hold the variables votemper\_rms and vosaline\_rms
+\item[Remark:] This quantity is not a very standard one. For this reason, we keep the standard cdfmoy, without saving the second order
+ momentum for T and S and create a special tool cdfmoy\_sal2\_temp2 for this purpose. Remember that both T2 and S2 are 3D fields...
+\item[Associated script:] none.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfstd:}}
+\addcontentsline{toc}{subsection}{cdfstd}
+\index{cdfstd}
+\begin{description}
+\item[Purpose:] Compute the standard deviation for all the physical variables of the serie of files given as input
+\item[Usage:] {\em cdfstd list of files }
+\item[Input:] The input files are model output files, all holding the same variables. Each file can have more than 1 time frame in it.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em cdfstd.nc}. This file hold the standard deviation of the variables,whose name will be {\tt varname\_std}
+\item[Associated script:] none.
+\item[Contributor:] Frederic Castruccio (Meom)
+\end{description}
+
+\newpage
+\subsection*{\underline{cdflinreg:}}
+\addcontentsline{toc}{subsection}{cdflinreg}
+\index{cdflinreg}
+\begin{description}
+\item[Purpose:] Compute the linear regression coeficients as well as the $r^2$ estimator of the fit, for all the variables
+ being in the time series of files given on input.
+\item[Usage:] {\em cdflinreg list of files }
+\item[Input:] Input files are model files output that may hold one or more time frames.
+\item[Required mesh\_mask files or other files:] none
+\item[Method:] $y$ being the working variables, the program determines $a$ and $b$ such as the the right $\hat{y}=a.t+b$ corresponds
+to the best fit for the data. (Least squared sense). \\
+ $a=cov(t,y)/var(t)$ and $b=\bar{y} - a . \bar{t}$ \\
+ $r^2=a^2.var(t)/var(y)$
+\item[Output:] {\em linreg.nc}. For each variable of the input files, there are 3 output variables, says $y\_areg$, $y\_breg$ and
+ $y\_r2$. The time is taken from the input files (standard in seconds since the begining of the run), and converted in years
+ (365 days). Therefore, when using the regression equation, take care of the time origin and units.
+\item[Associated script:] cdflinreg.ksh
+\end{description}
+
+
+
+\newpage
+\section{Transports}
+
+\subsection*{\underline{cdfmhst:}}
+\addcontentsline{toc}{subsection}{cdfmhst}
+\index{cdfmhst}
+\begin{description}
+\item[Purpose:] Compute the Meridional Heat and Salt Transport (Partial Step case).
+\item[Usage:] {\em cdfmhst VTfile [MST] }
+\item[Input:] VTfiles are the files produced by the cdfvT program.//
+MST is an optional keyword for saving also Meridional Salt Transport to a netcdf file.//
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means).
+For instance: cdfmhst ORCA025-G32\_y0010m01\_VT.nc
+will compute the meridional heat and salt transport for month 1 of year 0010 for the ORCA025-G32 experiment. Only the MHT
+will be saved to the netcdf file mhst.nc
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc ,mask.nc, new\_maskglo.nc \\
+This latter file holds sub basin 2D masks; if it does'nt exist, only the global mask is taken into account, which is usefull for regional configs such as NATL4.
+\item[Output:] zonal\_heat\_trp.dat and zonal\_salt\_trp.dat which are ASCII files. It also writes the result on mhst.nc
+ file, a netcdf file. If no MST option is given on the command line, only MHT is copied to the cdf file. The ASCII files
+ remain the same.
+\\Example for zonal\_heat\_trp.dat
+\begin{scriptsize}
+\begin{verbatim}
+ Zonal heat transport (integrated along I-model coordinate) (in Pw)
+ J Global Atlantic Pacific Indian Mediterranean Austral
+...
+ 580 19.959 1.9821 19.959 1.0471 19.959 0.8080 19.959 0.1460 999.000 0.0000 999.000 0.0000
+ 579 19.723 1.9769 19.724 1.0465 19.724 0.8108 19.724 0.1528 999.000 0.0000 999.000 0.0000
+ 578 19.488 1.9650 19.488 1.0429 19.488 0.8054 19.488 0.1575 999.000 0.0000 999.000 0.0000
+ 577 19.252 1.9512 19.252 1.0388 19.252 0.7975 19.252 0.1608 999.000 0.0000 999.000 0.0000
+ 576 19.016 1.9334 19.016 1.0334 19.016 0.7840 19.016 0.1650 999.000 0.0000 999.000 0.0000
+ 575 18.779 1.9103 18.779 1.0252 18.779 0.7615 18.779 0.1712 999.000 0.0000 999.000 0.0000
+ 574 18.543 1.8792 18.543 1.0173 18.543 0.7235 18.543 0.1778 999.000 0.0000 999.000 0.0000
+ 573 18.305 1.8406 18.305 1.0007 18.305 0.6837 18.305 0.1818 999.000 0.0000 999.000 0.0000
+ 572 18.068 1.8064 18.068 0.9856 18.068 0.6455 18.068 0.1849 999.000 0.0000 999.000 0.0000
+ 571 17.830 1.7768 17.830 0.9721 17.830 0.6171 17.830 0.1876 999.000 0.0000 999.000 0.0000
+ 570 17.592 1.7494 17.592 0.9582 17.592 0.6000 17.592 0.1911 999.000 0.0000 999.000 0.0000
+...
+\end{verbatim}
+\end{scriptsize}
+First column indicates the corresponding J coordinate. Then pairs of column indicates the mean latitude and
+the transport. Heat transports are in Pw. Salt transports are in KT/s
+
+\item[Remark:] missing values are indicated by 999.000
+\item[Associated script:] {\em cdfmhst.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmhst-full:}}
+\addcontentsline{toc}{subsection}{cdfmhst-full}
+\index{cdfmhst-full}
+\begin{description}
+\item[Purpose:] Compute the Meridional Heat and Salt Transport (Full Step case).
+\item[Usage:] {\em cdfmhst-full VTfile [MST] }
+\item[Input:] VTfiles are the files produced by the cdfvT program.//
+MST is an optional keyword for saving also Meridional Salt Transport to a netcdf file.//
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means).
+For instance: cdfmhst-full ORCA025-G04\_y0010m01\_VT.nc
+will compute the meridional heat and salt transport for month 1 of year 0010 for the ORCA025-G04 experiment. Only the MHT
+will be saved to the netcdf file mhst.nc.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc ,mask.nc, new\_maskglo.nc \\
+This latter file holds sub basin 2D masks.
+\item[Output:] zonal\_heat\_trp.dat and zonal\_salt\_trp.dat which are ASCII files. It also writes the result on mhst.nc
+ file, a netcdf file. If no MST option is given on the command line, only MHT is copied to the cdf file. The ASCII files
+ remain the same.
+\\Example for zonal\_heat\_trp.dat
+\begin{scriptsize}
+\begin{verbatim}
+ Zonal heat transport (integrated alon I-model coordinate) (in Pw)
+ J Global Atlantic Pacific Indian Mediterranean Austral
+...
+ 580 19.959 1.9821 19.959 1.0471 19.959 0.8080 19.959 0.1460 999.000 0.0000 999.000 0.0000
+ 579 19.723 1.9769 19.724 1.0465 19.724 0.8108 19.724 0.1528 999.000 0.0000 999.000 0.0000
+ 578 19.488 1.9650 19.488 1.0429 19.488 0.8054 19.488 0.1575 999.000 0.0000 999.000 0.0000
+ 577 19.252 1.9512 19.252 1.0388 19.252 0.7975 19.252 0.1608 999.000 0.0000 999.000 0.0000
+ 576 19.016 1.9334 19.016 1.0334 19.016 0.7840 19.016 0.1650 999.000 0.0000 999.000 0.0000
+ 575 18.779 1.9103 18.779 1.0252 18.779 0.7615 18.779 0.1712 999.000 0.0000 999.000 0.0000
+ 574 18.543 1.8792 18.543 1.0173 18.543 0.7235 18.543 0.1778 999.000 0.0000 999.000 0.0000
+ 573 18.305 1.8406 18.305 1.0007 18.305 0.6837 18.305 0.1818 999.000 0.0000 999.000 0.0000
+ 572 18.068 1.8064 18.068 0.9856 18.068 0.6455 18.068 0.1849 999.000 0.0000 999.000 0.0000
+ 571 17.830 1.7768 17.830 0.9721 17.830 0.6171 17.830 0.1876 999.000 0.0000 999.000 0.0000
+ 570 17.592 1.7494 17.592 0.9582 17.592 0.6000 17.592 0.1911 999.000 0.0000 999.000 0.0000
+...
+\end{verbatim}
+\end{scriptsize}
+First column indicates the corresponding J coordinate. Then pairs of column indicates the mean latitude and
+the transport. Heat transports are in Pw. Salt transports are in KT/s
+
+\item[Remark:] missing values are indicated by 999.000
+\item[Associated script:] {\em cdfmhst-full.ll}
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfhflx:}}
+\addcontentsline{toc}{subsection}{cdfhflx}
+\index{cdfhflx}
+\begin{description}
+\item[Purpose:] Compute the Meridional Heat Transport from the forcing fields
+\item[Usage:] {\em cdfhflx gridTfile }
+\item[Input:] gridTfile is a file which hold the flux variable $sohefldo$.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, new\_maskglo.nc \\
+This latter file holds sub basin 2D masks; if it does'nt exist, only the global mask is taken into account, which is usefull for regional configs such as NATL4.
+\item[Output:] Results are displayed on the standard output, with columns corresponding to sub basins.
+\item[Remark:] This computation is relative to the starting point of the integration. Transports are
+assumed to vanish at the northern point of the domain.
+\item[Associated script:] none for the moment.
+\end{description}
+
+\subsection*{\underline{cdfwflx:}}
+\addcontentsline{toc}{subsection}{cdfwflx}
+\index{cdfwflx}
+\begin{description}
+\item[Purpose:] Compute the different components of the water flux. (evaporation, precipitation, runoff, sss damping, total
+ water flux).
+\item[Usage:] {\em cdfwflx gridTfile runofffile}
+\item[Input:] gridTfile is a file which hold the flux variables.\\
+ runofffile is the file with the runoff variable $sorunoff$.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] Output is done on wflx.nc file. Variables are evap (mm/day), precip (mm/day), sssdmp (mm/day), runoff (mm/day),
+ watnet (mm/day). The runoff is directly read from the file, as well as the sss damping. Evaporation is deduced from the
+latent heat flux, stored on the gridT file ($Evap=-Q_{lat}/L_v$). Precip is deduced from the balance $watnet=Evap -Precip -Runoff +sssdmp$. Therefore, precip also takes into account the snow storage/melting on frozen areas.
+\item[Remark:]
+\item[Associated script:] cdfwflx.ksh
+\end{description}
+
+\subsection*{\underline{cdfbuoyflx:}}
+\addcontentsline{toc}{subsection}{cdfbuoyflx}
+\index{cdfbuoyflx}
+\begin{description}
+\item[Purpose:] This is an extension of cdfwflx: It computes the different components of
+ the water flux. (evaporation, precipitation, runoff, sss damping, total water flux. Additionally, it extracts the component
+ of the heat flux (latent, sensible, long wave, short wave, net heat fluxes), and copy them, to the output file. Then it
+ evaluates the respective component of the buoyancy flux (haline, thermal), and the total buoyancy flux ($10^{-6} kg/m^2/s$).\\
+ \[ F_{\rho} = - \rho \left [ \alpha F_T - \beta F_S \right ] \]
+\item[Usage:] {\em cdfbuoyflx gridTfile runofffile}
+\item[Input:] gridTfile is a file which hold the flux variables.\\
+ runofffile is the file with the runoff variable $sorunoff$.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] Output is done on buoyflx.nc file. Variables are evap (mm/day), precip (mm/day), sssdmp (mm/day), runoff (mm/day),
+ watnet (mm/day). The runoff is directly read from the file, as well as the sss damping. Evaporation is deduced from the
+ latent heat flux, stored on the gridT file ($Evap=-Q_{lat}/L_v$). Precip is deduced from the balance
+ $watnet=Evap -Precip -Runoff +sssdmp$. Therefore, precip also takes into account the snow storage/melting on frozen areas. \\
+ Heat fluxes ($W/m^2$) are on variables $latent$, $sensible$, $longwave$, $solar$, $heatnet$. \\
+ Buoyancy fluxes uses the same names with the extension \_b ($10^{-6} kg/m^2/s$ ).
+ The total buoyancy flux ($buoyancy\_fl$) is also given. $SSS$ and $SST$ are also stored on the output file in order to
+ have then at hand when performing diags with these files.
+
+\item[Remark:]
+\item[Associated script:] cdfbuoyflx.ksh
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfvhst:}}
+\addcontentsline{toc}{subsection}{cdfvhst}
+\index{cdfvhst}
+\begin{description}
+\item[Purpose:] Compute the Vertically Integrated Heat and Salt Transport (Partial Step case).
+\item[Usage:] {\em cdfvhst VTfile }
+\item[Input:] VTfiles are the files produced by the cdfvT program.
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means).
+For instance: cdfvhst ORCA025-G32\_y0010m01\_VT.nc
+will compute the vertically integrated heat and salt transport for month 1 of year 0010 for the ORCA025-G32 experiment.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc \\
+\item[Output:]trp.nc, variables somevt somevs sozout sozous
+\item[Remark:] for example:\\
+\begin{equation}
+somevt(i,j)=\int_{-h}^{0}{vt(i,j)e_{1v}(i,j) e_3(i,j,z) dz} \\
+\end{equation}
+\begin{equation}
+someut(i,j)=\int_{-h}^{0}{ut(i,j)e_{2u}(i,j) e_3(i,j,z) dz}
+\end{equation}
+\item[Associated script:] {\em cdfvhst.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfvhst-full:}}
+\addcontentsline{toc}{subsection}{cdfvhst-full}
+\index{cdfvhst-full}
+\begin{description}
+\item[Purpose:] Compute the Vertically Integrated Heat and Salt Transport (Full Step case).
+\item[Usage:] {\em cdfvhst-full VTfile }
+\item[Input:] VTfiles are the files produced by the cdfvT program.
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means).
+For instance: cdfvhst-full ORCA025-G04\_y0010m01\_VT.nc
+will compute the vertically integrated heat and salt transport for month 1 of year 0010 for the ORCA025-G04 experiment.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc \\
+\item[Output:]trp.nc, variables somevt somevs sozout sozous
+\item[Remark:] for example:\\
+\begin{equation}
+somevt(i,j)=\int_{-h}^{0}{vt(i,j)e_{1v}(i,j) e_3(z) dz} \\
+\end{equation}
+\begin{equation}
+someut(i,j)=\int_{-h}^{0}{ut(i,j)e_{2u}(i,j) e_3(z) dz}
+\end{equation}
+\item[Associated script:] {\em cdfvhst-full.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpsi:}}
+\addcontentsline{toc}{subsection}{cdfpsi}
+\index{cdfpsi}
+\begin{description}
+\item[Purpose:] Compute the Barotropic Stream Function (Partial Step case).
+\item[Usage:] {\em cdfpsi Ufile Vfile [V]}
+\item[Input:] Ufile and Vfile are the files holding vozocrtx and vomecrty.
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means). \\
+The optional [V] parameter, is used to indicate that we want to save the v-computed psi, instead of the default
+u-computed. This last option is usefull for basin such as NATL4. \\
+For instance: cdfpsi ORCA025-G32\_y0010m01\_U.nc ORCA025-G32\_y0010m01\_V.nc
+will compute the BSF for month 1 of year 0010 for the ORCA025-G32 experiment.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc \\
+\item[Output:]psi.nc, variables sobarstf, on the C-grid f-points, masked.
+\item[Remark:] This program is prepared to compute BSF either from the U field or the V field. To be in agreement with previous
+matlab programs, we choose to save only the result from the U field. The integration constant is set so that the BSF
+on Asia is 0. ( For Orca type simulations, point (jpiglo, jpjglo) is supposed to be in Asia). Discussion is open if it
+is better to save the mean value of the BSF derived from U field and V field.
+\item[Associated script:] {\em cdfpsi.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpsi-full:}}
+\addcontentsline{toc}{subsection}{cdfpsi-full}
+\index{cdfpsi-full}
+\begin{description}
+\item[Purpose:] Compute the Barotropic Stream Function (Full Step case).
+\item[Usage:] {\em cdfpsi-full Ufile Vfile }
+\item[Input:] Ufile and Vfile are the files holding vozocrtx and vomecrty.
+They correspond to a certain period of time ( monthly, quarterly, annual or
+pluri annual means).
+For instance: cdfpsi-full ORCA025-G04\_y0010m01\_U.nc ORCA025-G04\_y0010m01\_V.nc
+will compute the BSF for month 1 of year 0010 for the ORCA025-G04 experiment.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc \\
+\item[Output:]psi.nc, variables sobarstf, on the C-grid f-points, masked.
+\item[Remark:] This program is prepared to compute BSF either from the U field or the V field. To be in agreement with previous
+matlab programs, we choose to save only the result from the U field. The integration constant is set so that the BSF
+on Asia is 0. ( For Orca type simulations, point (jpiglo, jpjglo) is supposed to be in Asia). Discussion is open if it
+is better to save the mean value of the BSF derived from U field and V field.
+\item[Associated script:] {\em cdfpsi-full.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpsi-open:}}
+\addcontentsline{toc}{subsection}{cdfpsi-open}
+\index{cdfpsi-open}
+\begin{description}
+\item[Purpose:] Compute the Barotropic Stream Function from an open domain output.
+\item[Usage:] {\em cdfpsi-open Ufile Vfile [-mask] [-moy] }
+\item[Input:] Ufile and Vfile are the files holding vozocrtx and vomecrty.\\
+ If -mask option is used, resulting sobarstf field is masked, else it is not masked. \\
+ If -moy option is used, the resulting field is the mean value between Ucomputation and Vcomputation.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc \\
+\item[Output:]psi.nc, variables sobarstf, on the C-grid f-points.
+\item[Remark:] It is very likely, that this program should be edited by the end used to fit its own configuration. In particular, in the standard
+ version, the upper left corner is arbitrarely set to 0. When editing, take care of the sign for integration! When applied to and extrated
+ domain from a larger model, this program will not give exactly the same BSF, because of a different starting reference.
+ A modified version suitable for SALOMON025 configuration is avaible in cdfpsi-open\_AM.f90. \\
+ Another version suitable for the Zapiola area is available in cdfpsi-open-zap.f90
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfvtrp:}}
+\addcontentsline{toc}{subsection}{cdfvtrp}
+\index{cdfvtrp}
+\begin{description}
+\item[Purpose:] Computes the vertically integrated transports at each grid cell
+\item[Usage:] {\em cdfvtrp Ufile Vfile }
+\item[Input:] netcdf gridU and gridV files.
+\item[Required mesh\_mask files or other files:] Files mesh\_hgr.nc, mesh\_zgr.nc ,mask.nc must be in te current directory
+\item[Output:] Output on trp.nc, variables somevtrp sozoutrp
+\item[Remark/bugs :] output fields are horizontal 2D. They are used as input to cdftrp\_bathy to compute transport accross isobaths.
+\item[Associated scripts:]
+\end{description}
+
+\subsection*{\underline{cdftrp\_bathy:}}
+\addcontentsline{toc}{subsection}{cdftrp\_bathy}
+\index{cdftrp\_bathy}
+\begin{description}
+\item[Purpose:] Compute transport compoenents along and across isobaths.
+\item[Usage:] {\em cdftrp\_bathy trp.nc }
+\item[Input:] trp.nc file given as input is produced by cdfvtrp program.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mask.nc and hdept.nc (this latter file is the extraction of variable $hdept$ from
+ mesh\_zgr.nc; a link to mesh\_zgr.cd can be made).
+\item[Output:] output is done on {\em trpiso.nc} file, with 2 variables : $soualz$ and $sovacz$ for along isobath anf cross isobath component of
+ the transport.
+\item[Remark:] This program is quite tricky to use. Be sure you to have a good understanding of what is computed, take care of the sign convention.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmoc:}}
+\addcontentsline{toc}{subsection}{cdfmoc}
+\index{cdfmoc}
+\begin{description}
+\item[Purpose:] Compute the Meridional Overturning Circulation (partial step case), from the meridional
+velocity and a basin mask file.
+\item[Usage:] {\em cdfmoc Vfile }
+\item[Input:] Vfile is the files holding vomecrty.
+For instance: {\tt cdfmoc ORCA025-G32\_y0010\_ANNUAL\_gridV.nc }
+will compute the MOC for with ORCA025-G32 annual mean V field.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc, new\_maskglo.nc (if new\_maskglo.nc does'nt exist, it will work for the global basin; usefull for NATL4 like configs). \\
+\item[Output:] The results are output on the file $moc.nc$. There are 5 variables concerning the MOC, one for each sub-basin. They are degenerated 3D variables with the i-dimension
+reduced to 1 : $zomsfglo$ for the GLObal ocean,
+$zomsfatl$ for the ATLantic ocean, $zomsfinp$ for the INdoPacific ocean, $zomsfind$ for the INDian ocean and finally
+$zomsfpac$ for the PACific ocean.
+
+Notice that the depth associated to the file corresponds to the W depth (gdepw). $nav\_lon$ is arbitrarly set to 0 ($nav\_lon(1,1:npjglo)$),
+and $nav\_lat$ is set to the latitude of the i-line going through the North Pole.
+\item[Remark:] The name Meridional Overturning is a facility of language, because in fact what is computed is the along-I integral
+of the V component (which is not {\em stricto sensus} meridional | it follows the J-coordinate |)
+\item[Associated script:] {\em cdfmoc.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmocsig:}}
+\addcontentsline{toc}{subsection}{cdfmocsig}
+\index{cdfmocsig}
+\begin{description}
+\item[Purpose:] Compute the Meridional Overturning Circulation (partial step case) in function of $\sigma_1$ from the meridional velocity, a TS file and a basin mask file.
+\item[Usage:] {\em cdfmocsig Vfile TSfile}
+\item[Input:] Vfile is the files holding vomecrty, TSfile hold votemper, vosaline for density computation.
+For instance: {\tt cdfmocsig ORCA025-G32\_y0010\_ANNUAL\_gridV.nc ORCA025-G32\_y0010\_ANNUAL\_gridT.nc }
+will compute the MOC for with ORCA025-G32 annual mean V field.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc, new\_maskglo.nc \\
+\item[Output:] The results are output on the file $mocsig.nc$. There are 5 variables concerning the MOC, one for each sub-basin. They are degenerated 3D variables with the i-dimension
+reduced to 1 : $zomsfglo$ for the GLObal ocean,
+$zomsfatl$ for the ATLantic ocean, $zomsfinp$ for the INdoPacific ocean, $zomsfind$ for the INDian ocean and finally
+$zomsfpac$ for the PACific ocean.
+
+Notice that the depth associated to the file corresponds to the W depth (gdepw). $nav\_lon$ is arbitrarly set to 0 ($nav\_lon(1,1:npjglo)$),
+and $nav\_lat$ is set to the latitude of the i-line going through the North Pole.
+\item[Remark:] The name Meridional Overturning is a facility of language, because in fact what is computed is the along-I integral
+of the V component (which is not {\em stricto sensus} meridional | it follows the J-coordinate |)
+\item[Associated script:] {\em cdfmocsig.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmocsig-full:}}
+\addcontentsline{toc}{subsection}{cdfmocsig-full}
+\index{cdfmocsig-full}
+\begin{description}
+\item[Purpose:] Compute the Meridional Overturning Circulation (partial step case) in function of $\sigma_1$ from the meridional velocity, a TS file and a basin mask file. This is the full step version.
+\item[Usage:] {\em cdfmocsig-full Vfile TSfile}
+\item[Input:] Vfile is the files holding vomecrty, TSfile hold votemper, vosaline for density computation.
+For instance: {\tt cdfmocsig-full ORCA025-G32\_y0010\_ANNUAL\_gridV.nc ORCA025-G32\_y0010\_ANNUAL\_gridT.nc }
+will compute the MOC for with ORCA025-G32 annual mean V field.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc, new\_maskglo.nc \\
+\item[Output:] The results are output on the file $mocsig.nc$. There are 5 variables concerning the MOC, one for each sub-basin. They are degenerated 3D variables with the i-dimension
+reduced to 1 : $zomsfglo$ for the GLObal ocean,
+$zomsfatl$ for the ATLantic ocean, $zomsfinp$ for the INdoPacific ocean, $zomsfind$ for the INDian ocean and finally
+$zomsfpac$ for the PACific ocean.
+
+Notice that the depth associated to the file corresponds to the W depth (gdepw). $nav\_lon$ is arbitrarly set to 0 ($nav\_lon(1,1:npjglo)$),
+and $nav\_lat$ is set to the latitude of the i-line going through the North Pole.
+\item[Remark:] The name Meridional Overturning is a facility of language, because in fact what is computed is the along-I integral
+of the V component (which is not {\em stricto sensus} meridional | it follows the J-coordinate |)
+\item[!!!CAUTION !!!:] THIS PROGRAM IS NOT FINISHED YET. DONT USE WITH FULL\_STEPS!
+\item[Associated script:] none
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfmoc-full:}}
+\addcontentsline{toc}{subsection}{cdfmoc-full}
+\index{cdfmoc-full}
+\begin{description}
+\item[Purpose:] Compute the Meridional Overturning Circulation (partial step case), from the meridional
+velocity and a basin mask file.
+\item[Usage:] {\em cdfmoc-full Vfile }
+\item[Input:] Vfile is the files holding vomecrty.
+For instance: {\tt cdfmoc-full ORCA025-G04\_y0010\_ANNUAL\_gridV.nc }
+will compute the MOC for with ORCA025-G04 annual mean V field.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc, new\_maskglo.nc \\
+\item[Output:] The results are output on the file $moc.nc$. There are 5 variables concerning the MOC, one
+for each sub-basin. They are degenerated 3D variables with the i-dimension
+reduced to 1 : $zomsfglo$ for the GLObal ocean,
+$zomsfatl$ for the ATLantic ocean, $zomsfinp$ for the INdoPacific ocean, $zomsfind$ for the INDian ocean and finally
+$zomsfpac$ for the PACific ocean.
+
+Notice that the depth associated to the file corresponds to the W depth (gdepw). $nav\_lon$ is arbitrarly
+set to 0 ($nav\_lon(1,1:npjglo)$),
+and $nav\_lat$ is set to the latitude of the i-line going through the North Pole.
+\item[Remark:] The name Meridional Overturning is a facility of language, because in fact what is computed is the along-I integral
+of the V component (which is not {\em stricto sensus} meridional | it follows the J-coordinate |)
+\item[Associated script:] {\em cdfmoc-full.ll}.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfmocatl:}}
+\addcontentsline{toc}{subsection}{cdfmocatl}
+\index{cdfmocatl}
+\begin{description}
+\item[Purpose:] Compute the Meridional Overturning Circulation (partial step case), from the meridional
+velocity and a basin mask file. This program computes the MOC for one basin only. Useful for NATL4.
+It is now obsolete as cdfmoc does the same, if no new\_maskglo.nc are available.
+\item[Usage:] {\em cdfmoc Vfile }
+\item[Input:] Vfile is the files holding vomecrty.
+For instance: {\tt cdfmocatl NATL4-G07\_y0010\_ANNUAL\_gridV.nc }
+will compute the MOC for with NATL4-G07 annual mean V field.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, mask.nc \\
+\item[Output:] The results are output on the file $moc.nc$. The variable concerning the MOC is adegenerated 3D variables with the i-dimension
+reduced to 1 : $zomsfatl$ for the ATLantic ocean
+
+Notice that the depth associated to the file corresponds to the W depth (gdepw). $nav\_lon$ is arbitrarly set to 0 ($nav\_lon(1,1:npjglo)$),
+and $nav\_lat$ is set to the latitude of the i-line going through the North Pole.
+\item[Remark:] The name Meridional Overturning is a facility of language, because in fact what is computed is the along-I integral
+of the V component (which is not {\em stricto sensus} meridional | it follows the J-coordinate |)
+\item[Associated script:] {\em cdfmocatl .ll}. ({\em to be written} )
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdftransportiz:}}
+\addcontentsline{toc}{subsection}{cdftransportiz}
+\index{cdftransportiz}
+\begin{description}
+\item[Purpose:] Compute volume, heat and salt transport across a section, for depth classes. (Partial Step case )
+\item[Usage:] {\em cdftransportiz [ -test u v ] VTfile gridUfile gridVfile 'limit of level' }
+\item[Input:] VTfiles are the files produced by the cdfvT program. \\
+gridV U and gridV files are equivalent files (same period) for U and V. \\
+'limit of levels' are depth in meters where to set limits for depth classes. If no limits are given, the transport is
+computed for the whole water column. \\
+Once the data files are read, the user is asked to give a section name (or 'EOF' for ending the program), followed
+by the geographical limits of a section (imin imax jmin jmax, in model coordinates). This user interaction can be done
+with an ascii file given as standard input. ( cdftransportiz ........ $<$ section.dat, for instance ).
+
+For instance: cdftransportiz ORCA025-G32\_y0010m01\_VT.nc ORCA025-G32\_y0010m01\_gridU.nc ORCA025-G32\_y0010m01\_gridV.nc
+1500 3000 $<$ section .dat \\
+will compute the transports across a section (given interactively) in three depth classes : from top to 1500 m, from 1500 m
+to 3000 m and from 3000 m to the bottom, for section described into section.dat file.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:]section\_trp.dat and the standard output (for interactivity).
+\item[Remark:] The sign of the transport is somewhat tricky. It depends on the inclination of the section. As a rule of
+the thumb, the transport is $>0$ when going to the right hand side of the section, cruising the section from (imin,jmin)
+(imax, jmax). When the optional '-test u v ' arguments of the command line are given, the velocity field is assumed to
+be a constant field with both U and V taken as the arguments. This gives an easy way to check the sign of the transports for a given section.
+
+\item[Associated script:] {\em cdftransportiz.ll}.
+\end{description}
+
+\subsection*{\underline{cdftransportizpm:}}
+\addcontentsline{toc}{subsection}{cdftransportizpm}
+\index{cdftransportizpm}
+\begin{description}
+\item[Purpose:] Compute volume, heat and salt transport across a section, for depth classes. (Partial Step case ), just as cdftransportiz does,
+ but also indicates for each section the Positive (plus) transport and the negative (minus) transport, separately.
+\item[Usage:] {\em cdftransportizpm [ -test u v ] VTfile gridUfile gridVfile 'limit of level' }
+\item[Input:] VTfiles are the files produced by the cdfvT program. \\
+gridV U and gridV files are equivalent files (same period) for U and V. \\
+'limit of levels' are depth in meters where to set limits for depth classes. If no limits are given, the transport is
+computed for the whole water column. \\
+Once the data files are read, the user is asked to give a section name (or 'EOF' for ending the program), followed
+by the geographical limits of a section (imin imax jmin jmax, in model coordinates). This user interaction can be done
+with an ascii file given as standard input. ( cdftransportizpm ........ $<$ section.dat, for instance ).
+
+For instance: cdftransportizpm ORCA025-G32\_y0010m01\_VT.nc ORCA025-G32\_y0010m01\_gridU.nc ORCA025-G32\_y0010m01\_gridV.nc
+1500 3000 $<$ section .dat \\
+will compute the transports across a section (given interactively) in three depth classes : from top to 1500 m, from 1500 m
+to 3000 m and from 3000 m to the bottom, for section described into section.dat file.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:]section\_trp.dat and the standard output (for interactivity).
+\item[Remark:] The sign of the transport is somewhat tricky. It depends on the inclination of the section. As a rule of
+the thumb, the transport is $>0$ when going to the right hand side of the section, cruising the section from (imin,jmin)
+(imax, jmax). When the optional '-test u v ' arguments of the command line are given, the velocity field is assumed to
+be a constant field with both U and V taken as the arguments. This gives an easy way to check the sign of the transports for a given section.
+
+\item[Associated script:] none
+\end{description}
+
+\subsection*{\underline{cdftransportiz-full:}}
+\addcontentsline{toc}{subsection}{cdftransportiz-full}
+\index{cdftransportiz-full}
+\begin{description}
+\item[Purpose:] Compute volume, heat and salt transport across a section, for depth classes. (Full Step case )
+\item[Usage:] {\em cdftransportiz-full [ -test u v ] VTfile gridUfile gridVfile 'limit of level' }
+\item[Input:] VTfiles are the files produced by the cdfvT program. \\
+gridV U and gridV files are equivalent files (same period) for U and V. \\
+'limit of levels' are depth in meters where to set limits for depth classes. If no limits are given, the transport is
+computed for the whole water column. \\
+Once the data files are read, the user is asked to give a section name (or 'EOF' for ending the program), followed
+by the geographical limits of a section (imin imax jmin jmax, in model coordinates). This user interaction can be done
+with an ascii file given as standard input. ( cdftransportiz-full ........ $<$ section.dat, for instance ).
+
+For instance: cdftransportiz-full ORCA025-G04\_y0010m01\_VT.nc ORCA025-G04\_y0010m01\_gridU.nc ORCA025-G04\_y0010m01\_gridV.nc
+1500 3000 $<$ section .dat \\
+will compute the transports across a section (given interactively) in three depth classes : from top to 1500 m, from 1500 m
+to 3000 m and from 3000 m to the bottom, for section described into section.dat file.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:]section\_trp.dat and the standard output for interactivity.
+\item[Remark:] The sign of the transport is somewhat tricky. It depends on the inclination of the section. As a rule of
+the thumb, the transport is $>0$ when going to the right hand side of the section, cruising the section from (imin,jmin)
+(imax, jmax). When the optional '-test u v ' arguments of the command line are given, the velocity field is assumed to
+be a constant field with both U and V taken as the arguments. This gives an easy way to check the sign of the transports for a given section.
+\item[Associated script:] {\em cdftransportiz-full.ll}.
+\item[section.dat example:] for example, a {\em section.dat} file used in DRAKKAR, ORCA025 is given below.
+\begin{verbatim}
+01_BERING
+452 461 834 834
+02_FRAM
+1067 1107 941 941
+03_BAFFIN
+927 981 920 920
+04_DENMARK_STRAIT
+1025 1055 845 830
+05_ICELAND_SCOTLAND
+1084 1120 824 785
+06_CUBA_FLORIDA
+828 828 593 603
+07_FLORIDA_BAHAMAS
+829 836 610 610
+08_DRAKE
+880 890 235 142
+09_AUS_AA
+300 300 340 120
+10_ITF
+170 170 465 410
+11_MOZAMBIQUE_CHANNEL
+1309 1328 432 432
+EOF
+\end{verbatim}
+\end{description}
+
+\subsection*{\underline{cdftransportiz\_noheat:}}
+\addcontentsline{toc}{subsection}{cdftransportiz\_noheat}
+\index{cdftransportiz\_noheat}
+\begin{description}
+\item[Purpose:] same as cdftransportiz but only for mass transport. Usefull when VT files are not available.
+\item[Usage:] {\em cdftransportiz\_noheat [ -test u v ] gridUfile gridVfile 'limit of level' }
+\item[Output:]section\_trp.dat and the standard output for interactivity.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmasstrp:}}
+\addcontentsline{toc}{subsection}{cdfmasstrp}
+\index{cdfmasstrp}
+\begin{description}
+\item[Purpose:] Compute volume transport across a section, for depth classes. (Partial Step case )
+\item[Usage:] {\em cdfmasstrp [ -test u v ] gridUfile gridVfile 'limit of level' }
+\item[Input:] gridV U and gridV files are simultaneous velocity component files. \\
+'limit of levels' are depth in meters where to set limits for depth classes. If no limits are given, the transport is
+computed for the whole water column. \\
+Once the data files are read, the user is asked to give a section name (or 'EOF' for ending the program), followed
+by the geographical limits of a section (imin imax jmin jmax, in model coordinates). This user interaction can be done
+with an ascii file given as standard input. ( cdftransportiz ........ $<$ section.dat, for instance ).
+
+For instance: cdfmasstrp ORCA025-G32\_y0010m01\_gridU.nc ORCA025-G32\_y0010m01\_gridV.nc
+1500 3000 $<$ section .dat \\
+will compute the transports across a section (given interactively) in three depth classes : from top to 1500 m, from 1500 m
+to 3000 m and from 3000 m to the bottom, for section described into section.dat file.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:]section\_trp.dat and standard output. .dat file is matlab ready.
+\item[Remark:] The sign of the transport is somewhat tricky. It depends on the inclination of the section. As a rule of
+the thumb, the transport is $>0$ when going to the right hand side of the section, cruising the section from (imin,jmin)
+(imax, jmax). When the optional '-test u v ' arguments of the command line are given, the velocity field is assumed to
+be a constant field with both U and V taken as the arguments. This gives an easy way to check the sign of the transports for a given section.\\
+This program is a simplification of cdftransportiz where the heat and salt transport are not computed anymore. This tool is about the same than
+cdftransportiz\_noheat, and should be used in place of. The only difference is in that in this program there is no dummy heat/salt transport output.
+\end{description}
+
+\subsection*{\underline{cdfmasstrp-full:}}
+\addcontentsline{toc}{subsection}{cdfmasstrp-full}
+\index{cdfmasstrp-full}
+\begin{description}
+\item[Purpose:] Compute volume transport across a section, for depth classes. (Full Step case )
+\item[Usage:] {\em cdfmass [ -test u v ] gridUfile gridVfile 'limit of level' }
+\item[Input:] gridV U and gridV files are simultaneous velocity component files. For more details, read the documentation for
+ cdfmasstrp.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:]section\_trp.dat and standard output. .dat file is matlab ready.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfsigtrp:}}
+\addcontentsline{toc}{subsection}{cdfsigtrp}
+\index{cdfsigtrp}
+\begin{description}
+\item[Purpose:] Compute density class transport (potential density $\sigma_0$) for either zonal or meridional section, (partial steps).
+\item[Usage:] {\em cdfsigtrp gridTfile gridUfile gridVfile sigma\_min sigma\_max nbins [options] }
+\item[Input:] T, U and V files are output file from the model.\\
+ {\em sigma\_min sigma\_max } gives the lower and upper limit for the density classes $\sigma_0$,\\
+ $nbins$ is the number of bins (density classes) to explore between $\sigma_{min}$ and $\sigma_{max}$. \\
+The program needs an ascii file called {\tt dens\_section.dat} where the sections are described. An example of such a file is given below:
+\begin{scriptsize}
+\begin{verbatim}
+01_Denmark_strait
+1013 1056 832 832
+02_Faoes_Bank_Channel
+1106 1106 800 808
+03_Gibraltar
+1126 1126 651 655
+EOF
+\end{verbatim}
+\end{scriptsize}
+Note the 'EOF' keyword in the file, which indicates the end of the file for the program. Also note that for this program sections are either
+zonal or meridional; they cannot be oblique, as it is the case in cdftransportiz.\\
+For instance: \\
+{\tt cdfsigtrp ORCA025-G50\_y1949\_ANNUAL\_gridT.nc ORCA025-G50\_y1949\_ANNUAL\_gridU.nc \ \\
+ORCA025-G50\_y1949\_ANNUAL\_gridV.nc 26 30 80} \\
+will compute the density class transport for 80 classes, between $\sigma_0=26$ and $\sigma_0=30$ for the sections described in the file dens\_section.dat
+\item[Options:] 2 options are available :
+ \begin{itemize}
+ \item[-print] : give extra informations on the standard output for the sections. These are 2D arrays for each section, giving
+ a printed 'map' of density, depth, e3 in the ( distance,vertical) plane. There are also other 2D output for printed map of isopycnal
+ depth, cumulated tansports, and bined transports in the (distance, density) plane. (Useful for short sections !! )
+ \item[-bimg] : Two bimg files are produced per section. (1) (x/y,depth) for T,S,$\sigma_0$,U (2) (x/y, $\sigma$) for hiso and class transport.
+ It can be used whith sections of any size. It allows a more detailed description of the flow than the standard output of the program
+ (integrated transport along the section).
+ \end{itemize}
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, dens\_section.dat
+\item[Output:] This program outputs its results on an ASCII file called trpsig.txt which is multicolumns file with the first column
+giving the density, and other colums the density class transport (in sverdrup) for each section (1 column per section). For example (3 sections):
+\begin{scriptsize}
+\begin{verbatim}
+ .../
+ 27.0000 -0.3498706E+05 0.0000000E+00 0.9302920E+04
+ 27.0500 -0.2951592E+05 0.0000000E+00 0.2953659E+05
+ 27.1000 -0.1460002E+05 0.0000000E+00 0.6516903E+04
+ 27.1500 -0.1678582E+05 0.0000000E+00 0.6516903E+04
+ 27.2000 -0.5445088E+04 0.0000000E+00 0.6516903E+04
+ 27.2500 0.7251206E+04 -0.1140499E+06 0.6062048E+04
+ 27.3000 -0.1079158E+03 -0.7521843E+05 0.5776318E+04
+ 27.3500 0.2931429E+03 -0.7162286E+05 0.5776318E+04
+ 27.4000 0.7215664E+03 -0.1958259E+06 0.5776318E+04
+ 27.4500 0.1075893E+05 -0.2733888E+06 0.6497963E+05
+ .../
+\end{verbatim}
+\end{scriptsize}
+First line of this example, indicates the transport for the density class [27.00,27.05[. ( line $k$ is the transport for the density class
+[$\sigma_k, \sigma_{k+1}$[ ).
+
+\item[Remark:] The sign of the transport is $>0$ for northward and eastward transports. \\
+ A slightly different version of this program, adapted by G. Hervieux is available as cdfsigtrp2.f90. In this version, some outputs were skipped and the cumulated
+transport is saved as well as the binned transport. (cdfsigtrp2 not maintained).
+\end{description}
+
+\subsection*{\underline{cdfsigitrp:}}
+\addcontentsline{toc}{subsection}{cdfsigitrp}
+\index{cdfsigitrp}
+\begin{description}
+\item[Purpose:] This program compute density class transport just as cdfsigtrp, but the potential density is refered to a given depth instead of the surface.
+\item[Usage:] {\em cdfsigitrp gridTfile gridUfile gridVfile sigma\_min sigma\_max nbins zref [options] } \\
+ Note that this is pretty similar to cdfsigtrp except the zref argument.
+\item[Input:] idem cdfsigtrp, except additional zref, giving the reference deptht in meters.
+\item[Required mesh\_mask files or other files:] as cdfsigtrp
+\item[Output:] as cdfsigtrp
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfsigtrp-full:}}
+\addcontentsline{toc}{subsection}{cdfsigtrp-full}
+\index{cdfsigtrp-full}
+\begin{description}
+\item[Purpose:] Compute density class transport for either zonal or meridional section, (full steps).
+\item[Usage:] {\em cdfsigtrp-full gridTfile gridUfile gridVfile sigma\_min sigma\_max nbins [options] }
+\item[Input:] T, U and V files are output file from the model.\\
+ {\em sigma\_min sigma\_max } gives the lower and upper limit for the density classes $\sigma_0$,\\
+ $nbins$ is the number of bins (density classes) to explore between $\sigma_{min}$ and $\sigma_{max}$. \\
+The program needs an ascii file called {\tt dens\_section.dat} where the sections are described. An example of such a file is given below:
+\begin{scriptsize}
+\begin{verbatim}
+01_Denmark_strait
+1013 1056 832 832
+02_Faoes_Bank_Channel
+1106 1106 800 808
+03_Gibraltar
+1126 1126 651 655
+EOF
+\end{verbatim}
+\end{scriptsize}
+Note the 'EOF' keyword in the file, which indicates the end of the file for the program.\\
+For instance: \\
+{\tt cdfsigtrp-full ORCA025-G50\_y1949\_ANNUAL\_gridT.nc ORCA025-G50\_y1949\_ANNUAL\_gridU.nc \ \\
+ORCA025-G50\_y1949\_ANNUAL\_gridV.nc 26 30 80} \\
+will compute the density class tranport for 80 classes, between $\sigma_0=26$ and $\sigma_0=30$ for the sections described in the file dens\_section.dat
+\item[Options:] 2 options are available :
+ \begin{itemize}
+ \item[-print] : give extra informations on the standard output for the sections. These are 2D arrays for each section, giving
+ a printed 'map' of density, depth, e3 in the ( distance,vertical) plane. There are also other 2D output for printed map of isopycnal
+ depth, cumulated tansports, and bined transports in the (distance, density) plane. (Useful for short sections !! )
+ \item[-bimg] : Two bimg files are produced per section. (1) (x/y,depth) for T,S,$\sigma_0$,U (2) (x/y, $\sigma$) for hiso and class transport.
+ It can be used whith sections of any size. It allows a more detailed description of the flow than the standard output of the program
+ (integrated transport along the section).
+ \end{itemize}
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc, dens\_section.dat
+\item[Output:] This program outputs its results on an ASCII file called trpsig.txt which is multicolumns file with the first column
+giving the density, and other colums the density class transport (in sverdrup) for each section (1 column per section). For example (3 sections):
+\begin{scriptsize}
+\begin{verbatim}
+ .../
+ 27.0000 -0.3498706E+05 0.0000000E+00 0.9302920E+04
+ 27.0500 -0.2951592E+05 0.0000000E+00 0.2953659E+05
+ 27.1000 -0.1460002E+05 0.0000000E+00 0.6516903E+04
+ 27.1500 -0.1678582E+05 0.0000000E+00 0.6516903E+04
+ 27.2000 -0.5445088E+04 0.0000000E+00 0.6516903E+04
+ 27.2500 0.7251206E+04 -0.1140499E+06 0.6062048E+04
+ 27.3000 -0.1079158E+03 -0.7521843E+05 0.5776318E+04
+ .../
+\end{verbatim}
+\end{scriptsize}
+First line of this example, indicates the transport for the density class [27.00,27.05[. ( line $k$ is the transport for the density class
+[$\sigma_k, \sigma_{k+1}$[ ).
+
+\item[Remark:] The sign of the transport is $>0$ for northward and eastward transports.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdftemptrp-full:}}
+\addcontentsline{toc}{subsection}{cdftemptrp-full}
+\index{cdftemptrp-full}
+\begin{description}
+\item[Purpose:] Compute the transport between isotherms.
+\item[Usage:] {\em cdftemptrp-full gridTfile gridUfile gridVfile temp\_max temp\_min nbins [options] }
+\item[Input:] The syntax is almost the same than for cdfsigtrp. Working with temperatures instead of density.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc must be in the current directory.
+\item[Output:] Ascii file trptemp.txt.
+\item[Remark:] Contribution of Fred Castruccio.
+\end{description}
+
+
+\subsection*{\underline{cdftempvol-full:}}
+\addcontentsline{toc}{subsection}{cdftempvol-full}
+\index{cdftempvol-full}
+\begin{description}
+\item[Purpose:] Compute water volume in a given domain between isotherms. FULL STEPS version
+\item[Usage:] {\em cdftempvol-full gridTfile imin, imax, jmin, jmax temp\_max temp\_min nbins [options] }
+\item[Input:] The syntax is almost the same than for cdfsigtrp. Working with temperatures instead of density.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc must be in the current directory.
+\item[Output:] Ascii file voltemp.txt.
+\item[Remark:] Contribution of Fred Castruccio.
+\end{description}
+
+
+\newpage
+\section{Derived quantities}
+\subsection*{\underline{cdfsig0:}}
+\addcontentsline{toc}{subsection}{cdfsig0}
+\index{cdfsig0}
+\begin{description}
+\item[Purpose:] Compute the potential density ${\sigma}_0$.
+\item[Usage:] {\em cdfsig0 gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+For instance: cdfsig0 ORCA035-G32\_y0008m01d10\_gridT.nc \\
+will compute ${\sigma}_0$ for the given file.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em sig0.nc}. This file hold the variable vosigma0.
+\item[Remark:] The non-linear equation of state of NEMO OPA9 is used. Therefore, one should be aware that ${\sigma}_0$
+computed from mean temperature and salinity fields is not the same than the mean ${\sigma}_0$ computed from instantaneous
+temperature and salinity fields. This tools can take multi time frame input file.
+\item[Associated script:] {\em cdfsigma0.ll}. This script can be used to compute ${\sigma}_0$ for a run. It scan all
+the gridT file for a given year and CONFIG, and produce the corresponding sigma0 file.
+\end{description}
+
+\subsection*{\underline{cdfsigi:}}
+\addcontentsline{toc}{subsection}{cdfsigi}
+\index{cdfsigi}
+\begin{description}
+\item[Purpose:] Compute the potential density ${\sigma}_i$, refered to a particular depth.
+\item[Usage:] {\em cdfsigi gridT Reference\_depth}
+\item[Input:] gridT is a file holding variables votemper and vosaline.\\
+ Reference\_depth is the reference depth in meters.
+For instance:\\
+ cdfsigi ORCA035-G32\_y0008m01d10\_gridT.nc 2000 \\
+will compute ${\sigma}_i$ for the given file, refered to 2000 m, {\it ie}, ${\sigma}_2$.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em sigi.nc}. This file hold the variable vosigmai, reference depth is documented on the 'long name' attriute.
+\item[Remark:] The non-linear equation of state of NEMO OPA9 is used. Therefore, one should be aware that ${\sigma}_i$
+computed from mean temperature and salinity fields is not the same than the mean ${\sigma}_i$ computed from instantaneous
+temperature and salinity fields. This tools can take multi time frame input file.
+\end{description}
+
+\subsection*{\underline{cdfsiginsitu:}}
+\addcontentsline{toc}{subsection}{cdfsiginsitu}
+\index{cdfsiginsitu}
+\begin{description}
+\item[Purpose:] Compute the insitu density ${\sigma}$.
+\item[Usage:] {\em cdfsiginsitu gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.\\
+ Depths are taken from the input file.
+For instance:\\
+ cdfsiginsitu ORCA035-G32\_y0008m01d10\_gridT.nc \\
+will compute ${\sigma}$ for the given file
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em siginsitu.nc}. This file hold the variable vosigmainsitu.
+\item[Remark:] The non-linear equation of state of NEMO OPA9 is used. Therefore, one should be aware that ${\sigma}$
+computed from mean temperature and salinity fields is not the same than the mean ${\sigma}$ computed from instantaneous
+temperature and salinity fields. This tools can take multi time frame input file.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfbottomsig0:}}
+\addcontentsline{toc}{subsection}{cdfbottomsig0}
+\index{cdfbottomsig0}
+\begin{description}
+\item[Purpose:] Compute the bottom potential density ${\sigma}_{0bot}$ (2D variable).
+\item[Usage:] {\em cdfbottomsig0 gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+
+For instance: {\tt cdfbottomsig0 ORCA035-G32\_y0008m01d10\_gridT.nc }
+will compute ${\sigma}_{0bot}$ for the given tag.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em botsig0.nc}. This file hold the variable sobotsig0.
+\item[Remark:] The non-linear equation of state of NEMO OPA9 is used. Therefore, one should be aware that ${\sigma}_0$
+computed from mean temperature and salinity fields is not the same than the mean ${\sigma}_0$ computed from instantaneous
+temperature and salinity fields. A companion of this program is cdfbottom.
+\item[Associated script:] {\em cdfbotsig0.ll}. This script can be used to compute ${\sigma}_{0bot}$ for a run. It scan all
+the gridT file for a given year and CONFIG, and produce the corresponding botsig0 file.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfbottomsigi:}}
+\addcontentsline{toc}{subsection}{cdfbottomsigi}
+\index{cdfbottomsigi}
+\begin{description}
+\item[Purpose:] Compute the bottom potential density ${\sigma}_{ibot}$ (2D variable), refered to the given depth.
+\item[Usage:] {\em cdfbottomsigi gridT Reference depth}
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+
+For instance: {\tt cdfbottomsigi ORCA035-G32\_y0008m01d10\_gridT.nc 2000 }
+will compute ${\sigma}_{2bot}$ for the given tag.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] {\em botsigi.nc}. This file hold the variable sobotsigi.
+\item[Remark:] The non-linear equation of state of NEMO OPA9 is used. Therefore, one should be aware that ${\sigma}_i$
+computed from mean temperature and salinity fields is not the same than the mean ${\sigma}_i$ computed from instantaneous
+temperature and salinity fields. A companion of this program is cdfbottom.
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfbottom:}}
+\addcontentsline{toc}{subsection}{cdfbottom}
+\index{cdfbottom}
+\begin{description}
+\item[Purpose:] Extract the bottom values for the 3D variables contained in the file given as argument. Bottom
+values are the values for the last point of the water column before land.
+\item[Usage:] {\em cdfbottom nc\_file [ $T~|~U~|~V~|~F$ ] }
+If the point type is specified, look for the corresponding mask in mask.nc file.
+\item[Input:] Any netcdf file from NEMO output (or diagnosed from NEMO) , containing 3D fields.
+For instance: {\tt cdfbottom ORCA035-G32\_y0008m01d10\_gridT.nc}
+will produce a file with the 2D variables {\tt votemper} and {\tt vosaline} corresponding the their bottom value.
+
+{\tt cdfbottom ORCA035-G32\_y0008m01d10\_gridU.nc U } will produce a file with the 2D variable vozocrtx, corresponding the the
+bottom value, the umask being read on the mask.nc file.
+\item[Required mesh\_mask files or other files:] Eventually mask.nc file if the type point of the C grid is specified.
+\item[Output:] {\em bottom.nc}. This file hold the variable(s) having the same name than the 3D variables of the input file.
+\item[Remark:] For the sake of simplicity, and for compatibility with other cdftools, we keep the same variable name in the
+output file than in the input file, though the output variables are 2D and should 'logically' start with 'so'...
+\item[Associated script:] {\em cdfbottom.ll}. This script can be used to compute bottom value for a run.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfrhoproj:}}
+\addcontentsline{toc}{subsection}{cdfrhoproj}
+\index{cdfrhoproj}
+\begin{description}
+\item[Purpose:] Project a variable of a netcdf file on an isopycnal surface either specified by a $\sigma_0$ on the command
+line, or taken from an input file.
+\item[Usage:] {\em cdfrhoproj [-s0 sigma0] cvar nc\_rhofile nc\_file(*) [ $T~|~U~|~V~|~F$ ] }
+If the value of $\sigma_0$ for the iso surface is given on the command line, then only this surface is calculated. In other cases, the
+values for $\sigma_0$ are taken from the local {\em rho\_lev} file, which is a very simple ascii file, with the number of surfaces given on the
+first line, followed by lines with the required $\sigma_0$ values. CAUTION: these values must increase in the file.
+\item[Input:] nc\_rhofile already contains the density, cvar is the name of the variable that will be projected on the isopycnal, taken from file
+nc\_file. Various files can be specified. In order to handle the NEMO C-Grid, and as far as $\sigma_0$ is computed on a T-point, it is possible
+to specify the grid point type corresponding to the file. (If nothing specified, 'T' is assumed.). In any case, the resulting value are computed
+on the T-Point.
+For instance:\\
+ {\tt cdfrhoproj vozocrtx CONFIG-CASE\_SIGMA0.nc CONFIG-CASE\_gridU.nc U} \\
+will project the zonal velocity on the isopycnal defined in {\em rho\_lev} at the T-Points. \\
+{\tt cdfrhoproj -s0 27.8 vosaline CONFIG-CASE\_SIGMA0.nc CONFIG-CASE\_gridT.nc } \\
+will project the salinity on the 27.8 isopycnal.
+\item[Required mesh\_mask files or other files:] rho\_lev (if the option -s0 is not given).
+\item[Output:] {\em nc\_file.nc.interp}. The suffix {\tt .interp} is appended to the input file to produce the output file.
+The variable name is the same, and an additional variable {\tt vodepiso} is provided; it gives the depth of the isopycnal surfaces.
+In the output file, the dimension {\tt deptht} is still used, but now represent the rho levels.
+\item[Remark:] none
+\item[Associated script:] not done already
+\end{description}
+
+\subsection*{\underline{cdfsigintegr:}}
+\addcontentsline{toc}{subsection}{cdfsigintegr}
+\index{cdfsigintegr}
+\begin{description}
+\item[Purpose:] This program is used to integrate quantities between isopycnals.
+\item[Usage:] {\em cdfsigintegr cvar nc\_rhofile nc\_file(*) [ $T~|~U~|~V~|~F$ ] }
+ cvar is the variable to be integrated. It belongs to nc\_file. nc\_rhofile is the file with vosigma0, the potential density refered to surface.
+Chosen isopycnals are given in a simple ascii file, just the same as in cdfrhoproj:
+{\em rho\_lev} file, with the number of surfaces given on the
+first line, followed by lines with the required $\sigma_0$ values. CAUTION: these values must increase in the file.
+
+\item[Input:] nc\_rhofile already contains the density, cvar is the name of the variable that will be projected on the isopycnal, taken from file
+nc\_file. Various files can be specified. In order to handle the NEMO C-Grid, and as far as $\sigma_0$ is computed on a T-point, it is possible
+to specify the grid point type corresponding to the file. (If nothing specified, 'T' is assumed.). In any case, the resulting value are computed
+on the T-Point.
+For instance:\\
+ {\tt cdfsigintegr cfc11 rhofile.nc ptrcT.nc T }\\
+will integrate the CFC11 concentration between isopycnals. (in other word this is the inventory of CFC11 in the density layer).
+\item[Required mesh\_mask files or other files:] rho\_lev, mesh\_zgr.nc
+\item[Output:] {\em nc\_file.nc.integr}. The suffix {\tt .integr} is appended to the input file to produce the output file.
+There are 3 variables in the output file: {\tt inv} (for inventory) which is the targeted integral, {\tt isothick} giving the thickness of the
+density layers. {\tt vodepiso} which is the depth of individual isopycnal surfaces.\\
+Note that both {\tt inv} and {\tt isothick} have a 'vertical' dimension corresponding to density layers, {\it ie} 1 less than the number of isopycanal
+surfaces given in rho\_lev.
+In the output file, the dimension {\tt deptht} is still used, but now represent the rho levels.
+\item[Remark:] none
+\item[Associated script:] not done already
+\end{description}
+
+\subsection*{\underline{cdfisopycdep:}}
+\addcontentsline{toc}{subsection}{cdfisopycdep}
+\index{cdfisopycdep}
+\begin{description}
+\item[Purpose:] This program is used to determine the depth of isopycnal.
+\item[Usage:] {\em cdfisopycdep [-s sigma] nc\_rhofile cdfsigmavar nc\_file(*) }
+If the value of $\sigma$ for the iso surface is given on the command line, then only this surface is calculated. In other cases, the
+values for $\sigma$ are taken from the local {\em rho\_lev} file, which is a very simple ascii file, with the number of surfaces given on the
+first line, followed by lines with the required $\sigma$ values. CAUTION: these values must increase in the file.
+\item[Input:] nc\_rhofile already contains the density (it can be any kind of density, {\it eg} $\sigma_2$ or in situ $\sigma$), cdfsigmavar is
+ the name of the variable holding the density field.
+For instance:\\
+ {\tt cdfisopycdep -s 34.2 CONFIG-CASE\_SIGMA.nc vosigma2 } \\
+will compute the $\sigma_2$=34.2 isopycanl depth.
+\item[Required mesh\_mask files or other files:] rho\_lev (if the option -s0 is not given).
+\item[Output:] {\em isopycdep.nc}, with one variable {\tt vodepiso}. This variable has a 'vertical' dimension corresponding to the chosen isopycnal
+surfaces. However, the 'vertical' dimension is still named 'deptht'.
+\item[Remark:] none
+\item[Associated script:] not done already
+\end{description}
+
+
+
+\newpage
+\subsection*{\underline{cdfbn2:}}
+\addcontentsline{toc}{subsection}{cdfbn2}
+\index{cdfbn2}
+\begin{description}
+\item[Purpose:] Compute the Brunt Vaissala frequency.
+\item[Usage:] {\em cdfbn2 gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+For instance: cdfbn2 ORCA035-G32\_y0008m01d10\_gridT.nc \\
+will compute $N^2$ for the given tag.
+\item[Required mesh\_mask files or other files:]mesh\_zgr.nc, mesh\_hgr.nc
+\item[Output:] {\em bn2.nc}. This file hold the variable vobn2. Note that this variable is located on T-point. (The intermediate
+computation is done on w points, but final results are interpolated on T-points.
+\item[Remark:] This program uses the eosbn2 routine of the NEMO OPA9 code. It is based on an approximation formula given
+by Mc Dougall et al. ( ).
+\item[Associated script:] {\em cdfbn2.ll}. This script can be used to compute $N^2$ for a run. It scan all
+the gridT file for a given year and CONFIG, and produce the corresponding $N^2$ file.
+\end{description}
+
+\subsection*{\underline{cdfbn2-full:}}
+\addcontentsline{toc}{subsection}{cdfbn2-full}
+\index{cdfbn2-full}
+\begin{description}
+\item[Purpose:] Compute the Brunt Vaissala frequency. (Full step case).
+\item[Usage:] {\em cdfbn2 gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+For instance: cdfbn2 ORCA035-G04\_y0008m01d10\_gridT.nc \\
+will compute $N^2$ for the given tag.
+\item[Required mesh\_mask files or other files:]mesh\_zgr.nc, mesh\_hgr.nc
+\item[Output:] {\em bn2.nc}. This file hold the variable vobn2. Note that this variable is located on T-point. (The intermediate
+computation is done on w points, but final results are interpolated on T-points.
+\item[Remark:] This program uses the eosbn2 routine of the NEMO OPA9 code. It is based on an approximation formula given
+by Mc Dougall et al. ( ).
+\item[Associated script:] {\em cdfbn2-full.ll}. This script can be used to compute $N^2$ for a run. It scan all
+the gridT file for a given year and CONFIG, and produce the corresponding $N^2$ file.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfets:}}
+\addcontentsline{toc}{subsection}{cdfets}
+\index{cdfets}
+\begin{description}
+\item[Purpose:] Compute the Eddy Time Scale, and Rossby Radius.
+\item[Usage:] {\em cdfets gridT }
+\item[Input:] gridT is a file holding variables votemper and vosaline.
+For instance: cdfets ORCA035-G32\_y0008m01d10\_gridT.nc \\
+will compute the eddy time scale and the $1^{st}$ rossby radius for the given tag.
+\item[Required mesh\_mask files or other files:]mesh\_zgr.nc, mesh\_hgr.nc
+\item[Output:] {\em ets.nc}. This file hold two variables voets and sorosrad.
+\item[Remark:] This routine is based on papers from Stammer et al ( ). See Julien.LeSommer at hmg.inpg.fr for more
+details.
+\item[Associated script:] {\em cdfets.ll}.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfcurl:}}
+\addcontentsline{toc}{subsection}{cdfcurl}
+\index{cdfcurl}
+\begin{description}
+\item[Purpose:] Compute the curl of a vector field.
+\item[Usage:] {\em cdfcurl gridU gridV nameU nameV level }\\
+ If level is different from 0, the 2D curl at level 'level' will be computed. If level is $<=$ 0, then the full 3D curl
+ is computed instead.
+\item[Input:] gridU, gridV are the cdf files holding the U and V component of the vector, nameU and nameV the cdf name
+of the variables corresponding to these components. level in the model level where to compute the curl (if $<=$ 0 the 3D
+curl is computed instead).
+For instance: cdfcurl ORCA025-G32\_y0008m01d10\_gridU.nc ORCA025-G32\_y0008m01d10\_gridV.nc vozocrtx vomecrty 6 \\
+will compute the curl (relative vorticity) at level 6 for the flow field at the given tag. \\
+ cdfcurl ORCA025-G32\_y0008m01d10\_gridU.nc ORCA025-G32\_y0008m01d10\_gridV.nc sozotaux sometauy 1 \\
+will compute the wind-stress curl from the file.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc
+\item[Output:] {\em curl.nc}. The variable name is socurl(2D) or vocurl (3D case).
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpv:}}
+\addcontentsline{toc}{subsection}{cdfpv}
+\index{cdfpv}
+\begin{description}
+\item[Purpose:] Compute the full potential vorticity ( computed at W-point of the C-grid) taking T S U V as input.
+\item[Usage:] {\em cdfpv gridT gridU gridV }\\
+\item[Input:] gridT, gridU, gridV are the cdf files holding the temperature and salinity (gridT) and the U and V components of the velocity. Variables names are assumed to
+be as in OPA9, respectively {\em votemper, vosaline, vozocrtx, vomecrty}.\\
+For instance: cdfpv ORCA025-G70\_y2000m01d05\_gridT.nc ORCA025-G70\_y2000m01d05\_gridU.nc ORCA025-G70\_y2000m01d05\_gridV.nc
+will compute the potential vorticity. \\
+\item[Method:] The potential vorticity is evaluated using the following formula :\\
+
+$ PV = \frac{1}{\rho_0}(f+\zeta)\frac{\partial\sigma_0}{\partial z} $ \\
+
+where $\rho_0 $ takes the constant value of 1020 $kg/m^3$, f is the coriolis parameter ($2\Omega sin(\phi)$), $\zeta$ is the relative vorticity
+(or the curl) of the flow (as computed by cdfcurl). This program assumes that the model grid is a C-grid. PV is computed at W points, which is
+the natural point to compute $\frac{\partial\sigma_0}{\partial z} $. $\zeta$ is computed at f-points, u-v level. Therefore, in order to estimate
+$\zeta$ at W points, a 4-point horizontal average is required (to get $\zeta$ at T-points) followed by a 2-point vertical average to get it
+at W-points.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr
+\item[Output:] {\em pv.nc}. The variable name is vopv. Units are $s^{-1}m^{-1}\times10.^{11}$
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpvor:}}
+\addcontentsline{toc}{subsection}{cdfpvor}
+\index{cdfpvor}
+\begin{description}
+\item[Purpose:] Compute the different component of the Ertel potential vorticity.
+\item[Usage:] {\em cdfpvor gridT gridU gridV }\\
+\item[Input:] gridT, gridU, gridV are the cdf files holding the temperature and salinity (gridT) and the U and V components of the velocity. Variables names are assumed to
+be as in OPA9, respectively {\em votemper, vosaline, vozocrtx, vomecrty}.\\
+For instance: cdfpvor ORCA025-G70\_y2000m01d05\_gridT.nc ORCA025-G70\_y2000m01d05\_gridU.nc ORCA025-G70\_y2000m01d05\_gridV.nc
+will compute the potential vorticity. \\
+\item[Method:] The total potential vorticity is evaluated as the sum of the relative vorticity and the stretching.
+
+$ PV = (f+\zeta_t)\frac{\partial\sigma_0}{\partial z} $ \\
+
+$ f = 2 \Omega sin ( \phi_t \pi / 180. ) $ \\
+
+$ \zeta_f= \frac{\partial u}{\partial y} - \frac{\partial v}{\partial x} $ \\
+
+ and $\zeta_t$ is the mean value of the 4 corners of the grid cell. \\
+$ \frac{\partial\sigma_0}{\partial z} $ is deduced from the Brunt-Vaissala frequency, using the code equation of state (McDougall,1987).
+
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr
+\item[Output:] {\em pvor.nc}. The variables names are vorelvor, vostrvor and vototvor. Units are $kg\cdot m^{-4}\cdot s^{-1}\times10.^{7}$
+\item[Associated script:] none
+\item[Remark:] This tools is provided by Anne-Marie Treguier. It computes almost the same thing than cdfpv, but using different algorithm.
+\end{description}
+
+\subsection*{\underline{cdflspv:}}
+\addcontentsline{toc}{subsection}{cdflspv}
+\index{cdflspv}
+\begin{description}
+\item[Purpose:] Compute the large scale potential vorticity.
+\item[Usage:] {\em cdfpvor gridT }\\
+\item[Input:] gridT, holds the temperature and salinity (gridT). Variables names are assumed to
+be as in OPA9, respectively {\em votemper, vosaline}.\\
+For instance: cdfpvor ORCA025-G70\_y2000m01d05\_gridT.nc
+will compute the large scale potential vorticity. \\
+\item[Method:] The large scale potential vorticity is evaluated as the sum of the relative vorticity and the stretching.
+
+$ PV = (f)\frac{\partial\sigma_0}{\partial z} $ \\
+
+$ f = 2 \Omega sin ( \phi_t \pi / 180. ) $ \\
+
+$ \frac{\partial\sigma_0}{\partial z} $ is directly computed from $ \sigma_0 $, at W point.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr
+\item[Output:] {\em lspv.nc}. The variables name is volspv. Units are $kg\cdot m^{-4}\cdot s^{-1}\times10.^{7}$
+\item[Associated script:] none
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfw:}}
+\addcontentsline{toc}{subsection}{cdfw}
+\index{cdfw}
+\begin{description}
+\item[Purpose:] Compute the vertical velocity field from the continuity equation and the horizontal flow field. \\
+This is for partials steps.
+\item[Usage:] {\em cdfw gridU gridV [nameU nameV ] }\\
+\item[Input:] gridU, gridV are the cdf files holding the U and V component of the vector, nameU and nameV the cdf name
+of the variables corresponding to these components. If they are not given, we assume that these names are respectively
+vozocrtx, and vomecrty.
+For instance: cdfw ORCA025-G32\_y0008m01d10\_gridU.nc ORCA025-G32\_y0008m01d10\_gridV.nc \\
+will compute the wn (vertical velocity) for the flow field at the given tag. \\
+cdfw vitU.nc vitV.nc uzonal vmeridional \\
+will compute wn from vitU.nc and vitV.nc files.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:] {\em w.nc}. The variable name is vovecrtz.
+\item[Associated script:] none
+\item[Remark:] Comparison of wn computed by the model and wn computed by this program shows small differences ($O(10^{-10})$ )
+due to truncature on the flow field.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfgeo-uv:}}
+\addcontentsline{toc}{subsection}{cdfgeo-uv}
+\index{cdfgeo-uv}
+\begin{description}
+\item[Purpose:] Compute the geostrophic velocity from the SSH field. This is for partials steps.
+\item[Usage:] {\em cdfgeo-uv gridT }\\
+\item[Input:] gridT is the file with the SSH named sossheig.
+
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:] {\em ugeo.nc, vgeo.nc }. 2 netcdf files with respectively the U geostrophic component (ugeo), and the V geostrophic
+ component (variable vgeo). Note that in the actual version (to be changed ?) ugeo.nc is computed at the V point of the
+ C-grid, vgeo.nc is computed at the U point of the C-grid.
+\item[Associated script:] none
+\item[Author]: This is a contribution by Don Julian Juanno del rinc\`on del pedregal, Cisese, Ensenada, MX.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfmxl:}}
+\addcontentsline{toc}{subsection}{cdfmxl}
+\index{cdfmxl}
+\begin{description}
+\item[Purpose:] Compute the mixed layer depth based on 3 different criteria: density criterion with $\rho_{crit}=0.01~kg.m^{-3}$,
+density criterion with $\rho_{crit}=0.03~kg.m^{-3}$ and temperature criteria with $ |T_{crit}|=0.2^\circ C $. PARTIAL STEP version.
+\item[Usage:] {\em cdfmxl gridT }\\
+\item[Input:] The only file on input is the gridT type file where the program will look for temperature as {\tt votemper},
+and salinity as {\tt vosaline}.
+For instance: {\tt cdfmxl ORCA025-G42\_y0008m01d10\_gridT.nc }
+will compute the mixed layer depth based on the 3 criteria.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:] {\em mxl.nc}. The variable names are somxl010, somxl030 and somxlt02.
+\item[Associated script:] cdfmxl.ll is a script which computes the mixed layer for each gridT file in a directory.
+\item[Remark:] There is a recent climatology of the somxlt02 variable [de Boyer Montegut \etal (2004)], which is built from
+observations of temperature profiles.
+\end{description}
+
+\subsection*{\underline{cdfmxl-full:}}
+\addcontentsline{toc}{subsection}{cdfmxl-full}
+\index{cdfmxl-full}
+\begin{description}
+\item[Purpose:] Compute the mixed layer depth based on 3 different criteria: density criterion with $\rho_{crit}=0.01~kg.m^{-3}$,
+density criterion with $\rho_{crit}=0.03~kg.m^{-3}$ and temperature criteria with $ |T_{crit}|=0.2^\circ C $. FULL STEP version
+\item[Usage:] {\em cdfmxl-full gridT }\\
+\item[Input:] The only file on input is the gridT type file where the program will look for temperature as {\tt votemper},
+and salinity as {\tt vosaline}.
+For instance: {\tt cdfmxl ORCA025-G03\_y0008m01d10\_gridT.nc }
+will compute the mixed layer depth based on the 3 criteria.
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:] {\em mxl.nc}. The variable names are somxl010, somxl030 and somxlt02.
+\item[Associated script:] cdfmxl-full.ll is a script which computes the mixed layer for each gridT file in a directory.
+\item[Remark:] There is a recent climatology of the somxlt02 variable [de Boyer Montegut \etal (2004)], which is built from
+observations of temperature profiles.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdficediags:}}
+\addcontentsline{toc}{subsection}{cdficediags}
+\index{cdficediags}
+\begin{description}
+\item[Purpose:] Compute ice volume, area and extend (defined as the area where the ice concentration $> 0.15$ ) for
+both hemisphere.
+\item[Usage:] {\em cdficediags icemodfile }\\
+\item[Input:] ncdf file for icemod output
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mask.nc
+\item[Output:] The output is done on the standard output. (see below).
+\item[Associated script:] cdficediags.ll is used for monitoring the ice in ORCA025-G50
+\item[Remark:] The ice volume is $\sum thickness * area * fraction $
+\end{description}
+Example of output :
+\begin{verbatim}
+ Northern Hemisphere
+ NVolume (10^9 m3) 35268.1868656639999
+ NArea (10^9 m2) 13113.4348328960004
+ NExtend (10^9 m2) 13062.9962301439991
+
+ Southern Hemisphere
+ SVolume (10^9 m3) 4879.33240934399964
+ SArea (10^9 m2) 3477.76693043200021
+ SExtend (10^9 m2) 3394.26987212799986
+\end{verbatim}
+
+\newpage
+\subsection*{\underline{cdfcensus:}}
+\addcontentsline{toc}{subsection}{cdfcensus}
+\index{cdfcensus}
+\begin{description}
+\item[Purpose:] Compute the water mass census for a given TS file, with eventual limitation to a specified area.
+\item[Usage:] {\em cdfcensus gridTfile nlog [-zoom imin imax jmin jmax] [ -klim kmin kmax] [-bimg] }\\
+ The program computes the water mass census as the T,S binned volume for the whole area or a restricted area specified
+by the line options. The output is given as an array (S,T) where the value of the array is the volume in the corresponding T,S
+bin. Additionally, $\sigma_0(S,T), \sigma_1(S,T), \sigma_4(S,T),$ are given computed from the EOS. (Plotting purposes). \\
+ nlog is an integer number $>=0$ which is used to distort the output: in fact some water masses are extremely dominant in the ocean, with
+volumes many order of magnitudes above other interesting waters. In order to rescale the output, we apply the following lines of code, as soon
+as nlog $>0$:
+\begin{verbatim}
+ ! use a distortion function ( n x log ) to reduce extrema in the output file.
+ DO ji=1,ns
+ DO jj=1,nt
+ dump(ji,jj)=rcensus(ji,jj)
+ DO ilog=1,nlog
+ dump(ji,jj)=ALOG10(1+dump(ji,jj))
+ END DO
+ END DO
+ END DO
+\end{verbatim}
+If option -bimg specified, a bimg file is output instead of a netcdf file.
+\item[Input:] ncdf file for gridT
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc, mesh\_zgr.nc
+\item[Output:] Output is done on census.nc (variables volcensus,sigma0,sigma2,sigma4). The unit of volcensus is somewhat tricky, depending on the
+ number of log rescaling that where used. A bimg output file is also available if option -bimg given.
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfpendep:}}
+\addcontentsline{toc}{subsection}{cdfpendep}
+\index{cdfpendep}
+\begin{description}
+\item[Purpose:] Computes penetration depth for passive tracer output. This is the ratio between inventory
+ and surface concentration (2D) field
+\item[Usage:] {\em cdfpendep TRCfile [-inv inventory\_name -trc trc\_name ] }
+\item[Input:] TRC file contains the passive tracer outputs. By default, the program assumes that the inventory variable name is
+{\tt invcfc} and the concentration variable name is {\tt cfc11}. If it is not the case, respective inventory and concentration names must
+be specified on the command line with -inv and -trc options.
+\item[Output:] Outpout is done on the {\tt pendep.nc} cdf file with variable {\tt pendep}, units meters.
+\item[Required mesh\_mask files or other files:] none
+\item[Associated script:] : none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfbci:}}
+\addcontentsline{toc}{subsection}{cdfbci}
+\index{cdfbci}
+\begin{description}
+\item[Purpose:] Compute the term of energetic transfert for the baroclinic instability
+\item[Usage:] {\em cdfbci file }
+\item[Input:] file is produced by a companion tools cdfmoyuvwt which produces the required momentum for the BCI/BTI computation.
+\item[Output:] bci.nc file contains 5 variables :
+ \begin{enumerate}
+ \item {\bf dTdx}: zonal derivate of Tbar on T point (x1000)
+ \item {\bf dTdy}: meridional derivate of Tbar on T point (x1000)
+ \item {\bf uT}: anomaly of u times anomaly of T on T point
+ \item {\bf vT}: anomaly of v times anomaly of T on T point
+ \item {\bf bci}: transfert of energy for the baroclinic instability (x1000)
+ \end{enumerate}
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc
+\item[Associated script:] : none
+\item[Author:] Ang\'elique Melet. Ask for details.
+\end{description}
+
+\subsection*{\underline{cdfbti:}}
+\addcontentsline{toc}{subsection}{cdfbti}
+\index{cdfbti}
+\begin{description}
+\item[Purpose:] Compute the term of energetic transfert for the barotropic instability
+\item[Usage:] {\em cdfbti file }
+\item[Input:] file is produced by a companion tools cdfmoyuvwt which produces the required momentum for the BCI/BTI computation.
+\item[Output:] bti.nc file contains 8 variables :
+ \begin{enumerate}
+ \item {\bf dudx}: zonal derivate of u on T point
+ \item {\bf dvdx}: zonal derivate of v on T point
+ \item {\bf dudy}: meridional derivate of u on T point
+ \item {\bf dvdy}: meridional derivate of v on T point
+ \item {\bf anousqrt}: temporal mean of the square of the zonal speed anomaly
+ \item {\bf anovsqrt}: temporal mean of the square of the meridional speed anomaly
+ \item {\bf anouv}: temporal mean of the Reynolds term
+ \item {\bf bti}: transfert of energy for the barotropic instability
+ \end{enumerate}
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc
+\item[Associated script:] : none
+\item[Author:] Ang\'elique Melet. Ask for details.
+\end{description}
+
+\subsection*{\underline{cdfkempemekeepe:}}
+\addcontentsline{toc}{subsection}{cdfkempemekeepe}
+\index{cdfkempemekeepe}
+\begin{description}
+\item[Purpose:] Compute the term of energetic transfert
+ from mean kinetic energy to mean potential energy (T1)
+ and from eddy potential energy to eddy kinetic energy (T3)
+\item[Usage:] {\em cdfkempemekeepe file } (pronounciation is as read.)
+\item[Input:] file is produced by a companion tools cdfmoyuvwt which produces the required momentum for the BCI/BTI computation.
+\item[Output:] transfertst1t3.nc file contains 2 variables :
+ \begin{enumerate}
+ \item {\bf wT}: temporal mean of w times temporal mean of T on T point (*1000)
+ \item {\bf anoW}: temporal mean of anomaly of w times ano of T on T point (*1000)
+ \end{enumerate}
+\item[Required mesh\_mask files or other files:] none
+\item[Associated script:] : none
+\item[Author:] Ang\'elique Melet. Ask for details.
+\end{description}
+
+\subsection*{\underline{cdfnrjcomp:}}
+\addcontentsline{toc}{subsection}{cdfnrjcomp}
+\index{cdfnrjcomp}
+\begin{description}
+\item[Purpose:] Compute the terms for energy components
+ (Mean Kinetic Energy, Eddy Kinetic Energy,
+ Mean Potential Energy, Eddy Potential Energy )
+ compute : tbar,ubar,vbar,anotsqrt,anousqrt,anovsqrt
+\item[Usage:] {\em cdfnrjcomp file }
+\item[Input:] file is produced by a companion tools cdfmoyuvwt which produces the required momentum for the BCI/BTI computation.
+\item[Output:] nrjcomp.nc file contains 6 variables :
+ \begin{enumerate}
+ \item {\bf tbar} : temporal mean of the temperature on T point
+ \item {\bf ubar}: temporal mean of the zonal velocity on T point
+ \item {\bf vbar}: temporal mean of the meridional velocity on T point
+ \item {\bf anotsqrt}: temporal mean of the square of the temperature anomaly on T point (*1000)
+ \item {\bf anousqrt}: temporal mean of the square of the zonal speed anomaly on T point (*1000)
+ \item {\bf anovsqrt}: temporal mean of the square of the meridional speed anomaly on T point (*1000)
+ \end{enumerate}
+\item[Required mesh\_mask files or other files:] none
+\item[Associated script:] : none
+\item[Author:] Ang\'elique Melet. Ask for details.
+\end{description}
+
+
+
+\newpage
+\section{Extracting and information tools}
+\subsection*{\underline{cdfprofile:}}
+\addcontentsline{toc}{subsection}{cdfprofile}
+\index{cdfprofile}
+\begin{description}
+\item[Purpose:] Extract a vertical profile for a given variable in a given file at a given I J
+\item[Usage:] {\em cdfprofile I J file\_name var\_name }
+\item[Input:] I J : i, j position where to look at the profile \\
+ file\_name : name of the file \\
+ var\_name : name of the variable \\
+For instance: cdfprofile 32 45 ORCA035-G32\_y0008m01d10\_gridT.nc votemper \\
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfprobe:}}
+\addcontentsline{toc}{subsection}{cdfprobe}
+\index{cdfprobe}
+\begin{description}
+\item[Purpose:]Display a 2 columns output time(d) value
+\item[Usage:] {\em cdfprobe cdf\_file I J cdfvar [level]}
+\item[Input:] cdf\_file = name of the file \\
+ I J : position where to look at
+ cdfvar : name of the cdf variable \\
+ level : (optional) : Level where to look at
+ example: cdfprobe u10.nc 300 350 u10 \\
+ example: cdfprobe alltag\_gridT.nc 240 234 votemper 30
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\end{description}
+
+\subsection*{\underline{cdfwhereij:}}
+\addcontentsline{toc}{subsection}{cdfwhereij}
+\index{cdfwhereij}
+\begin{description}
+\item[Purpose:] Give the longitude and latitude of the (i,j) points from a coordinate file.
+\item[Usage:] {\em cdfwhereij imin imax jmin jmax coordinate\_file point\_type }
+\item[Input:] imin, imax, jmin, jmax : zoom in i,j coordinates \\
+ coordinate\_file : either a coordinate or a mesh\_hgr file \\
+ point\_type : either T, U, V or F in upper or lower case \\
+For instance: cdfwhereij 32 45 123 432 coordinate\_orca025.nc f \\
+will give the zoom position in longitude latitude coordinates, for the f points
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files.
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdffindij:}}
+\addcontentsline{toc}{subsection}{cdffindij}
+\index{cdffindij}
+\begin{description}
+\item[Purpose:] Give the i,j corresponding to longitude and latitude given as arguments.
+\item[Usage:] {\em cdffindij xmin xmax ymin ymax [coordinate\_file] [point\_type] }
+\item[Input:] xmin, xmax, ymin, ymax : zoom in geographical coordinates \\
+ coordinate\_file : either a coordinate or a mesh\_hgr file. If not given, assumes $coordinates.nc$ \\
+ point\_type : either T, U, V or F in upper or lower case. If not given assumes $F$ \\
+For instance: cdffindij -30 0 -20 40 coordinate\_orca025.nc f \\
+will give the zoom position imin imax jmin jmax for the given configuration, for nearest f-points. \\
+{\tt cdffindij -180 0 -20 25 coordinates\_ORCA\_R025\_lombok+ombai.nc F} \\
+gives:
+\begin{verbatim}
+ rdis = 0.1316580027
+ rdis = 0.1287123561
+ 430 1149 417 602
+ -179.88 -0.12 -19.96 25.03
+\end{verbatim}
+rdis is a raw estimation (in Deg.) of the distance between the given position, and the real position. In some cases,
+the search algorithm fails (zoom across boundaries or in very distorted regions), and an error message is displayed.
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files.
+\item[Output:] output is done on standard output
+\item[Remark:] The arguments must be in the proper order. In particular, if the user needs to specify the point\_type
+it is necessary to also specify the name of the coordinate file.
+\item[Associated script:] none
+\end{description}
+
+\subsection*{\underline{cdfcofdis:}}
+\addcontentsline{toc}{subsection}{cdfcofdis}
+\index{cdfcofdis}
+\begin{description}
+\item[Purpose:] Compute the distance from the coast at the surface of the ocean, and write it to a netcdf file, just as the cofdis
+routine of OPA does. This is therefore the off-line version of cofdis. Remember that the on-line version is not mpp compliant! The given distance corresponds to T points.
+\item[Usage:] {\em cdfcofdis mesh\_hgr.nc mask.nc gridT.nc }
+\item[Input:] the mesh\_zgr and mask files are given on input (with arbitrary names), together with a gridT file, used only for size and depth references.
+\item[Required mesh\_mask files or other files:] given as argument
+\item[Output:] The output file is named dist.coast, with variable name $Tcoast$. Despites its name it is a netcdf file. Name is kept as in NEMO.
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfweight:}}
+\addcontentsline{toc}{subsection}{cdfweight}
+\index{cdfweight}
+\begin{description}
+\item[Purpose:] Return a binary weight file to be used by cdfcoloc.
+\item[Usage:] {\em cdfweight Greg\_File [coord\_file] [point\_type]}
+\item[Input:] Greg\_file = Like G. Holloway file : asci file iyxz.txt (is a station id). \\
+ coordinate\_file : either a coordinate or a mesh\_hgr file. If not given, assumes $coordinates.nc$ \\
+ point\_type : either T, U, V or F in upper or lower case. If not given assumes $F$ \\
+ produce a weight file called weight\_point\_type.bin \\
+For instance: cdfweight iyxz7904.txt coordinate\_ORCA025.nc T \\
+will produce weight\_T.bin file.
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files, mesh\_zgr.nc
+\item[Output:] weight file. This file is an unformatted binary fortran file, suitable for cdfcoloc. It contains as
+ many records as stations in the input ascii file. Each record consists of :\\
+ID ymin xmin idep imin jmin kmin iquadran hN alpha beta gamma (read the code for more details).\\
+\item[Remark:] The arguments must be in the proper order. In particular, if the user needs to specify the point\_type
+it is necessary to also specify the name of the coordinate file.
+\item[Associated script:] none
+\end{description}
+
+\subsection*{\underline{cdfcoloc:}}
+\addcontentsline{toc}{subsection}{cdfcoloc}
+\index{cdfcoloc}
+\begin{description}
+\item[Purpose:] Return an ascii file with colocalized U V Sx Sy and H from a weight file given as input.
+\item[Usage:] {\em cdfcoloc weight\_root gridT gridU gridV }
+\item[Input:] weight\_root is the begining of the weight file name (excluding \_T.bin, \_U.bin or \_V.bin ) \\
+ grid T gridU gridV are the model outputfile from which we take the velocities to be colocalized.
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files, mesh\_zgr.nc and mask.nc
+\item[Output:] produced a default izUVSxSyH.txt ASCII file, formed with 7 columns of data and one line per station. \\
+ i, z : station ID and depth (as on the Greg file). \\
+ U V : E-W and N-S (geographic) velocity component.(cm/s) \\
+ Sx, Sy : e-W and N-S (geographic) bottom slope (\%)\\
+ H: bottom topography (m) \\
+ All these values are computed with a trilinear interpolation at the station location.
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfweight2D:}}
+\addcontentsline{toc}{subsection}{cdfweight2D}
+\index{cdfweight}
+\begin{description}
+\item[Purpose:] Return a binary weight file to be used by cdfcoloc.
+\item[Usage:] {\em cdfweight track.iyxz [pseudo\_coord\_file] [point\_type]}
+\item[Input:] track.iyxz: is a survey bathymetric track file, taken from GEODAS web site, for instance (file.xyz), modified in order
+ to have i lat lon bathy in this order. A script is provided to change file.xyz into file.iyxz (see below) \\
+ pseudo\_coordinate\_file : either a coordinate or a mesh\_hgr file. If not given, assumes $coordinates.nc$ \\
+ point\_type : either T, U, V or F in upper or lower case. If not given assumes $F$ \\
+ produce a weight file called weight\_point\_type.bin \\
+For instance: cdfweight iyxz.txt pseudo\_coordinates\_zapiola\_etopo1.nc T \\
+will produce weight\_T.bin file.
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files, mesh\_zgr.nc
+\item[Output:] weight file. This file is an unformatted binary fortran file, suitable for cdfcoloc. It contains as
+ many records as stations in the input ascii file. Each record consists of :\\
+ID ymin xmin idep imin jmin kmin iquadran hN alpha beta gamma (read the code for more details).\\
+\item[Remark:] This program is a downgrade of cdfweight. Produced weight files will be used by cdfcoloc2d. It is suitable to treat bathymetric files, for instance (etopo1, GEBCO etc...), in order to colocate hydrographic tracks.
+\item[Associated script:] xyz2iyxz.ksh to convert GEODAS xyz file into input file for cdfweight2D
+\end{description}
+
+\subsection*{\underline{cdfcoloc2D:}}
+\addcontentsline{toc}{subsection}{cdfcoloc2D}
+\index{cdfcoloc2D}
+\begin{description}
+\item[Purpose:] Return an ascii file with colocalized H from a weight file given as input.
+\item[Usage:] {\em cdfcoloc2D weight\_root BATHYFILE }
+\item[Input:] weight\_root is the begining of the weight file name (excluding \_T.bin) \\
+ BATHYFILE is a bathymetric file such as ETOPO1 or GEBCO1 for instance.
+\item[Required mesh\_mask files or other files:] either coordinates or mesh\_hgr files
+\item[Output:] produced a default izb.txt ASCII file, formed with 3 columns of data and one line per station. \\
+ i, z : station ID and depth (as on the Greg file). \\
+ H: bottom topography (m) \\
+ All these values are computed with a bilinear interpolation at the station location.
+\item[Remark:] mesh\_hgr.nc file is in this case a pseudo\_coordinates.nc file, computed fron the lon,lat input file by mkcoor.f90
+\item[Associated script:] none
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfclip:}}
+\addcontentsline{toc}{subsection}{cdfclip}
+\index{cdfclip}
+\begin{description}
+\item[Purpose:] Extract a subzone of a netcdf file.
+\item[Usage:] {\em cdfclip -f file -zoom imin imax jmin jmax [kmin kmax ]}
+\item[Input:] file is the netcdf file to clip \\
+ imin imax jmin jmax are the limit in (I,J) space to clip. If optional kmin and kmax are given, cdfclip also
+ clip in the vertical direction. Otherwise, it clips the whole depth of the file.
+For instance: cdfclip -f coordinates.nc -zoom 100 300 250 400
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on {\tt cdfclip.nc} with same variables name as original.
+\item[Remark:] Still to be done : limit to specified variables, clip on the vertical.
+\item[Associated script:] none
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfmaxmoc:}}
+\addcontentsline{toc}{subsection}{cdfmaxmoc}
+\index{cdfmaxmoc}
+\begin{description}
+\item[Purpose:] Give the max and min intensity of the MOC, previously computed with cdfmoc.
+\item[Usage:] {\em cdfmaxmoc moc\_file basin latmin latmax depmin depmax }
+\item[Input:] moc\_file is the netcdf file computed with $cdfmoc$ or $cdfmoc-full$ \\
+ basin is an indicator for the required basin. Can either atl, inp, ind, pac or glo. \\
+ latmin, latmax, depmin, depmax is the window (lat,dep) where the extrema are searched.
+
+For instance: cdfmaxmoc ORCA025-G42\_y0010\_MOC.nc atl -30 70 200 5000 \\
+will indicates the max/min of the overturning and their respective location, for year 10 of
+the run ORCA025-G42, for Atlantic basin, limited to 30S-70N, between 200 m and 5000 m depth.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Remark:] depmin and depmax are given as positive.
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfzoom:}}
+\addcontentsline{toc}{subsection}{cdfzoom}
+\index{cdfzoom}
+\begin{description}
+\item[Purpose:] Shows an ASCII representation of a 2D (x-y, x-z or y-z) slab of any variable from an output file
+\item[Usage:] {\em cdfzoom -f ncfile -zoom imin imax jmin jmax [-lev kmin kmax] [-fact scale\_factor] [-var cdfvarname] }
+\item[Input:] ncfile is the name of the file to look at. \\
+ imin,imax,jmin,jmax are the limits for the horizontal zoom. \\
+ kmin, kmax are the limits for the vertical zoom. If kmin $=$ kmax, then the x-y slab is shown at level kmin. If kmax $>$ kmin,
+then either a x-z or y-z slab will be shown, but in this case, either imin$=$imax, or jmin$=$jmax, otherwise the program will stop. \\
+ scale\_factor is an optional dividing scale factor used to adjust the output values to the fortran format (f12.4) \\
+ cdfvarname is the name of the variable you want to look at. If not given, or wrong name, the program will propose the list of
+ available variables. \\
+
+For instance: cdfzoom -f ORCA05-G50\_y1949m01d30\_gridT.nc -lev 1 43 -zoom 470 482 175 175 -var votemper \\
+will show the vertical slab (x-z) of the temperature field, at J=175, for I between 470 and 482, K from 1 to 43
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfbathy:}}
+\addcontentsline{toc}{subsection}{cdfbathy}
+\index{cdfbathy}
+\begin{description}
+\item[Purpose:] Modify a bathymetric file for NEMO, in many different ways.
+\item[Usage:] {\em cdfbathy -f bathy\_file -zoom imin imax jmin jmax -fillzone -fullstep depmin
+ -replace 'file' -dumpzone 'file' -a -o } \\
+ -file (or -f ) : name of bathy file \\
+ -zoom (or -z ) : sub area of the bathy file to work with (imin imax jmin jmax) \\
+ -fillzone (or -fz ) : sub area will be filled with 0 up to the first coast line \\
+ -raz\_zone (or -raz ) : sub area will be filled with 0 up \\
+ -raz\_below (or -rb ) depmin : bathy set to 0 in the area when bathy <= depmin \\
+ -fullstep (or -fs ) depmin : sub area will be reshaped as full-step, below depmin \\
+ requires the presence of the file zgr\_bat.txt (from ocean.output, eg ) \\
+ -dumpzone (or -d ): sub area will be output to an ascii file, which can be used by -replace \\
+ after manual editing \\
+ -nicedumpzone (or -nd ): sub area will be output to an ascii file (nice output) \\
+ -replace (or -r ) : sub area defined by the file will replace the original bathy \\
+ -append (or -a ) : fortran log file (log.f90) will be append with actual modif \\
+ Standard behaviour is to overwrite/create log file \\
+ -overwrite (or -o ): input bathy file will be used as output. \\
+ Standard behaviour is to use a work copy of the original file \\
+ (indexed from 01 to 99 if necessary )
+
+\item[Input:] This program allows a short syntax for option, and a longer, more mnemonic. \\
+Basically, this program works on a copy of the input file, indexed from 01 to 99 if necessary. You can work directly
+on the input file with the option -overwrite ( or -o), but take care that original data will be modified. \\
+The second important point is that all actions specified through the options apply to the sub-area indicated by the zoom
+option, given in the (I,J) space. \\
+Specific actions are then controled by the options :\\
+\begin{description}
+ \item[information]: just create an ascii file with a formatted copy of the sub-area \\
+ -dumpzone (-d) 'file.txt' \\
+ -nicedumpzone (-nd) 'file.txt', same as -d but with a different format.
+ \item[modification]: For these king of action, a log file (log.f90) is maintained. It records the different modification in
+ a fortran 90 file, that can be used afterward to replace the original bathy. Changes can be append to the log file
+ if -append (-a) option is given. The possible modifications are :\\
+ -fillzone (-fz) : Fill a subarea between the edge of the domain and the 1rst coast line point. Usefull to fill the
+ Pacific, for instance, in a NATL4 configuration, extracted from ORCA025.\\
+ -raz\_zone (-raz) : the sub-area is set to 0. \\
+ -replace (-r) 'file.txt' : replace the 'patch' of bathymetry given by file.txt in the input file. The file.txt is typically
+ created from a previous call with -dumpzone option, and manually edited to fix some details of the topography. \\
+ -fullstep (-fs) : the bathy defined in the sub-area will be z-step like bathymetry. This option requires, an ASCII file
+ describing the vertical discretization of the model. This file ( {\tt zgr\_bat.txt} ) is made from a copy of
+ {\tt ocean.output}
+\end{description}
+\item[Required mesh\_mask files or other files:] {\tt zgr\_bat.txt} for -fs option. ( Should be replace by mesh\_zgr.nc)
+\item[Output:] Output file is 'input\_file'.nn where nn is a 2 digit integer incremented as necessary not to overwrite
+ existing file.
+\item[Associated script:] none
+\item[Remark:] This program was written for helping the user to tune a bathymetric file. Its dump/replace capability as well
+ as the log file maintenance is very much appreciated. It can be improved or extended with new options, if necessary.
+ However, it is not intended to replace the OPABAT package, which well performs initial interpolation and filtering.
+\item[Example:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfvar:}}
+\addcontentsline{toc}{subsection}{cdfvar}
+\index{cdfvar}
+\begin{description}
+\item[Purpose:] Extension to any variable of a file of cdfbathy (see cdfbathy for details).
+\item[Usage:] {\em -f file -v var -zoom imin imax jmin jmax klev jtime -fillzone -fullstep depmin
+ -replace 'file' -dumpzone 'file' -a -o}
+\item[Input:] same as cdfbathy. In addition, you specify the variable name to work with, and the level in the zoom option
+\item[Required mesh\_mask files or other files:]
+\item[Output:] as cdfbathy
+\item[Remark/bugs :] This program requires some cleaning as some options are not relevant for a variable different than bathymetry ... For instance, do not use options such as -fullstep with temperature or salinity ... this may lead to stupid results !
+\item[Associated scripts:] none
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmax:}}
+\addcontentsline{toc}{subsection}{cdfmax}
+\index{cdfmax}
+\begin{description}
+\item[Purpose:] Display min/max of a variable in a file, and their respective location. A sub area can be specified either horizontally or vertically.
+\item[Usage:] {\em cdfmax -f ncfile [-var cdfvarname] [-zoom imin imax jmin jmax] [-lev kmin kmax] [-fact scale\_factor] [-xy]}
+\item[Input:] ncfile is the name of the file to look at. \\
+ cdfvarname is the name of the variable you want to look at. If not given, or wrong name, the program will propose the list of
+ available variables. \\
+ imin,imax,jmin,jmax are the limits for the horizontal zoom. \\
+ kmin, kmax are the limits for the vertical zoom. \\
+ A vertical slab can thus be specified, playing around with the limits. \\
+ scale\_factor is an optional multiplying scale factor usefull for units change. \\
+ If -xy option is used, cdfmax is forced to work on an horizontal slab, whatever the limits are.
+
+For instance: \\
+\scriptsize{
+\begin{verbatim}
+cdfmax -f ORCA05-G60_y1968m12d26_gridT.nc -zoom 500 500 300 500 -var votemper
+ votemper with multiplying factor of 1.000000000
+ i-slab MAX: i long j lat k dep MaxValue MIN: i long j lat k dep MinValue
+ 500 500 -37.75 300 24.24 8 63.88 0.24313E+02 500 -88.71 499 82.95 1 3.05 -0.17027E+01
+\end{verbatim} }
+will show the min/max temperature over the vertical slab (y-z) at I=500, for J between 300 and 500.
+
+\scriptsize{
+\begin{verbatim}
+cdfmax -f ORCA05-G60_y1968m12d26_gridT.nc -fact 100 -var sossheig
+ sossheig with multiplying factor of 100.0000000
+level dep MAX: i long j lat MaxValue MIN: i long j lat MinValue
+ 1 3.05 56 100.25 277 13.38 0.15471E+03 566 -4.75 92 -61.73 -0.13513E+03
+\end{verbatim} }
+will show the min/max SSH in cm.
+
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\item[Remark:] In the CDFTOOLS directory, the attentive reader will find a {\em cdfmax-test} version of this program. It is a beta
+version where the input file may have more than one time step in it. It requires modification in cdfio, and it is not working in
+the standard distribution. Wait for next one !
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmax\_sp:}}
+\addcontentsline{toc}{subsection}{cdfmax\_sp}
+\index{cdfmax\_sp}
+\begin{description}
+\item[Purpose:] Display min/max of a variable in a file, and their respective location. A sub area can be specified either horizontally or vertically.
+ This is very similar to cdfmax, except that it takes into account the 'missing\_value' attribute for variables.
+\item[Usage:] {\em cdfmax\_sp -f ncfile [-var cdfvarname] [-zoom imin imax jmin jmax] [-lev kmin kmax] [-fact scale\_factor] [-xy] }
+\item[Input:] ncfile is the name of the file to look at. \\
+ cdfvarname is the name of the variable you want to look at. If not given, or wrong name, the program will propose the list of
+ available variables. \\
+ imin,imax,jmin,jmax are the limits for the horizontal zoom. \\
+ kmin, kmax are the limits for the vertical zoom. \\
+ A vertical slab can thus be specified, playing around with the limits. \\
+ scale\_factor is an optional multiplying scale factor usefull for units change. \\
+ If -xy is specified, the program is forced to work on an horizontal slab, even if 1 direction is degenerated.
+
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on standard output
+\item[Associated script:] none
+\item[Remark:] In the CDFTOOLS directory, the attentive reader will find a {\em cdfmax-test} version of this program. It is a beta
+version where the input file may have more than one time step in it. It requires modification in cdfio, and it is not working in
+the standard distribution. Wait for next one !
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdf16bit:}}
+\addcontentsline{toc}{subsection}{cdf16bit}
+\index{cdf16bit}
+\begin{description}
+\item[Purpose:] Convert a 32 bit (real*4, or float) model output file into a 16 bit (integer*2 or short) outputfile. The program scans
+ the variables of the file given as input, and if the variables name's is within a pre-defined list (see below), then a \SF and
+ an \ao values are determined to re-map the float onto a short. Used \SF and \ao are written to the file as
+ an attribute of the given variable. These attributes are now recognized by many Netcdf tools and if they exist in the file they are
+ used as soon as the file is read. Defaut values are respectively 1 and 0.
+
+ Additional capability is provided for variables with a great range of values, for which the scaling results in a big loss in precision: The
+log10 of the field is taken before the scaling. This works only for positive values. The save\_log10 attribute
+is associated to this capability. It can take the value 0 (default, no log10 taken) or 1 ( log10 transform before scaling).
+\item[Usage:] {\em cdf16bit 32\-bit\_ncfile [-check] [-verbose] }
+\item[Input:] 32\-bit\_ncfile is the data file.\\
+ -check : This option enables a checking of the scaling : a warning is emitted if the scaling results in an overflow for short variable. The
+ min and max values of the corresponding field is indicated, and a suggestion is made for changing \SF and \ao. \\
+ -verbose : this implicitely activates -check. It gives the same kind of information but in case of 3D variables, details are given foreach
+ level. \\
+For instance: cdf16bit ORCA025-G70\_y2004m02\_gridT.nc -check \\
+will produce a cdf16bit file with the same variable name as in the input file.
+\item[Required mesh\_mask files or other files:] none
+\item[Output:] output is done on cdf16bit.nc file.
+\item[Comments:] A DRAKKAR rule is to rename this file as the original 32 bits file, but with nc16 extension. The -check option is encouraged
+ at least when initiating the conversion. If the \SF ansd \ao are not adequate, the only way is to get the code and change the values,
+ which are hard coded (in fact, what is hard coded are the min and max value for a given variable; \SF and \ao are deduced from them).
+\item[Details:] The standard variables of model output are automatically recognize. Variables not in the list are kept in float. At present,
+ only the vertical diffusivity (votkeavt) is saved using log10.
+\begin{small}
+ \begin{verbatim}
+ votemper ! Potential temperature (Deg C)
+ vosaline ! Salinity (PSU)
+ sossheig ! Sea Surface Heigh (m)
+ somxl010 ! Mixed layer depth (m)
+ sohefldo ! Total Heat flux Down (W/m2)
+ soshfldo ! Solar Heat flux Down (W/m2)
+ sowaflup ! Evaporation - Precipitation Up ( kg/m2/s)
+ sowafldp ! SSS damping term Up (kg/m2/s )
+ iowaflup ! ???
+ sowaflcd ! Concentration Dilution water flux (kg/m2/s)
+ solhflup ! Latent Heat Flux Up (W/m2)
+ solwfldo ! Long Wave radiation Heat flux Down (W/m2)
+ sosbhfup ! Sensible Heat Flux Up (W/m2)
+ vozocrtx ! Zonal Velocity U (m/s)
+ sozotaux ! Zonal Wind Stress (N/m2)
+ vomecrty ! Meridional Velocity V (m/s)
+ sometauy ! Meridional Wind Stress (N/m2)
+ vovecrtz ! Vertical Velocity W (m/s)
+ votkeavt ! Vertical mixing coef log(avt) log(m2/s) : USE SAVE_LOG10
+ isnowthi ! Snow Thickness (m)
+ iicethic ! Ice Thickness (m)
+ iiceprod ! Ice Production (m/kt) (step ice)
+ ileadfra ! Ice Lead Fraction (%) (In fact, ice concentration)
+ iicetemp ! Ice Temperature (Deg C )
+ ioceflxb ! Ocean Ice flux (W/m2)
+ iicevelu ! Zonal Ice Velocity (m/s) (at U point)
+ iicevelv ! Meridional Ice Velocity (m/s) (at V point)
+ isstempe ! Sea Surface Temperature (Deg C)
+ isssalin ! Sea Surface Salinity (PSU)
+ iocetflx ! Total Flux at Ocean Surface (W/m2)
+ iocesflx ! Solar Flux at Ocean Surface (W/m2)
+ iocwnsfl ! Non Solar Flux at Ocean surface (W/m2)
+ iocesafl ! Salt Flux at Ocean Surface (kg/m2/kt)
+ iocestru ! Zonal Ice Ocean Stress (N/m2)
+ iocestrv ! Meridional Ice Ocean Stress (N/m2)
+ iicesflx ! Solar FLux at ice/ocean Surface (W/m2)
+ iicenflx ! Non Solar FLux at ice/ocean Surface (W/m2)
+ isnowpre ! Snow Precipitation (kg/day)
+ \end{verbatim}
+ \end{small}
+ A more flexible way to operate will be imagined soon !
+
+Let float being the physical value and short the stored value, then the following formula applies \\
+ $ float = short \times \SF + \ao $
+\item[Associated script:] cdf16bit.ll
+\end{description}
+
+\subsection*{\underline{cdfconvert:}}
+\addcontentsline{toc}{subsection}{cdfconvert}
+\index{cdfconvert}
+\begin{description}
+\item[Purpose:] Convert a set of dimgfile (Clipper like)
+ to a set of CDF files (Drakkar like )
+\item[Usage:] {\em cdfconvert 'Clipper tag ' 'CLIPPER confcase'}
+\item[Input:] Clipper tag is the tag of the dimg clipper file. \\
+ CLIPPER confcase is for instance ATL6-V6
+\item[Required mesh\_mask files or other files:] mesh\_hgr.nc and mesh\_zgr.nc. There are 2 programs
+ (coordinates2hgr.f90 and coordinates2zgr.f90) which do the job! They require a coordinates.diags and an ASCII bathy file, {\it a la clipper}. Although
+ they are not built as cdftools, the are provided in the cdftools distribution for convenience.
+\item[Output:] {\tt CONFCASE\_TAG\_grid[TUV].nc,CONFCASE\_TAG\_PSI.nc } with the standard name for variables.
+\item[Associated script:] convclipper2nc.ksh
+\item[Remark:] As you can see in the associated script, for a given tag, the full bunch of clipper files must be located
+ in the current directory. ({\it ie} \_U\_, \_V\_, \_T\_, \_S\_, \_2D\_ and eventually \_SSH\_. \_UU\_ and \_VV\_ )
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfflxconv:}}
+\addcontentsline{toc}{subsection}{cdfflxconv}
+\index{cdfflxconv}
+\begin{description}
+\item[Purpose:] Convert a set of fluxes dimgfile (Clipper like)
+ to a set of CDF files (Drakkar like )
+\item[Usage:] {\em cdfflxconv YEAR CONFIG }
+\item[Input:] YEAR is the year on 4 digits, CONFIG, is the CLIPPER config name ({\it eg} ATL3
+\item[Required mesh\_mask files or other files:] clipper coordinates.diags file.
+\item[Output:] This program creates 6 netcdf file with the standard NEMO name for forced simulation:\\
+\begin{verbatim}
+ ECMWF_emp_1d_${year}.${config}.nc
+ ECMWF_qnet_1d_${year}.${config}.nc
+ ECMWF_qsr_1d_${year}.${config}.nc
+ ECMWF_sst_1d_${year}.${config}.nc
+ ECMWF_taux_1d_${year}.${config}.nc
+ ECMWF_tauy_1d_${year}.${config}.nc
+\end{verbatim}
+\item[Associated script:] cdfflxconv.ll
+\item[Remark:]
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfsstconv:}}
+\addcontentsline{toc}{subsection}{cdfsstconv}
+\index{cdfsstconv}
+\begin{description}
+\item[Purpose:] Convert a set of SST dimgfile (Clipper like)
+ to a set of CDF files (Drakkar like )
+\item[Usage:] {\em cdfsstconv YEAR CONFIG }
+\item[Input:] YEAR is the year on 4 digits, CONFIG, is the CLIPPER config name ({\it eg} ATL3
+\item[Required mesh\_mask files or other files:] clipper coordinates.diags file.
+\item[Output:] This program creates 6 netcdf file with the standard NEMO name for forced simulation:\\
+\begin{verbatim}
+ ECMWF_sst_1d_${year}.${config}.nc
+\end{verbatim}
+\item[Associated script:] cdfsstconv.ll
+\item[Remark:] This is in fact a subset of cdfflxconv, limited to SST by ugly goto: :(
+\end{description}
+
+\subsection*{\underline{cdfstrconv:}}
+\addcontentsline{toc}{subsection}{cdfstrconv}
+\index{cdfstrconv}
+\begin{description}
+\item[Purpose:] Convert a set of STRESS dimgfile (Clipper like)
+ to a set of CDF files (Drakkar like )
+\item[Usage:] {\em cdfstrconv YEAR CONFIG }
+\item[Input:] YEAR is the year on 4 digits, CONFIG, is the CLIPPER config name ({\it eg} ATL3
+\item[Required mesh\_mask files or other files:] clipper coordinates.diags file.
+\item[Output:] This program creates 6 netcdf file with the standard NEMO name for forced simulation:\\
+\begin{verbatim}
+ ECMWF_taux_1d_${year}.${config}.nc
+ ECMWF_tauy_1d_${year}.${config}.nc
+\end{verbatim}
+\item[Associated script:] cdfstrconv.ll
+\item[Remark:] This is in fact a subset of cdfflxconv, limited to STRESS by ugly goto: :(
+\end{description}
+
+
+
+
+
+\newpage
+\subsection*{\underline{cdfmltmask:}}
+\addcontentsline{toc}{subsection}{cdfmltmask}
+\index{cdfmltmask}
+\begin{description}
+\item[Purpose:] Mask a given variable of the input file with the appropriate mask read in mask file.
+\item[Usage:] {\em cdfmltmask Input\_file mask\_file cdf\_var point\_type\_on\_Cgrid}
+\item[Input:] Input\_file : file to be masked \\
+ mask\_file : mask file \\
+ cdf\_var: variable to be masked \\
+ point\_type\_on\_Cgrid : either T U V or F
+\item[Required mesh\_mask files or other files:] none, the mask name is given on command line.
+\item[Output:] output is done on Input\_file\_masked.
+\item[Associated script:] none
+\item[Contributor:] M\'elanie Juza.
+\item[Remark:] This program perform the multiplication of the input field with the mask. It can be easily taken as
+ first base for a more complex operation on files.
+\end{description}
+
+\subsection*{\underline{cdfmsk:}}
+\addcontentsline{toc}{subsection}{cdfmsk}
+\index{cdfmsk}
+\begin{description}
+\item[Purpose:] Compute the number of sea grid points from a mask file given on input
+\item[Usage:] {\em cdfmsk maskfile}
+\item[Input:] ncfile is the name of the mask file to look at.
+\item[Required mesh\_mask files or other files:] none, except the mask given as input.
+\item[Output:] output is done on standard output.
+\item[Associated script:] none
+\item[Remark:] The interest of this program is limited; it provides a very stable info for a given config ...
+\end{description}
+
+\newpage
+\subsection*{\underline{cdfmsksal:}}
+\addcontentsline{toc}{subsection}{cdfmsksal}
+\index{cdfmsksal}
+\begin{description}
+\item[Purpose:] Compute a bimg (chart compliant) mask file for the surface of the model, from the salinity field.
+\item[Usage:] {\em cdfmsksal gridT\_file}
+\item[Input:] any file holding a vosaline field
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Output is done on a bimg file, called tmask.bimg
+\item[Associated script:] none
+\item[Remark:] The output is specifically dedicated to the chart plotting program. It is usefull for masking ({\it e.g.}
+forcing files) on the fly. Purely netcdf/Ferret acros may skip this one !
+\end{description}
+
+\subsection*{\underline{cdfmkmask:}}
+\addcontentsline{toc}{subsection}{cdfmkmask}
+\index{cdfmkmask}
+\begin{description}
+\item[Purpose:] Compute a full 3D byte\_mask file (tmask, umask, vmask, fmask) from salinity field in input file.
+\item[Usage:] {\em cdfmkmask gridT\_file}
+\item[Input:] any file holding a vosaline field
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Netcdf file mask\_sal.nc with tmask umask vmask and fmask variables, short integer.
+\item[Associated script:] none
+\item[Remark:] Caution on fmask that may differ from the one produced online by the code, because of local particular settings.
+\end{description}
+
+\subsection*{\underline{cdfmkmask-zone:}}
+\addcontentsline{toc}{subsection}{cdfmkmask-zone}
+\index{cdfmkmask-zone}
+\begin{description}
+\item[Purpose:] Compute a full 3D byte\_mask file (tmask, umask, vmask, fmask) from salinity field in input file, limited to a given zone.
+\item[Usage:] {\em cdfmkmask gridT\_file lonmin lonmax latmin latmax output\_file}
+\item[Input:] gridT is any file holding a vosaline field, lonmin, lonmax, latmin, latmax are the window coordinates where the the mask is build. Outside this window, the mask is set to 0 (as on land).
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Netcdf outputfile whose name is given as arguments, with tmask umask vmask and fmask variables, short integer.
+\item[Associated script:] none
+\item[Remark:] Caution on fmask that may differ from the one produced online by the code, because of local particular settings.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfvita:}}
+\addcontentsline{toc}{subsection}{cdfvita}
+\index{cdfvita}
+\begin{description}
+\item[Purpose:] Compute surface velocity components on the A-grid (T-point), from the C-grid opa output. It also computes the
+ module of the velocity on the A-grid.
+\item[Usage:] {\em cdfvita gridU gridV }
+\item[Input:] gridU, gridV: files holding the variables vozocrtx and vomecrty on the C-grid
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Output file is vita.nc, with the variables sovitua, sovitva , sovitmod
+\item[Associated script:] none
+\item[Remark:] This program is practically ready to treat the full 3D case, if necessary
+\end{description}
+
+\subsection*{\underline{cdfspeed:}}
+\addcontentsline{toc}{subsection}{cdfspeed}
+\index{cdfspeed}
+\begin{description}
+\item[Purpose:] Compute the module of a velocity field
+\item[Usage:] {\em cdfspeed gridU gridV varU varV }
+\item[Input:] gridU, gridV: files holding the velocity components \\
+ varU, varV the name of the variables for zonal and meridional components
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Output file is speed.nc, with the variable U.
+\item[Associated script:] none
+\item[Remark:] This program assume that the velocity components are on the A-grid (tracer points). Which is fine for forcing fields, but not correct
+ for model output. cdfvita may be used as a pre-processor to translate model velocities on the A-grid.
+\end{description}
+
+
+\newpage
+\subsection*{\underline{cdfimprovechk:}}
+\addcontentsline{toc}{subsection}{cdfimprovechk}
+\index{cdfimprovechk}
+\begin{description}
+\item[Purpose:] Given a file with gridded 'observed' or 'sea-truth' value ({\it e.g} Levitus files), and a reference model output for the
+same quantity as the observation, this program tests a $3^{rd}$ file (model output), giving an estimate of the improvement of the test,
+with respect to the reference.
+\item[Usage:] {\em cdfimprovechk cdfvariable obs.nc ref.nc test.nc }
+\item[Input:] cdfvariable = variable name used for checking. Must be in all 3 files. \\
+ obs.nc : observation file ('sea truth') \\
+ ref.nc : reference file ('model base run') \\
+ test.nc : test file (' model sensitivity experiment')
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] chk.nc, same variable (but not same sense!)\\
+ Better than a long speech, the improvement estimates is given by: \\
+
+$ chk = (reference - test ) / ( reference - observation) \cdot mask $ \\
+
+ Where this value is $< 1$ and $ > 0$, the test is better than the reference (with respect to the working variable). Where it is greater
+than 1 it indicates a degradation of the test. Where the value is $< 0$, it denotes an over-shoot of the correction. Where the value is $< -1$,
+ the overshoot gives a worse solution than the reference.
+\item[Associated script:] none
+\item[Example:] In particular, it was written for the tunning of TKE parameter and impact on the summer mixed layer depth. The observations
+files comes from the de Boyer Montaigu climatology; the reference case was with a standard TKE scheme. Different test cases where with the
+new improved tke scheme. The results are interesting but not necessarly easy to undestand or interpret.
+
+\end{description}
+\newpage
+
+\subsection*{\underline{cdfcsp:}}
+\addcontentsline{toc}{subsection}{cdfcsp}
+\index{cdfcsp}
+\begin{description}
+\item[Purpose:] Change missing value to 0.
+\item[Usage:] {\em cdfcsp 'list of files' }
+\item[Input:] input file are typically files from OPA8.2, with a missing value of 1.e20. It can take multi time-frame files on input.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] CAUTION: The input file is rewritten with the correction on the missing value.
+\end{description}
+
+\newpage
+
+\subsection*{\underline{cdfpolymask:}}
+\addcontentsline{toc}{subsection}{cdfpolymask}
+\index{cdfpolymask}
+\begin{description}
+\item[Purpose:] Build a mask file (0/1) with polygon shape. Set mask to 1 in the polygon.
+\item[Usage:] {\em cdfpolymask 'polygon file' 'reference file' }
+\item[Input:] polygon file : This is an ASCII file describing each polygons that are to be used for masking. For each polygon, there
+is a corresponding block of lines: \\
+ -- first line is the name of the polygon (for easy navigation in the file) \\
+ -- second line gives the number of vertices for the polygon, and a flag set to 1 if the polygon crosses the date line (+/- 180 deg) (0 either). \\
+ -- next as many lines as vertices with x, y position of each vertex. \\
+ reference file: a reference netcdf file for headers.
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] results is on polymask.nc file, in the polymask variable (2D variable).
+\item[Remark:] This cdftools uses a new module called modpoly.f90 which is described in the programmer manual.
+\end{description}
+
+\subsection*{\underline{cdfsmooth:}}
+\addcontentsline{toc}{subsection}{cdfsmooth}
+\index{cdfsmooth}
+\begin{description}
+\item[Purpose:] Perform a spatial filtering on input file. Various filters are availble (list to be completed), Lanczos, Hanning, shapiro etc ...
+\item[Usage:] {\em cdfsmooth 'filename' 'n' [filter type] }
+\item[Input:] filename hold the input data. \\
+ n is the number of grid step to filter. \\
+ filter type can be either Lanczos (L,l) or Hanning (H, h) or Shapiro (S,s) or Box (B,b)
+\item[Required mesh\_mask files or other files:] none.
+\item[Output:] Output is done on 'filename'.smooth'n' where smooth is one of L H s B etc ...
+\end{description}
+
+
+\subsection*{\underline{cdfstatcoord:}}
+\addcontentsline{toc}{subsection}{cdfstatcoord}
+\index{cdfstatcoord}
+\begin{description}
+\item[Purpose:] Compute statistics about the grid metric versus latitude
+\item[Usage:] {\em cdfstatcoord coordinate-file mask [mask variable name] }
+\item[Input:] coordinate-file is where horizontal metrics can be found (e1t, e2t) \\
+ mask is the mask file; the statistics will be computed only for non masked points. \\
+ mask variable is by default tmask. It can be changed with this option.
+\item[Required mesh\_mask files or other files:] given as input.
+\item[Output:] Standard output as a zonal mean of e1t e2t, binned by 2 degrees latitude bands.
+\end{description}
+
+
+
+\newpage
+
+\tableofcontents
+\printindex
+\end{document}
diff --git a/DOC/chkguide.ksh b/DOC/chkguide.ksh
new file mode 100755
index 0000000..ae537d8
--- /dev/null
+++ b/DOC/chkguide.ksh
@@ -0,0 +1,42 @@
+#!/bin/ksh
+
+# $Rev: 11 $
+# $Date: 2007-04-13 20:21:21 +0200 (Fri, 13 Apr 2007) $
+CDFTOOLS=../
+
+grep subsection cdftools_prog.tex | grep -v addcontent | grep underline | sed -e 's@\\subsection\*{\\underline{@@' -e 's/}}//' \
+ -e 's/\\//g' | sed -e 's/^ //' | sed -e 's/^.*F/F/' | sed -e 's/^.*S/S/' | sort > list_man
+
+here=$(pwd)
+cd $CDFTOOLS
+grep FUNCTION cdfio.f90 | grep -v END | grep -v -e '!' | sed -e 's/^.*F/F/' | sort > tttmp
+grep FUNCTION eos.f90 | grep -v END | grep -v -e '!' | sed -e 's/^.*F/F/' | sort >> tttmp
+grep SUBROUTINE cdfio.f90 | grep -v END | grep -v -e '!' | sed -e 's/^.*S/S/' | sort >> tttmp
+grep SUBROUTINE eos.f90 | grep -v END | grep -v -e '!' | sed -e 's/^.*S/S/' | sort >> tttmp
+cat tttmp | sort > $here/list_prog ; \rm tttmp
+cd $here
+
+ cat list_prog
+n=01
+for f in $( cat list_prog | awk '{ print $0 }' ); do
+echo $f
+# g=$( echo $f | awk '{print $2}' )
+#echo $g
+# grep -q $g list_man
+# if [ $? == 1 ] ; then
+# printf "\n %02d %s \t %s \n " $n $f 'missing in manual'
+# n=$(( n + 1 ))
+# fi
+done
+ printf "\n"
+exit
+
+for f in $( cat list_man ); do
+ grep -q $f list_prog
+ if [ $? == 1 ] ; then
+ printf "%s \t %s \n \n" $f 'missing in CDFTOOLS ??'
+ fi
+done
+
+\rm -f list_prog list_man
+
diff --git a/DOC/chkuserdone.ksh b/DOC/chkuserdone.ksh
new file mode 100755
index 0000000..ef4f8d6
--- /dev/null
+++ b/DOC/chkuserdone.ksh
@@ -0,0 +1,33 @@
+#!/bin/ksh
+
+# $Rev: 35 $
+# $Date: 2009-04-28 19:38:52 +0200 (Tue, 28 Apr 2009) $
+# suppose that we run this script in $CDFTOOLS/DOC
+CDFTOOLS=../
+
+grep subsection cdftools_user.tex | grep -v addcontent | grep underline | sed -e 's@\\subsection\*{\\underline{@@' -e 's/:}}//' \
+ -e 's/\\//g' | sort > list_man
+here=$(pwd)
+cd $CDFTOOLS
+ls -1 *90 | sed -e 's/.f90//' | sort > $here/list_prog
+cd $here
+
+n=01
+for f in $( cat list_prog ); do
+ grep -q $f list_man
+ if [ $? == 1 ] ; then
+ printf "\n %02d %s \t %s \n " $n $f 'missing in manual'
+ n=$(( n + 1 ))
+ fi
+done
+ printf "\n"
+
+for f in $( cat list_man ); do
+ grep -q $f list_prog
+ if [ $? == 1 ] ; then
+ printf "%s \t %s \n \n" $f 'missing in CDFTOOLS ??'
+ fi
+done
+
+\rm -f list_prog list_man
+
diff --git a/DOC/template.tex b/DOC/template.tex
new file mode 100644
index 0000000..eacb1cb
--- /dev/null
+++ b/DOC/template.tex
@@ -0,0 +1,13 @@
+\newpage
+\subsection*{\underline{XXX:}}
+\addcontentsline{toc}{subsection}{XXX}
+\index{XXX}
+\begin{description}
+\item[Purpose:]
+\item[Usage:] {\em }
+\item[Input:]
+\item[Required mesh\_mask files or other files:]
+\item[Output:]
+\item[Remark/bugs :]
+\item[Associated scripts:]
+\end{description}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cdftools.git
More information about the debian-science-commits
mailing list