This document describes the netCDF C++ API. It applies to netCDF version 4.1.3 release of the software, but the C++ interface still only supports the “classic” data model from the netCDF-3 release. This document was last updated in 30 June 2011.
The netCDF library provides an application- and machine-independent interface to self-describing, array-oriented data. It supports an abstract view of such data as a collection of named variables and their attributes, and provides high-level access to data that is faithful to the abstraction. This on-line document describes the C++ interface to netCDF. This C++ interface is still based on the classic data model supported by netCDF-3 software; it has not yet been updated to the enhanced data model supported by netCDF-4.
The first part of this master menu lists the major nodes in this Info document. The rest of the menu lists all the lower level nodes in the document.
For a complete description of the netCDF format and utilities see Top.
--- The Detailed Node Listing ---
Introduction
NetCDF Classes
Auxiliary Classes
The main requirements for the design of the C++ interface are:
void* pointers; and
Some of the features of the C++ interface are:
void*: values are type-checked.
ncredef or ncendef calls are needed for
switching between define and data modes. Whenever a mode switch is
required, it happens implicitly.
The header file netcdfcpp.h must be included in source code files using this interface.
This release provides some of the functionality of netCDF version 4, but not for the enhanced data model introduced with netCDF-4.
This manual assumes familiarity with the netCDF User's Guide, where the concepts of netCDF dimensions, variables, and attributes are discussed.
The class for netCDF file objects is NcFile.
The components of a netCDF file are dimensions, variables, and
attributes. There is a class for each of these kinds of objects;
NcDim, NcVar, and NcAtt. Variables and attributes
share some common characteristics that are factored out in the
abstract base class NcTypedComponent.
An auxiliary class, NcValues, provides a type for arrays of values
that are read from or written to netCDF files. Another auxiliary class,
NcError, provides facilities for handling errors.
NcFilenetCDF fileNcDimdimensionNcTypedComponentabstract base classNcVarvariableNcAttattributeNcValuesabstract base class for arrayNcValues_ncbytearray of bytesNcValues_chararray of charactersNcValues_shortarray of shortsNcValues_intarray of intsNcValues_longarray of longsNcValues_floatarray of floatsNcValues_doublearray of doublesNcErrorfor error handling
The netCDF classes use several auxiliary types for arguments and return
types from member functions: NcToken, NcType,
NcBool, and ncbyte.
NcTokenconst char*.
NcTypencByte,
ncChar, ncShort, ncInt, ncLong (deprecated),
ncFloat, and ncDouble.
NcBoolunsigned int. It will be changed to
bool when all C++ compilers support the new bool type.
ncbytencByte, for 8-bit integer data.
(This is currently a typedef for unsigned char, but it may be
changed to a typedef for signed char, so don't depend on the
underlying representation.)
NcFile is the class for netCDF files,
providing methods for netCDF file operations.
Some member functions return pointers to dimensions (NcDim) or
variables (NcVar). These objects are owned by the NcFile
they are associated with, and will be deleted automatically by the
NcFile destructor (or by the close member function, if
this is called earlier than the destructor), so users should not delete
these. Member functions that return pointers to attributes
(NcAtt) pass ownership to the calling function; users
should delete attributes when they are finished with them.
Member functions that return NcBool yield TRUE on success
and FALSE on failure. Member functions that return a pointer
value return a NULL pointer on failure.
This class interface hides the distinction in the C and Fortran interfaces between define mode (when dimensions, variables, or attributes are being defined or renamed), and data mode (when data values are being accessed), by automatically switching between the modes when necessary. Be aware that switching from accessing data to adding or renaming dimensions, variables and attributes can be expensive, since it may entail a copy of the data.
NcFile( const char * path, FileMode = ReadOnly, size_t *chunksizeptr = NULL, size_t initialsize = 0, FileFormat = Classic)The FileMode argument can be any of ReadOnly (the
default) to open an existing file for reading, Write to open an
existing file for reading or writing, Replace to create a new
empty file even if the named file already exists, or
New to create a new file only if the named file does not already
exist.
The optional FileFormat argument can be any of Classic
(the default), Offset64Bits, Netcdf4, or
Netcdf4Classic.
The optional chunksizeptr and initialsize tuning
parameters are as described in the corresponding nc__create()
function in the C interface.
The constructor will not fail, but in the case of a bad path name,
improper permissions, or if the file already exists and you have
specified FileMode as New, no netCDF file will be created
or opened. If the constructor fails to create or open a netCDF file, a
subsequent call to the is_valid() member function will return
False.
~NcFile( void )NcVar and NcDim
objects. If you wish to close the file earlier, you may explicitly call
the close member function; a subsequent destructor call will work
properly.
NcBool close( void )NcFile
destructor.
NcBool is_valid( void ) constTRUE if valid netCDF file, FALSE otherwise (e.g.
if constructor could not open file).
int num_dims( void ) constint num_vars( void ) constint num_atts( void ) constNcDim* get_dim(NcToken name) constNcVar* get_var(NcToken name) constNcAtt* get_att(NcToken name) constNcDim* get_dim(int n) constNcVar* get_var(int n) constNcAtt* get_att(int n) constNcDim* rec_dim( void ) constThe following add_ member functions put the file in define
mode, so could be expensive. To avoid copying of data, invoke
these before writing data to variables.
NcDim* add_dim(NcToken dimname)dimname to the netCDF file.
NcDim* add_dim(NcToken dimname, long dimsize)dimname of size dimsize.
NcVar* add_var(NcToken varname, NcType type, const NcDim*, ...)varname of the specified type
(ncByte, ncChar, ncShort, ncInt,
ncFloat, ncDouble) to the open netCDF file. The variable
is defined with a shape that depends on how many
dimension arguments are provided. A scalar variable would have 0
dimensions, a vector would have 1 dimension, and so on. Supply as many
dimensions as needed, up to 5. If more than 5 dimensions are required,
use the n-dimensional version of this member function instead.
NcVar* add_var(NcToken varname, NcType type, int ndims, const NcDim** dims)varname of ndims dimensions and of
the specified type. This method must be used when dealing with
variables of more than 5 dimensions.
NcBool add_att(NcToken name, ncbyte val)NcBool add_att(NcToken name, char val)NcBool add_att(NcToken name, short val)NcBool add_att(NcToken name, int val)NcBool add_att(NcToken name, float val)NcBool add_att(NcToken name, double val)NcBool add_att(NcToken name, const char* val)\0 character).
NcBool add_att(NcToken name, int n, const ncbyte* val)NcBool add_att(NcToken name, int n, const char* val)NcBool add_att(NcToken name, int n, const short* val)NcBool add_att(NcToken name, int n, const int* val)NcBool add_att(NcToken name, int n, const float* val)NcBool add_att(NcToken name, int n, const double* val)NcBool set_fill(FillMode mode = Fill)NcFile::Fill or NcFile::NoFill.
Default is Fill, in which case unwritten values are pre-written
with appropriate type-specific or variable-specific fill values.
enum NcFile::FillMode get_fill( void ) constNcFile::Fill or
NcFile::NoFill.
enum NcFile::FileFormat get_format( void ) constNcFile::Classic,
NcFile:Offset64Bits, NcFile:Netcdf4, or
NcFile::Netcdf4Classic.
NcBool sync( void )NcBool abort( void )A netCDF dimension has a name and a size. Dimensions are only created and destroyed by NcFile member functions, because they cannot exist independently of an open netCDF file. Hence there are no public constructors or destructors.
NcToken name( void ) constlong size( void ) constNcBool is_valid( void ) constTRUE if file and dimension are both valid, FALSE
otherwise.
NcBool is_unlimited( void ) constTRUE if the dimension is the unlimited dimension,
FALSE if either not a valid netCDF file, or if the dimension is
not the unlimited dimension.
NcBool rename( NcToken newname )newname.
NcBool sync( void )NcTypedComponent is an abstract base class for NcVar and
NcAtt that captures the similarities between netCDF variables and
attributes. We list here the member functions that variables and
attributes inherit from NcTypedComponent, but these member
functions are also documented under the NcVar and NcAtt
classes for convenience.
NcToken name( void ) constNcType type( void ) constncByte, ncChar, ncShort, ncInt,
ncFloat, or ncDouble.
NcBool is_valid( void ) constTRUE if the component is valid, FALSE otherwise.
long num_vals( void ) constNcBool rename( NcToken newname )NcValues* values( void ) constvalues method. Note that this is not a good way to read
selected values of a variable; use the get member function
instead, to get single values or selected cross-sections of values.
ncbyte as_ncbyte( int n ) constchar as_char( int n ) constshort as_short( int n ) constint as_int( int n ) constnclong as_nclong( int n ) const // deprecatedlong as_long( int n ) constfloat as_float( int n ) constdouble as_double( int n ) constchar* as_string( int n ) constNcVar is derived from NcTypedComponent, and represents a netCDF
variable. A netCDF variable has a name, a type, a shape, zero or more
attributes, and a block of values associated with it. Because variables
are only associated with open netCDF files, there are no public
constructors for this class. Use member functions of NcFile to
get variables or add new variables.
NcToken name( void ) constNcType type( void ) constncByte, ncChar, ncShort, ncInt,
ncFloat, or ncDouble.
int num_dims( void ) constNcDim* get_dim( int n ) constlong* edges( void ) constint num_atts( void ) constNcAtt* get_att( NcToken attname ) constNcAtt* get_att( int n ) constNcBool is_valid( void ) constTRUE if the variable is valid, FALSE otherwise.
long num_vals( void ) constNcValues* values( void ) constget member function instead, to get single
values or selected cross-sections of values.
NcBool put(const ncbyte* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const char* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const short* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const int* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const long* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const float* vals, long c0, long c1, long c2, long c3, long c4)NcBool put(const double* vals, long c0, long c1, long c2, long c3, long c4)vals argument points to a contiguous block of values in
memory to be written. This means if you allocate each row of an
array with a “new” call for example, you must not write more than one row
at a time, because the rows may not be contiguous in memory.
Other arguments are edge lengths, and their number must not exceed variable's
dimensionality. Start corner is [0,0,..., 0] by default, but may
be reset using the set_cur() member function for this variable.
FALSE is returned if type of values does not match type for
variable. For more than 5 dimensions, use the overloaded n-dimensional
form of the put member function.
NcBool put(const ncbyte* vals, const long* counts)NcBool put(const char* vals, const long* counts)NcBool put(const short* vals, const long* counts)NcBool put(const int* vals, const long* counts)NcBool put(const long* vals, const long* counts)NcBool put(const float* vals, const long* counts)NcBool put(const double* vals, const long* counts)[0, 0, ..., 0] by
default, may be reset with set_cur(). FALSE is returned
if type of values does not match type for variable.
The vals argument points to a contiguous block of values in
memory to be written. This means if you allocate each row of an
array with a “new” call for example, you must not write more than one row
at a time, because the rows may not be contiguous in memory.
NcBool get(ncbyte* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(char* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(short* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(int* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(long* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(float* vals, long c0, long c1, long c2, long c3, long c4) constNcBool get(double* vals, long c0, long c1, long c2, long c3, long c4) constvals argument points to a contiguous block of values in
memory into which values will be read. This means if you allocate each row of an
array with a “new” call for example, you must not read more than one row
at a time, because the rows may not be contiguous in memory.
Other arguments are edge lengths, and their number must not exceed variable's
dimensionality. Start corner is [0,0,..., 0] by default, but may
be reset using the set_cur() member function. FALSE is
returned if type of values does not match type for variable.
NcBool get(ncbyte* vals, const long* counts) constNcBool get(char* vals, const long* counts) constNcBool get(short* vals, const long* counts) constNcBool get(int* vals, const long* counts) constNcBool get(long* vals, const long* counts) constNcBool get(float* vals, const long* counts) constNcBool get(double* vals, const long* counts) const[0, 0, ..., 0] by default,
may be reset with set_cur() member function. FALSE is
returned if type of values does not match type for variable.
Get scalar or 1 to 5 dimensional arrays by providing enough arguments.
The vals argument points to a contiguous block of values in
memory into which values will be read. This means if you allocate each row of an
array with a “new” call for example, you must not read more than one row
at a time, because the rows may not be contiguous in memory.
NcBool set_cur(long c0=-1, long c1=-1, long c2=-1, long c3=-1, long c4=-1)NcBool set_cur(long* cur)NcBool add_att( NcToken, char )NcBool add_att( NcToken, ncbyte )NcBool add_att( NcToken, short )NcBool add_att( NcToken, int )NcBool add_att( NcToken, long )NcBool add_att( NcToken, float )NcBool add_att( NcToken, double )NcBool add_att( NcToken, const char* )NcBool add_att( NcToken, int, const char* )NcBool add_att( NcToken, int, const ncbyte* )NcBool add_att( NcToken, int, const short* )NcBool add_att( NcToken, int, const int* )NcBool add_att( NcToken, int, const long* )NcBool add_att( NcToken, int, const float* )NcBool add_att( NcToken, int, const double* )NcBool rename( NcToken newname )ncbyte as_ncbyte( int n ) constchar as_char( int n ) constshort as_short( int n ) constint as_int( int n ) constnclong as_nclong( int n ) const // deprecatedlong as_long( int n ) constfloat as_float( int n ) constdouble as_double( int n ) constchar* as_string( int n ) constint id( void ) constNcBool sync( void )~NcVar( void )The following member functions are intended for record variables. They will also work for non-record variables, if the first dimension is interpreted as the record dimension.
long rec_size( void )long rec_size( NcDim* )NcValues* get_rec( void )NcValues* get_rec( long n )NcValues* get_rec( NcDim* )NcValues* get_rec( NcDim*, long n )NcBool put_rec( const ncbyte* vals )NcBool put_rec( const char* vals )NcBool put_rec( const short* vals )NcBool put_rec( const int* vals )NcBool put_rec( const long* vals )NcBool put_rec( const float* vals )NcBool put_rec( const double* vals )NcBool put_rec( NcDim*, const ncbyte* vals )NcBool put_rec( NcDim*, const char* vals )NcBool put_rec( NcDim*, const short* vals )NcBool put_rec( NcDim*, const int* vals )NcBool put_rec( NcDim*, const long* vals )NcBool put_rec( NcDim*, const float* vals )NcBool put_rec( NcDim*, const double* vals )NcBool put_rec( const ncbyte* vals, long rec )NcBool put_rec( const char* vals, long rec )NcBool put_rec( const short* vals, long rec )NcBool put_rec( const int* vals, long rec )NcBool put_rec( const long* vals, long rec )NcBool put_rec( const float* vals, long rec )NcBool put_rec( const double* vals, long rec )NcBool put_rec( NcDim*, const ncbyte* vals, long slice )NcBool put_rec( NcDim*, const char* vals, long slice )NcBool put_rec( NcDim*, const short* vals, long slice )NcBool put_rec( NcDim*, const int* vals, long slice )NcBool put_rec( NcDim*, const long* vals, long slice )NcBool put_rec( NcDim*, const float* vals, long slice )NcBool put_rec( NcDim*, const double* vals, long slice )long get_index( const ncbyte* vals )long get_index( const char* vals )long get_index( const short* vals )long get_index( const int* vals )long get_index( const long* vals )long get_index( const float* vals )long get_index( const double* vals )long get_index( NcDim*, const ncbyte* vals )long get_index( NcDim*, const char* vals )long get_index( NcDim*, const short* vals )long get_index( NcDim*, const int* vals )long get_index( NcDim*, const long* vals )long get_index( NcDim*, const float* vals )long get_index( NcDim*, const double* vals )void set_rec ( long rec )void set_rec ( NcDim*, long rec )NcAtt is derived from NcTypedComponent, and represents a netCDF
attribute. A netCDF attribute has a name and a type, and may be either
a scalar attribute or a vector attribute. Scalar attributes have one
value and vector attributes have multiple values. In addition, each
attribute is attached to a specific netCDF variable or is global to an
entire netCDF file. Because attributes are only associated with open
netCDF files, there are no public constructors for this class. Use
member functions of NcFile and NcVar to get netCDF
attributes or add new attributes. Most of the useful member functions
for NcAtt are
inherited from class NcTypedComponent.
NcToken name( void ) constNcType type( void ) constncByte, ncChar, ncShort, ncInt,
ncFloat, or ncDouble.
NcBool is_valid( void ) constTRUE if the attribute is valid, FALSE otherwise.
long num_vals( void ) constNcBool rename( NcToken newname )NcValues* values( void ) constncbyte as_ncbyte( int n ) constchar as_char( int n ) constshort as_short( int n ) constint as_int( int n ) constnclong as_nclong( int n ) const // deprecatedlong as_long( int n ) constfloat as_float( int n ) constdouble as_double( int n ) constchar* as_string( int n ) constNcBool remove( void )is_valid() will
return FALSE.
~NcAtt( void )Auxiliary classes include the abstract base class NcValues, its
type-specific derived subclasses, and the error-handling class
NcError.
Class NcValues is an abstract base class for a block of typed
values. The derived classes are NcValues_ncbyte,
NcValues_char, NcValues_short, NcValues_int,
NcValues_nclong (deprecated), and NcValues_long,
NcValues_float, NcValues_double.
These classes are used as the return type of the
NcTypedComponent::values() member function, for typed-value
arrays associated with variables and attributes.
NcValues( void )NcValues(NcType, long)~NcValues( void )long num( void )ostream& print(ostream&) constvoid* base( void ) constint bytes_for_one( void ) constncbyte as_ncbyte( int n ) constchar as_char( int n ) constshort as_short( int n ) constint as_int( int n ) constnclong as_nclong( int n ) const // deprecatedlong as_long( int n ) constfloat as_float( int n ) constdouble as_double( int n ) constchar* as_string( int n ) constThis class provides control for netCDF error handling. Declaring an
NcError object temporarily changes the error-handling behavior
for all netCDF classes until the NcError object is destroyed
(typically by going out of scope), at which time the previous
error-handling behavior is restored.
NcError( Behavior b = verbose_fatal )NcError::silent_nonfatal,
NcError::verbose_nonfatal, NcError::silent_fatal, or
NcError::verbose_fatal, to control whether error messages are
output from the underlying library and whether such messages are fatal
or nonfatal.
~NcError( void )int get_err( void )abort: Class NcFileadd_att: Class NcVaradd_att: Class NcFileadd_dim: Class NcFileadd_var: Class NcFileas_char: Class NcValuesas_char: Class NcAttas_char: Class NcVaras_char: Class NcTypedComponentas_double: Class NcValuesas_double: Class NcAttas_double: Class NcVaras_double: Class NcTypedComponentas_float: Class NcValuesas_float: Class NcAttas_float: Class NcVaras_float: Class NcTypedComponentas_int: Class NcValuesas_int: Class NcAttas_int: Class NcVaras_int: Class NcTypedComponentas_long: Class NcValuesas_long: Class NcAttas_long: Class NcVaras_long: Class NcTypedComponentas_ncbyte: Class NcValuesas_ncbyte: Class NcAttas_ncbyte: Class NcVaras_ncbyte: Class NcTypedComponentas_nclong: Class NcValuesas_nclong: Class NcAttas_nclong: Class NcVaras_nclong: Class NcTypedComponentas_short: Class NcValuesas_short: Class NcAttas_short: Class NcVaras_short: Class NcTypedComponentas_string: Class NcValuesas_string: Class NcAttas_string: Class NcVaras_string: Class NcTypedComponentbase: Class NcValuesbytes_for_one: Class NcValuesclose: Class NcFileedges: Class NcVarget: Class NcVarget_att: Class NcVarget_att: Class NcFileget_dim: Class NcVarget_dim: Class NcFileget_err: Class NcErrorget_fill: Class NcFileget_format: Class NcFileget_index: Class NcVarget_rec: Class NcVarget_var: Class NcFileid: Class NcVaris_unlimited: Class NcDimis_valid: Class NcAttis_valid: Class NcVaris_valid: Class NcTypedComponentis_valid: Class NcDimis_valid: Class NcFilename: Class NcAttname: Class NcVarname: Class NcTypedComponentname: Class NcDimNcAtt: Class NcVarNcAtt::remove: Class NcAttNcAtt::~NcAtt: Class NcAttNcBool: Auxiliary Types and Constantsncbyte: Auxiliary Types and ConstantsNcDim: Class NcFileNcDim::is_unlimited: Class NcDimNcDim::is_valid: Class NcDimNcDim::name: Class NcDimNcDim::rename: Class NcDimNcDim::size: Class NcDimNcDim::sync: Class NcDimNcError: Class NcErrorNcError: Class NcValuesNcError::get_err: Class NcErrorNcError::~NcError: Class NcErrorNcFile: Class NcFileNcFile: NetCDF ClassesNcFile::abort: Class NcFileNcFile::add_att: Class NcFileNcFile::add_dim: Class NcFileNcFile::add_var: Class NcFileNcFile::close: Class NcFileNcFile::get_att: Class NcFileNcFile::get_dim: Class NcFileNcFile::get_fill: Class NcFileNcFile::get_format: Class NcFileNcFile::get_var: Class NcFileNcFile::is_valid: Class NcFileNcFile::NcFile: Class NcFileNcFile::num_atts: Class NcFileNcFile::num_dims: Class NcFileNcFile::num_vars: Class NcFileNcFile::rec_dim: Class NcFileNcFile::set_fill: Class NcFileNcFile::sync: Class NcFileNcFile::~NcFile: Class NcFileNcToken: Auxiliary Types and ConstantsNcType: Auxiliary Types and ConstantsNcTypedComponent: Class NcDimNcTypedComponent::as_char: Class NcAttNcTypedComponent::as_char: Class NcVarNcTypedComponent::as_char: Class NcTypedComponentNcTypedComponent::as_double: Class NcAttNcTypedComponent::as_double: Class NcVarNcTypedComponent::as_double: Class NcTypedComponentNcTypedComponent::as_float: Class NcAttNcTypedComponent::as_float: Class NcVarNcTypedComponent::as_float: Class NcTypedComponentNcTypedComponent::as_int: Class NcAttNcTypedComponent::as_int: Class NcVarNcTypedComponent::as_int: Class NcTypedComponentNcTypedComponent::as_long: Class NcAttNcTypedComponent::as_long: Class NcVarNcTypedComponent::as_long: Class NcTypedComponentNcTypedComponent::as_ncbyte: Class NcAttNcTypedComponent::as_ncbyte: Class NcVarNcTypedComponent::as_ncbyte: Class NcTypedComponentNcTypedComponent::as_nclong: Class NcAttNcTypedComponent::as_nclong: Class NcVarNcTypedComponent::as_nclong: Class NcTypedComponentNcTypedComponent::as_short: Class NcAttNcTypedComponent::as_short: Class NcVarNcTypedComponent::as_short: Class NcTypedComponentNcTypedComponent::as_string: Class NcAttNcTypedComponent::as_string: Class NcVarNcTypedComponent::as_string: Class NcTypedComponentNcTypedComponent::is_valid: Class NcAttNcTypedComponent::is_valid: Class NcVarNcTypedComponent::is_valid: Class NcTypedComponentNcTypedComponent::name: Class NcAttNcTypedComponent::name: Class NcVarNcTypedComponent::name: Class NcTypedComponentNcTypedComponent::num_vals: Class NcAttNcTypedComponent::num_vals: Class NcVarNcTypedComponent::num_vals: Class NcTypedComponentNcTypedComponent::rename: Class NcAttNcTypedComponent::rename: Class NcVarNcTypedComponent::rename: Class NcTypedComponentNcTypedComponent::type: Class NcAttNcTypedComponent::type: Class NcVarNcTypedComponent::type: Class NcTypedComponentNcTypedComponent::values: Class NcAttNcTypedComponent::values: Class NcVarNcTypedComponent::values: Class NcTypedComponentNcValues: Class NcValuesNcValues: Auxiliary ClassesNcValues::as_char: Class NcValuesNcValues::as_double: Class NcValuesNcValues::as_float: Class NcValuesNcValues::as_int: Class NcValuesNcValues::as_long: Class NcValuesNcValues::as_ncbyte: Class NcValuesNcValues::as_nclong: Class NcValuesNcValues::as_short: Class NcValuesNcValues::as_string: Class NcValuesNcValues::base: Class NcValuesNcValues::bytes_for_one: Class NcValuesNcValues::NcValues: Class NcValuesNcValues::num: Class NcValuesNcValues::print: Class NcValuesNcValues::~NcValues: Class NcValuesNcValues_char: Class NcValuesNcValues_double: Class NcValuesNcValues_float: Class NcValuesNcValues_int: Class NcValuesNcValues_long: Class NcValuesNcValues_ncbyte: Class NcValuesNcValues_nclong: Class NcValuesNcValues_short: Class NcValuesNcVar: Class NcTypedComponentNcVar::add_att: Class NcVarNcVar::edges: Class NcVarNcVar::get: Class NcVarNcVar::get_att: Class NcVarNcVar::get_dim: Class NcVarNcVar::get_index: Class NcVarNcVar::get_rec: Class NcVarNcVar::id: Class NcVarNcVar::num_atts: Class NcVarNcVar::num_dims: Class NcVarNcVar::put: Class NcVarNcVar::put_rec: Class NcVarNcVar::rec_size: Class NcVarNcVar::set_cur: Class NcVarNcVar::set_rec: Class NcVarNcVar::sync: Class NcVarNcVar::~NcVar: Class NcVarnum: Class NcValuesnum_atts: Class NcVarnum_atts: Class NcFilenum_dims: Class NcVarnum_dims: Class NcFilenum_vals: Class NcAttnum_vals: Class NcVarnum_vals: Class NcTypedComponentnum_vars: Class NcFileprint: Class NcValuesput: Class NcVarput_rec: Class NcVarrec_dim: Class NcFilerec_size: Class NcVarremove: Class NcAttrename: Class NcAttrename: Class NcVarrename: Class NcTypedComponentrename: Class NcDimset_cur: Class NcVarset_fill: Class NcFileset_rec: Class NcVarsize: Class NcDimsync: Class NcVarsync: Class NcDimsync: Class NcFiletype: Class NcAtttype: Class NcVartype: Class NcTypedComponentvalues: Class NcAttvalues: Class NcVarvalues: Class NcTypedComponent~NcAtt: Class NcAtt~NcError: Class NcError~NcFile: Class NcFile~NcValues: Class NcValues~NcVar: Class NcVar