8 #include "ncdispatch.h"
11 #ifndef VARS_USES_VARM
32 odom_init(
struct PUTodometer* odom,
int rank,
const size_t* start,
33 const size_t* edges,
const ptrdiff_t* stride)
36 memset(odom,0,
sizeof(
struct PUTodometer));
39 for(i=0;i<odom->rank;i++) {
40 odom->start[i] = (start != NULL ? start[i] : 0);
41 odom->edges[i] = (edges != NULL ? edges[i] : 1);
42 odom->stride[i] = (stride != NULL ? stride[i] : 1);
43 odom->stop[i] = odom->start[i] + (odom->edges[i]*(size_t)odom->stride[i]);
44 odom->index[i] = odom->start[i];
56 odom_more(
struct PUTodometer* odom)
58 return (odom->index[0] < odom->stop[0]);
69 odom_next(
struct PUTodometer* odom)
72 if(odom->rank == 0)
return 0;
73 for(i=odom->rank-1;i>=0;i--) {
74 odom->index[i] += (size_t)odom->stride[i];
75 if(odom->index[i] < odom->stop[i])
break;
77 odom->index[i] = odom->start[i];
87 NC_put_vara(
int ncid,
int varid,
const size_t *start,
88 const size_t *edges,
const void *value,
nc_type memtype)
91 int stat = NC_check_id(ncid, &ncp);
98 stat = NC_getshape(ncid, varid, ndims, shape);
100 return ncp->dispatch->put_vara(ncid, varid, start, shape, value, memtype);
102 return ncp->dispatch->put_vara(ncid, varid, start, edges, value, memtype);
109 NC_put_var(
int ncid,
int varid,
const void *value,
nc_type memtype)
114 if(stat)
return stat;
115 stat = NC_getshape(ncid,varid, ndims, shape);
116 if(stat)
return stat;
117 return NC_put_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
124 NC_put_var1(
int ncid,
int varid,
const size_t *coord,
const void* value,
127 return NC_put_vara(ncid, varid, coord, NC_coord_one, value, memtype);
134 NCDEFAULT_put_vars(
int ncid,
int varid,
const size_t * start,
135 const size_t * edges,
const ptrdiff_t * stride,
136 const void *value0,
nc_type memtype)
138 #ifdef VARS_USES_VARM
140 int stat = NC_check_id(ncid, &ncp);
143 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,NULL,value0,memtype);
148 int i,isstride1,isrecvar;
150 struct PUTodometer odom;
156 const char* value = (
const char*)value0;
163 const char* memptr = value;
165 status = NC_check_id (ncid, &ncp);
166 if(status !=
NC_NOERR)
return status;
169 if(status !=
NC_NOERR)
return status;
171 if(memtype ==
NC_NAT) memtype = vartype;
174 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
175 if(status !=
NC_NOERR)
return status;
177 if(memtype > NC_MAX_ATOMIC_TYPE)
178 memtypelen = (int)vartypelen;
180 memtypelen = nctypelen(memtype);
183 if(vartype != memtype) {
185 if(vartype > NC_MAX_ATOMIC_TYPE
186 || memtype > NC_MAX_ATOMIC_TYPE)
195 if(status !=
NC_NOERR)
return status;
198 status = NC_inq_recvar(ncid,varid,&nrecdims,is_recdim);
199 if(status !=
NC_NOERR)
return status;
200 isrecvar = (nrecdims > 0);
201 NC_getshape(ncid,varid,rank,varshape);
210 size_t edge1[1] = {1};
211 return NC_put_vara(ncid, varid, start, edge1, value0, memtype);
217 for(i=0;i<rank;i++) {
219 mystart[i] = (start == NULL ? 0 : start[i]);
221 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
222 if(i == 0 && isrecvar) {}
225 dimlen = varshape[i];
230 #ifdef RELAX_COORD_BOUND
238 if(i == 0 && isrecvar)
239 myedges[i] = numrecs - start[i];
241 if(is_recdim[i] && isrecvar)
242 myedges[i] = varshape[i] - start[i];
245 myedges[i] = varshape[i] - mystart[i];
247 myedges[i] = edges[i];
248 #ifdef RELAX_COORD_BOUND
250 if (mystart[i] == dimlen && myedges[i] > 0)
256 if(mystart[i] + myedges[i] > dimlen)
259 mystride[i] = (stride == NULL ? 1 : stride[i]);
262 || ((
unsigned long) mystride[i] >= X_INT_MAX))
264 if(mystride[i] != 1) isstride1 = 0;
269 return NC_put_vara(ncid, varid, mystart, myedges, value, memtype);
286 odom_init(&odom,rank,mystart,myedges,mystride);
289 while(odom_more(&odom)) {
292 localstatus = NC_put_vara(ncid,varid,odom.index,nc_sizevector1,memptr,memtype);
298 status = localstatus;
300 memptr += memtypelen;
314 const size_t * start,
315 const size_t * edges,
316 const ptrdiff_t * stride,
317 const ptrdiff_t * imapp,
327 const char* value = (
char*)value0;
329 status = NC_check_id (ncid, &ncp);
330 if(status !=
NC_NOERR)
return status;
339 if(status !=
NC_NOERR)
return status;
341 if(vartype > NC_MAX_ATOMIC_TYPE)
345 if(status !=
NC_NOERR)
return status;
356 memtypelen = nctypelen(memtype);
358 maxidim = (int) varndims - 1;
367 size_t edge1[1] = {1};
368 return NC_put_vara(ncid, varid, start, edge1, value, memtype);
377 size_t *mystart = NULL;
382 ptrdiff_t *mystride = 0;
394 for (idim = 0; idim <= maxidim; ++idim) {
395 if ((stride[idim] == 0)
397 || ((
unsigned long) stride[idim] >= X_INT_MAX))
401 if(stride[idim] != 1) stride1 = 0;
408 if(stride1 && imapp == NULL) {
409 return NC_put_vara(ncid, varid, start, edges, value, memtype);
413 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
414 NC_getshape(ncid,varid,varndims,varshape);
417 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
419 myedges = mystart + varndims;
420 iocount = myedges + varndims;
421 stop = iocount + varndims;
422 length = stop + varndims;
423 mystride = (ptrdiff_t *)(length + varndims);
424 mymap = mystride + varndims;
429 for (idim = maxidim; idim >= 0; --idim)
431 mystart[idim] = start != NULL
435 myedges[idim] = edges != NULL
437 : idim == 0 && isrecvar
438 ? numrecs - mystart[idim]
439 : varshape[idim] - mystart[idim];
442 for (idim = isrecvar; idim <= maxidim; ++idim)
444 #ifdef RELAX_COORD_BOUND
445 if (mystart[idim] > varshape[idim] ||
446 (mystart[idim] == varshape[idim] && myedges[idim] > 0))
448 if (mystart[idim] >= varshape[idim])
455 if (mystart[idim] + myedges[idim] > varshape[idim])
465 for (idim = maxidim; idim >= 0; --idim)
467 if (edges != NULL && edges[idim] == 0)
473 mystride[idim] = stride != NULL
476 mymap[idim] = imapp != NULL
480 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
483 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
484 stop[idim] = mystart[idim] + myedges[idim] * (size_t)mystride[idim];
494 if (mystride[maxidim] == 1
495 && mymap[maxidim] == 1)
497 iocount[maxidim] = myedges[maxidim];
498 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
499 mymap[maxidim] = (ptrdiff_t) length[maxidim];
508 int lstatus = NC_put_vara(ncid, varid, mystart, iocount,
523 value += (mymap[idim] * memtypelen);
524 mystart[idim] += (size_t)mystride[idim];
525 if (mystart[idim] == stop[idim])
527 size_t l = (length[idim] * (size_t)memtypelen);
529 mystart[idim] = start[idim];
545 NC_put_vars(
int ncid,
int varid,
const size_t *start,
546 const size_t *edges,
const ptrdiff_t *stride,
547 const void *value,
nc_type memtype)
550 int stat = NC_check_id(ncid, &ncp);
554 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
556 return ncp->dispatch->put_vars(ncid,varid,start,edges,stride,value,memtype);
563 NC_put_varm(
int ncid,
int varid,
const size_t *start,
564 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
565 const void *value,
nc_type memtype)
568 int stat = NC_check_id(ncid, &ncp);
572 if(memtype >= NC_FIRSTUSERTYPEID) memtype =
NC_NAT;
574 return ncp->dispatch->put_varm(ncid,varid,start,edges,stride,map,value,memtype);
624 const size_t *countp,
const void *op)
627 int stat = NC_check_id(ncid, &ncp);
632 return NC_put_vara(ncid, varid, startp, countp, op, xtype);
637 const size_t *countp,
const char *op)
639 return NC_put_vara(ncid, varid, startp, countp,
645 const size_t *countp,
const signed char *op)
648 int stat = NC_check_id(ncid, &ncp);
650 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
656 const size_t *countp,
const unsigned char *op)
659 int stat = NC_check_id(ncid, &ncp);
661 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
667 const size_t *countp,
const short *op)
670 int stat = NC_check_id(ncid, &ncp);
672 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
678 const size_t *countp,
const int *op)
681 int stat = NC_check_id(ncid, &ncp);
683 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
689 const size_t *countp,
const long *op)
692 int stat = NC_check_id(ncid, &ncp);
694 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
700 const size_t *countp,
const float *op)
703 int stat = NC_check_id(ncid, &ncp);
705 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
711 const size_t *countp,
const double *op)
714 int stat = NC_check_id(ncid, &ncp);
716 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
722 const size_t *countp,
const unsigned char *op)
725 int stat = NC_check_id(ncid, &ncp);
727 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
733 const size_t *countp,
const unsigned short *op)
736 int stat = NC_check_id(ncid, &ncp);
738 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
744 const size_t *countp,
const unsigned int *op)
747 int stat = NC_check_id(ncid, &ncp);
749 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
755 const size_t *countp,
const long long *op)
758 int stat = NC_check_id(ncid, &ncp);
760 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
766 const size_t *countp,
const unsigned long long *op)
769 int stat = NC_check_id(ncid, &ncp);
771 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
778 const size_t *countp,
const char* *op)
781 int stat = NC_check_id(ncid, &ncp);
783 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
813 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
815 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
822 int stat = NC_check_id(ncid, &ncp);
824 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
831 int stat = NC_check_id(ncid, &ncp);
833 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
840 int stat = NC_check_id(ncid, &ncp);
842 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
849 int stat = NC_check_id(ncid, &ncp);
851 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
858 int stat = NC_check_id(ncid, &ncp);
860 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
867 int stat = NC_check_id(ncid, &ncp);
869 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
876 int stat = NC_check_id(ncid, &ncp);
878 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
885 int stat = NC_check_id(ncid, &ncp);
887 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
894 int stat = NC_check_id(ncid, &ncp);
896 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
903 int stat = NC_check_id(ncid, &ncp);
905 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
912 int stat = NC_check_id(ncid, &ncp);
914 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
921 int stat = NC_check_id(ncid, &ncp);
923 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
930 int stat = NC_check_id(ncid, &ncp);
932 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
940 int stat = NC_check_id(ncid, &ncp);
942 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
996 return NC_put_var(ncid, varid, op,
NC_NAT);
1003 int stat = NC_check_id(ncid, &ncp);
1005 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
1012 int stat = NC_check_id(ncid, &ncp);
1014 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
1021 int stat = NC_check_id(ncid, &ncp);
1023 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
1030 int stat = NC_check_id(ncid, &ncp);
1032 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
1039 int stat = NC_check_id(ncid, &ncp);
1041 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
1048 int stat = NC_check_id(ncid, &ncp);
1050 return NC_put_var(ncid,varid,(
void*)op,T_long);
1057 int stat = NC_check_id(ncid, &ncp);
1059 return NC_put_var(ncid,varid,(
void*)op,T_float);
1066 int stat = NC_check_id(ncid, &ncp);
1068 return NC_put_var(ncid,varid,(
void*)op,T_double);
1075 int stat = NC_check_id(ncid, &ncp);
1077 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
1084 int stat = NC_check_id(ncid, &ncp);
1086 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
1093 int stat = NC_check_id(ncid, &ncp);
1095 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1102 int stat = NC_check_id(ncid, &ncp);
1104 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1111 int stat = NC_check_id(ncid, &ncp);
1113 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1121 int stat = NC_check_id(ncid, &ncp);
1123 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1160 const size_t *countp,
const ptrdiff_t *stridep,
1166 if ((stat = NC_check_id(ncid, &ncp)))
1168 return ncp->dispatch->put_vars(ncid, varid, startp, countp,
1174 const size_t *countp,
const ptrdiff_t *stridep,
1178 int stat = NC_check_id(ncid, &ncp);
1180 return NC_put_vars(ncid, varid, startp, countp,
1186 const size_t *countp,
const ptrdiff_t *stridep,
1187 const signed char *op)
1190 int stat = NC_check_id(ncid, &ncp);
1192 return NC_put_vars(ncid, varid, startp, countp,
1198 const size_t *startp,
const size_t *countp,
1199 const ptrdiff_t *stridep,
1200 const unsigned char *op)
1203 int stat = NC_check_id(ncid, &ncp);
1205 return NC_put_vars(ncid, varid, startp, countp,
1206 stridep, (
void *)op, T_uchar);
1211 const size_t *startp,
const size_t *countp,
1212 const ptrdiff_t *stridep,
1216 int stat = NC_check_id(ncid, &ncp);
1218 return NC_put_vars(ncid, varid, startp, countp,
1224 const size_t *startp,
const size_t *countp,
1225 const ptrdiff_t *stridep,
1229 int stat = NC_check_id(ncid, &ncp);
1231 return NC_put_vars(ncid, varid, startp, countp,
1232 stridep, (
void *)op,
NC_INT);
1237 const size_t *startp,
const size_t *countp,
1238 const ptrdiff_t *stridep,
1242 int stat = NC_check_id(ncid, &ncp);
1244 return NC_put_vars(ncid, varid, startp, countp,
1245 stridep, (
void *)op, T_long);
1250 const size_t *startp,
const size_t *countp,
1251 const ptrdiff_t *stridep,
1255 int stat = NC_check_id(ncid, &ncp);
1257 return NC_put_vars(ncid, varid, startp, countp,
1258 stridep, (
void *)op, T_float);
1263 const size_t *startp,
const size_t *countp,
1264 const ptrdiff_t *stridep,
1268 int stat = NC_check_id(ncid, &ncp);
1270 return NC_put_vars(ncid, varid, startp, countp,
1271 stridep, (
void *)op, T_double);
1276 const size_t *startp,
const size_t *countp,
1277 const ptrdiff_t *stridep,
1278 const unsigned char *op)
1281 int stat = NC_check_id(ncid, &ncp);
1283 return NC_put_vars(ncid, varid, startp, countp,
1284 stridep, (
void *)op, T_ubyte);
1289 const size_t *startp,
const size_t *countp,
1290 const ptrdiff_t *stridep,
1291 const unsigned short *op)
1294 int stat = NC_check_id(ncid, &ncp);
1296 return NC_put_vars(ncid, varid, startp, countp,
1297 stridep, (
void *)op, T_ushort);
1302 const size_t *startp,
const size_t *countp,
1303 const ptrdiff_t *stridep,
1304 const unsigned int *op)
1307 int stat = NC_check_id(ncid, &ncp);
1309 return NC_put_vars(ncid, varid, startp, countp,
1310 stridep, (
void *)op, T_uint);
1315 const size_t *startp,
const size_t *countp,
1316 const ptrdiff_t *stridep,
1317 const long long *op)
1320 int stat = NC_check_id(ncid, &ncp);
1322 return NC_put_vars(ncid, varid, startp, countp,
1323 stridep, (
void *)op, T_longlong);
1328 const size_t *startp,
const size_t *countp,
1329 const ptrdiff_t *stridep,
1330 const unsigned long long *op)
1333 int stat = NC_check_id(ncid, &ncp);
1335 return NC_put_vars(ncid, varid, startp, countp,
1342 const size_t *startp,
const size_t *countp,
1343 const ptrdiff_t *stridep,
1347 int stat = NC_check_id(ncid, &ncp);
1349 return NC_put_vars(ncid, varid, startp, countp, stridep,
1400 const size_t *countp,
const ptrdiff_t *stridep,
1401 const ptrdiff_t *imapp,
const void *op)
1406 if ((stat = NC_check_id(ncid, &ncp)))
1408 return ncp->dispatch->put_varm(ncid, varid, startp, countp,
1409 stridep, imapp, op,
NC_NAT);
1414 const size_t *countp,
const ptrdiff_t *stridep,
1415 const ptrdiff_t *imapp,
const char *op)
1418 int stat = NC_check_id(ncid, &ncp);
1420 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1426 const size_t *startp,
const size_t *countp,
1427 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1428 const signed char *op)
1431 int stat = NC_check_id(ncid, &ncp);
1433 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1439 const size_t *startp,
const size_t *countp,
1440 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1441 const unsigned char *op)
1444 int stat = NC_check_id(ncid, &ncp);
1446 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1447 (
void *)op, T_uchar);
1452 const size_t *startp,
const size_t *countp,
1453 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1457 int stat = NC_check_id(ncid, &ncp);
1459 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1465 const size_t *startp,
const size_t *countp,
1466 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1470 int stat = NC_check_id(ncid, &ncp);
1472 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1478 const size_t *startp,
const size_t *countp,
1479 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1483 int stat = NC_check_id(ncid, &ncp);
1485 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1486 (
void *)op, T_long);
1491 const size_t *startp,
const size_t *countp,
1492 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1496 int stat = NC_check_id(ncid, &ncp);
1498 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1499 (
void *)op, T_float);
1504 const size_t *startp,
const size_t *countp,
1505 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1509 int stat = NC_check_id(ncid, &ncp);
1511 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1512 (
void *)op, T_double);
1517 const size_t *startp,
const size_t *countp,
1518 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1519 const unsigned char *op)
1522 int stat = NC_check_id(ncid, &ncp);
1524 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1525 (
void *)op, T_ubyte);
1530 const size_t *startp,
const size_t *countp,
1531 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1532 const unsigned short *op)
1535 int stat = NC_check_id(ncid, &ncp);
1537 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1538 (
void *)op, T_ushort);
1543 const size_t *startp,
const size_t *countp,
1544 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1545 const unsigned int *op)
1548 int stat = NC_check_id(ncid, &ncp);
1550 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1551 (
void *)op, T_uint);
1556 const size_t *startp,
const size_t *countp,
1557 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1558 const long long *op)
1561 int stat = NC_check_id(ncid, &ncp);
1563 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1564 (
void *)op, T_longlong);
1569 const size_t *startp,
const size_t *countp,
1570 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1571 const unsigned long long *op)
1574 int stat = NC_check_id(ncid, &ncp);
1576 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1583 const size_t *startp,
const size_t *countp,
1584 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1588 int stat = NC_check_id(ncid, &ncp);
1590 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.