20#if defined(_WIN32) || defined(_WIN64) 
   27#if defined(__cplusplus) 
   49#define NC_MAX_ATOMIC_TYPE NC_STRING  
   60#define NC_FIRSTUSERTYPEID 32 
   67#define NC_FILL_BYTE    ((signed char)-127) 
   68#define NC_FILL_CHAR    ((char)0) 
   69#define NC_FILL_SHORT   ((short)-32767) 
   70#define NC_FILL_INT     (-2147483647) 
   71#define NC_FILL_FLOAT   (9.9692099683868690e+36f)  
   72#define NC_FILL_DOUBLE  (9.9692099683868690e+36) 
   73#define NC_FILL_UBYTE   (255) 
   74#define NC_FILL_USHORT  (65535) 
   75#define NC_FILL_UINT    (4294967295U) 
   76#define NC_FILL_INT64   ((long long)-9223372036854775806LL) 
   77#define NC_FILL_UINT64  ((unsigned long long)18446744073709551614ULL) 
   78#define NC_FILL_STRING  ((char *)"") 
   89#define NC_MAX_BYTE 127 
   90#define NC_MIN_BYTE (-NC_MAX_BYTE-1) 
   91#define NC_MAX_CHAR 255 
   92#define NC_MAX_SHORT 32767 
   93#define NC_MIN_SHORT (-NC_MAX_SHORT - 1) 
   94#define NC_MAX_INT 2147483647 
   95#define NC_MIN_INT (-NC_MAX_INT - 1) 
   96#define NC_MAX_FLOAT 3.402823466e+38f 
   97#define NC_MIN_FLOAT (-NC_MAX_FLOAT) 
   98#define NC_MAX_DOUBLE 1.7976931348623157e+308 
   99#define NC_MIN_DOUBLE (-NC_MAX_DOUBLE) 
  100#define NC_MAX_UBYTE NC_MAX_CHAR 
  101#define NC_MAX_USHORT 65535U 
  102#define NC_MAX_UINT 4294967295U 
  103#define NC_MAX_INT64 (9223372036854775807LL) 
  104#define NC_MIN_INT64 (-9223372036854775807LL-1) 
  105#define NC_MAX_UINT64 (18446744073709551615ULL) 
  113#define NC_FillValue      "_FillValue" 
  115#define NC_NOFILL       0x100    
  127#define NC_NOWRITE       0x0000  
  128#define NC_WRITE         0x0001  
  130#define NC_CLOBBER       0x0000  
  131#define NC_NOCLOBBER     0x0004  
  132#define NC_DISKLESS      0x0008   
  133#define NC_MMAP          0x0010   
  135#define NC_64BIT_DATA    0x0020   
  136#define NC_CDF5          NC_64BIT_DATA   
  138#define NC_UDF0          0x0040   
  139#define NC_UDF1          0x0080   
  141#define NC_CLASSIC_MODEL 0x0100  
  142#define NC_64BIT_OFFSET  0x0200   
  148#define NC_LOCK          0x0400 
  152#define NC_SHARE         0x0800 
  154#define NC_NETCDF4       0x1000   
  159#define NC_MPIIO         0x2000  
  160#define NC_MPIPOSIX      NC_MPIIO  
  161#define NC_PNETCDF       (NC_MPIIO)  
  163#define NC_PERSIST       0x4000   
  164#define NC_INMEMORY      0x8000   
  167#define NC_NOATTCREORD  0x20000  
  168#define NC_NODIMSCALE_ATTACH 0x40000  
  170#define NC_MAX_MAGIC_NUMBER_LEN 8  
  179#define NC_FORMAT_CLASSIC         (1) 
  185#define NC_FORMAT_64BIT_OFFSET    (2) 
  186#define NC_FORMAT_64BIT           (NC_FORMAT_64BIT_OFFSET)  
  187#define NC_FORMAT_NETCDF4         (3) 
  188#define NC_FORMAT_NETCDF4_CLASSIC (4) 
  189#define NC_FORMAT_64BIT_DATA      (5) 
  192#define NC_FORMAT_CDF5    NC_FORMAT_64BIT_DATA 
  195#define NC_FORMAT_ALL (NC_64BIT_OFFSET|NC_64BIT_DATA|NC_CLASSIC_MODEL|NC_NETCDF4|NC_UDF0|NC_UDF1) 
  217#define NC_FORMATX_NC3       (1) 
  218#define NC_FORMATX_NC_HDF5   (2)  
  219#define NC_FORMATX_NC4       NC_FORMATX_NC_HDF5  
  220#define NC_FORMATX_NC_HDF4   (3)  
  221#define NC_FORMATX_PNETCDF   (4) 
  222#define NC_FORMATX_DAP2      (5) 
  223#define NC_FORMATX_DAP4      (6) 
  224#define NC_FORMATX_UDF0      (8) 
  225#define NC_FORMATX_UDF1      (9) 
  226#define NC_FORMATX_NCZARR    (10) 
  227#define NC_FORMATX_UNDEFINED (0) 
  234#define NC_FORMAT_NC3       NC_FORMATX_NC3  
  235#define NC_FORMAT_NC_HDF5   NC_FORMATX_NC_HDF5  
  236#define NC_FORMAT_NC4       NC_FORMATX_NC4  
  237#define NC_FORMAT_NC_HDF4   NC_FORMATX_NC_HDF4  
  238#define NC_FORMAT_PNETCDF   NC_FORMATX_PNETCDF  
  239#define NC_FORMAT_DAP2      NC_FORMATX_DAP2  
  240#define NC_FORMAT_DAP4      NC_FORMATX_DAP4  
  241#define NC_FORMAT_UNDEFINED NC_FORMATX_UNDEFINED  
  246#define NC_SIZEHINT_DEFAULT 0 
  249#define NC_ALIGN_CHUNK ((size_t)(-1)) 
  252#define NC_UNLIMITED 0L 
  279#define NC_MAX_DIMS     1024  
  280#define NC_MAX_ATTRS    8192  
  281#define NC_MAX_VARS     8192  
  282#define NC_MAX_NAME     256 
  283#define NC_MAX_VAR_DIMS 1024  
  290#define NC_MAX_HDF4_NAME NC_MAX_NAME 
  295#define NC_ENDIAN_NATIVE 0 
  296#define NC_ENDIAN_LITTLE 1 
  297#define NC_ENDIAN_BIG    2 
  306#define NC_CONTIGUOUS      1 
  308#define NC_UNKNOWN_STORAGE 3 
  317#define NC_NOCHECKSUM 0 
  318#define NC_FLETCHER32 1 
  326#define NC_NOSHUFFLE 0 
  330#define NC_MIN_DEFLATE_LEVEL 0  
  331#define NC_MAX_DEFLATE_LEVEL 9  
  336#define NC_NOQUANTIZE 0  
  337#define NC_QUANTIZE_BITGROOM 1  
  338#define NC_QUANTIZE_GRANULARBR 2  
  339#define NC_QUANTIZE_BITROUND 3  
  344#define NC_QUANTIZE_BITGROOM_ATT_NAME "_QuantizeBitGroomNumberOfSignificantDigits" 
  345#define NC_QUANTIZE_GRANULARBR_ATT_NAME "_QuantizeGranularBitRoundNumberOfSignificantDigits" 
  346#define NC_QUANTIZE_BITROUND_ATT_NAME "_QuantizeBitRoundNumberOfSignificantBits" 
  352#define NC_QUANTIZE_MAX_FLOAT_NSD (7) 
  353#define NC_QUANTIZE_MAX_FLOAT_NSB (23) 
  359#define NC_QUANTIZE_MAX_DOUBLE_NSD (15) 
  360#define NC_QUANTIZE_MAX_DOUBLE_NSB (52) 
  367#define NC_ISSYSERR(err)        ((err) > 0) 
  376#define NC_EBADID   (-33) 
  377#define NC_ENFILE   (-34)       
  378#define NC_EEXIST   (-35)       
  379#define NC_EINVAL   (-36)       
  380#define NC_EPERM    (-37)       
  385#define NC_ENOTINDEFINE (-38) 
  394#define NC_EINDEFINE    (-39) 
  401#define NC_EINVALCOORDS (-40) 
  406#define NC_EMAXDIMS (-41)  
  408#define NC_ENAMEINUSE   (-42)       
  409#define NC_ENOTATT  (-43)       
  410#define NC_EMAXATTS (-44)       
  411#define NC_EBADTYPE (-45)       
  412#define NC_EBADDIM  (-46)       
  413#define NC_EUNLIMPOS    (-47)       
  418#define NC_EMAXVARS (-48)  
  423#define NC_ENOTVAR  (-49) 
  424#define NC_EGLOBAL  (-50)       
  425#define NC_ENOTNC   (-51)       
  427#define NC_EMAXNAME     (-53)       
  428#define NC_EUNLIMIT     (-54)       
  429#define NC_ENORECVARS   (-55)       
  430#define NC_ECHAR    (-56)       
  439#define NC_EEDGE        (-57)       
  440#define NC_ESTRIDE      (-58)       
  441#define NC_EBADNAME     (-59)       
  448#define NC_ERANGE       (-60) 
  449#define NC_ENOMEM       (-61)       
  450#define NC_EVARSIZE     (-62)       
  451#define NC_EDIMSIZE     (-63)       
  452#define NC_ETRUNC       (-64)       
  453#define NC_EAXISTYPE    (-65)       
  457#define NC_ECURL        (-67)       
  459#define NC_ENODATA      (-69)       
  460#define NC_EDAPSVC      (-70)       
  463#define NC_EDMR         NC_EDDS     
  464#define NC_EDATADDS     (-73)       
  465#define NC_EDATADAP     NC_EDATADDS     
  466#define NC_EDAPURL      (-74)       
  467#define NC_EDAPCONSTRAINT (-75)     
  468#define NC_ETRANSLATION (-76)       
  469#define NC_EACCESS      (-77)       
  470#define NC_EAUTH        (-78)       
  473#define NC_ENOTFOUND     (-90)       
  474#define NC_ECANTREMOVE   (-91)       
  475#define NC_EINTERNAL     (-92)       
  476#define NC_EPNETCDF      (-93)       
  481#define NC4_FIRST_ERROR  (-100)     
  482#define NC_EHDFERR       (-101)     
  483#define NC_ECANTREAD     (-102)     
  484#define NC_ECANTWRITE    (-103)     
  485#define NC_ECANTCREATE   (-104)     
  486#define NC_EFILEMETA     (-105)     
  487#define NC_EDIMMETA      (-106)     
  488#define NC_EATTMETA      (-107)     
  489#define NC_EVARMETA      (-108)     
  490#define NC_ENOCOMPOUND   (-109)     
  491#define NC_EATTEXISTS    (-110)     
  492#define NC_ENOTNC4       (-111)     
  493#define NC_ESTRICTNC3    (-112)     
  494#define NC_ENOTNC3       (-113)     
  495#define NC_ENOPAR        (-114)     
  496#define NC_EPARINIT      (-115)     
  497#define NC_EBADGRPID     (-116)     
  498#define NC_EBADTYPID     (-117)     
  499#define NC_ETYPDEFINED   (-118)     
  500#define NC_EBADFIELD     (-119)     
  501#define NC_EBADCLASS     (-120)     
  502#define NC_EMAPTYPE      (-121)     
  503#define NC_ELATEFILL     (-122)     
  504#define NC_ELATEDEF      (-123)     
  505#define NC_EDIMSCALE     (-124)     
  506#define NC_ENOGRP        (-125)     
  507#define NC_ESTORAGE      (-126)     
  508#define NC_EBADCHUNK     (-127)     
  509#define NC_ENOTBUILT     (-128)     
  510#define NC_EDISKLESS     (-129)     
  511#define NC_ECANTEXTEND   (-130)     
  512#define NC_EMPI          (-131)     
  514#define NC_EFILTER       (-132)     
  515#define NC_ERCFILE       (-133)     
  516#define NC_ENULLPAD      (-134)     
  517#define NC_EINMEMORY     (-135)     
  518#define NC_ENOFILTER     (-136)     
  519#define NC_ENCZARR       (-137)     
  521#define NC_EEMPTY        (-139)     
  522#define NC_EOBJECT       (-140)     
  523#define NC_ENOOBJECT     (-141)     
  524#define NC_EPLUGIN       (-142)     
  526#define NC4_LAST_ERROR   (-142)     
  529#define NC_EURL         (NC_EDAPURL)    
  530#define NC_ECONSTRAINT  (NC_EDAPCONSTRAINT)    
  534#define DIM_WITHOUT_VARIABLE "This is a netCDF dimension but not a netCDF variable." 
  539#define NC_HAVE_NEW_CHUNKING_API 1 
  546#if defined(DLL_NETCDF)  
  547#  if defined(DLL_EXPORT)  
  548#   define MSC_EXTRA __declspec(dllexport) 
  550#   define MSC_EXTRA __declspec(dllimport) 
  557#define EXTERNL MSC_EXTRA extern  
  559#if defined(DLL_NETCDF)  
  571typedef struct NC_Dispatch NC_Dispatch;
 
  580nc_set_alignment(
int threshold, 
int alignment);
 
  584nc_get_alignment(
int* thresholdp, 
int* alignmentp);
 
  587nc__create(
const char *path, 
int cmode, 
size_t initialsz,
 
  588         size_t *chunksizehintp, 
int *ncidp);
 
  591nc_create(
const char *path, 
int cmode, 
int *ncidp);
 
  595        size_t *chunksizehintp, 
