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;
141 const char* memptr = value;
143 status = NC_check_id (ncid, &ncp);
144 if(status !=
NC_NOERR)
return status;
147 if(status !=
NC_NOERR)
return status;
149 if(memtype ==
NC_NAT) memtype = vartype;
152 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
153 if(status !=
NC_NOERR)
return status;
155 if(memtype > NC_MAX_ATOMIC_TYPE)
156 memtypelen = (int)vartypelen;
158 memtypelen = nctypelen(memtype);
161 if(vartype != memtype) {
163 if(vartype > NC_MAX_ATOMIC_TYPE
164 || memtype > NC_MAX_ATOMIC_TYPE)
173 if(status !=
NC_NOERR)
return status;
177 status = NC_inq_recvar(ncid,varid,&nrecdims,is_recdim);
178 if(status !=
NC_NOERR)
return status;
179 isrecvar = (nrecdims > 0);
180 NC_getshape(ncid,varid,rank,varshape);
189 size_t edge1[1] = {1};
190 return NC_put_vara(ncid, varid, start, edge1, value0, memtype);
195 for(i=0;i<rank;i++) {
197 mystart[i] = (start == NULL ? 0 : start[i]);
199 if(is_recdim[i] && isrecvar)
200 myedges[i] = varshape[i] - start[i];
202 myedges[i] = varshape[i] - mystart[i];
204 myedges[i] = edges[i];
207 mystride[i] = (stride == NULL ? 1 : stride[i]);
210 || ((
unsigned long) mystride[i] >= X_INT_MAX))
212 if(mystride[i] != 1) simplestride = 0;
214 dimlen = varshape[i];
218 if(mystart[i] > dimlen)
221 if(mystart[i] + myedges[i] > dimlen)
226 return NC_put_vara(ncid, varid, mystart, myedges, value, memtype);
235 odom_init(&odom,rank,mystart,myedges,mystride);
238 while(odom_more(&odom)) {
241 localstatus = NC_put_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
247 status = localstatus;
249 memptr += memtypelen;
263 const size_t * start,
264 const size_t * edges,
265 const ptrdiff_t * stride,
266 const ptrdiff_t * imapp,
277 const char* value = (
char*)value0;
279 status = NC_check_id (ncid, &ncp);
280 if(status !=
NC_NOERR)
return status;
289 if(status !=
NC_NOERR)
return status;
291 if(vartype > NC_MAX_ATOMIC_TYPE)
295 if(status !=
NC_NOERR)
return status;
298 if(imapp != NULL && varndims != 0) {
303 const ptrdiff_t szof = (ptrdiff_t) nctypelen(vartype);
304 for(ii = 0; ii < varndims; ii++) {
305 if(imapp[ii] % szof != 0) {
309 cvtmap[ii] = imapp[ii] / szof;
321 memtypelen = nctypelen(memtype);
323 maxidim = (int) varndims - 1;
332 size_t edge1[1] = {1};
333 return NC_put_vara(ncid, varid, start, edge1, value, memtype);
342 size_t *mystart = NULL;
359 for (idim = 0; idim <= maxidim; ++idim) {
360 if ((stride[idim] == 0)
362 || ((
unsigned long) stride[idim] >= X_INT_MAX))
366 if(stride[idim] != 1) stride1 = 0;
373 if(stride1 && imapp == NULL) {
374 return NC_put_vara(ncid, varid, start, edges, value, memtype);
378 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
379 NC_getshape(ncid,varid,varndims,varshape);
382 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
384 myedges = mystart + varndims;
385 iocount = myedges + varndims;
386 stop = iocount + varndims;
387 length = stop + varndims;
388 mystride = (ptrdiff_t *)(length + varndims);
389 mymap = mystride + varndims;
394 for (idim = maxidim; idim >= 0; --idim)
396 mystart[idim] = start != NULL
400 if (edges != NULL && edges[idim] == 0)
406 myedges[idim] = edges != NULL
408 : idim == 0 && isrecvar
409 ? numrecs - mystart[idim]
410 : varshape[idim] - mystart[idim];
411 mystride[idim] = stride != NULL
414 mymap[idim] = imapp != NULL
418 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
421 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
422 stop[idim] = mystart[idim] + myedges[idim] * (size_t)mystride[idim];
428 for (idim = isrecvar; idim < maxidim; ++idim)
430 if (mystart[idim] > varshape[idim])
435 if (mystart[idim] + myedges[idim] > varshape[idim])
449 if (mystride[maxidim] == 1
450 && mymap[maxidim] == 1)
452 iocount[maxidim] = myedges[maxidim];
453 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
454 mymap[maxidim] = (ptrdiff_t) length[maxidim];
463 int lstatus = NC_put_vara(ncid, varid, mystart, iocount,
478 value += (mymap[idim] * memtypelen);
479 mystart[idim] += (size_t)mystride[idim];
480 if (mystart[idim] == stop[idim])
482 size_t l = (length[idim] * (size_t)memtypelen);
484 mystart[idim] = start[idim];
500 NC_put_vars(
int ncid,
int varid,
const size_t *start,
501 const size_t *edges,
const ptrdiff_t *stride,
502 const void *value,
nc_type memtype)
505 int stat = NC_check_id(ncid, &ncp);
509 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
511 return ncp->dispatch->put_vars(ncid,varid,start,edges,stride,value,memtype);
518 NC_put_varm(
int ncid,
int varid,
const size_t *start,
519 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
520 const void *value,
nc_type memtype)
523 int stat = NC_check_id(ncid, &ncp);
527 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
529 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,map,value,memtype);
579 const size_t *countp,
const void *op)
582 int stat = NC_check_id(ncid, &ncp);
587 return NC_put_vara(ncid, varid, startp, countp, op, xtype);
592 const size_t *countp,
const char *op)
594 return NC_put_vara(ncid, varid, startp, countp,
600 const size_t *countp,
const signed char *op)
603 int stat = NC_check_id(ncid, &ncp);
605 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
611 const size_t *countp,
const unsigned char *op)
614 int stat = NC_check_id(ncid, &ncp);
616 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
622 const size_t *countp,
const short *op)
625 int stat = NC_check_id(ncid, &ncp);
627 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
633 const size_t *countp,
const int *op)
636 int stat = NC_check_id(ncid, &ncp);
638 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
644 const size_t *countp,
const long *op)
647 int stat = NC_check_id(ncid, &ncp);
649 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
655 const size_t *countp,
const float *op)
658 int stat = NC_check_id(ncid, &ncp);
660 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
666 const size_t *countp,
const double *op)
669 int stat = NC_check_id(ncid, &ncp);
671 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
677 const size_t *countp,
const unsigned char *op)
680 int stat = NC_check_id(ncid, &ncp);
682 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
688 const size_t *countp,
const unsigned short *op)
691 int stat = NC_check_id(ncid, &ncp);
693 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
699 const size_t *countp,
const unsigned int *op)
702 int stat = NC_check_id(ncid, &ncp);
704 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
710 const size_t *countp,
const long long *op)
713 int stat = NC_check_id(ncid, &ncp);
715 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
721 const size_t *countp,
const unsigned long long *op)
724 int stat = NC_check_id(ncid, &ncp);
726 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
733 const size_t *countp,
const char* *op)
736 int stat = NC_check_id(ncid, &ncp);
738 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
768 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
770 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
777 int stat = NC_check_id(ncid, &ncp);
779 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
786 int stat = NC_check_id(ncid, &ncp);
788 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
795 int stat = NC_check_id(ncid, &ncp);
797 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
804 int stat = NC_check_id(ncid, &ncp);
806 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
813 int stat = NC_check_id(ncid, &ncp);
815 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
822 int stat = NC_check_id(ncid, &ncp);
824 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
831 int stat = NC_check_id(ncid, &ncp);
833 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
840 int stat = NC_check_id(ncid, &ncp);
842 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
849 int stat = NC_check_id(ncid, &ncp);
851 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
858 int stat = NC_check_id(ncid, &ncp);
860 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
867 int stat = NC_check_id(ncid, &ncp);
869 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
876 int stat = NC_check_id(ncid, &ncp);
878 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
885 int stat = NC_check_id(ncid, &ncp);
887 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
895 int stat = NC_check_id(ncid, &ncp);
897 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
951 return NC_put_var(ncid, varid, op,
NC_NAT);
958 int stat = NC_check_id(ncid, &ncp);
960 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
967 int stat = NC_check_id(ncid, &ncp);
969 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
976 int stat = NC_check_id(ncid, &ncp);
978 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
985 int stat = NC_check_id(ncid, &ncp);
987 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
994 int stat = NC_check_id(ncid, &ncp);
996 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
1003 int stat = NC_check_id(ncid, &ncp);
1005 return NC_put_var(ncid,varid,(
void*)op,T_long);
1012 int stat = NC_check_id(ncid, &ncp);
1014 return NC_put_var(ncid,varid,(
void*)op,T_float);
1021 int stat = NC_check_id(ncid, &ncp);
1023 return NC_put_var(ncid,varid,(
void*)op,T_double);
1030 int stat = NC_check_id(ncid, &ncp);
1032 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
1039 int stat = NC_check_id(ncid, &ncp);
1041 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
1048 int stat = NC_check_id(ncid, &ncp);
1050 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1057 int stat = NC_check_id(ncid, &ncp);
1059 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1066 int stat = NC_check_id(ncid, &ncp);
1068 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1076 int stat = NC_check_id(ncid, &ncp);
1078 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1115 const size_t *countp,
const ptrdiff_t *stridep,
1121 if ((stat = NC_check_id(ncid, &ncp)))
1123 return ncp->dispatch->put_vars(ncid, varid, startp, countp,
1129 const size_t *countp,
const ptrdiff_t *stridep,
1133 int stat = NC_check_id(ncid, &ncp);
1135 return NC_put_vars(ncid, varid, startp, countp,
1141 const size_t *countp,
const ptrdiff_t *stridep,
1142 const signed char *op)
1145 int stat = NC_check_id(ncid, &ncp);
1147 return NC_put_vars(ncid, varid, startp, countp,
1153 const size_t *startp,
const size_t *countp,
1154 const ptrdiff_t *stridep,
1155 const unsigned char *op)
1158 int stat = NC_check_id(ncid, &ncp);
1160 return NC_put_vars(ncid, varid, startp, countp,
1161 stridep, (
void *)op, T_uchar);
1166 const size_t *startp,
const size_t *countp,
1167 const ptrdiff_t *stridep,
1171 int stat = NC_check_id(ncid, &ncp);
1173 return NC_put_vars(ncid, varid, startp, countp,
1179 const size_t *startp,
const size_t *countp,
1180 const ptrdiff_t *stridep,
1184 int stat = NC_check_id(ncid, &ncp);
1186 return NC_put_vars(ncid, varid, startp, countp,
1187 stridep, (
void *)op,
NC_INT);
1192 const size_t *startp,
const size_t *countp,
1193 const ptrdiff_t *stridep,
1197 int stat = NC_check_id(ncid, &ncp);
1199 return NC_put_vars(ncid, varid, startp, countp,
1200 stridep, (
void *)op, T_long);
1205 const size_t *startp,
const size_t *countp,
1206 const ptrdiff_t *stridep,
1210 int stat = NC_check_id(ncid, &ncp);
1212 return NC_put_vars(ncid, varid, startp, countp,
1213 stridep, (
void *)op, T_float);
1218 const size_t *startp,
const size_t *countp,
1219 const ptrdiff_t *stridep,
1223 int stat = NC_check_id(ncid, &ncp);
1225 return NC_put_vars(ncid, varid, startp, countp,
1226 stridep, (
void *)op, T_double);
1231 const size_t *startp,
const size_t *countp,
1232 const ptrdiff_t *stridep,
1233 const unsigned char *op)
1236 int stat = NC_check_id(ncid, &ncp);
1238 return NC_put_vars(ncid, varid, startp, countp,
1239 stridep, (
void *)op, T_ubyte);
1244 const size_t *startp,
const size_t *countp,
1245 const ptrdiff_t *stridep,
1246 const unsigned short *op)
1249 int stat = NC_check_id(ncid, &ncp);
1251 return NC_put_vars(ncid, varid, startp, countp,
1252 stridep, (
void *)op, T_ushort);
1257 const size_t *startp,
const size_t *countp,
1258 const ptrdiff_t *stridep,
1259 const unsigned int *op)
1262 int stat = NC_check_id(ncid, &ncp);
1264 return NC_put_vars(ncid, varid, startp, countp,
1265 stridep, (
void *)op, T_uint);
1270 const size_t *startp,
const size_t *countp,
1271 const ptrdiff_t *stridep,
1272 const long long *op)
1275 int stat = NC_check_id(ncid, &ncp);
1277 return NC_put_vars(ncid, varid, startp, countp,
1278 stridep, (
void *)op, T_longlong);
1283 const size_t *startp,
const size_t *countp,
1284 const ptrdiff_t *stridep,
1285 const unsigned long long *op)
1288 int stat = NC_check_id(ncid, &ncp);
1290 return NC_put_vars(ncid, varid, startp, countp,
1297 const size_t *startp,
const size_t *countp,
1298 const ptrdiff_t *stridep,
1302 int stat = NC_check_id(ncid, &ncp);
1304 return NC_put_vars(ncid, varid, startp, countp, stridep,
1355 const size_t *countp,
const ptrdiff_t *stridep,
1356 const ptrdiff_t *imapp,
const void *op)
1361 if ((stat = NC_check_id(ncid, &ncp)))
1363 return ncp->dispatch->put_varm(ncid, varid, startp, countp,
1364 stridep, imapp, op,
NC_NAT);
1369 const size_t *countp,
const ptrdiff_t *stridep,
1370 const ptrdiff_t *imapp,
const char *op)
1373 int stat = NC_check_id(ncid, &ncp);
1375 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1381 const size_t *startp,
const size_t *countp,
1382 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1383 const signed char *op)
1386 int stat = NC_check_id(ncid, &ncp);
1388 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1394 const size_t *startp,
const size_t *countp,
1395 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1396 const unsigned char *op)
1399 int stat = NC_check_id(ncid, &ncp);
1401 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1402 (
void *)op, T_uchar);
1407 const size_t *startp,
const size_t *countp,
1408 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1412 int stat = NC_check_id(ncid, &ncp);
1414 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1420 const size_t *startp,
const size_t *countp,
1421 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1425 int stat = NC_check_id(ncid, &ncp);
1427 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1433 const size_t *startp,
const size_t *countp,
1434 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1438 int stat = NC_check_id(ncid, &ncp);
1440 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1441 (
void *)op, T_long);
1446 const size_t *startp,
const size_t *countp,
1447 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1451 int stat = NC_check_id(ncid, &ncp);
1453 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1454 (
void *)op, T_float);
1459 const size_t *startp,
const size_t *countp,
1460 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1464 int stat = NC_check_id(ncid, &ncp);
1466 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1467 (
void *)op, T_double);
1472 const size_t *startp,
const size_t *countp,
1473 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1474 const unsigned char *op)
1477 int stat = NC_check_id(ncid, &ncp);
1479 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1480 (
void *)op, T_ubyte);
1485 const size_t *startp,
const size_t *countp,
1486 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1487 const unsigned short *op)
1490 int stat = NC_check_id(ncid, &ncp);
1492 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1493 (
void *)op, T_ushort);
1498 const size_t *startp,
const size_t *countp,
1499 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1500 const unsigned int *op)
1503 int stat = NC_check_id(ncid, &ncp);
1505 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1506 (
void *)op, T_uint);
1511 const size_t *startp,
const size_t *countp,
1512 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1513 const long long *op)
1516 int stat = NC_check_id(ncid, &ncp);
1518 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1519 (
void *)op, T_longlong);
1524 const size_t *startp,
const size_t *countp,
1525 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1526 const unsigned long long *op)
1529 int stat = NC_check_id(ncid, &ncp);
1531 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
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_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.