Commit 01dda077 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

merged trunk/cdi to branches/cdi-pio

parents 5a47646c 0e1c04e0
......@@ -119,6 +119,7 @@ examples/cdi_write_ens.c -text
examples/cdi_write_f.f -text
examples/cdi_write_f2003.f90 -text
examples/cdi_write_hybrid.c -text
examples/cdi_write_point.c -text
examples/cdi_write_reset.c -text
examples/compf -text
examples/pio/Makefile.am -text
......
2013-09-26 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
2013-11-12 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* Version 1.6.2 released
* using CGRIBEX library version 1.6.2
2013-10-22 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* Added support for netCDF CF time attribute: climatology [Feature #4092]
2013-10-17 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* stream_cdf::isLatAxis() and isLonAxis(): added support for stdname latitude and longitude
2013-10-15 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* added support for GRIB2 key typeOfGeneratingProcess
* added interface function vlistDefVarTypeOfGeneratingProcess() and vlistInqVarTypeOfGeneratingProcess()
2013-10-07 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* listSizeExtend: initialize ops, val and status (Bug #3994)
2013-10-07 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* stream_cdf::isLonAxis/isLatAxis: case sensitive units check
2013-09-02 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* streamCopyRecord: allow mixed netCDF file types
2013-08-26 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* gribapiDefLevel: Bug fix for ZAXIS_REFERENCE (Bug #3747)
2013-08-16 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* netCDF: read reference of an unstructured grid
* netCDF: write reference of an unstructured grid
2013-08-15 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* made gridtype GRID_REFERENCE part of GRID_UNSTRUCTED
* removed gridtype GRID_REFERENCE
2013-08-12 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* GRIB2: added support for level type Lake Bottom (grib level type 162)
* GRIB2: added support for level type Bottom Of Sediment Layer (grib level type 163)
* GRIB2: added support for level type Bottom Of Thermally Active Sediment Layer (grib level type 164)
* GRIB2: added support for level type Bottom Of Sediment Layer Penetrated By Thermal Wave (grib level type 165)
* GRIB2: added support for level type Mixing Layer (grib level type 166)
2013-08-09 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* gribapiGetValidityDateTime: check timeRangeIndicator for editionNumber =1 (bug fix)
2013-07-16 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* netCDF: added support for zaxis attribute: positive
2013-07-15 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* Version 1.6.1.1 released (merged branche cdi-pio to trunk cdi)
2013-07-08 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* netCDF: wrong result if type of data and type of attribute valid_range differ [Bug #3727]
......
......@@ -149,6 +149,13 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_CC = @BUILD_CC@
BUILD_CFLAGS = @BUILD_CFLAGS@
BUILD_CXX = @BUILD_CXX@
BUILD_F77 = @BUILD_F77@
BUILD_FC = @BUILD_FC@
BUILD_FCFLAGS = @BUILD_FCFLAGS@
BUILD_LDFLAGS = @BUILD_LDFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CDI_F90_INTERFACE_FCFLAGS = @CDI_F90_INTERFACE_FCFLAGS@
......
CDI NEWS
--------
Version 1.6.2 (26 September 2013):
Version 1.6.2 (12 November 2013):
New features:
* Added support for netCDF CF time attribute: climatology [Feature #4092]
* made gridtype GRID_REFERENCE part of GRID_UNSTRUCTED
* GRIB2: added support for level type Lake Bottom (grib level type 162)
* GRIB2: added support for level type Bottom Of Sediment Layer (grib level type 163)
* GRIB2: added support for level type Bottom Of Thermally Active Sediment Layer (grib level type 164)
* GRIB2: added support for level type Bottom Of Sediment Layer Penetrated By Thermal Wave (grib level type 165)
* GRIB2: added support for level type Mixing Layer (grib level type 166)
Fixed bugs:
* netCDF: wrong result if type of data and type of attribute valid_range differ [Bug #3727]
* netCDF: wrong result if type of data and type of attribute valid_range differ [Bug #3727]
Version 1.6.1 (18 June 2013):
......
......@@ -123,6 +123,13 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_CC = @BUILD_CC@
BUILD_CFLAGS = @BUILD_CFLAGS@
BUILD_CXX = @BUILD_CXX@
BUILD_F77 = @BUILD_F77@
BUILD_FC = @BUILD_FC@
BUILD_FCFLAGS = @BUILD_FCFLAGS@
BUILD_LDFLAGS = @BUILD_LDFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CDI_F90_INTERFACE_FCFLAGS = @CDI_F90_INTERFACE_FCFLAGS@
......
......@@ -425,13 +425,13 @@ void printShortinfo(int streamID, int vlistID, int vardis)
levelsize = zaxisInqSize(zaxisID);
/* zaxisInqLongname(zaxisID, longname); */
zaxisName(zaxistype, longname);
longname[17] = 0;
longname[18] = 0;
zaxisInqUnits(zaxisID, units);
units[12] = 0;
if ( zaxistype == ZAXIS_GENERIC && ltype != 0 )
nbyte0 = fprintf(stdout, " %4d : %-11s (ltype=%3d) : ", vlistZaxisIndex(vlistID, zaxisID)+1, longname, ltype);
else
nbyte0 = fprintf(stdout, " %4d : %-17s %5s : ", vlistZaxisIndex(vlistID, zaxisID)+1, longname, units);
nbyte0 = fprintf(stdout, " %4d : %-18s %5s : ", vlistZaxisIndex(vlistID, zaxisID)+1, longname, units);
nbyte = nbyte0;
for ( levelID = 0; levelID < levelsize; levelID++ )
{
......@@ -449,7 +449,7 @@ void printShortinfo(int streamID, int vlistID, int vardis)
{
double level1, level2;
nbyte = nbyte0;
nbyte0 = fprintf(stdout, "%33s : ", "bounds");
fprintf(stdout, "%33s : ", "bounds");
for ( levelID = 0; levelID < levelsize; levelID++ )
{
if ( nbyte > MAXCHARS )
......@@ -464,6 +464,30 @@ void printShortinfo(int streamID, int vlistID, int vardis)
}
fprintf(stdout, "\n");
}
if ( zaxistype == ZAXIS_REFERENCE )
{
int number = zaxisInqNumber(zaxisID);
if ( number > 0 )
{
fprintf(stdout, "%33s : ", "zaxis");
fprintf(stdout, "number = %d\n", number);
}
char uuidOfVGrid[17];
zaxisInqUUID(zaxisID, uuidOfVGrid);
if ( uuidOfVGrid[0] != 0 )
{
char uuidOfVGridStr[37];
uuid2str(uuidOfVGrid, uuidOfVGridStr);
if ( uuidOfVGridStr[0] != 0 && strlen(uuidOfVGridStr) == 36 )
{
fprintf(stdout, "%33s : ", "uuid");
fprintf(stdout, "%s\n", uuidOfVGridStr);
}
}
}
}
taxisID = vlistInqTaxis(vlistID);
......
......@@ -213,9 +213,7 @@ void printGridInfo(int vlistID)
fprintf(stdout, "%*s", nbyte0, "");
fprintf(stdout, "%-9s : first = %.9g", yname, yfirst);
if ( ysize > 1 ) fprintf(stdout, " last = %.9g", ylast);
if ( IS_NOT_EQUAL(yinc, 0) &&
(gridtype == GRID_LONLAT || gridtype == GRID_SINUSOIDAL ||
gridtype == GRID_LCC2 || gridtype == GRID_LAEA) )
if ( IS_NOT_EQUAL(yinc, 0) && gridtype != GRID_GAUSSIAN && gridtype != GRID_GAUSSIAN_REDUCED )
fprintf(stdout, " inc = %.9g", yinc);
fprintf(stdout, " %s", yunits);
fprintf(stdout, "\n");
......@@ -278,28 +276,37 @@ void printGridInfo(int vlistID)
nd = gridInqGMEnd(gridID);
fprintf(stdout, "size : dim = %d nd = %d ni = %d\n", gridsize, nd, ni);
}
else if ( gridtype == GRID_REFERENCE )
{
int number, position;
number = gridInqNumber(gridID);
position = gridInqPosition(gridID);
fprintf(stdout, "size : dim = %d\n", gridsize);
fprintf(stdout, "%*s", nbyte0, "");
fprintf(stdout, "grid : number = %d position = %d\n", number, position);
if ( gridInqReference(gridID, NULL) )
{
char reference_link[8192];
gridInqReference(gridID, reference_link);
fprintf(stdout, "%*s", nbyte0, "");
fprintf(stdout, "path : %s\n", reference_link);
}
}
else if ( gridtype == GRID_CURVILINEAR || gridtype == GRID_UNSTRUCTURED )
{
if ( gridtype == GRID_CURVILINEAR )
fprintf(stdout, "size : dim = %d nx = %d ny = %d\n", gridsize, xsize, ysize);
fprintf(stdout, "size : dim = %d nx = %d ny = %d", gridsize, xsize, ysize);
else
fprintf(stdout, "size : dim = %d nvertex = %d\n", gridsize, gridInqNvertex(gridID));
fprintf(stdout, "size : dim = %d", gridsize);
if ( gridtype == GRID_UNSTRUCTURED && gridInqNvertex(gridID) > 0 )
fprintf(stdout, " nvertex = %d", gridInqNvertex(gridID));
fprintf(stdout, "\n");
if ( gridtype == GRID_UNSTRUCTURED )
{
int number = gridInqNumber(gridID);
int position = gridInqPosition(gridID);
if ( number > 0 )
{
fprintf(stdout, "%*s", nbyte0, "");
fprintf(stdout, "grid : number = %d position = %d\n", number, position);
}
if ( gridInqReference(gridID, NULL) )
{
char reference_link[8192];
gridInqReference(gridID, reference_link);
fprintf(stdout, "%*s", nbyte0, "");
fprintf(stdout, "uri : %s\n", reference_link);
}
}
if ( gridInqXvals(gridID, NULL) && gridInqYvals(gridID, NULL) )
{
......
......@@ -15,6 +15,7 @@ case "${HOSTNAME}" in
bailung*)
./configure --prefix=$HOME/local \
--enable-maintainer-mode \
--enable-iso-c-interface \
--enable-swig \
--enable-python \
--with-jasper=/opt/local \
......@@ -41,6 +42,7 @@ case "${HOSTNAME}" in
hama*)
./configure --prefix=$HOME/local \
--enable-maintainer-mode \
--enable-iso-c-interface \
--enable-swig \
--enable-python \
--with-jasper=/opt/local \
......@@ -129,7 +131,7 @@ case "${HOSTNAME}" in
--with-zlib=/sw/aix61/zlib-1.2.6 \
--with-szlib=/sw/aix61/szip-2.1-threadsafe \
AR="ar -X 64" LDFLAGS="-brtl" FC=xlf2003_r CC=xlc_r \
CFLAGS="-g -O3 -q64 -qhot -qstrict -qarch=pwr6 -qtune=balanced -qlistfmt=html=transforms -DHAVE_MMAP -Dextname" \
CFLAGS="-g -O3 -qhot -q64 -qarch=auto -qtune=auto -qlistfmt=html=transforms -DHAVE_MMAP -Dextname" \
FCFLAGS="-qsuffix=cpp=f90" \
SHELL=/bin/bash
;;
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for cdi 1.6.1.1.
# Generated by GNU Autoconf 2.68 for cdi 1.6.2.
#
# Report bugs to <http://code.zmaw.de/projects/cdi>.
#
......@@ -570,8 +570,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='cdi'
PACKAGE_TARNAME='cdi'
PACKAGE_VERSION='1.6.1.1'
PACKAGE_STRING='cdi 1.6.1.1'
PACKAGE_VERSION='1.6.2'
PACKAGE_STRING='cdi 1.6.2'
PACKAGE_BUGREPORT='http://code.zmaw.de/projects/cdi'
PACKAGE_URL=''
 
......@@ -1435,7 +1435,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures cdi 1.6.1.1 to adapt to many kinds of systems.
\`configure' configures cdi 1.6.2 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -1505,7 +1505,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of cdi 1.6.1.1:";;
short | recursive ) echo "Configuration of cdi 1.6.2:";;
esac
cat <<\_ACEOF
 
......@@ -1687,7 +1687,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
cdi configure 1.6.1.1
cdi configure 1.6.2
generated by GNU Autoconf 2.68
 
Copyright (C) 2010 Free Software Foundation, Inc.
......@@ -2448,7 +2448,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by cdi $as_me 1.6.1.1, which was
It was created by cdi $as_me 1.6.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
 
$ $0 $@
......@@ -3345,7 +3345,7 @@ fi
 
# Define the identity of the package.
PACKAGE='cdi'
VERSION='1.6.1.1'
VERSION='1.6.2'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -27933,7 +27933,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by cdi $as_me 1.6.1.1, which was
This file was extended by cdi $as_me 1.6.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -27999,7 +27999,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
cdi config.status 1.6.1.1
cdi config.status 1.6.2
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
 
......
# Process this file with autoconf to produce a configure script.
AC_INIT([cdi], [1.6.1.1], [http://code.zmaw.de/projects/cdi])
AC_INIT([cdi], [1.6.2], [http://code.zmaw.de/projects/cdi])
echo "configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}"
......
......@@ -102,6 +102,14 @@ Function catalog:
gridInqYlongname Get the longname of a Y-axis
gridDefYunits Define the units of a Y-axis
gridInqYunits Get the units of a Y-axis
gridDefNumber Define the reference number for an unstructured grid
gridInqNumber Get the reference number to an unstructured grid
gridDefPosition Define the position of grid in the reference file
gridInqPosition Get the position of grid in the reference file
gridDefReference Define the reference URI for an unstructured grid
gridInqReference Get the reference URI to an unstructured grid
gridDefUUID Define the UUID for an unstructured grid
gridInqUUID Get the UUID to an unstructured grid
-------------------------------------------------------------
zaxis
-------------------------------------------------------------
......
......@@ -94,6 +94,14 @@ gridDefYunits grid
gridInqYunits grid
gridDefLambert grid
gridInqLambert grid
gridDefNumber grid
gridInqNumber grid
gridDefPosition grid
gridInqPosition grid
gridDefReference grid
gridInqReference grid
gridDefUUID grid
gridInqUUID grid
zaxisCreate zaxis
zaxisDestroy zaxis
zaxisDuplicate zaxis
......
......@@ -18,8 +18,7 @@ The function {\tt gridCreate} creates a horizontal Grid.
The type of the grid, one of the set of predefined {\CDI} grid types.
The valid {\CDI} grid types are {\tt GRID\_GENERIC}, {\tt GRID\_GAUSSIAN},
{\tt GRID\_LONLAT}, {\tt GRID\_LCC}, {\tt GRID\_SPECTRAL},
{\tt GRID\_GME}, {\tt GRID\_CURVILINEAR}, {\tt GRID\_UNSTRUCTURED} and
{\tt GRID\_REFERENCE}.
{\tt GRID\_GME}, {\tt GRID\_CURVILINEAR} and {\tt GRID\_UNSTRUCTURED} and.
\item[{\tt size}]
Number of gridpoints.
......@@ -126,7 +125,7 @@ Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
one of the set of predefined {\CDI} grid types.
The valid {\CDI} grid types are {\tt GRID\_GENERIC}, {\tt GRID\_GAUSSIAN},
{\tt GRID\_LONLAT}, {\tt GRID\_LCC}, {\tt GRID\_SPECTRAL}, {\tt GRID\_GME},
{\tt GRID\_CURVILINEAR}, {\tt GRID\_UNSTRUCTURED} and {\tt GRID\_REFERENCE}.
{\tt GRID\_CURVILINEAR} and {\tt GRID\_UNSTRUCTURED}.
......@@ -837,3 +836,195 @@ Units of the Y-axis. The caller must allocate space for the
{\tt gridInqYunits} returns the units of the Y-axis to the parameter units.
\subsection{Define the reference number for an unstructured grid: {\tt gridDefNumber}}
\index{gridDefNumber}
\label{gridDefNumber}
The function {\tt gridDefNumber} defines the reference number for an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefNumber(int gridID, const int number);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\item[{\tt number}]
Reference number for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the reference number to an unstructured grid: {\tt gridInqNumber}}
\index{gridInqNumber}
\label{gridInqNumber}
The function {\tt gridInqNumber} returns the reference number to an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
int gridInqNumber(int gridID);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\tt gridInqNumber} returns the reference number to an unstructured grid.
\subsection{Define the position of grid in the reference file: {\tt gridDefPosition}}
\index{gridDefPosition}
\label{gridDefPosition}
The function {\tt gridDefPosition} defines the position of grid in the reference file.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefPosition(int gridID, const int position);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt position\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\item[{\tt position}]
Position of grid in the reference file.
\end{deflist}
\end{minipage}
\subsection{Get the position of grid in the reference file: {\tt gridInqPosition}}
\index{gridInqPosition}
\label{gridInqPosition}
The function {\tt gridInqPosition} returns the position of grid in the reference file.
\subsubsection*{Usage}
\begin{verbatim}
int gridInqPosition(int gridID);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\tt gridInqPosition} returns the position of grid in the reference file.
\subsection{Define the reference URI for an unstructured grid: {\tt gridDefReference}}
\index{gridDefReference}
\label{gridDefReference}
The function {\tt gridDefReference} defines the reference URI for an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefReference(int gridID, const char *reference);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt reference\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\item[{\tt reference}]
Reference URI for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the reference URI to an unstructured grid: {\tt gridInqReference}}
\index{gridInqReference}
\label{gridInqReference}
The function {\tt gridInqReference} returns the reference URI to an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
char *gridInqReference(int gridID, char *reference);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\tt gridInqReference} returns the reference URI to an unstructured grid.
\subsection{Define the UUID for an unstructured grid: {\tt gridDefUUID}}
\index{gridDefUUID}
\label{gridDefUUID}
The function {\tt gridDefUUID} defines the UUID for an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefUUID(int gridID, const char *uuid);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\item[{\tt uuid}]
UUID for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the UUID to an unstructured grid: {\tt gridInqUUID}}
\index{gridInqUUID}
\label{gridInqUUID}
The function {\tt gridInqUUID} returns the UUID to an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
char *gridInqUUID(int gridID, char *uuid);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\tt gridID\ }
\item[{\tt gridID}]
Grid ID, from a previous call to {\htmlref{\tt gridCreate}{gridCreate}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\tt gridInqUUID} returns the UUID to an unstructured grid.
......@@ -40,6 +40,15 @@ Create a horizontal Grid.
Define the number of parallels between a pole and the equator.
\section*{\tt \htmlref{gridDefNumber}{gridDefNumber}}
\begin{verbatim}
void gridDefNumber (int gridID, int number);
\end{verbatim}
Define the reference number for an unstructured grid.
\section*{\tt \htmlref{gridDefNvertex}{gridDefNvertex}}
\begin{verbatim}
......@@ -49,6 +58,15 @@ Define the number of parallels between a pole and the equator.
Define the number of vertex of a Gridbox.
\section*{\tt \htmlref{gridDefPosition}{gridDefPosition}}
\begin{verbatim}
void gridDefPosition (int gridID, int position);
\end{verbatim}
Define the position of grid in the reference file.
\section*{\tt \htmlref{gridDefPrec}{gridDefPrec}}