9 #include "ncdispatch.h"
208 int ndims,
const int *dimidsp,
int *varidp)
213 if ((stat = NC_check_id(ncid, &ncp)))
216 return ncp->dispatch->def_var(ncid, name, xtype, ndims,
302 int stat = NC_check_id(ncid,&ncp);
311 return ncp->dispatch->def_var_fill(ncid,varid,no_fill,fill_value);
409 int stat = NC_check_id(ncid,&ncp);
411 return ncp->dispatch->def_var_deflate(ncid,varid,shuffle,deflate,deflate_level);
447 int stat = NC_check_id(ncid,&ncp);
449 return ncp->dispatch->def_var_fletcher32(ncid,varid,fletcher32);
545 const size_t *chunksizesp)
548 int stat = NC_check_id(ncid, &ncp);
550 return ncp->dispatch->def_var_chunking(ncid, varid, storage,
626 int stat = NC_check_id(ncid,&ncp);
628 return ncp->dispatch->def_var_endian(ncid,varid,endian);
646 size_t nparams,
const unsigned int* parms)
649 int stat = NC_check_id(ncid,&ncp);
651 return ncp->dispatch->def_var_filter(ncid,varid,
id,nparams,parms);
724 int stat = NC_check_id(ncid, &ncp);
727 return ncp->dispatch->rename_var(ncid, varid, name);
741 NC_is_recvar(
int ncid,
int varid,
size_t* nrecs)
752 if(ndims == 0)
return 0;
755 status =
nc_inq_dim(ncid,dimset[0],NULL,nrecs);
757 return (dimset[0] == unlimid ? 1: 0);
786 NC_inq_recvar(
int ncid,
int varid,
int* nrecdimsp,
int *is_recdim)
796 if(status !=
NC_NOERR)
return status;
798 for(dim = 0; dim < nvardims; dim++)
801 if(status !=
NC_NOERR)
return status;
802 if(unlimid == -1)
return status;
809 if(status !=
NC_NOERR)
return status;
810 if(nunlimdims == 0)
return status;
812 if (!(unlimids = malloc(nunlimdims *
sizeof(
int))))
824 for (dim = 0; dim < nvardims; dim++) {
825 for(recdim = 0; recdim < nunlimdims; recdim++) {
826 if(dimset[dim] == unlimids[recdim]) {
836 if(status !=
NC_NOERR)
return status;
837 if(dimset[0] == unlimid) {
842 if(nrecdimsp) *nrecdimsp = nrecdims;
868 return ((
int)
sizeof(
char));
870 return ((
int)
sizeof(
signed char));
872 return ((
int)
sizeof(
short));
874 return ((
int)
sizeof(
int));
876 return ((
int)
sizeof(
float));
878 return ((
int)
sizeof(
double));
882 return ((
int)
sizeof(
unsigned char));
884 return ((
int)(
sizeof(
unsigned short)));
886 return ((
int)
sizeof(
unsigned int));
888 return ((
int)
sizeof(
signed long long));
890 return ((
int)
sizeof(
unsigned long long));
893 return ((
int)
sizeof(
char*));
910 NC_atomictypelen(
nc_type xtype)
914 case NC_NAT: sz = 0;
break;
915 case NC_BYTE: sz =
sizeof(
signed char);
break;
916 case NC_CHAR: sz =
sizeof(char);
break;
917 case NC_SHORT: sz =
sizeof(short);
break;
918 case NC_INT: sz =
sizeof(int);
break;
919 case NC_FLOAT: sz =
sizeof(float);
break;
920 case NC_DOUBLE: sz =
sizeof(double);
break;
921 case NC_INT64: sz =
sizeof(
signed long long);
break;
922 case NC_UBYTE: sz =
sizeof(
unsigned char);
break;
923 case NC_USHORT: sz =
sizeof(
unsigned short);
break;
924 case NC_UINT: sz =
sizeof(
unsigned int);
break;
925 case NC_UINT64: sz =
sizeof(
unsigned long long);
break;
927 case NC_STRING: sz =
sizeof(
char*);
break;
943 NC_atomictypename(
nc_type xtype)
947 case NC_NAT: nm =
"undefined";
break;
948 case NC_BYTE: nm =
"byte";
break;
949 case NC_CHAR: nm =
"char";
break;
951 case NC_INT: nm =
"int";
break;
957 case NC_UINT: nm =
"uint";
break;
985 NC_getshape(
int ncid,
int varid,
int ndims,
size_t* shape)
993 for(i = 0; i < ndims; i++)
1025 NC_check_nulls(
int ncid,
int varid,
const size_t *start,
size_t **count,
1035 if (!start && varndims)
1041 if (!(*count = malloc(varndims *
sizeof(
size_t))))
1043 if ((stat = NC_getshape(ncid, varid, varndims, *count)))
1053 if (stride && !*stride)
1057 if (!(*stride = malloc(varndims *
sizeof(ptrdiff_t))))
1059 for (i = 0; i < varndims; i++)
1091 for (i = 0; i < len; i++)
1164 int stat = NC_check_id(ncid, &ncp);
1166 return ncp->dispatch->set_var_chunk_cache(ncid, varid, size,
1167 nelems, preemption);
1202 int stat = NC_check_id(ncid, &ncp);
1204 return ncp->dispatch->get_var_chunk_cache(ncid, varid, sizep,
1205 nelemsp, preemptionp);