8 #include "ncdispatch.h" 208 int ndims,
const int *dimidsp,
int *varidp)
213 if ((stat = NC_check_id(ncid, &ncp)))
215 return ncp->dispatch->def_var(ncid, name, xtype, ndims,
283 int stat = NC_check_id(ncid, &ncp);
285 return ncp->dispatch->rename_var(ncid, varid, name);
293 NC_is_recvar(
int ncid,
int varid,
size_t* nrecs)
304 if(ndims == 0)
return 0;
307 status =
nc_inq_dim(ncid,dimset[0],NULL,nrecs);
309 return (dimset[0] == unlimid ? 1: 0);
329 NC_inq_recvar(
int ncid,
int varid,
int* nrecdimsp,
int *is_recdim)
339 if(status !=
NC_NOERR)
return status;
341 for(dim = 0; dim < nvardims; dim++)
344 if(status !=
NC_NOERR)
return status;
345 if(unlimid == -1)
return status;
352 if(status !=
NC_NOERR)
return status;
353 if(nunlimdims == 0)
return status;
355 if (!(unlimids = malloc(nunlimdims *
sizeof(
int))))
367 for (dim = 0; dim < nvardims; dim++) {
368 for(recdim = 0; recdim < nunlimdims; recdim++) {
369 if(dimset[dim] == unlimids[recdim]) {
379 if(status !=
NC_NOERR)
return status;
380 if(dimset[0] == unlimid) {
385 if(nrecdimsp) *nrecdimsp = nrecdims;
409 return ((
int)
sizeof(
char));
411 return ((
int)
sizeof(
signed char));
413 return ((
int)
sizeof(
short));
415 return ((
int)
sizeof(
int));
417 return ((
int)
sizeof(
float));
419 return ((
int)
sizeof(
double));
423 return ((
int)
sizeof(
unsigned char));
425 return ((
int)(
sizeof(
unsigned short)));
427 return ((
int)
sizeof(
unsigned int));
429 return ((
int)
sizeof(
signed long long));
431 return ((
int)
sizeof(
unsigned long long));
434 return ((
int)
sizeof(
char*));
446 NC_atomictypelen(
nc_type xtype)
450 case NC_NAT: sz = 0;
break;
451 case NC_BYTE: sz =
sizeof(
signed char);
break;
452 case NC_CHAR: sz =
sizeof(char);
break;
453 case NC_SHORT: sz =
sizeof(short);
break;
454 case NC_INT: sz =
sizeof(int);
break;
455 case NC_FLOAT: sz =
sizeof(float);
break;
456 case NC_DOUBLE: sz =
sizeof(double);
break;
457 case NC_INT64: sz =
sizeof(
signed long long);
break;
458 case NC_UBYTE: sz =
sizeof(
unsigned char);
break;
459 case NC_USHORT: sz =
sizeof(
unsigned short);
break;
460 case NC_UINT: sz =
sizeof(
unsigned int);
break;
461 case NC_UINT64: sz =
sizeof(
unsigned long long);
break;
463 case NC_STRING: sz =
sizeof(
char*);
break;
474 NC_atomictypename(
nc_type xtype)
478 case NC_NAT: nm =
"undefined";
break;
479 case NC_BYTE: nm =
"byte";
break;
480 case NC_CHAR: nm =
"char";
break;
482 case NC_INT: nm =
"int";
break;
488 case NC_UINT: nm =
"uint";
break;
503 NC_getshape(
int ncid,
int varid,
int ndims,
size_t* shape)
511 for(i = 0; i < ndims; i++)
549 int stat = NC_check_id(ncid, &ncp);
551 return ncp->dispatch->set_var_chunk_cache(ncid, varid, size,
587 int stat = NC_check_id(ncid, &ncp);
589 return ncp->dispatch->get_var_chunk_cache(ncid, varid, sizep,
590 nelemsp, preemptionp);
610 for (i = 0; i < len; i++)
616 nc_def_var_deflate(
int ncid,
int varid,
int shuffle,
int deflate,
int deflate_level)
619 int stat = NC_check_id(ncid,&ncp);
621 return ncp->dispatch->def_var_deflate(ncid,varid,shuffle,deflate,deflate_level);
625 nc_def_var_fletcher32(
int ncid,
int varid,
int fletcher32)
628 int stat = NC_check_id(ncid,&ncp);
630 return ncp->dispatch->def_var_fletcher32(ncid,varid,fletcher32);
634 nc_def_var_chunking(
int ncid,
int varid,
int storage,
635 const size_t *chunksizesp)
638 int stat = NC_check_id(ncid, &ncp);
640 return ncp->dispatch->def_var_chunking(ncid, varid, storage,
645 nc_def_var_fill(
int ncid,
int varid,
int no_fill,
const void *fill_value)
648 int stat = NC_check_id(ncid,&ncp);
650 return ncp->dispatch->def_var_fill(ncid,varid,no_fill,fill_value);
654 nc_def_var_endian(
int ncid,
int varid,
int endian)
657 int stat = NC_check_id(ncid,&ncp);
659 return ncp->dispatch->def_var_endian(ncid,varid,endian);
#define NC_ENOMEM
Memory allocation (malloc) failure.
#define NC_CHAR
ISO/ASCII character.
int nc_get_var_chunk_cache(int ncid, int varid, size_t *sizep, size_t *nelemsp, float *preemptionp)
EXTERNL int nc_inq_vardimid(int ncid, int varid, int *dimidsp)
Learn the dimension IDs associated with a variable.
int nc_def_var(int ncid, const char *name, nc_type xtype, int ndims, const int *dimidsp, int *varidp)
Define a new variable.
#define NC_UBYTE
unsigned 1 byte int
#define NC_MAX_VAR_DIMS
max per variable dimensions
#define NC_UINT
unsigned 4-byte int
#define NC_INT64
signed 8-byte int
#define NC_DOUBLE
double precision floating point number
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_varndims(int ncid, int varid, int *ndimsp)
Learn how many dimensions are associated with a variable.
int nc_type
The nc_type type is just an int.
#define NC_BYTE
signed 1 byte integer
int nc_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, float preemption)
int nc_rename_var(int ncid, int varid, const char *name)
Rename a variable.
EXTERNL int nc_inq_dimlen(int ncid, int dimid, size_t *lenp)
Find the length of a dimension.
#define NC_INT
signed 4 byte integer
#define NC_NAT
Not A Type.
int nc_free_string(size_t len, char **data)
Free string space allocated by the library.
#define NC_USHORT
unsigned 2-byte int
EXTERNL int nc_inq_unlimdim(int ncid, int *unlimdimidp)
Find the ID of the unlimited dimension.
#define NC_SHORT
signed 2 byte integer
EXTERNL int nc_inq_unlimdims(int ncid, int *nunlimdimsp, int *unlimdimidsp)
Return number and list of unlimited dimensions.
#define NC_NOERR
No Error.
#define NC_FLOAT
single precision floating point number
#define NC_UINT64
unsigned 8-byte int