7 #include "ncdispatch.h"
10 #ifndef VARS_USES_VARM
23 const size_t* start,
const size_t* edges,
const ptrdiff_t* stride)
29 for(i=0;i<odom->rank;i++) {
30 odom->start[i] = (start != NULL ? start[i] : 0);
31 odom->edges[i] = (edges != NULL ? edges[i] : 1);
32 odom->stride[i] = (stride != NULL ? stride[i] : 1);
33 odom->stop[i] = odom->start[i] + (odom->edges[i]*((size_t)odom->stride[i]));
34 odom->index[i] = odom->start[i];
41 return (odom->index[0] < odom->stop[0]);
48 if(odom->rank == 0)
return 0;
49 for(i=odom->rank-1;i>=0;i--) {
50 odom->index[i] += (size_t)odom->stride[i];
51 if(odom->index[i] < odom->stop[i])
break;
53 odom->index[i] = odom->start[i];
64 NC_get_vara(
int ncid,
int varid,
65 const size_t *start,
const size_t *edges,
69 int stat = NC_check_id(ncid, &ncp);
72 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
80 stat = NC_getshape(ncid,varid,ndims,shape);
82 stat = ncp->dispatch->get_vara(ncid,varid,start,shape,value,memtype);
84 stat = ncp->dispatch->get_vara(ncid,varid,start,edges,value,memtype);
92 NC_get_var(
int ncid,
int varid,
void *value,
nc_type memtype)
98 stat = NC_getshape(ncid,varid, ndims, shape);
100 return NC_get_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
108 NCDEFAULT_get_vars(
int ncid,
int varid,
const size_t * start,
109 const size_t * edges,
const ptrdiff_t * stride,
112 #ifdef VARS_USES_VARM
114 int stat = NC_check_id(ncid, &ncp);
117 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
122 int i,simplestride,isrecvar;
129 char* value = (
char*)value0;
137 status = NC_check_id (ncid, &ncp);
138 if(status !=
NC_NOERR)
return status;
141 if(status !=
NC_NOERR)
return status;
143 if(memtype ==
NC_NAT) memtype = vartype;
146 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
147 if(status !=
NC_NOERR)
return status;
149 if(memtype > NC_MAX_ATOMIC_TYPE)
150 memtypelen = (int)vartypelen;
152 memtypelen = nctypelen(memtype);
155 if(vartype != memtype) {
157 if(vartype > NC_MAX_ATOMIC_TYPE
158 || memtype > NC_MAX_ATOMIC_TYPE)
167 if(status !=
NC_NOERR)
return status;
170 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
171 NC_getshape(ncid,varid,rank,varshape);
180 size_t edge1[1] = {1};
181 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
186 for(i=0;i<rank;i++) {
188 mystart[i] = (start == NULL ? 0 : start[i]);
190 if(i == 0 && isrecvar)
191 myedges[i] = numrecs - start[i];
193 myedges[i] = varshape[i] - mystart[i];
195 myedges[i] = edges[i];
198 mystride[i] = (stride == NULL ? 1 : stride[i]);
201 || ((
unsigned long) mystride[i] >= X_INT_MAX))
203 if(mystride[i] != 1) simplestride = 0;
205 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
208 if(mystart[i] >= dimlen)
212 if(mystart[i] + myedges[i] > dimlen)
216 return NC_get_vara(ncid, varid, mystart, myedges, value, memtype);
222 odom_init(&odom,rank,mystart,myedges,mystride);
225 while(odom_more(&odom)) {
228 localstatus = NC_get_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
234 status = localstatus;
236 memptr += memtypelen;
247 NC_get_var1(
int ncid,
int varid,
const size_t *coord,
void* value,
250 return NC_get_vara(ncid, varid, coord, NC_coord_one, value, memtype);
257 NCDEFAULT_get_varm(
int ncid,
int varid,
const size_t *start,
258 const size_t *edges,
const ptrdiff_t *stride,
259 const ptrdiff_t *imapp,
void *value0,
nc_type memtype)
263 int varndims,maxidim;
267 char* value = (
char*)value0;
269 status = NC_check_id (ncid, &ncp);
270 if(status !=
NC_NOERR)
return status;
277 if(status !=
NC_NOERR)
return status;
279 if(vartype > NC_MAX_ATOMIC_TYPE)
283 if(status !=
NC_NOERR)
return status;
286 if(imapp != NULL && varndims != 0) {
291 const ptrdiff_t szof = (ptrdiff_t) nctypelen(vartype);
292 for(ii = 0; ii < varndims; ii++) {
293 if(imapp[ii] % szof != 0) {
297 cvtmap[ii] = imapp[ii] / szof;
309 memtypelen = nctypelen(memtype);
311 maxidim = (int) varndims - 1;
320 size_t edge1[1] = {1};
321 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
330 size_t *mystart = NULL;
342 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
343 NC_getshape(ncid,varid,varndims,varshape);
350 for (idim = 0; idim <= maxidim; ++idim)
352 if (stride[idim] == 0
354 || ((
unsigned long) stride[idim] >= X_INT_MAX))
358 if(stride[idim] != 1) stride1 = 0;
363 if(stride1 && imapp == NULL) {
364 return NC_get_vara(ncid, varid, start, edges, value, memtype);
370 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
372 myedges = mystart + varndims;
373 iocount = myedges + varndims;
374 stop = iocount + varndims;
375 length = stop + varndims;
376 mystride = (ptrdiff_t *)(length + varndims);
377 mymap = mystride + varndims;
382 for (idim = maxidim; idim >= 0; --idim)
384 mystart[idim] = start != NULL
388 if (edges != NULL && edges[idim] == 0)
395 myedges[idim] = edges != NULL
397 : idim == 0 && isrecvar
398 ? numrecs - mystart[idim]
399 : varshape[idim] - mystart[idim];
402 myedges[idim] = edges[idim];
403 else if (idim == 0 && isrecvar)
404 myedges[idim] = numrecs - mystart[idim];
406 myedges[idim] = varshape[idim] - mystart[idim];
409 mystride[idim] = stride != NULL
415 mymap[idim] = (imapp != NULL
417 : (idim == maxidim ? 1
418 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1]));
421 mymap[idim] = imapp[idim];
422 else if (idim == maxidim)
426 mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
429 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
430 stop[idim] = (mystart[idim] + myedges[idim] * (size_t)mystride[idim]);
436 for (idim = maxidim; idim >= 0; --idim)
439 idim == 0 && isrecvar
442 if (mystart[idim] >= dimlen)
448 if (mystart[idim] + myedges[idim] > dimlen)
464 if (mystride[maxidim] == 1
465 && mymap[maxidim] == 1)
467 iocount[maxidim] = myedges[maxidim];
468 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
469 mymap[maxidim] = (ptrdiff_t) length[maxidim];
478 int lstatus = NC_get_vara(ncid, varid, mystart, iocount,
492 value += (((int)mymap[idim]) * memtypelen);
493 mystart[idim] += (size_t)mystride[idim];
494 if (mystart[idim] == stop[idim])
496 size_t l = (length[idim] * (size_t)memtypelen);
498 mystart[idim] = start[idim];
514 NC_get_vars(
int ncid,
int varid,
const size_t *start,
515 const size_t *edges,
const ptrdiff_t *stride,
void *value,
519 int stat = NC_check_id(ncid, &ncp);
523 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
525 return ncp->dispatch->get_vars(ncid,varid,start,edges,stride,value,memtype);
533 NC_get_varm(
int ncid,
int varid,
const size_t *start,
534 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
538 int stat = NC_check_id(ncid, &ncp);
542 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
544 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,map,value,memtype);
628 const size_t *countp,
void *ip)
632 int stat = NC_check_id(ncid, &ncp);
636 return NC_get_vara(ncid, varid, startp, countp, ip, xtype);
641 const size_t *countp,
char *ip)
644 int stat = NC_check_id(ncid, &ncp);
646 return NC_get_vara(ncid, varid, startp, countp,
652 const size_t *countp,
signed char *ip)
655 int stat = NC_check_id(ncid, &ncp);
657 return NC_get_vara(ncid, varid, startp, countp,
663 const size_t *countp,
unsigned char *ip)
666 int stat = NC_check_id(ncid, &ncp);
668 return NC_get_vara(ncid, varid, startp, countp,
669 (
void *)ip, T_uchar);
674 const size_t *countp,
short *ip)
677 int stat = NC_check_id(ncid, &ncp);
679 return NC_get_vara(ncid, varid, startp, countp,
685 const size_t *startp,
const size_t *countp,
int *ip)
688 int stat = NC_check_id(ncid, &ncp);
690 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_INT);
695 const size_t *startp,
const size_t *countp,
long *ip)
698 int stat = NC_check_id(ncid, &ncp);
700 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_long);
705 const size_t *startp,
const size_t *countp,
float *ip)
708 int stat = NC_check_id(ncid, &ncp);
710 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_float);
716 const size_t *countp,
double *ip)
719 int stat = NC_check_id(ncid, &ncp);
721 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_double);
726 const size_t *startp,
const size_t *countp,
unsigned char *ip)
729 int stat = NC_check_id(ncid, &ncp);
731 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ubyte);
736 const size_t *startp,
const size_t *countp,
unsigned short *ip)
739 int stat = NC_check_id(ncid, &ncp);
741 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ushort);
746 const size_t *startp,
const size_t *countp,
unsigned int *ip)
749 int stat = NC_check_id(ncid, &ncp);
751 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_uint);
756 const size_t *startp,
const size_t *countp,
long long *ip)
759 int stat = NC_check_id(ncid, &ncp);
761 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_longlong);
766 const size_t *startp,
const size_t *countp,
unsigned long long *ip)
769 int stat = NC_check_id(ncid, &ncp);
771 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_UINT64);
777 const size_t *startp,
const size_t *countp,
char* *ip)
780 int stat = NC_check_id(ncid, &ncp);
782 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_STRING);
825 return NC_get_var1(ncid, varid, indexp, ip,
NC_NAT);
832 int stat = NC_check_id(ncid, &ncp);
834 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_CHAR);
841 int stat = NC_check_id(ncid, &ncp);
843 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_BYTE);
850 int stat = NC_check_id(ncid, &ncp);
852 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
859 int stat = NC_check_id(ncid, &ncp);
861 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_SHORT);
868 int stat = NC_check_id(ncid, &ncp);
870 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT);
878 int stat = NC_check_id(ncid, &ncp);
880 return NC_get_var1(ncid, varid, indexp, (
void *)ip, longtype);
888 int stat = NC_check_id(ncid, &ncp);
890 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_FLOAT);
898 int stat = NC_check_id(ncid, &ncp);
900 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_DOUBLE);
908 int stat = NC_check_id(ncid, &ncp);
910 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
918 int stat = NC_check_id(ncid, &ncp);
920 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_USHORT);
928 int stat = NC_check_id(ncid, &ncp);
930 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT);
938 int stat = NC_check_id(ncid, &ncp);
940 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT64);
945 unsigned long long *ip)
948 int stat = NC_check_id(ncid, &ncp);
950 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT64);
958 int stat = NC_check_id(ncid, &ncp);
960 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_STRING);
1011 return NC_get_var(ncid, varid, ip,
NC_NAT);
1018 int stat = NC_check_id(ncid, &ncp);
1020 return NC_get_var(ncid, varid, (
void *)ip,
NC_CHAR);
1027 int stat = NC_check_id(ncid, &ncp);
1029 return NC_get_var(ncid, varid, (
void *)ip,
NC_BYTE);
1036 int stat = NC_check_id(ncid, &ncp);
1038 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1045 int stat = NC_check_id(ncid, &ncp);
1047 return NC_get_var(ncid, varid, (
void *)ip,
NC_SHORT);
1054 int stat = NC_check_id(ncid, &ncp);
1056 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT);
1063 int stat = NC_check_id(ncid, &ncp);
1065 return NC_get_var(ncid,varid, (
void *)ip, longtype);
1072 int stat = NC_check_id(ncid, &ncp);
1074 return NC_get_var(ncid,varid, (
void *)ip,
NC_FLOAT);
1081 int stat = NC_check_id(ncid, &ncp);
1083 return NC_get_var(ncid,varid, (
void *)ip,
NC_DOUBLE);
1090 int stat = NC_check_id(ncid, &ncp);
1092 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1099 int stat = NC_check_id(ncid, &ncp);
1101 return NC_get_var(ncid,varid, (
void *)ip,
NC_USHORT);
1108 int stat = NC_check_id(ncid, &ncp);
1110 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT);
1117 int stat = NC_check_id(ncid, &ncp);
1119 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT64);
1126 int stat = NC_check_id(ncid, &ncp);
1128 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT64);
1136 int stat = NC_check_id(ncid, &ncp);
1138 return NC_get_var(ncid,varid, (
void *)ip,
NC_STRING);
1185 const size_t * countp,
const ptrdiff_t * stridep,
1191 if ((stat = NC_check_id(ncid, &ncp)))
1193 return ncp->dispatch->get_vars(ncid, varid, startp, countp, stridep,
1199 const size_t *countp,
const ptrdiff_t * stridep,
1203 int stat = NC_check_id(ncid, &ncp);
1205 return NC_get_vars(ncid,varid,startp, countp, stridep,
1211 const size_t *countp,
const ptrdiff_t * stridep,
1215 int stat = NC_check_id(ncid, &ncp);
1217 return NC_get_vars(ncid,varid,startp, countp, stridep,
1223 const size_t *countp,
const ptrdiff_t * stridep,
1227 int stat = NC_check_id(ncid, &ncp);
1229 return NC_get_vars(ncid,varid,startp, countp, stridep,
1230 (
void *)ip, T_uchar);
1235 const size_t *countp,
const ptrdiff_t *stridep,
1239 int stat = NC_check_id(ncid, &ncp);
1241 return NC_get_vars(ncid,varid,startp, countp, stridep,
1247 const size_t *countp,
const ptrdiff_t * stridep,
1251 int stat = NC_check_id(ncid, &ncp);
1253 return NC_get_vars(ncid,varid,startp, countp, stridep,
1259 const size_t *countp,
const ptrdiff_t * stridep,
1263 int stat = NC_check_id(ncid, &ncp);
1265 return NC_get_vars(ncid,varid,startp, countp, stridep,
1266 (
void *)ip, T_long);
1271 const size_t *countp,
const ptrdiff_t * stridep,
1275 int stat = NC_check_id(ncid, &ncp);
1277 return NC_get_vars(ncid,varid,startp, countp, stridep,
1278 (
void *)ip, T_float);
1283 const size_t *countp,
const ptrdiff_t * stridep,
1287 int stat = NC_check_id(ncid, &ncp);
1289 return NC_get_vars(ncid,varid,startp, countp, stridep,
1290 (
void *)ip, T_double);
1295 const size_t *countp,
const ptrdiff_t * stridep,
1299 int stat = NC_check_id(ncid, &ncp);
1301 return NC_get_vars(ncid,varid, startp, countp, stridep,
1302 (
void *)ip, T_ubyte);
1307 const size_t *countp,
const ptrdiff_t * stridep,
1311 int stat = NC_check_id(ncid, &ncp);
1313 return NC_get_vars(ncid,varid,startp,countp, stridep,
1314 (
void *)ip, T_ushort);
1319 const size_t *countp,
const ptrdiff_t * stridep,
1323 int stat = NC_check_id(ncid, &ncp);
1325 return NC_get_vars(ncid,varid,startp, countp, stridep,
1326 (
void *)ip, T_uint);
1331 const size_t *countp,
const ptrdiff_t * stridep,
1335 int stat = NC_check_id(ncid, &ncp);
1337 return NC_get_vars(ncid, varid, startp, countp, stridep,
1338 (
void *)ip, T_longlong);
1343 const size_t *countp,
const ptrdiff_t * stridep,
1344 unsigned long long *ip)
1347 int stat = NC_check_id(ncid, &ncp);
1349 return NC_get_vars(ncid, varid, startp, countp, stridep,
1356 const size_t *startp,
const size_t *countp,
1357 const ptrdiff_t * stridep,
1361 int stat = NC_check_id(ncid, &ncp);
1363 return NC_get_vars(ncid, varid, startp, countp, stridep,
1425 const size_t * countp,
const ptrdiff_t * stridep,
1426 const ptrdiff_t * imapp,
void *ip)
1431 if ((stat = NC_check_id(ncid, &ncp)))
1433 return ncp->dispatch->get_varm(ncid, varid, startp, countp,
1434 stridep, imapp, ip,
NC_NAT);
1439 const size_t *startp,
const size_t *countp,
1440 const ptrdiff_t *stridep,
1441 const ptrdiff_t *imapp,
signed char *ip)
1444 int stat = NC_check_id(ncid, &ncp);
1446 return NC_get_varm(ncid, varid, startp, countp,
1447 stridep, imapp, (
void *)ip,
NC_BYTE);
1452 const size_t *startp,
const size_t *countp,
1453 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1457 int stat = NC_check_id(ncid, &ncp);
1459 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_uchar);
1464 const size_t *countp,
const ptrdiff_t *stridep,
1465 const ptrdiff_t *imapp,
short *ip)
1468 int stat = NC_check_id(ncid, &ncp);
1470 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_SHORT);
1475 const size_t *startp,
const size_t *countp,
1476 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1480 int stat = NC_check_id(ncid, &ncp);
1482 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_INT);
1487 const size_t *startp,
const size_t *countp,
1488 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1492 int stat = NC_check_id(ncid, &ncp);
1494 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_long);
1499 const size_t *startp,
const size_t *countp,
1500 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1504 int stat = NC_check_id(ncid, &ncp);
1506 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_float);
1511 const size_t *startp,
const size_t *countp,
1512 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1516 int stat = NC_check_id(ncid, &ncp);
1518 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_double);
1523 const size_t *startp,
const size_t *countp,
1524 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1528 int stat = NC_check_id(ncid, &ncp);
1530 return NC_get_varm(ncid,varid,startp,countp,stridep,
1531 imapp, (
void *)ip, T_ubyte);
1536 const size_t *startp,
const size_t *countp,
1537 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1541 int stat = NC_check_id(ncid, &ncp);
1543 return NC_get_varm(ncid, varid, startp, countp, stridep,
1544 imapp, (
void *)ip, T_ushort);
1549 const size_t *startp,
const size_t *countp,
1550 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1554 int stat = NC_check_id(ncid, &ncp);
1556 return NC_get_varm(ncid, varid, startp, countp,
1557 stridep, imapp, (
void *)ip, T_uint);
1562 const size_t *countp,
const ptrdiff_t *stridep,
1563 const ptrdiff_t *imapp,
long long *ip)
1566 int stat = NC_check_id(ncid, &ncp);
1568 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1569 (
void *)ip, T_longlong);
1574 const size_t *startp,
const size_t *countp,
1575 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1576 unsigned long long *ip)
1579 int stat = NC_check_id(ncid, &ncp);
1581 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1587 const size_t *countp,
const ptrdiff_t *stridep,
1588 const ptrdiff_t *imapp,
char *ip)
1591 int stat = NC_check_id(ncid, &ncp);
1593 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1600 const size_t *countp,
const ptrdiff_t *stridep,
1601 const ptrdiff_t *imapp,
char **ip)
1604 int stat = NC_check_id(ncid, &ncp);
1606 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
int nc_get_vara_uint(int ncid, int varid, const size_t *startp, const size_t *countp, unsigned int *ip)
Read an array of values from a variable.
int nc_get_var_uint(int ncid, int varid, unsigned int *ip)
Read an entire variable in one call.
int nc_get_var1_text(int ncid, int varid, const size_t *indexp, char *ip)
Read a single datum from a variable.
#define NC_ENOMEM
Memory allocation (malloc) failure.
int nc_get_var_ulonglong(int ncid, int varid, unsigned long long *ip)
Read an entire variable in one call.
#define NC_CHAR
ISO/ASCII character.
int nc_get_varm_short(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, short *ip)
Read a mapped array from a variable.
int nc_get_varm_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, unsigned char *ip)
Read a mapped array from a variable.
int nc_get_vara_double(int ncid, int varid, const size_t *startp, const size_t *countp, double *ip)
Read an array of values from a variable.
int nc_get_varm_float(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, float *ip)
Read a mapped array from a variable.
#define NC_UBYTE
unsigned 1 byte int
#define NC_EMAPTYPE
Mapped access for atomic types only.
#define NC_ERANGE
Math result not representable.
#define NC_MAX_VAR_DIMS
max per variable dimensions
int nc_get_vars_text(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, char *ip)
Read a strided array from a variable.
int nc_get_vars_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, unsigned char *ip)
Read a strided array from a variable.
int nc_get_var1_string(int ncid, int varid, const size_t *indexp, char **ip)
Read a single datum from a variable.
#define NC_UINT
unsigned 4-byte int
int nc_get_var_long(int ncid, int varid, long *ip)
Read an entire variable in one call.
#define NC_EINVALCOORDS
Index exceeds dimension bound.
int nc_get_varm_schar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, signed char *ip)
Read a mapped array from a variable.
#define NC_INT64
signed 8-byte int
#define NC_DOUBLE
double precision floating point number
int nc_get_vars_double(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, double *ip)
Read a strided array from a variable.
EXTERNL int nc_inq_varndims(int ncid, int varid, int *ndimsp)
Learn how many dimensions are associated with a variable.
int nc_get_var_schar(int ncid, int varid, signed char *ip)
Read an entire variable in one call.
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.
int nc_type
The nc_type type is just an int.
int nc_get_vara_string(int ncid, int varid, const size_t *startp, const size_t *countp, char **ip)
Read an array of values from a variable.
#define NC_BYTE
signed 1 byte integer
int nc_get_var1_longlong(int ncid, int varid, const size_t *indexp, long long *ip)
Read a single datum from a variable.
int nc_get_varm_int(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, int *ip)
Read a mapped array from a variable.
int nc_get_vars_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, long long *ip)
Read a strided array from a variable.
int nc_get_vara_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, unsigned short *ip)
Read an array of values from a variable.
int nc_get_var(int ncid, int varid, void *ip)
Read an entire variable in one call.
int nc_get_var_int(int ncid, int varid, int *ip)
Read an entire variable in one call.
int nc_get_vara_short(int ncid, int varid, const size_t *startp, const size_t *countp, short *ip)
Read an array of values from a variable.
int nc_get_var_ushort(int ncid, int varid, unsigned short *ip)
Read an entire variable in one call.
int nc_get_var_double(int ncid, int varid, double *ip)
Read an entire variable in one call.
int nc_get_vara_float(int ncid, int varid, const size_t *startp, const size_t *countp, float *ip)
Read an array of values from a variable.
int nc_get_varm_uint(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, unsigned int *ip)
Read a mapped array from a variable.
int nc_get_var_string(int ncid, int varid, char **ip)
Read an entire variable in one call.
#define NC_EBADTYPE
Not a netcdf data type.
#define NC_EEDGE
Start+count exceeds dimension bound.
int nc_get_var1_ubyte(int ncid, int varid, const size_t *indexp, unsigned char *ip)
Read a single datum from a variable.
int nc_get_var1_uchar(int ncid, int varid, const size_t *indexp, unsigned char *ip)
Read a single datum from a variable.
int nc_get_var1(int ncid, int varid, const size_t *indexp, void *ip)
Read a single datum from a variable.
int nc_get_vara_int(int ncid, int varid, const size_t *startp, const size_t *countp, int *ip)
Read an array of values from a variable.
#define NC_ESTRIDE
Illegal stride.
int nc_get_var1_uint(int ncid, int varid, const size_t *indexp, unsigned int *ip)
Read a single datum from a variable.
#define NC_EINVAL
Invalid Argument.
int nc_get_vara_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, long long *ip)
Read an array of values from a variable.
#define NC_INT
signed 4 byte integer
int nc_get_vara_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, unsigned long long *ip)
Read an array of values from a variable.
int nc_get_vars_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, unsigned char *ip)
Read a strided array from a variable.
int nc_get_var_text(int ncid, int varid, char *ip)
Read an entire variable in one call.
int nc_get_varm_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, unsigned char *ip)
Read a mapped array from a variable.
int nc_get_vars_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, unsigned long long *ip)
Read a strided array from a variable.
int nc_get_vars_int(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, int *ip)
Read a strided array from a variable.
int nc_get_vara_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, unsigned char *ip)
Read an array of values from a variable.
int nc_get_var1_float(int ncid, int varid, const size_t *indexp, float *ip)
Read a single datum from a variable.
int nc_get_vara_text(int ncid, int varid, const size_t *startp, const size_t *countp, char *ip)
Read an array of values from a variable.
#define NC_NAT
Not A Type.
int nc_get_vara_schar(int ncid, int varid, const size_t *startp, const size_t *countp, signed char *ip)
Read an array of values from a variable.
EXTERNL int nc_inq_vartype(int ncid, int varid, nc_type *xtypep)
Learn the type of a variable.
int nc_get_vars_float(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, float *ip)
Read a strided array from a variable.
EXTERNL int nc_inq_type(int ncid, nc_type xtype, char *name, size_t *size)
Inquire about a type.
#define NC_USHORT
unsigned 2-byte int
int nc_get_var_ubyte(int ncid, int varid, unsigned char *ip)
Read an entire variable in one call.
int nc_get_var_longlong(int ncid, int varid, long long *ip)
Read an entire variable in one call.
int nc_get_vars_short(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, short *ip)
Read a strided array from a variable.
int nc_get_var1_ushort(int ncid, int varid, const size_t *indexp, unsigned short *ip)
Read a single datum from a variable.
int nc_get_varm_text(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, char *ip)
Read a mapped array from a variable.
int nc_get_var1_schar(int ncid, int varid, const size_t *indexp, signed char *ip)
Read a single datum from a variable.
int nc_get_vars_schar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, signed char *ip)
Read a strided array from a variable.
int nc_get_vars_long(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, long *ip)
Read a strided array from a variable.
int nc_get_vars_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, unsigned short *ip)
Read a strided array from a variable.
int nc_get_vara_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, unsigned char *ip)
Read an array of values from a variable.
int nc_get_var_float(int ncid, int varid, float *ip)
Read an entire variable in one call.
int nc_get_var1_short(int ncid, int varid, const size_t *indexp, short *ip)
Read a single datum from a variable.
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.
int nc_get_var_short(int ncid, int varid, short *ip)
Read an entire variable in one call.
#define NC_SHORT
signed 2 byte integer
int nc_get_var1_ulonglong(int ncid, int varid, const size_t *indexp, unsigned long long *ip)
Read a single datum from a variable.
int nc_get_var1_double(int ncid, int varid, const size_t *indexp, double *ip)
Read a single datum from a variable.
int nc_get_var_uchar(int ncid, int varid, unsigned char *ip)
Read an entire variable in one call.
#define NC_NOERR
No Error.
#define NC_ECHAR
Attempt to convert between text & numbers.
int nc_get_var1_long(int ncid, int varid, const size_t *indexp, long *ip)
Read a single datum from a variable.
int nc_get_varm_long(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, long *ip)
Read a mapped array from a variable.
int nc_get_var1_int(int ncid, int varid, const size_t *indexp, int *ip)
Read a single datum from a variable.
int nc_get_varm_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, unsigned short *ip)
Read a mapped array from a variable.
#define NC_FLOAT
single precision floating point number
int nc_get_varm_string(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, char **ip)
Read a mapped array from a variable.
int nc_get_varm_double(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, double *ip)
Read a mapped array from a variable.
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.
#define NC_UINT64
unsigned 8-byte int
int nc_get_vara_long(int ncid, int varid, const size_t *startp, const size_t *countp, long *ip)
Read an array of values from a variable.
int nc_get_varm_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, long long *ip)
Read a mapped array from a variable.
int nc_get_vars_string(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, char **ip)
Read a strided array from a variable.
int nc_get_vars_uint(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, unsigned int *ip)
Read a strided array from a variable.
int nc_get_varm_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, unsigned long long *ip)
Read a mapped array from a variable.