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.