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_sizevector1,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,
758 const size_t *countp,
const char* *op)
760 return NC_put_vara(ncid, varid, startp, countp, (
void *)op,
791 nc_put_var1(
int ncid,
int varid,
const size_t *indexp,
const void *op)
793 return NC_put_var1(ncid, varid, indexp, op,
NC_NAT);
799 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_CHAR);
805 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_BYTE);
811 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
817 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_SHORT);
823 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT);
829 return NC_put_var1(ncid, varid, indexp, (
void*)op, longtype);
835 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_FLOAT);
841 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_DOUBLE);
847 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UBYTE);
853 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_USHORT);
859 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT);
865 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_INT64);
871 return NC_put_var1(ncid, varid, indexp, (
void *)op,
NC_UINT64);
878 return NC_put_var1(ncid, varid, indexp, (
void*)op,
NC_STRING);
933 return NC_put_var(ncid, varid, op,
NC_NAT);
939 return NC_put_var(ncid,varid,(
void*)op,
NC_CHAR);
945 return NC_put_var(ncid,varid,(
void*)op,
NC_BYTE);
951 return NC_put_var(ncid,varid,(
void*)op,T_uchar);
957 return NC_put_var(ncid,varid,(
void*)op,
NC_SHORT);
963 return NC_put_var(ncid,varid,(
void*)op,
NC_INT);
969 return NC_put_var(ncid,varid,(
void*)op,T_long);
975 return NC_put_var(ncid,varid,(
void*)op,T_float);
981 return NC_put_var(ncid,varid,(
void*)op,T_double);
987 return NC_put_var(ncid,varid,(
void*)op,T_ubyte);
993 return NC_put_var(ncid,varid,(
void*)op,T_ushort);
999 return NC_put_var(ncid,varid,(
void*)op,T_uint);
1005 return NC_put_var(ncid,varid,(
void*)op,T_longlong);
1011 return NC_put_var(ncid,varid,(
void*)op,
NC_UINT64);
1018 return NC_put_var(ncid,varid,(
void*)op,
NC_STRING);
1056 const size_t *countp,
const ptrdiff_t *stridep,
1059 return NC_put_vars(ncid, varid, startp, countp, stridep, op,
NC_NAT);
1064 const size_t *countp,
const ptrdiff_t *stridep,
1067 return NC_put_vars(ncid, varid, startp, countp,
1073 const size_t *countp,
const ptrdiff_t *stridep,
1074 const signed char *op)
1076 return NC_put_vars(ncid, varid, startp, countp,
1082 const size_t *startp,
const size_t *countp,
1083 const ptrdiff_t *stridep,
1084 const unsigned char *op)
1086 return NC_put_vars(ncid, varid, startp, countp,
1087 stridep, (
void *)op, T_uchar);
1092 const size_t *startp,
const size_t *countp,
1093 const ptrdiff_t *stridep,
1096 return NC_put_vars(ncid, varid, startp, countp,
1102 const size_t *startp,
const size_t *countp,
1103 const ptrdiff_t *stridep,
1106 return NC_put_vars(ncid, varid, startp, countp,
1107 stridep, (
void *)op,
NC_INT);
1112 const size_t *startp,
const size_t *countp,
1113 const ptrdiff_t *stridep,
1116 return NC_put_vars(ncid, varid, startp, countp,
1117 stridep, (
void *)op, T_long);
1122 const size_t *startp,
const size_t *countp,
1123 const ptrdiff_t *stridep,
1126 return NC_put_vars(ncid, varid, startp, countp,
1127 stridep, (
void *)op, T_float);
1132 const size_t *startp,
const size_t *countp,
1133 const ptrdiff_t *stridep,
1136 return NC_put_vars(ncid, varid, startp, countp,
1137 stridep, (
void *)op, T_double);
1142 const size_t *startp,
const size_t *countp,
1143 const ptrdiff_t *stridep,
1144 const unsigned char *op)
1146 return NC_put_vars(ncid, varid, startp, countp,
1147 stridep, (
void *)op, T_ubyte);
1152 const size_t *startp,
const size_t *countp,
1153 const ptrdiff_t *stridep,
1154 const unsigned short *op)
1156 return NC_put_vars(ncid, varid, startp, countp,
1157 stridep, (
void *)op, T_ushort);
1162 const size_t *startp,
const size_t *countp,
1163 const ptrdiff_t *stridep,
1164 const unsigned int *op)
1166 return NC_put_vars(ncid, varid, startp, countp,
1167 stridep, (
void *)op, T_uint);
1172 const size_t *startp,
const size_t *countp,
1173 const ptrdiff_t *stridep,
1174 const long long *op)
1176 return NC_put_vars(ncid, varid, startp, countp,
1177 stridep, (
void *)op, T_longlong);
1182 const size_t *startp,
const size_t *countp,
1183 const ptrdiff_t *stridep,
1184 const unsigned long long *op)
1186 return NC_put_vars(ncid, varid, startp, countp,
1193 const size_t *startp,
const size_t *countp,
1194 const ptrdiff_t *stridep,
1197 return NC_put_vars(ncid, varid, startp, countp, stridep,
1249 const size_t *countp,
const ptrdiff_t *stridep,
1250 const ptrdiff_t *imapp,
const void *op)
1252 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp, op,
NC_NAT);
1257 const size_t *countp,
const ptrdiff_t *stridep,
1258 const ptrdiff_t *imapp,
const char *op)
1260 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1266 const size_t *startp,
const size_t *countp,
1267 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1268 const signed char *op)
1270 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1276 const size_t *startp,
const size_t *countp,
1277 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1278 const unsigned char *op)
1280 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1281 (
void *)op, T_uchar);
1286 const size_t *startp,
const size_t *countp,
1287 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1290 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1296 const size_t *startp,
const size_t *countp,
1297 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1300 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1306 const size_t *startp,
const size_t *countp,
1307 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1310 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1311 (
void *)op, T_long);
1316 const size_t *startp,
const size_t *countp,
1317 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1320 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1321 (
void *)op, T_float);
1326 const size_t *startp,
const size_t *countp,
1327 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1330 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1331 (
void *)op, T_double);
1336 const size_t *startp,
const size_t *countp,
1337 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1338 const unsigned char *op)
1340 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1341 (
void *)op, T_ubyte);
1346 const size_t *startp,
const size_t *countp,
1347 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1348 const unsigned short *op)
1350 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1351 (
void *)op, T_ushort);
1356 const size_t *startp,
const size_t *countp,
1357 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1358 const unsigned int *op)
1360 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1361 (
void *)op, T_uint);
1366 const size_t *startp,
const size_t *countp,
1367 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1368 const long long *op)
1370 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1371 (
void *)op, T_longlong);
1376 const size_t *startp,
const size_t *countp,
1377 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1378 const unsigned long long *op)
1380 return NC_put_varm(ncid, varid, startp, countp, stridep, imapp,
1387 const size_t *startp,
const size_t *countp,
1388 const ptrdiff_t *stridep,
const ptrdiff_t *imapp,
1391 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.