int *ncidp);
 
  598nc_open(
const char *path, 
int mode, 
int *ncidp);
 
  607nc_inq_ncid(
int ncid, 
const char *name, 
int *grp_ncid);
 
  646nc_inq_dimids(
int ncid, 
int *ndims, 
int *dimids, 
int include_parents);
 
  660nc_def_grp(
int parent_ncid, 
const char *name, 
int *new_ncid);
 
  675                   size_t offset, 
nc_type field_typeid);
 
  680                         size_t offset, 
nc_type field_typeid,
 
  681                         int ndims, 
const int *dim_sizes);
 
  711                      size_t *offsetp, 
nc_type *field_typeidp, 
int *ndimsp,
 
  756#define NC_COMPOUND_OFFSET(S,M)    (offsetof(S,M)) 
  769nc_put_vlen_element(
int ncid, 
int typeid1, 
void *vlen_element,
 
  770                    size_t len, 
const void *data);
 
  773nc_get_vlen_element(
int ncid, 
int typeid1, 
const void *vlen_element,
 
  774                    size_t *len, 
void *data);
 
  779                 nc_type *base_nc_typep, 
size_t *nfieldsp, 
int *classp);
 
  784           size_t len, 
const void *op);
 
  788nc_get_att(
int ncid, 
int varid, 
const char *name, 
void *ip);
 
  808            size_t *base_sizep, 
