1# size_t, ptrdiff_t are defined in stdlib.h 2cdef extern from "stdlib.h": 3 ctypedef long size_t 4 ctypedef long ptrdiff_t 5 6# hdf5 version info. 7cdef extern from "H5public.h": 8 ctypedef int herr_t 9 int H5get_libversion( unsigned int *majnum, unsigned int *minnum, unsigned int *relnum ) 10 11cdef extern from *: 12 ctypedef char* const_char_ptr "const char*" 13 14# netcdf functions. 15cdef extern from "netcdf.h": 16 ctypedef int nclong 17 ctypedef int nc_type 18 ctypedef struct nc_vlen_t: 19 size_t len # Length of VL data (in base type units) 20 void *p # Pointer to VL data 21 float NC_FILL_FLOAT 22 long NC_FILL_INT 23 double NC_FILL_DOUBLE 24 char NC_FILL_CHAR 25 long long NC_FILL_INT64 26 unsigned long NC_FILL_UINT 27 unsigned long long NC_FILL_UINT64 28 cdef enum: 29 NC_NAT # NAT = 'Not A Type' (c.f. NaN) 30 NC_BYTE # signed 1 byte integer 31 NC_CHAR # ISO/ASCII character 32 NC_SHORT # signed 2 byte integer 33 NC_INT # signed 4 byte integer 34 NC_LONG # deprecated, but required for backward compatibility. 35 NC_FLOAT # single precision floating point number 36 NC_DOUBLE # double precision floating point number 37 NC_UBYTE # unsigned 1 byte int 38 NC_USHORT # unsigned 2-byte int 39 NC_UINT # unsigned 4-byte int 40 NC_INT64 # signed 8-byte int 41 NC_UINT64 # unsigned 8-byte int 42 NC_STRING # string 43 NC_VLEN # used internally for vlen types 44 NC_OPAQUE # used internally for opaque types 45 NC_COMPOUND # used internally for compound types 46 NC_ENUM # used internally for enum types. 47 # Use these 'mode' flags for nc_open. 48 NC_NOWRITE # default is read only 49 NC_WRITE # read & write 50 # Use these 'mode' flags for nc_create. 51 NC_CLOBBER 52 NC_NOCLOBBER # Don't destroy existing file on create 53 NC_64BIT_OFFSET # Use large (64-bit) file offsets 54 NC_64BIT_DATA # Use cdf-5 format 55 NC_NETCDF4 # Use netCDF-4/HDF5 format 56 NC_CLASSIC_MODEL # Enforce strict netcdf-3 rules. 57 # Use these 'mode' flags for both nc_create and nc_open. 58 NC_SHARE # Share updates, limit cacheing 59 # The following flag currently is ignored, but use in 60 # nc_open() or nc_create() may someday support use of advisory 61 # locking to prevent multiple writers from clobbering a file 62 NC_LOCK # Use locking if available 63 # Default fill values, used unless _FillValue attribute is set. 64 # These values are stuffed into newly allocated space as appropriate. 65 # The hope is that one might use these to notice that a particular datum 66 # has not been set. 67 NC_FILL_BYTE 68 #NC_FILL_CHAR 69 NC_FILL_SHORT 70 #NC_FILL_INT 71 #NC_FILL_FLOAT 72 #NC_FILL_DOUBLE 73 NC_FILL_UBYTE 74 NC_FILL_USHORT 75 #NC_FILL_UINT 76 #NC_FILL_INT64 77 #NC_FILL_UINT64 78 # These represent the max and min values that can be stored in a 79 # netCDF file for their associated types. Recall that a C compiler 80 # may define int to be any length it wants, but a NC_INT is *always* 81 # a 4 byte signed int. On a platform with has 64 bit ints, there will 82 # be many ints which are outside the range supported by NC_INT. But 83 # since NC_INT is an external format, it has to mean the same thing 84 # everywhere. 85 NC_MAX_BYTE 86 NC_MIN_BYTE 87 NC_MAX_CHAR 88 NC_MAX_SHORT 89 NC_MIN_SHORT 90 NC_MAX_INT 91 NC_MIN_INT 92 NC_MAX_FLOAT 93 NC_MIN_FLOAT 94 NC_MAX_DOUBLE8 95 NC_MIN_DOUBLE 96 NC_MAX_UBYTE 97 NC_MAX_USHORT 98 NC_MAX_UINT 99 NC_MAX_INT64 100 NC_MIN_INT64 101 NC_MAX_UINT64 102 X_INT64_MAX 103 X_INT64_MIN 104 X_UINT64_MAX 105 # The above values are defaults. 106 # If you wish a variable to use a different value than the above 107 # defaults, create an attribute with the same type as the variable 108 # and the following reserved name. The value you give the attribute 109 # will be used as the fill value for that variable. 110 _FillValue 111 NC_FILL 112 NC_NOFILL 113 # Starting with version 3.6, there are different format netCDF 114 # files. 4.0 instroduces the third one. These defines are only for 115 # the nc_set_default_format function. 116 NC_FORMAT_CLASSIC 117 NC_FORMAT_64BIT 118 NC_FORMAT_64BIT_OFFSET 119 NC_FORMAT_64BIT_DATA 120 NC_FORMAT_NETCDF4 121 NC_FORMAT_NETCDF4_CLASSIC 122 NC_FORMAT_NC3 123 NC_FORMAT_NC_HDF4 124 NC_FORMAT_NC_HDF5 125 NC_FORMAT_DAP2 126 NC_FORMAT_DAP4 127 NC_FORMAT_PNETCDF 128 NC_FORMAT_UNDEFINED 129 # Let nc__create() or nc__open() figure out 130 # as suitable chunk size. 131 NC_SIZEHINT_DEFAULT 132 # In nc__enddef(), align to the chunk size. 133 NC_ALIGN_CHUNK 134 # 'size' argument to ncdimdef for an unlimited dimension 135 NC_UNLIMITED 136 # attribute id to put/get a global attribute 137 NC_GLOBAL 138 # These maximums are enforced by the interface, to facilitate writing 139 # applications and utilities. However, nothing is statically allocated to 140 # these sizes internally. 141 NC_MAX_DIMS 142 NC_MAX_ATTRS 143 NC_MAX_VARS 144 NC_MAX_NAME 145 NC_MAX_VAR_DIMS 146 # Algorithms for netcdf-4 chunking. 147 NC_CHUNK_SEQ 148 NC_CHUNK_SUB 149 NC_CHUNK_SIZES 150 NC_CHUNKED 151 NC_CONTIGUOUS 152 # The netcdf version 3 functions all return integer error status. 153 # These are the possible values, in addition to certain 154 # values from the system errno.h. 155 NC_ISSYSERR 156 NC_NOERR 157 NC2_ERR 158 NC_EBADID 159 NC_ENFILE 160 NC_EEXIST 161 NC_EINVAL 162 NC_EPERM 163 NC_ENOTINDEFINE 164 NC_EINDEFINE 165 NC_EINVALCOORDS 166 NC_EMAXDIMS 167 NC_ENAMEINUSE 168 NC_ENOTATT 169 NC_EMAXATTS 170 NC_EBADTYPE 171 NC_EBADDIM 172 NC_EUNLIMPOS 173 NC_EMAXVARS 174 NC_ENOTVAR 175 NC_EGLOBAL 176 NC_ENOTNC 177 NC_ESTS 178 NC_EMAXNAME 179 NC_EUNLIMIT 180 NC_ENORECVARS 181 NC_ECHAR 182 NC_EEDGE 183 NC_ESTRIDE 184 NC_EBADNAME 185 # N.B. following must match value in ncx.h 186 NC_ERANGE # Math result not representable 187 NC_ENOMEM # Memory allocation (malloc) failure 188 NC_EVARSIZE # One or more variable sizes violate format constraints 189 NC_EDIMSIZE # Invalid dimension size 190 NC_ETRUNC # NetCDFFile likely truncated or possibly corrupted 191 # The following was added in support of netcdf-4. Make all netcdf-4 192 # error codes < -100 so that errors can be added to netcdf-3 if 193 # needed. 194 NC4_FIRST_ERROR 195 NC_EHDFERR 196 NC_ECANTREAD 197 NC_ECANTWRITE 198 NC_ECANTCREATE 199 NC_EFILEMETA 200 NC_EDIMMETA 201 NC_EATTMETA 202 NC_EVARMETA 203 NC_ENOCOMPOUND 204 NC_EATTEXISTS 205 NC_ENOTNC4 206 NC_ESTRICTNC3 207 NC_ENOTNC3 208 NC_ENOPAR 209 NC_EPARINIT 210 NC_EBADGRPID 211 NC_EBADTYPID 212 NC_ETYPDEFINED 213 NC_EBADFIELD 214 NC_EBADCLASS 215 NC4_LAST_ERROR 216 NC_ENDIAN_NATIVE 217 NC_ENDIAN_LITTLE 218 NC_ENDIAN_BIG 219 NC_SZIP_EC_OPTION_MASK # entropy encoding 220 NC_SZIP_NN_OPTION_MASK # nearest neighbor encoding 221 const_char_ptr *nc_inq_libvers() nogil 222 const_char_ptr *nc_strerror(int ncerr) 223 int nc_create(char *path, int cmode, int *ncidp) 224 int nc__create(char *path, int cmode, size_t initialsz, size_t *chunksizehintp, int *ncidp) 225 int nc_open(char *path, int mode, int *ncidp) 226 int nc__open(char *path, int mode, size_t *chunksizehintp, int *ncidp) 227 int nc_inq_path(int ncid, size_t *pathlen, char *path) nogil 228 int nc_inq_format_extended(int ncid, int *formatp, int* modep) nogil 229 int nc_inq_ncid(int ncid, char *name, int *grp_ncid) nogil 230 int nc_inq_grps(int ncid, int *numgrps, int *ncids) nogil 231 int nc_inq_grpname(int ncid, char *name) nogil 232 int nc_inq_grp_parent(int ncid, int *parent_ncid) nogil 233 int nc_inq_varids(int ncid, int *nvars, int *varids) nogil 234 int nc_inq_dimids(int ncid, int *ndims, int *dimids, int include_parents) nogil 235 int nc_def_grp(int parent_ncid, char *name, int *new_ncid) 236 int nc_def_compound(int ncid, size_t size, char *name, nc_type *typeidp) 237 int nc_insert_compound(int ncid, nc_type xtype, char *name, 238 size_t offset, nc_type field_typeid) 239 int nc_insert_array_compound(int ncid, nc_type xtype, char *name, 240 size_t offset, nc_type field_typeid, 241 int ndims, int *dim_sizes) 242 int nc_inq_type(int ncid, nc_type xtype, char *name, size_t *size) nogil 243 int nc_inq_compound(int ncid, nc_type xtype, char *name, size_t *size, 244 size_t *nfieldsp) nogil 245 int nc_inq_compound_name(int ncid, nc_type xtype, char *name) nogil 246 int nc_inq_compound_size(int ncid, nc_type xtype, size_t *size) nogil 247 int nc_inq_compound_nfields(int ncid, nc_type xtype, size_t *nfieldsp) nogil 248 int nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, char *name, 249 size_t *offsetp, nc_type *field_typeidp, int *ndimsp, 250 int *dim_sizesp) nogil 251 int nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, 252 char *name) nogil 253 int nc_inq_compound_fieldindex(int ncid, nc_type xtype, char *name, 254 int *fieldidp) nogil 255 int nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, 256 size_t *offsetp) nogil 257 int nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, 258 nc_type *field_typeidp) nogil 259 int nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, 260 int *ndimsp) nogil 261 int nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, 262 int *dim_sizes) nogil 263 int nc_def_vlen(int ncid, char *name, nc_type base_typeid, nc_type *xtypep) 264 int nc_inq_vlen(int ncid, nc_type xtype, char *name, size_t *datum_sizep, 265 nc_type *base_nc_typep) nogil 266 int nc_inq_user_type(int ncid, nc_type xtype, char *name, size_t *size, 267 nc_type *base_nc_typep, size_t *nfieldsp, int *classp) nogil 268 int nc_inq_typeids(int ncid, int *ntypes, int *typeids) nogil 269 int nc_put_att(int ncid, int varid, char *name, nc_type xtype, 270 size_t len, void *op) 271 int nc_get_att(int ncid, int varid, char *name, void *ip) nogil 272 int nc_get_att_string(int ncid, int varid, char *name, char **ip) nogil 273 int nc_put_att_string(int ncid, int varid, char *name, size_t len, char **op) nogil 274 int nc_def_opaque(int ncid, size_t size, char *name, nc_type *xtypep) 275 int nc_inq_opaque(int ncid, nc_type xtype, char *name, size_t *sizep) 276 int nc_put_att_opaque(int ncid, int varid, char *name, 277 size_t len, void *op) 278 int nc_get_att_opaque(int ncid, int varid, char *name, 279 void *ip) 280 int nc_put_cmp_att_opaque(int ncid, nc_type xtype, int fieldid, 281 char *name, size_t len, void *op) 282 int nc_get_cmp_att_opaque(int ncid, nc_type xtype, int fieldid, 283 char *name, void *ip) 284 int nc_put_var1(int ncid, int varid, size_t *indexp, 285 void *op) 286 int nc_get_var1(int ncid, int varid, size_t *indexp, 287 void *ip) 288 int nc_put_vara(int ncid, int varid, size_t *startp, 289 size_t *countp, void *op) 290 int nc_get_vara(int ncid, int varid, size_t *startp, 291 size_t *countp, void *ip) nogil 292 int nc_put_vars(int ncid, int varid, size_t *startp, 293 size_t *countp, ptrdiff_t *stridep, 294 void *op) 295 int nc_get_vars(int ncid, int varid, size_t *startp, 296 size_t *countp, ptrdiff_t *stridep, 297 void *ip) nogil 298 int nc_put_varm(int ncid, int varid, size_t *startp, 299 size_t *countp, ptrdiff_t *stridep, 300 ptrdiff_t *imapp, void *op) 301 int nc_get_varm(int ncid, int varid, size_t *startp, 302 size_t *countp, ptrdiff_t *stridep, 303 ptrdiff_t *imapp, void *ip) 304 int nc_put_var(int ncid, int varid, void *op) 305 int nc_get_var(int ncid, int varid, void *ip) 306 int nc_def_var_deflate(int ncid, int varid, int shuffle, int deflate, 307 int deflate_level) 308 int nc_def_var_fletcher32(int ncid, int varid, int fletcher32) 309 int nc_inq_var_fletcher32(int ncid, int varid, int *fletcher32p) nogil 310 int nc_def_var_chunking(int ncid, int varid, int contiguous, size_t *chunksizesp) 311 int nc_def_var_fill(int ncid, int varid, int no_fill, void *fill_value) 312 int nc_def_var_endian(int ncid, int varid, int endian) 313 int nc_inq_var_chunking(int ncid, int varid, int *contiguousp, size_t *chunksizesp) nogil 314 int nc_inq_var_deflate(int ncid, int varid, int *shufflep, 315 int *deflatep, int *deflate_levelp) nogil 316 int nc_inq_var_fill(int ncid, int varid, int *no_fill, void *fill_value) nogil 317 int nc_inq_var_endian(int ncid, int varid, int *endianp) nogil 318 int nc_set_fill(int ncid, int fillmode, int *old_modep) 319 int nc_set_default_format(int format, int *old_formatp) 320 int nc_redef(int ncid) 321 int nc__enddef(int ncid, size_t h_minfree, size_t v_align, 322 size_t v_minfree, size_t r_align) 323 int nc_enddef(int ncid) 324 int nc_sync(int ncid) 325 int nc_abort(int ncid) 326 int nc_close(int ncid) 327 int nc_inq(int ncid, int *ndimsp, int *nvarsp, int *nattsp, int *unlimdimidp) nogil 328 int nc_inq_ndims(int ncid, int *ndimsp) nogil 329 int nc_inq_nvars(int ncid, int *nvarsp) nogil 330 int nc_inq_natts(int ncid, int *nattsp) nogil 331 int nc_inq_unlimdim(int ncid, int *unlimdimidp) nogil 332 int nc_inq_unlimdims(int ncid, int *nunlimdimsp, int *unlimdimidsp) nogil 333 int nc_inq_format(int ncid, int *formatp) nogil 334 int nc_def_dim(int ncid, char *name, size_t len, int *idp) 335 int nc_inq_dimid(int ncid, char *name, int *idp) nogil 336 int nc_inq_dim(int ncid, int dimid, char *name, size_t *lenp) nogil 337 int nc_inq_dimname(int ncid, int dimid, char *name) nogil 338 int nc_inq_dimlen(int ncid, int dimid, size_t *lenp) nogil 339 int nc_rename_dim(int ncid, int dimid, char *name) 340 int nc_inq_att(int ncid, int varid, char *name, 341 nc_type *xtypep, size_t *lenp) nogil 342 int nc_inq_attid(int ncid, int varid, char *name, int *idp) nogil 343 int nc_inq_atttype(int ncid, int varid, char *name, nc_type *xtypep) nogil 344 int nc_inq_attlen(int ncid, int varid, char *name, size_t *lenp) nogil 345 int nc_inq_attname(int ncid, int varid, int attnum, char *name) nogil 346 int nc_copy_att(int ncid_in, int varid_in, char *name, int ncid_out, int varid_out) 347 int nc_rename_att(int ncid, int varid, char *name, char *newname) 348 int nc_del_att(int ncid, int varid, char *name) 349 int nc_put_att_text(int ncid, int varid, char *name, 350 size_t len, char *op) 351 int nc_get_att_text(int ncid, int varid, char *name, char *ip) nogil 352 int nc_put_att_uchar(int ncid, int varid, char *name, nc_type xtype, 353 size_t len, unsigned char *op) 354 int nc_get_att_uchar(int ncid, int varid, char *name, unsigned char *ip) 355 int nc_put_att_schar(int ncid, int varid, char *name, nc_type xtype, 356 size_t len, signed char *op) 357 int nc_get_att_schar(int ncid, int varid, char *name, signed char *ip) 358 int nc_put_att_short(int ncid, int varid, char *name, nc_type xtype, 359 size_t len, short *op) 360 int nc_get_att_short(int ncid, int varid, char *name, short *ip) 361 int nc_put_att_int(int ncid, int varid, char *name, nc_type xtype, 362 size_t len, int *op) 363 int nc_get_att_int(int ncid, int varid, char *name, int *ip) 364 int nc_put_att_long(int ncid, int varid, char *name, nc_type xtype, 365 size_t len, long *op) 366 int nc_get_att_long(int ncid, int varid, char *name, long *ip) 367 int nc_put_att_float(int ncid, int varid, char *name, nc_type xtype, 368 size_t len, float *op) 369 int nc_get_att_float(int ncid, int varid, char *name, float *ip) 370 int nc_put_att_double(int ncid, int varid, char *name, nc_type xtype, 371 size_t len, double *op) 372 int nc_get_att_double(int ncid, int varid, char *name, double *ip) 373 int nc_put_att_ushort(int ncid, int varid, char *name, nc_type xtype, 374 size_t len, unsigned short *op) 375 int nc_get_att_ushort(int ncid, int varid, char *name, unsigned short *ip) 376 int nc_put_att_uint(int ncid, int varid, char *name, nc_type xtype, 377 size_t len, unsigned int *op) 378 int nc_get_att_uint(int ncid, int varid, char *name, unsigned int *ip) 379 int nc_put_att_longlong(int ncid, int varid, char *name, nc_type xtype, 380 size_t len, long long *op) 381 int nc_get_att_longlong(int ncid, int varid, char *name, long long *ip) 382 int nc_put_att_ulonglong(int ncid, int varid, char *name, nc_type xtype, 383 size_t len, unsigned long long *op) 384 int nc_get_att_ulonglong(int ncid, int varid, char *name, 385 unsigned long long *ip) 386 int nc_def_var(int ncid, char *name, nc_type xtype, int ndims, 387 int *dimidsp, int *varidp) 388 int nc_inq_var(int ncid, int varid, char *name, nc_type *xtypep, 389 int *ndimsp, int *dimidsp, int *nattsp) nogil 390 int nc_inq_varid(int ncid, char *name, int *varidp) nogil 391 int nc_inq_varname(int ncid, int varid, char *name) nogil 392 int nc_inq_vartype(int ncid, int varid, nc_type *xtypep) nogil 393 int nc_inq_varndims(int ncid, int varid, int *ndimsp) nogil 394 int nc_inq_vardimid(int ncid, int varid, int *dimidsp) nogil 395 int nc_inq_varnatts(int ncid, int varid, int *nattsp) nogil 396 int nc_rename_var(int ncid, int varid, char *name) 397 int nc_copy_var(int ncid_in, int varid, int ncid_out) 398 int nc_put_var1_text(int ncid, int varid, size_t *indexp, char *op) 399 int nc_get_var1_text(int ncid, int varid, size_t *indexp, char *ip) 400 int nc_put_var1_uchar(int ncid, int varid, size_t *indexp, 401 unsigned char *op) 402 int nc_get_var1_uchar(int ncid, int varid, size_t *indexp, 403 unsigned char *ip) 404 int nc_put_var1_schar(int ncid, int varid, size_t *indexp, 405 signed char *op) 406 int nc_get_var1_schar(int ncid, int varid, size_t *indexp, 407 signed char *ip) 408 int nc_put_var1_short(int ncid, int varid, size_t *indexp, 409 short *op) 410 int nc_get_var1_short(int ncid, int varid, size_t *indexp, 411 short *ip) 412 int nc_put_var1_int(int ncid, int varid, size_t *indexp, int *op) 413 int nc_get_var1_int(int ncid, int varid, size_t *indexp, int *ip) 414 int nc_put_var1_long(int ncid, int varid, size_t *indexp, long *op) 415 int nc_get_var1_long(int ncid, int varid, size_t *indexp, long *ip) 416 int nc_put_var1_float(int ncid, int varid, size_t *indexp, float *op) 417 int nc_get_var1_float(int ncid, int varid, size_t *indexp, float *ip) 418 int nc_put_var1_double(int ncid, int varid, size_t *indexp, double *op) 419 int nc_get_var1_double(int ncid, int varid, size_t *indexp, double *ip) 420 int nc_put_var1_ubyte(int ncid, int varid, size_t *indexp, 421 unsigned char *op) 422 int nc_get_var1_ubyte(int ncid, int varid, size_t *indexp, 423 unsigned char *ip) 424 int nc_put_var1_ushort(int ncid, int varid, size_t *indexp, 425 unsigned short *op) 426 int nc_get_var1_ushort(int ncid, int varid, size_t *indexp, 427 unsigned short *ip) 428 int nc_put_var1_uint(int ncid, int varid, size_t *indexp, 429 unsigned int *op) 430 int nc_get_var1_uint(int ncid, int varid, size_t *indexp, 431 unsigned int *ip) 432 int nc_put_var1_longlong(int ncid, int varid, size_t *indexp, 433 long long *op) 434 int nc_get_var1_longlong(int ncid, int varid, size_t *indexp, 435 long long *ip) 436 int nc_put_var1_ulonglong(int ncid, int varid, size_t *indexp, 437 unsigned long long *op) 438 int nc_get_var1_ulonglong(int ncid, int varid, size_t *indexp, 439 unsigned long long *ip) 440 int nc_put_vara_text(int ncid, int varid, 441 size_t *startp, size_t *countp, char *op) 442 int nc_get_vara_text(int ncid, int varid, 443 size_t *startp, size_t *countp, char *ip) 444 int nc_put_vara_uchar(int ncid, int varid, 445 size_t *startp, size_t *countp, unsigned char *op) 446 int nc_get_vara_uchar(int ncid, int varid, size_t *startp, 447 size_t *countp, unsigned char *ip) 448 int nc_put_vara_schar(int ncid, int varid, size_t *startp, 449 size_t *countp, signed char *op) 450 int nc_get_vara_schar(int ncid, int varid, size_t *startp, 451 size_t *countp, signed char *ip) 452 int nc_put_vara_short(int ncid, int varid, size_t *startp, 453 size_t *countp, short *op) 454 int nc_get_vara_short(int ncid, int varid, size_t *startp, 455 size_t *countp, short *ip) 456 int nc_put_vara_int(int ncid, int varid, size_t *startp, 457 size_t *countp, int *op) 458 int nc_get_vara_int(int ncid, int varid, size_t *startp, 459 size_t *countp, int *ip) 460 int nc_put_vara_long(int ncid, int varid, size_t *startp, 461 size_t *countp, long *op) 462 int nc_get_vara_long(int ncid, int varid, 463 size_t *startp, size_t *countp, long *ip) 464 int nc_put_vara_float(int ncid, int varid, 465 size_t *startp, size_t *countp, float *op) 466 int nc_get_vara_float(int ncid, int varid, 467 size_t *startp, size_t *countp, float *ip) 468 int nc_put_vara_double(int ncid, int varid, size_t *startp, 469 size_t *countp, double *op) 470 int nc_get_vara_double(int ncid, int varid, size_t *startp, 471 size_t *countp, double *ip) 472 int nc_put_vara_ubyte(int ncid, int varid, size_t *startp, 473 size_t *countp, unsigned char *op) 474 int nc_get_vara_ubyte(int ncid, int varid, size_t *startp, 475 size_t *countp, unsigned char *ip) 476 int nc_put_vara_ushort(int ncid, int varid, size_t *startp, 477 size_t *countp, unsigned short *op) 478 int nc_get_vara_ushort(int ncid, int varid, size_t *startp, 479 size_t *countp, unsigned short *ip) 480 int nc_put_vara_uint(int ncid, int varid, size_t *startp, 481 size_t *countp, unsigned int *op) 482 int nc_get_vara_uint(int ncid, int varid, size_t *startp, 483 size_t *countp, unsigned int *ip) 484 int nc_put_vara_longlong(int ncid, int varid, size_t *startp, 485 size_t *countp, long long *op) 486 int nc_get_vara_longlong(int ncid, int varid, size_t *startp, 487 size_t *countp, long long *ip) 488 int nc_put_vara_ulonglong(int ncid, int varid, size_t *startp, 489 size_t *countp, unsigned long long *op) 490 int nc_get_vara_ulonglong(int ncid, int varid, size_t *startp, 491 size_t *countp, unsigned long long *ip) 492 int nc_put_vars_text(int ncid, int varid, 493 size_t *startp, size_t *countp, ptrdiff_t *stridep, 494 char *op) 495 int nc_get_vars_text(int ncid, int varid, 496 size_t *startp, size_t *countp, ptrdiff_t *stridep, 497 char *ip) 498 int nc_put_vars_uchar(int ncid, int varid, 499 size_t *startp, size_t *countp, ptrdiff_t *stridep, 500 unsigned char *op) 501 int nc_get_vars_uchar(int ncid, int varid, 502 size_t *startp, size_t *countp, ptrdiff_t *stridep, 503 unsigned char *ip) 504 int nc_put_vars_schar(int ncid, int varid, 505 size_t *startp, size_t *countp, ptrdiff_t *stridep, 506 signed char *op) 507 int nc_get_vars_schar(int ncid, int varid, 508 size_t *startp, size_t *countp, ptrdiff_t *stridep, 509 signed char *ip) 510 int nc_put_vars_short(int ncid, int varid, 511 size_t *startp, size_t *countp, ptrdiff_t *stridep, 512 short *op) 513 int nc_get_vars_short(int ncid, int varid, size_t *startp, 514 size_t *countp, ptrdiff_t *stridep, 515 short *ip) 516 int nc_put_vars_int(int ncid, int varid, 517 size_t *startp, size_t *countp, ptrdiff_t *stridep, 518 int *op) 519 int nc_get_vars_int(int ncid, int varid, 520 size_t *startp, size_t *countp, ptrdiff_t *stridep, 521 int *ip) 522 int nc_put_vars_long(int ncid, int varid, 523 size_t *startp, size_t *countp, ptrdiff_t *stridep, 524 long *op) 525 int nc_get_vars_long(int ncid, int varid, 526 size_t *startp, size_t *countp, ptrdiff_t *stridep, 527 long *ip) 528 int nc_put_vars_float(int ncid, int varid, 529 size_t *startp, size_t *countp, ptrdiff_t *stridep, 530 float *op) 531 int nc_get_vars_float(int ncid, int varid, 532 size_t *startp, size_t *countp, ptrdiff_t *stridep, 533 float *ip) 534 int nc_put_vars_double(int ncid, int varid, 535 size_t *startp, size_t *countp, ptrdiff_t *stridep, 536 double *op) 537 int nc_get_vars_double(int ncid, int varid, size_t *startp, 538 size_t *countp, ptrdiff_t *stridep, 539 double *ip) 540 int nc_put_vars_ubyte(int ncid, int varid, size_t *startp, 541 size_t *countp, ptrdiff_t *stridep, 542 unsigned char *op) 543 int nc_get_vars_ubyte(int ncid, int varid, size_t *startp, 544 size_t *countp, ptrdiff_t *stridep, 545 unsigned char *ip) 546 int nc_put_vars_ushort(int ncid, int varid, size_t *startp, 547 size_t *countp, ptrdiff_t *stridep, 548 unsigned short *op) 549 int nc_get_vars_ushort(int ncid, int varid, size_t *startp, 550 size_t *countp, ptrdiff_t *stridep, 551 unsigned short *ip) 552 int nc_put_vars_uint(int ncid, int varid, size_t *startp, 553 size_t *countp, ptrdiff_t *stridep, 554 unsigned int *op) 555 int nc_get_vars_uint(int ncid, int varid, size_t *startp, 556 size_t *countp, ptrdiff_t *stridep, 557 unsigned int *ip) 558 int nc_put_vars_longlong(int ncid, int varid, size_t *startp, 559 size_t *countp, ptrdiff_t *stridep, 560 long long *op) 561 int nc_get_vars_longlong(int ncid, int varid, size_t *startp, 562 size_t *countp, ptrdiff_t *stridep, 563 long long *ip) 564 int nc_put_vars_ulonglong(int ncid, int varid, size_t *startp, 565 size_t *countp, ptrdiff_t *stridep, 566 unsigned long long *op) 567 int nc_get_vars_ulonglong(int ncid, int varid, size_t *startp, 568 size_t *countp, ptrdiff_t *stridep, 569 unsigned long long *ip) 570 int nc_put_varm_text(int ncid, int varid, size_t *startp, 571 size_t *countp, ptrdiff_t *stridep, 572 ptrdiff_t *imapp, char *op) 573 int nc_get_varm_text(int ncid, int varid, size_t *startp, 574 size_t *countp, ptrdiff_t *stridep, 575 ptrdiff_t *imapp, char *ip) 576 int nc_put_varm_uchar(int ncid, int varid, size_t *startp, 577 size_t *countp, ptrdiff_t *stridep, 578 ptrdiff_t *imapp, unsigned char *op) 579 int nc_get_varm_uchar(int ncid, int varid, size_t *startp, 580 size_t *countp, ptrdiff_t *stridep, 581 ptrdiff_t *imapp, unsigned char *ip) 582 int nc_put_varm_schar(int ncid, int varid, size_t *startp, 583 size_t *countp, ptrdiff_t *stridep, 584 ptrdiff_t *imapp, signed char *op) 585 int nc_get_varm_schar(int ncid, int varid, size_t *startp, 586 size_t *countp, ptrdiff_t *stridep, 587 ptrdiff_t *imapp, signed char *ip) 588 int nc_put_varm_short(int ncid, int varid, size_t *startp, 589 size_t *countp, ptrdiff_t *stridep, 590 ptrdiff_t *imapp, short *op) 591 int nc_get_varm_short(int ncid, int varid, size_t *startp, 592 size_t *countp, ptrdiff_t *stridep, 593 ptrdiff_t *imapp, short *ip) 594 int nc_put_varm_int(int ncid, int varid, size_t *startp, 595 size_t *countp, ptrdiff_t *stridep, 596 ptrdiff_t *imapp, int *op) 597 int nc_get_varm_int(int ncid, int varid, size_t *startp, 598 size_t *countp, ptrdiff_t *stridep, 599 ptrdiff_t *imapp, int *ip) 600 int nc_put_varm_long(int ncid, int varid, size_t *startp, 601 size_t *countp, ptrdiff_t *stridep, 602 ptrdiff_t *imapp, long *op) 603 int nc_get_varm_long(int ncid, int varid, size_t *startp, 604 size_t *countp, ptrdiff_t *stridep, 605 ptrdiff_t *imapp, long *ip) 606 int nc_put_varm_float(int ncid, int varid,size_t *startp, 607 size_t *countp, ptrdiff_t *stridep, 608 ptrdiff_t *imapp, float *op) 609 int nc_get_varm_float(int ncid, int varid,size_t *startp, 610 size_t *countp, ptrdiff_t *stridep, 611 ptrdiff_t *imapp, float *ip) 612 int nc_put_varm_double(int ncid, int varid, size_t *startp, 613 size_t *countp, ptrdiff_t *stridep, 614 ptrdiff_t *imapp, double *op) 615 int nc_get_varm_double(int ncid, int varid, size_t *startp, 616 size_t *countp, ptrdiff_t *stridep, 617 ptrdiff_t * imapp, double *ip) 618 int nc_put_varm_ubyte(int ncid, int varid, size_t *startp, 619 size_t *countp, ptrdiff_t *stridep, 620 ptrdiff_t * imapp, unsigned char *op) 621 int nc_get_varm_ubyte(int ncid, int varid, size_t *startp, 622 size_t *countp, ptrdiff_t *stridep, 623 ptrdiff_t * imapp, unsigned char *ip) 624 int nc_put_varm_ushort(int ncid, int varid, size_t *startp, 625 size_t *countp, ptrdiff_t *stridep, 626 ptrdiff_t * imapp, unsigned short *op) 627 int nc_get_varm_ushort(int ncid, int varid, size_t *startp, 628 size_t *countp, ptrdiff_t *stridep, 629 ptrdiff_t * imapp, unsigned short *ip) 630 int nc_put_varm_uint(int ncid, int varid, size_t *startp, 631 size_t *countp, ptrdiff_t *stridep, 632 ptrdiff_t * imapp, unsigned int *op) 633 int nc_get_varm_uint(int ncid, int varid, size_t *startp, 634 size_t *countp, ptrdiff_t *stridep, 635 ptrdiff_t * imapp, unsigned int *ip) 636 int nc_put_varm_longlong(int ncid, int varid, size_t *startp, 637 size_t *countp, ptrdiff_t *stridep, 638 ptrdiff_t * imapp, long long *op) 639 int nc_get_varm_longlong(int ncid, int varid, size_t *startp, 640 size_t *countp, ptrdiff_t *stridep, 641 ptrdiff_t * imapp, long long *ip) 642 int nc_put_varm_ulonglong(int ncid, int varid, size_t *startp, 643 size_t *countp, ptrdiff_t *stridep, 644 ptrdiff_t * imapp, unsigned long long *op) 645 int nc_get_varm_ulonglong(int ncid, int varid, size_t *startp, 646 size_t *countp, ptrdiff_t *stridep, 647 ptrdiff_t * imapp, unsigned long long *ip) 648 int nc_put_var_text(int ncid, int varid, char *op) 649 int nc_get_var_text(int ncid, int varid, char *ip) 650 int nc_put_var_uchar(int ncid, int varid, unsigned char *op) 651 int nc_get_var_uchar(int ncid, int varid, unsigned char *ip) 652 int nc_put_var_schar(int ncid, int varid, signed char *op) 653 int nc_get_var_schar(int ncid, int varid, signed char *ip) 654 int nc_put_var_short(int ncid, int varid, short *op) 655 int nc_get_var_short(int ncid, int varid, short *ip) 656 int nc_put_var_int(int ncid, int varid, int *op) 657 int nc_get_var_int(int ncid, int varid, int *ip) 658 int nc_put_var_long(int ncid, int varid, long *op) 659 int nc_get_var_long(int ncid, int varid, long *ip) 660 int nc_put_var_float(int ncid, int varid, float *op) 661 int nc_get_var_float(int ncid, int varid, float *ip) 662 int nc_put_var_double(int ncid, int varid, double *op) 663 int nc_get_var_double(int ncid, int varid, double *ip) 664 int nc_put_var_ubyte(int ncid, int varid, unsigned char *op) 665 int nc_get_var_ubyte(int ncid, int varid, unsigned char *ip) 666 int nc_put_var_ushort(int ncid, int varid, unsigned short *op) 667 int nc_get_var_ushort(int ncid, int varid, unsigned short *ip) 668 int nc_put_var_uint(int ncid, int varid, unsigned int *op) 669 int nc_get_var_uint(int ncid, int varid, unsigned int *ip) 670 int nc_put_var_longlong(int ncid, int varid, long long *op) 671 int nc_get_var_longlong(int ncid, int varid, long long *ip) 672 int nc_put_var_ulonglong(int ncid, int varid, unsigned long long *op) 673 int nc_get_var_ulonglong(int ncid, int varid, unsigned long long *ip) 674 # set logging verbosity level. 675 void nc_set_log_level(int new_level) 676 int nc_show_metadata(int ncid) 677 int nc_free_vlen(nc_vlen_t *vl) 678 int nc_free_vlens(size_t len, nc_vlen_t *vl) 679 int nc_free_string(size_t len, char **data) 680 int nc_set_chunk_cache(size_t size, size_t nelems, float preemption) 681 int nc_get_chunk_cache(size_t *sizep, size_t *nelemsp, float *preemptionp) 682 int nc_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, float preemption) 683 int nc_get_var_chunk_cache(int ncid, int varid, size_t *sizep, size_t *nelemsp, float *preemptionp) nogil 684 int nc_rename_grp(int grpid, char *name) 685 int nc_def_enum(int ncid, nc_type base_typeid, char *name, nc_type *typeidp) 686 int nc_insert_enum(int ncid, nc_type xtype, char *name, void *value) 687 int nc_inq_enum(int ncid, nc_type xtype, char *name, nc_type *base_nc_typep,\ 688 size_t *base_sizep, size_t *num_membersp) nogil 689 int nc_inq_enum_member(int ncid, nc_type xtype, int idx, char *name, void *value) nogil 690 691 int nc_inq_enum_ident(int ncid, nc_type xtype, long long value, char *identifier) nogil 692 693 694IF HAS_NC_OPEN_MEM: 695 cdef extern from "netcdf_mem.h": 696 int nc_open_mem(const char *path, int mode, size_t size, void* memory, int *ncidp) 697 698IF HAS_NC_CREATE_MEM: 699 cdef extern from "netcdf_mem.h": 700 int nc_create_mem(const char *path, int mode, size_t initialize, int *ncidp); 701 ctypedef struct NC_memio: 702 size_t size 703 void* memory 704 int flags 705 int nc_close_memio(int ncid, NC_memio* info); 706 707IF HAS_PARALLEL4_SUPPORT or HAS_PNETCDF_SUPPORT: 708 cdef extern from "mpi-compat.h": pass 709 cdef extern from "netcdf_par.h": 710 ctypedef int MPI_Comm 711 ctypedef int MPI_Info 712 int nc_create_par(char *path, int cmode, MPI_Comm comm, MPI_Info info, int *ncidp); 713 int nc_open_par(char *path, int mode, MPI_Comm comm, MPI_Info info, int *ncidp); 714 int nc_var_par_access(int ncid, int varid, int par_access); 715 cdef enum: 716 NC_COLLECTIVE 717 NC_INDEPENDENT 718 cdef extern from "netcdf.h": 719 cdef enum: 720 NC_MPIIO 721 NC_MPIPOSIX 722 NC_PNETCDF 723 724# taken from numpy.pxi in numpy 1.0rc2. 725cdef extern from "numpy/arrayobject.h": 726 ctypedef int npy_intp 727 ctypedef extern class numpy.ndarray [object PyArrayObject]: 728 pass 729 npy_intp PyArray_SIZE(ndarray arr) 730 npy_intp PyArray_ISCONTIGUOUS(ndarray arr) 731 npy_intp PyArray_ISALIGNED(ndarray arr) 732 void* PyArray_DATA(ndarray) nogil 733 char* PyArray_BYTES(ndarray) nogil 734 npy_intp* PyArray_STRIDES(ndarray) nogil 735 void import_array() 736