8 #include "ncdispatch.h"
11 #ifndef VARS_USES_VARM
22 odom_init(
struct PUTodometer* odom,
24 const size_t* start,
const size_t* edges,
const ptrdiff_t* stride)
27 memset(odom,0,
sizeof(
struct PUTodometer));
30 for(i=0;i<odom->rank;i++) {
31 odom->start[i] = (start != NULL ? start[i] : 0);
32 odom->edges[i] = (edges != NULL ? edges[i] : 1);
33 odom->stride[i] = (stride != NULL ? stride[i] : 1);
34 odom->stop[i] = odom->start[i] + (odom->edges[i]*(size_t)odom->stride[i]);
35 odom->index[i] = odom->start[i];
40 odom_more(
struct PUTodometer* odom)
42 return (odom->index[0] < odom->stop[0]);
46 odom_next(
struct PUTodometer* odom)
49 if(odom->rank == 0)
return 0;
50 for(i=odom->rank-1;i>=0;i--) {
51 odom->index[i] += (size_t)odom->stride[i];
52 if(odom->index[i] < odom->stop[i])
break;
54 odom->index[i] = odom->start[i];
64 NC_put_vara(
int ncid,
int varid,
const size_t *start,
65 const size_t *edges,
const void *value,
nc_type memtype)
68 int stat = NC_check_id(ncid, &ncp);
75 stat = NC_getshape(ncid, varid, ndims, shape);
77 return ncp->dispatch->put_vara(ncid, varid, start, shape, value, memtype);
79 return ncp->dispatch->put_vara(ncid, varid, start, edges, value, memtype);
86 NC_put_var(
int ncid,
int varid,
const void *value,
nc_type memtype)
92 stat = NC_getshape(ncid,varid, ndims, shape);
94 return NC_put_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
101 NC_put_var1(
int ncid,
int varid,
const size_t *coord,
const void* value,
104 return NC_put_vara(ncid, varid, coord, NC_coord_one, value, memtype);
111 NCDEFAULT_put_vars(
int ncid,
int varid,
const size_t * start,
112 const size_t * edges,
const ptrdiff_t * stride,
113 const void *value0,
nc_type memtype)
115 #ifdef VARS_USES_VARM
117 int stat = NC_check_id(ncid, &ncp);
120 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
125 int i,isstride1,isrecvar;
127 struct PUTodometer odom;
132 const char* value = (
const char*)value0;
140 const char* memptr = value;
142 status = NC_check_id (ncid, &ncp);
143 if(status !=
NC_NOERR)
return status;
146 if(status !=
NC_NOERR)
return status;
148 if(memtype ==
NC_NAT) memtype = vartype;
151 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
152 if(status !=
NC_NOERR)
return status;
154 if(memtype > NC_MAX_ATOMIC_TYPE)
155 memtypelen = (int)vartypelen;
157 memtypelen = nctypelen(memtype);
160 if(vartype != memtype) {
162 if(vartype > NC_MAX_ATOMIC_TYPE
163 || memtype > NC_MAX_ATOMIC_TYPE)
172 if(status !=
NC_NOERR)
return status;
176 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
178 status = NC_inq_recvar(ncid,varid,&nrecdims,is_recdim);
179 if(status !=
NC_NOERR)
return status;
180 isrecvar = (nrecdims > 0);
181 NC_getshape(ncid,varid,rank,varshape);
190 size_t edge1[1] = {1};
191 return NC_put_vara(ncid, varid, start, edge1, value0, memtype);
196 for(i=0;i<rank;i++) {
198 mystart[i] = (start == NULL ? 0 : start[i]);
201 if(i == 0 && isrecvar)
202 myedges[i] = numrecs - start[i];
204 if(is_recdim[i] && isrecvar)
205 myedges[i] = varshape[i] - start[i];
208 myedges[i] = varshape[i] - mystart[i];
210 myedges[i] = edges[i];
213 mystride[i] = (stride == NULL ? 1 : stride[i]);
216 || ((
unsigned long) mystride[i] >= X_INT_MAX))
218 if(mystride[i] != 1) isstride1 = 0;
221 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
222 if(i == 0 && isrecvar) {}
224 dimlen = varshape[i];
229 if(mystart[i] > dimlen)
232 if(mystart[i] + myedges[i] > dimlen)
237 return NC_put_vara(ncid, varid, mystart, myedges, value, memtype);
246 odom_init(&odom,rank,mystart,myedges,mystride);
249 while(odom_more(&odom)) {
252 localstatus = NC_put_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
258 status = localstatus;
260 memptr += memtypelen;
274 const size_t * start,
275 const size_t * edges,
276 const ptrdiff_t * stride,
277 const ptrdiff_t * imapp,
287 const char* value = (
char*)value0;
289 status = NC_check_id (ncid, &ncp);
290 if(status !=
NC_NOERR)
return status;
299 if(status !=
NC_NOERR)
return status;
301 if(vartype > NC_MAX_ATOMIC_TYPE)
305 if(status !=
NC_NOERR)
return status;
316 memtypelen = nctypelen(memtype);
318 maxidim = (int) varndims - 1;
327 size_t edge1[1] = {1};
328 return NC_put_vara(ncid, varid, start, edge1, value, memtype);
337 size_t *mystart = NULL;
342 ptrdiff_t *mystride = 0;
354 for (idim = 0; idim <= maxidim; ++idim) {
355 if ((stride[idim] == 0)
357 || ((
unsigned long) stride[idim] >= X_INT_MAX))
361 if(stride[idim] != 1) stride1 = 0;
368 if(stride1 && imapp == NULL) {
369 return NC_put_vara(ncid, varid, start, edges, value, memtype);
373 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
374 NC_getshape(ncid,varid,varndims,varshape);
377 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
379 myedges = mystart + varndims;
380 iocount = myedges + varndims;
381 stop = iocount + varndims;
382 length = stop + varndims;
383 mystride = (ptrdiff_t *)(length + varndims);
384 mymap = mystride + varndims;
389 for (idim = maxidim; idim >= 0; --idim)
391 mystart[idim] = start != NULL
395 if (edges != NULL && edges[idim] == 0)
401 myedges[idim] = edges != NULL
403 : idim == 0 && isrecvar
404 ? numrecs - mystart[idim]
405 : varshape[idim] - mystart[idim];
406 mystride[idim] = stride != NULL
409 mymap[idim] = imapp != NULL
413 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
416 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
417 stop[idim] = mystart[idim] + myedges[idim] * (size_t)mystride[idim];
423 for (idim = isrecvar; idim < maxidim; ++idim)
425 if (mystart[idim] > varshape[idim])
430 if (mystart[idim] + myedges[idim] > varshape[idim])
444 if (mystride[maxidim] == 1
445 && mymap[maxidim] == 1)
447 iocount[maxidim] = myedges[maxidim];
448 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
449 mymap[maxidim] = (ptrdiff_t) length[maxidim];
458 int lstatus = NC_put_vara(ncid, varid, mystart, iocount,
473 value += (mymap[idim] * memtypelen);
474 mystart[idim] += (size_t)mystride[idim];
475 if (mystart[idim] == stop[idim])
477 size_t l = (length[idim] * (size_t)memtypelen);
479 mystart[idim] = start[idim];
495 NC_put_vars(
int ncid,
int varid,
const size_t *start,
496 const size_t *edges,
const ptrdiff_t *stride,
497 const void *value,
nc_type memtype)
500 int stat = NC_check_id(ncid, &ncp);
504 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
506 return ncp->dispatch->put_vars(ncid,varid,start,edges,stride,value,memtype);
513 NC_put_varm(
int ncid,
int varid,
const size_t *start,
514 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
515 const void *value,
nc_type memtype)
518 int stat = NC_check_id(ncid, &ncp);
522 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
524 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,map,value,memtype);
574 const size_t *countp,
const void *op)
577 int stat = NC_check_id(ncid, &ncp);
582 return NC_put_vara(ncid, varid, startp, countp, op, xtype);
587 const size_t *countp,
const char *op)
589 return NC_put_vara(ncid, varid, startp, countp,
595 const size_t *countp,
const signed char *op)
598 int stat = NC_check_id(ncid, &ncp);
600 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
606 const size_t *countp,
const unsigned char *op)
609 int stat = NC_check_id(ncid, &ncp);
611 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
617 const size_t *countp,
const short *op)
620 int stat = NC_check_id(ncid, &ncp);
622 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
628 const size_t *countp,
const int *op)
631 int stat = NC_check_id(ncid, &ncp);
633 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
639 const size_t *countp,
const long *op)
642 int stat = NC_check_id(ncid, &ncp);
644 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
650 const size_t *countp,
const float *op)
653 int stat = NC_check_id(ncid, &ncp);
655 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
661 const size_t *countp,
const double *op)
664 int stat = NC_check_id(ncid, &ncp);
666 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
672 const size_t *countp,
const unsigned char *op)
675 int stat = NC_check_id(ncid, &ncp);
677 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
683 const size_t *countp,
const unsigned short *op)
686 int stat = NC_check_id(ncid, &ncp);
688 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
694 const size_t *countp,
const unsigned int *op)
697 int stat = NC_check_id(ncid, &ncp);
699 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
705 const size_t *countp,
const long long *op)
708 int stat = NC_check_id(ncid, &ncp);
710 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
716 const size_t *countp,
const unsigned long long *op)
719 int stat = NC_check_id(ncid, &ncp);
721 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
728 const size_t *countp,
const char* *op)
731 int stat = NC_check_id(ncid, &ncp);
733 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
763 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
765 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
772 int stat = NC_check_id(ncid, &ncp);
774 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
781 int stat = NC_check_id(ncid, &ncp);
783 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
790 int stat = NC_check_id(ncid, &ncp);
792 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
799 int stat = NC_check_id(ncid, &ncp);
801 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
808 int stat = NC_check_id(ncid, &ncp);
810 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
817 int stat = NC_check_id(ncid, &ncp);
819 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
826 int stat = NC_check_id(ncid, &ncp);
828 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
835 int stat = NC_check_id(ncid, &ncp);
837 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
844 int stat = NC_check_id(ncid, &ncp);
846 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
853 int stat = NC_check_id(ncid, &ncp);
855 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
862 int stat = NC_check_id(ncid, &ncp);
864 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
871 int stat = NC_check_id(ncid, &ncp);
873 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
880 int stat = NC_check_id(ncid, &ncp);
882 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
890 int stat = NC_check_id(ncid, &ncp);
892 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
946 return NC_put_var(ncid, varid, op,
NC_NAT);
953 int stat = NC_check_id(ncid, &ncp);
955 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
962 int stat = NC_check_id(ncid, &ncp);
964 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
971 int stat = NC_check_id(ncid, &ncp);
973 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
980 int stat = NC_check_id(ncid, &ncp);
982 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
989 int stat = NC_check_id(ncid, &ncp);
991 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
998 int stat = NC_check_id(ncid, &ncp);
1000 return NC_put_var(ncid,varid,(
void*)op,T_long);
1007 int stat = NC_check_id(ncid, &ncp);
1009 return NC_put_var(ncid,varid,(
void*)op,T_float);
1016 int stat = NC_check_id(ncid, &ncp);
1018 return NC_put_var(ncid,varid,(
void*)op,T_double);
1025 int stat = NC_check_id(ncid, &ncp);
1027 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
1034 int stat = NC_check_id(ncid, &ncp);
1036 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
1043 int stat = NC_check_id(ncid, &ncp);
1045 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1052 int stat = NC_check_id(ncid, &ncp);
1054 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1061 int stat = NC_check_id(ncid, &ncp);
1063 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1071 int stat = NC_check_id(ncid, &ncp);
1073 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1110 const size_t *countp,
const ptrdiff_t *stridep,
1116 if ((stat = NC_check_id(ncid, &ncp)))
1118 return ncp->dispatch->put_vars(ncid, varid, startp, countp,
1124 const size_t *countp,
const ptrdiff_t *stridep,
1128 int stat = NC_check_id(ncid, &ncp);
1130 return NC_put_vars(ncid, varid, startp, countp,
1136 const size_t *countp,
const ptrdiff_t *stridep,
1137 const signed char *op)
1140 int stat = NC_check_id(ncid, &ncp);
1142 return NC_put_vars(ncid, varid, startp, countp,
1148 const size_t *startp,
const size_t *countp,
1149 const ptrdiff_t *stridep,
1150 const unsigned char *op)
1153 int stat = NC_check_id(ncid, &ncp);
1155 return NC_put_vars(ncid, varid, startp, countp,
1156 stridep, (
void *)op, T_uchar);
1161 const size_t *startp,
const size_t *countp,
1162 const ptrdiff_t *stridep,
1166 int stat = NC_check_id(ncid, &ncp);
1168 return NC_put_vars(ncid, varid, startp, countp,
1174 const size_t *startp,
const size_t *countp,
1175 const ptrdiff_t *stridep,
1179 int stat = NC_check_id(ncid, &ncp);
1181 return NC_put_vars(ncid, varid, startp, countp,
1182 stridep, (
void *)op,
NC_INT);
1187 const size_t *startp,
const size_t *countp,
1188 const ptrdiff_t *stridep,
1192 int stat = NC_check_id(ncid, &ncp);
1194 return NC_put_vars(ncid, varid, startp, countp,
1195 stridep, (
void *)op, T_long);
1200 const size_t *startp,
const size_t *countp,
1201 const ptrdiff_t *stridep,
1205 int stat = NC_check_id(ncid, &ncp);
1207 return NC_put_vars(ncid, varid, startp, countp,
1208 stridep, (
void *)op, T_float);
1213 const size_t *startp,
const size_t *countp,
1214 const ptrdiff_t *stridep,
1218 int stat = NC_check_id(ncid, &ncp);
1220 return NC_put_vars(ncid, varid, startp, countp,
1221 stridep, (
void *)op, T_double);
1226 const size_t *startp,
const size_t *countp,
1227 const ptrdiff_t *stridep,
1228 const unsigned char *op)
1231 int stat = NC_check_id(ncid, &ncp);
1233 return NC_put_vars(ncid, varid, startp, countp,
1234 stridep, (
void *)op, T_ubyte);
1239 const size_t *startp,
const size_t *countp,
1240 const ptrdiff_t *stridep,
1241 const unsigned short *op)
1244 int stat = NC_check_id(ncid, &ncp);
1246 return NC_put_vars(ncid, varid, startp, countp,
1247 stridep, (
void *)op, T_ushort);
1252 const size_t *startp,
const size_t *countp,
1253 const ptrdiff_t *stridep,
1254 const unsigned int *op)
1257 int stat = NC_check_id(ncid, &ncp);
1259 return NC_put_vars(ncid, varid, startp, countp,
1260 stridep, (
void *)op, T_uint);
1265 const size_t *startp,
const size_t *countp,
1266 const ptrdiff_t *stridep,
1267 const long long *op)
1270 int stat = NC_check_id(ncid, &ncp);
1272 return NC_put_vars(ncid, varid, startp, countp,
1273 stridep, (
void *)op, T_longlong);
1278 const size_t *startp,
const size_t *countp,
1279 const ptrdiff_t *stridep,
1280 const unsigned long long *op)
1283 int stat = NC_check_id(ncid, &ncp);
1285 return NC_put_vars(ncid, varid, startp, countp,
1292 const size_t *startp,
const size_t *countp,
1293 const ptrdiff_t *stridep,
1297 int stat = NC_check_id(ncid, &ncp);
1299 return NC_put_vars(ncid, varid, startp, countp, stridep,
1350 const size_t *countp,
const ptrdiff_t *stridep,
1351 const ptrdiff_t *imapp,
const void *op)
1356 if ((stat = NC_check_id(ncid, &ncp)))
1358 return ncp->dispatch->put_varm(ncid, varid, startp, countp,
1359 stridep, imapp, op,
NC_NAT);
1364 const size_t *countp,
const ptrdiff_t *stridep,
1365 const ptrdiff_t *imapp,
const char *op)
1368 int stat = NC_check_id(ncid, &ncp);
1370 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1376 const size_t *startp,
const size_t *countp,
1377 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1378 const signed char *op)
1381 int stat = NC_check_id(ncid, &ncp);
1383 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1389 const size_t *startp,
const size_t *countp,
1390 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1391 const unsigned char *op)
1394 int stat = NC_check_id(ncid, &ncp);
1396 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1397 (
void *)op, T_uchar);
1402 const size_t *startp,
const size_t *countp,
1403 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1407 int stat = NC_check_id(ncid, &ncp);
1409 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1415 const size_t *startp,
const size_t *countp,
1416 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1420 int stat = NC_check_id(ncid, &ncp);
1422 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1428 const size_t *startp,
const size_t *countp,
1429 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1433 int stat = NC_check_id(ncid, &ncp);
1435 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1436 (
void *)op, T_long);
1441 const size_t *startp,
const size_t *countp,
1442 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1446 int stat = NC_check_id(ncid, &ncp);
1448 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1449 (
void *)op, T_float);
1454 const size_t *startp,
const size_t *countp,
1455 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1459 int stat = NC_check_id(ncid, &ncp);
1461 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1462 (
void *)op, T_double);
1467 const size_t *startp,
const size_t *countp,
1468 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1469 const unsigned char *op)
1472 int stat = NC_check_id(ncid, &ncp);
1474 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1475 (
void *)op, T_ubyte);
1480 const size_t *startp,
const size_t *countp,
1481 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1482 const unsigned short *op)
1485 int stat = NC_check_id(ncid, &ncp);
1487 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1488 (
void *)op, T_ushort);
1493 const size_t *startp,
const size_t *countp,
1494 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1495 const unsigned int *op)
1498 int stat = NC_check_id(ncid, &ncp);
1500 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1501 (
void *)op, T_uint);
1506 const size_t *startp,
const size_t *countp,
1507 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1508 const long long *op)
1511 int stat = NC_check_id(ncid, &ncp);
1513 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1514 (
void *)op, T_longlong);
1519 const size_t *startp,
const size_t *countp,
1520 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1521 const unsigned long long *op)
1524 int stat = NC_check_id(ncid, &ncp);
1526 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1533 const size_t *startp,
const size_t *countp,
1534 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1538 int stat = NC_check_id(ncid, &ncp);
1540 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
int nc_put_var_long(int ncid, int varid, const long *op)
Write an entire variable with one call.
#define NC_ENOMEM
Memory allocation (malloc) failure.
int nc_put_varm_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const unsigned char *op)
Write a mapped array of values to a variable.
int nc_put_vars_double(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const double *op)
Write a strided array of values to a variable.
#define NC_CHAR
ISO/ASCII character.
int nc_put_vars_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const unsigned char *op)
Write a strided array of values to a variable.
int nc_put_vara_schar(int ncid, int varid, const size_t *startp, const size_t *countp, const signed char *op)
Write an array of values to a variable.
int nc_put_var1_string(int ncid, int varid, const size_t *indexp, const char **op)
Write one datum.
int nc_put_vars_uint(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const unsigned int *op)
Write a strided array of values to 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_put_vara_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, const unsigned char *op)
Write an array of values to a variable.
#define NC_UINT
unsigned 4-byte int
int nc_put_var_uint(int ncid, int varid, const unsigned int *op)
Write an entire variable with one call.
int nc_put_vars_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const long long *op)
Write a strided array of values to a variable.
int nc_put_vara_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, const long long *op)
Write an array of values to a variable.
int nc_put_var_ulonglong(int ncid, int varid, const unsigned long long *op)
Write an entire variable with one call.
int nc_put_varm_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const unsigned short *op)
Write a mapped array of values to a variable.
int nc_put_vars_int(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const int *op)
Write a strided array of values to a variable.
#define NC_EINVALCOORDS
Index exceeds dimension bound.
int nc_put_vars_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const unsigned char *op)
Write a strided array of values to a variable.
int nc_put_vars_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const unsigned short *op)
Write a strided array of values to a variable.
int nc_put_var_schar(int ncid, int varid, const signed char *op)
Write an entire variable with one call.
int nc_put_vara_double(int ncid, int varid, const size_t *startp, const size_t *countp, const double *op)
Write an array of values to a variable.
int nc_put_var_int(int ncid, int varid, const int *op)
Write an entire variable with one call.
int nc_put_var1_uchar(int ncid, int varid, const size_t *indexp, const unsigned char *op)
Write one datum.
int nc_put_vara_float(int ncid, int varid, const size_t *startp, const size_t *countp, const float *op)
Write an array of values to a variable.
#define NC_INT64
signed 8-byte int
int nc_put_var(int ncid, int varid, const void *op)
Write an entire variable with one call.
int nc_put_var1_ushort(int ncid, int varid, const size_t *indexp, const unsigned short *op)
Write one datum.
int nc_put_vara(int ncid, int varid, const size_t *startp, const size_t *countp, const void *op)
Write an array of values to a variable.
#define NC_DOUBLE
double precision floating point number
EXTERNL int nc_inq_varndims(int ncid, int varid, int *ndimsp)
Learn how many dimensions are associated with a variable.
int nc_put_var1_double(int ncid, int varid, const size_t *indexp, const double *op)
Write one datum.
int nc_put_varm(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const void *op)
Write a mapped array of values to a variable.
int nc_put_vars_short(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const short *op)
Write a strided array of values to a variable.
int nc_type
The nc_type type is just an int.
int nc_put_varm_int(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const int *op)
Write a mapped array of values to a variable.
int nc_put_vars(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const void *op)
Write a strided array of values to a variable.
int nc_put_var_string(int ncid, int varid, const char **op)
Write an entire variable with one call.
int nc_put_vara_short(int ncid, int varid, const size_t *startp, const size_t *countp, const short *op)
Write an array of values to a variable.
#define NC_BYTE
signed 1 byte integer
int nc_put_vara_uint(int ncid, int varid, const size_t *startp, const size_t *countp, const unsigned int *op)
Write an array of values to a variable.
int nc_put_varm_short(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const short *op)
Write a mapped array of values to a variable.
int nc_put_var_ubyte(int ncid, int varid, const unsigned char *op)
Write an entire variable with one call.
int nc_put_vars_float(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const float *op)
Write a strided array of values to a variable.
int nc_put_vara_string(int ncid, int varid, const size_t *startp, const size_t *countp, const char **op)
Write an array of values to a variable.
int nc_put_vara_text(int ncid, int varid, const size_t *startp, const size_t *countp, const char *op)
Write an array of values to a variable.
int nc_put_var1_float(int ncid, int varid, const size_t *indexp, const float *op)
Write one datum.
int nc_put_var_longlong(int ncid, int varid, const long long *op)
Write an entire variable with one call.
int nc_put_vara_ubyte(int ncid, int varid, const size_t *startp, const size_t *countp, const unsigned char *op)
Write an array of values to a variable.
int nc_put_varm_text(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const char *op)
Write a mapped array of values to a variable.
int nc_put_var1_int(int ncid, int varid, const size_t *indexp, const int *op)
Write one datum.
int nc_put_varm_string(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const char **op)
Write a mapped array of values to a variable.
int nc_put_varm_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const unsigned long long *op)
Write a mapped array of values to a variable.
int nc_put_vara_ushort(int ncid, int varid, const size_t *startp, const size_t *countp, const unsigned short *op)
Write an array of values to a variable.
#define NC_EBADTYPE
Not a netcdf data type.
int nc_put_var1_longlong(int ncid, int varid, const size_t *indexp, const long long *op)
Write one datum.
#define NC_EEDGE
Start+count exceeds dimension bound.
int nc_put_vara_long(int ncid, int varid, const size_t *startp, const size_t *countp, const long *op)
Write an array of values to a variable.
#define NC_ESTRIDE
Illegal stride.
int nc_put_varm_longlong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const long long *op)
Write a mapped array of values to a variable.
int nc_put_var1(int ncid, int varid, const size_t *indexp, const void *op)
Write one datum.
#define NC_INT
signed 4 byte integer
#define NC_NAT
Not A Type.
int nc_put_var1_schar(int ncid, int varid, const size_t *indexp, const signed char *op)
Write one datum.
EXTERNL int nc_inq_vartype(int ncid, int varid, nc_type *xtypep)
Learn the type of a variable.
EXTERNL int nc_inq_type(int ncid, nc_type xtype, char *name, size_t *size)
Inquire about a type.
int nc_put_vara_int(int ncid, int varid, const size_t *startp, const size_t *countp, const int *op)
Write an array of values to a variable.
int nc_put_varm_schar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const signed char *op)
Write a mapped array of values to a variable.
#define NC_USHORT
unsigned 2-byte int
int nc_put_var1_ulonglong(int ncid, int varid, const size_t *indexp, const unsigned long long *op)
Write one datum.
int nc_put_varm_double(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const double *op)
Write a mapped array of values to a variable.
int nc_put_var1_short(int ncid, int varid, const size_t *indexp, const short *op)
Write one datum.
int nc_put_var_double(int ncid, int varid, const double *op)
Write an entire variable with one call.
int nc_put_varm_long(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const long *op)
Write a mapped array of values to a variable.
int nc_put_var_text(int ncid, int varid, const char *op)
Write an entire variable with one call.
#define NC_SHORT
signed 2 byte integer
int nc_put_varm_uint(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const unsigned int *op)
Write a mapped array of values to a variable.
int nc_put_var1_text(int ncid, int varid, const size_t *indexp, const char *op)
Write one datum.
int nc_put_vara_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, const unsigned long long *op)
Write an array of values to a variable.
int nc_put_var_float(int ncid, int varid, const float *op)
Write an entire variable with one call.
int nc_put_vars_text(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const char *op)
Write a strided array of values to a variable.
int nc_put_var1_long(int ncid, int varid, const size_t *indexp, const long *op)
Write one datum.
int nc_put_var_ushort(int ncid, int varid, const unsigned short *op)
Write an entire variable with one call.
int nc_put_vars_schar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const signed char *op)
Write a strided array of values to a variable.
#define NC_NOERR
No Error.
int nc_put_vars_long(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const long *op)
Write a strided array of values to a variable.
#define NC_ECHAR
Attempt to convert between text & numbers.
int nc_put_vars_ulonglong(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const unsigned long long *op)
Write a strided array of values to a variable.
int nc_put_var1_uint(int ncid, int varid, const size_t *indexp, const unsigned int *op)
Write one datum.
int nc_put_var_uchar(int ncid, int varid, const unsigned char *op)
Write an entire variable with one call.
int nc_put_var_short(int ncid, int varid, const short *op)
Write an entire variable with one call.
#define NC_FLOAT
single precision floating point number
int nc_put_varm_float(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const float *op)
Write a mapped array of values to a variable.
int nc_put_var1_ubyte(int ncid, int varid, const size_t *indexp, const unsigned char *op)
Write one datum.
int nc_put_varm_uchar(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const ptrdiff_t *imapp, const unsigned char *op)
Write a mapped array of values to a variable.
#define NC_UINT64
unsigned 8-byte int
int nc_put_vars_string(int ncid, int varid, const size_t *startp, const size_t *countp, const ptrdiff_t *stridep, const char **op)
Write a strided array of values to a variable.