size_t *num_membersp);
 
  819#define NC_UNDEFINED_ENUM_IDENT "_UNDEFINED" 
  836nc_put_var(
int ncid, 
int varid,  
const void *op);
 
  844nc_put_var1(
int ncid, 
int varid,  
const size_t *indexp,
 
  849nc_get_var1(
int ncid, 
int varid,  
const size_t *indexp, 
void *ip);
 
  853nc_put_vara(
int ncid, 
int varid,  
const size_t *startp,
 
  854            const size_t *countp, 
const void *op);
 
  858nc_get_vara(
int ncid, 
int varid,  
const size_t *startp,
 
  859            const size_t *countp, 
void *ip);
 
  863nc_put_vars(
int ncid, 
int varid,  
const size_t *startp,
 
  864            const size_t *countp, 
const ptrdiff_t *stridep,
 
  869nc_get_vars(
int ncid, 
int varid,  
const size_t *startp,
 
  870            const size_t *countp, 
const ptrdiff_t *stridep,
 
  875nc_put_varm(
int ncid, 
int varid,  
const size_t *startp,
 
  876            const size_t *countp, 
const ptrdiff_t *stridep,
 
  877            const ptrdiff_t *imapp, 
const void *op);
 
  881nc_get_varm(
int ncid, 
int varid,  
const size_t *startp,
 
  882            const size_t *countp, 
const ptrdiff_t *stridep,
 
  883            const ptrdiff_t *imapp, 
void *ip);
 
  906                   int *deflatep, 
int *deflate_levelp);
 
  910                            int pixels_per_block);
 
  914nc_inq_var_szip(
int ncid, 
int varid, 
int *options_maskp, 
int *pixels_per_blockp);
 
  937nc_def_var_fill(
int ncid, 
int varid, 
int no_fill, 
const void *fill_value);
 
  953nc_def_var_filter(
int ncid, 
int varid, 
unsigned int id, 
size_t nparams, 
const unsigned int* parms);
 
  957nc_inq_var_filter(
int ncid, 
int varid, 
unsigned int* idp, 
size_t* nparams, 
unsigned int* params);
 
  961nc_set_fill(
int ncid, 
int fillmode, 
int *old_modep);
 
  966nc_set_default_format(
int format, 
int *old_formatp);
 
  991nc__enddef(
int ncid, 
size_t h_minfree, 
size_t v_align,
 
  992        size_t v_minfree, 
size_t r_align);
 
 1007nc_inq(
int ncid, 
int *ndimsp, 
int *nvarsp, 
int *nattsp, 
int *unlimdimidp);
 
 1036nc_def_dim(
int ncid, 
const char *name, 
size_t len, 
int *idp);
 
 1042nc_inq_dim(
int ncid, 
int dimid, 
char *name, 
size_t *lenp);
 
 1057nc_inq_att(
int ncid, 
int varid, 
const char *name,
 
 1058           nc_type *xtypep, 
size_t *lenp);
 
 1061nc_inq_attid(
int ncid, 
int varid, 
const char *name, 
int *idp);
 
 1067nc_inq_attlen(
int ncid, 
int varid, 
const char *name, 
size_t *lenp);
 
 1073nc_copy_att(
int ncid_in, 
int varid_in, 
const char *name, 
int ncid_out, 
int varid_out);
 
 1076nc_rename_att(
int ncid, 
int varid, 
const char *name, 
const char *newname);
 
 1079nc_del_att(
int ncid, 
int varid, 
const char *name);
 
 1085                size_t len, 
const char *op);
 
 1092                  size_t len, 
const char **op);
 
 1099                 size_t len, 
const unsigned char *op);
 
 1106                 size_t len, 
const signed char *op);
 
 1113                 size_t len, 
const short *op);
 
 1120               size_t len, 
const int *op);
 
 1127                size_t len, 
const long *op);
 
 1134                 size_t len, 
const float *op);
 
 1141                  size_t len, 
const double *op);
 
 1148                  size_t len, 
const unsigned short *op);
 
 1155                size_t len, 
const unsigned int *op);
 
 1158nc_get_att_uint(
int ncid, 
int varid, 
const char *name, 
unsigned int *ip);
 
 1162                 size_t len, 
const long long *op);
 
 1169                     size_t len, 
const unsigned long long *op);
 
 1173                     unsigned long long *ip);
 
 1181           const int *dimidsp, 
int *varidp);
 
 1185           int *ndimsp, 
int *dimidsp, 
int *nattsp);
 
 1213#define ncvarcpy(ncid_in, varid, ncid_out) ncvarcopy((ncid_in), (varid), (ncid_out)) 
 1220nc_put_var1_text(
int ncid, 
int varid, 
const size_t *indexp, 
const char *op);
 
 1223nc_get_var1_text(
int ncid, 
int varid, 
const size_t *indexp, 
char *ip);
 
 1226nc_put_var1_uchar(
int ncid, 
int varid, 
const size_t *indexp,
 
 1227                  const unsigned char *op);
 
 1230nc_get_var1_uchar(
int ncid, 
int varid, 
const size_t *indexp,
 
 1234nc_put_var1_schar(
int ncid, 
int varid, 
const size_t *indexp,
 
 1235                  const signed char *op);
 
 1238nc_get_var1_schar(
int ncid, 
int varid, 
const size_t *indexp,
 
 1242nc_put_var1_short(
int ncid, 
int varid, 
const size_t *indexp,
 
 1246nc_get_var1_short(
int ncid, 
int varid, 
const size_t *indexp,
 
 1250nc_put_var1_int(
int ncid, 
int varid, 
const size_t *indexp, 
const int *op);
 
 1253nc_get_var1_int(
int ncid, 
int varid, 
const size_t *indexp, 
int *ip);
 
 1256nc_put_var1_long(
int ncid, 
int varid, 
const size_t *indexp, 
const long *op);
 
 1259nc_get_var1_long(
int ncid, 
int varid, 
const size_t *indexp, 
long *ip);
 
 1262nc_put_var1_float(
int ncid, 
int varid, 
const size_t *indexp, 
const float *op);
 
 1265nc_get_var1_float(
int ncid, 
int varid, 
const size_t *indexp, 
float *ip);
 
 1268nc_put_var1_double(
int ncid, 
int varid, 
const size_t *indexp, 
const double *op);
 
 1271nc_get_var1_double(
int ncid, 
int varid, 
const size_t *indexp, 
double *ip);
 
 1274nc_put_var1_ushort(
int ncid, 
int varid, 
const size_t *indexp,
 
 1275                   const unsigned short *op);
 
 1278nc_get_var1_ushort(
int ncid, 
int varid, 
const size_t *indexp,
 
 1279                   unsigned short *ip);
 
 1282nc_put_var1_uint(
int ncid, 
int varid, 
const size_t *indexp,
 
 1283                 const unsigned int *op);
 
 1286nc_get_var1_uint(
int ncid, 
int varid, 
const size_t *indexp,
 
 1290nc_put_var1_longlong(
int ncid, 
int varid, 
const size_t *indexp,
 
 1291                     const long long *op);
 
 1294nc_get_var1_longlong(
int ncid, 
int varid, 
const size_t *indexp,
 
 1298nc_put_var1_ulonglong(
int ncid, 
int varid, 
const size_t *indexp,
 
 1299                   const unsigned long long *op);
 
 1302nc_get_var1_ulonglong(
int ncid, 
int varid, 
const size_t *indexp,
 
 1303                   unsigned long long *ip);
 
 1306nc_put_var1_string(
int ncid, 
int varid, 
const size_t *indexp,
 
 1310nc_get_var1_string(
int ncid, 
int varid, 
const size_t *indexp,
 
 1317nc_put_vara_text(
int ncid, 
int varid, 
const size_t *startp,
 
 1318                 const size_t *countp, 
const char *op);
 
 1321nc_get_vara_text(
int ncid, 
int varid, 
const size_t *startp,
 
 1322                 const size_t *countp, 
char *ip);
 
 1325nc_put_vara_uchar(
int ncid, 
int varid, 
const size_t *startp,
 
 1326                  const size_t *countp, 
const unsigned char *op);
 
 1329nc_get_vara_uchar(
int ncid, 
int varid, 
const size_t *startp,
 
 1330                  const size_t *countp, 
unsigned char *ip);
 
 1333nc_put_vara_schar(
int ncid, 
int varid, 
const size_t *startp,
 
 1334                  const size_t *countp, 
const signed char *op);
 
 1337nc_get_vara_schar(
int ncid, 
int varid, 
const size_t *startp,
 
 1338                  const size_t *countp, 
signed char *ip);
 
 1341nc_put_vara_short(
int ncid, 
int varid, 
const size_t *startp,
 
 1342                  const size_t *countp, 
const short *op);
 
 1345nc_get_vara_short(
int ncid, 
int varid, 
const size_t *startp,
 
 1346                  const size_t *countp, 
short *ip);
 
 1349nc_put_vara_int(
int ncid, 
int varid, 
const size_t *startp,
 
 1350                const size_t *countp, 
const int *op);
 
 1353nc_get_vara_int(
int ncid, 
int varid, 
const size_t *startp,
 
 1354                const size_t *countp, 
int *ip);
 
 1357nc_put_vara_long(
int ncid, 
int varid, 
const size_t *startp,
 
 1358                 const size_t *countp, 
const long *op);
 
 1361nc_get_vara_long(
int ncid, 
int varid,
 
 1362        const size_t *startp, 
const size_t *countp, 
long *ip);
 
 1365nc_put_vara_float(
int ncid, 
int varid,
 
 1366        const size_t *startp, 
const size_t *countp, 
const float *op);
 
 1369nc_get_vara_float(
int ncid, 
int varid,
 
 1370        const size_t *startp, 
const size_t *countp, 
float *ip);
 
 1373nc_put_vara_double(
int ncid, 
int varid, 
const size_t *startp,
 
 1374                   const size_t *countp, 
const double *op);
 
 1377nc_get_vara_double(
int ncid, 
int varid, 
const size_t *startp,
 
 1378                   const size_t *countp, 
double *ip);
 
 1381nc_put_vara_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1382                   const size_t *countp, 
const unsigned short *op);
 
 1385nc_get_vara_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1386                   const size_t *countp, 
unsigned short *ip);
 
 1389nc_put_vara_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1390                 const size_t *countp, 
const unsigned int *op);
 
 1393nc_get_vara_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1394                 const size_t *countp, 
unsigned int *ip);
 
 1397nc_put_vara_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1398                  const size_t *countp, 
const long long *op);
 
 1401nc_get_vara_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1402                  const size_t *countp, 
long long *ip);
 
 1405nc_put_vara_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1406                   const size_t *countp, 
const unsigned long long *op);
 
 1409nc_get_vara_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1410                   const size_t *countp, 
unsigned long long *ip);
 
 1413nc_put_vara_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1414                   const size_t *countp, 
