8 #include "ncdispatch.h"
11 #ifndef VARS_USES_VARM
24 const size_t* start,
const size_t* edges,
const ptrdiff_t* stride)
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];
42 return (odom->index[0] < odom->stop[0]);
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,simplestride,isrecvar;
132 const char* value = (
const char*)value0;
139 const char* memptr = value;
141 status = NC_check_id (ncid, &ncp);
142 if(status !=
NC_NOERR)
return status;
145 if(status !=
NC_NOERR)
return status;
147 if(memtype ==
NC_NAT) memtype = vartype;
150 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
151 if(status !=
NC_NOERR)
return status;
153 if(memtype > NC_MAX_ATOMIC_TYPE)
154 memtypelen = (int)vartypelen;
156 memtypelen = nctypelen(memtype);
159 if(vartype != memtype) {
161 if(vartype > NC_MAX_ATOMIC_TYPE
162 || memtype > NC_MAX_ATOMIC_TYPE)
171 if(status !=
NC_NOERR)
return status;
174 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
175 NC_getshape(ncid,varid,rank,varshape);
184 size_t edge1[1] = {1};
185 return NC_put_vara(ncid, varid, start, edge1, value0, memtype);
190 for(i=0;i<rank;i++) {
192 mystart[i] = (start == NULL ? 0 : start[i]);
194 if(i == 0 && isrecvar)
195 myedges[i] = numrecs - start[i];
197 myedges[i] = varshape[i] - mystart[i];
199 myedges[i] = edges[i];
202 mystride[i] = (stride == NULL ? 1 : stride[i]);
205 || ((
unsigned long) mystride[i] >= X_INT_MAX))
207 if(mystride[i] != 1) simplestride = 0;
209 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
210 if(i == 0 && isrecvar) {}
214 if(mystart[i] > dimlen)
218 if(mystart[i] + myedges[i] > dimlen)
223 return NC_put_vara(ncid, varid, mystart, myedges, value, memtype);
232 odom_init(&odom,rank,mystart,myedges,mystride);
235 while(odom_more(&odom)) {
238 localstatus = NC_put_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
244 status = localstatus;
246 memptr += memtypelen;
260 const size_t * start,
261 const size_t * edges,
262 const ptrdiff_t * stride,
263 const ptrdiff_t * imapp,
274 const char* value = (
char*)value0;
276 status = NC_check_id (ncid, &ncp);
277 if(status !=
NC_NOERR)
return status;
286 if(status !=
NC_NOERR)
return status;
288 if(vartype > NC_MAX_ATOMIC_TYPE)
292 if(status !=
NC_NOERR)
return status;
295 if(imapp != NULL && varndims != 0) {
300 const ptrdiff_t szof = (ptrdiff_t) nctypelen(vartype);
301 for(ii = 0; ii < varndims; ii++) {
302 if(imapp[ii] % szof != 0) {
306 cvtmap[ii] = imapp[ii] / szof;
318 memtypelen = nctypelen(memtype);
320 maxidim = (int) varndims - 1;
329 size_t edge1[1] = {1};
330 return NC_put_vara(ncid, varid, start, edge1, value, memtype);
339 size_t *mystart = NULL;
356 for (idim = 0; idim <= maxidim; ++idim) {
357 if ((stride[idim] == 0)
359 || ((
unsigned long) stride[idim] >= X_INT_MAX))
363 if(stride[idim] != 1) stride1 = 0;
370 if(stride1 && imapp == NULL) {
371 return NC_put_vara(ncid, varid, start, edges, value, memtype);
375 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
376 NC_getshape(ncid,varid,varndims,varshape);
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)
393 mystart[idim] = start != NULL
397 if (edges != NULL && edges[idim] == 0)
403 myedges[idim] = edges != NULL
405 : idim == 0 && isrecvar
406 ? numrecs - mystart[idim]
407 : varshape[idim] - mystart[idim];
408 mystride[idim] = stride != NULL
411 mymap[idim] = imapp != NULL
415 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
418 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
419 stop[idim] = mystart[idim] + myedges[idim] * (size_t)mystride[idim];
425 for (idim = isrecvar; idim < maxidim; ++idim)
427 if (mystart[idim] > varshape[idim])
432 if (mystart[idim] + myedges[idim] > varshape[idim])
446 if (mystride[maxidim] == 1
447 && mymap[maxidim] == 1)
449 iocount[maxidim] = myedges[maxidim];
450 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
451 mymap[maxidim] = (ptrdiff_t) length[maxidim];
460 int lstatus = NC_put_vara(ncid, varid, mystart, iocount,
475 value += (mymap[idim] * memtypelen);
476 mystart[idim] += (size_t)mystride[idim];
477 if (mystart[idim] == stop[idim])
479 size_t l = (length[idim] * (size_t)memtypelen);
481 mystart[idim] = start[idim];
497 NC_put_vars(
int ncid,
int varid,
const size_t *start,
498 const size_t *edges,
const ptrdiff_t *stride,
499 const void *value,
nc_type memtype)
502 int stat = NC_check_id(ncid, &ncp);
506 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
508 return ncp->dispatch->put_vars(ncid,varid,start,edges,stride,value,memtype);
515 NC_put_varm(
int ncid,
int varid,
const size_t *start,
516 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
517 const void *value,
nc_type memtype)
520 int stat = NC_check_id(ncid, &ncp);
524 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
526 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,map,value,memtype);
576 const size_t *countp,
const void *op)
579 int stat = NC_check_id(ncid, &ncp);
584 return NC_put_vara(ncid, varid, startp, countp, op, xtype);
589 const size_t *countp,
const char *op)
591 return NC_put_vara(ncid, varid, startp, countp,
597 const size_t *countp,
const signed char *op)
600 int stat = NC_check_id(ncid, &ncp);
602 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
608 const size_t *countp,
const unsigned char *op)
611 int stat = NC_check_id(ncid, &ncp);
613 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
619 const size_t *countp,
const short *op)
622 int stat = NC_check_id(ncid, &ncp);
624 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
630 const size_t *countp,
const int *op)
633 int stat = NC_check_id(ncid, &ncp);
635 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
641 const size_t *countp,
const long *op)
644 int stat = NC_check_id(ncid, &ncp);
646 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
652 const size_t *countp,
const float *op)
655 int stat = NC_check_id(ncid, &ncp);
657 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
663 const size_t *countp,
const double *op)
666 int stat = NC_check_id(ncid, &ncp);
668 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
674 const size_t *countp,
const unsigned char *op)
677 int stat = NC_check_id(ncid, &ncp);
679 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
685 const size_t *countp,
const unsigned short *op)
688 int stat = NC_check_id(ncid, &ncp);
690 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
696 const size_t *countp,
const unsigned int *op)
699 int stat = NC_check_id(ncid, &ncp);
701 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
707 const size_t *countp,
const long long *op)
710 int stat = NC_check_id(ncid, &ncp);
712 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
718 const size_t *countp,
const unsigned long long *op)
721 int stat = NC_check_id(ncid, &ncp);
723 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
730 const size_t *countp,
const char* *op)
733 int stat = NC_check_id(ncid, &ncp);
735 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
765 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
767 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
774 int stat = NC_check_id(ncid, &ncp);
776 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
783 int stat = NC_check_id(ncid, &ncp);
785 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
792 int stat = NC_check_id(ncid, &ncp);
794 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
801 int stat = NC_check_id(ncid, &ncp);
803 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
810 int stat = NC_check_id(ncid, &ncp);
812 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
819 int stat = NC_check_id(ncid, &ncp);
821 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
828 int stat = NC_check_id(ncid, &ncp);
830 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
837 int stat = NC_check_id(ncid, &ncp);
839 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
846 int stat = NC_check_id(ncid, &ncp);
848 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
855 int stat = NC_check_id(ncid, &ncp);
857 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
864 int stat = NC_check_id(ncid, &ncp);
866 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
873 int stat = NC_check_id(ncid, &ncp);
875 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
882 int stat = NC_check_id(ncid, &ncp);
884 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
892 int stat = NC_check_id(ncid, &ncp);
894 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
948 return NC_put_var(ncid, varid, op,
NC_NAT);
955 int stat = NC_check_id(ncid, &ncp);
957 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
964 int stat = NC_check_id(ncid, &ncp);
966 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
973 int stat = NC_check_id(ncid, &ncp);
975 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
982 int stat = NC_check_id(ncid, &ncp);
984 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
991 int stat = NC_check_id(ncid, &ncp);
993 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
1000 int stat = NC_check_id(ncid, &ncp);
1002 return NC_put_var(ncid,varid,(
void*)op,T_long);
1009 int stat = NC_check_id(ncid, &ncp);
1011 return NC_put_var(ncid,varid,(
void*)op,T_float);
1018 int stat = NC_check_id(ncid, &ncp);
1020 return NC_put_var(ncid,varid,(
void*)op,T_double);
1027 int stat = NC_check_id(ncid, &ncp);
1029 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
1036 int stat = NC_check_id(ncid, &ncp);
1038 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
1045 int stat = NC_check_id(ncid, &ncp);
1047 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1054 int stat = NC_check_id(ncid, &ncp);
1056 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1063 int stat = NC_check_id(ncid, &ncp);
1065 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1073 int stat = NC_check_id(ncid, &ncp);
1075 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1112 const size_t *countp,
const ptrdiff_t *stridep,
1118 if ((stat = NC_check_id(ncid, &ncp)))
1120 return ncp->dispatch->put_vars(ncid, varid, startp, countp,
1126 const size_t *countp,
const ptrdiff_t *stridep,
1130 int stat = NC_check_id(ncid, &ncp);
1132 return NC_put_vars(ncid, varid, startp, countp,
1138 const size_t *countp,
const ptrdiff_t *stridep,
1139 const signed char *op)
1142 int stat = NC_check_id(ncid, &ncp);
1144 return NC_put_vars(ncid, varid, startp, countp,
1150 const size_t *startp,
const size_t *countp,
1151 const ptrdiff_t *stridep,
1152 const unsigned char *op)
1155 int stat = NC_check_id(ncid, &ncp);
1157 return NC_put_vars(ncid, varid, startp, countp,
1158 stridep, (
void *)op, T_uchar);
1163 const size_t *startp,
const size_t *countp,
1164 const ptrdiff_t *stridep,
1168 int stat = NC_check_id(ncid, &ncp);
1170 return NC_put_vars(ncid, varid, startp, countp,
1176 const size_t *startp,
const size_t *countp,
1177 const ptrdiff_t *stridep,
1181 int stat = NC_check_id(ncid, &ncp);
1183 return NC_put_vars(ncid, varid, startp, countp,
1184 stridep, (
void *)op,
NC_INT);
1189 const size_t *startp,
const size_t *countp,
1190 const ptrdiff_t *stridep,
1194 int stat = NC_check_id(ncid, &ncp);
1196 return NC_put_vars(ncid, varid, startp, countp,
1197 stridep, (
void *)op, T_long);
1202 const size_t *startp,
const size_t *countp,
1203 const ptrdiff_t *stridep,
1207 int stat = NC_check_id(ncid, &ncp);
1209 return NC_put_vars(ncid, varid, startp, countp,
1210 stridep, (
void *)op, T_float);
1215 const size_t *startp,
const size_t *countp,
1216 const ptrdiff_t *stridep,
1220 int stat = NC_check_id(ncid, &ncp);
1222 return NC_put_vars(ncid, varid, startp, countp,
1223 stridep, (
void *)op, T_double);
1228 const size_t *startp,
const size_t *countp,
1229 const ptrdiff_t *stridep,
1230 const unsigned char *op)
1233 int stat = NC_check_id(ncid, &ncp);
1235 return NC_put_vars(ncid, varid, startp, countp,
1236 stridep, (
void *)op, T_ubyte);
1241 const size_t *startp,
const size_t *countp,
1242 const ptrdiff_t *stridep,
1243 const unsigned short *op)
1246 int stat = NC_check_id(ncid, &ncp);
1248 return NC_put_vars(ncid, varid, startp, countp,
1249 stridep, (
void *)op, T_ushort);
1254 const size_t *startp,
const size_t *countp,
1255 const ptrdiff_t *stridep,
1256 const unsigned int *op)
1259 int stat = NC_check_id(ncid, &ncp);
1261 return NC_put_vars(ncid, varid, startp, countp,
1262 stridep, (
void *)op, T_uint);
1267 const size_t *startp,
const size_t *countp,
1268 const ptrdiff_t *stridep,
1269 const long long *op)
1272 int stat = NC_check_id(ncid, &ncp);
1274 return NC_put_vars(ncid, varid, startp, countp,
1275 stridep, (
void *)op, T_longlong);
1280 const size_t *startp,
const size_t *countp,
1281 const ptrdiff_t *stridep,
1282 const unsigned long long *op)
1285 int stat = NC_check_id(ncid, &ncp);
1287 return NC_put_vars(ncid, varid, startp, countp,
1294 const size_t *startp,
const size_t *countp,
1295 const ptrdiff_t *stridep,
1299 int stat = NC_check_id(ncid, &ncp);
1301 return NC_put_vars(ncid, varid, startp, countp, stridep,
1351 const size_t *countp,
const ptrdiff_t *stridep,
1352 const ptrdiff_t *imapp,
const void *op)
1357 if ((stat = NC_check_id(ncid, &ncp)))
1359 return ncp->dispatch->put_varm(ncid, varid, startp, countp,
1360 stridep, imapp, op,
NC_NAT);
1365 const size_t *countp,
const ptrdiff_t *stridep,
1366 const ptrdiff_t *imapp,
const char *op)
1369 int stat = NC_check_id(ncid, &ncp);
1371 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1377 const size_t *startp,
const size_t *countp,
1378 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1379 const signed char *op)
1382 int stat = NC_check_id(ncid, &ncp);
1384 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1390 const size_t *startp,
const size_t *countp,
1391 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1392 const unsigned char *op)
1395 int stat = NC_check_id(ncid, &ncp);
1397 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1398 (
void *)op, T_uchar);
1403 const size_t *startp,
const size_t *countp,
1404 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1408 int stat = NC_check_id(ncid, &ncp);
1410 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1416 const size_t *startp,
const size_t *countp,
1417 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1421 int stat = NC_check_id(ncid, &ncp);
1423 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1429 const size_t *startp,
const size_t *countp,
1430 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1434 int stat = NC_check_id(ncid, &ncp);
1436 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1437 (
void *)op, T_long);
1442 const size_t *startp,
const size_t *countp,
1443 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1447 int stat = NC_check_id(ncid, &ncp);
1449 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1450 (
void *)op, T_float);
1455 const size_t *startp,
const size_t *countp,
1456 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1460 int stat = NC_check_id(ncid, &ncp);
1462 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1463 (
void *)op, T_double);
1468 const size_t *startp,
const size_t *countp,
1469 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1470 const unsigned char *op)
1473 int stat = NC_check_id(ncid, &ncp);
1475 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1476 (
void *)op, T_ubyte);
1481 const size_t *startp,
const size_t *countp,
1482 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1483 const unsigned short *op)
1486 int stat = NC_check_id(ncid, &ncp);
1488 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1489 (
void *)op, T_ushort);
1494 const size_t *startp,
const size_t *countp,
1495 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1496 const unsigned int *op)
1499 int stat = NC_check_id(ncid, &ncp);
1501 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1502 (
void *)op, T_uint);
1507 const size_t *startp,
const size_t *countp,
1508 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1509 const long long *op)
1512 int stat = NC_check_id(ncid, &ncp);
1514 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1515 (
void *)op, T_longlong);
1520 const size_t *startp,
const size_t *countp,
1521 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1522 const unsigned long long *op)
1525 int stat = NC_check_id(ncid, &ncp);
1527 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
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_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.
#define NC_EINVAL
Invalid Argument.
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.
Functions for writing data to variables.