9 #include "ncdispatch.h"
12 #ifndef VARS_USES_VARM
33 const size_t* start,
const size_t* edges,
const ptrdiff_t* stride)
39 for(i=0;i<odom->rank;i++) {
40 odom->start[i] = (start != NULL ? start[i] : 0);
41 odom->edges[i] = (edges != NULL ? edges[i] : 1);
42 odom->stride[i] = (stride != NULL ? stride[i] : 1);
43 odom->stop[i] = odom->start[i] + (odom->edges[i]*((size_t)odom->stride[i]));
44 odom->index[i] = odom->start[i];
54 return (odom->index[0] < odom->stop[0]);
64 if(odom->rank == 0)
return 0;
65 for(i=odom->rank-1;i>=0;i--) {
66 odom->index[i] += (size_t)odom->stride[i];
67 if(odom->index[i] < odom->stop[i])
break;
69 odom->index[i] = odom->start[i];
80 NC_get_vara(
int ncid,
int varid,
81 const size_t *start,
const size_t *edges,
85 int stat = NC_check_id(ncid, &ncp);
88 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
96 stat = NC_getshape(ncid,varid,ndims,shape);
98 stat = ncp->dispatch->get_vara(ncid,varid,start,shape,value,memtype);
100 stat = ncp->dispatch->get_vara(ncid,varid,start,edges,value,memtype);
108 NC_get_var(
int ncid,
int varid,
void *value,
nc_type memtype)
113 if(stat)
return stat;
114 stat = NC_getshape(ncid,varid, ndims, shape);
115 if(stat)
return stat;
116 return NC_get_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
124 NCDEFAULT_get_vars(
int ncid,
int varid,
const size_t * start,
125 const size_t * edges,
const ptrdiff_t * stride,
128 #ifdef VARS_USES_VARM
130 int stat = NC_check_id(ncid, &ncp);
133 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
138 int i,simplestride,isrecvar;
145 char* value = (
char*)value0;
153 status = NC_check_id (ncid, &ncp);
154 if(status !=
NC_NOERR)
return status;
157 if(status !=
NC_NOERR)
return status;
159 if(memtype ==
NC_NAT) memtype = vartype;
162 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
163 if(status !=
NC_NOERR)
return status;
165 if(memtype > NC_MAX_ATOMIC_TYPE)
166 memtypelen = (int)vartypelen;
168 memtypelen = nctypelen(memtype);
171 if(vartype != memtype) {
173 if(vartype > NC_MAX_ATOMIC_TYPE
174 || memtype > NC_MAX_ATOMIC_TYPE)
183 if(status !=
NC_NOERR)
return status;
186 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
187 NC_getshape(ncid,varid,rank,varshape);
196 size_t edge1[1] = {1};
197 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
202 for(i=0;i<rank;i++) {
204 mystart[i] = (start == NULL ? 0 : start[i]);
206 if(i == 0 && isrecvar)
207 myedges[i] = numrecs - start[i];
209 myedges[i] = varshape[i] - mystart[i];
211 myedges[i] = edges[i];
214 mystride[i] = (stride == NULL ? 1 : stride[i]);
217 || ((
unsigned long) mystride[i] >= X_INT_MAX))
219 if(mystride[i] != 1) simplestride = 0;
221 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
223 if(mystart[i] >= dimlen)
226 if(mystart[i] + myedges[i] > dimlen)
230 return NC_get_vara(ncid, varid, mystart, myedges, value, memtype);
236 odom_init(&odom,rank,mystart,myedges,mystride);
239 while(odom_more(&odom)) {
242 localstatus = NC_get_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
248 status = localstatus;
250 memptr += memtypelen;
261 NC_get_var1(
int ncid,
int varid,
const size_t *coord,
void* value,
264 return NC_get_vara(ncid, varid, coord, NC_coord_one, value, memtype);
271 NCDEFAULT_get_varm(
int ncid,
int varid,
const size_t *start,
272 const size_t *edges,
const ptrdiff_t *stride,
273 const ptrdiff_t *imapp,
void *value0,
nc_type memtype)
277 int varndims,maxidim;
281 char* value = (
char*)value0;
283 status = NC_check_id (ncid, &ncp);
284 if(status !=
NC_NOERR)
return status;
291 if(status !=
NC_NOERR)
return status;
293 if(vartype > NC_MAX_ATOMIC_TYPE)
297 if(status !=
NC_NOERR)
return status;
300 if(imapp != NULL && varndims != 0) {
305 const ptrdiff_t szof = (ptrdiff_t) nctypelen(vartype);
306 for(ii = 0; ii < varndims; ii++) {
307 if(imapp[ii] % szof != 0) {
311 cvtmap[ii] = imapp[ii] / szof;
323 memtypelen = nctypelen(memtype);
325 maxidim = (int) varndims - 1;
334 size_t edge1[1] = {1};
335 return NC_get_vara(ncid, varid, start, edge1, value, memtype);
344 size_t *mystart = NULL;
356 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
357 NC_getshape(ncid,varid,varndims,varshape);
364 for (idim = 0; idim <= maxidim; ++idim)
366 if (stride[idim] == 0
368 || ((
unsigned long) stride[idim] >= X_INT_MAX))
372 if(stride[idim] != 1) stride1 = 0;
377 if(stride1 && imapp == NULL) {
378 return NC_get_vara(ncid, varid, start, edges, value, memtype);
384 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
386 myedges = mystart + varndims;
387 iocount = myedges + varndims;
388 stop = iocount + varndims;
389 length = stop + varndims;
390 mystride = (ptrdiff_t *)(length + varndims);
391 mymap = mystride + varndims;
396 for (idim = maxidim; idim >= 0; --idim)
398 mystart[idim] = start != NULL
402 if (edges != NULL && edges[idim] == 0)
409 myedges[idim] = edges != NULL
411 : idim == 0 && isrecvar
412 ? numrecs - mystart[idim]
413 : varshape[idim] - mystart[idim];
416 myedges[idim] = edges[idim];
417 else if (idim == 0 && isrecvar)
418 myedges[idim] = numrecs - mystart[idim];
420 myedges[idim] = varshape[idim] - mystart[idim];
423 mystride[idim] = stride != NULL
429 mymap[idim] = (imapp != NULL
431 : (idim == maxidim ? 1
432 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1]));
435 mymap[idim] = imapp[idim];
436 else if (idim == maxidim)
440 mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
443 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
444 stop[idim] = (mystart[idim] + myedges[idim] * (size_t)mystride[idim]);
450 for (idim = maxidim; idim >= 0; --idim)
453 idim == 0 && isrecvar
456 if (mystart[idim] >= dimlen)
462 if (mystart[idim] + myedges[idim] > dimlen)
478 if (mystride[maxidim] == 1
479 && mymap[maxidim] == 1)
481 iocount[maxidim] = myedges[maxidim];
482 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
483 mymap[maxidim] = (ptrdiff_t) length[maxidim];
492 int lstatus = NC_get_vara(ncid, varid, mystart, iocount,
506 value += (((int)mymap[idim]) * memtypelen);
507 mystart[idim] += (size_t)mystride[idim];
508 if (mystart[idim] == stop[idim])
510 size_t l = (length[idim] * (size_t)memtypelen);
512 mystart[idim] = start[idim];
528 NC_get_vars(
int ncid,
int varid,
const size_t *start,
529 const size_t *edges,
const ptrdiff_t *stride,
void *value,
533 int stat = NC_check_id(ncid, &ncp);
537 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
539 return ncp->dispatch->get_vars(ncid,varid,start,edges,stride,value,memtype);
547 NC_get_varm(
int ncid,
int varid,
const size_t *start,
548 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
552 int stat = NC_check_id(ncid, &ncp);
556 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
558 return ncp->dispatch->get_varm(ncid,varid,start,edges,stride,map,value,memtype);
642 const size_t *countp,
void *ip)
646 int stat = NC_check_id(ncid, &ncp);
650 return NC_get_vara(ncid, varid, startp, countp, ip, xtype);
655 const size_t *countp,
char *ip)
658 int stat = NC_check_id(ncid, &ncp);
660 return NC_get_vara(ncid, varid, startp, countp,
666 const size_t *countp,
signed char *ip)
669 int stat = NC_check_id(ncid, &ncp);
671 return NC_get_vara(ncid, varid, startp, countp,
677 const size_t *countp,
unsigned char *ip)
680 int stat = NC_check_id(ncid, &ncp);
682 return NC_get_vara(ncid, varid, startp, countp,
683 (
void *)ip, T_uchar);
688 const size_t *countp,
short *ip)
691 int stat = NC_check_id(ncid, &ncp);
693 return NC_get_vara(ncid, varid, startp, countp,
699 const size_t *startp,
const size_t *countp,
int *ip)
702 int stat = NC_check_id(ncid, &ncp);
704 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_INT);
709 const size_t *startp,
const size_t *countp,
long *ip)
712 int stat = NC_check_id(ncid, &ncp);
714 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_long);
719 const size_t *startp,
const size_t *countp,
float *ip)
722 int stat = NC_check_id(ncid, &ncp);
724 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_float);
730 const size_t *countp,
double *ip)
733 int stat = NC_check_id(ncid, &ncp);
735 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_double);
740 const size_t *startp,
const size_t *countp,
unsigned char *ip)
743 int stat = NC_check_id(ncid, &ncp);
745 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ubyte);
750 const size_t *startp,
const size_t *countp,
unsigned short *ip)
753 int stat = NC_check_id(ncid, &ncp);
755 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_ushort);
760 const size_t *startp,
const size_t *countp,
unsigned int *ip)
763 int stat = NC_check_id(ncid, &ncp);
765 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_uint);
770 const size_t *startp,
const size_t *countp,
long long *ip)
773 int stat = NC_check_id(ncid, &ncp);
775 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,T_longlong);
780 const size_t *startp,
const size_t *countp,
unsigned long long *ip)
783 int stat = NC_check_id(ncid, &ncp);
785 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_UINT64);
791 const size_t *startp,
const size_t *countp,
char* *ip)
794 int stat = NC_check_id(ncid, &ncp);
796 return NC_get_vara(ncid,varid,startp,countp, (
void *)ip,
NC_STRING);
839 return NC_get_var1(ncid, varid, indexp, ip,
NC_NAT);
846 int stat = NC_check_id(ncid, &ncp);
848 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_CHAR);
855 int stat = NC_check_id(ncid, &ncp);
857 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_BYTE);
864 int stat = NC_check_id(ncid, &ncp);
866 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
873 int stat = NC_check_id(ncid, &ncp);
875 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_SHORT);
882 int stat = NC_check_id(ncid, &ncp);
884 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT);
892 int stat = NC_check_id(ncid, &ncp);
894 return NC_get_var1(ncid, varid, indexp, (
void *)ip, longtype);
902 int stat = NC_check_id(ncid, &ncp);
904 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_FLOAT);
912 int stat = NC_check_id(ncid, &ncp);
914 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_DOUBLE);
922 int stat = NC_check_id(ncid, &ncp);
924 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UBYTE);
932 int stat = NC_check_id(ncid, &ncp);
934 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_USHORT);
942 int stat = NC_check_id(ncid, &ncp);
944 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT);
952 int stat = NC_check_id(ncid, &ncp);
954 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_INT64);
959 unsigned long long *ip)
962 int stat = NC_check_id(ncid, &ncp);
964 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_UINT64);
972 int stat = NC_check_id(ncid, &ncp);
974 return NC_get_var1(ncid, varid, indexp, (
void *)ip,
NC_STRING);
1025 return NC_get_var(ncid, varid, ip,
NC_NAT);
1032 int stat = NC_check_id(ncid, &ncp);
1034 return NC_get_var(ncid, varid, (
void *)ip,
NC_CHAR);
1041 int stat = NC_check_id(ncid, &ncp);
1043 return NC_get_var(ncid, varid, (
void *)ip,
NC_BYTE);
1050 int stat = NC_check_id(ncid, &ncp);
1052 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1059 int stat = NC_check_id(ncid, &ncp);
1061 return NC_get_var(ncid, varid, (
void *)ip,
NC_SHORT);
1068 int stat = NC_check_id(ncid, &ncp);
1070 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT);
1077 int stat = NC_check_id(ncid, &ncp);
1079 return NC_get_var(ncid,varid, (
void *)ip, longtype);
1086 int stat = NC_check_id(ncid, &ncp);
1088 return NC_get_var(ncid,varid, (
void *)ip,
NC_FLOAT);
1095 int stat = NC_check_id(ncid, &ncp);
1097 return NC_get_var(ncid,varid, (
void *)ip,
NC_DOUBLE);
1104 int stat = NC_check_id(ncid, &ncp);
1106 return NC_get_var(ncid,varid, (
void *)ip,
NC_UBYTE);
1113 int stat = NC_check_id(ncid, &ncp);
1115 return NC_get_var(ncid,varid, (
void *)ip,
NC_USHORT);
1122 int stat = NC_check_id(ncid, &ncp);
1124 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT);
1131 int stat = NC_check_id(ncid, &ncp);
1133 return NC_get_var(ncid,varid, (
void *)ip,
NC_INT64);
1140 int stat = NC_check_id(ncid, &ncp);
1142 return NC_get_var(ncid,varid, (
void *)ip,
NC_UINT64);
1150 int stat = NC_check_id(ncid, &ncp);
1152 return NC_get_var(ncid,varid, (
void *)ip,
NC_STRING);
1199 const size_t * countp,
const ptrdiff_t * stridep,
1205 if ((stat = NC_check_id(ncid, &ncp)))
1207 return ncp->dispatch->get_vars(ncid, varid, startp, countp, stridep,
1213 const size_t *countp,
const ptrdiff_t * stridep,
1217 int stat = NC_check_id(ncid, &ncp);
1219 return NC_get_vars(ncid,varid,startp, countp, stridep,
1225 const size_t *countp,
const ptrdiff_t * stridep,
1229 int stat = NC_check_id(ncid, &ncp);
1231 return NC_get_vars(ncid,varid,startp, countp, stridep,
1237 const size_t *countp,
const ptrdiff_t * stridep,
1241 int stat = NC_check_id(ncid, &ncp);
1243 return NC_get_vars(ncid,varid,startp, countp, stridep,
1244 (
void *)ip, T_uchar);
1249 const size_t *countp,
const ptrdiff_t *stridep,
1253 int stat = NC_check_id(ncid, &ncp);
1255 return NC_get_vars(ncid,varid,startp, countp, stridep,
1261 const size_t *countp,
const ptrdiff_t * stridep,
1265 int stat = NC_check_id(ncid, &ncp);
1267 return NC_get_vars(ncid,varid,startp, countp, stridep,
1273 const size_t *countp,
const ptrdiff_t * stridep,
1277 int stat = NC_check_id(ncid, &ncp);
1279 return NC_get_vars(ncid,varid,startp, countp, stridep,
1280 (
void *)ip, T_long);
1285 const size_t *countp,
const ptrdiff_t * stridep,
1289 int stat = NC_check_id(ncid, &ncp);
1291 return NC_get_vars(ncid,varid,startp, countp, stridep,
1292 (
void *)ip, T_float);
1297 const size_t *countp,
const ptrdiff_t * stridep,
1301 int stat = NC_check_id(ncid, &ncp);
1303 return NC_get_vars(ncid,varid,startp, countp, stridep,
1304 (
void *)ip, T_double);
1309 const size_t *countp,
const ptrdiff_t * stridep,
1313 int stat = NC_check_id(ncid, &ncp);
1315 return NC_get_vars(ncid,varid, startp, countp, stridep,
1316 (
void *)ip, T_ubyte);
1321 const size_t *countp,
const ptrdiff_t * stridep,
1325 int stat = NC_check_id(ncid, &ncp);
1327 return NC_get_vars(ncid,varid,startp,countp, stridep,
1328 (
void *)ip, T_ushort);
1333 const size_t *countp,
const ptrdiff_t * stridep,
1337 int stat = NC_check_id(ncid, &ncp);
1339 return NC_get_vars(ncid,varid,startp, countp, stridep,
1340 (
void *)ip, T_uint);
1345 const size_t *countp,
const ptrdiff_t * stridep,
1349 int stat = NC_check_id(ncid, &ncp);
1351 return NC_get_vars(ncid, varid, startp, countp, stridep,
1352 (
void *)ip, T_longlong);
1357 const size_t *countp,
const ptrdiff_t * stridep,
1358 unsigned long long *ip)
1361 int stat = NC_check_id(ncid, &ncp);
1363 return NC_get_vars(ncid, varid, startp, countp, stridep,
1370 const size_t *startp,
const size_t *countp,
1371 const ptrdiff_t * stridep,
1375 int stat = NC_check_id(ncid, &ncp);
1377 return NC_get_vars(ncid, varid, startp, countp, stridep,
1440 const size_t * countp,
const ptrdiff_t * stridep,
1441 const ptrdiff_t * imapp,
void *ip)
1446 if ((stat = NC_check_id(ncid, &ncp)))
1448 return ncp->dispatch->get_varm(ncid, varid, startp, countp,
1449 stridep, imapp, ip,
NC_NAT);
1454 const size_t *startp,
const size_t *countp,
1455 const ptrdiff_t *stridep,
1456 const ptrdiff_t *imapp,
signed char *ip)
1459 int stat = NC_check_id(ncid, &ncp);
1461 return NC_get_varm(ncid, varid, startp, countp,
1462 stridep, imapp, (
void *)ip,
NC_BYTE);
1467 const size_t *startp,
const size_t *countp,
1468 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1472 int stat = NC_check_id(ncid, &ncp);
1474 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_uchar);
1479 const size_t *countp,
const ptrdiff_t *stridep,
1480 const ptrdiff_t *imapp,
short *ip)
1483 int stat = NC_check_id(ncid, &ncp);
1485 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_SHORT);
1490 const size_t *startp,
const size_t *countp,
1491 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1495 int stat = NC_check_id(ncid, &ncp);
1497 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,
NC_INT);
1502 const size_t *startp,
const size_t *countp,
1503 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1507 int stat = NC_check_id(ncid, &ncp);
1509 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_long);
1514 const size_t *startp,
const size_t *countp,
1515 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1519 int stat = NC_check_id(ncid, &ncp);
1521 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_float);
1526 const size_t *startp,
const size_t *countp,
1527 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1531 int stat = NC_check_id(ncid, &ncp);
1533 return NC_get_varm(ncid,varid,startp,countp,stridep,imapp, (
void *)ip,T_double);
1538 const size_t *startp,
const size_t *countp,
1539 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1543 int stat = NC_check_id(ncid, &ncp);
1545 return NC_get_varm(ncid,varid,startp,countp,stridep,
1546 imapp, (
void *)ip, T_ubyte);
1551 const size_t *startp,
const size_t *countp,
1552 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1556 int stat = NC_check_id(ncid, &ncp);
1558 return NC_get_varm(ncid, varid, startp, countp, stridep,
1559 imapp, (
void *)ip, T_ushort);
1564 const size_t *startp,
const size_t *countp,
1565 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1569 int stat = NC_check_id(ncid, &ncp);
1571 return NC_get_varm(ncid, varid, startp, countp,
1572 stridep, imapp, (
void *)ip, T_uint);
1577 const size_t *countp,
const ptrdiff_t *stridep,
1578 const ptrdiff_t *imapp,
long long *ip)
1581 int stat = NC_check_id(ncid, &ncp);
1583 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1584 (
void *)ip, T_longlong);
1589 const size_t *startp,
const size_t *countp,
1590 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1591 unsigned long long *ip)
1594 int stat = NC_check_id(ncid, &ncp);
1596 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1602 const size_t *countp,
const ptrdiff_t *stridep,
1603 const ptrdiff_t *imapp,
char *ip)
1606 int stat = NC_check_id(ncid, &ncp);
1608 return NC_get_varm(ncid, varid, startp, countp, stridep, imapp,
1615 const size_t *countp,
const ptrdiff_t *stridep,
1616 const ptrdiff_t *imapp,
char **ip)
1619 int stat = NC_check_id(ncid, &ncp);
1621 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.