const char **op);
 
 1417nc_get_vara_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1418                   const size_t *countp, 
char **ip);
 
 1424nc_put_vars_text(
int ncid, 
int varid,
 
 1425        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1429nc_get_vars_text(
int ncid, 
int varid,
 
 1430        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1434nc_put_vars_uchar(
int ncid, 
int varid,
 
 1435        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1436        const unsigned char *op);
 
 1439nc_get_vars_uchar(
int ncid, 
int varid,
 
 1440        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1444nc_put_vars_schar(
int ncid, 
int varid,
 
 1445        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1446        const signed char *op);
 
 1449nc_get_vars_schar(
int ncid, 
int varid,
 
 1450        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1454nc_put_vars_short(
int ncid, 
int varid,
 
 1455        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1459nc_get_vars_short(
int ncid, 
int varid, 
const size_t *startp,
 
 1460                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1464nc_put_vars_int(
int ncid, 
int varid,
 
 1465        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1469nc_get_vars_int(
int ncid, 
int varid,
 
 1470        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1474nc_put_vars_long(
int ncid, 
int varid,
 
 1475        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1479nc_get_vars_long(
int ncid, 
int varid,
 
 1480        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1484nc_put_vars_float(
int ncid, 
int varid,
 
 1485        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1489nc_get_vars_float(
int ncid, 
int varid,
 
 1490        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1494nc_put_vars_double(
int ncid, 
int varid,
 
 1495        const size_t *startp, 
const size_t *countp, 
const ptrdiff_t *stridep,
 
 1499nc_get_vars_double(
int ncid, 
int varid, 
const size_t *startp,
 
 1500                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1504nc_put_vars_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1505                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1506                   const unsigned short *op);
 
 1509nc_get_vars_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1510                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1511                   unsigned short *ip);
 
 1514nc_put_vars_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1515                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1516                 const unsigned int *op);
 
 1519nc_get_vars_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1520                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1524nc_put_vars_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1525                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1526                  const long long *op);
 
 1529nc_get_vars_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1530                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1534nc_put_vars_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1535                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1536                   const unsigned long long *op);
 
 1539nc_get_vars_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1540                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1541                   unsigned long long *ip);
 
 1544nc_put_vars_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1545                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1549nc_get_vars_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1550                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1557nc_put_varm_text(
int ncid, 
int varid, 
const size_t *startp,
 
 1558                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1559                 const ptrdiff_t *imapp, 
const char *op);
 
 1562nc_get_varm_text(
int ncid, 
int varid, 
const size_t *startp,
 
 1563                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1564                 const ptrdiff_t *imapp, 
char *ip);
 
 1567nc_put_varm_uchar(
int ncid, 
int varid, 
const size_t *startp,
 
 1568                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1569                  const ptrdiff_t *imapp, 
const unsigned char *op);
 
 1572nc_get_varm_uchar(
int ncid, 
int varid, 
const size_t *startp,
 
 1573                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1574                  const ptrdiff_t *imapp, 
unsigned char *ip);
 
 1577nc_put_varm_schar(
int ncid, 
int varid, 
const size_t *startp,
 
 1578                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1579                  const ptrdiff_t *imapp, 
const signed char *op);
 
 1582nc_get_varm_schar(
int ncid, 
int varid, 
const size_t *startp,
 
 1583                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1584                  const ptrdiff_t *imapp, 
signed char *ip);
 
 1587nc_put_varm_short(
int ncid, 
int varid, 
const size_t *startp,
 
 1588                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1589                  const ptrdiff_t *imapp, 
const short *op);
 
 1592nc_get_varm_short(
int ncid, 
int varid, 
const size_t *startp,
 
 1593                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1594                  const ptrdiff_t *imapp, 
short *ip);
 
 1597nc_put_varm_int(
int ncid, 
int varid, 
const size_t *startp,
 
 1598                const size_t *countp, 
const ptrdiff_t *stridep,
 
 1599                const ptrdiff_t *imapp, 
const int *op);
 
 1602nc_get_varm_int(
int ncid, 
int varid, 
const size_t *startp,
 
 1603                const size_t *countp, 
const ptrdiff_t *stridep,
 
 1604                const ptrdiff_t *imapp, 
int *ip);
 
 1607nc_put_varm_long(
int ncid, 
int varid, 
const size_t *startp,
 
 1608                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1609                 const ptrdiff_t *imapp, 
const long *op);
 
 1612nc_get_varm_long(
int ncid, 
int varid, 
const size_t *startp,
 
 1613                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1614                 const ptrdiff_t *imapp, 
long *ip);
 
 1617nc_put_varm_float(
int ncid, 
int varid,
const size_t *startp,
 
 1618                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1619                  const ptrdiff_t *imapp, 
const float *op);
 
 1622nc_get_varm_float(
int ncid, 
int varid,
const size_t *startp,
 
 1623                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1624                  const ptrdiff_t *imapp, 
float *ip);
 
 1627nc_put_varm_double(
int ncid, 
int varid, 
const size_t *startp,
 
 1628                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1629                   const ptrdiff_t *imapp, 
const double *op);
 
 1632nc_get_varm_double(
int ncid, 
int varid, 
const size_t *startp,
 
 1633                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1634                   const ptrdiff_t * imapp, 
double *ip);
 
 1637nc_put_varm_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1638                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1639                   const ptrdiff_t * imapp, 
const unsigned short *op);
 
 1642nc_get_varm_ushort(
int ncid, 
int varid, 
const size_t *startp,
 
 1643                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1644                   const ptrdiff_t * imapp, 
unsigned short *ip);
 
 1647nc_put_varm_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1648                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1649                 const ptrdiff_t * imapp, 
const unsigned int *op);
 
 1652nc_get_varm_uint(
int ncid, 
int varid, 
const size_t *startp,
 
 1653                 const size_t *countp, 
const ptrdiff_t *stridep,
 
 1654                 const ptrdiff_t * imapp, 
unsigned int *ip);
 
 1657nc_put_varm_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1658                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1659                  const ptrdiff_t * imapp, 
const long long *op);
 
 1662nc_get_varm_longlong(
int ncid, 
int varid, 
const size_t *startp,
 
 1663                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1664                  const ptrdiff_t * imapp, 
long long *ip);
 
 1667nc_put_varm_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1668                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1669                   const ptrdiff_t * imapp, 
const unsigned long long *op);
 
 1672nc_get_varm_ulonglong(
int ncid, 
int varid, 
const size_t *startp,
 
 1673                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1674                   const ptrdiff_t * imapp, 
unsigned long long *ip);
 
 1677nc_put_varm_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1678                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1679                   const ptrdiff_t * imapp, 
const char **op);
 
 1682nc_get_varm_string(
int ncid, 
int varid, 
const size_t *startp,
 
 1683                   const size_t *countp, 
const ptrdiff_t *stridep,
 
 1684                   const ptrdiff_t * imapp, 
char **ip);
 
 1690nc_put_var_text(
int ncid, 
int varid, 
const char *op);
 
 1693nc_get_var_text(
int ncid, 
int varid, 
char *ip);
 
 1696nc_put_var_uchar(
int ncid, 
int varid, 
const unsigned char *op);
 
 1699nc_get_var_uchar(
int ncid, 
int varid, 
unsigned char *ip);
 
 1702nc_put_var_schar(
int ncid, 
int varid, 
const signed char *op);
 
 1705nc_get_var_schar(
int ncid, 
int varid, 
signed char *ip);
 
 1708nc_put_var_short(
int ncid, 
int varid, 
const short *op);
 
 1711nc_get_var_short(
int ncid, 
int varid, 
short *ip);
 
 1714nc_put_var_int(
int ncid, 
int varid, 
const int *op);
 
 1717nc_get_var_int(
int ncid, 
int varid, 
int *ip);
 
 1720nc_put_var_long(
int ncid, 
int varid, 
const long *op);
 
 1723nc_get_var_long(
int ncid, 
int varid, 
long *ip);
 
 1726nc_put_var_float(
int ncid, 
int varid, 
const float *op);
 
 1729nc_get_var_float(
int ncid, 
int varid, 
float *ip);
 
 1732nc_put_var_double(
int ncid, 
int varid, 
const double *op);
 
 1735nc_get_var_double(
int ncid, 
int varid, 
double *ip);
 
 1738nc_put_var_ushort(
int ncid, 
int varid, 
const unsigned short *op);
 
 1741nc_get_var_ushort(
int ncid, 
int varid, 
unsigned short *ip);
 
 1744nc_put_var_uint(
int ncid, 
int varid, 
const unsigned int *op);
 
 1747nc_get_var_uint(
int ncid, 
int varid, 
unsigned int *ip);
 
 1750nc_put_var_longlong(
int ncid, 
int varid, 
const long long *op);
 
 1753nc_get_var_longlong(
int ncid, 
int varid, 
long long *ip);
 
 1756nc_put_var_ulonglong(
int ncid, 
int varid, 
const unsigned long long *op);
 
 1759nc_get_var_ulonglong(
int ncid, 
int varid, 
unsigned long long *ip);
 
 1762nc_put_var_string(
int ncid, 
int varid, 
const char **op);
 
 1765nc_get_var_string(
int ncid, 
int varid, 
char **ip);
 
 1819EXTERNL int nc_reclaim_data_all(
int ncid, 
nc_type xtypeid, 
void* memory, 
size_t nelems);
 
 1835EXTERNL int nc_copy_data_all(
int ncid, 
nc_type xtypeid, 
const void* memory, 
size_t count, 
void** copyp);
 
 1842                 size_t len, 
const unsigned char *op);
 
 1847nc_put_var1_ubyte(
int ncid, 
int varid, 
const size_t *indexp,
 
 1848                  const unsigned char *op);
 
 1850nc_get_var1_ubyte(
int ncid, 
int varid, 
const size_t *indexp,
 
 1853nc_put_vara_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1854                  const size_t *countp, 
const unsigned char *op);
 
 1856nc_get_vara_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1857                  const size_t *countp, 
unsigned char *ip);
 
 1859nc_put_vars_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1860                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1861                  const unsigned char *op);
 
 1863nc_get_vars_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1864                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1867nc_put_varm_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1868                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1869                  const ptrdiff_t * imapp, 
