NetCDF4 C++ API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Introduction

About the NetCDF4 API

This is a C++ API for NetCDF version 4. The original code was the Unidata distribution of Lynton Appel's C++ API. This API is the result of substantial refactoring of the original code. (See the document Changes.txt for details.)

The goals of this new API by way of refactoring the original code are:

  • Build without warnings (or errors, of course).
  • Build on mulitple platforms.
  • Add missing netCDF4 functions including variable compression and version 4 formats.
  • Provide the option to use parallel netCDF4 capabilities.
  • Modify the architecture to provide a stronger object-oriented design.
  • The API should utilize C++ containers rather than C arrays.
  • Provide a source code file structure consistent with the IRC model source code organization.
  • Incorporate the build files into the IRC model build system.

Class Tree

  namespace netCDF {

      NcType                          (metadata)
      |-- NcByte                      |-- MetadataCFGlobal
      |-- NcChar                      |-- MetadataCFVariable
      |-- NcDouble                    |-- MetadataUtils
      |-- NcFloat                     |-- NcFileMetaCF
      |-- NcInt                       `-- NcVarMetaCF
      |-- NcInt64
      |-- NcShort                     (datasets)
      |-- NcString                    |-- NcIndexedGridBase
      |-- NcUbyte                     |-- NcLatLonRecordBase
      |-- NcUint                      |-- NcSimpleGridBase
      |-- NcUint64                    |-- NcSpatial
      |-- NcUshort                    `-- NcTimeSeriesBase
      `--- NcTypeUserDef
          |-- NcCompoundType
          |-- NcEnumType
          |-- NcOpaqueType
          `-- NcVlenType

      NcItem
      |-- NcAtt
      |   |-- NcGroupAtt
      |   `-- NcVarAtt
      |-- NcDim
      |-- NcVar
      `-- NcGroup
          `-- NcFile

      NcLimits
      NcMPI
      NcVersion

      std::exception
      `-- NcException

  } // namespace netCDF

Utilities

  DisplayTypeSizes
  Nc4Version