9 #include "ncdispatch.h"
12 #ifndef VARS_USES_VARM
39 odom_init(
struct GETodometer* odom,
int rank,
const size_t* start,
40 const size_t* edges,
const ptrdiff_t* stride)
43 memset(odom,0,
sizeof(
struct GETodometer));
46 for(i=0;i<odom->rank;i++) {
47 odom->start[i] = (start != NULL ? start[i] : 0);
48 odom->edges[i] = (edges != NULL ? edges[i] : 1);
49 odom->stride[i] = (stride != NULL ? stride[i] : 1);
50 odom->stop[i] = odom->start[i] + (odom->edges[i]*((size_t)odom->stride[i]));
51 odom->index[i] = odom->start[i];
63 odom_more(
struct GETodometer* odom)
65 return (odom->index[0] < odom->stop[0]);
76 odom_next(
struct GETodometer* odom)
79 if(odom->rank == 0)
return 0;
80 for(i=odom->rank-1;i>=0;i--) {
81 odom->index[i] += (size_t)odom->stride[i];
82 if(odom->index[i] < odom->stop[i])
break;
84 odom->index[i] = odom->start[i];
95 NC_get_vara(
int ncid,
int varid,
96 const size_t *start,
const size_t *edges,
100 int stat = NC_check_id(ncid, &ncp);
103 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
111 stat = NC_getshape(ncid,varid,ndims,shape);
113 stat = ncp->dispatch->get_vara(ncid,varid,start,shape,value,memtype);
115 stat = ncp->dispatch->get_vara(ncid,varid,start,edges,value,memtype);
151 if(stat)
return stat;
152 stat = NC_getshape(ncid,varid, ndims, shape);
153 if(stat)
return stat;
154 return NC_get_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
162 NCDEFAULT_get_vars(
int ncid,
int varid,
const size_t * start,
163 const size_t * edges,
const ptrdiff_t * stride,
166 #ifdef VARS_USES_VARM
168 int stat = NC_check_id(ncid, &ncp);
171 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
176 int i,simplestride,isrecvar;
178 struct GETodometer odom;
184 char* value = (
char*)value0;
192 status = NC_check_id (ncid, &ncp);
193 if(status !=
NC_NOERR)
return status;
196 if(status !=
NC_NOERR)
return status;
198 if(memtype ==
NC_NAT) memtype = vartype;
201 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
202 if(status !=
NC_NOERR)
return status;
204 if(memtype > NC_MAX_ATOMIC_TYPE)
205 memtypelen = (int)vartypelen;
207 memtypelen = nctypelen(memtype);
210 if(vartype != memtype) {
212 if(vartype > NC_MAX_ATOMIC_TYPE
213 || memtype > NC_MAX_ATOMIC_TYPE)
222 if(status !=
NC_NOERR)
return status;
225 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
226 NC_getshape(ncid,varid,rank,varshape);
235 size_t edge1[1] = {1};
236 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
242 for(i=0;i<rank;i++) {
244 mystart[i] = (start == NULL ? 0 : start[i]);
246 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
248 #ifdef RELAX_COORD_BOUND
254 if(i == 0 && isrecvar)
255 myedges[i] = numrecs - start[i];
257 myedges[i] = varshape[i] - mystart[i];
259 myedges[i] = edges[i];
260 #ifdef RELAX_COORD_BOUND
264 if(mystart[i] + myedges[i] > dimlen)
266 mystride[i] = (stride == NULL ? 1 : stride[i]);
269 || ((
unsigned long) mystride[i] >= X_INT_MAX))
271 if(mystride[i] != 1) simplestride = 0;
278 return NC_get_vara(ncid, varid, mystart, myedges, value, memtype);
284 odom_init(&odom,rank,mystart,myedges,mystride);
287 while(odom_more(&odom)) {
290 localstatus = NC_get_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
296 status = localstatus;
298 memptr += memtypelen;
309 NC_get_var1(
int ncid,
int varid,
const size_t *coord,
void* value,
312 return NC_get_vara(ncid, varid, coord, NC_coord_one, value, memtype);
319 NCDEFAULT_get_varm(
int ncid,
int varid,
const size_t *start,
320 const size_t *edges,
const ptrdiff_t *stride,
321 const ptrdiff_t *imapp,
void *value0,
nc_type memtype)
325 int varndims,maxidim;
328 char* value = (
char*)value0;
330 status = NC_check_id (ncid, &ncp);
331 if(status !=
NC_NOERR)
return status;
338 if(status !=
NC_NOERR)
return status;
340 if(vartype > NC_MAX_ATOMIC_TYPE)
344 if(status !=
NC_NOERR)
return status;
355 memtypelen = nctypelen(memtype);
357 maxidim = (int) varndims - 1;
366 size_t edge1[1] = {1};
367 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
376 size_t *mystart = NULL;
388 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
389 NC_getshape(ncid,varid,varndims,varshape);
396 for (idim = 0; idim <= maxidim; ++idim)
398 if (stride[idim] == 0
400 || ((
unsigned long) stride[idim] >= X_INT_MAX))
404 if(stride[idim] != 1) stride1 = 0;
409 if(stride1 && imapp == NULL) {
410 return NC_get_vara(ncid, varid, start, edges, value, memtype);
416 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
418 myedges = mystart + varndims;
419 iocount = myedges + varndims;
420 stop = iocount + varndims;
421 length = stop + varndims;
422 mystride = (ptrdiff_t *)(length + varndims);
423 mymap = mystride + varndims;
428 for (idim = maxidim; idim >= 0; --idim)
431 idim == 0 && isrecvar
435 mystart[idim] = start != NULL
439 #ifdef RELAX_COORD_BOUND
440 if (mystart[idim] > dimlen)
442 if (mystart[idim] >= dimlen)
450 myedges[idim] = edges != NULL
452 : idim == 0 && isrecvar
453 ? numrecs - mystart[idim]
454 : varshape[idim] - mystart[idim];
457 myedges[idim] = edges[idim];
458 else if (idim == 0 && isrecvar)
459 myedges[idim] = numrecs - mystart[idim];
461 myedges[idim] = varshape[idim] - mystart[idim];
464 #ifdef RELAX_COORD_BOUND
465 if (mystart[idim] == dimlen && myedges[idim] > 0)
472 if (mystart[idim] + myedges[idim] > dimlen)
483 for (idim = maxidim; idim >= 0; --idim)
485 if (edges != NULL && edges[idim] == 0)
491 mystride[idim] = stride != NULL
498 mymap[idim] = (imapp != NULL
500 : (idim == maxidim ? 1
501 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1]));
504 mymap[idim] = imapp[idim];
505 else if (idim == maxidim)
509 mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
512 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
513 stop[idim] = (mystart[idim] + myedges[idim] * (size_t)mystride[idim]);
523 if (mystride[maxidim] == 1
524 && mymap[maxidim] == 1)
526 iocount[maxidim] = myedges[maxidim];
527 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
528 mymap[maxidim] = (ptrdiff_t) length[maxidim];
537 int lstatus = NC_get_vara(ncid, varid, mystart, iocount,
551 value += (((int)mymap[idim]) * memtypelen);
552 mystart[idim] += (size_t)mystride[idim];
553 if (mystart[idim] == stop[idim])
555 size_t l = (length[idim] * (size_t)memtypelen);
557 mystart[idim] = start[idim];
603 const size_t *edges,
const ptrdiff_t *stride,
void *value,
607 int stat = NC_check_id(ncid, &ncp);
611 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
613 return ncp->dispatch->get_vars(ncid,varid,start,edges,stride,value,memtype);
654 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
658 int stat = NC_check_id(ncid, &ncp);
662 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
664 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,map,value,memtype);
748 const size_t *countp,
void *ip)
752 int stat = NC_check_id(ncid, &ncp);
756 return NC_get_vara(ncid, varid, startp, countp, ip, xtype);
761 const size_t *countp,
char *ip)
764 int stat = NC_check_id(ncid, &ncp);
766 return NC_get_vara(ncid, varid, startp, countp,
772 const size_t *countp,
signed char *ip)
775 int stat = NC_check_id(ncid, &ncp);
777 return NC_get_vara(ncid, varid, startp, countp,
783 const size_t *countp,
unsigned char *ip)
786 int stat = NC_check_id(ncid, &ncp);
788 return NC_get_vara(ncid, varid, startp, countp,
789 (
void *)ip, T_uchar);
794 const size_t *countp,
short *ip)
797 int stat = NC_check_id(ncid, &ncp);
799 return NC_get_vara(ncid, varid, startp, countp,
805 const size_t *startp,
const size_t *countp,
int *ip)
808 int stat = NC_check_id(ncid, &ncp);
810 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_INT);
815 const size_t *startp,
const size_t *countp,
long *ip)
818 int stat = NC_check_id(ncid, &ncp);
820 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_long);
825 const size_t *startp,
const size_t *countp,
float *ip)
828 int stat = NC_check_id(ncid, &ncp);
830 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_float);
836 const size_t *countp,
double *ip)
839 int stat = NC_check_id(ncid, &ncp);
841 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_double);
846 const size_t *startp,
const size_t *countp,
unsigned char *ip)
849 int stat = NC_check_id(ncid, &ncp);
851 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ubyte);
856 const size_t *startp,
const size_t *countp,
unsigned short *ip)
859 int stat = NC_check_id(ncid, &ncp);
861 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ushort);
866 const size_t *startp,
const size_t *countp,
unsigned int *ip)
869 int stat = NC_check_id(ncid, &ncp);
871 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_uint);
876 const size_t *startp,
const size_t *countp,
long long *ip)
879 int stat = NC_check_id(ncid, &ncp);
881 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_longlong);
886 const size_t *startp,
const size_t *countp,
unsigned long long *ip)
889 int stat = NC_check_id(ncid, &ncp);
891 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_UINT64);
897 const size_t *startp,
const size_t *countp,
char* *ip)
900 int stat = NC_check_id(ncid, &ncp);
902 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_STRING);
945 return NC_get_var1(ncid, varid, indexp, ip,
NC_NAT);
952 int stat = NC_check_id(ncid, &ncp);
954 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_CHAR);
961 int stat = NC_check_id(ncid, &ncp);
963 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_BYTE);
970 int stat = NC_check_id(ncid, &ncp);
972 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
979 int stat = NC_check_id(ncid, &ncp);
981 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_SHORT);
988 int stat = NC_check_id(ncid, &ncp);
990 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT);
998 int stat = NC_check_id(ncid, &ncp);
1000 return NC_get_var1(ncid, varid, indexp, (
void *)ip, longtype);
1008 int stat = NC_check_id(ncid, &ncp);
1010 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_FLOAT);
1018 int stat = NC_check_id(ncid, &ncp);
1020 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_DOUBLE);
1028 int stat = NC_check_id(ncid, &ncp);
1030 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
1038 int stat = NC_check_id(ncid, &ncp);
1040 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_USHORT);
1048 int stat = NC_check_id(ncid, &ncp);
1050 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT);
1058 int stat = NC_check_id(ncid, &ncp);
1060 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT64);
1065 unsigned long long *ip)
1068 int stat = NC_check_id(ncid, &ncp);
1070 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT64);
1078 int stat = NC_check_id(ncid, &ncp);
1080 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_STRING);
1138 int stat = NC_check_id(ncid, &ncp);
1147 int stat = NC_check_id(ncid, &ncp);
1156 int stat = NC_check_id(ncid, &ncp);
1165 int stat = NC_check_id(ncid, &ncp);
1174 int stat = NC_check_id(ncid, &ncp);
1183 int stat = NC_check_id(ncid, &ncp);
1185 return NC_get_var(ncid,varid, (
void *)ip, longtype);
1192 int stat = NC_check_id(ncid, &ncp);
1201 int stat = NC_check_id(ncid, &ncp);
1210 int stat = NC_check_id(ncid, &ncp);
1219 int stat = NC_check_id(ncid, &ncp);
1228 int stat = NC_check_id(ncid, &ncp);
1237 int stat = NC_check_id(ncid, &ncp);
1246 int stat = NC_check_id(ncid, &ncp);
1256 int stat = NC_check_id(ncid, &ncp);
1305 const size_t * countp,
const ptrdiff_t * stridep,
1311 if ((stat = NC_check_id(ncid, &ncp)))
1313 return ncp->dispatch->get_vars(ncid, varid, startp, countp, stridep,
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,
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,
1343 const size_t *countp,
const ptrdiff_t * stridep,
1347 int stat = NC_check_id(ncid, &ncp);
1349 return NC_get_vars(ncid,varid,startp, countp, stridep,
1350 (
void *)ip, T_uchar);
1355 const size_t *countp,
const ptrdiff_t *stridep,
1359 int stat = NC_check_id(ncid, &ncp);
1361 return NC_get_vars(ncid,varid,startp, countp, stridep,
1367 const size_t *countp,
const ptrdiff_t * stridep,
1371 int stat = NC_check_id(ncid, &ncp);
1373 return NC_get_vars(ncid,varid,startp, countp, stridep,
1379 const size_t *countp,
const ptrdiff_t * stridep,
1383 int stat = NC_check_id(ncid, &ncp);
1385 return NC_get_vars(ncid,varid,startp, countp, stridep,
1386 (
void *)ip, T_long);
1391 const size_t *countp,
const ptrdiff_t * stridep,
1395 int stat = NC_check_id(ncid, &ncp);
1397 return NC_get_vars(ncid,varid,startp, countp, stridep,
1398 (
void *)ip, T_float);
1403 const size_t *countp,
const ptrdiff_t * stridep,
1407 int stat = NC_check_id(ncid, &ncp);
1409 return NC_get_vars(ncid,varid,startp, countp, stridep,
1410 (
void *)ip, T_double);
1415 const size_t *countp,
const ptrdiff_t * stridep,
1419 int stat = NC_check_id(ncid, &ncp);
1421 return NC_get_vars(ncid,varid, startp, countp, stridep,
1422 (
void *)ip, T_ubyte);
1427 const size_t *countp,
const ptrdiff_t * stridep,
1431 int stat = NC_check_id(ncid, &ncp);
1433 return NC_get_vars(ncid,varid,startp,countp, stridep,
1434 (
void *)ip, T_ushort);
1439 const size_t *countp,
const ptrdiff_t * stridep,
1443 int stat = NC_check_id(ncid, &ncp);
1445 return NC_get_vars(ncid,varid,startp, countp, stridep,
1446 (
void *)ip, T_uint);
1451 const size_t *countp,
const ptrdiff_t * stridep,
1455 int stat = NC_check_id(ncid, &ncp);
1457 return NC_get_vars(ncid, varid, startp, countp, stridep,
1458 (
void *)ip, T_longlong);
1463 const size_t *countp,
const ptrdiff_t * stridep,
1464 unsigned long long *ip)
1467 int stat = NC_check_id(ncid, &ncp);
1469 return NC_get_vars(ncid, varid, startp, countp, stridep,
1476 const size_t *startp,
const size_t *countp,
1477 const ptrdiff_t * stridep,
1481 int stat = NC_check_id(ncid, &ncp);
1483 return NC_get_vars(ncid, varid, startp, countp, stridep,
1546 const size_t * countp,
const ptrdiff_t * stridep,
1547 const ptrdiff_t * imapp,
void *ip)
1552 if ((stat = NC_check_id(ncid, &ncp)))
1554 return ncp->dispatch->get_varm(ncid, varid, startp, countp,
1555 stridep, imapp, ip,
NC_NAT);
1560 const size_t *startp,
const size_t *countp,
1561 const ptrdiff_t *stridep,
1562 const ptrdiff_t *imapp,
signed char *ip)
1565 int stat = NC_check_id(ncid, &ncp);
1568 stridep, imapp, (
void *)ip,
NC_BYTE);
1573 const size_t *startp,
const size_t *countp,
1574 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1578 int stat = NC_check_id(ncid, &ncp);
1580 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_uchar);
1585 const size_t *countp,
const ptrdiff_t *stridep,
1586 const ptrdiff_t *imapp,
short *ip)
1589 int stat = NC_check_id(ncid, &ncp);
1596 const size_t *startp,
const size_t *countp,
1597 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1601 int stat = NC_check_id(ncid, &ncp);
1608 const size_t *startp,
const size_t *countp,
1609 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1613 int stat = NC_check_id(ncid, &ncp);
1615 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_long);
1620 const size_t *startp,
const size_t *countp,
1621 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1625 int stat = NC_check_id(ncid, &ncp);
1627 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_float);
1632 const size_t *startp,
const size_t *countp,
1633 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1637 int stat = NC_check_id(ncid, &ncp);
1639 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_double);
1644 const size_t *startp,
const size_t *countp,
1645 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1649 int stat = NC_check_id(ncid, &ncp);
1651 return NC_get_varm(ncid,varid,startp,countp,stridep,
1652 imapp, (
void *)ip, T_ubyte);
1657 const size_t *startp,
const size_t *countp,
1658 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1662 int stat = NC_check_id(ncid, &ncp);
1664 return NC_get_varm(ncid, varid, startp, countp, stridep,
1665 imapp, (
void *)ip, T_ushort);
1670 const size_t *startp,
const size_t *countp,
1671 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1675 int stat = NC_check_id(ncid, &ncp);
1678 stridep, imapp, (
void *)ip, T_uint);
1683 const size_t *countp,
const ptrdiff_t *stridep,
1684 const ptrdiff_t *imapp,
long long *ip)
1687 int stat = NC_check_id(ncid, &ncp);
1689 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1690 (
void *)ip, T_longlong);
1695 const size_t *startp,
const size_t *countp,
1696 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1697 unsigned long long *ip)
1700 int stat = NC_check_id(ncid, &ncp);
1702 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1708 const size_t *countp,
const ptrdiff_t *stridep,
1709 const ptrdiff_t *imapp,
char *ip)
1712 int stat = NC_check_id(ncid, &ncp);
1714 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1721 const size_t *countp,
const ptrdiff_t *stridep,
1722 const ptrdiff_t *imapp,
char **ip)
1725 int stat = NC_check_id(ncid, &ncp);
1727 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.
static int NC_get_var(int ncid, int varid, void *value, nc_type memtype)
Get data for 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.
static int NC_get_varm(int ncid, int varid, const size_t *start, const size_t *edges, const ptrdiff_t *stride, const ptrdiff_t *map, void *value, nc_type memtype)
Called by externally visible nc_get_varm_xxx routines.
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.
static int NC_get_vars(int ncid, int varid, const size_t *start, const size_t *edges, const ptrdiff_t *stride, void *value, nc_type memtype)
Called by externally visible nc_get_vars_xxx routines.
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.