const unsigned char *op);
 
 1871nc_get_varm_ubyte(
int ncid, 
int varid, 
const size_t *startp,
 
 1872                  const size_t *countp, 
const ptrdiff_t *stridep,
 
 1873                  const ptrdiff_t * imapp, 
unsigned char *ip);
 
 1875nc_put_var_ubyte(
int ncid, 
int varid, 
const unsigned char *op);
 
 1878nc_get_var_ubyte(
int ncid, 
int varid, 
unsigned char *ip);
 
 1885nc_set_log_level(
int new_level);
 
 1889#define NC_TURN_OFF_LOGGING (-1) 
 1899nc_delete(
const char *path);
 
 1911nc__create_mp(
const char *path, 
int cmode, 
size_t initialsz, 
int basepe,
 
 1912         size_t *chunksizehintp, 
int *ncidp);
 
 1915nc__open_mp(
const char *path, 
int mode, 
int basepe,
 
 1916        size_t *chunksizehintp, 
int *ncidp);
 
 1919nc_delete_mp(
const char *path, 
int basepe);
 
 1922nc_set_base_pe(
int ncid, 
int pe);
 
 1925nc_inq_base_pe(
int ncid, 
int *pe);
 
 1935#define FILL_BYTE       NC_FILL_BYTE 
 1936#define FILL_CHAR       NC_FILL_CHAR 
 1937#define FILL_SHORT      NC_FILL_SHORT 
 1938#define FILL_LONG       NC_FILL_INT 
 1939#define FILL_FLOAT      NC_FILL_FLOAT 
 1940#define FILL_DOUBLE     NC_FILL_DOUBLE 
 1942#define MAX_NC_DIMS     NC_MAX_DIMS 
 1943#define MAX_NC_ATTRS    NC_MAX_ATTRS 
 1944#define MAX_NC_VARS     NC_MAX_VARS 
 1945#define MAX_NC_NAME     NC_MAX_NAME 
 1946#define MAX_VAR_DIMS    NC_MAX_VAR_DIMS 
 1955#define NC_ENTOOL       NC_EMAXNAME    
 1956#define NC_EXDR         (-32)    
 1957#define NC_SYSERR       (-31)    
 1970nc_advise(
const char *cdf_routine_name, 
int err, 
const char *fmt,...);
 
 1980nccreate(
const char* path, 
int cmode);
 
 1983ncopen(
const char* path, 
int mode);
 
 2004ncinquire(
int ncid, 
int *ndimsp, 
int *nvarsp, 
int *nattsp, 
int *unlimdimp);
 
 2007ncdimdef(
int ncid, 
const char *name, 
long len);
 
 2010ncdimid(
int ncid, 
const char *name);
 
 2013ncdiminq(
int ncid, 
int dimid, 
char *name, 
long *lenp);
 
 2016ncdimrename(
int ncid, 
int dimid, 
const char *name);
 
 2020        int len, 
const void *op);
 
 2023ncattinq(
int ncid, 
int varid, 
const char *name, 
nc_type *xtypep, 
int *lenp);
 
 2026ncattget(
int ncid, 
int varid, 
const char *name, 
void *ip);
 
 2029ncattcopy(
int ncid_in, 
int varid_in, 
const char *name, 
int ncid_out,
 
 2033ncattname(
int ncid, 
int varid, 
int attnum, 
char *name);
 
 2036ncattrename(
int ncid, 
int varid, 
const char *name, 
const char *newname);
 
 2039ncattdel(
int ncid, 
int varid, 
const char *name);
 
 2043        int ndims, 
const int *dimidsp);
 
 2046ncvarid(
int ncid, 
const char *name);
 
 2050        int *ndimsp, 
