Commits (36)
2019-10-29 Uwe Schulzweida
* using CGRIBEX library version 1.9.5
* Version 1.9.9 released
2020-08-16 Matthew Krupcale
* Missing math library during linking [Bug #9856]
* Fix incorrect detection and usage of netcdf_par.h during configure [Bug #9855]
2020-08-09 Uwe Schulzweida
* Fix problem with GRIB2 key indicatorOfUnitForTimeRange [Bug #9846]
2020-06-17 Uwe Schulzweida
* Removed unsed function vlistInqVarTimave() and vlistDefVarTimave()
2020-06-10 Uwe Schulzweida
* Replaced vlistDefVarName()/vlistInqVarName() by cdiDefKeyString()/cdiInqKeyString() with CDI_KEY_NAME
* Replaced vlistDefVarLongname()/vlistInqVarLongname() by cdiDefKeyString()/cdiInqKeyString() with CDI_KEY_LONGNAME
* Replaced vlistDefVarUnits()/vlistInqVarUnits() by cdiDefKeyString()/cdiInqKeyString() with CDI_KEY_UNITS
* Replaced vlistDefVarStdname()/vlistInqVarStdname() by cdiDefKeyString()/cdiInqKeyString() with CDI_KEY_STDNAME
2020-05-15 Uwe Schulzweida
* Erroneous behaviour setting GRIB2 bitsPerValue (bug fix) [report: Florian Prill]
......
vlistDefVarName(vlistID, varID, name) -> cdiDefKeyString(vlistID, varID, CDI_KEY_NAME, name)
vlistDefVarLongname(vlistID, varID, longname) -> cdiDefKeyString(vlistID, varID, CDI_KEY_LONGNAME, longname)
vlistDefVarUnits(vlistID, varID, units) -> cdiDefKeyString(vlistID, varID, CDI_KEY_UNITS, units)
vlistDefVarStdname(vlistID, varID, stdname) -> cdiDefKeyString(vlistID, varID, CDI_KEY_STDNAME, stdname)
vlistInqVarName(vlistID, varID, name) -> cdiInqKeyString(vlistID, varID, CDI_KEY_NAME, name, &length) // partly obsolete
vlistInqVarLongname(vlistID, varID, longname) -> cdiInqKeyString(vlistID, varID, CDI_KEY_LONGNAME, longname, &length) // partly obsolete
vlistInqVarUnits(vlistID, varID, units) -> cdiInqKeyString(vlistID, varID, CDI_KEY_UNITS, units, &length) // partly obsolete
vlistInqVarStdname(vlistID, varID, stdname) -> cdiInqKeyString(vlistID, varID, CDI_KEY_STDNAME, stdname, &length)
gridDefXname(gridID, xname) -> cdiDefKeyString(gridID, CDI_XAXIS, CDI_KEY_NAME, xname)
gridDefXlongname(gridID, xlongname) -> cdiDefKeyString(gridID, CDI_XAXIS, CDI_KEY_LONGNAME, xlongname)
gridDefXunits(gridID, xunits) -> cdiDefKeyString(gridID, CDI_XAXIS, CDI_KEY_UNITS, xunits)
......
......@@ -46,11 +46,10 @@ case "${HOSTNAME}" in
--enable-maintainer-mode \
--enable-iso-c-interface \
--enable-swig \
--enable-python \
--with-eccodes=$HOME/local/eccodes-2.6.0 \
--with-eccodes=$HOME/local/eccodes-2.17.0 \
--with-netcdf=$HOME/local/netcdf-4.4.1.1 \
--with-szlib=$HOME/local \
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.6.0/lib" \
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.17.0/lib" \
CC=gcc CFLAGS="-g -pipe -D_REENTRANT -Wall -Wwrite-strings -W -Wfloat-equal -pedantic -O3 -march=native"
;;
cinglung*|feilung*|wanglung*)
......
......@@ -144,8 +144,8 @@ AC_DEFINE_UNQUOTED(COMP_VERSION, ["$COMP_VERSION"], [Compiler version])
# Check for system type
AC_DEFINE_UNQUOTED([SYSTEM_TYPE],["$ac_cv_build"], [System type])
AC_SUBST([SYSTEM_TYPE],["$ac_cv_build"])
# ----------------------------------------------------------------------
# Check for math library
# -----------------------------------------------------------------------
# Check for math library and add -lm to LIBS
AC_SEARCH_LIBS(floor, m)
# ----------------------------------------------------------------------
# Add basic configure options
......@@ -230,12 +230,13 @@ main(int argc, char **argv)
[HAVE_PARALLEL_NC4=1],
[AC_MSG_WARN([The supplied netCDF library does not support MPI parallel invocations])],
[AC_INCLUDES_DEFAULT
@%:@include <netcdf.h>
@%:@include <netcdf_par.h>])],
[AC_CHECK_DECL([MPI_Bcast],
[HAVE_PARALLEL_NC4=1],
[AC_MSG_WARN([The supplied netCDF library does not support MPI parallel invocations])],
[AC_INCLUDES_DEFAULT
@%:@include <netcdf.h>])], [AC_INCLUDES_DEFAULT])
@%:@ifdef HAVE_NETCDF_H
@%:@include <netcdf.h>
@%:@endif])
dnl parallel netCDF support still requires ScalES-PPM and YAXT to
dnl re-arrange the data when running with more than one collector
PKG_CHECK_MODULES([PPM_CORE],[scales-ppm-core],
......
......@@ -58,29 +58,32 @@ Function catalog:
vlistInqVarTsteptype Get the timestep type of a Variable
vlistDefVarCode Define the code number of a Variable
vlistInqVarCode Get the Code number of a Variable
vlistDefVarName Define the name of a Variable
vlistInqVarName Get the name of a Variable
vlistDefVarLongname Define the long name of a Variable
vlistInqVarLongname Get the longname of a Variable
vlistDefVarStdname Define the standard name of a Variable
vlistInqVarStdname Get the standard name of a Variable
vlistDefVarUnits Define the units of a Variable
vlistInqVarUnits Get the units of a Variable
vlistDefVarDatatype Define the data type of a Variable
vlistInqVarDatatype Get the data type of a Variable
vlistDefVarMissval Define the missing value of a Variable
vlistInqVarMissval Get the missing value of a Variable
-------------------------------------------------------------
cdi_key
-------------------------------------------------------------
cdiDefKeyString Define a string from a key
cdiInqKeyString Get a string from a key
cdiDefKeyInt Define an integer value from a key
cdiInqKeyInt Get an integer value from a key
cdiDefKeyFloat Define a floating point value from a key
cdiInqKeyFloat Get a floating point value from a key
cdiDefKeyBytes Define a byte array from a key
cdiInqKeyBytes Get a byte array from a key
-------------------------------------------------------------
cdi_att
-------------------------------------------------------------
cdiInqNatts Get number of attributes
cdiInqAtt Get information about an attribute
cdiDefAttTxt Define a text attribute
cdiInqAttTxt Get the value(s) of a text attribute
cdiDefAttInt Define an integer attribute
cdiInqAttInt Get the value(s) of an integer attribute
cdiDefAttFlt Define a floating point attribute
cdiInqAttFlt Get the value(s) of a floating point attribute
cdiDefAttTxt Define a text attribute
cdiInqAttTxt Get the value(s) of a text attribute
-------------------------------------------------------------
grid
-------------------------------------------------------------
......@@ -103,26 +106,6 @@ Function catalog:
gridInqXbounds Get the bounds of a X-axis
gridDefYbounds Define the bounds of a Y-axis
gridInqYbounds Get the bounds of a Y-axis
gridDefXname Define the name of a X-axis
gridInqXname Get the name of a X-axis
gridDefXlongname Define the longname of a X-axis
gridInqXlongname Get the longname of a X-axis
gridDefXunits Define the units of a X-axis
gridInqXunits Get the units of a X-axis
gridDefYname Define the name of a Y-axis
gridInqYname Get the name of a Y-axis
gridDefYlongname Define the longname of a Y-axis
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
-------------------------------------------------------------
......@@ -133,12 +116,6 @@ Function catalog:
zaxisDefLevels Define the levels of a Z-axis
zaxisInqLevels Get all levels of a Z-axis
zaxisInqLevel Get one level of a Z-axis
zaxisDefName Define the name of a Z-axis
zaxisInqName Get the name of a Z-axis
zaxisDefLongname Define the longname of a Z-axis
zaxisInqLongname Get the longname of a Z-axis
zaxisDefUnits Define the units of a Z-axis
zaxisInqUnits Get the units of a Z-axis
-------------------------------------------------------------
taxis
-------------------------------------------------------------
......
......@@ -38,27 +38,27 @@ vlistInqVarZaxis vlist_var
vlistInqVarTsteptype vlist_var
vlistDefVarCode vlist_var
vlistInqVarCode vlist_var
vlistDefVarName vlist_var
vlistInqVarName vlist_var
vlistDefVarLongname vlist_var
vlistInqVarLongname vlist_var
vlistDefVarStdname vlist_var
vlistInqVarStdname vlist_var
vlistDefVarUnits vlist_var
vlistInqVarUnits vlist_var
vlistDefVarDatatype vlist_var
vlistInqVarDatatype vlist_var
vlistDefVarMissval vlist_var
vlistInqVarMissval vlist_var
cdiDefKeyString cdi_key
cdiInqKeyString cdi_key
cdiDefKeyInt cdi_key
cdiInqKeyInt cdi_key
cdiDefKeyFloat cdi_key
cdiInqKeyFloat cdi_key
cdiDefKeyBytes cdi_key
cdiInqKeyBytes cdi_key
cdiInqNatts cdi_att
cdiInqAtt cdi_att
cdiDelAtt cdi_att
cdiDefAttTxt cdi_att
cdiInqAttTxt cdi_att
cdiDefAttInt cdi_att
cdiInqAttInt cdi_att
cdiDefAttFlt cdi_att
cdiInqAttFlt cdi_att
cdiDefAttTxt cdi_att
cdiInqAttTxt cdi_att
gridCreate grid
gridDestroy grid
gridDuplicate grid
......@@ -80,30 +80,6 @@ gridDefXbounds grid
gridInqXbounds grid
gridDefYbounds grid
gridInqYbounds grid
gridDefXpole grid
gridInqXpole grid
gridDefXname grid
gridInqXname grid
gridDefXlongname grid
gridInqXlongname grid
gridDefXunits grid
gridInqXunits grid
gridDefYname grid
gridInqYname grid
gridDefYlongname grid
gridInqYlongname grid
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
......@@ -119,12 +95,6 @@ zaxisInqLevel zaxis
zaxisDefVct zaxis
zaxisInqVctSize zaxis
zaxisInqVct zaxis
zaxisDefName zaxis
zaxisInqName zaxis
zaxisDefLongname zaxis
zaxisInqLongname zaxis
zaxisDefUnits zaxis
zaxisInqUnits zaxis
taxisCreate taxis
taxisDestroy taxis
taxisDuplicate taxis
......
Attributes may be associated with each variable to specify non
CDI standard properties. CDI standard properties as code, name,
units, and missing value are directly associated with each variable by
the corresponding CDI function (e.g. {\htmlref{\texttt{vlistDefVarName}}{vlistDefVarName}}).
An attribute has a variable to which it is assigned, a name, a type,
Attributes are metadata used to describe variables or a data set.
CDI distinguishes between key attributes and user attributes.
Key attributes are described in the last chapter.
User defined attributes are additional attributes that are not interpreted by CDI.
These attributes are only available for NetCDF datasets. Here they
correspond to all attributes that are not used by CDI as key attributes.
A user defined attribute has a variable to which it is assigned, a name, a type,
a length, and a sequence of one or more values.
The attributes have to be defined after the variable is created and
before the variable list is associated with a stream.
Attributes are only used for NetCDF datasets.
before the variables list is associated with a stream.
It is also possible to have attributes that are not associated with any variable.
These are called global attributes and are identified by using CDI\_GLOBAL as a
......
......@@ -58,181 +58,199 @@ Pointer to location for returned attribute number.
\end{minipage}
\subsection{Define an integer attribute: \texttt{cdiDefAttInt}}
\index{cdiDefAttInt}
\label{cdiDefAttInt}
\subsection{Define a text attribute: \texttt{cdiDefAttTxt}}
\index{cdiDefAttTxt}
\label{cdiDefAttTxt}
The function {\texttt{cdiDefAttInt}} defines an integer attribute.
The function {\texttt{cdiDefAttTxt}} defines a text attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefAttInt(int cdiID, int varID, const char *name, int type, int len,
const int *ip);
int cdiDefAttTxt(int cdiID, int varID, const char *name, int len, const char *tp);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}} or {\htmlref{\texttt{gridCreate}}{gridCreate}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{type}]
External data type ({\texttt{CDI\_DATATYPE\_INT16}} or {\texttt{CDI\_DATATYPE\_INT32}}).
\item[\texttt{len}]
Number of values provided for the attribute.
\item[\texttt{ip}]
Pointer to one or more integer values.
\item[\texttt{tp}]
Pointer to one or more character values.
\end{deflist}
\end{minipage}
\subsubsection*{Example}
\subsection{Get the value(s) of an integer attribute: \texttt{cdiInqAttInt}}
\index{cdiInqAttInt}
\label{cdiInqAttInt}
Here is an example using {\texttt{cdiDefAttTxt}} to define the attribute "description":
\begin{lstlisting}[language=C, backgroundcolor=\color{pyellow}, basicstyle=\small, columns=flexible]
#include "cdi.h"
...
int vlistID, varID, status;
char text[] = "description of the variable";
...
vlistID = vlistCreate();
varID = vlistDefVar(vlistID, gridID, zaxisID, TIME_VARYING);
...
status = cdiDefAttTxt(vlistID, varID, "description", LEN(text), text);
...
\end{lstlisting}
The function {\texttt{cdiInqAttInt}} gets the values(s) of an integer attribute.
\subsection{Get the value(s) of a text attribute: \texttt{cdiInqAttTxt}}
\index{cdiInqAttTxt}
\label{cdiInqAttTxt}
The function {\texttt{cdiInqAttTxt}} gets the values(s) of a text attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqAttInt(int cdiID, int varID, const char *name, int mlen, int *ip);
int cdiInqAttTxt(int cdiID, int varID, const char *name, int mlen, char *tp);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{streamInqVlist}}{streamInqVlist}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{mlen}]
Number of allocated values provided for the attribute.
\item[\texttt{ip}]
Pointer location for returned integer attribute value(s).
\item[\texttt{tp}]
Pointer location for returned text attribute value(s).
\end{deflist}
\end{minipage}
\subsection{Define a floating point attribute: \texttt{cdiDefAttFlt}}
\index{cdiDefAttFlt}
\label{cdiDefAttFlt}
\subsection{Define an integer attribute: \texttt{cdiDefAttInt}}
\index{cdiDefAttInt}
\label{cdiDefAttInt}
The function {\texttt{cdiDefAttFlt}} defines a floating point attribute.
The function {\texttt{cdiDefAttInt}} defines an integer attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefAttFlt(int cdiID, int varID, const char *name, int type, int len,
const double *dp);
int cdiDefAttInt(int cdiID, int varID, const char *name, int type, int len,
const int *ip);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}} or {\htmlref{\texttt{gridCreate}}{gridCreate}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{type}]
External data type ({\texttt{CDI\_DATATYPE\_FLT32}} or {\texttt{CDI\_DATATYPE\_FLT64}}).
External data type ({\texttt{CDI\_DATATYPE\_INT16}} or {\texttt{CDI\_DATATYPE\_INT32}}).
\item[\texttt{len}]
Number of values provided for the attribute.
\item[\texttt{dp}]
Pointer to one or more floating point values.
\item[\texttt{ip}]
Pointer to one or more integer values.
\end{deflist}
\end{minipage}
\subsection{Get the value(s) of a floating point attribute: \texttt{cdiInqAttFlt}}
\index{cdiInqAttFlt}
\label{cdiInqAttFlt}
\subsection{Get the value(s) of an integer attribute: \texttt{cdiInqAttInt}}
\index{cdiInqAttInt}
\label{cdiInqAttInt}
The function {\texttt{cdiInqAttFlt}} gets the values(s) of a floating point attribute.
The function {\texttt{cdiInqAttInt}} gets the values(s) of an integer attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqAttFlt(int cdiID, int varID, const char *name, int mlen, double *dp);
int cdiInqAttInt(int cdiID, int varID, const char *name, int mlen, int *ip);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{streamInqVlist}}{streamInqVlist}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{mlen}]
Number of allocated values provided for the attribute.
\item[\texttt{dp}]
Pointer location for returned floating point attribute value(s).
\item[\texttt{ip}]
Pointer location for returned integer attribute value(s).
\end{deflist}
\end{minipage}
\subsection{Define a text attribute: \texttt{cdiDefAttTxt}}
\index{cdiDefAttTxt}
\label{cdiDefAttTxt}
\subsection{Define a floating point attribute: \texttt{cdiDefAttFlt}}
\index{cdiDefAttFlt}
\label{cdiDefAttFlt}
The function {\texttt{cdiDefAttTxt}} defines a text attribute.
The function {\texttt{cdiDefAttFlt}} defines a floating point attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefAttTxt(int cdiID, int varID, const char *name, int len, const char *tp);
int cdiDefAttFlt(int cdiID, int varID, const char *name, int type, int len,
const double *dp);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}} or {\htmlref{\texttt{gridCreate}}{gridCreate}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{type}]
External data type ({\texttt{CDI\_DATATYPE\_FLT32}} or {\texttt{CDI\_DATATYPE\_FLT64}}).
\item[\texttt{len}]
Number of values provided for the attribute.
\item[\texttt{tp}]
Pointer to one or more character values.
\item[\texttt{dp}]
Pointer to one or more floating point values.
\end{deflist}
\end{minipage}
\subsection{Get the value(s) of a text attribute: \texttt{cdiInqAttTxt}}
\index{cdiInqAttTxt}
\label{cdiInqAttTxt}
\subsection{Get the value(s) of a floating point attribute: \texttt{cdiInqAttFlt}}
\index{cdiInqAttFlt}
\label{cdiInqAttFlt}
The function {\texttt{cdiInqAttTxt}} gets the values(s) of a text attribute.
The function {\texttt{cdiInqAttFlt}} gets the values(s) of a floating point attribute.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqAttTxt(int cdiID, int varID, const char *name, int mlen, char *tp);
int cdiInqAttFlt(int cdiID, int varID, const char *name, int mlen, double *dp);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{streamInqVlist}}{streamInqVlist}}.
CDI ID, from a previous call to {\htmlref{\texttt{vlistCreate}}{vlistCreate}}, {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{zaxisCreate}}{zaxisCreate}}.
\item[\texttt{varID}]
Variable identifier, or {\texttt{CDI\_GLOBAL}} for a global attribute.
\item[\texttt{name}]
Attribute name.
\item[\texttt{mlen}]
Number of allocated values provided for the attribute.
\item[\texttt{tp}]
Pointer location for returned text attribute value(s).
\item[\texttt{dp}]
Pointer location for returned floating point attribute value(s).
\end{deflist}
\end{minipage}
\subsection{Define a string from a key: \texttt{cdiDefKeyString}}
\index{cdiDefKeyString}
\label{cdiDefKeyString}
The function {\texttt{cdiDefKeyString}} defines a text string from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefKeyString(int cdiID, int varID, int key, const char *string);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{string}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{string}]
The address of a string where the data will be read.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiDefKeyString}} returns CDI\_NOERR if OK.
\subsubsection*{Example}
Here is an example using {\texttt{cdiDefKeyString}} to define the name of a variable:
\begin{lstlisting}[language=C, backgroundcolor=\color{pyellow}, basicstyle=\small, columns=flexible]
#include "cdi.h"
...
int vlistID, varID, status;
...
vlistID = vlistCreate();
varID = vlistDefVar(vlistID, gridID, zaxisID, TIME_VARYING);
...
status = cdiDefKeyString(vlistID, varID, CDI_KEY_NAME, "temperature");
...
\end{lstlisting}
\subsection{Get a string from a key: \texttt{cdiInqKeyString}}
\index{cdiInqKeyString}
\label{cdiInqKeyString}
The function {\texttt{cdiInqKeyString}} gets a text string from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqKeyString(int cdiID, int varID, int key, char *string, int *length);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{string}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{string}]
The address of a string where the data will be retrieved.
The caller must allocate space for the returned string.
\item[\texttt{length}]
The allocated length of the string on input.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiInqKeyString}} returns CDI\_NOERR if key is available.
\subsubsection*{Example}
Here is an example using {\texttt{cdiInqKeyString}} to get the name of the first variable:
\begin{lstlisting}[language=C, backgroundcolor=\color{pyellow}, basicstyle=\small, columns=flexible]
#include "cdi.h"
...
#define STRLEN 256
...
int streamID, vlistID, varID, status;
int length = STRLEN;
char name[STRLEN];
...
streamID = streamOpenRead(...);
vlistID = streamInqVlist(streamID);
...
varID = 0;
status = cdiInqKeyString(vlistID, varID, CDI_KEY_NAME, name, &length);
...
\end{lstlisting}
\subsection{Define an integer value from a key: \texttt{cdiDefKeyInt}}
\index{cdiDefKeyInt}
\label{cdiDefKeyInt}
The function {\texttt{cdiDefKeyInt}} defines an integer value from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefKeyInt(int cdiID, int varID, int key, int value);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{value}]
An integer where the data will be read.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiDefKeyInt}} returns CDI\_NOERR if OK.
\subsection{Get an integer value from a key: \texttt{cdiInqKeyInt}}
\index{cdiInqKeyInt}
\label{cdiInqKeyInt}
The function {\texttt{cdiInqKeyInt}} gets an integer value from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqKeyInt(int cdiID, int varID, int key, int *value);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched..
\item[\texttt{value}]
The address of an integer where the data will be retrieved.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiInqKeyInt}} returns CDI\_NOERR if key is available.
\subsection{Define a floating point value from a key: \texttt{cdiDefKeyFloat}}
\index{cdiDefKeyFloat}
\label{cdiDefKeyFloat}
The function {\texttt{cdiDefKeyFloat}} defines a {\CDI} floating point value from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefKeyFloat(int cdiID, int varID, int key, double value);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched
\item[\texttt{value}]
A double where the data will be read
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiDefKeyFloat}} returns CDI\_NOERR if OK.
\subsection{Get a floating point value from a key: \texttt{cdiInqKeyFloat}}
\index{cdiInqKeyFloat}
\label{cdiInqKeyFloat}
The function {\texttt{cdiInqKeyFloat}} gets a floating point value from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqKeyFloat(int cdiID, int varID, int key, double *value);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{cdiID}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{value}]
The address of a double where the data will be retrieved.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiInqKeyFloat}} returns CDI\_NOERR if key is available.
\subsection{Define a byte array from a key: \texttt{cdiDefKeyBytes}}
\index{cdiDefKeyBytes}
\label{cdiDefKeyBytes}
The function {\texttt{cdiDefKeyBytes}} defines a byte array from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiDefKeyBytes(int cdiID, int varID, int key, const unsigned char *bytes,
int length);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{length}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{bytes}]
The address of a byte array where the data will be read.
\item[\texttt{length}]
Length of the byte array
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiDefKeyBytes}} returns CDI\_NOERR if OK.
\subsection{Get a byte array from a key: \texttt{cdiInqKeyBytes}}
\index{cdiInqKeyBytes}
\label{cdiInqKeyBytes}
The function {\texttt{cdiInqKeyBytes}} gets a byte array from a key.
\subsubsection*{Usage}
\begin{verbatim}
int cdiInqKeyBytes(int cdiID, int varID, int key, unsigned char *bytes, int *length);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{length}\ }
\item[\texttt{cdiID}]
CDI object ID (vlistID, gridID, zaxisID).
\item[\texttt{varID}]
Variable identifier or CDI\_GLOBAL.
\item[\texttt{key}]
The key to be searched.
\item[\texttt{bytes}]
The address of a byte array where the data will be retrieved.
The caller must allocate space for the returned byte array.
\item[\texttt{length}]
The allocated length of the byte array on input.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{cdiInqKeyBytes}} returns CDI\_NOERR if key is available.
......@@ -16,8 +16,8 @@ The function {\texttt{gridCreate}} creates a horizontal Grid.
\begin{deflist}{\texttt{gridtype}\ }
\item[\texttt{gridtype}]
The type of the grid, one of the set of predefined {\CDI} grid types.
The valid {\CDI} grid types are {\texttt{GRID\_GENERIC}}, {\texttt{GRID\_GAUSSIAN}},
{\texttt{GRID\_LONLAT}}, {\texttt{GRID\_PROJECTION}}, {\texttt{GRID\_SPECTRAL}},
The valid {\CDI} grid types are {\texttt{GRID\_GENERIC}}, {\texttt{GRID\_LONLAT}},
{\texttt{GRID\_GAUSSIAN}}, {\texttt{GRID\_PROJECTION}}, {\texttt{GRID\_SPECTRAL}},
{\texttt{GRID\_GME}}, {\texttt{GRID\_CURVILINEAR}} and {\texttt{GRID\_UNSTRUCTURED}}.
\item[\texttt{size}]
Number of gridpoints.
......@@ -122,8 +122,8 @@ Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or
{\texttt{gridInqType}} returns the type of the grid,
one of the set of predefined {\CDI} grid types.
The valid {\CDI} grid types are {\texttt{GRID\_GENERIC}}, {\texttt{GRID\_GAUSSIAN}},
{\texttt{GRID\_LONLAT}}, {\texttt{GRID\_PROJECTION}}, {\texttt{GRID\_SPECTRAL}}, {\texttt{GRID\_GME}},
The valid {\CDI} grid types are {\texttt{GRID\_GENERIC}}, {\texttt{GRID\_LONLAT}},
{\texttt{GRID\_GAUSSIAN}}, {\texttt{GRID\_PROJECTION}}, {\texttt{GRID\_SPECTRAL}}, {\texttt{GRID\_GME}},
{\texttt{GRID\_CURVILINEAR}} and {\texttt{GRID\_UNSTRUCTURED}}.
......@@ -517,513 +517,3 @@ Upon successful completion {\texttt{gridInqYbounds}} returns the number of bound
the bounds are stored in {\texttt{ybounds}}.
Otherwise, 0 is returned and {\texttt{ybounds}} is empty.
\subsection{Define the name of a X-axis: \texttt{gridDefXname}}
\index{gridDefXname}
\label{gridDefXname}
The function {\texttt{gridDefXname}} defines the name of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefXname(int gridID, const char *name);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{name}]
Name of the X-axis.
\end{deflist}
\end{minipage}
\subsection{Get the name of a X-axis: \texttt{gridInqXname}}
\index{gridInqXname}
\label{gridInqXname}
The function {\texttt{gridInqXname}} returns the name of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqXname(int gridID, char *name);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{name}]
Name of the X-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqXname}} returns the name of the X-axis to the parameter name.
\subsection{Define the longname of a X-axis: \texttt{gridDefXlongname}}
\index{gridDefXlongname}
\label{gridDefXlongname}
The function {\texttt{gridDefXlongname}} defines the longname of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefXlongname(int gridID, const char *longname);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{longname}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{longname}]
Longname of the X-axis.
\end{deflist}
\end{minipage}
\subsection{Get the longname of a X-axis: \texttt{gridInqXlongname}}
\index{gridInqXlongname}
\label{gridInqXlongname}
The function {\texttt{gridInqXlongname}} returns the longname of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqXlongname(int gridID, char *longname);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{longname}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{longname}]
Longname of the X-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqXlongname}} returns the longname of the X-axis to the parameter longname.
\subsection{Define the units of a X-axis: \texttt{gridDefXunits}}
\index{gridDefXunits}
\label{gridDefXunits}
The function {\texttt{gridDefXunits}} defines the units of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefXunits(int gridID, const char *units);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{units}]
Units of the X-axis.
\end{deflist}
\end{minipage}
\subsection{Get the units of a X-axis: \texttt{gridInqXunits}}
\index{gridInqXunits}
\label{gridInqXunits}
The function {\texttt{gridInqXunits}} returns the units of a X-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqXunits(int gridID, char *units);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{units}]
Units of the X-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqXunits}} returns the units of the X-axis to the parameter units.
\subsection{Define the name of a Y-axis: \texttt{gridDefYname}}
\index{gridDefYname}
\label{gridDefYname}
The function {\texttt{gridDefYname}} defines the name of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefYname(int gridID, const char *name);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{name}]
Name of the Y-axis.
\end{deflist}
\end{minipage}
\subsection{Get the name of a Y-axis: \texttt{gridInqYname}}
\index{gridInqYname}
\label{gridInqYname}
The function {\texttt{gridInqYname}} returns the name of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqYname(int gridID, char *name);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{name}]
Name of the Y-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqYname}} returns the name of the Y-axis to the parameter name.
\subsection{Define the longname of a Y-axis: \texttt{gridDefYlongname}}
\index{gridDefYlongname}
\label{gridDefYlongname}
The function {\texttt{gridDefYlongname}} defines the longname of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefYlongname(int gridID, const char *longname);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{longname}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{longname}]
Longname of the Y-axis.
\end{deflist}
\end{minipage}
\subsection{Get the longname of a Y-axis: \texttt{gridInqYlongname}}
\index{gridInqYlongname}
\label{gridInqYlongname}
The function {\texttt{gridInqYlongname}} returns the longname of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqYlongname(int gridID, char *longname);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{longname}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{longname}]
Longname of the Y-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqYlongname}} returns the longname of the Y-axis to the parameter longname.
\subsection{Define the units of a Y-axis: \texttt{gridDefYunits}}
\index{gridDefYunits}
\label{gridDefYunits}
The function {\texttt{gridDefYunits}} defines the units of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridDefYunits(int gridID, const char *units);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{units}]
Units of the Y-axis.
\end{deflist}
\end{minipage}
\subsection{Get the units of a Y-axis: \texttt{gridInqYunits}}
\index{gridInqYunits}
\label{gridInqYunits}
The function {\texttt{gridInqYunits}} returns the units of a Y-axis.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqYunits(int gridID, char *units);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\item[\texttt{units}]
Units of the Y-axis. The caller must allocate space for the
returned string. The maximum possible length, in characters, of
the string is given by the predefined constant {\texttt{CDI\_MAX\_NAME}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqYunits}} returns the units of the Y-axis to the parameter units.
\subsection{Define the reference number for an unstructured grid: \texttt{gridDefNumber}}
\index{gridDefNumber}
\label{gridDefNumber}
The function {\texttt{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}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{number}]
Reference number for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the reference number to an unstructured grid: \texttt{gridInqNumber}}
\index{gridInqNumber}
\label{gridInqNumber}
The function {\texttt{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}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqNumber}} returns the reference number to an unstructured grid.
\subsection{Define the position of grid in the reference file: \texttt{gridDefPosition}}
\index{gridDefPosition}
\label{gridDefPosition}
The function {\texttt{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}{\texttt{position}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{position}]
Position of grid in the reference file.
\end{deflist}
\end{minipage}
\subsection{Get the position of grid in the reference file: \texttt{gridInqPosition}}
\index{gridInqPosition}
\label{gridInqPosition}
The function {\texttt{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}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqPosition}} returns the position of grid in the reference file.
\subsection{Define the reference URI for an unstructured grid: \texttt{gridDefReference}}
\index{gridDefReference}
\label{gridDefReference}
The function {\texttt{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}{\texttt{reference}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{reference}]
Reference URI for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the reference URI to an unstructured grid: \texttt{gridInqReference}}
\index{gridInqReference}
\label{gridInqReference}
The function {\texttt{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}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqReference}} returns the reference URI to an unstructured grid.
\subsection{Define the UUID for an unstructured grid: \texttt{gridDefUUID}}
\index{gridDefUUID}
\label{gridDefUUID}
The function {\texttt{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}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}}.
\item[\texttt{uuid}]
UUID for an unstructured grid.
\end{deflist}
\end{minipage}
\subsection{Get the UUID to an unstructured grid: \texttt{gridInqUUID}}
\index{gridInqUUID}
\label{gridInqUUID}
The function {\texttt{gridInqUUID}} returns the UUID to an unstructured grid.
\subsubsection*{Usage}
\begin{verbatim}
void gridInqUUID(int gridID, char *uuid);
\end{verbatim}
\hspace*{4mm}\begin{minipage}[]{15cm}
\begin{deflist}{\texttt{gridID}\ }
\item[\texttt{gridID}]
Grid ID, from a previous call to {\htmlref{\texttt{gridCreate}}{gridCreate}} or {\htmlref{\texttt{vlistInqVarGrid}}{vlistInqVarGrid}}.
\end{deflist}
\end{minipage}
\subsubsection*{Result}
{\texttt{gridInqUUID}} returns the UUID to an unstructured grid to the parameter uuid.
......@@ -57,7 +57,7 @@ Define a text attribute.
int cdiDefKeyFloat (int cdiID, int varID, int key, double value);
\end{verbatim}
Define a float value from a key of a CDI variable.
Define a float value from a key.
\section*{\tt \htmlref{cdiDefKeyInt}{cdiDefKeyInt}}
......@@ -66,7 +66,7 @@ Define a float value from a key of a CDI variable.
int cdiDefKeyInt (int cdiID, int varID, int key, int value);
\end{verbatim}
Define an integer value from a key of a CDI variable.
Define an integer value from a key.
\section*{\tt \htmlref{cdiDefKeyString}{cdiDefKeyString}}
......@@ -75,7 +75,7 @@ Define an integer value from a key of a CDI variable.
int cdiDefKeyString (int cdiID, int varID, int key, const char *string);
\end{verbatim}
Define a string value from a key of a CDI variable.
Define a string from a key.
\section*{\tt \htmlref{cdiInqAtt}{cdiInqAtt}}
......@@ -122,7 +122,7 @@ Get the value(s) of a text attribute.
int cdiInqKeyInt (int cdiID, int varID, int key, int *value);
\end{verbatim}
Get an integer value from a key of a CDI variable.
Get an integer value from a key.
\section*{\tt \htmlref{cdiInqKeyLen}{cdiInqKeyLen}}
......@@ -140,7 +140,7 @@ Get the length of the string representation of the key.
int cdiInqKeyString (int cdiID, int varID, int key, char *string, int *length);
\end{verbatim}
Get a string value from a key of a CDI variable.
Get a string from a key.
\section*{\tt \htmlref{cdiInqNatts}{cdiInqNatts}}
......
......@@ -49,302 +49,288 @@ Define a text attribute
\section*{\texttt{
\ifpdf
\hyperref[cdiInqAtt]{cdiInqAtt}
\hyperref[cdiDefKeyBytes]{cdiDefKeyBytes}
\else
cdiInqAtt
cdiDefKeyBytes
\fi
}}
\begin{verbatim}
int cdiInqAtt(int cdiID, int varID, int attnum, char *name, int *typep, int *lenp);
int cdiDefKeyBytes(int cdiID, int varID, int key, const unsigned char *bytes,
int length);
\end{verbatim}
Get information about an attribute
\ifpdfoutput{}{(\ref{cdiInqAtt})}
Define a byte array from a key
\ifpdfoutput{}{(\ref{cdiDefKeyBytes})}
\section*{\texttt{
\ifpdf
\hyperref[cdiInqAttFlt]{cdiInqAttFlt}
\hyperref[cdiDefKeyFloat]{cdiDefKeyFloat}
\else
cdiInqAttFlt
cdiDefKeyFloat
\fi
}}
\begin{verbatim}
int cdiInqAttFlt(int cdiID, int varID, const char *name, int mlen, double *dp);
int cdiDefKeyFloat(int cdiID, int varID, int key, double value);
\end{verbatim}
Get the value(s) of a floating point attribute
\ifpdfoutput{}{(\ref{cdiInqAttFlt})}
Define a floating point value from a key
\ifpdfoutput{}{(\ref{cdiDefKeyFloat})}
\section*{\texttt{
\ifpdf
\hyperref[cdiInqAttInt]{cdiInqAttInt}
\hyperref[cdiDefKeyInt]{cdiDefKeyInt}
\else
cdiInqAttInt
cdiDefKeyInt
\fi
}}
\begin{verbatim}
int cdiInqAttInt(int cdiID, int varID, const char *name, int mlen, int *ip);
int cdiDefKeyInt(int cdiID, int varID, int key, int value);
\end{verbatim}
Get the value(s) of an integer attribute
\ifpdfoutput{}{(\ref{cdiInqAttInt})}
Define an integer value from a key
\ifpdfoutput{}{(\ref{cdiDefKeyInt})}
\section*{\texttt{
\ifpdf
\hyperref[cdiInqAttTxt]{cdiInqAttTxt}
\hyperref[cdiDefKeyString]{cdiDefKeyString}
\else
cdiInqAttTxt
cdiDefKeyString
\fi
}}
\begin{verbatim}
int cdiInqAttTxt(int cdiID, int varID, const char *name, int mlen, char *tp);
int cdiDefKeyString(int cdiID, int varID, int key, const char *string);
\end{verbatim}
Get the value(s) of a text attribute