8 #include "ncdispatch.h" 30 odom_init(
struct PUTodometer* odom,
int rank,
const size_t* start,
31 const size_t* edges,
const ptrdiff_t* stride)
34 memset(odom,0,
sizeof(
struct PUTodometer));
37 for(i=0;i<odom->rank;i++) {
38 odom->start[i] = (start != NULL ? start[i] : 0);
39 odom->edges[i] = (edges != NULL ? edges[i] : 1);
40 odom->stride[i] = (stride != NULL ? stride[i] : 1);
41 odom->stop[i] = odom->start[i] + (odom->edges[i]*(size_t)odom->stride[i]);
42 odom->index[i] = odom->start[i];
54 odom_more(
struct PUTodometer* odom)
56 return (odom->index[0] < odom->stop[0]);
67 odom_next(
struct PUTodometer* odom)
70 if(odom->rank == 0)
return 0;
71 for(i=odom->rank-1;i>=0;i--) {
72 odom->index[i] += (size_t)odom->stride[i];
73 if(odom->index[i] < odom->stop[i])
break;
75 odom->index[i] = odom->start[i];
84 NC_put_vara(
int ncid,
int varid,
const size_t *start,
85 const size_t *edges,
const void *value,
nc_type memtype)
88 size_t *my_count = (
size_t *)edges;
90 int stat = NC_check_id(ncid, &ncp);
93 if(start == NULL || edges == NULL) {
94 stat = NC_check_nulls(ncid, varid, start, &my_count, NULL);
97 stat = ncp->dispatch->put_vara(ncid, varid, start, my_count, value, memtype);
98 if(edges == NULL) free(my_count);
106 NC_put_var(
int ncid,
int varid,
const void *value,
nc_type memtype)
111 if(stat)
return stat;
112 stat = NC_getshape(ncid,varid, ndims, shape);
113 if(stat)
return stat;
114 return NC_put_vara(ncid, varid, NC_coord_zero, shape, value, memtype);
121 NC_put_var1(
int ncid,
int varid,
const size_t *coord,
const void* value,
124 return NC_put_vara(ncid, varid, coord, NC_coord_one, value, memtype);
131 NCDEFAULT_put_vars(
int ncid,
int varid,
const size_t * start,
132 const size_t * edges,
const ptrdiff_t * stride,
133 const void *value0,
nc_type memtype)
138 int i,isstride1,isrecvar;
140 struct PUTodometer odom;
146 const char* value = (
const char*)value0;
153 const char* memptr = value;
155 status = NC_check_id (ncid, &ncp);
156 if(status !=
NC_NOERR)
return status;
159 if(status !=
NC_NOERR)
return status;
161 if(memtype ==
NC_NAT) memtype = vartype;
164 status =
nc_inq_type(ncid,vartype,NULL,&vartypelen);
165 if(status !=
NC_NOERR)
return status;
167 if(memtype > NC_MAX_ATOMIC_TYPE)
168 memtypelen = (int)vartypelen;
170 memtypelen = nctypelen(memtype);
173 if(vartype != memtype) {
175 if(vartype > NC_MAX_ATOMIC_TYPE
176 || memtype > NC_MAX_ATOMIC_TYPE)
185 if(status !=
NC_NOERR)
return status;
188 if(rank > 0 && start == NULL)
192 status = NC_inq_recvar(ncid,varid,&nrecdims,is_recdim);
193 if(status !=
NC_NOERR)
return status;
194 isrecvar = (nrecdims > 0);
195 NC_getshape(ncid,varid,rank,varshape);
204 size_t edge1[1] = {1};
205 return NC_put_vara(ncid, varid, start, edge1, value0, memtype);
211 for(i=0;i<rank;i++) {
213 mystart[i] = (start == NULL ? 0 : start[i]);
215 dimlen = (i == 0 && isrecvar ? numrecs : varshape[i]);
216 if(i == 0 && isrecvar) {}
219 dimlen = varshape[i];
224 #ifdef RELAX_COORD_BOUND 232 if(i == 0 && isrecvar)
233 myedges[i] = numrecs - start[i];
235 if(is_recdim[i] && isrecvar)
236 myedges[i] = varshape[i] - start[i];
239 myedges[i] = varshape[i] - mystart[i];
241 myedges[i] = edges[i];
242 #ifdef RELAX_COORD_BOUND 244 if (mystart[i] == dimlen && myedges[i] > 0)
250 if(mystart[i] + myedges[i] > dimlen)
253 mystride[i] = (stride == NULL ? 1 : stride[i]);
256 || ((
unsigned long) mystride[i] >= X_INT_MAX))
258 if(mystride[i] != 1) isstride1 = 0;
263 return NC_put_vara(ncid, varid, mystart, myedges, value, memtype);
280 odom_init(&odom,rank,mystart,myedges,mystride);
283 while(odom_more(&odom)) {
286 localstatus = NC_put_vara(ncid,varid,odom.index,NC_coord_one,memptr,memtype);
292 status = localstatus;
294 memptr += memtypelen;
307 const size_t * start,
308 const size_t * edges,
309 const ptrdiff_t * stride,
310 const ptrdiff_t * imapp,
320 const char* value = (
char*)value0;
322 status = NC_check_id (ncid, &ncp);
323 if(status !=
NC_NOERR)
return status;
332 if(status !=
NC_NOERR)
return status;
334 if(vartype > NC_MAX_ATOMIC_TYPE)
338 if(status !=
NC_NOERR)
return status;
349 memtypelen = nctypelen(memtype);
351 maxidim = (int) varndims - 1;
360 size_t edge1[1] = {1};
361 return NC_put_vara(ncid, varid, start, edge1, value, memtype);
370 size_t *mystart = NULL;
375 ptrdiff_t *mystride = 0;
387 for (idim = 0; idim <= maxidim; ++idim) {
388 if ((stride[idim] == 0)
390 || ((
unsigned long) stride[idim] >= X_INT_MAX))
394 if(stride[idim] != 1) stride1 = 0;
401 if(stride1 && imapp == NULL) {
402 return NC_put_vara(ncid, varid, start, edges, value, memtype);
406 isrecvar = NC_is_recvar(ncid,varid,&numrecs);
407 NC_getshape(ncid,varid,varndims,varshape);
410 mystart = (
size_t *)calloc((
size_t)(varndims * 7),
sizeof(ptrdiff_t));
412 myedges = mystart + varndims;
413 iocount = myedges + varndims;
414 stop = iocount + varndims;
415 length = stop + varndims;
416 mystride = (ptrdiff_t *)(length + varndims);
417 mymap = mystride + varndims;
422 for (idim = maxidim; idim >= 0; --idim)
424 mystart[idim] = start != NULL
428 myedges[idim] = edges != NULL
430 : idim == 0 && isrecvar
431 ? numrecs - mystart[idim]
432 : varshape[idim] - mystart[idim];
435 for (idim = isrecvar; idim <= maxidim; ++idim)
437 #ifdef RELAX_COORD_BOUND 438 if (mystart[idim] > varshape[idim] ||
439 (mystart[idim] == varshape[idim] && myedges[idim] > 0))
441 if (mystart[idim] >= varshape[idim])
448 if (mystart[idim] + myedges[idim] > varshape[idim])
458 for (idim = maxidim; idim >= 0; --idim)
460 if (edges != NULL && edges[idim] == 0)
466 mystride[idim] = stride != NULL
469 mymap[idim] = imapp != NULL
473 : mymap[idim + 1] * (ptrdiff_t) myedges[idim + 1];
476 length[idim] = ((size_t)mymap[idim]) * myedges[idim];
477 stop[idim] = mystart[idim] + myedges[idim] * (size_t)mystride[idim];
487 if (mystride[maxidim] == 1
488 && mymap[maxidim] == 1)
490 iocount[maxidim] = myedges[maxidim];
491 mystride[maxidim] = (ptrdiff_t) myedges[maxidim];
492 mymap[maxidim] = (ptrdiff_t) length[maxidim];
501 int lstatus = NC_put_vara(ncid, varid, mystart, iocount,
516 value += (mymap[idim] * memtypelen);
517 mystart[idim] += (size_t)mystride[idim];
518 if (mystart[idim] == stop[idim])
520 size_t l = (length[idim] * (size_t)memtypelen);
522 mystart[idim] = start[idim];
538 NC_put_vars(
int ncid,
int varid,
const size_t *start,
539 const size_t *edges,
const ptrdiff_t *stride,
540 const void *value,
nc_type memtype)
543 size_t *my_count = (
size_t *)edges;
544 ptrdiff_t *my_stride = (ptrdiff_t *)stride;
547 stat = NC_check_id(ncid, &ncp);
551 if(start == NULL || edges == NULL || stride == NULL) {
552 stat = NC_check_nulls(ncid, varid, start, &my_count, &my_stride);
556 stat = ncp->dispatch->put_vars(ncid, varid, start, my_count, my_stride,
558 if(edges == NULL) free(my_count);
559 if(stride == NULL) free(my_stride);
567 NC_put_varm(
int ncid,
int varid,
const size_t *start,
568 const size_t *edges,
const ptrdiff_t *stride,
const ptrdiff_t* map,
569 const void *value,
nc_type memtype)
572 size_t *my_count = (
size_t *)edges;
573 ptrdiff_t *my_stride = (ptrdiff_t *)stride;
576 stat = NC_check_id(ncid, &ncp);
580 if(start == NULL || edges == NULL || stride == NULL) {
581 stat = NC_check_nulls(ncid, varid, start, &my_count, &my_stride);
585 stat = ncp->dispatch->put_varm(ncid, varid, start, my_count, my_stride,
586 map, value, memtype);
587 if(edges == NULL) free(my_count);
588 if(stride == NULL) free(my_stride);
640 const size_t *countp,
const void *op)
643 int stat = NC_check_id(ncid, &ncp);
648 return NC_put_vara(ncid, varid, startp, countp, op, xtype);
653 const size_t *countp,
const char *op)
655 return NC_put_vara(ncid, varid, startp, countp,
661 const size_t *countp,
const signed char *op)
663 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
669 const size_t *countp,
const unsigned char *op)
671 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
677 const size_t *countp,
const short *op)
679 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
685 const size_t *countp,
const int *op)
687 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
693 const size_t *countp,
const long *op)
695 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
701 const size_t *countp,
const float *op)
703 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
709 const size_t *countp,
const double *op)
711 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
717 const size_t *countp,
const unsigned char *op)
719 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
725 const size_t *countp,
const unsigned short *op)
727 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
733 const size_t *countp,
const unsigned int *op)
735 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
741 const size_t *countp,
const long long *op)
743 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
749 const size_t *countp,
const unsigned long long *op)
751 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
757 const size_t *countp,
const char* *op)
759 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
789 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
791 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
797 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
803 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
809 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
815 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
821 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
827 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
833 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
839 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
845 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
851 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
857 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
863 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
869 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
875 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
930 return NC_put_var(ncid, varid, op,
NC_NAT);
936 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
942 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
948 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
954 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
960 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
966 return NC_put_var(ncid,varid,(
void*)op,T_long);
972 return NC_put_var(ncid,varid,(
void*)op,T_float);
978 return NC_put_var(ncid,varid,(
void*)op,T_double);
984 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
990 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
996 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1002 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1008 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1014 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1052 const size_t *countp,
const ptrdiff_t *stridep,
1055 return NC_put_vars(ncid, varid, startp, countp, stridep, op,
NC_NAT);
1060 const size_t *countp,
const ptrdiff_t *stridep,
1063 return NC_put_vars(ncid, varid, startp, countp,
1069 const size_t *countp,
const ptrdiff_t *stridep,
1070 const signed char *op)
1072 return NC_put_vars(ncid, varid, startp, countp,
1078 const size_t *startp,
const size_t *countp,
1079 const ptrdiff_t *stridep,
1080 const unsigned char *op)
1082 return NC_put_vars(ncid, varid, startp, countp,
1083 stridep, (
void *)op, T_uchar);
1088 const size_t *startp,
const size_t *countp,
1089 const ptrdiff_t *stridep,
1092 return NC_put_vars(ncid, varid, startp, countp,
1098 const size_t *startp,
const size_t *countp,
1099 const ptrdiff_t *stridep,
1102 return NC_put_vars(ncid, varid, startp, countp,
1103 stridep, (
void *)op,
NC_INT);
1108 const size_t *startp,
const size_t *countp,
1109 const ptrdiff_t *stridep,
1112 return NC_put_vars(ncid, varid, startp, countp,
1113 stridep, (
void *)op, T_long);
1118 const size_t *startp,
const size_t *countp,
1119 const ptrdiff_t *stridep,
1122 return NC_put_vars(ncid, varid, startp, countp,
1123 stridep, (
void *)op, T_float);
1128 const size_t *startp,
const size_t *countp,
1129 const ptrdiff_t *stridep,
1132 return NC_put_vars(ncid, varid, startp, countp,
1133 stridep, (
void *)op, T_double);
1138 const size_t *startp,
const size_t *countp,
1139 const ptrdiff_t *stridep,
1140 const unsigned char *op)
1142 return NC_put_vars(ncid, varid, startp, countp,
1143 stridep, (
void *)op, T_ubyte);
1148 const size_t *startp,
const size_t *countp,
1149 const ptrdiff_t *stridep,
1150 const unsigned short *op)
1152 return NC_put_vars(ncid, varid, startp, countp,
1153 stridep, (
void *)op, T_ushort);
1158 const size_t *startp,
const size_t *countp,
1159 const ptrdiff_t *stridep,
1160 const unsigned int *op)
1162 return NC_put_vars(ncid, varid, startp, countp,
1163 stridep, (
void *)op, T_uint);
1168 const size_t *startp,
const size_t *countp,
1169 const ptrdiff_t *stridep,
1170 const long long *op)
1172 return NC_put_vars(ncid, varid, startp, countp,
1173 stridep, (
void *)op, T_longlong);
1178 const size_t *startp,
const size_t *countp,
1179 const ptrdiff_t *stridep,
1180 const unsigned long long *op)
1182 return NC_put_vars(ncid, varid, startp, countp,
1188 const size_t *startp,
const size_t *countp,
1189 const ptrdiff_t *stridep,
1192 return NC_put_vars(ncid, varid, startp, countp, stridep,
1244 const size_t *countp,
const ptrdiff_t *stridep,
1245 const ptrdiff_t *imapp,
const void *op)
1247 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp, op,
NC_NAT);
1252 const size_t *countp,
const ptrdiff_t *stridep,
1253 const ptrdiff_t *imapp,
const char *op)
1255 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1261 const size_t *startp,
const size_t *countp,
1262 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1263 const signed char *op)
1265 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1271 const size_t *startp,
const size_t *countp,
1272 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1273 const unsigned char *op)
1275 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1276 (
void *)op, T_uchar);
1281 const size_t *startp,
const size_t *countp,
1282 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1285 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1291 const size_t *startp,
const size_t *countp,
1292 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1295 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1301 const size_t *startp,
const size_t *countp,
1302 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1305 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1306 (
void *)op, T_long);
1311 const size_t *startp,
const size_t *countp,
1312 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1315 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1316 (
void *)op, T_float);
1321 const size_t *startp,
const size_t *countp,
1322 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1325 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1326 (
void *)op, T_double);
1331 const size_t *startp,
const size_t *countp,
1332 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1333 const unsigned char *op)
1335 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1336 (
void *)op, T_ubyte);
1341 const size_t *startp,
const size_t *countp,
1342 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1343 const unsigned short *op)
1345 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1346 (
void *)op, T_ushort);
1351 const size_t *startp,
const size_t *countp,
1352 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1353 const unsigned int *op)
1355 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1356 (
void *)op, T_uint);
1361 const size_t *startp,
const size_t *countp,
1362 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1363 const long long *op)
1365 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1366 (
void *)op, T_longlong);
1371 const size_t *startp,
const size_t *countp,
1372 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1373 const unsigned long long *op)
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,
1385 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.