int *dimidsp, 
int *nattsp);
 
 2053ncvarput1(
int ncid, 
int varid, 
const long *indexp, 
const void *op);
 
 2056ncvarget1(
int ncid, 
int varid, 
const long *indexp, 
void *ip);
 
 2059ncvarput(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2063ncvarget(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2067ncvarputs(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2068        const long *stridep, 
const void *op);
 
 2071ncvargets(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2072        const long *stridep, 
void *ip);
 
 2075ncvarputg(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2076        const long *stridep, 
const long *imapp, 
const void *op);
 
 2079ncvargetg(
int ncid, 
int varid, 
const long *startp, 
const long *countp,
 
 2080        const long *stridep, 
const long *imapp, 
void *ip);
 
 2083ncvarrename(
int ncid, 
int varid, 
const char *name);
 
 2086ncrecinq(
int ncid, 
int *nrecvarsp, 
int *recvaridsp, 
long *recsizesp);
 
 2089ncrecget(
int ncid, 
long recnum, 
void **datap);
 
 2092ncrecput(
int ncid, 
long recnum, 
void *
const *datap);
 
 2097EXTERNL int nc_initialize(
void);
 
 2108EXTERNL char* nc_rc_get(
const char* key);
 
 2111EXTERNL int nc_rc_set(
const char* key, 
const char* value);
 
 2113#if defined(__cplusplus) 
 2123#ifndef NC_HAVE_RENAME_GRP 
 2124#define NC_HAVE_RENAME_GRP  
 2127#ifndef NC_HAVE_INQ_FORMAT_EXTENDED 
 2128#define NC_HAVE_INQ_FORMAT_EXTENDED  
 2131#define NC_HAVE_META_H 
EXTERNL int nc_get_att_int(int ncid, int varid, const char *name, int *ip)
Get an attribute array of type int.
 
EXTERNL int nc_get_att_string(int ncid, int varid, const char *name, char **ip)
Get an attribute array of type string.
 
EXTERNL int nc_put_att(int ncid, int varid, const char *name, nc_type xtype, size_t len, const void *op)
Write an attribute of any type.
 
EXTERNL int nc_get_att(int ncid, int varid, const char *name, void *ip)
Get an attribute of any type.
 
EXTERNL int nc_get_att_float(int ncid, int varid, const char *name, float *ip)
Get an attribute array of type float.
 
EXTERNL int nc_get_att_long(int ncid, int varid, const char *name, long *ip)
Get an attribute array of type long.
 
EXTERNL int nc_get_att_uchar(int ncid, int varid, const char *name, unsigned char *ip)
Get an attribute of an signed char type.
 
EXTERNL int nc_inq_attid(int ncid, int varid, const char *name, int *idp)
Find an attribute ID.
 
EXTERNL int nc_get_att_longlong(int ncid, int varid, const char *name, long long *ip)
Get an attribute array of type long long.
 
EXTERNL int nc_put_att_uint(int ncid, int varid, const char *name, nc_type xtype, size_t len, const unsigned int *op)
Write an attribute of type unsigned int.
 
EXTERNL int nc_get_att_ubyte(int ncid, int varid, const char *name, unsigned char *ip)
Get an attribute array of type unsigned char.
 
EXTERNL int nc_put_att_string(int ncid, int varid, const char *name, size_t len, const char **op)
Write a string attribute.
 
EXTERNL int nc_inq_natts(int ncid, int *nattsp)
Find number of global or group attributes.
 
EXTERNL int nc_put_att_ubyte(int ncid, int varid, const char *name, nc_type xtype, size_t len, const unsigned char *op)
Write an attribute of type unsigned char.
 
EXTERNL int nc_put_att_text(int ncid, int varid, const char *name, size_t len, const char *op)
Write a text attribute.
 
EXTERNL int nc_put_att_schar(int ncid, int varid, const char *name, nc_type xtype, size_t len, const signed char *op)
Write an attribute of type signed char.
 
EXTERNL int nc_put_att_ushort(int ncid, int varid, const char *name, nc_type xtype, size_t len, const unsigned short *op)
Write an attribute of type unsigned short.
 
EXTERNL int nc_put_att_long(int ncid, int varid, const char *name, nc_type xtype, size_t len, const long *op)
Write an attribute of type long.
 
EXTERNL int nc_put_att_float(int ncid, int varid, const char *name, nc_type xtype, size_t len, const float *op)
Write an attribute of type float.
 
EXTERNL int nc_put_att_uchar(int ncid, int varid, const char *name, nc_type xtype, size_t len, const unsigned char *op)
Write an attribute of type unsigned char.
 
EXTERNL int nc_get_att_ulonglong(int ncid, int varid, const char *name, unsigned long long *ip)
Get an attribute array of type unsigned long long.
 
EXTERNL int nc_get_att_text(int ncid, int varid, const char *name, char *ip)
Get a text attribute.
 
EXTERNL int nc_get_att_short(int ncid, int varid, const char *name, short *ip)
Get an attribute array of type short.
 
EXTERNL int nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, size_t *lenp)
Return information about a netCDF attribute.
 
EXTERNL int nc_get_att_schar(int ncid, int varid, const char *name, signed char *ip)
Get an attribute of an signed char type.
 
EXTERNL int nc_put_att_longlong(int ncid, int varid, const char *name, nc_type xtype, size_t len, const long long *op)
Write an attribute of type long long.
 
EXTERNL int nc_get_att_double(int ncid, int varid, const char *name, double *ip)
Get an attribute array of type double.
 
EXTERNL int nc_inq_atttype(int ncid, int varid, const char *name, nc_type *xtypep)
Find the type of an attribute.
 
EXTERNL int nc_put_att_ulonglong(int ncid, int varid, const char *name, nc_type xtype, size_t len, const unsigned long long *op)
Write an attribute of type unsigned long long.
 
EXTERNL int nc_put_att_int(int ncid, int varid, const char *name, nc_type xtype, size_t len, const int *op)
Write an attribute of type int.
 
EXTERNL int nc_del_att(int ncid, int varid, const char *name)
Delete an attribute.
 
EXTERNL int nc_rename_att(int ncid, int varid, const char *name, const char *newname)
Rename an attribute.
 
EXTERNL int nc_get_att_ushort(int ncid, int varid, const char *name, unsigned short *ip)
Get an attribute array of type unsigned short.
 
EXTERNL int nc_put_att_short(int ncid, int varid, const char *name, nc_type xtype, size_t len, const short *op)
Write an attribute of type short.
 
EXTERNL int nc_inq_attname(int ncid, int varid, int attnum, char *name)
Find the name of an attribute.
 
EXTERNL int nc_inq_attlen(int ncid, int varid, const char *name, size_t *lenp)
Find the length of an attribute.
 
EXTERNL int nc_get_att_uint(int ncid, int varid, const char *name, unsigned int *ip)
Get an attribute array of type unsigned int.
 
EXTERNL int nc_put_att_double(int ncid, int varid, const char *name, nc_type xtype, size_t len, const double *op)
Write an attribute of type double.
 
EXTERNL int nc_inq_user_format(int mode_flag, NC_Dispatch **dispatch_table, char *magic_number)
Inquire about user-defined format.
 
EXTERNL int nc__create(const char *path, int cmode, size_t initialsz, size_t *chunksizehintp, int *ncidp)
Create a netCDF file with some extra parameters controlling classic file caching.
 
EXTERNL int nc_close(int ncid)
Close an open netCDF dataset.
 
EXTERNL int nc_abort(int ncid)
No longer necessary for user to invoke manually.
 
EXTERNL int nc_create(const char *path, int cmode, int *ncidp)
Create a new netCDF file.
 
EXTERNL int nc_inq(int ncid, int *ndimsp, int *nvarsp, int *nattsp, int *unlimdimidp)
Inquire about a file or group.
 
EXTERNL int nc_inq_format_extended(int ncid, int *formatp, int *modep)
Obtain more detailed (vis-a-vis nc_inq_format) format information about an open dataset.
 
EXTERNL int nc__enddef(int ncid, size_t h_minfree, size_t v_align, size_t v_minfree, size_t r_align)
Leave define mode with performance tuning.
 
EXTERNL int nc_set_fill(int ncid, int fillmode, int *old_modep)
Change the fill-value mode to improve write performance.
 
EXTERNL int nc__open(const char *path, int mode, size_t *chunksizehintp, int *ncidp)
Open a netCDF file with extra performance parameters for the classic library.
 
EXTERNL int nc_inq_path(int ncid, size_t *pathlen, char *path)
Get the file pathname (or the opendap URL) which was used to open/create the ncid's file.
 
EXTERNL int nc_def_user_format(int mode_flag, NC_Dispatch *dispatch_table, char *magic_number)
Add handling of user-defined format.
 
EXTERNL int nc_get_chunk_cache(size_t *sizep, size_t *nelemsp, float *preemptionp)
Get current netCDF chunk cache settings.
 
EXTERNL int nc_inq_type(int ncid, nc_type xtype, char *name, size_t *size)
Inquire about a type.
 
EXTERNL int nc_enddef(int ncid)
Leave define mode.
 
EXTERNL int nc_redef(int ncid)
Put open netcdf dataset into define mode.
 
EXTERNL int nc_open(const char *path, int mode, int *ncidp)
Open an existing netCDF file.
 
EXTERNL int nc_set_chunk_cache(size_t size, size_t nelems, float preemption)
Set chunk cache size.
 
EXTERNL int nc_inq_format(int ncid, int *formatp)
Inquire about the binary format of a netCDF file as presented by the API.
 
EXTERNL int nc_sync(int ncid)
Synchronize an open netcdf dataset to disk.
 
EXTERNL int nc_inq_ndims(int ncid, int *ndimsp)
Find the number of dimensions.
 
EXTERNL int nc_inq_dimlen(int ncid, int dimid, size_t *lenp)
Find the length of a dimension.
 
EXTERNL int nc_inq_dimname(int ncid, int dimid, char *name)
Find out the name of a dimension.
 
EXTERNL int nc_def_dim(int ncid, const char *name, size_t len, int *idp)
Define a new dimension.
 
EXTERNL int nc_rename_dim(int ncid, int dimid, const char *name)
Rename a dimension.
 
EXTERNL int nc_inq_dim(int ncid, int dimid, char *name, size_t *lenp)
Find the name and length of a dimension.
 
EXTERNL int nc_inq_unlimdim(int ncid, int *unlimdimidp)
Find the ID of the unlimited dimension.
 
EXTERNL int nc_inq_dimid(int ncid, const char *name, int *idp)
Find the ID of a dimension from the name.
 
EXTERNL const char * nc_strerror(int ncerr)
Given an error number, return an error message.
 
EXTERNL int nc_inq_typeids(int ncid, int *ntypes, int *typeids)
Retrieve a list of types associated with a group.
 
EXTERNL int nc_inq_dimids(int ncid, int *ndims, int *dimids, int include_parents)
Retrieve a list of dimension ids associated with a group.
 
EXTERNL int nc_inq_grps(int ncid, int *numgrps, int *ncids)
Get a list of groups or subgroups from a file or groupID.
 
EXTERNL int nc_show_metadata(int ncid)
Print the metadata for a file.
 
EXTERNL int nc_inq_grp_full_ncid(int ncid, const char *full_name, int *grp_ncid)
Get the full ncid given a group name.
 
EXTERNL int nc_inq_grpname(int ncid, char *name)
Get the name of a group given an ID.
 
EXTERNL int nc_inq_ncid(int ncid, const char *name, int *grp_ncid)
Return the group ID for a group given the name.
 
EXTERNL int nc_inq_varids(int ncid, int *nvars, int *varids)
Get a list of varids associated with a group given a group ID.
 
EXTERNL int nc_inq_grp_parent(int ncid, int *parent_ncid)
Get the ID of the parent based on a group ID.
 
EXTERNL int nc_inq_grpname_len(int ncid, size_t *lenp)
Get the length of a group name given an ID.
 
EXTERNL int nc_inq_grpname_full(int ncid, size_t *lenp, char *full_name)
Get the full path/groupname of a group/subgroup given an ID.
 
EXTERNL int nc_def_grp(int parent_ncid, const char *name, int *new_ncid)
Define a new group.
 
EXTERNL int nc_rename_grp(int grpid, const char *name)
Rename a group.
 
EXTERNL int nc_inq_grp_ncid(int ncid, const char *grp_name, int *grp_ncid)
Get a group ncid given the group name.
 
EXTERNL int nc_def_enum(int ncid, nc_type base_typeid, const char *name, nc_type *typeidp)
Create an enum type.
 
EXTERNL int nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, nc_type *field_typeidp)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_inq_type_equal(int ncid1, nc_type typeid1, int ncid2, nc_type typeid2, int *equal)
Learn if two types are equal.
 
