9 #include "ncdispatch.h" 12 #ifndef VARS_USES_VARM 32 odom_init(
struct GETodometer* odom,
34 const size_t* start,
const size_t* edges,
const ptrdiff_t* stride)
37 memset(odom,0,
sizeof(
struct GETodometer));
40 for(i=0;i<odom->rank;i++) {
41 odom->start[i] = (start != NULL ? start[i] : 0);
42 odom->edges[i] = (edges != NULL ? edges[i] : 1);
43 odom->stride[i] = (stride != NULL ? stride[i] : 1);
44 odom->stop[i] = odom->start[i] + (odom->edges[i]*((size_t)odom->stride[i]));
45 odom->index[i] = odom->start[i];
53 odom_more(
struct GETodometer* odom)
55 return (odom->index[0] < odom->stop[0]);
62 odom_next(
struct GETodometer* odom)
65 if(odom->rank == 0)
return 0;
66 for(i=odom->rank-1;i>=0;i--) {
67 odom->index[i] += (size_t)odom->stride[i];
68 if(odom->index[i] < odom->stop[i])
break;
70 odom->index[i] = odom->start[i];
81 NC_get_vara(
int ncid,
int varid,
82 const size_t *start,
const size_t *edges,
86 int stat = NC_check_id(ncid, &ncp);
89 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
97 stat = NC_getshape(ncid,varid,ndims,shape);
99 stat = ncp->dispatch->get_vara(ncid,varid,start,shape,value,memtype);
101 stat = ncp->dispatch->get_vara(ncid,varid,start,edges,value,memtype);
109 NC_get_var(
int ncid,
int varid,
void *value,
nc_type memtype)
114 if(stat)
return stat;
115 stat = NC_getshape(ncid,varid, ndims, shape);
116 if(stat)
return stat;
117 return NC_get_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
125 NCDEFAULT_get_vars(
int ncid,
int varid,
const size_t * start,
126 const size_t * edges,
const ptrdiff_t * stride,
129 #ifdef VARS_USES_VARM 131 int stat = NC_check_id(ncid, &ncp);
134 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
139 int i,simplestride,isrecvar;
141 struct GETodometer odom;
147 char* value = (
char*)value0;
155 status = NC_check_id (ncid, &ncp);
156 if(status !=
NC_NOERR)
return status;
159 if(status !=
NC_NOERR)
return status;
161 if(memtype ==
NC_NAT) memtype = vartype;
164 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
165 if(status !=
NC_NOERR)
return status;
167 if(memtype > NC_MAX_ATOMIC_TYPE)
168 memtypelen = (int)vartypelen;
170 memtypelen = nctypelen(memtype);
173 if(vartype != memtype) {
175 if(vartype > NC_MAX_ATOMIC_TYPE
176 || memtype > NC_MAX_ATOMIC_TYPE)
185 if(status !=
NC_NOERR)
return status;
188 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
189 NC_getshape(ncid,varid,rank,varshape);
198 size_t edge1[1] = {1};
199 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
205 for(i=0;i<rank;i++) {
207 mystart[i] = (start == NULL ? 0 : start[i]);
209 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
211 #ifdef RELAX_COORD_BOUND 217 if(i == 0 && isrecvar)
218 myedges[i] = numrecs - start[i];
220 myedges[i] = varshape[i] - mystart[i];
222 myedges[i] = edges[i];
223 #ifdef RELAX_COORD_BOUND 227 if(mystart[i] + myedges[i] > dimlen)
229 mystride[i] = (stride == NULL ? 1 : stride[i]);
232 || ((
unsigned long) mystride[i] >= X_INT_MAX))
234 if(mystride[i] != 1) simplestride = 0;
241 return NC_get_vara(ncid, varid, mystart, myedges, value, memtype);
247 odom_init(&odom,rank,mystart,myedges,mystride);
250 while(odom_more(&odom)) {
253 localstatus = NC_get_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
259 status = localstatus;
261 memptr += memtypelen;
272 NC_get_var1(
int ncid,
int varid,
const size_t *coord,
void* value,
275 return NC_get_vara(ncid, varid, coord, NC_coord_one, value, memtype);
282 NCDEFAULT_get_varm(
int ncid,
int varid,
const size_t *start,
283 const size_t *edges,
const ptrdiff_t *stride,
284 const ptrdiff_t *imapp,
void *value0,
nc_type memtype)
288 int varndims,maxidim;
291 char* value = (
char*)value0;
293 status = NC_check_id (ncid, &ncp);
294 if(status !=
NC_NOERR)
return status;
301 if(status !=
NC_NOERR)
return status;
303 if(vartype > NC_MAX_ATOMIC_TYPE)
307 if(status !=
NC_NOERR)
return status;
318 memtypelen = nctypelen(memtype);
320 maxidim = (int) varndims - 1;
329 size_t edge1[1] = {1};
330 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
339 size_t *mystart = NULL;
351 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
352 NC_getshape(ncid,varid,varndims,varshape);
359 for (idim = 0; idim <= maxidim; ++idim)
361 if (stride[idim] == 0
363 || ((
unsigned long) stride[idim] >= X_INT_MAX))
367 if(stride[idim] != 1) stride1 = 0;
372 if(stride1 && imapp == NULL) {
373 return NC_get_vara(ncid, varid, start, edges, value, memtype);
379 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
381 myedges = mystart + varndims;
382 iocount = myedges + varndims;
383 stop = iocount + varndims;
384 length = stop + varndims;
385 mystride = (ptrdiff_t *)(length + varndims);
386 mymap = mystride + varndims;
391 for (idim = maxidim; idim >= 0; --idim)
394 idim == 0 && isrecvar
398 mystart[idim] = start != NULL
402 #ifdef RELAX_COORD_BOUND 403 if (mystart[idim] > dimlen)
405 if (mystart[idim] >= dimlen)
413 myedges[idim] = edges != NULL
415 : idim == 0 && isrecvar
416 ? numrecs - mystart[idim]
417 : varshape[idim] - mystart[idim];
420 myedges[idim] = edges[idim];
421 else if (idim == 0 && isrecvar)
422 myedges[idim] = numrecs - mystart[idim];
424 myedges[idim] = varshape[idim] - mystart[idim];
427 #ifdef RELAX_COORD_BOUND 428 if (mystart[idim] == dimlen && myedges[idim] > 0)
435 if (mystart[idim] + myedges[idim] > dimlen)
446 for (idim = maxidim; idim >= 0; --idim)
448 if (edges != NULL && edges[idim] == 0)
454 mystride[idim] = stride != NULL
461 mymap[idim] = (imapp != NULL
463 : (idim == maxidim ? 1
464 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1]));
467 mymap[idim] = imapp[idim];
468 else if (idim == maxidim)
472 mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
475 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
476 stop[idim] = (mystart[idim] + myedges[idim] * (size_t)mystride[idim]);
486 if (mystride[maxidim] == 1
487 && mymap[maxidim] == 1)
489 iocount[maxidim] = myedges[maxidim];
490 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
491 mymap[maxidim] = (ptrdiff_t) length[maxidim];
500 int lstatus = NC_get_vara(ncid, varid, mystart, iocount,
514 value += (((int)mymap[idim]) * memtypelen);
515 mystart[idim] += (size_t)mystride[idim];
516 if (mystart[idim] == stop[idim])
518 size_t l = (length[idim] * (size_t)memtypelen);
520 mystart[idim] = start[idim];
536 NC_get_vars(
int ncid,
int varid,
const size_t *start,
537 const size_t *edges,
const ptrdiff_t *stride,
void *value,
541 int stat = NC_check_id(ncid, &ncp);
545 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
547 return ncp->dispatch->get_vars(ncid,varid,start,edges,stride,value,memtype);
555 NC_get_varm(
int ncid,
int varid,
const size_t *start,
556 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
560 int stat = NC_check_id(ncid, &ncp);
564 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
566 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,map,value,memtype);
650 const size_t *countp,
void *ip)
654 int stat = NC_check_id(ncid, &ncp);
658 return NC_get_vara(ncid, varid, startp, countp, ip, xtype);
663 const size_t *countp,
char *ip)
666 int stat = NC_check_id(ncid, &ncp);
668 return NC_get_vara(ncid, varid, startp, countp,
674 const size_t *countp,
signed char *ip)
677 int stat = NC_check_id(ncid, &ncp);
679 return NC_get_vara(ncid, varid, startp, countp,
685 const size_t *countp,
unsigned char *ip)
688 int stat = NC_check_id(ncid, &ncp);
690 return NC_get_vara(ncid, varid, startp, countp,
691 (
void *)ip, T_uchar);
696 const size_t *countp,
short *ip)
699 int stat = NC_check_id(ncid, &ncp);
701 return NC_get_vara(ncid, varid, startp, countp,
707 const size_t *startp,
const size_t *countp,
int *ip)
710 int stat = NC_check_id(ncid, &ncp);
712 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_INT);
717 const size_t *startp,
const size_t *countp,
long *ip)
720 int stat = NC_check_id(ncid, &ncp);
722 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_long);
727 const size_t *startp,
const size_t *countp,
float *ip)
730 int stat = NC_check_id(ncid, &ncp);
732 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_float);
738 const size_t *countp,
double *ip)
741 int stat = NC_check_id(ncid, &ncp);
743 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_double);
748 const size_t *startp,
const size_t *countp,
unsigned char *ip)
751 int stat = NC_check_id(ncid, &ncp);
753 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ubyte);
758 const size_t *startp,
const size_t *countp,
unsigned short *ip)
761 int stat = NC_check_id(ncid, &ncp);
763 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ushort);
768 const size_t *startp,
const size_t *countp,
unsigned int *ip)
771 int stat = NC_check_id(ncid, &ncp);
773 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_uint);
778 const size_t *startp,
const size_t *countp,
long long *ip)
781 int stat = NC_check_id(ncid, &ncp);
783 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_longlong);
788 const size_t *startp,
const size_t *countp,
unsigned long long *ip)
791 int stat = NC_check_id(ncid, &ncp);
793 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_UINT64);
799 const size_t *startp,
const size_t *countp,
char* *ip)
802 int stat = NC_check_id(ncid, &ncp);
804 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_STRING);
847 return NC_get_var1(ncid, varid, indexp, ip,
NC_NAT);
854 int stat = NC_check_id(ncid, &ncp);
856 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_CHAR);
863 int stat = NC_check_id(ncid, &ncp);
865 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_BYTE);
872 int stat = NC_check_id(ncid, &ncp);
874 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
881 int stat = NC_check_id(ncid, &ncp);
883 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_SHORT);
890 int stat = NC_check_id(ncid, &ncp);
892 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT);
900 int stat = NC_check_id(ncid, &ncp);
902 return NC_get_var1(ncid, varid, indexp, (
void *)ip, longtype);
910 int stat = NC_check_id(ncid, &ncp);
912 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_FLOAT);
920 int stat = NC_check_id(ncid, &ncp);
922 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_DOUBLE);
930 int stat = NC_check_id(ncid, &ncp);
932 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
940 int stat = NC_check_id(ncid, &ncp);
942 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_USHORT);
950 int stat = NC_check_id(ncid, &ncp);
952 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT);
960 int stat = NC_check_id(ncid, &ncp);
962 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT64);
967 unsigned long long *ip)
970 int stat = NC_check_id(ncid, &ncp);
972 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT64);
980 int stat = NC_check_id(ncid, &ncp);
982 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_STRING);
1033 return NC_get_var(ncid, varid, ip,
NC_NAT);
1040 int stat = NC_check_id(ncid, &ncp);
1042 return NC_get_var(ncid, varid, (
void *)ip,
NC_CHAR);
1049 int stat = NC_check_id(ncid, &ncp);
1051 return NC_get_var(ncid, varid, (
void *)ip,
NC_BYTE);
1058 int stat = NC_check_id(ncid, &ncp);
1060 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1067 int stat = NC_check_id(ncid, &ncp);
1069 return NC_get_var(ncid, varid, (
void *)ip,
NC_SHORT);
1076 int stat = NC_check_id(ncid, &ncp);
1078 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT);
1085 int stat = NC_check_id(ncid, &ncp);
1087 return NC_get_var(ncid,varid, (
void *)ip, longtype);
1094 int stat = NC_check_id(ncid, &ncp);
1096 return NC_get_var(ncid,varid, (
void *)ip,
NC_FLOAT);
1103 int stat = NC_check_id(ncid, &ncp);
1105 return NC_get_var(ncid,varid, (
void *)ip,
NC_DOUBLE);
1112 int stat = NC_check_id(ncid, &ncp);
1114 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1121 int stat = NC_check_id(ncid, &ncp);
1123 return NC_get_var(ncid,varid, (
void *)ip,
NC_USHORT);
1130 int stat = NC_check_id(ncid, &ncp);
1132 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT);
1139 int stat = NC_check_id(ncid, &ncp);
1141 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT64);
1148 int stat = NC_check_id(ncid, &ncp);
1150 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT64);
1158 int stat = NC_check_id(ncid, &ncp);
1160 return NC_get_var(ncid,varid, (
void *)ip,
NC_STRING);
1207 const size_t * countp,
const ptrdiff_t * stridep,
1213 if ((stat = NC_check_id(ncid, &ncp)))
1215 return ncp->dispatch->get_vars(ncid, varid, startp, countp, stridep,
1221 const size_t *countp,
const ptrdiff_t * stridep,
1225 int stat = NC_check_id(ncid, &ncp);
1227 return NC_get_vars(ncid,varid,startp, countp, stridep,
1233 const size_t *countp,
const ptrdiff_t * stridep,
1237 int stat = NC_check_id(ncid, &ncp);
1239 return NC_get_vars(ncid,varid,startp, countp, stridep,
1245 const size_t *countp,
const ptrdiff_t * stridep,
1249 int stat = NC_check_id(ncid, &ncp);
1251 return NC_get_vars(ncid,varid,startp, countp, stridep,
1252 (
void *)ip, T_uchar);
1257 const size_t *countp,
const ptrdiff_t *stridep,
1261 int stat = NC_check_id(ncid, &ncp);
1263 return NC_get_vars(ncid,varid,startp, countp, stridep,
1269 const size_t *countp,
const ptrdiff_t * stridep,
1273 int stat = NC_check_id(ncid, &ncp);
1275 return NC_get_vars(ncid,varid,startp, countp, stridep,
1281 const size_t *countp,
const ptrdiff_t * stridep,
1285 int stat = NC_check_id(ncid, &ncp);
1287 return NC_get_vars(ncid,varid,startp, countp, stridep,
1288 (
void *)ip, T_long);
1293 const size_t *countp,
const ptrdiff_t * stridep,
1297 int stat = NC_check_id(ncid, &ncp);
1299 return NC_get_vars(ncid,varid,startp, countp, stridep,
1300 (
void *)ip, T_float);
1305 const size_t *countp,
const ptrdiff_t * stridep,
1309 int stat = NC_check_id(ncid, &ncp);
1311 return NC_get_vars(ncid,varid,startp, countp, stridep,
1312 (
void *)ip, T_double);
1317 const size_t *countp,
const ptrdiff_t * stridep,
1321 int stat = NC_check_id(ncid, &ncp);
1323 return NC_get_vars(ncid,varid, startp, countp, stridep,
1324 (
void *)ip, T_ubyte);
1329 const size_t *countp,
const ptrdiff_t * stridep,
1333 int stat = NC_check_id(ncid, &ncp);
1335 return NC_get_vars(ncid,varid,startp,countp, stridep,
1336 (
void *)ip, T_ushort);
1341 const size_t *countp,
const ptrdiff_t * stridep,
1345 int stat = NC_check_id(ncid, &ncp);
1347 return NC_get_vars(ncid,varid,startp, countp, stridep,
1348 (
void *)ip, T_uint);
1353 const size_t *countp,
const ptrdiff_t * stridep,
1357 int stat = NC_check_id(ncid, &ncp);
1359 return NC_get_vars(ncid, varid, startp, countp, stridep,
1360 (
void *)ip, T_longlong);
1365 const size_t *countp,
const ptrdiff_t * stridep,
1366 unsigned long long *ip)
1369 int stat = NC_check_id(ncid, &ncp);
1371 return NC_get_vars(ncid, varid, startp, countp, stridep,
1378 const size_t *startp,
const size_t *countp,
1379 const ptrdiff_t * stridep,
1383 int stat = NC_check_id(ncid, &ncp);
1385 return NC_get_vars(ncid, varid, startp, countp, stridep,
1448 const size_t * countp,
const ptrdiff_t * stridep,
1449 const ptrdiff_t * imapp,
void *ip)
1454 if ((stat = NC_check_id(ncid, &ncp)))
1456 return ncp->dispatch->get_varm(ncid, varid, startp, countp,
1457 stridep, imapp, ip,
NC_NAT);
1462 const size_t *startp,
const size_t *countp,
1463 const ptrdiff_t *stridep,
1464 const ptrdiff_t *imapp,
signed char *ip)
1467 int stat = NC_check_id(ncid, &ncp);
1469 return NC_get_varm(ncid, varid, startp, countp,
1470 stridep, imapp, (
void *)ip,
NC_BYTE);
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,T_uchar);
1487 const size_t *countp,
const ptrdiff_t *stridep,
1488 const ptrdiff_t *imapp,
short *ip)
1491 int stat = NC_check_id(ncid, &ncp);
1493 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_SHORT);
1498 const size_t *startp,
const size_t *countp,
1499 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1503 int stat = NC_check_id(ncid, &ncp);
1505 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_INT);
1510 const size_t *startp,
const size_t *countp,
1511 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1515 int stat = NC_check_id(ncid, &ncp);
1517 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_long);
1522 const size_t *startp,
const size_t *countp,
1523 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1527 int stat = NC_check_id(ncid, &ncp);
1529 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_float);
1534 const size_t *startp,
const size_t *countp,
1535 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1539 int stat = NC_check_id(ncid, &ncp);
1541 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_double);
1546 const size_t *startp,
const size_t *countp,
1547 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1551 int stat = NC_check_id(ncid, &ncp);
1553 return NC_get_varm(ncid,varid,startp,countp,stridep,
1554 imapp, (
void *)ip, T_ubyte);
1559 const size_t *startp,
const size_t *countp,
1560 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1564 int stat = NC_check_id(ncid, &ncp);
1566 return NC_get_varm(ncid, varid, startp, countp, stridep,
1567 imapp, (
void *)ip, T_ushort);
1572 const size_t *startp,
const size_t *countp,
1573 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1577 int stat = NC_check_id(ncid, &ncp);
1579 return NC_get_varm(ncid, varid, startp, countp,
1580 stridep, imapp, (
void *)ip, T_uint);
1585 const size_t *countp,
const ptrdiff_t *stridep,
1586 const ptrdiff_t *imapp,
long long *ip)
1589 int stat = NC_check_id(ncid, &ncp);
1591 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1592 (
void *)ip, T_longlong);
1597 const size_t *startp,
const size_t *countp,
1598 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1599 unsigned long long *ip)
1602 int stat = NC_check_id(ncid, &ncp);
1604 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1610 const size_t *countp,
const ptrdiff_t *stridep,
1611 const ptrdiff_t *imapp,
char *ip)
1614 int stat = NC_check_id(ncid, &ncp);
1616 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1623 const size_t *countp,
const ptrdiff_t *stridep,
1624 const ptrdiff_t *imapp,
char **ip)
1627 int stat = NC_check_id(ncid, &ncp);
1629 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.
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.