EXTERNL int nc_inq_compound(int ncid, nc_type xtype, char *name, size_t *sizep, size_t *nfieldsp)
Learn about a compound type.
 
EXTERNL int nc_inq_enum_member(int ncid, nc_type xtype, int idx, char *name, void *value)
Learn about a about a member of an enum type.
 
EXTERNL int nc_insert_compound(int ncid, nc_type xtype, const char *name, size_t offset, nc_type field_typeid)
Insert a named field into a compound type.
 
EXTERNL int nc_def_opaque(int ncid, size_t size, const char *name, nc_type *xtypep)
Create an opaque type.
 
EXTERNL int nc_inq_compound_name(int ncid, nc_type xtype, char *name)
Learn the name of a compound type.
 
EXTERNL int nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, char *name, size_t *offsetp, nc_type *field_typeidp, int *ndimsp, int *dim_sizesp)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_def_vlen(int ncid, const char *name, nc_type base_typeid, nc_type *xtypep)
Use this function to define a variable length array type.
 
EXTERNL int nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, int *dim_sizes)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_free_vlen(nc_vlen_t *vl)
Free memory in a single VLEN object.
 
EXTERNL int nc_inq_vlen(int ncid, nc_type xtype, char *name, size_t *datum_sizep, nc_type *base_nc_typep)
Learn about a VLEN type.
 
EXTERNL int nc_inq_opaque(int ncid, nc_type xtype, char *name, size_t *sizep)
Learn about an opaque type.
 
EXTERNL int nc_free_vlens(size_t nelems, nc_vlen_t vlens[])
Free an array of vlens given the number of elements and an array.
 
EXTERNL int nc_def_compound(int ncid, size_t size, const char *name, nc_type *typeidp)
Create a compound type.
 
EXTERNL int nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, int *fieldidp)
Learn the Index of a Named Field in a Compound Type.
 
EXTERNL int nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, int *ndimsp)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_inq_compound_nfields(int ncid, nc_type xtype, size_t *nfieldsp)
Learn the number of fields in a compound type.
 
EXTERNL int nc_insert_enum(int ncid, nc_type xtype, const char *name, const void *value)
Insert a named member into a enum type.
 
EXTERNL int nc_inq_typeid(int ncid, const char *name, nc_type *typeidp)
Find a type by name.
 
EXTERNL int nc_insert_array_compound(int ncid, nc_type xtype, const char *name, size_t offset, nc_type field_typeid, int ndims, const int *dim_sizes)
Insert a named array field into a compound type.
 
EXTERNL int nc_inq_enum(int ncid, nc_type xtype, char *name, nc_type *base_nc_typep, size_t *base_sizep, size_t *num_membersp)
Learn about a user-define enumeration type.
 
EXTERNL int nc_inq_enum_ident(int ncid, nc_type xtype, long long value, char *identifier)
Get the name which is associated with an enum member value.
 
EXTERNL int nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, size_t *offsetp)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, char *name)
Get information about one of the fields of a compound type.
 
EXTERNL int nc_inq_compound_size(int ncid, nc_type xtype, size_t *sizep)
Learn the size of a compound type.
 
EXTERNL int nc_inq_user_type(int ncid, nc_type xtype, char *name, size_t *size, nc_type *base_nc_typep, size_t *nfieldsp, int *classp)
Learn about a user defined type.
 
EXTERNL int ncvardef(int ncid, const char *name, nc_type xtype, int ndims, const int *dimidsp)
Define a variable.
 
EXTERNL int ncclose(int ncid)
Close a file.
 
EXTERNL int ncvarputg(int ncid, int varid, const long *startp, const long *countp, const long *stridep, const long *imapp, const void *op)
Write mapped data.
 
EXTERNL int ncattget(int ncid, int varid, const char *name, void *ip)
Read an attribute.
 
EXTERNL int ncattinq(int ncid, int varid, const char *name, nc_type *xtypep, int *lenp)
Learn about an attribute.
 
EXTERNL int ncattrename(int ncid, int varid, const char *name, const char *newname)
Rename an attribute.
 
EXTERNL int ncattname(int ncid, int varid, int attnum, char *name)
Learn attribute name from its number.
 
EXTERNL int ncvarput1(int ncid, int varid, const long *indexp, const void *op)
Write 1 data value.
 
EXTERNL int ncvarid(int ncid, const char *name)
Learn a variable ID from the name.
 
EXTERNL int nccreate(const char *path, int cmode)
Create a netCDF file.
 
EXTERNL int ncendef(int ncid)
End define mode for file.
 
EXTERNL int ncopen(const char *path, int mode)
Open a netCDF file.
 
EXTERNL int ncrecput(int ncid, long recnum, void *const *datap)
Write one record's worth of data, except don't write to variables for which the address of the data t...
 
EXTERNL int ncattcopy(int ncid_in, int varid_in, const char *name, int ncid_out, int varid_out)
Copy an attribute.
 
EXTERNL int ncdimrename(int ncid, int dimid, const char *name)
Rename a dimension.
 
EXTERNL int ncattdel(int ncid, int varid, const char *name)
Delete an attribute.
 
EXTERNL int ncvarputs(int ncid, int varid, const long *startp, const long *countp, const long *stridep, const void *op)
Write strided data.
 
EXTERNL int ncvarput(int ncid, int varid, const long *startp, const long *countp, const void *op)
Write some data.
 
EXTERNL int ncdiminq(int ncid, int dimid, char *name, long *lenp)
Learn about a dimension.
 
EXTERNL int ncvarget1(int ncid, int varid, const long *indexp, void *ip)
Read 1 data value.
 
EXTERNL int ncvargetg(int ncid, int varid, const long *startp, const long *countp, const long *stridep, const long *imapp, void *ip)
Read mapped data.
 
EXTERNL int ncinquire(int ncid, int *ndimsp, int *nvarsp, int *nattsp, int *unlimdimp)
Learn about a file.
 
EXTERNL int ncvarinq(int ncid, int varid, char *name, nc_type *xtypep, int *ndimsp, int *dimidsp, int *nattsp)
Learn about a variable.
 
EXTERNL int ncattput(int ncid, int varid, const char *name, nc_type xtype, int len, const void *op)
Write an attribute.
 
EXTERNL void nc_advise(const char *cdf_routine_name, int err, const char *fmt,...)
Show an error message and exit (based on ncopts).
 
EXTERNL int ncabort(int ncid)
Abort defining a file.
 
EXTERNL int ncsync(int ncid)
Sync a file.
 
EXTERNL int ncrecinq(int ncid, int *nrecvarsp, int *recvaridsp, long *recsizesp)
Learn record variables and the lengths of the record dimension.
 
EXTERNL int ncrecget(int ncid, long recnum, void **datap)
Read one record's worth of data, except don't read from variables for which the address of the data t...
 
EXTERNL int ncsetfill(int ncid, int fillmode)
Set the fill mode.
 
EXTERNL int ncdimdef(int ncid, const char *name, long len)
Define a dimension.
 
EXTERNL int ncvarget(int ncid, int varid, const long *startp, const long *countp, void *ip)
Read some data.
 
EXTERNL int ncvargets(int ncid, int varid, const long *startp, const long *countp, const long *stridep, void *ip)
Read strided data.
 
EXTERNL int ncredef(int ncid)
Put file in define mode.
 
EXTERNL int ncvarrename(int ncid, int varid, const char *name)
Rename a variable.
 
EXTERNL int ncdimid(int ncid, const char *name)
Find dimension ID from name.
 
EXTERNL int nc_inq_var_endian(int ncid, int varid, int *endianp)
Find the endianness of a variable.
 
EXTERNL int nc_inq_varndims(int ncid, int varid, int *ndimsp)
Learn how many dimensions are associated with a variable.
 
EXTERNL int nc_def_var_endian(int ncid, int varid, int endian)
Define endianness of a variable.
 
EXTERNL int nc_inq_varname(int ncid, int varid, char *name)
Learn the name of a variable.
 
EXTERNL int nc_free_string(size_t nelems, char **data)
Free string space allocated by the library.
 
EXTERNL int nc_inq_var_quantize(int ncid, int varid, int *quantize_modep, int *nsdp)
Learn whether quantization is on for a variable, and, if so, the NSD setting.
 
EXTERNL int nc_def_var_szip(int ncid, int varid, int options_mask, int pixels_per_block)
Set szip compression settings on a variable.
 
EXTERNL int nc_inq_var_deflate(int ncid, int varid, int *shufflep, int *deflatep, int *deflate_levelp)
Learn the shuffle and deflate settings for a variable.
 
EXTERNL int nc_get_vars(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, void *ip)
Read a strided array from a variable.
 
EXTERNL int nc_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, float preemption)
Change the cache settings for a chunked variable.
 
EXTERNL int nc_inq_vartype(int ncid, int varid, nc_type *xtypep)
Learn the type of a variable.
 
EXTERNL int nc_inq_var_fletcher32(int ncid, int varid, int *fletcher32p)
Learn the checksum settings for a variable.
 
EXTERNL int nc_inq_varid(int ncid, const char *name, int *varidp)
Find the ID of a variable, from the name.
 
EXTERNL int nc_put_varm(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const void *op)
Write a mapped array of values to a variable.
 
EXTERNL int nc_inq_varnatts(int ncid, int varid, int *nattsp)
Learn how many attributes are associated with a variable.
 
EXTERNL int nc_put_var(int ncid, int varid, const void *op)
Write an entire variable with one call.
 
EXTERNL int nc_get_vara(int ncid, int varid, const size_t *startp, const size_t *countp, void *ip)
Read an array of values from a variable.
 
EXTERNL int nc_def_var_deflate(int ncid, int varid, int shuffle, int deflate, int deflate_level)
Set the zlib compression and shuffle settings for a variable in an netCDF/HDF5 file.
 
EXTERNL int nc_put_vars(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const void *op)
Write a strided array of values to a variable.
 
EXTERNL int nc_def_var_fletcher32(int ncid, int varid, int fletcher32)
Set checksum for a var.
 
EXTERNL int nc_def_var_quantize(int ncid, int varid, int quantize_mode, int nsd)
Turn on quantization for a variable.
 
EXTERNL int nc_get_var(int ncid, int varid, void *ip)
Read an entire variable in one call.
 
EXTERNL int nc_get_varm(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, void *ip)
Read a mapped array from a variable.
 
EXTERNL int nc_inq_var(int ncid, int varid, char *name, nc_type *xtypep, int *ndimsp, int *dimidsp, int *nattsp)
Learn about a variable.
 
EXTERNL int nc_inq_var_szip(int ncid, int varid, int *options_maskp, int *pixels_per_blockp)
Learn the szip settings of a variable.
 
EXTERNL int nc_inq_var_filter(int ncid, int varid, unsigned int *idp, size_t *nparams, unsigned int *params)
Find the first filter (if any) associated with a variable.
 
EXTERNL int nc_inq_vardimid(int ncid, int varid, int *dimidsp)
Learn the dimension IDs associated with a variable.
 
EXTERNL int nc_get_var1(int ncid, int varid, const size_t *indexp, void *ip)
Read a single datum from a variable.
 
EXTERNL int nc_def_var_fill(int ncid, int varid, int no_fill, const void *fill_value)
Set the fill value for a variable.
 
EXTERNL int nc_inq_var_chunking(int ncid, int varid, int *storagep, size_t *chunksizesp)
Get the storage and (for chunked variables) the chunksizes of a variable.
 
EXTERNL int nc_def_var(int ncid, const char *name, nc_type xtype, int ndims, const int *dimidsp, int *varidp)
Define a new variable.
 
EXTERNL int nc_rename_var(int ncid, int varid, const char *name)
Rename a variable.
 
EXTERNL int nc_put_var1(int ncid, int varid, const size_t *indexp, const void *op)
Write one datum.
 
EXTERNL int nc_put_vara(int ncid, int varid, const size_t *startp, const size_t *countp, const void *op)
Write an array of values to a variable.
 
EXTERNL int nc_def_var_chunking(int ncid, int varid, int storage, const size_t *chunksizesp)
Define storage and, if chunked storage is used, chunking parameters for a variable.
 
EXTERNL int nc_get_var_chunk_cache(int ncid, int varid, size_t *sizep, size_t *nelemsp, float *preemptionp)
Get the per-variable chunk cache settings from the HDF5 layer.
 
EXTERNL int nc_inq_var_fill(int ncid, int varid, int *no_fill, void *fill_valuep)
Learn the fill mode of a variable.
 
EXTERNL int nc_inq_nvars(int ncid, int *nvarsp)
Learn the number of variables in a file or group.
 
EXTERNL const char * nc_inq_libvers(void)
Return the library version.
 
void * p
Pointer to VL data.
 
EXTERNL int nc_reclaim_data(int ncid, nc_type xtypeid, void *memory, size_t nelems)
Reclaim an array of instances of an arbitrary type.
 
size_t len
Length of VL data (in base type units)
 
EXTERNL int nc_inq_unlimdims(int ncid, int *nunlimdimsp, int *unlimdimidsp)
Return number and list of unlimited dimensions.
 
#define EXTERNL
Needed for DLL build.
 
EXTERNL int ncopts
V2 API error handling.
 
EXTERNL int nc_copy_data(int ncid, nc_type xtypeid, const void *memory, size_t count, void *copy)
Copy vector of arbitrary type instances.
 
int nclong
C data type corresponding to a netCDF NC_LONG argument, a signed 32 bit object.
 
EXTERNL int nc_copy_att(int ncid_in, int varid_in, const char *name, int ncid_out, int varid_out)
Copy an attribute from one open file to another.
 
EXTERNL int nc_copy_var(int ncid_in, int varid, int ncid_out)
This will copy a variable that is an array of primitive type and its attributes from one file to anot...
 
EXTERNL int nc_def_var_filter(int ncid, int varid, unsigned int id, size_t nparams, const unsigned int *parms)
Define a new variable filter Assumes HDF5 format using unsigned ints.
 
int nc_type
The nc_type type is just an int.
 
This is the type of arrays of vlens.