Cloned library NetCDF-C-4.9.2 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21417 lines
345 KiB

2 years ago
#line 9 "putget.m4"
/* Do not edit this file. It is produced from the corresponding .m4 source */
#line 11
/*
* Copyright 2018, University Corporation for Atmospheric Research
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
*/
/* $Id: putget.m4 2783 2014-10-26 05:19:35Z wkliao $ */
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include "netcdf.h"
#include "nc3dispatch.h"
#include "nc3internal.h"
#include "ncx.h"
#include "fbits.h"
#include "onstack.h"
#undef MIN /* system may define MIN somewhere and complain */
#define MIN(mm,nn) (((mm) < (nn)) ? (mm) : (nn))
static int
readNCv(const NC3_INFO* ncp, const NC_var* varp, const size_t* start,
const size_t nelems, void* value, const nc_type memtype);
static int
writeNCv(NC3_INFO* ncp, const NC_var* varp, const size_t* start,
const size_t nelems, const void* value, const nc_type memtype);
/* #define ODEBUG 1 */
#if ODEBUG
#include <stdio.h>
/*
* Print the values of an array of size_t
*/
void
arrayp(const char *label, size_t count, const size_t *array)
{
(void) fprintf(stderr, "%s", label);
(void) fputc('\t',stderr);
for(; count > 0; count--, array++)
(void) fprintf(stderr," %lu", (unsigned long)*array);
(void) fputc('\n',stderr);
}
#endif /* ODEBUG */
/* Begin fill */
/*
* This is tunable parameter.
* It essentially controls the tradeoff between the number of times
* memcpy() gets called to copy the external data to fill
* a large buffer vs the number of times its called to
* prepare the external data.
*/
#if _SX
/* NEC SX specific optimization */
#define NFILL 2048
#else
#define NFILL 16
#endif
#line 103
/*
* Next 6 type specific functions
* Fill a some memory with the default special value.
* Formerly
NC_arrayfill()
*/
static int
#line 110
NC_fill_schar(
#line 110
void **xpp,
#line 110
size_t nelems) /* how many */
#line 110
{
#line 110
schar fillp[NFILL * sizeof(double)/X_SIZEOF_CHAR];
#line 110
#line 110
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 110
#line 110
{
#line 110
schar *vp = fillp; /* lower bound of area to be filled */
#line 110
const schar *const end = vp + nelems;
#line 110
while(vp < end)
#line 110
{
#line 110
*vp++ = NC_FILL_BYTE;
#line 110
}
#line 110
}
#line 110
return ncx_putn_schar_schar(xpp, nelems, fillp ,NULL);
#line 110
}
#line 110
static int
#line 111
NC_fill_char(
#line 111
void **xpp,
#line 111
size_t nelems) /* how many */
#line 111
{
#line 111
char fillp[NFILL * sizeof(double)/X_SIZEOF_CHAR];
#line 111
#line 111
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 111
#line 111
{
#line 111
char *vp = fillp; /* lower bound of area to be filled */
#line 111
const char *const end = vp + nelems;
#line 111
while(vp < end)
#line 111
{
#line 111
*vp++ = NC_FILL_CHAR;
#line 111
}
#line 111
}
#line 111
return ncx_putn_char_char(xpp, nelems, fillp );
#line 111
}
#line 111
static int
#line 112
NC_fill_short(
#line 112
void **xpp,
#line 112
size_t nelems) /* how many */
#line 112
{
#line 112
short fillp[NFILL * sizeof(double)/X_SIZEOF_SHORT];
#line 112
#line 112
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 112
#line 112
{
#line 112
short *vp = fillp; /* lower bound of area to be filled */
#line 112
const short *const end = vp + nelems;
#line 112
while(vp < end)
#line 112
{
#line 112
*vp++ = NC_FILL_SHORT;
#line 112
}
#line 112
}
#line 112
return ncx_putn_short_short(xpp, nelems, fillp ,NULL);
#line 112
}
#line 112
#if (SIZEOF_INT >= X_SIZEOF_INT)
static int
#line 115
NC_fill_int(
#line 115
void **xpp,
#line 115
size_t nelems) /* how many */
#line 115
{
#line 115
int fillp[NFILL * sizeof(double)/X_SIZEOF_INT];
#line 115
#line 115
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 115
#line 115
{
#line 115
int *vp = fillp; /* lower bound of area to be filled */
#line 115
const int *const end = vp + nelems;
#line 115
while(vp < end)
#line 115
{
#line 115
*vp++ = NC_FILL_INT;
#line 115
}
#line 115
}
#line 115
return ncx_putn_int_int(xpp, nelems, fillp ,NULL);
#line 115
}
#line 115
#elif SIZEOF_LONG == X_SIZEOF_INT
static int
#line 117
NC_fill_int(
#line 117
void **xpp,
#line 117
size_t nelems) /* how many */
#line 117
{
#line 117
long fillp[NFILL * sizeof(double)/X_SIZEOF_INT];
#line 117
#line 117
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 117
#line 117
{
#line 117
long *vp = fillp; /* lower bound of area to be filled */
#line 117
const long *const end = vp + nelems;
#line 117
while(vp < end)
#line 117
{
#line 117
*vp++ = NC_FILL_INT;
#line 117
}
#line 117
}
#line 117
return ncx_putn_int_long(xpp, nelems, fillp ,NULL);
#line 117
}
#line 117
#else
#error "NC_fill_int implementation"
#endif
static int
#line 122
NC_fill_float(
#line 122
void **xpp,
#line 122
size_t nelems) /* how many */
#line 122
{
#line 122
float fillp[NFILL * sizeof(double)/X_SIZEOF_FLOAT];
#line 122
#line 122
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 122
#line 122
{
#line 122
float *vp = fillp; /* lower bound of area to be filled */
#line 122
const float *const end = vp + nelems;
#line 122
while(vp < end)
#line 122
{
#line 122
*vp++ = NC_FILL_FLOAT;
#line 122
}
#line 122
}
#line 122
return ncx_putn_float_float(xpp, nelems, fillp ,NULL);
#line 122
}
#line 122
static int
#line 123
NC_fill_double(
#line 123
void **xpp,
#line 123
size_t nelems) /* how many */
#line 123
{
#line 123
double fillp[NFILL * sizeof(double)/X_SIZEOF_DOUBLE];
#line 123
#line 123
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 123
#line 123
{
#line 123
double *vp = fillp; /* lower bound of area to be filled */
#line 123
const double *const end = vp + nelems;
#line 123
while(vp < end)
#line 123
{
#line 123
*vp++ = NC_FILL_DOUBLE;
#line 123
}
#line 123
}
#line 123
return ncx_putn_double_double(xpp, nelems, fillp ,NULL);
#line 123
}
#line 123
static int
#line 125
NC_fill_uchar(
#line 125
void **xpp,
#line 125
size_t nelems) /* how many */
#line 125
{
#line 125
uchar fillp[NFILL * sizeof(double)/X_SIZEOF_UBYTE];
#line 125
#line 125
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 125
#line 125
{
#line 125
uchar *vp = fillp; /* lower bound of area to be filled */
#line 125
const uchar *const end = vp + nelems;
#line 125
while(vp < end)
#line 125
{
#line 125
*vp++ = NC_FILL_UBYTE;
#line 125
}
#line 125
}
#line 125
return ncx_putn_uchar_uchar(xpp, nelems, fillp ,NULL);
#line 125
}
#line 125
static int
#line 126
NC_fill_ushort(
#line 126
void **xpp,
#line 126
size_t nelems) /* how many */
#line 126
{
#line 126
ushort fillp[NFILL * sizeof(double)/X_SIZEOF_USHORT];
#line 126
#line 126
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 126
#line 126
{
#line 126
ushort *vp = fillp; /* lower bound of area to be filled */
#line 126
const ushort *const end = vp + nelems;
#line 126
while(vp < end)
#line 126
{
#line 126
*vp++ = NC_FILL_USHORT;
#line 126
}
#line 126
}
#line 126
return ncx_putn_ushort_ushort(xpp, nelems, fillp ,NULL);
#line 126
}
#line 126
static int
#line 127
NC_fill_uint(
#line 127
void **xpp,
#line 127
size_t nelems) /* how many */
#line 127
{
#line 127
uint fillp[NFILL * sizeof(double)/X_SIZEOF_UINT];
#line 127
#line 127
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 127
#line 127
{
#line 127
uint *vp = fillp; /* lower bound of area to be filled */
#line 127
const uint *const end = vp + nelems;
#line 127
while(vp < end)
#line 127
{
#line 127
*vp++ = NC_FILL_UINT;
#line 127
}
#line 127
}
#line 127
return ncx_putn_uint_uint(xpp, nelems, fillp ,NULL);
#line 127
}
#line 127
static int
#line 128
NC_fill_longlong(
#line 128
void **xpp,
#line 128
size_t nelems) /* how many */
#line 128
{
#line 128
longlong fillp[NFILL * sizeof(double)/X_SIZEOF_LONGLONG];
#line 128
#line 128
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 128
#line 128
{
#line 128
longlong *vp = fillp; /* lower bound of area to be filled */
#line 128
const longlong *const end = vp + nelems;
#line 128
while(vp < end)
#line 128
{
#line 128
*vp++ = NC_FILL_INT64;
#line 128
}
#line 128
}
#line 128
return ncx_putn_longlong_longlong(xpp, nelems, fillp ,NULL);
#line 128
}
#line 128
static int
#line 129
NC_fill_ulonglong(
#line 129
void **xpp,
#line 129
size_t nelems) /* how many */
#line 129
{
#line 129
ulonglong fillp[NFILL * sizeof(double)/X_SIZEOF_ULONGLONG];
#line 129
#line 129
assert(nelems <= sizeof(fillp)/sizeof(fillp[0]));
#line 129
#line 129
{
#line 129
ulonglong *vp = fillp; /* lower bound of area to be filled */
#line 129
const ulonglong *const end = vp + nelems;
#line 129
while(vp < end)
#line 129
{
#line 129
*vp++ = NC_FILL_UINT64;
#line 129
}
#line 129
}
#line 129
return ncx_putn_ulonglong_ulonglong(xpp, nelems, fillp ,NULL);
#line 129
}
#line 129
/*
* Fill the external space for variable 'varp' values at 'recno' with
* the appropriate value. If 'varp' is not a record variable, fill the
* whole thing. For the special case when 'varp' is the only record
* variable and it is of type byte, char, or short, varsize should be
* ncp->recsize, otherwise it should be varp->len.
* Formerly
xdr_NC_fill()
*/
int
fill_NC_var(NC3_INFO* ncp, const NC_var *varp, long long varsize, size_t recno)
{
char xfillp[NFILL * X_SIZEOF_DOUBLE];
const size_t step = varp->xsz;
const size_t nelems = sizeof(xfillp)/step;
const size_t xsz = varp->xsz * nelems;
NC_attr **attrpp = NULL;
off_t offset;
long long remaining = varsize;
void *xp;
int status = NC_NOERR;
/*
* Set up fill value
*/
attrpp = NC_findattr(&varp->attrs, _FillValue);
if( attrpp != NULL )
{
/* User defined fill value */
if( (*attrpp)->type != varp->type || (*attrpp)->nelems != 1 )
{
return NC_EBADTYPE;
}
else
{
/* Use the user defined value */
char *cp = xfillp;
const char *const end = &xfillp[sizeof(xfillp)];
assert(step <= (*attrpp)->xsz);
for( /*NADA*/; cp < end; cp += step)
{
(void) memcpy(cp, (*attrpp)->xvalue, step);
}
}
}
else
{
/* use the default */
assert(xsz % X_ALIGN == 0);
assert(xsz <= sizeof(xfillp));
xp = xfillp;
switch(varp->type){
case NC_BYTE :
status = NC_fill_schar(&xp, nelems);
break;
case NC_CHAR :
status = NC_fill_char(&xp, nelems);
break;
case NC_SHORT :
status = NC_fill_short(&xp, nelems);
break;
case NC_INT :
status = NC_fill_int(&xp, nelems);
break;
case NC_FLOAT :
status = NC_fill_float(&xp, nelems);
break;
case NC_DOUBLE :
status = NC_fill_double(&xp, nelems);
break;
case NC_UBYTE :
status = NC_fill_uchar(&xp, nelems);
break;
case NC_USHORT :
status = NC_fill_ushort(&xp, nelems);
break;
case NC_UINT :
status = NC_fill_uint(&xp, nelems);
break;
case NC_INT64 :
status = NC_fill_longlong(&xp, nelems);
break;
case NC_UINT64 :
status = NC_fill_ulonglong(&xp, nelems);
break;
default :
assert("fill_NC_var invalid type" == 0);
status = NC_EBADTYPE;
break;
}
if(status != NC_NOERR)
return status;
assert(xp == xfillp + xsz);
}
/*
* copyout:
* xfillp now contains 'nelems' elements of the fill value
* in external representation.
*/
/*
* Copy it out.
*/
offset = varp->begin;
if(IS_RECVAR(varp))
{
offset += (off_t)ncp->recsize * recno;
}
assert(remaining > 0);
for(;;)
{
const size_t chunksz = MIN(remaining, ncp->chunk);
size_t ii;
status = ncio_get(ncp->nciop, offset, chunksz,
RGN_WRITE, &xp);
if(status != NC_NOERR)
{
return status;
}
/*
* fill the chunksz buffer in units of xsz
*/
for(ii = 0; ii < chunksz/xsz; ii++)
{
(void) memcpy(xp, xfillp, xsz);
xp = (char *)xp + xsz;
}
/*
* Deal with any remainder
*/
{
const size_t rem = chunksz % xsz;
if(rem != 0)
{
(void) memcpy(xp, xfillp, rem);
/* xp = (char *)xp + xsz; */
}
}
status = ncio_rel(ncp->nciop, offset, RGN_MODIFIED);
if(status != NC_NOERR)
{
break;
}
remaining -= chunksz;
if(remaining == 0)
break; /* normal loop exit */
offset += chunksz;
}
return status;
}
/* End fill */
/*
* Add a record containing the fill values.
*/
static int
NCfillrecord(NC3_INFO* ncp, const NC_var *const *varpp, size_t recno)
{
size_t ii = 0;
for(; ii < ncp->vars.nelems; ii++, varpp++)
{
if( !IS_RECVAR(*varpp) )
{
continue; /* skip non-record variables */
}
{
const int status = fill_NC_var(ncp, *varpp, (*varpp)->len, recno);
if(status != NC_NOERR)
return status;
}
}
return NC_NOERR;
}
/*
* Add a record containing the fill values in the special case when
* there is exactly one record variable, where we don't require each
* record to be four-byte aligned (no record padding).
*/
static int
NCfillspecialrecord(NC3_INFO* ncp, const NC_var *varp, size_t recno)
{
int status;
assert(IS_RECVAR(varp));
status = fill_NC_var(ncp, varp, ncp->recsize, recno);
if(status != NC_NOERR)
return status;
return NC_NOERR;
}
/*
* It is advantageous to
* #define TOUCH_LAST
* when using memory mapped io.
*/
#if TOUCH_LAST
/*
* Grow the file to a size which can contain recno
*/
static int
NCtouchlast(NC3_INFO* ncp, const NC_var *const *varpp, size_t recno)
{
int status = NC_NOERR;
const NC_var *varp = NULL;
{
size_t ii = 0;
for(; ii < ncp->vars.nelems; ii++, varpp++)
{
if( !IS_RECVAR(*varpp) )
{
continue; /* skip non-record variables */
}
varp = *varpp;
}
}
assert(varp != NULL);
assert( IS_RECVAR(varp) );
{
const off_t offset = varp->begin
+ (off_t)(recno-1) * (off_t)ncp->recsize
+ (off_t)(varp->len - varp->xsz);
void *xp;
status = ncio_get(ncp->nciop, offset, varp->xsz,
RGN_WRITE, &xp);
if(status != NC_NOERR)
return status;
(void)memset(xp, 0, varp->xsz);
status = ncio_rel(ncp->nciop, offset, RGN_MODIFIED);
}
return status;
}
#endif /* TOUCH_LAST */
/*
* Ensure that the netcdf file has 'numrecs' records,
* add records and fill as necessary.
*/
static int
NCvnrecs(NC3_INFO* ncp, size_t numrecs)
{
int status = NC_NOERR;
if(numrecs > NC_get_numrecs(ncp))
{
#if TOUCH_LAST
status = NCtouchlast(ncp,
(const NC_var *const*)ncp->vars.value,
numrecs);
if(status != NC_NOERR)
goto common_return;
#endif /* TOUCH_LAST */
set_NC_ndirty(ncp);
if(!NC_dofill(ncp))
{
/* Simply set the new numrecs value */
NC_set_numrecs(ncp, numrecs);
}
else
{
/* Treat two cases differently:
- exactly one record variable (no padding)
- multiple record variables (each record padded
to 4-byte alignment)
*/
NC_var **vpp = (NC_var **)ncp->vars.value;
NC_var *const *const end = &vpp[ncp->vars.nelems];
NC_var *recvarp = NULL; /* last record var */
int numrecvars = 0;
size_t cur_nrecs;
/* determine how many record variables */
for( /*NADA*/; vpp < end; vpp++) {
if(IS_RECVAR(*vpp)) {
recvarp = *vpp;
numrecvars++;
}
}
if (numrecvars != 1) { /* usual case */
/* Fill each record out to numrecs */
while((cur_nrecs = NC_get_numrecs(ncp)) < numrecs)
{
status = NCfillrecord(ncp,
(const NC_var *const*)ncp->vars.value,
cur_nrecs);
if(status != NC_NOERR)
{
break;
}
NC_increase_numrecs(ncp, cur_nrecs +1);
}
if(status != NC_NOERR)
goto common_return;
} else { /* special case */
/* Fill each record out to numrecs */
while((cur_nrecs = NC_get_numrecs(ncp)) < numrecs)
{
status = NCfillspecialrecord(ncp,
recvarp,
cur_nrecs);
if(status != NC_NOERR)
{
break;
}
NC_increase_numrecs(ncp, cur_nrecs +1);
}
if(status != NC_NOERR)
goto common_return;
}
}
if(NC_doNsync(ncp))
{
status = write_numrecs(ncp);
}
}
common_return:
return status;
}
/*
* Check whether 'coord' values are valid for the variable.
*/
static int
NCcoordck(NC3_INFO* ncp, const NC_var *varp, const size_t *coord)
{
const size_t *ip;
size_t *up;
if(varp->ndims == 0)
return NC_NOERR; /* 'scalar' variable */
if(IS_RECVAR(varp))
{
if(*coord > X_UINT_MAX) /* rkr: bug fix from previous X_INT_MAX */
return NC_EINVALCOORDS; /* sanity check */
if(NC_readonly(ncp) && *coord > NC_get_numrecs(ncp))
{
if(!NC_doNsync(ncp))
return NC_EINVALCOORDS;
/* else */
{
/* Update from disk and check again */
const int status = read_numrecs(ncp);
if(status != NC_NOERR)
return status;
if(*coord > NC_get_numrecs(ncp))
return NC_EINVALCOORDS;
}
}
ip = coord + 1;
up = varp->shape + 1;
}
else
{
ip = coord;
up = varp->shape;
}
#ifdef CDEBUG
fprintf(stderr," NCcoordck: coord %ld, count %d, ip %ld\n",
coord, varp->ndims, ip );
#endif /* CDEBUG */
for(; ip < coord + varp->ndims; ip++, up++)
{
#ifdef CDEBUG
fprintf(stderr," NCcoordck: ip %p, *ip %ld, up %p, *up %lu\n",
ip, *ip, up, *up );
#endif /* CDEBUG */
/* cast needed for braindead systems with signed size_t */
if((unsigned long) *ip > (unsigned long) *up )
return NC_EINVALCOORDS;
}
return NC_NOERR;
}
/*
* Check whether 'edges' are valid for the variable and 'start'
*/
/*ARGSUSED*/
static int
NCedgeck(const NC3_INFO* ncp, const NC_var *varp,
const size_t *start, const size_t *edges)
{
const size_t *const end = start + varp->ndims;
const size_t *shp = varp->shape;
if(varp->ndims == 0)
return NC_NOERR; /* 'scalar' variable */
if(IS_RECVAR(varp))
{
if (NC_readonly(ncp) &&
(start[0] == NC_get_numrecs(ncp) && edges[0] > 0))
return(NC_EINVALCOORDS);
start++;
edges++;
shp++;
}
for(; start < end; start++, edges++, shp++)
{
if ((unsigned long) *start == *shp && *edges > 0)
return(NC_EINVALCOORDS);
/* cast needed for braindead systems with signed size_t */
if((unsigned long) *edges > *shp ||
(unsigned long) *start + (unsigned long) *edges > *shp)
{
return(NC_EEDGE);
}
}
return NC_NOERR;
}
/*
* Translate the (variable, coord) pair into a seek index
*/
static off_t
NC_varoffset(const NC3_INFO* ncp, const NC_var *varp, const size_t *coord)
{
if(varp->ndims == 0) /* 'scalar' variable */
return varp->begin;
if(varp->ndims == 1)
{
if(IS_RECVAR(varp))
return varp->begin +
(off_t)(*coord) * (off_t)ncp->recsize;
/* else */
return varp->begin + (off_t)(*coord) * (off_t)varp->xsz;
}
/* else */
{
off_t lcoord = (off_t)coord[varp->ndims -1];
off_t *up = varp->dsizes +1;
const size_t *ip = coord;
const off_t *const end = varp->dsizes + varp->ndims;
if(IS_RECVAR(varp))
up++, ip++;
for(; up < end; up++, ip++)
lcoord += (off_t)(*up) * (off_t)(*ip);
lcoord *= varp->xsz;
if(IS_RECVAR(varp))
lcoord += (off_t)(*coord) * ncp->recsize;
lcoord += varp->begin;
return lcoord;
}
}
#line 693
static int
#line 694
putNCvx_char_char(NC3_INFO* ncp, const NC_var *varp,
#line 694
const size_t *start, size_t nelems, const char *value)
#line 694
{
#line 694
off_t offset = NC_varoffset(ncp, varp, start);
#line 694
size_t remaining = varp->xsz * nelems;
#line 694
int status = NC_NOERR;
#line 694
void *xp;
#line 694
void *fillp=NULL;
#line 694
#line 694
NC_UNUSED(fillp);
#line 694
#line 694
if(nelems == 0)
#line 694
return NC_NOERR;
#line 694
#line 694
assert(value != NULL);
#line 694
#line 694
#ifdef ERANGE_FILL
#line 694
fillp = malloc(varp->xsz);
#line 694
status = NC3_inq_var_fill(varp, fillp);
#line 694
#endif
#line 694
#line 694
for(;;)
#line 694
{
#line 694
size_t extent = MIN(remaining, ncp->chunk);
#line 694
size_t nput = ncx_howmany(varp->type, extent);
#line 694
#line 694
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 694
RGN_WRITE, &xp);
#line 694
if(lstatus != NC_NOERR)
#line 694
return lstatus;
#line 694
#line 694
lstatus = ncx_putn_char_char(&xp, nput, value );
#line 694
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 694
{
#line 694
/* not fatal to the loop */
#line 694
status = lstatus;
#line 694
}
#line 694
#line 694
(void) ncio_rel(ncp->nciop, offset,
#line 694
RGN_MODIFIED);
#line 694
#line 694
remaining -= extent;
#line 694
if(remaining == 0)
#line 694
break; /* normal loop exit */
#line 694
offset += (off_t)extent;
#line 694
value += nput;
#line 694
#line 694
}
#line 694
#ifdef ERANGE_FILL
#line 694
free(fillp);
#line 694
#endif
#line 694
#line 694
return status;
#line 694
}
#line 694
static int
#line 696
putNCvx_schar_schar(NC3_INFO* ncp, const NC_var *varp,
#line 696
const size_t *start, size_t nelems, const schar *value)
#line 696
{
#line 696
off_t offset = NC_varoffset(ncp, varp, start);
#line 696
size_t remaining = varp->xsz * nelems;
#line 696
int status = NC_NOERR;
#line 696
void *xp;
#line 696
void *fillp=NULL;
#line 696
#line 696
NC_UNUSED(fillp);
#line 696
#line 696
if(nelems == 0)
#line 696
return NC_NOERR;
#line 696
#line 696
assert(value != NULL);
#line 696
#line 696
#ifdef ERANGE_FILL
#line 696
fillp = malloc(varp->xsz);
#line 696
status = NC3_inq_var_fill(varp, fillp);
#line 696
#endif
#line 696
#line 696
for(;;)
#line 696
{
#line 696
size_t extent = MIN(remaining, ncp->chunk);
#line 696
size_t nput = ncx_howmany(varp->type, extent);
#line 696
#line 696
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 696
RGN_WRITE, &xp);
#line 696
if(lstatus != NC_NOERR)
#line 696
return lstatus;
#line 696
#line 696
lstatus = ncx_putn_schar_schar(&xp, nput, value ,fillp);
#line 696
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 696
{
#line 696
/* not fatal to the loop */
#line 696
status = lstatus;
#line 696
}
#line 696
#line 696
(void) ncio_rel(ncp->nciop, offset,
#line 696
RGN_MODIFIED);
#line 696
#line 696
remaining -= extent;
#line 696
if(remaining == 0)
#line 696
break; /* normal loop exit */
#line 696
offset += (off_t)extent;
#line 696
value += nput;
#line 696
#line 696
}
#line 696
#ifdef ERANGE_FILL
#line 696
free(fillp);
#line 696
#endif
#line 696
#line 696
return status;
#line 696
}
#line 696
static int
#line 697
putNCvx_schar_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 697
const size_t *start, size_t nelems, const uchar *value)
#line 697
{
#line 697
off_t offset = NC_varoffset(ncp, varp, start);
#line 697
size_t remaining = varp->xsz * nelems;
#line 697
int status = NC_NOERR;
#line 697
void *xp;
#line 697
void *fillp=NULL;
#line 697
#line 697
NC_UNUSED(fillp);
#line 697
#line 697
if(nelems == 0)
#line 697
return NC_NOERR;
#line 697
#line 697
assert(value != NULL);
#line 697
#line 697
#ifdef ERANGE_FILL
#line 697
fillp = malloc(varp->xsz);
#line 697
status = NC3_inq_var_fill(varp, fillp);
#line 697
#endif
#line 697
#line 697
for(;;)
#line 697
{
#line 697
size_t extent = MIN(remaining, ncp->chunk);
#line 697
size_t nput = ncx_howmany(varp->type, extent);
#line 697
#line 697
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 697
RGN_WRITE, &xp);
#line 697
if(lstatus != NC_NOERR)
#line 697
return lstatus;
#line 697
#line 697
lstatus = ncx_putn_schar_uchar(&xp, nput, value ,fillp);
#line 697
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 697
{
#line 697
/* not fatal to the loop */
#line 697
status = lstatus;
#line 697
}
#line 697
#line 697
(void) ncio_rel(ncp->nciop, offset,
#line 697
RGN_MODIFIED);
#line 697
#line 697
remaining -= extent;
#line 697
if(remaining == 0)
#line 697
break; /* normal loop exit */
#line 697
offset += (off_t)extent;
#line 697
value += nput;
#line 697
#line 697
}
#line 697
#ifdef ERANGE_FILL
#line 697
free(fillp);
#line 697
#endif
#line 697
#line 697
return status;
#line 697
}
#line 697
static int
#line 698
putNCvx_schar_short(NC3_INFO* ncp, const NC_var *varp,
#line 698
const size_t *start, size_t nelems, const short *value)
#line 698
{
#line 698
off_t offset = NC_varoffset(ncp, varp, start);
#line 698
size_t remaining = varp->xsz * nelems;
#line 698
int status = NC_NOERR;
#line 698
void *xp;
#line 698
void *fillp=NULL;
#line 698
#line 698
NC_UNUSED(fillp);
#line 698
#line 698
if(nelems == 0)
#line 698
return NC_NOERR;
#line 698
#line 698
assert(value != NULL);
#line 698
#line 698
#ifdef ERANGE_FILL
#line 698
fillp = malloc(varp->xsz);
#line 698
status = NC3_inq_var_fill(varp, fillp);
#line 698
#endif
#line 698
#line 698
for(;;)
#line 698
{
#line 698
size_t extent = MIN(remaining, ncp->chunk);
#line 698
size_t nput = ncx_howmany(varp->type, extent);
#line 698
#line 698
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 698
RGN_WRITE, &xp);
#line 698
if(lstatus != NC_NOERR)
#line 698
return lstatus;
#line 698
#line 698
lstatus = ncx_putn_schar_short(&xp, nput, value ,fillp);
#line 698
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 698
{
#line 698
/* not fatal to the loop */
#line 698
status = lstatus;
#line 698
}
#line 698
#line 698
(void) ncio_rel(ncp->nciop, offset,
#line 698
RGN_MODIFIED);
#line 698
#line 698
remaining -= extent;
#line 698
if(remaining == 0)
#line 698
break; /* normal loop exit */
#line 698
offset += (off_t)extent;
#line 698
value += nput;
#line 698
#line 698
}
#line 698
#ifdef ERANGE_FILL
#line 698
free(fillp);
#line 698
#endif
#line 698
#line 698
return status;
#line 698
}
#line 698
static int
#line 699
putNCvx_schar_int(NC3_INFO* ncp, const NC_var *varp,
#line 699
const size_t *start, size_t nelems, const int *value)
#line 699
{
#line 699
off_t offset = NC_varoffset(ncp, varp, start);
#line 699
size_t remaining = varp->xsz * nelems;
#line 699
int status = NC_NOERR;
#line 699
void *xp;
#line 699
void *fillp=NULL;
#line 699
#line 699
NC_UNUSED(fillp);
#line 699
#line 699
if(nelems == 0)
#line 699
return NC_NOERR;
#line 699
#line 699
assert(value != NULL);
#line 699
#line 699
#ifdef ERANGE_FILL
#line 699
fillp = malloc(varp->xsz);
#line 699
status = NC3_inq_var_fill(varp, fillp);
#line 699
#endif
#line 699
#line 699
for(;;)
#line 699
{
#line 699
size_t extent = MIN(remaining, ncp->chunk);
#line 699
size_t nput = ncx_howmany(varp->type, extent);
#line 699
#line 699
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 699
RGN_WRITE, &xp);
#line 699
if(lstatus != NC_NOERR)
#line 699
return lstatus;
#line 699
#line 699
lstatus = ncx_putn_schar_int(&xp, nput, value ,fillp);
#line 699
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 699
{
#line 699
/* not fatal to the loop */
#line 699
status = lstatus;
#line 699
}
#line 699
#line 699
(void) ncio_rel(ncp->nciop, offset,
#line 699
RGN_MODIFIED);
#line 699
#line 699
remaining -= extent;
#line 699
if(remaining == 0)
#line 699
break; /* normal loop exit */
#line 699
offset += (off_t)extent;
#line 699
value += nput;
#line 699
#line 699
}
#line 699
#ifdef ERANGE_FILL
#line 699
free(fillp);
#line 699
#endif
#line 699
#line 699
return status;
#line 699
}
#line 699
static int
#line 700
putNCvx_schar_float(NC3_INFO* ncp, const NC_var *varp,
#line 700
const size_t *start, size_t nelems, const float *value)
#line 700
{
#line 700
off_t offset = NC_varoffset(ncp, varp, start);
#line 700
size_t remaining = varp->xsz * nelems;
#line 700
int status = NC_NOERR;
#line 700
void *xp;
#line 700
void *fillp=NULL;
#line 700
#line 700
NC_UNUSED(fillp);
#line 700
#line 700
if(nelems == 0)
#line 700
return NC_NOERR;
#line 700
#line 700
assert(value != NULL);
#line 700
#line 700
#ifdef ERANGE_FILL
#line 700
fillp = malloc(varp->xsz);
#line 700
status = NC3_inq_var_fill(varp, fillp);
#line 700
#endif
#line 700
#line 700
for(;;)
#line 700
{
#line 700
size_t extent = MIN(remaining, ncp->chunk);
#line 700
size_t nput = ncx_howmany(varp->type, extent);
#line 700
#line 700
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 700
RGN_WRITE, &xp);
#line 700
if(lstatus != NC_NOERR)
#line 700
return lstatus;
#line 700
#line 700
lstatus = ncx_putn_schar_float(&xp, nput, value ,fillp);
#line 700
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 700
{
#line 700
/* not fatal to the loop */
#line 700
status = lstatus;
#line 700
}
#line 700
#line 700
(void) ncio_rel(ncp->nciop, offset,
#line 700
RGN_MODIFIED);
#line 700
#line 700
remaining -= extent;
#line 700
if(remaining == 0)
#line 700
break; /* normal loop exit */
#line 700
offset += (off_t)extent;
#line 700
value += nput;
#line 700
#line 700
}
#line 700
#ifdef ERANGE_FILL
#line 700
free(fillp);
#line 700
#endif
#line 700
#line 700
return status;
#line 700
}
#line 700
static int
#line 701
putNCvx_schar_double(NC3_INFO* ncp, const NC_var *varp,
#line 701
const size_t *start, size_t nelems, const double *value)
#line 701
{
#line 701
off_t offset = NC_varoffset(ncp, varp, start);
#line 701
size_t remaining = varp->xsz * nelems;
#line 701
int status = NC_NOERR;
#line 701
void *xp;
#line 701
void *fillp=NULL;
#line 701
#line 701
NC_UNUSED(fillp);
#line 701
#line 701
if(nelems == 0)
#line 701
return NC_NOERR;
#line 701
#line 701
assert(value != NULL);
#line 701
#line 701
#ifdef ERANGE_FILL
#line 701
fillp = malloc(varp->xsz);
#line 701
status = NC3_inq_var_fill(varp, fillp);
#line 701
#endif
#line 701
#line 701
for(;;)
#line 701
{
#line 701
size_t extent = MIN(remaining, ncp->chunk);
#line 701
size_t nput = ncx_howmany(varp->type, extent);
#line 701
#line 701
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 701
RGN_WRITE, &xp);
#line 701
if(lstatus != NC_NOERR)
#line 701
return lstatus;
#line 701
#line 701
lstatus = ncx_putn_schar_double(&xp, nput, value ,fillp);
#line 701
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 701
{
#line 701
/* not fatal to the loop */
#line 701
status = lstatus;
#line 701
}
#line 701
#line 701
(void) ncio_rel(ncp->nciop, offset,
#line 701
RGN_MODIFIED);
#line 701
#line 701
remaining -= extent;
#line 701
if(remaining == 0)
#line 701
break; /* normal loop exit */
#line 701
offset += (off_t)extent;
#line 701
value += nput;
#line 701
#line 701
}
#line 701
#ifdef ERANGE_FILL
#line 701
free(fillp);
#line 701
#endif
#line 701
#line 701
return status;
#line 701
}
#line 701
static int
#line 702
putNCvx_schar_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 702
const size_t *start, size_t nelems, const longlong *value)
#line 702
{
#line 702
off_t offset = NC_varoffset(ncp, varp, start);
#line 702
size_t remaining = varp->xsz * nelems;
#line 702
int status = NC_NOERR;
#line 702
void *xp;
#line 702
void *fillp=NULL;
#line 702
#line 702
NC_UNUSED(fillp);
#line 702
#line 702
if(nelems == 0)
#line 702
return NC_NOERR;
#line 702
#line 702
assert(value != NULL);
#line 702
#line 702
#ifdef ERANGE_FILL
#line 702
fillp = malloc(varp->xsz);
#line 702
status = NC3_inq_var_fill(varp, fillp);
#line 702
#endif
#line 702
#line 702
for(;;)
#line 702
{
#line 702
size_t extent = MIN(remaining, ncp->chunk);
#line 702
size_t nput = ncx_howmany(varp->type, extent);
#line 702
#line 702
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 702
RGN_WRITE, &xp);
#line 702
if(lstatus != NC_NOERR)
#line 702
return lstatus;
#line 702
#line 702
lstatus = ncx_putn_schar_longlong(&xp, nput, value ,fillp);
#line 702
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 702
{
#line 702
/* not fatal to the loop */
#line 702
status = lstatus;
#line 702
}
#line 702
#line 702
(void) ncio_rel(ncp->nciop, offset,
#line 702
RGN_MODIFIED);
#line 702
#line 702
remaining -= extent;
#line 702
if(remaining == 0)
#line 702
break; /* normal loop exit */
#line 702
offset += (off_t)extent;
#line 702
value += nput;
#line 702
#line 702
}
#line 702
#ifdef ERANGE_FILL
#line 702
free(fillp);
#line 702
#endif
#line 702
#line 702
return status;
#line 702
}
#line 702
static int
#line 703
putNCvx_schar_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 703
const size_t *start, size_t nelems, const ushort *value)
#line 703
{
#line 703
off_t offset = NC_varoffset(ncp, varp, start);
#line 703
size_t remaining = varp->xsz * nelems;
#line 703
int status = NC_NOERR;
#line 703
void *xp;
#line 703
void *fillp=NULL;
#line 703
#line 703
NC_UNUSED(fillp);
#line 703
#line 703
if(nelems == 0)
#line 703
return NC_NOERR;
#line 703
#line 703
assert(value != NULL);
#line 703
#line 703
#ifdef ERANGE_FILL
#line 703
fillp = malloc(varp->xsz);
#line 703
status = NC3_inq_var_fill(varp, fillp);
#line 703
#endif
#line 703
#line 703
for(;;)
#line 703
{
#line 703
size_t extent = MIN(remaining, ncp->chunk);
#line 703
size_t nput = ncx_howmany(varp->type, extent);
#line 703
#line 703
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 703
RGN_WRITE, &xp);
#line 703
if(lstatus != NC_NOERR)
#line 703
return lstatus;
#line 703
#line 703
lstatus = ncx_putn_schar_ushort(&xp, nput, value ,fillp);
#line 703
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 703
{
#line 703
/* not fatal to the loop */
#line 703
status = lstatus;
#line 703
}
#line 703
#line 703
(void) ncio_rel(ncp->nciop, offset,
#line 703
RGN_MODIFIED);
#line 703
#line 703
remaining -= extent;
#line 703
if(remaining == 0)
#line 703
break; /* normal loop exit */
#line 703
offset += (off_t)extent;
#line 703
value += nput;
#line 703
#line 703
}
#line 703
#ifdef ERANGE_FILL
#line 703
free(fillp);
#line 703
#endif
#line 703
#line 703
return status;
#line 703
}
#line 703
static int
#line 704
putNCvx_schar_uint(NC3_INFO* ncp, const NC_var *varp,
#line 704
const size_t *start, size_t nelems, const uint *value)
#line 704
{
#line 704
off_t offset = NC_varoffset(ncp, varp, start);
#line 704
size_t remaining = varp->xsz * nelems;
#line 704
int status = NC_NOERR;
#line 704
void *xp;
#line 704
void *fillp=NULL;
#line 704
#line 704
NC_UNUSED(fillp);
#line 704
#line 704
if(nelems == 0)
#line 704
return NC_NOERR;
#line 704
#line 704
assert(value != NULL);
#line 704
#line 704
#ifdef ERANGE_FILL
#line 704
fillp = malloc(varp->xsz);
#line 704
status = NC3_inq_var_fill(varp, fillp);
#line 704
#endif
#line 704
#line 704
for(;;)
#line 704
{
#line 704
size_t extent = MIN(remaining, ncp->chunk);
#line 704
size_t nput = ncx_howmany(varp->type, extent);
#line 704
#line 704
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 704
RGN_WRITE, &xp);
#line 704
if(lstatus != NC_NOERR)
#line 704
return lstatus;
#line 704
#line 704
lstatus = ncx_putn_schar_uint(&xp, nput, value ,fillp);
#line 704
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 704
{
#line 704
/* not fatal to the loop */
#line 704
status = lstatus;
#line 704
}
#line 704
#line 704
(void) ncio_rel(ncp->nciop, offset,
#line 704
RGN_MODIFIED);
#line 704
#line 704
remaining -= extent;
#line 704
if(remaining == 0)
#line 704
break; /* normal loop exit */
#line 704
offset += (off_t)extent;
#line 704
value += nput;
#line 704
#line 704
}
#line 704
#ifdef ERANGE_FILL
#line 704
free(fillp);
#line 704
#endif
#line 704
#line 704
return status;
#line 704
}
#line 704
static int
#line 705
putNCvx_schar_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 705
const size_t *start, size_t nelems, const ulonglong *value)
#line 705
{
#line 705
off_t offset = NC_varoffset(ncp, varp, start);
#line 705
size_t remaining = varp->xsz * nelems;
#line 705
int status = NC_NOERR;
#line 705
void *xp;
#line 705
void *fillp=NULL;
#line 705
#line 705
NC_UNUSED(fillp);
#line 705
#line 705
if(nelems == 0)
#line 705
return NC_NOERR;
#line 705
#line 705
assert(value != NULL);
#line 705
#line 705
#ifdef ERANGE_FILL
#line 705
fillp = malloc(varp->xsz);
#line 705
status = NC3_inq_var_fill(varp, fillp);
#line 705
#endif
#line 705
#line 705
for(;;)
#line 705
{
#line 705
size_t extent = MIN(remaining, ncp->chunk);
#line 705
size_t nput = ncx_howmany(varp->type, extent);
#line 705
#line 705
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 705
RGN_WRITE, &xp);
#line 705
if(lstatus != NC_NOERR)
#line 705
return lstatus;
#line 705
#line 705
lstatus = ncx_putn_schar_ulonglong(&xp, nput, value ,fillp);
#line 705
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 705
{
#line 705
/* not fatal to the loop */
#line 705
status = lstatus;
#line 705
}
#line 705
#line 705
(void) ncio_rel(ncp->nciop, offset,
#line 705
RGN_MODIFIED);
#line 705
#line 705
remaining -= extent;
#line 705
if(remaining == 0)
#line 705
break; /* normal loop exit */
#line 705
offset += (off_t)extent;
#line 705
value += nput;
#line 705
#line 705
}
#line 705
#ifdef ERANGE_FILL
#line 705
free(fillp);
#line 705
#endif
#line 705
#line 705
return status;
#line 705
}
#line 705
static int
#line 707
putNCvx_short_schar(NC3_INFO* ncp, const NC_var *varp,
#line 707
const size_t *start, size_t nelems, const schar *value)
#line 707
{
#line 707
off_t offset = NC_varoffset(ncp, varp, start);
#line 707
size_t remaining = varp->xsz * nelems;
#line 707
int status = NC_NOERR;
#line 707
void *xp;
#line 707
void *fillp=NULL;
#line 707
#line 707
NC_UNUSED(fillp);
#line 707
#line 707
if(nelems == 0)
#line 707
return NC_NOERR;
#line 707
#line 707
assert(value != NULL);
#line 707
#line 707
#ifdef ERANGE_FILL
#line 707
fillp = malloc(varp->xsz);
#line 707
status = NC3_inq_var_fill(varp, fillp);
#line 707
#endif
#line 707
#line 707
for(;;)
#line 707
{
#line 707
size_t extent = MIN(remaining, ncp->chunk);
#line 707
size_t nput = ncx_howmany(varp->type, extent);
#line 707
#line 707
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 707
RGN_WRITE, &xp);
#line 707
if(lstatus != NC_NOERR)
#line 707
return lstatus;
#line 707
#line 707
lstatus = ncx_putn_short_schar(&xp, nput, value ,fillp);
#line 707
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 707
{
#line 707
/* not fatal to the loop */
#line 707
status = lstatus;
#line 707
}
#line 707
#line 707
(void) ncio_rel(ncp->nciop, offset,
#line 707
RGN_MODIFIED);
#line 707
#line 707
remaining -= extent;
#line 707
if(remaining == 0)
#line 707
break; /* normal loop exit */
#line 707
offset += (off_t)extent;
#line 707
value += nput;
#line 707
#line 707
}
#line 707
#ifdef ERANGE_FILL
#line 707
free(fillp);
#line 707
#endif
#line 707
#line 707
return status;
#line 707
}
#line 707
static int
#line 708
putNCvx_short_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 708
const size_t *start, size_t nelems, const uchar *value)
#line 708
{
#line 708
off_t offset = NC_varoffset(ncp, varp, start);
#line 708
size_t remaining = varp->xsz * nelems;
#line 708
int status = NC_NOERR;
#line 708
void *xp;
#line 708
void *fillp=NULL;
#line 708
#line 708
NC_UNUSED(fillp);
#line 708
#line 708
if(nelems == 0)
#line 708
return NC_NOERR;
#line 708
#line 708
assert(value != NULL);
#line 708
#line 708
#ifdef ERANGE_FILL
#line 708
fillp = malloc(varp->xsz);
#line 708
status = NC3_inq_var_fill(varp, fillp);
#line 708
#endif
#line 708
#line 708
for(;;)
#line 708
{
#line 708
size_t extent = MIN(remaining, ncp->chunk);
#line 708
size_t nput = ncx_howmany(varp->type, extent);
#line 708
#line 708
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 708
RGN_WRITE, &xp);
#line 708
if(lstatus != NC_NOERR)
#line 708
return lstatus;
#line 708
#line 708
lstatus = ncx_putn_short_uchar(&xp, nput, value ,fillp);
#line 708
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 708
{
#line 708
/* not fatal to the loop */
#line 708
status = lstatus;
#line 708
}
#line 708
#line 708
(void) ncio_rel(ncp->nciop, offset,
#line 708
RGN_MODIFIED);
#line 708
#line 708
remaining -= extent;
#line 708
if(remaining == 0)
#line 708
break; /* normal loop exit */
#line 708
offset += (off_t)extent;
#line 708
value += nput;
#line 708
#line 708
}
#line 708
#ifdef ERANGE_FILL
#line 708
free(fillp);
#line 708
#endif
#line 708
#line 708
return status;
#line 708
}
#line 708
static int
#line 709
putNCvx_short_short(NC3_INFO* ncp, const NC_var *varp,
#line 709
const size_t *start, size_t nelems, const short *value)
#line 709
{
#line 709
off_t offset = NC_varoffset(ncp, varp, start);
#line 709
size_t remaining = varp->xsz * nelems;
#line 709
int status = NC_NOERR;
#line 709
void *xp;
#line 709
void *fillp=NULL;
#line 709
#line 709
NC_UNUSED(fillp);
#line 709
#line 709
if(nelems == 0)
#line 709
return NC_NOERR;
#line 709
#line 709
assert(value != NULL);
#line 709
#line 709
#ifdef ERANGE_FILL
#line 709
fillp = malloc(varp->xsz);
#line 709
status = NC3_inq_var_fill(varp, fillp);
#line 709
#endif
#line 709
#line 709
for(;;)
#line 709
{
#line 709
size_t extent = MIN(remaining, ncp->chunk);
#line 709
size_t nput = ncx_howmany(varp->type, extent);
#line 709
#line 709
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 709
RGN_WRITE, &xp);
#line 709
if(lstatus != NC_NOERR)
#line 709
return lstatus;
#line 709
#line 709
lstatus = ncx_putn_short_short(&xp, nput, value ,fillp);
#line 709
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 709
{
#line 709
/* not fatal to the loop */
#line 709
status = lstatus;
#line 709
}
#line 709
#line 709
(void) ncio_rel(ncp->nciop, offset,
#line 709
RGN_MODIFIED);
#line 709
#line 709
remaining -= extent;
#line 709
if(remaining == 0)
#line 709
break; /* normal loop exit */
#line 709
offset += (off_t)extent;
#line 709
value += nput;
#line 709
#line 709
}
#line 709
#ifdef ERANGE_FILL
#line 709
free(fillp);
#line 709
#endif
#line 709
#line 709
return status;
#line 709
}
#line 709
static int
#line 710
putNCvx_short_int(NC3_INFO* ncp, const NC_var *varp,
#line 710
const size_t *start, size_t nelems, const int *value)
#line 710
{
#line 710
off_t offset = NC_varoffset(ncp, varp, start);
#line 710
size_t remaining = varp->xsz * nelems;
#line 710
int status = NC_NOERR;
#line 710
void *xp;
#line 710
void *fillp=NULL;
#line 710
#line 710
NC_UNUSED(fillp);
#line 710
#line 710
if(nelems == 0)
#line 710
return NC_NOERR;
#line 710
#line 710
assert(value != NULL);
#line 710
#line 710
#ifdef ERANGE_FILL
#line 710
fillp = malloc(varp->xsz);
#line 710
status = NC3_inq_var_fill(varp, fillp);
#line 710
#endif
#line 710
#line 710
for(;;)
#line 710
{
#line 710
size_t extent = MIN(remaining, ncp->chunk);
#line 710
size_t nput = ncx_howmany(varp->type, extent);
#line 710
#line 710
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 710
RGN_WRITE, &xp);
#line 710
if(lstatus != NC_NOERR)
#line 710
return lstatus;
#line 710
#line 710
lstatus = ncx_putn_short_int(&xp, nput, value ,fillp);
#line 710
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 710
{
#line 710
/* not fatal to the loop */
#line 710
status = lstatus;
#line 710
}
#line 710
#line 710
(void) ncio_rel(ncp->nciop, offset,
#line 710
RGN_MODIFIED);
#line 710
#line 710
remaining -= extent;
#line 710
if(remaining == 0)
#line 710
break; /* normal loop exit */
#line 710
offset += (off_t)extent;
#line 710
value += nput;
#line 710
#line 710
}
#line 710
#ifdef ERANGE_FILL
#line 710
free(fillp);
#line 710
#endif
#line 710
#line 710
return status;
#line 710
}
#line 710
static int
#line 711
putNCvx_short_float(NC3_INFO* ncp, const NC_var *varp,
#line 711
const size_t *start, size_t nelems, const float *value)
#line 711
{
#line 711
off_t offset = NC_varoffset(ncp, varp, start);
#line 711
size_t remaining = varp->xsz * nelems;
#line 711
int status = NC_NOERR;
#line 711
void *xp;
#line 711
void *fillp=NULL;
#line 711
#line 711
NC_UNUSED(fillp);
#line 711
#line 711
if(nelems == 0)
#line 711
return NC_NOERR;
#line 711
#line 711
assert(value != NULL);
#line 711
#line 711
#ifdef ERANGE_FILL
#line 711
fillp = malloc(varp->xsz);
#line 711
status = NC3_inq_var_fill(varp, fillp);
#line 711
#endif
#line 711
#line 711
for(;;)
#line 711
{
#line 711
size_t extent = MIN(remaining, ncp->chunk);
#line 711
size_t nput = ncx_howmany(varp->type, extent);
#line 711
#line 711
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 711
RGN_WRITE, &xp);
#line 711
if(lstatus != NC_NOERR)
#line 711
return lstatus;
#line 711
#line 711
lstatus = ncx_putn_short_float(&xp, nput, value ,fillp);
#line 711
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 711
{
#line 711
/* not fatal to the loop */
#line 711
status = lstatus;
#line 711
}
#line 711
#line 711
(void) ncio_rel(ncp->nciop, offset,
#line 711
RGN_MODIFIED);
#line 711
#line 711
remaining -= extent;
#line 711
if(remaining == 0)
#line 711
break; /* normal loop exit */
#line 711
offset += (off_t)extent;
#line 711
value += nput;
#line 711
#line 711
}
#line 711
#ifdef ERANGE_FILL
#line 711
free(fillp);
#line 711
#endif
#line 711
#line 711
return status;
#line 711
}
#line 711
static int
#line 712
putNCvx_short_double(NC3_INFO* ncp, const NC_var *varp,
#line 712
const size_t *start, size_t nelems, const double *value)
#line 712
{
#line 712
off_t offset = NC_varoffset(ncp, varp, start);
#line 712
size_t remaining = varp->xsz * nelems;
#line 712
int status = NC_NOERR;
#line 712
void *xp;
#line 712
void *fillp=NULL;
#line 712
#line 712
NC_UNUSED(fillp);
#line 712
#line 712
if(nelems == 0)
#line 712
return NC_NOERR;
#line 712
#line 712
assert(value != NULL);
#line 712
#line 712
#ifdef ERANGE_FILL
#line 712
fillp = malloc(varp->xsz);
#line 712
status = NC3_inq_var_fill(varp, fillp);
#line 712
#endif
#line 712
#line 712
for(;;)
#line 712
{
#line 712
size_t extent = MIN(remaining, ncp->chunk);
#line 712
size_t nput = ncx_howmany(varp->type, extent);
#line 712
#line 712
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 712
RGN_WRITE, &xp);
#line 712
if(lstatus != NC_NOERR)
#line 712
return lstatus;
#line 712
#line 712
lstatus = ncx_putn_short_double(&xp, nput, value ,fillp);
#line 712
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 712
{
#line 712
/* not fatal to the loop */
#line 712
status = lstatus;
#line 712
}
#line 712
#line 712
(void) ncio_rel(ncp->nciop, offset,
#line 712
RGN_MODIFIED);
#line 712
#line 712
remaining -= extent;
#line 712
if(remaining == 0)
#line 712
break; /* normal loop exit */
#line 712
offset += (off_t)extent;
#line 712
value += nput;
#line 712
#line 712
}
#line 712
#ifdef ERANGE_FILL
#line 712
free(fillp);
#line 712
#endif
#line 712
#line 712
return status;
#line 712
}
#line 712
static int
#line 713
putNCvx_short_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 713
const size_t *start, size_t nelems, const longlong *value)
#line 713
{
#line 713
off_t offset = NC_varoffset(ncp, varp, start);
#line 713
size_t remaining = varp->xsz * nelems;
#line 713
int status = NC_NOERR;
#line 713
void *xp;
#line 713
void *fillp=NULL;
#line 713
#line 713
NC_UNUSED(fillp);
#line 713
#line 713
if(nelems == 0)
#line 713
return NC_NOERR;
#line 713
#line 713
assert(value != NULL);
#line 713
#line 713
#ifdef ERANGE_FILL
#line 713
fillp = malloc(varp->xsz);
#line 713
status = NC3_inq_var_fill(varp, fillp);
#line 713
#endif
#line 713
#line 713
for(;;)
#line 713
{
#line 713
size_t extent = MIN(remaining, ncp->chunk);
#line 713
size_t nput = ncx_howmany(varp->type, extent);
#line 713
#line 713
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 713
RGN_WRITE, &xp);
#line 713
if(lstatus != NC_NOERR)
#line 713
return lstatus;
#line 713
#line 713
lstatus = ncx_putn_short_longlong(&xp, nput, value ,fillp);
#line 713
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 713
{
#line 713
/* not fatal to the loop */
#line 713
status = lstatus;
#line 713
}
#line 713
#line 713
(void) ncio_rel(ncp->nciop, offset,
#line 713
RGN_MODIFIED);
#line 713
#line 713
remaining -= extent;
#line 713
if(remaining == 0)
#line 713
break; /* normal loop exit */
#line 713
offset += (off_t)extent;
#line 713
value += nput;
#line 713
#line 713
}
#line 713
#ifdef ERANGE_FILL
#line 713
free(fillp);
#line 713
#endif
#line 713
#line 713
return status;
#line 713
}
#line 713
static int
#line 714
putNCvx_short_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 714
const size_t *start, size_t nelems, const ushort *value)
#line 714
{
#line 714
off_t offset = NC_varoffset(ncp, varp, start);
#line 714
size_t remaining = varp->xsz * nelems;
#line 714
int status = NC_NOERR;
#line 714
void *xp;
#line 714
void *fillp=NULL;
#line 714
#line 714
NC_UNUSED(fillp);
#line 714
#line 714
if(nelems == 0)
#line 714
return NC_NOERR;
#line 714
#line 714
assert(value != NULL);
#line 714
#line 714
#ifdef ERANGE_FILL
#line 714
fillp = malloc(varp->xsz);
#line 714
status = NC3_inq_var_fill(varp, fillp);
#line 714
#endif
#line 714
#line 714
for(;;)
#line 714
{
#line 714
size_t extent = MIN(remaining, ncp->chunk);
#line 714
size_t nput = ncx_howmany(varp->type, extent);
#line 714
#line 714
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 714
RGN_WRITE, &xp);
#line 714
if(lstatus != NC_NOERR)
#line 714
return lstatus;
#line 714
#line 714
lstatus = ncx_putn_short_ushort(&xp, nput, value ,fillp);
#line 714
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 714
{
#line 714
/* not fatal to the loop */
#line 714
status = lstatus;
#line 714
}
#line 714
#line 714
(void) ncio_rel(ncp->nciop, offset,
#line 714
RGN_MODIFIED);
#line 714
#line 714
remaining -= extent;
#line 714
if(remaining == 0)
#line 714
break; /* normal loop exit */
#line 714
offset += (off_t)extent;
#line 714
value += nput;
#line 714
#line 714
}
#line 714
#ifdef ERANGE_FILL
#line 714
free(fillp);
#line 714
#endif
#line 714
#line 714
return status;
#line 714
}
#line 714
static int
#line 715
putNCvx_short_uint(NC3_INFO* ncp, const NC_var *varp,
#line 715
const size_t *start, size_t nelems, const uint *value)
#line 715
{
#line 715
off_t offset = NC_varoffset(ncp, varp, start);
#line 715
size_t remaining = varp->xsz * nelems;
#line 715
int status = NC_NOERR;
#line 715
void *xp;
#line 715
void *fillp=NULL;
#line 715
#line 715
NC_UNUSED(fillp);
#line 715
#line 715
if(nelems == 0)
#line 715
return NC_NOERR;
#line 715
#line 715
assert(value != NULL);
#line 715
#line 715
#ifdef ERANGE_FILL
#line 715
fillp = malloc(varp->xsz);
#line 715
status = NC3_inq_var_fill(varp, fillp);
#line 715
#endif
#line 715
#line 715
for(;;)
#line 715
{
#line 715
size_t extent = MIN(remaining, ncp->chunk);
#line 715
size_t nput = ncx_howmany(varp->type, extent);
#line 715
#line 715
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 715
RGN_WRITE, &xp);
#line 715
if(lstatus != NC_NOERR)
#line 715
return lstatus;
#line 715
#line 715
lstatus = ncx_putn_short_uint(&xp, nput, value ,fillp);
#line 715
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 715
{
#line 715
/* not fatal to the loop */
#line 715
status = lstatus;
#line 715
}
#line 715
#line 715
(void) ncio_rel(ncp->nciop, offset,
#line 715
RGN_MODIFIED);
#line 715
#line 715
remaining -= extent;
#line 715
if(remaining == 0)
#line 715
break; /* normal loop exit */
#line 715
offset += (off_t)extent;
#line 715
value += nput;
#line 715
#line 715
}
#line 715
#ifdef ERANGE_FILL
#line 715
free(fillp);
#line 715
#endif
#line 715
#line 715
return status;
#line 715
}
#line 715
static int
#line 716
putNCvx_short_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 716
const size_t *start, size_t nelems, const ulonglong *value)
#line 716
{
#line 716
off_t offset = NC_varoffset(ncp, varp, start);
#line 716
size_t remaining = varp->xsz * nelems;
#line 716
int status = NC_NOERR;
#line 716
void *xp;
#line 716
void *fillp=NULL;
#line 716
#line 716
NC_UNUSED(fillp);
#line 716
#line 716
if(nelems == 0)
#line 716
return NC_NOERR;
#line 716
#line 716
assert(value != NULL);
#line 716
#line 716
#ifdef ERANGE_FILL
#line 716
fillp = malloc(varp->xsz);
#line 716
status = NC3_inq_var_fill(varp, fillp);
#line 716
#endif
#line 716
#line 716
for(;;)
#line 716
{
#line 716
size_t extent = MIN(remaining, ncp->chunk);
#line 716
size_t nput = ncx_howmany(varp->type, extent);
#line 716
#line 716
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 716
RGN_WRITE, &xp);
#line 716
if(lstatus != NC_NOERR)
#line 716
return lstatus;
#line 716
#line 716
lstatus = ncx_putn_short_ulonglong(&xp, nput, value ,fillp);
#line 716
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 716
{
#line 716
/* not fatal to the loop */
#line 716
status = lstatus;
#line 716
}
#line 716
#line 716
(void) ncio_rel(ncp->nciop, offset,
#line 716
RGN_MODIFIED);
#line 716
#line 716
remaining -= extent;
#line 716
if(remaining == 0)
#line 716
break; /* normal loop exit */
#line 716
offset += (off_t)extent;
#line 716
value += nput;
#line 716
#line 716
}
#line 716
#ifdef ERANGE_FILL
#line 716
free(fillp);
#line 716
#endif
#line 716
#line 716
return status;
#line 716
}
#line 716
static int
#line 718
putNCvx_int_schar(NC3_INFO* ncp, const NC_var *varp,
#line 718
const size_t *start, size_t nelems, const schar *value)
#line 718
{
#line 718
off_t offset = NC_varoffset(ncp, varp, start);
#line 718
size_t remaining = varp->xsz * nelems;
#line 718
int status = NC_NOERR;
#line 718
void *xp;
#line 718
void *fillp=NULL;
#line 718
#line 718
NC_UNUSED(fillp);
#line 718
#line 718
if(nelems == 0)
#line 718
return NC_NOERR;
#line 718
#line 718
assert(value != NULL);
#line 718
#line 718
#ifdef ERANGE_FILL
#line 718
fillp = malloc(varp->xsz);
#line 718
status = NC3_inq_var_fill(varp, fillp);
#line 718
#endif
#line 718
#line 718
for(;;)
#line 718
{
#line 718
size_t extent = MIN(remaining, ncp->chunk);
#line 718
size_t nput = ncx_howmany(varp->type, extent);
#line 718
#line 718
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 718
RGN_WRITE, &xp);
#line 718
if(lstatus != NC_NOERR)
#line 718
return lstatus;
#line 718
#line 718
lstatus = ncx_putn_int_schar(&xp, nput, value ,fillp);
#line 718
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 718
{
#line 718
/* not fatal to the loop */
#line 718
status = lstatus;
#line 718
}
#line 718
#line 718
(void) ncio_rel(ncp->nciop, offset,
#line 718
RGN_MODIFIED);
#line 718
#line 718
remaining -= extent;
#line 718
if(remaining == 0)
#line 718
break; /* normal loop exit */
#line 718
offset += (off_t)extent;
#line 718
value += nput;
#line 718
#line 718
}
#line 718
#ifdef ERANGE_FILL
#line 718
free(fillp);
#line 718
#endif
#line 718
#line 718
return status;
#line 718
}
#line 718
static int
#line 719
putNCvx_int_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 719
const size_t *start, size_t nelems, const uchar *value)
#line 719
{
#line 719
off_t offset = NC_varoffset(ncp, varp, start);
#line 719
size_t remaining = varp->xsz * nelems;
#line 719
int status = NC_NOERR;
#line 719
void *xp;
#line 719
void *fillp=NULL;
#line 719
#line 719
NC_UNUSED(fillp);
#line 719
#line 719
if(nelems == 0)
#line 719
return NC_NOERR;
#line 719
#line 719
assert(value != NULL);
#line 719
#line 719
#ifdef ERANGE_FILL
#line 719
fillp = malloc(varp->xsz);
#line 719
status = NC3_inq_var_fill(varp, fillp);
#line 719
#endif
#line 719
#line 719
for(;;)
#line 719
{
#line 719
size_t extent = MIN(remaining, ncp->chunk);
#line 719
size_t nput = ncx_howmany(varp->type, extent);
#line 719
#line 719
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 719
RGN_WRITE, &xp);
#line 719
if(lstatus != NC_NOERR)
#line 719
return lstatus;
#line 719
#line 719
lstatus = ncx_putn_int_uchar(&xp, nput, value ,fillp);
#line 719
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 719
{
#line 719
/* not fatal to the loop */
#line 719
status = lstatus;
#line 719
}
#line 719
#line 719
(void) ncio_rel(ncp->nciop, offset,
#line 719
RGN_MODIFIED);
#line 719
#line 719
remaining -= extent;
#line 719
if(remaining == 0)
#line 719
break; /* normal loop exit */
#line 719
offset += (off_t)extent;
#line 719
value += nput;
#line 719
#line 719
}
#line 719
#ifdef ERANGE_FILL
#line 719
free(fillp);
#line 719
#endif
#line 719
#line 719
return status;
#line 719
}
#line 719
static int
#line 720
putNCvx_int_short(NC3_INFO* ncp, const NC_var *varp,
#line 720
const size_t *start, size_t nelems, const short *value)
#line 720
{
#line 720
off_t offset = NC_varoffset(ncp, varp, start);
#line 720
size_t remaining = varp->xsz * nelems;
#line 720
int status = NC_NOERR;
#line 720
void *xp;
#line 720
void *fillp=NULL;
#line 720
#line 720
NC_UNUSED(fillp);
#line 720
#line 720
if(nelems == 0)
#line 720
return NC_NOERR;
#line 720
#line 720
assert(value != NULL);
#line 720
#line 720
#ifdef ERANGE_FILL
#line 720
fillp = malloc(varp->xsz);
#line 720
status = NC3_inq_var_fill(varp, fillp);
#line 720
#endif
#line 720
#line 720
for(;;)
#line 720
{
#line 720
size_t extent = MIN(remaining, ncp->chunk);
#line 720
size_t nput = ncx_howmany(varp->type, extent);
#line 720
#line 720
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 720
RGN_WRITE, &xp);
#line 720
if(lstatus != NC_NOERR)
#line 720
return lstatus;
#line 720
#line 720
lstatus = ncx_putn_int_short(&xp, nput, value ,fillp);
#line 720
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 720
{
#line 720
/* not fatal to the loop */
#line 720
status = lstatus;
#line 720
}
#line 720
#line 720
(void) ncio_rel(ncp->nciop, offset,
#line 720
RGN_MODIFIED);
#line 720
#line 720
remaining -= extent;
#line 720
if(remaining == 0)
#line 720
break; /* normal loop exit */
#line 720
offset += (off_t)extent;
#line 720
value += nput;
#line 720
#line 720
}
#line 720
#ifdef ERANGE_FILL
#line 720
free(fillp);
#line 720
#endif
#line 720
#line 720
return status;
#line 720
}
#line 720
static int
#line 721
putNCvx_int_int(NC3_INFO* ncp, const NC_var *varp,
#line 721
const size_t *start, size_t nelems, const int *value)
#line 721
{
#line 721
off_t offset = NC_varoffset(ncp, varp, start);
#line 721
size_t remaining = varp->xsz * nelems;
#line 721
int status = NC_NOERR;
#line 721
void *xp;
#line 721
void *fillp=NULL;
#line 721
#line 721
NC_UNUSED(fillp);
#line 721
#line 721
if(nelems == 0)
#line 721
return NC_NOERR;
#line 721
#line 721
assert(value != NULL);
#line 721
#line 721
#ifdef ERANGE_FILL
#line 721
fillp = malloc(varp->xsz);
#line 721
status = NC3_inq_var_fill(varp, fillp);
#line 721
#endif
#line 721
#line 721
for(;;)
#line 721
{
#line 721
size_t extent = MIN(remaining, ncp->chunk);
#line 721
size_t nput = ncx_howmany(varp->type, extent);
#line 721
#line 721
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 721
RGN_WRITE, &xp);
#line 721
if(lstatus != NC_NOERR)
#line 721
return lstatus;
#line 721
#line 721
lstatus = ncx_putn_int_int(&xp, nput, value ,fillp);
#line 721
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 721
{
#line 721
/* not fatal to the loop */
#line 721
status = lstatus;
#line 721
}
#line 721
#line 721
(void) ncio_rel(ncp->nciop, offset,
#line 721
RGN_MODIFIED);
#line 721
#line 721
remaining -= extent;
#line 721
if(remaining == 0)
#line 721
break; /* normal loop exit */
#line 721
offset += (off_t)extent;
#line 721
value += nput;
#line 721
#line 721
}
#line 721
#ifdef ERANGE_FILL
#line 721
free(fillp);
#line 721
#endif
#line 721
#line 721
return status;
#line 721
}
#line 721
static int
#line 722
putNCvx_int_float(NC3_INFO* ncp, const NC_var *varp,
#line 722
const size_t *start, size_t nelems, const float *value)
#line 722
{
#line 722
off_t offset = NC_varoffset(ncp, varp, start);
#line 722
size_t remaining = varp->xsz * nelems;
#line 722
int status = NC_NOERR;
#line 722
void *xp;
#line 722
void *fillp=NULL;
#line 722
#line 722
NC_UNUSED(fillp);
#line 722
#line 722
if(nelems == 0)
#line 722
return NC_NOERR;
#line 722
#line 722
assert(value != NULL);
#line 722
#line 722
#ifdef ERANGE_FILL
#line 722
fillp = malloc(varp->xsz);
#line 722
status = NC3_inq_var_fill(varp, fillp);
#line 722
#endif
#line 722
#line 722
for(;;)
#line 722
{
#line 722
size_t extent = MIN(remaining, ncp->chunk);
#line 722
size_t nput = ncx_howmany(varp->type, extent);
#line 722
#line 722
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 722
RGN_WRITE, &xp);
#line 722
if(lstatus != NC_NOERR)
#line 722
return lstatus;
#line 722
#line 722
lstatus = ncx_putn_int_float(&xp, nput, value ,fillp);
#line 722
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 722
{
#line 722
/* not fatal to the loop */
#line 722
status = lstatus;
#line 722
}
#line 722
#line 722
(void) ncio_rel(ncp->nciop, offset,
#line 722
RGN_MODIFIED);
#line 722
#line 722
remaining -= extent;
#line 722
if(remaining == 0)
#line 722
break; /* normal loop exit */
#line 722
offset += (off_t)extent;
#line 722
value += nput;
#line 722
#line 722
}
#line 722
#ifdef ERANGE_FILL
#line 722
free(fillp);
#line 722
#endif
#line 722
#line 722
return status;
#line 722
}
#line 722
static int
#line 723
putNCvx_int_double(NC3_INFO* ncp, const NC_var *varp,
#line 723
const size_t *start, size_t nelems, const double *value)
#line 723
{
#line 723
off_t offset = NC_varoffset(ncp, varp, start);
#line 723
size_t remaining = varp->xsz * nelems;
#line 723
int status = NC_NOERR;
#line 723
void *xp;
#line 723
void *fillp=NULL;
#line 723
#line 723
NC_UNUSED(fillp);
#line 723
#line 723
if(nelems == 0)
#line 723
return NC_NOERR;
#line 723
#line 723
assert(value != NULL);
#line 723
#line 723
#ifdef ERANGE_FILL
#line 723
fillp = malloc(varp->xsz);
#line 723
status = NC3_inq_var_fill(varp, fillp);
#line 723
#endif
#line 723
#line 723
for(;;)
#line 723
{
#line 723
size_t extent = MIN(remaining, ncp->chunk);
#line 723
size_t nput = ncx_howmany(varp->type, extent);
#line 723
#line 723
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 723
RGN_WRITE, &xp);
#line 723
if(lstatus != NC_NOERR)
#line 723
return lstatus;
#line 723
#line 723
lstatus = ncx_putn_int_double(&xp, nput, value ,fillp);
#line 723
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 723
{
#line 723
/* not fatal to the loop */
#line 723
status = lstatus;
#line 723
}
#line 723
#line 723
(void) ncio_rel(ncp->nciop, offset,
#line 723
RGN_MODIFIED);
#line 723
#line 723
remaining -= extent;
#line 723
if(remaining == 0)
#line 723
break; /* normal loop exit */
#line 723
offset += (off_t)extent;
#line 723
value += nput;
#line 723
#line 723
}
#line 723
#ifdef ERANGE_FILL
#line 723
free(fillp);
#line 723
#endif
#line 723
#line 723
return status;
#line 723
}
#line 723
static int
#line 724
putNCvx_int_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 724
const size_t *start, size_t nelems, const longlong *value)
#line 724
{
#line 724
off_t offset = NC_varoffset(ncp, varp, start);
#line 724
size_t remaining = varp->xsz * nelems;
#line 724
int status = NC_NOERR;
#line 724
void *xp;
#line 724
void *fillp=NULL;
#line 724
#line 724
NC_UNUSED(fillp);
#line 724
#line 724
if(nelems == 0)
#line 724
return NC_NOERR;
#line 724
#line 724
assert(value != NULL);
#line 724
#line 724
#ifdef ERANGE_FILL
#line 724
fillp = malloc(varp->xsz);
#line 724
status = NC3_inq_var_fill(varp, fillp);
#line 724
#endif
#line 724
#line 724
for(;;)
#line 724
{
#line 724
size_t extent = MIN(remaining, ncp->chunk);
#line 724
size_t nput = ncx_howmany(varp->type, extent);
#line 724
#line 724
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 724
RGN_WRITE, &xp);
#line 724
if(lstatus != NC_NOERR)
#line 724
return lstatus;
#line 724
#line 724
lstatus = ncx_putn_int_longlong(&xp, nput, value ,fillp);
#line 724
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 724
{
#line 724
/* not fatal to the loop */
#line 724
status = lstatus;
#line 724
}
#line 724
#line 724
(void) ncio_rel(ncp->nciop, offset,
#line 724
RGN_MODIFIED);
#line 724
#line 724
remaining -= extent;
#line 724
if(remaining == 0)
#line 724
break; /* normal loop exit */
#line 724
offset += (off_t)extent;
#line 724
value += nput;
#line 724
#line 724
}
#line 724
#ifdef ERANGE_FILL
#line 724
free(fillp);
#line 724
#endif
#line 724
#line 724
return status;
#line 724
}
#line 724
static int
#line 725
putNCvx_int_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 725
const size_t *start, size_t nelems, const ushort *value)
#line 725
{
#line 725
off_t offset = NC_varoffset(ncp, varp, start);
#line 725
size_t remaining = varp->xsz * nelems;
#line 725
int status = NC_NOERR;
#line 725
void *xp;
#line 725
void *fillp=NULL;
#line 725
#line 725
NC_UNUSED(fillp);
#line 725
#line 725
if(nelems == 0)
#line 725
return NC_NOERR;
#line 725
#line 725
assert(value != NULL);
#line 725
#line 725
#ifdef ERANGE_FILL
#line 725
fillp = malloc(varp->xsz);
#line 725
status = NC3_inq_var_fill(varp, fillp);
#line 725
#endif
#line 725
#line 725
for(;;)
#line 725
{
#line 725
size_t extent = MIN(remaining, ncp->chunk);
#line 725
size_t nput = ncx_howmany(varp->type, extent);
#line 725
#line 725
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 725
RGN_WRITE, &xp);
#line 725
if(lstatus != NC_NOERR)
#line 725
return lstatus;
#line 725
#line 725
lstatus = ncx_putn_int_ushort(&xp, nput, value ,fillp);
#line 725
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 725
{
#line 725
/* not fatal to the loop */
#line 725
status = lstatus;
#line 725
}
#line 725
#line 725
(void) ncio_rel(ncp->nciop, offset,
#line 725
RGN_MODIFIED);
#line 725
#line 725
remaining -= extent;
#line 725
if(remaining == 0)
#line 725
break; /* normal loop exit */
#line 725
offset += (off_t)extent;
#line 725
value += nput;
#line 725
#line 725
}
#line 725
#ifdef ERANGE_FILL
#line 725
free(fillp);
#line 725
#endif
#line 725
#line 725
return status;
#line 725
}
#line 725
static int
#line 726
putNCvx_int_uint(NC3_INFO* ncp, const NC_var *varp,
#line 726
const size_t *start, size_t nelems, const uint *value)
#line 726
{
#line 726
off_t offset = NC_varoffset(ncp, varp, start);
#line 726
size_t remaining = varp->xsz * nelems;
#line 726
int status = NC_NOERR;
#line 726
void *xp;
#line 726
void *fillp=NULL;
#line 726
#line 726
NC_UNUSED(fillp);
#line 726
#line 726
if(nelems == 0)
#line 726
return NC_NOERR;
#line 726
#line 726
assert(value != NULL);
#line 726
#line 726
#ifdef ERANGE_FILL
#line 726
fillp = malloc(varp->xsz);
#line 726
status = NC3_inq_var_fill(varp, fillp);
#line 726
#endif
#line 726
#line 726
for(;;)
#line 726
{
#line 726
size_t extent = MIN(remaining, ncp->chunk);
#line 726
size_t nput = ncx_howmany(varp->type, extent);
#line 726
#line 726
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 726
RGN_WRITE, &xp);
#line 726
if(lstatus != NC_NOERR)
#line 726
return lstatus;
#line 726
#line 726
lstatus = ncx_putn_int_uint(&xp, nput, value ,fillp);
#line 726
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 726
{
#line 726
/* not fatal to the loop */
#line 726
status = lstatus;
#line 726
}
#line 726
#line 726
(void) ncio_rel(ncp->nciop, offset,
#line 726
RGN_MODIFIED);
#line 726
#line 726
remaining -= extent;
#line 726
if(remaining == 0)
#line 726
break; /* normal loop exit */
#line 726
offset += (off_t)extent;
#line 726
value += nput;
#line 726
#line 726
}
#line 726
#ifdef ERANGE_FILL
#line 726
free(fillp);
#line 726
#endif
#line 726
#line 726
return status;
#line 726
}
#line 726
static int
#line 727
putNCvx_int_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 727
const size_t *start, size_t nelems, const ulonglong *value)
#line 727
{
#line 727
off_t offset = NC_varoffset(ncp, varp, start);
#line 727
size_t remaining = varp->xsz * nelems;
#line 727
int status = NC_NOERR;
#line 727
void *xp;
#line 727
void *fillp=NULL;
#line 727
#line 727
NC_UNUSED(fillp);
#line 727
#line 727
if(nelems == 0)
#line 727
return NC_NOERR;
#line 727
#line 727
assert(value != NULL);
#line 727
#line 727
#ifdef ERANGE_FILL
#line 727
fillp = malloc(varp->xsz);
#line 727
status = NC3_inq_var_fill(varp, fillp);
#line 727
#endif
#line 727
#line 727
for(;;)
#line 727
{
#line 727
size_t extent = MIN(remaining, ncp->chunk);
#line 727
size_t nput = ncx_howmany(varp->type, extent);
#line 727
#line 727
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 727
RGN_WRITE, &xp);
#line 727
if(lstatus != NC_NOERR)
#line 727
return lstatus;
#line 727
#line 727
lstatus = ncx_putn_int_ulonglong(&xp, nput, value ,fillp);
#line 727
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 727
{
#line 727
/* not fatal to the loop */
#line 727
status = lstatus;
#line 727
}
#line 727
#line 727
(void) ncio_rel(ncp->nciop, offset,
#line 727
RGN_MODIFIED);
#line 727
#line 727
remaining -= extent;
#line 727
if(remaining == 0)
#line 727
break; /* normal loop exit */
#line 727
offset += (off_t)extent;
#line 727
value += nput;
#line 727
#line 727
}
#line 727
#ifdef ERANGE_FILL
#line 727
free(fillp);
#line 727
#endif
#line 727
#line 727
return status;
#line 727
}
#line 727
static int
#line 729
putNCvx_float_schar(NC3_INFO* ncp, const NC_var *varp,
#line 729
const size_t *start, size_t nelems, const schar *value)
#line 729
{
#line 729
off_t offset = NC_varoffset(ncp, varp, start);
#line 729
size_t remaining = varp->xsz * nelems;
#line 729
int status = NC_NOERR;
#line 729
void *xp;
#line 729
void *fillp=NULL;
#line 729
#line 729
NC_UNUSED(fillp);
#line 729
#line 729
if(nelems == 0)
#line 729
return NC_NOERR;
#line 729
#line 729
assert(value != NULL);
#line 729
#line 729
#ifdef ERANGE_FILL
#line 729
fillp = malloc(varp->xsz);
#line 729
status = NC3_inq_var_fill(varp, fillp);
#line 729
#endif
#line 729
#line 729
for(;;)
#line 729
{
#line 729
size_t extent = MIN(remaining, ncp->chunk);
#line 729
size_t nput = ncx_howmany(varp->type, extent);
#line 729
#line 729
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 729
RGN_WRITE, &xp);
#line 729
if(lstatus != NC_NOERR)
#line 729
return lstatus;
#line 729
#line 729
lstatus = ncx_putn_float_schar(&xp, nput, value ,fillp);
#line 729
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 729
{
#line 729
/* not fatal to the loop */
#line 729
status = lstatus;
#line 729
}
#line 729
#line 729
(void) ncio_rel(ncp->nciop, offset,
#line 729
RGN_MODIFIED);
#line 729
#line 729
remaining -= extent;
#line 729
if(remaining == 0)
#line 729
break; /* normal loop exit */
#line 729
offset += (off_t)extent;
#line 729
value += nput;
#line 729
#line 729
}
#line 729
#ifdef ERANGE_FILL
#line 729
free(fillp);
#line 729
#endif
#line 729
#line 729
return status;
#line 729
}
#line 729
static int
#line 730
putNCvx_float_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 730
const size_t *start, size_t nelems, const uchar *value)
#line 730
{
#line 730
off_t offset = NC_varoffset(ncp, varp, start);
#line 730
size_t remaining = varp->xsz * nelems;
#line 730
int status = NC_NOERR;
#line 730
void *xp;
#line 730
void *fillp=NULL;
#line 730
#line 730
NC_UNUSED(fillp);
#line 730
#line 730
if(nelems == 0)
#line 730
return NC_NOERR;
#line 730
#line 730
assert(value != NULL);
#line 730
#line 730
#ifdef ERANGE_FILL
#line 730
fillp = malloc(varp->xsz);
#line 730
status = NC3_inq_var_fill(varp, fillp);
#line 730
#endif
#line 730
#line 730
for(;;)
#line 730
{
#line 730
size_t extent = MIN(remaining, ncp->chunk);
#line 730
size_t nput = ncx_howmany(varp->type, extent);
#line 730
#line 730
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 730
RGN_WRITE, &xp);
#line 730
if(lstatus != NC_NOERR)
#line 730
return lstatus;
#line 730
#line 730
lstatus = ncx_putn_float_uchar(&xp, nput, value ,fillp);
#line 730
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 730
{
#line 730
/* not fatal to the loop */
#line 730
status = lstatus;
#line 730
}
#line 730
#line 730
(void) ncio_rel(ncp->nciop, offset,
#line 730
RGN_MODIFIED);
#line 730
#line 730
remaining -= extent;
#line 730
if(remaining == 0)
#line 730
break; /* normal loop exit */
#line 730
offset += (off_t)extent;
#line 730
value += nput;
#line 730
#line 730
}
#line 730
#ifdef ERANGE_FILL
#line 730
free(fillp);
#line 730
#endif
#line 730
#line 730
return status;
#line 730
}
#line 730
static int
#line 731
putNCvx_float_short(NC3_INFO* ncp, const NC_var *varp,
#line 731
const size_t *start, size_t nelems, const short *value)
#line 731
{
#line 731
off_t offset = NC_varoffset(ncp, varp, start);
#line 731
size_t remaining = varp->xsz * nelems;
#line 731
int status = NC_NOERR;
#line 731
void *xp;
#line 731
void *fillp=NULL;
#line 731
#line 731
NC_UNUSED(fillp);
#line 731
#line 731
if(nelems == 0)
#line 731
return NC_NOERR;
#line 731
#line 731
assert(value != NULL);
#line 731
#line 731
#ifdef ERANGE_FILL
#line 731
fillp = malloc(varp->xsz);
#line 731
status = NC3_inq_var_fill(varp, fillp);
#line 731
#endif
#line 731
#line 731
for(;;)
#line 731
{
#line 731
size_t extent = MIN(remaining, ncp->chunk);
#line 731
size_t nput = ncx_howmany(varp->type, extent);
#line 731
#line 731
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 731
RGN_WRITE, &xp);
#line 731
if(lstatus != NC_NOERR)
#line 731
return lstatus;
#line 731
#line 731
lstatus = ncx_putn_float_short(&xp, nput, value ,fillp);
#line 731
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 731
{
#line 731
/* not fatal to the loop */
#line 731
status = lstatus;
#line 731
}
#line 731
#line 731
(void) ncio_rel(ncp->nciop, offset,
#line 731
RGN_MODIFIED);
#line 731
#line 731
remaining -= extent;
#line 731
if(remaining == 0)
#line 731
break; /* normal loop exit */
#line 731
offset += (off_t)extent;
#line 731
value += nput;
#line 731
#line 731
}
#line 731
#ifdef ERANGE_FILL
#line 731
free(fillp);
#line 731
#endif
#line 731
#line 731
return status;
#line 731
}
#line 731
static int
#line 732
putNCvx_float_int(NC3_INFO* ncp, const NC_var *varp,
#line 732
const size_t *start, size_t nelems, const int *value)
#line 732
{
#line 732
off_t offset = NC_varoffset(ncp, varp, start);
#line 732
size_t remaining = varp->xsz * nelems;
#line 732
int status = NC_NOERR;
#line 732
void *xp;
#line 732
void *fillp=NULL;
#line 732
#line 732
NC_UNUSED(fillp);
#line 732
#line 732
if(nelems == 0)
#line 732
return NC_NOERR;
#line 732
#line 732
assert(value != NULL);
#line 732
#line 732
#ifdef ERANGE_FILL
#line 732
fillp = malloc(varp->xsz);
#line 732
status = NC3_inq_var_fill(varp, fillp);
#line 732
#endif
#line 732
#line 732
for(;;)
#line 732
{
#line 732
size_t extent = MIN(remaining, ncp->chunk);
#line 732
size_t nput = ncx_howmany(varp->type, extent);
#line 732
#line 732
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 732
RGN_WRITE, &xp);
#line 732
if(lstatus != NC_NOERR)
#line 732
return lstatus;
#line 732
#line 732
lstatus = ncx_putn_float_int(&xp, nput, value ,fillp);
#line 732
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 732
{
#line 732
/* not fatal to the loop */
#line 732
status = lstatus;
#line 732
}
#line 732
#line 732
(void) ncio_rel(ncp->nciop, offset,
#line 732
RGN_MODIFIED);
#line 732
#line 732
remaining -= extent;
#line 732
if(remaining == 0)
#line 732
break; /* normal loop exit */
#line 732
offset += (off_t)extent;
#line 732
value += nput;
#line 732
#line 732
}
#line 732
#ifdef ERANGE_FILL
#line 732
free(fillp);
#line 732
#endif
#line 732
#line 732
return status;
#line 732
}
#line 732
static int
#line 733
putNCvx_float_float(NC3_INFO* ncp, const NC_var *varp,
#line 733
const size_t *start, size_t nelems, const float *value)
#line 733
{
#line 733
off_t offset = NC_varoffset(ncp, varp, start);
#line 733
size_t remaining = varp->xsz * nelems;
#line 733
int status = NC_NOERR;
#line 733
void *xp;
#line 733
void *fillp=NULL;
#line 733
#line 733
NC_UNUSED(fillp);
#line 733
#line 733
if(nelems == 0)
#line 733
return NC_NOERR;
#line 733
#line 733
assert(value != NULL);
#line 733
#line 733
#ifdef ERANGE_FILL
#line 733
fillp = malloc(varp->xsz);
#line 733
status = NC3_inq_var_fill(varp, fillp);
#line 733
#endif
#line 733
#line 733
for(;;)
#line 733
{
#line 733
size_t extent = MIN(remaining, ncp->chunk);
#line 733
size_t nput = ncx_howmany(varp->type, extent);
#line 733
#line 733
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 733
RGN_WRITE, &xp);
#line 733
if(lstatus != NC_NOERR)
#line 733
return lstatus;
#line 733
#line 733
lstatus = ncx_putn_float_float(&xp, nput, value ,fillp);
#line 733
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 733
{
#line 733
/* not fatal to the loop */
#line 733
status = lstatus;
#line 733
}
#line 733
#line 733
(void) ncio_rel(ncp->nciop, offset,
#line 733
RGN_MODIFIED);
#line 733
#line 733
remaining -= extent;
#line 733
if(remaining == 0)
#line 733
break; /* normal loop exit */
#line 733
offset += (off_t)extent;
#line 733
value += nput;
#line 733
#line 733
}
#line 733
#ifdef ERANGE_FILL
#line 733
free(fillp);
#line 733
#endif
#line 733
#line 733
return status;
#line 733
}
#line 733
static int
#line 734
putNCvx_float_double(NC3_INFO* ncp, const NC_var *varp,
#line 734
const size_t *start, size_t nelems, const double *value)
#line 734
{
#line 734
off_t offset = NC_varoffset(ncp, varp, start);
#line 734
size_t remaining = varp->xsz * nelems;
#line 734
int status = NC_NOERR;
#line 734
void *xp;
#line 734
void *fillp=NULL;
#line 734
#line 734
NC_UNUSED(fillp);
#line 734
#line 734
if(nelems == 0)
#line 734
return NC_NOERR;
#line 734
#line 734
assert(value != NULL);
#line 734
#line 734
#ifdef ERANGE_FILL
#line 734
fillp = malloc(varp->xsz);
#line 734
status = NC3_inq_var_fill(varp, fillp);
#line 734
#endif
#line 734
#line 734
for(;;)
#line 734
{
#line 734
size_t extent = MIN(remaining, ncp->chunk);
#line 734
size_t nput = ncx_howmany(varp->type, extent);
#line 734
#line 734
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 734
RGN_WRITE, &xp);
#line 734
if(lstatus != NC_NOERR)
#line 734
return lstatus;
#line 734
#line 734
lstatus = ncx_putn_float_double(&xp, nput, value ,fillp);
#line 734
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 734
{
#line 734
/* not fatal to the loop */
#line 734
status = lstatus;
#line 734
}
#line 734
#line 734
(void) ncio_rel(ncp->nciop, offset,
#line 734
RGN_MODIFIED);
#line 734
#line 734
remaining -= extent;
#line 734
if(remaining == 0)
#line 734
break; /* normal loop exit */
#line 734
offset += (off_t)extent;
#line 734
value += nput;
#line 734
#line 734
}
#line 734
#ifdef ERANGE_FILL
#line 734
free(fillp);
#line 734
#endif
#line 734
#line 734
return status;
#line 734
}
#line 734
static int
#line 735
putNCvx_float_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 735
const size_t *start, size_t nelems, const longlong *value)
#line 735
{
#line 735
off_t offset = NC_varoffset(ncp, varp, start);
#line 735
size_t remaining = varp->xsz * nelems;
#line 735
int status = NC_NOERR;
#line 735
void *xp;
#line 735
void *fillp=NULL;
#line 735
#line 735
NC_UNUSED(fillp);
#line 735
#line 735
if(nelems == 0)
#line 735
return NC_NOERR;
#line 735
#line 735
assert(value != NULL);
#line 735
#line 735
#ifdef ERANGE_FILL
#line 735
fillp = malloc(varp->xsz);
#line 735
status = NC3_inq_var_fill(varp, fillp);
#line 735
#endif
#line 735
#line 735
for(;;)
#line 735
{
#line 735
size_t extent = MIN(remaining, ncp->chunk);
#line 735
size_t nput = ncx_howmany(varp->type, extent);
#line 735
#line 735
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 735
RGN_WRITE, &xp);
#line 735
if(lstatus != NC_NOERR)
#line 735
return lstatus;
#line 735
#line 735
lstatus = ncx_putn_float_longlong(&xp, nput, value ,fillp);
#line 735
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 735
{
#line 735
/* not fatal to the loop */
#line 735
status = lstatus;
#line 735
}
#line 735
#line 735
(void) ncio_rel(ncp->nciop, offset,
#line 735
RGN_MODIFIED);
#line 735
#line 735
remaining -= extent;
#line 735
if(remaining == 0)
#line 735
break; /* normal loop exit */
#line 735
offset += (off_t)extent;
#line 735
value += nput;
#line 735
#line 735
}
#line 735
#ifdef ERANGE_FILL
#line 735
free(fillp);
#line 735
#endif
#line 735
#line 735
return status;
#line 735
}
#line 735
static int
#line 736
putNCvx_float_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 736
const size_t *start, size_t nelems, const ushort *value)
#line 736
{
#line 736
off_t offset = NC_varoffset(ncp, varp, start);
#line 736
size_t remaining = varp->xsz * nelems;
#line 736
int status = NC_NOERR;
#line 736
void *xp;
#line 736
void *fillp=NULL;
#line 736
#line 736
NC_UNUSED(fillp);
#line 736
#line 736
if(nelems == 0)
#line 736
return NC_NOERR;
#line 736
#line 736
assert(value != NULL);
#line 736
#line 736
#ifdef ERANGE_FILL
#line 736
fillp = malloc(varp->xsz);
#line 736
status = NC3_inq_var_fill(varp, fillp);
#line 736
#endif
#line 736
#line 736
for(;;)
#line 736
{
#line 736
size_t extent = MIN(remaining, ncp->chunk);
#line 736
size_t nput = ncx_howmany(varp->type, extent);
#line 736
#line 736
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 736
RGN_WRITE, &xp);
#line 736
if(lstatus != NC_NOERR)
#line 736
return lstatus;
#line 736
#line 736
lstatus = ncx_putn_float_ushort(&xp, nput, value ,fillp);
#line 736
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 736
{
#line 736
/* not fatal to the loop */
#line 736
status = lstatus;
#line 736
}
#line 736
#line 736
(void) ncio_rel(ncp->nciop, offset,
#line 736
RGN_MODIFIED);
#line 736
#line 736
remaining -= extent;
#line 736
if(remaining == 0)
#line 736
break; /* normal loop exit */
#line 736
offset += (off_t)extent;
#line 736
value += nput;
#line 736
#line 736
}
#line 736
#ifdef ERANGE_FILL
#line 736
free(fillp);
#line 736
#endif
#line 736
#line 736
return status;
#line 736
}
#line 736
static int
#line 737
putNCvx_float_uint(NC3_INFO* ncp, const NC_var *varp,
#line 737
const size_t *start, size_t nelems, const uint *value)
#line 737
{
#line 737
off_t offset = NC_varoffset(ncp, varp, start);
#line 737
size_t remaining = varp->xsz * nelems;
#line 737
int status = NC_NOERR;
#line 737
void *xp;
#line 737
void *fillp=NULL;
#line 737
#line 737
NC_UNUSED(fillp);
#line 737
#line 737
if(nelems == 0)
#line 737
return NC_NOERR;
#line 737
#line 737
assert(value != NULL);
#line 737
#line 737
#ifdef ERANGE_FILL
#line 737
fillp = malloc(varp->xsz);
#line 737
status = NC3_inq_var_fill(varp, fillp);
#line 737
#endif
#line 737
#line 737
for(;;)
#line 737
{
#line 737
size_t extent = MIN(remaining, ncp->chunk);
#line 737
size_t nput = ncx_howmany(varp->type, extent);
#line 737
#line 737
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 737
RGN_WRITE, &xp);
#line 737
if(lstatus != NC_NOERR)
#line 737
return lstatus;
#line 737
#line 737
lstatus = ncx_putn_float_uint(&xp, nput, value ,fillp);
#line 737
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 737
{
#line 737
/* not fatal to the loop */
#line 737
status = lstatus;
#line 737
}
#line 737
#line 737
(void) ncio_rel(ncp->nciop, offset,
#line 737
RGN_MODIFIED);
#line 737
#line 737
remaining -= extent;
#line 737
if(remaining == 0)
#line 737
break; /* normal loop exit */
#line 737
offset += (off_t)extent;
#line 737
value += nput;
#line 737
#line 737
}
#line 737
#ifdef ERANGE_FILL
#line 737
free(fillp);
#line 737
#endif
#line 737
#line 737
return status;
#line 737
}
#line 737
static int
#line 738
putNCvx_float_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 738
const size_t *start, size_t nelems, const ulonglong *value)
#line 738
{
#line 738
off_t offset = NC_varoffset(ncp, varp, start);
#line 738
size_t remaining = varp->xsz * nelems;
#line 738
int status = NC_NOERR;
#line 738
void *xp;
#line 738
void *fillp=NULL;
#line 738
#line 738
NC_UNUSED(fillp);
#line 738
#line 738
if(nelems == 0)
#line 738
return NC_NOERR;
#line 738
#line 738
assert(value != NULL);
#line 738
#line 738
#ifdef ERANGE_FILL
#line 738
fillp = malloc(varp->xsz);
#line 738
status = NC3_inq_var_fill(varp, fillp);
#line 738
#endif
#line 738
#line 738
for(;;)
#line 738
{
#line 738
size_t extent = MIN(remaining, ncp->chunk);
#line 738
size_t nput = ncx_howmany(varp->type, extent);
#line 738
#line 738
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 738
RGN_WRITE, &xp);
#line 738
if(lstatus != NC_NOERR)
#line 738
return lstatus;
#line 738
#line 738
lstatus = ncx_putn_float_ulonglong(&xp, nput, value ,fillp);
#line 738
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 738
{
#line 738
/* not fatal to the loop */
#line 738
status = lstatus;
#line 738
}
#line 738
#line 738
(void) ncio_rel(ncp->nciop, offset,
#line 738
RGN_MODIFIED);
#line 738
#line 738
remaining -= extent;
#line 738
if(remaining == 0)
#line 738
break; /* normal loop exit */
#line 738
offset += (off_t)extent;
#line 738
value += nput;
#line 738
#line 738
}
#line 738
#ifdef ERANGE_FILL
#line 738
free(fillp);
#line 738
#endif
#line 738
#line 738
return status;
#line 738
}
#line 738
static int
#line 740
putNCvx_double_schar(NC3_INFO* ncp, const NC_var *varp,
#line 740
const size_t *start, size_t nelems, const schar *value)
#line 740
{
#line 740
off_t offset = NC_varoffset(ncp, varp, start);
#line 740
size_t remaining = varp->xsz * nelems;
#line 740
int status = NC_NOERR;
#line 740
void *xp;
#line 740
void *fillp=NULL;
#line 740
#line 740
NC_UNUSED(fillp);
#line 740
#line 740
if(nelems == 0)
#line 740
return NC_NOERR;
#line 740
#line 740
assert(value != NULL);
#line 740
#line 740
#ifdef ERANGE_FILL
#line 740
fillp = malloc(varp->xsz);
#line 740
status = NC3_inq_var_fill(varp, fillp);
#line 740
#endif
#line 740
#line 740
for(;;)
#line 740
{
#line 740
size_t extent = MIN(remaining, ncp->chunk);
#line 740
size_t nput = ncx_howmany(varp->type, extent);
#line 740
#line 740
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 740
RGN_WRITE, &xp);
#line 740
if(lstatus != NC_NOERR)
#line 740
return lstatus;
#line 740
#line 740
lstatus = ncx_putn_double_schar(&xp, nput, value ,fillp);
#line 740
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 740
{
#line 740
/* not fatal to the loop */
#line 740
status = lstatus;
#line 740
}
#line 740
#line 740
(void) ncio_rel(ncp->nciop, offset,
#line 740
RGN_MODIFIED);
#line 740
#line 740
remaining -= extent;
#line 740
if(remaining == 0)
#line 740
break; /* normal loop exit */
#line 740
offset += (off_t)extent;
#line 740
value += nput;
#line 740
#line 740
}
#line 740
#ifdef ERANGE_FILL
#line 740
free(fillp);
#line 740
#endif
#line 740
#line 740
return status;
#line 740
}
#line 740
static int
#line 741
putNCvx_double_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 741
const size_t *start, size_t nelems, const uchar *value)
#line 741
{
#line 741
off_t offset = NC_varoffset(ncp, varp, start);
#line 741
size_t remaining = varp->xsz * nelems;
#line 741
int status = NC_NOERR;
#line 741
void *xp;
#line 741
void *fillp=NULL;
#line 741
#line 741
NC_UNUSED(fillp);
#line 741
#line 741
if(nelems == 0)
#line 741
return NC_NOERR;
#line 741
#line 741
assert(value != NULL);
#line 741
#line 741
#ifdef ERANGE_FILL
#line 741
fillp = malloc(varp->xsz);
#line 741
status = NC3_inq_var_fill(varp, fillp);
#line 741
#endif
#line 741
#line 741
for(;;)
#line 741
{
#line 741
size_t extent = MIN(remaining, ncp->chunk);
#line 741
size_t nput = ncx_howmany(varp->type, extent);
#line 741
#line 741
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 741
RGN_WRITE, &xp);
#line 741
if(lstatus != NC_NOERR)
#line 741
return lstatus;
#line 741
#line 741
lstatus = ncx_putn_double_uchar(&xp, nput, value ,fillp);
#line 741
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 741
{
#line 741
/* not fatal to the loop */
#line 741
status = lstatus;
#line 741
}
#line 741
#line 741
(void) ncio_rel(ncp->nciop, offset,
#line 741
RGN_MODIFIED);
#line 741
#line 741
remaining -= extent;
#line 741
if(remaining == 0)
#line 741
break; /* normal loop exit */
#line 741
offset += (off_t)extent;
#line 741
value += nput;
#line 741
#line 741
}
#line 741
#ifdef ERANGE_FILL
#line 741
free(fillp);
#line 741
#endif
#line 741
#line 741
return status;
#line 741
}
#line 741
static int
#line 742
putNCvx_double_short(NC3_INFO* ncp, const NC_var *varp,
#line 742
const size_t *start, size_t nelems, const short *value)
#line 742
{
#line 742
off_t offset = NC_varoffset(ncp, varp, start);
#line 742
size_t remaining = varp->xsz * nelems;
#line 742
int status = NC_NOERR;
#line 742
void *xp;
#line 742
void *fillp=NULL;
#line 742
#line 742
NC_UNUSED(fillp);
#line 742
#line 742
if(nelems == 0)
#line 742
return NC_NOERR;
#line 742
#line 742
assert(value != NULL);
#line 742
#line 742
#ifdef ERANGE_FILL
#line 742
fillp = malloc(varp->xsz);
#line 742
status = NC3_inq_var_fill(varp, fillp);
#line 742
#endif
#line 742
#line 742
for(;;)
#line 742
{
#line 742
size_t extent = MIN(remaining, ncp->chunk);
#line 742
size_t nput = ncx_howmany(varp->type, extent);
#line 742
#line 742
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 742
RGN_WRITE, &xp);
#line 742
if(lstatus != NC_NOERR)
#line 742
return lstatus;
#line 742
#line 742
lstatus = ncx_putn_double_short(&xp, nput, value ,fillp);
#line 742
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 742
{
#line 742
/* not fatal to the loop */
#line 742
status = lstatus;
#line 742
}
#line 742
#line 742
(void) ncio_rel(ncp->nciop, offset,
#line 742
RGN_MODIFIED);
#line 742
#line 742
remaining -= extent;
#line 742
if(remaining == 0)
#line 742
break; /* normal loop exit */
#line 742
offset += (off_t)extent;
#line 742
value += nput;
#line 742
#line 742
}
#line 742
#ifdef ERANGE_FILL
#line 742
free(fillp);
#line 742
#endif
#line 742
#line 742
return status;
#line 742
}
#line 742
static int
#line 743
putNCvx_double_int(NC3_INFO* ncp, const NC_var *varp,
#line 743
const size_t *start, size_t nelems, const int *value)
#line 743
{
#line 743
off_t offset = NC_varoffset(ncp, varp, start);
#line 743
size_t remaining = varp->xsz * nelems;
#line 743
int status = NC_NOERR;
#line 743
void *xp;
#line 743
void *fillp=NULL;
#line 743
#line 743
NC_UNUSED(fillp);
#line 743
#line 743
if(nelems == 0)
#line 743
return NC_NOERR;
#line 743
#line 743
assert(value != NULL);
#line 743
#line 743
#ifdef ERANGE_FILL
#line 743
fillp = malloc(varp->xsz);
#line 743
status = NC3_inq_var_fill(varp, fillp);
#line 743
#endif
#line 743
#line 743
for(;;)
#line 743
{
#line 743
size_t extent = MIN(remaining, ncp->chunk);
#line 743
size_t nput = ncx_howmany(varp->type, extent);
#line 743
#line 743
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 743
RGN_WRITE, &xp);
#line 743
if(lstatus != NC_NOERR)
#line 743
return lstatus;
#line 743
#line 743
lstatus = ncx_putn_double_int(&xp, nput, value ,fillp);
#line 743
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 743
{
#line 743
/* not fatal to the loop */
#line 743
status = lstatus;
#line 743
}
#line 743
#line 743
(void) ncio_rel(ncp->nciop, offset,
#line 743
RGN_MODIFIED);
#line 743
#line 743
remaining -= extent;
#line 743
if(remaining == 0)
#line 743
break; /* normal loop exit */
#line 743
offset += (off_t)extent;
#line 743
value += nput;
#line 743
#line 743
}
#line 743
#ifdef ERANGE_FILL
#line 743
free(fillp);
#line 743
#endif
#line 743
#line 743
return status;
#line 743
}
#line 743
static int
#line 744
putNCvx_double_float(NC3_INFO* ncp, const NC_var *varp,
#line 744
const size_t *start, size_t nelems, const float *value)
#line 744
{
#line 744
off_t offset = NC_varoffset(ncp, varp, start);
#line 744
size_t remaining = varp->xsz * nelems;
#line 744
int status = NC_NOERR;
#line 744
void *xp;
#line 744
void *fillp=NULL;
#line 744
#line 744
NC_UNUSED(fillp);
#line 744
#line 744
if(nelems == 0)
#line 744
return NC_NOERR;
#line 744
#line 744
assert(value != NULL);
#line 744
#line 744
#ifdef ERANGE_FILL
#line 744
fillp = malloc(varp->xsz);
#line 744
status = NC3_inq_var_fill(varp, fillp);
#line 744
#endif
#line 744
#line 744
for(;;)
#line 744
{
#line 744
size_t extent = MIN(remaining, ncp->chunk);
#line 744
size_t nput = ncx_howmany(varp->type, extent);
#line 744
#line 744
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 744
RGN_WRITE, &xp);
#line 744
if(lstatus != NC_NOERR)
#line 744
return lstatus;
#line 744
#line 744
lstatus = ncx_putn_double_float(&xp, nput, value ,fillp);
#line 744
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 744
{
#line 744
/* not fatal to the loop */
#line 744
status = lstatus;
#line 744
}
#line 744
#line 744
(void) ncio_rel(ncp->nciop, offset,
#line 744
RGN_MODIFIED);
#line 744
#line 744
remaining -= extent;
#line 744
if(remaining == 0)
#line 744
break; /* normal loop exit */
#line 744
offset += (off_t)extent;
#line 744
value += nput;
#line 744
#line 744
}
#line 744
#ifdef ERANGE_FILL
#line 744
free(fillp);
#line 744
#endif
#line 744
#line 744
return status;
#line 744
}
#line 744
static int
#line 745
putNCvx_double_double(NC3_INFO* ncp, const NC_var *varp,
#line 745
const size_t *start, size_t nelems, const double *value)
#line 745
{
#line 745
off_t offset = NC_varoffset(ncp, varp, start);
#line 745
size_t remaining = varp->xsz * nelems;
#line 745
int status = NC_NOERR;
#line 745
void *xp;
#line 745
void *fillp=NULL;
#line 745
#line 745
NC_UNUSED(fillp);
#line 745
#line 745
if(nelems == 0)
#line 745
return NC_NOERR;
#line 745
#line 745
assert(value != NULL);
#line 745
#line 745
#ifdef ERANGE_FILL
#line 745
fillp = malloc(varp->xsz);
#line 745
status = NC3_inq_var_fill(varp, fillp);
#line 745
#endif
#line 745
#line 745
for(;;)
#line 745
{
#line 745
size_t extent = MIN(remaining, ncp->chunk);
#line 745
size_t nput = ncx_howmany(varp->type, extent);
#line 745
#line 745
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 745
RGN_WRITE, &xp);
#line 745
if(lstatus != NC_NOERR)
#line 745
return lstatus;
#line 745
#line 745
lstatus = ncx_putn_double_double(&xp, nput, value ,fillp);
#line 745
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 745
{
#line 745
/* not fatal to the loop */
#line 745
status = lstatus;
#line 745
}
#line 745
#line 745
(void) ncio_rel(ncp->nciop, offset,
#line 745
RGN_MODIFIED);
#line 745
#line 745
remaining -= extent;
#line 745
if(remaining == 0)
#line 745
break; /* normal loop exit */
#line 745
offset += (off_t)extent;
#line 745
value += nput;
#line 745
#line 745
}
#line 745
#ifdef ERANGE_FILL
#line 745
free(fillp);
#line 745
#endif
#line 745
#line 745
return status;
#line 745
}
#line 745
static int
#line 746
putNCvx_double_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 746
const size_t *start, size_t nelems, const longlong *value)
#line 746
{
#line 746
off_t offset = NC_varoffset(ncp, varp, start);
#line 746
size_t remaining = varp->xsz * nelems;
#line 746
int status = NC_NOERR;
#line 746
void *xp;
#line 746
void *fillp=NULL;
#line 746
#line 746
NC_UNUSED(fillp);
#line 746
#line 746
if(nelems == 0)
#line 746
return NC_NOERR;
#line 746
#line 746
assert(value != NULL);
#line 746
#line 746
#ifdef ERANGE_FILL
#line 746
fillp = malloc(varp->xsz);
#line 746
status = NC3_inq_var_fill(varp, fillp);
#line 746
#endif
#line 746
#line 746
for(;;)
#line 746
{
#line 746
size_t extent = MIN(remaining, ncp->chunk);
#line 746
size_t nput = ncx_howmany(varp->type, extent);
#line 746
#line 746
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 746
RGN_WRITE, &xp);
#line 746
if(lstatus != NC_NOERR)
#line 746
return lstatus;
#line 746
#line 746
lstatus = ncx_putn_double_longlong(&xp, nput, value ,fillp);
#line 746
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 746
{
#line 746
/* not fatal to the loop */
#line 746
status = lstatus;
#line 746
}
#line 746
#line 746
(void) ncio_rel(ncp->nciop, offset,
#line 746
RGN_MODIFIED);
#line 746
#line 746
remaining -= extent;
#line 746
if(remaining == 0)
#line 746
break; /* normal loop exit */
#line 746
offset += (off_t)extent;
#line 746
value += nput;
#line 746
#line 746
}
#line 746
#ifdef ERANGE_FILL
#line 746
free(fillp);
#line 746
#endif
#line 746
#line 746
return status;
#line 746
}
#line 746
static int
#line 747
putNCvx_double_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 747
const size_t *start, size_t nelems, const ushort *value)
#line 747
{
#line 747
off_t offset = NC_varoffset(ncp, varp, start);
#line 747
size_t remaining = varp->xsz * nelems;
#line 747
int status = NC_NOERR;
#line 747
void *xp;
#line 747
void *fillp=NULL;
#line 747
#line 747
NC_UNUSED(fillp);
#line 747
#line 747
if(nelems == 0)
#line 747
return NC_NOERR;
#line 747
#line 747
assert(value != NULL);
#line 747
#line 747
#ifdef ERANGE_FILL
#line 747
fillp = malloc(varp->xsz);
#line 747
status = NC3_inq_var_fill(varp, fillp);
#line 747
#endif
#line 747
#line 747
for(;;)
#line 747
{
#line 747
size_t extent = MIN(remaining, ncp->chunk);
#line 747
size_t nput = ncx_howmany(varp->type, extent);
#line 747
#line 747
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 747
RGN_WRITE, &xp);
#line 747
if(lstatus != NC_NOERR)
#line 747
return lstatus;
#line 747
#line 747
lstatus = ncx_putn_double_ushort(&xp, nput, value ,fillp);
#line 747
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 747
{
#line 747
/* not fatal to the loop */
#line 747
status = lstatus;
#line 747
}
#line 747
#line 747
(void) ncio_rel(ncp->nciop, offset,
#line 747
RGN_MODIFIED);
#line 747
#line 747
remaining -= extent;
#line 747
if(remaining == 0)
#line 747
break; /* normal loop exit */
#line 747
offset += (off_t)extent;
#line 747
value += nput;
#line 747
#line 747
}
#line 747
#ifdef ERANGE_FILL
#line 747
free(fillp);
#line 747
#endif
#line 747
#line 747
return status;
#line 747
}
#line 747
static int
#line 748
putNCvx_double_uint(NC3_INFO* ncp, const NC_var *varp,
#line 748
const size_t *start, size_t nelems, const uint *value)
#line 748
{
#line 748
off_t offset = NC_varoffset(ncp, varp, start);
#line 748
size_t remaining = varp->xsz * nelems;
#line 748
int status = NC_NOERR;
#line 748
void *xp;
#line 748
void *fillp=NULL;
#line 748
#line 748
NC_UNUSED(fillp);
#line 748
#line 748
if(nelems == 0)
#line 748
return NC_NOERR;
#line 748
#line 748
assert(value != NULL);
#line 748
#line 748
#ifdef ERANGE_FILL
#line 748
fillp = malloc(varp->xsz);
#line 748
status = NC3_inq_var_fill(varp, fillp);
#line 748
#endif
#line 748
#line 748
for(;;)
#line 748
{
#line 748
size_t extent = MIN(remaining, ncp->chunk);
#line 748
size_t nput = ncx_howmany(varp->type, extent);
#line 748
#line 748
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 748
RGN_WRITE, &xp);
#line 748
if(lstatus != NC_NOERR)
#line 748
return lstatus;
#line 748
#line 748
lstatus = ncx_putn_double_uint(&xp, nput, value ,fillp);
#line 748
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 748
{
#line 748
/* not fatal to the loop */
#line 748
status = lstatus;
#line 748
}
#line 748
#line 748
(void) ncio_rel(ncp->nciop, offset,
#line 748
RGN_MODIFIED);
#line 748
#line 748
remaining -= extent;
#line 748
if(remaining == 0)
#line 748
break; /* normal loop exit */
#line 748
offset += (off_t)extent;
#line 748
value += nput;
#line 748
#line 748
}
#line 748
#ifdef ERANGE_FILL
#line 748
free(fillp);
#line 748
#endif
#line 748
#line 748
return status;
#line 748
}
#line 748
static int
#line 749
putNCvx_double_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 749
const size_t *start, size_t nelems, const ulonglong *value)
#line 749
{
#line 749
off_t offset = NC_varoffset(ncp, varp, start);
#line 749
size_t remaining = varp->xsz * nelems;
#line 749
int status = NC_NOERR;
#line 749
void *xp;
#line 749
void *fillp=NULL;
#line 749
#line 749
NC_UNUSED(fillp);
#line 749
#line 749
if(nelems == 0)
#line 749
return NC_NOERR;
#line 749
#line 749
assert(value != NULL);
#line 749
#line 749
#ifdef ERANGE_FILL
#line 749
fillp = malloc(varp->xsz);
#line 749
status = NC3_inq_var_fill(varp, fillp);
#line 749
#endif
#line 749
#line 749
for(;;)
#line 749
{
#line 749
size_t extent = MIN(remaining, ncp->chunk);
#line 749
size_t nput = ncx_howmany(varp->type, extent);
#line 749
#line 749
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 749
RGN_WRITE, &xp);
#line 749
if(lstatus != NC_NOERR)
#line 749
return lstatus;
#line 749
#line 749
lstatus = ncx_putn_double_ulonglong(&xp, nput, value ,fillp);
#line 749
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 749
{
#line 749
/* not fatal to the loop */
#line 749
status = lstatus;
#line 749
}
#line 749
#line 749
(void) ncio_rel(ncp->nciop, offset,
#line 749
RGN_MODIFIED);
#line 749
#line 749
remaining -= extent;
#line 749
if(remaining == 0)
#line 749
break; /* normal loop exit */
#line 749
offset += (off_t)extent;
#line 749
value += nput;
#line 749
#line 749
}
#line 749
#ifdef ERANGE_FILL
#line 749
free(fillp);
#line 749
#endif
#line 749
#line 749
return status;
#line 749
}
#line 749
static int
#line 751
putNCvx_uchar_schar(NC3_INFO* ncp, const NC_var *varp,
#line 751
const size_t *start, size_t nelems, const schar *value)
#line 751
{
#line 751
off_t offset = NC_varoffset(ncp, varp, start);
#line 751
size_t remaining = varp->xsz * nelems;
#line 751
int status = NC_NOERR;
#line 751
void *xp;
#line 751
void *fillp=NULL;
#line 751
#line 751
NC_UNUSED(fillp);
#line 751
#line 751
if(nelems == 0)
#line 751
return NC_NOERR;
#line 751
#line 751
assert(value != NULL);
#line 751
#line 751
#ifdef ERANGE_FILL
#line 751
fillp = malloc(varp->xsz);
#line 751
status = NC3_inq_var_fill(varp, fillp);
#line 751
#endif
#line 751
#line 751
for(;;)
#line 751
{
#line 751
size_t extent = MIN(remaining, ncp->chunk);
#line 751
size_t nput = ncx_howmany(varp->type, extent);
#line 751
#line 751
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 751
RGN_WRITE, &xp);
#line 751
if(lstatus != NC_NOERR)
#line 751
return lstatus;
#line 751
#line 751
lstatus = ncx_putn_uchar_schar(&xp, nput, value ,fillp);
#line 751
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 751
{
#line 751
/* not fatal to the loop */
#line 751
status = lstatus;
#line 751
}
#line 751
#line 751
(void) ncio_rel(ncp->nciop, offset,
#line 751
RGN_MODIFIED);
#line 751
#line 751
remaining -= extent;
#line 751
if(remaining == 0)
#line 751
break; /* normal loop exit */
#line 751
offset += (off_t)extent;
#line 751
value += nput;
#line 751
#line 751
}
#line 751
#ifdef ERANGE_FILL
#line 751
free(fillp);
#line 751
#endif
#line 751
#line 751
return status;
#line 751
}
#line 751
static int
#line 752
putNCvx_uchar_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 752
const size_t *start, size_t nelems, const uchar *value)
#line 752
{
#line 752
off_t offset = NC_varoffset(ncp, varp, start);
#line 752
size_t remaining = varp->xsz * nelems;
#line 752
int status = NC_NOERR;
#line 752
void *xp;
#line 752
void *fillp=NULL;
#line 752
#line 752
NC_UNUSED(fillp);
#line 752
#line 752
if(nelems == 0)
#line 752
return NC_NOERR;
#line 752
#line 752
assert(value != NULL);
#line 752
#line 752
#ifdef ERANGE_FILL
#line 752
fillp = malloc(varp->xsz);
#line 752
status = NC3_inq_var_fill(varp, fillp);
#line 752
#endif
#line 752
#line 752
for(;;)
#line 752
{
#line 752
size_t extent = MIN(remaining, ncp->chunk);
#line 752
size_t nput = ncx_howmany(varp->type, extent);
#line 752
#line 752
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 752
RGN_WRITE, &xp);
#line 752
if(lstatus != NC_NOERR)
#line 752
return lstatus;
#line 752
#line 752
lstatus = ncx_putn_uchar_uchar(&xp, nput, value ,fillp);
#line 752
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 752
{
#line 752
/* not fatal to the loop */
#line 752
status = lstatus;
#line 752
}
#line 752
#line 752
(void) ncio_rel(ncp->nciop, offset,
#line 752
RGN_MODIFIED);
#line 752
#line 752
remaining -= extent;
#line 752
if(remaining == 0)
#line 752
break; /* normal loop exit */
#line 752
offset += (off_t)extent;
#line 752
value += nput;
#line 752
#line 752
}
#line 752
#ifdef ERANGE_FILL
#line 752
free(fillp);
#line 752
#endif
#line 752
#line 752
return status;
#line 752
}
#line 752
static int
#line 753
putNCvx_uchar_short(NC3_INFO* ncp, const NC_var *varp,
#line 753
const size_t *start, size_t nelems, const short *value)
#line 753
{
#line 753
off_t offset = NC_varoffset(ncp, varp, start);
#line 753
size_t remaining = varp->xsz * nelems;
#line 753
int status = NC_NOERR;
#line 753
void *xp;
#line 753
void *fillp=NULL;
#line 753
#line 753
NC_UNUSED(fillp);
#line 753
#line 753
if(nelems == 0)
#line 753
return NC_NOERR;
#line 753
#line 753
assert(value != NULL);
#line 753
#line 753
#ifdef ERANGE_FILL
#line 753
fillp = malloc(varp->xsz);
#line 753
status = NC3_inq_var_fill(varp, fillp);
#line 753
#endif
#line 753
#line 753
for(;;)
#line 753
{
#line 753
size_t extent = MIN(remaining, ncp->chunk);
#line 753
size_t nput = ncx_howmany(varp->type, extent);
#line 753
#line 753
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 753
RGN_WRITE, &xp);
#line 753
if(lstatus != NC_NOERR)
#line 753
return lstatus;
#line 753
#line 753
lstatus = ncx_putn_uchar_short(&xp, nput, value ,fillp);
#line 753
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 753
{
#line 753
/* not fatal to the loop */
#line 753
status = lstatus;
#line 753
}
#line 753
#line 753
(void) ncio_rel(ncp->nciop, offset,
#line 753
RGN_MODIFIED);
#line 753
#line 753
remaining -= extent;
#line 753
if(remaining == 0)
#line 753
break; /* normal loop exit */
#line 753
offset += (off_t)extent;
#line 753
value += nput;
#line 753
#line 753
}
#line 753
#ifdef ERANGE_FILL
#line 753
free(fillp);
#line 753
#endif
#line 753
#line 753
return status;
#line 753
}
#line 753
static int
#line 754
putNCvx_uchar_int(NC3_INFO* ncp, const NC_var *varp,
#line 754
const size_t *start, size_t nelems, const int *value)
#line 754
{
#line 754
off_t offset = NC_varoffset(ncp, varp, start);
#line 754
size_t remaining = varp->xsz * nelems;
#line 754
int status = NC_NOERR;
#line 754
void *xp;
#line 754
void *fillp=NULL;
#line 754
#line 754
NC_UNUSED(fillp);
#line 754
#line 754
if(nelems == 0)
#line 754
return NC_NOERR;
#line 754
#line 754
assert(value != NULL);
#line 754
#line 754
#ifdef ERANGE_FILL
#line 754
fillp = malloc(varp->xsz);
#line 754
status = NC3_inq_var_fill(varp, fillp);
#line 754
#endif
#line 754
#line 754
for(;;)
#line 754
{
#line 754
size_t extent = MIN(remaining, ncp->chunk);
#line 754
size_t nput = ncx_howmany(varp->type, extent);
#line 754
#line 754
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 754
RGN_WRITE, &xp);
#line 754
if(lstatus != NC_NOERR)
#line 754
return lstatus;
#line 754
#line 754
lstatus = ncx_putn_uchar_int(&xp, nput, value ,fillp);
#line 754
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 754
{
#line 754
/* not fatal to the loop */
#line 754
status = lstatus;
#line 754
}
#line 754
#line 754
(void) ncio_rel(ncp->nciop, offset,
#line 754
RGN_MODIFIED);
#line 754
#line 754
remaining -= extent;
#line 754
if(remaining == 0)
#line 754
break; /* normal loop exit */
#line 754
offset += (off_t)extent;
#line 754
value += nput;
#line 754
#line 754
}
#line 754
#ifdef ERANGE_FILL
#line 754
free(fillp);
#line 754
#endif
#line 754
#line 754
return status;
#line 754
}
#line 754
static int
#line 755
putNCvx_uchar_float(NC3_INFO* ncp, const NC_var *varp,
#line 755
const size_t *start, size_t nelems, const float *value)
#line 755
{
#line 755
off_t offset = NC_varoffset(ncp, varp, start);
#line 755
size_t remaining = varp->xsz * nelems;
#line 755
int status = NC_NOERR;
#line 755
void *xp;
#line 755
void *fillp=NULL;
#line 755
#line 755
NC_UNUSED(fillp);
#line 755
#line 755
if(nelems == 0)
#line 755
return NC_NOERR;
#line 755
#line 755
assert(value != NULL);
#line 755
#line 755
#ifdef ERANGE_FILL
#line 755
fillp = malloc(varp->xsz);
#line 755
status = NC3_inq_var_fill(varp, fillp);
#line 755
#endif
#line 755
#line 755
for(;;)
#line 755
{
#line 755
size_t extent = MIN(remaining, ncp->chunk);
#line 755
size_t nput = ncx_howmany(varp->type, extent);
#line 755
#line 755
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 755
RGN_WRITE, &xp);
#line 755
if(lstatus != NC_NOERR)
#line 755
return lstatus;
#line 755
#line 755
lstatus = ncx_putn_uchar_float(&xp, nput, value ,fillp);
#line 755
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 755
{
#line 755
/* not fatal to the loop */
#line 755
status = lstatus;
#line 755
}
#line 755
#line 755
(void) ncio_rel(ncp->nciop, offset,
#line 755
RGN_MODIFIED);
#line 755
#line 755
remaining -= extent;
#line 755
if(remaining == 0)
#line 755
break; /* normal loop exit */
#line 755
offset += (off_t)extent;
#line 755
value += nput;
#line 755
#line 755
}
#line 755
#ifdef ERANGE_FILL
#line 755
free(fillp);
#line 755
#endif
#line 755
#line 755
return status;
#line 755
}
#line 755
static int
#line 756
putNCvx_uchar_double(NC3_INFO* ncp, const NC_var *varp,
#line 756
const size_t *start, size_t nelems, const double *value)
#line 756
{
#line 756
off_t offset = NC_varoffset(ncp, varp, start);
#line 756
size_t remaining = varp->xsz * nelems;
#line 756
int status = NC_NOERR;
#line 756
void *xp;
#line 756
void *fillp=NULL;
#line 756
#line 756
NC_UNUSED(fillp);
#line 756
#line 756
if(nelems == 0)
#line 756
return NC_NOERR;
#line 756
#line 756
assert(value != NULL);
#line 756
#line 756
#ifdef ERANGE_FILL
#line 756
fillp = malloc(varp->xsz);
#line 756
status = NC3_inq_var_fill(varp, fillp);
#line 756
#endif
#line 756
#line 756
for(;;)
#line 756
{
#line 756
size_t extent = MIN(remaining, ncp->chunk);
#line 756
size_t nput = ncx_howmany(varp->type, extent);
#line 756
#line 756
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 756
RGN_WRITE, &xp);
#line 756
if(lstatus != NC_NOERR)
#line 756
return lstatus;
#line 756
#line 756
lstatus = ncx_putn_uchar_double(&xp, nput, value ,fillp);
#line 756
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 756
{
#line 756
/* not fatal to the loop */
#line 756
status = lstatus;
#line 756
}
#line 756
#line 756
(void) ncio_rel(ncp->nciop, offset,
#line 756
RGN_MODIFIED);
#line 756
#line 756
remaining -= extent;
#line 756
if(remaining == 0)
#line 756
break; /* normal loop exit */
#line 756
offset += (off_t)extent;
#line 756
value += nput;
#line 756
#line 756
}
#line 756
#ifdef ERANGE_FILL
#line 756
free(fillp);
#line 756
#endif
#line 756
#line 756
return status;
#line 756
}
#line 756
static int
#line 757
putNCvx_uchar_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 757
const size_t *start, size_t nelems, const longlong *value)
#line 757
{
#line 757
off_t offset = NC_varoffset(ncp, varp, start);
#line 757
size_t remaining = varp->xsz * nelems;
#line 757
int status = NC_NOERR;
#line 757
void *xp;
#line 757
void *fillp=NULL;
#line 757
#line 757
NC_UNUSED(fillp);
#line 757
#line 757
if(nelems == 0)
#line 757
return NC_NOERR;
#line 757
#line 757
assert(value != NULL);
#line 757
#line 757
#ifdef ERANGE_FILL
#line 757
fillp = malloc(varp->xsz);
#line 757
status = NC3_inq_var_fill(varp, fillp);
#line 757
#endif
#line 757
#line 757
for(;;)
#line 757
{
#line 757
size_t extent = MIN(remaining, ncp->chunk);
#line 757
size_t nput = ncx_howmany(varp->type, extent);
#line 757
#line 757
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 757
RGN_WRITE, &xp);
#line 757
if(lstatus != NC_NOERR)
#line 757
return lstatus;
#line 757
#line 757
lstatus = ncx_putn_uchar_longlong(&xp, nput, value ,fillp);
#line 757
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 757
{
#line 757
/* not fatal to the loop */
#line 757
status = lstatus;
#line 757
}
#line 757
#line 757
(void) ncio_rel(ncp->nciop, offset,
#line 757
RGN_MODIFIED);
#line 757
#line 757
remaining -= extent;
#line 757
if(remaining == 0)
#line 757
break; /* normal loop exit */
#line 757
offset += (off_t)extent;
#line 757
value += nput;
#line 757
#line 757
}
#line 757
#ifdef ERANGE_FILL
#line 757
free(fillp);
#line 757
#endif
#line 757
#line 757
return status;
#line 757
}
#line 757
static int
#line 758
putNCvx_uchar_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 758
const size_t *start, size_t nelems, const ushort *value)
#line 758
{
#line 758
off_t offset = NC_varoffset(ncp, varp, start);
#line 758
size_t remaining = varp->xsz * nelems;
#line 758
int status = NC_NOERR;
#line 758
void *xp;
#line 758
void *fillp=NULL;
#line 758
#line 758
NC_UNUSED(fillp);
#line 758
#line 758
if(nelems == 0)
#line 758
return NC_NOERR;
#line 758
#line 758
assert(value != NULL);
#line 758
#line 758
#ifdef ERANGE_FILL
#line 758
fillp = malloc(varp->xsz);
#line 758
status = NC3_inq_var_fill(varp, fillp);
#line 758
#endif
#line 758
#line 758
for(;;)
#line 758
{
#line 758
size_t extent = MIN(remaining, ncp->chunk);
#line 758
size_t nput = ncx_howmany(varp->type, extent);
#line 758
#line 758
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 758
RGN_WRITE, &xp);
#line 758
if(lstatus != NC_NOERR)
#line 758
return lstatus;
#line 758
#line 758
lstatus = ncx_putn_uchar_ushort(&xp, nput, value ,fillp);
#line 758
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 758
{
#line 758
/* not fatal to the loop */
#line 758
status = lstatus;
#line 758
}
#line 758
#line 758
(void) ncio_rel(ncp->nciop, offset,
#line 758
RGN_MODIFIED);
#line 758
#line 758
remaining -= extent;
#line 758
if(remaining == 0)
#line 758
break; /* normal loop exit */
#line 758
offset += (off_t)extent;
#line 758
value += nput;
#line 758
#line 758
}
#line 758
#ifdef ERANGE_FILL
#line 758
free(fillp);
#line 758
#endif
#line 758
#line 758
return status;
#line 758
}
#line 758
static int
#line 759
putNCvx_uchar_uint(NC3_INFO* ncp, const NC_var *varp,
#line 759
const size_t *start, size_t nelems, const uint *value)
#line 759
{
#line 759
off_t offset = NC_varoffset(ncp, varp, start);
#line 759
size_t remaining = varp->xsz * nelems;
#line 759
int status = NC_NOERR;
#line 759
void *xp;
#line 759
void *fillp=NULL;
#line 759
#line 759
NC_UNUSED(fillp);
#line 759
#line 759
if(nelems == 0)
#line 759
return NC_NOERR;
#line 759
#line 759
assert(value != NULL);
#line 759
#line 759
#ifdef ERANGE_FILL
#line 759
fillp = malloc(varp->xsz);
#line 759
status = NC3_inq_var_fill(varp, fillp);
#line 759
#endif
#line 759
#line 759
for(;;)
#line 759
{
#line 759
size_t extent = MIN(remaining, ncp->chunk);
#line 759
size_t nput = ncx_howmany(varp->type, extent);
#line 759
#line 759
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 759
RGN_WRITE, &xp);
#line 759
if(lstatus != NC_NOERR)
#line 759
return lstatus;
#line 759
#line 759
lstatus = ncx_putn_uchar_uint(&xp, nput, value ,fillp);
#line 759
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 759
{
#line 759
/* not fatal to the loop */
#line 759
status = lstatus;
#line 759
}
#line 759
#line 759
(void) ncio_rel(ncp->nciop, offset,
#line 759
RGN_MODIFIED);
#line 759
#line 759
remaining -= extent;
#line 759
if(remaining == 0)
#line 759
break; /* normal loop exit */
#line 759
offset += (off_t)extent;
#line 759
value += nput;
#line 759
#line 759
}
#line 759
#ifdef ERANGE_FILL
#line 759
free(fillp);
#line 759
#endif
#line 759
#line 759
return status;
#line 759
}
#line 759
static int
#line 760
putNCvx_uchar_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 760
const size_t *start, size_t nelems, const ulonglong *value)
#line 760
{
#line 760
off_t offset = NC_varoffset(ncp, varp, start);
#line 760
size_t remaining = varp->xsz * nelems;
#line 760
int status = NC_NOERR;
#line 760
void *xp;
#line 760
void *fillp=NULL;
#line 760
#line 760
NC_UNUSED(fillp);
#line 760
#line 760
if(nelems == 0)
#line 760
return NC_NOERR;
#line 760
#line 760
assert(value != NULL);
#line 760
#line 760
#ifdef ERANGE_FILL
#line 760
fillp = malloc(varp->xsz);
#line 760
status = NC3_inq_var_fill(varp, fillp);
#line 760
#endif
#line 760
#line 760
for(;;)
#line 760
{
#line 760
size_t extent = MIN(remaining, ncp->chunk);
#line 760
size_t nput = ncx_howmany(varp->type, extent);
#line 760
#line 760
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 760
RGN_WRITE, &xp);
#line 760
if(lstatus != NC_NOERR)
#line 760
return lstatus;
#line 760
#line 760
lstatus = ncx_putn_uchar_ulonglong(&xp, nput, value ,fillp);
#line 760
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 760
{
#line 760
/* not fatal to the loop */
#line 760
status = lstatus;
#line 760
}
#line 760
#line 760
(void) ncio_rel(ncp->nciop, offset,
#line 760
RGN_MODIFIED);
#line 760
#line 760
remaining -= extent;
#line 760
if(remaining == 0)
#line 760
break; /* normal loop exit */
#line 760
offset += (off_t)extent;
#line 760
value += nput;
#line 760
#line 760
}
#line 760
#ifdef ERANGE_FILL
#line 760
free(fillp);
#line 760
#endif
#line 760
#line 760
return status;
#line 760
}
#line 760
static int
#line 762
putNCvx_ushort_schar(NC3_INFO* ncp, const NC_var *varp,
#line 762
const size_t *start, size_t nelems, const schar *value)
#line 762
{
#line 762
off_t offset = NC_varoffset(ncp, varp, start);
#line 762
size_t remaining = varp->xsz * nelems;
#line 762
int status = NC_NOERR;
#line 762
void *xp;
#line 762
void *fillp=NULL;
#line 762
#line 762
NC_UNUSED(fillp);
#line 762
#line 762
if(nelems == 0)
#line 762
return NC_NOERR;
#line 762
#line 762
assert(value != NULL);
#line 762
#line 762
#ifdef ERANGE_FILL
#line 762
fillp = malloc(varp->xsz);
#line 762
status = NC3_inq_var_fill(varp, fillp);
#line 762
#endif
#line 762
#line 762
for(;;)
#line 762
{
#line 762
size_t extent = MIN(remaining, ncp->chunk);
#line 762
size_t nput = ncx_howmany(varp->type, extent);
#line 762
#line 762
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 762
RGN_WRITE, &xp);
#line 762
if(lstatus != NC_NOERR)
#line 762
return lstatus;
#line 762
#line 762
lstatus = ncx_putn_ushort_schar(&xp, nput, value ,fillp);
#line 762
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 762
{
#line 762
/* not fatal to the loop */
#line 762
status = lstatus;
#line 762
}
#line 762
#line 762
(void) ncio_rel(ncp->nciop, offset,
#line 762
RGN_MODIFIED);
#line 762
#line 762
remaining -= extent;
#line 762
if(remaining == 0)
#line 762
break; /* normal loop exit */
#line 762
offset += (off_t)extent;
#line 762
value += nput;
#line 762
#line 762
}
#line 762
#ifdef ERANGE_FILL
#line 762
free(fillp);
#line 762
#endif
#line 762
#line 762
return status;
#line 762
}
#line 762
static int
#line 763
putNCvx_ushort_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 763
const size_t *start, size_t nelems, const uchar *value)
#line 763
{
#line 763
off_t offset = NC_varoffset(ncp, varp, start);
#line 763
size_t remaining = varp->xsz * nelems;
#line 763
int status = NC_NOERR;
#line 763
void *xp;
#line 763
void *fillp=NULL;
#line 763
#line 763
NC_UNUSED(fillp);
#line 763
#line 763
if(nelems == 0)
#line 763
return NC_NOERR;
#line 763
#line 763
assert(value != NULL);
#line 763
#line 763
#ifdef ERANGE_FILL
#line 763
fillp = malloc(varp->xsz);
#line 763
status = NC3_inq_var_fill(varp, fillp);
#line 763
#endif
#line 763
#line 763
for(;;)
#line 763
{
#line 763
size_t extent = MIN(remaining, ncp->chunk);
#line 763
size_t nput = ncx_howmany(varp->type, extent);
#line 763
#line 763
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 763
RGN_WRITE, &xp);
#line 763
if(lstatus != NC_NOERR)
#line 763
return lstatus;
#line 763
#line 763
lstatus = ncx_putn_ushort_uchar(&xp, nput, value ,fillp);
#line 763
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 763
{
#line 763
/* not fatal to the loop */
#line 763
status = lstatus;
#line 763
}
#line 763
#line 763
(void) ncio_rel(ncp->nciop, offset,
#line 763
RGN_MODIFIED);
#line 763
#line 763
remaining -= extent;
#line 763
if(remaining == 0)
#line 763
break; /* normal loop exit */
#line 763
offset += (off_t)extent;
#line 763
value += nput;
#line 763
#line 763
}
#line 763
#ifdef ERANGE_FILL
#line 763
free(fillp);
#line 763
#endif
#line 763
#line 763
return status;
#line 763
}
#line 763
static int
#line 764
putNCvx_ushort_short(NC3_INFO* ncp, const NC_var *varp,
#line 764
const size_t *start, size_t nelems, const short *value)
#line 764
{
#line 764
off_t offset = NC_varoffset(ncp, varp, start);
#line 764
size_t remaining = varp->xsz * nelems;
#line 764
int status = NC_NOERR;
#line 764
void *xp;
#line 764
void *fillp=NULL;
#line 764
#line 764
NC_UNUSED(fillp);
#line 764
#line 764
if(nelems == 0)
#line 764
return NC_NOERR;
#line 764
#line 764
assert(value != NULL);
#line 764
#line 764
#ifdef ERANGE_FILL
#line 764
fillp = malloc(varp->xsz);
#line 764
status = NC3_inq_var_fill(varp, fillp);
#line 764
#endif
#line 764
#line 764
for(;;)
#line 764
{
#line 764
size_t extent = MIN(remaining, ncp->chunk);
#line 764
size_t nput = ncx_howmany(varp->type, extent);
#line 764
#line 764
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 764
RGN_WRITE, &xp);
#line 764
if(lstatus != NC_NOERR)
#line 764
return lstatus;
#line 764
#line 764
lstatus = ncx_putn_ushort_short(&xp, nput, value ,fillp);
#line 764
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 764
{
#line 764
/* not fatal to the loop */
#line 764
status = lstatus;
#line 764
}
#line 764
#line 764
(void) ncio_rel(ncp->nciop, offset,
#line 764
RGN_MODIFIED);
#line 764
#line 764
remaining -= extent;
#line 764
if(remaining == 0)
#line 764
break; /* normal loop exit */
#line 764
offset += (off_t)extent;
#line 764
value += nput;
#line 764
#line 764
}
#line 764
#ifdef ERANGE_FILL
#line 764
free(fillp);
#line 764
#endif
#line 764
#line 764
return status;
#line 764
}
#line 764
static int
#line 765
putNCvx_ushort_int(NC3_INFO* ncp, const NC_var *varp,
#line 765
const size_t *start, size_t nelems, const int *value)
#line 765
{
#line 765
off_t offset = NC_varoffset(ncp, varp, start);
#line 765
size_t remaining = varp->xsz * nelems;
#line 765
int status = NC_NOERR;
#line 765
void *xp;
#line 765
void *fillp=NULL;
#line 765
#line 765
NC_UNUSED(fillp);
#line 765
#line 765
if(nelems == 0)
#line 765
return NC_NOERR;
#line 765
#line 765
assert(value != NULL);
#line 765
#line 765
#ifdef ERANGE_FILL
#line 765
fillp = malloc(varp->xsz);
#line 765
status = NC3_inq_var_fill(varp, fillp);
#line 765
#endif
#line 765
#line 765
for(;;)
#line 765
{
#line 765
size_t extent = MIN(remaining, ncp->chunk);
#line 765
size_t nput = ncx_howmany(varp->type, extent);
#line 765
#line 765
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 765
RGN_WRITE, &xp);
#line 765
if(lstatus != NC_NOERR)
#line 765
return lstatus;
#line 765
#line 765
lstatus = ncx_putn_ushort_int(&xp, nput, value ,fillp);
#line 765
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 765
{
#line 765
/* not fatal to the loop */
#line 765
status = lstatus;
#line 765
}
#line 765
#line 765
(void) ncio_rel(ncp->nciop, offset,
#line 765
RGN_MODIFIED);
#line 765
#line 765
remaining -= extent;
#line 765
if(remaining == 0)
#line 765
break; /* normal loop exit */
#line 765
offset += (off_t)extent;
#line 765
value += nput;
#line 765
#line 765
}
#line 765
#ifdef ERANGE_FILL
#line 765
free(fillp);
#line 765
#endif
#line 765
#line 765
return status;
#line 765
}
#line 765
static int
#line 766
putNCvx_ushort_float(NC3_INFO* ncp, const NC_var *varp,
#line 766
const size_t *start, size_t nelems, const float *value)
#line 766
{
#line 766
off_t offset = NC_varoffset(ncp, varp, start);
#line 766
size_t remaining = varp->xsz * nelems;
#line 766
int status = NC_NOERR;
#line 766
void *xp;
#line 766
void *fillp=NULL;
#line 766
#line 766
NC_UNUSED(fillp);
#line 766
#line 766
if(nelems == 0)
#line 766
return NC_NOERR;
#line 766
#line 766
assert(value != NULL);
#line 766
#line 766
#ifdef ERANGE_FILL
#line 766
fillp = malloc(varp->xsz);
#line 766
status = NC3_inq_var_fill(varp, fillp);
#line 766
#endif
#line 766
#line 766
for(;;)
#line 766
{
#line 766
size_t extent = MIN(remaining, ncp->chunk);
#line 766
size_t nput = ncx_howmany(varp->type, extent);
#line 766
#line 766
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 766
RGN_WRITE, &xp);
#line 766
if(lstatus != NC_NOERR)
#line 766
return lstatus;
#line 766
#line 766
lstatus = ncx_putn_ushort_float(&xp, nput, value ,fillp);
#line 766
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 766
{
#line 766
/* not fatal to the loop */
#line 766
status = lstatus;
#line 766
}
#line 766
#line 766
(void) ncio_rel(ncp->nciop, offset,
#line 766
RGN_MODIFIED);
#line 766
#line 766
remaining -= extent;
#line 766
if(remaining == 0)
#line 766
break; /* normal loop exit */
#line 766
offset += (off_t)extent;
#line 766
value += nput;
#line 766
#line 766
}
#line 766
#ifdef ERANGE_FILL
#line 766
free(fillp);
#line 766
#endif
#line 766
#line 766
return status;
#line 766
}
#line 766
static int
#line 767
putNCvx_ushort_double(NC3_INFO* ncp, const NC_var *varp,
#line 767
const size_t *start, size_t nelems, const double *value)
#line 767
{
#line 767
off_t offset = NC_varoffset(ncp, varp, start);
#line 767
size_t remaining = varp->xsz * nelems;
#line 767
int status = NC_NOERR;
#line 767
void *xp;
#line 767
void *fillp=NULL;
#line 767
#line 767
NC_UNUSED(fillp);
#line 767
#line 767
if(nelems == 0)
#line 767
return NC_NOERR;
#line 767
#line 767
assert(value != NULL);
#line 767
#line 767
#ifdef ERANGE_FILL
#line 767
fillp = malloc(varp->xsz);
#line 767
status = NC3_inq_var_fill(varp, fillp);
#line 767
#endif
#line 767
#line 767
for(;;)
#line 767
{
#line 767
size_t extent = MIN(remaining, ncp->chunk);
#line 767
size_t nput = ncx_howmany(varp->type, extent);
#line 767
#line 767
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 767
RGN_WRITE, &xp);
#line 767
if(lstatus != NC_NOERR)
#line 767
return lstatus;
#line 767
#line 767
lstatus = ncx_putn_ushort_double(&xp, nput, value ,fillp);
#line 767
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 767
{
#line 767
/* not fatal to the loop */
#line 767
status = lstatus;
#line 767
}
#line 767
#line 767
(void) ncio_rel(ncp->nciop, offset,
#line 767
RGN_MODIFIED);
#line 767
#line 767
remaining -= extent;
#line 767
if(remaining == 0)
#line 767
break; /* normal loop exit */
#line 767
offset += (off_t)extent;
#line 767
value += nput;
#line 767
#line 767
}
#line 767
#ifdef ERANGE_FILL
#line 767
free(fillp);
#line 767
#endif
#line 767
#line 767
return status;
#line 767
}
#line 767
static int
#line 768
putNCvx_ushort_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 768
const size_t *start, size_t nelems, const longlong *value)
#line 768
{
#line 768
off_t offset = NC_varoffset(ncp, varp, start);
#line 768
size_t remaining = varp->xsz * nelems;
#line 768
int status = NC_NOERR;
#line 768
void *xp;
#line 768
void *fillp=NULL;
#line 768
#line 768
NC_UNUSED(fillp);
#line 768
#line 768
if(nelems == 0)
#line 768
return NC_NOERR;
#line 768
#line 768
assert(value != NULL);
#line 768
#line 768
#ifdef ERANGE_FILL
#line 768
fillp = malloc(varp->xsz);
#line 768
status = NC3_inq_var_fill(varp, fillp);
#line 768
#endif
#line 768
#line 768
for(;;)
#line 768
{
#line 768
size_t extent = MIN(remaining, ncp->chunk);
#line 768
size_t nput = ncx_howmany(varp->type, extent);
#line 768
#line 768
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 768
RGN_WRITE, &xp);
#line 768
if(lstatus != NC_NOERR)
#line 768
return lstatus;
#line 768
#line 768
lstatus = ncx_putn_ushort_longlong(&xp, nput, value ,fillp);
#line 768
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 768
{
#line 768
/* not fatal to the loop */
#line 768
status = lstatus;
#line 768
}
#line 768
#line 768
(void) ncio_rel(ncp->nciop, offset,
#line 768
RGN_MODIFIED);
#line 768
#line 768
remaining -= extent;
#line 768
if(remaining == 0)
#line 768
break; /* normal loop exit */
#line 768
offset += (off_t)extent;
#line 768
value += nput;
#line 768
#line 768
}
#line 768
#ifdef ERANGE_FILL
#line 768
free(fillp);
#line 768
#endif
#line 768
#line 768
return status;
#line 768
}
#line 768
static int
#line 769
putNCvx_ushort_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 769
const size_t *start, size_t nelems, const ushort *value)
#line 769
{
#line 769
off_t offset = NC_varoffset(ncp, varp, start);
#line 769
size_t remaining = varp->xsz * nelems;
#line 769
int status = NC_NOERR;
#line 769
void *xp;
#line 769
void *fillp=NULL;
#line 769
#line 769
NC_UNUSED(fillp);
#line 769
#line 769
if(nelems == 0)
#line 769
return NC_NOERR;
#line 769
#line 769
assert(value != NULL);
#line 769
#line 769
#ifdef ERANGE_FILL
#line 769
fillp = malloc(varp->xsz);
#line 769
status = NC3_inq_var_fill(varp, fillp);
#line 769
#endif
#line 769
#line 769
for(;;)
#line 769
{
#line 769
size_t extent = MIN(remaining, ncp->chunk);
#line 769
size_t nput = ncx_howmany(varp->type, extent);
#line 769
#line 769
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 769
RGN_WRITE, &xp);
#line 769
if(lstatus != NC_NOERR)
#line 769
return lstatus;
#line 769
#line 769
lstatus = ncx_putn_ushort_ushort(&xp, nput, value ,fillp);
#line 769
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 769
{
#line 769
/* not fatal to the loop */
#line 769
status = lstatus;
#line 769
}
#line 769
#line 769
(void) ncio_rel(ncp->nciop, offset,
#line 769
RGN_MODIFIED);
#line 769
#line 769
remaining -= extent;
#line 769
if(remaining == 0)
#line 769
break; /* normal loop exit */
#line 769
offset += (off_t)extent;
#line 769
value += nput;
#line 769
#line 769
}
#line 769
#ifdef ERANGE_FILL
#line 769
free(fillp);
#line 769
#endif
#line 769
#line 769
return status;
#line 769
}
#line 769
static int
#line 770
putNCvx_ushort_uint(NC3_INFO* ncp, const NC_var *varp,
#line 770
const size_t *start, size_t nelems, const uint *value)
#line 770
{
#line 770
off_t offset = NC_varoffset(ncp, varp, start);
#line 770
size_t remaining = varp->xsz * nelems;
#line 770
int status = NC_NOERR;
#line 770
void *xp;
#line 770
void *fillp=NULL;
#line 770
#line 770
NC_UNUSED(fillp);
#line 770
#line 770
if(nelems == 0)
#line 770
return NC_NOERR;
#line 770
#line 770
assert(value != NULL);
#line 770
#line 770
#ifdef ERANGE_FILL
#line 770
fillp = malloc(varp->xsz);
#line 770
status = NC3_inq_var_fill(varp, fillp);
#line 770
#endif
#line 770
#line 770
for(;;)
#line 770
{
#line 770
size_t extent = MIN(remaining, ncp->chunk);
#line 770
size_t nput = ncx_howmany(varp->type, extent);
#line 770
#line 770
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 770
RGN_WRITE, &xp);
#line 770
if(lstatus != NC_NOERR)
#line 770
return lstatus;
#line 770
#line 770
lstatus = ncx_putn_ushort_uint(&xp, nput, value ,fillp);
#line 770
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 770
{
#line 770
/* not fatal to the loop */
#line 770
status = lstatus;
#line 770
}
#line 770
#line 770
(void) ncio_rel(ncp->nciop, offset,
#line 770
RGN_MODIFIED);
#line 770
#line 770
remaining -= extent;
#line 770
if(remaining == 0)
#line 770
break; /* normal loop exit */
#line 770
offset += (off_t)extent;
#line 770
value += nput;
#line 770
#line 770
}
#line 770
#ifdef ERANGE_FILL
#line 770
free(fillp);
#line 770
#endif
#line 770
#line 770
return status;
#line 770
}
#line 770
static int
#line 771
putNCvx_ushort_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 771
const size_t *start, size_t nelems, const ulonglong *value)
#line 771
{
#line 771
off_t offset = NC_varoffset(ncp, varp, start);
#line 771
size_t remaining = varp->xsz * nelems;
#line 771
int status = NC_NOERR;
#line 771
void *xp;
#line 771
void *fillp=NULL;
#line 771
#line 771
NC_UNUSED(fillp);
#line 771
#line 771
if(nelems == 0)
#line 771
return NC_NOERR;
#line 771
#line 771
assert(value != NULL);
#line 771
#line 771
#ifdef ERANGE_FILL
#line 771
fillp = malloc(varp->xsz);
#line 771
status = NC3_inq_var_fill(varp, fillp);
#line 771
#endif
#line 771
#line 771
for(;;)
#line 771
{
#line 771
size_t extent = MIN(remaining, ncp->chunk);
#line 771
size_t nput = ncx_howmany(varp->type, extent);
#line 771
#line 771
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 771
RGN_WRITE, &xp);
#line 771
if(lstatus != NC_NOERR)
#line 771
return lstatus;
#line 771
#line 771
lstatus = ncx_putn_ushort_ulonglong(&xp, nput, value ,fillp);
#line 771
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 771
{
#line 771
/* not fatal to the loop */
#line 771
status = lstatus;
#line 771
}
#line 771
#line 771
(void) ncio_rel(ncp->nciop, offset,
#line 771
RGN_MODIFIED);
#line 771
#line 771
remaining -= extent;
#line 771
if(remaining == 0)
#line 771
break; /* normal loop exit */
#line 771
offset += (off_t)extent;
#line 771
value += nput;
#line 771
#line 771
}
#line 771
#ifdef ERANGE_FILL
#line 771
free(fillp);
#line 771
#endif
#line 771
#line 771
return status;
#line 771
}
#line 771
static int
#line 773
putNCvx_uint_schar(NC3_INFO* ncp, const NC_var *varp,
#line 773
const size_t *start, size_t nelems, const schar *value)
#line 773
{
#line 773
off_t offset = NC_varoffset(ncp, varp, start);
#line 773
size_t remaining = varp->xsz * nelems;
#line 773
int status = NC_NOERR;
#line 773
void *xp;
#line 773
void *fillp=NULL;
#line 773
#line 773
NC_UNUSED(fillp);
#line 773
#line 773
if(nelems == 0)
#line 773
return NC_NOERR;
#line 773
#line 773
assert(value != NULL);
#line 773
#line 773
#ifdef ERANGE_FILL
#line 773
fillp = malloc(varp->xsz);
#line 773
status = NC3_inq_var_fill(varp, fillp);
#line 773
#endif
#line 773
#line 773
for(;;)
#line 773
{
#line 773
size_t extent = MIN(remaining, ncp->chunk);
#line 773
size_t nput = ncx_howmany(varp->type, extent);
#line 773
#line 773
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 773
RGN_WRITE, &xp);
#line 773
if(lstatus != NC_NOERR)
#line 773
return lstatus;
#line 773
#line 773
lstatus = ncx_putn_uint_schar(&xp, nput, value ,fillp);
#line 773
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 773
{
#line 773
/* not fatal to the loop */
#line 773
status = lstatus;
#line 773
}
#line 773
#line 773
(void) ncio_rel(ncp->nciop, offset,
#line 773
RGN_MODIFIED);
#line 773
#line 773
remaining -= extent;
#line 773
if(remaining == 0)
#line 773
break; /* normal loop exit */
#line 773
offset += (off_t)extent;
#line 773
value += nput;
#line 773
#line 773
}
#line 773
#ifdef ERANGE_FILL
#line 773
free(fillp);
#line 773
#endif
#line 773
#line 773
return status;
#line 773
}
#line 773
static int
#line 774
putNCvx_uint_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 774
const size_t *start, size_t nelems, const uchar *value)
#line 774
{
#line 774
off_t offset = NC_varoffset(ncp, varp, start);
#line 774
size_t remaining = varp->xsz * nelems;
#line 774
int status = NC_NOERR;
#line 774
void *xp;
#line 774
void *fillp=NULL;
#line 774
#line 774
NC_UNUSED(fillp);
#line 774
#line 774
if(nelems == 0)
#line 774
return NC_NOERR;
#line 774
#line 774
assert(value != NULL);
#line 774
#line 774
#ifdef ERANGE_FILL
#line 774
fillp = malloc(varp->xsz);
#line 774
status = NC3_inq_var_fill(varp, fillp);
#line 774
#endif
#line 774
#line 774
for(;;)
#line 774
{
#line 774
size_t extent = MIN(remaining, ncp->chunk);
#line 774
size_t nput = ncx_howmany(varp->type, extent);
#line 774
#line 774
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 774
RGN_WRITE, &xp);
#line 774
if(lstatus != NC_NOERR)
#line 774
return lstatus;
#line 774
#line 774
lstatus = ncx_putn_uint_uchar(&xp, nput, value ,fillp);
#line 774
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 774
{
#line 774
/* not fatal to the loop */
#line 774
status = lstatus;
#line 774
}
#line 774
#line 774
(void) ncio_rel(ncp->nciop, offset,
#line 774
RGN_MODIFIED);
#line 774
#line 774
remaining -= extent;
#line 774
if(remaining == 0)
#line 774
break; /* normal loop exit */
#line 774
offset += (off_t)extent;
#line 774
value += nput;
#line 774
#line 774
}
#line 774
#ifdef ERANGE_FILL
#line 774
free(fillp);
#line 774
#endif
#line 774
#line 774
return status;
#line 774
}
#line 774
static int
#line 775
putNCvx_uint_short(NC3_INFO* ncp, const NC_var *varp,
#line 775
const size_t *start, size_t nelems, const short *value)
#line 775
{
#line 775
off_t offset = NC_varoffset(ncp, varp, start);
#line 775
size_t remaining = varp->xsz * nelems;
#line 775
int status = NC_NOERR;
#line 775
void *xp;
#line 775
void *fillp=NULL;
#line 775
#line 775
NC_UNUSED(fillp);
#line 775
#line 775
if(nelems == 0)
#line 775
return NC_NOERR;
#line 775
#line 775
assert(value != NULL);
#line 775
#line 775
#ifdef ERANGE_FILL
#line 775
fillp = malloc(varp->xsz);
#line 775
status = NC3_inq_var_fill(varp, fillp);
#line 775
#endif
#line 775
#line 775
for(;;)
#line 775
{
#line 775
size_t extent = MIN(remaining, ncp->chunk);
#line 775
size_t nput = ncx_howmany(varp->type, extent);
#line 775
#line 775
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 775
RGN_WRITE, &xp);
#line 775
if(lstatus != NC_NOERR)
#line 775
return lstatus;
#line 775
#line 775
lstatus = ncx_putn_uint_short(&xp, nput, value ,fillp);
#line 775
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 775
{
#line 775
/* not fatal to the loop */
#line 775
status = lstatus;
#line 775
}
#line 775
#line 775
(void) ncio_rel(ncp->nciop, offset,
#line 775
RGN_MODIFIED);
#line 775
#line 775
remaining -= extent;
#line 775
if(remaining == 0)
#line 775
break; /* normal loop exit */
#line 775
offset += (off_t)extent;
#line 775
value += nput;
#line 775
#line 775
}
#line 775
#ifdef ERANGE_FILL
#line 775
free(fillp);
#line 775
#endif
#line 775
#line 775
return status;
#line 775
}
#line 775
static int
#line 776
putNCvx_uint_int(NC3_INFO* ncp, const NC_var *varp,
#line 776
const size_t *start, size_t nelems, const int *value)
#line 776
{
#line 776
off_t offset = NC_varoffset(ncp, varp, start);
#line 776
size_t remaining = varp->xsz * nelems;
#line 776
int status = NC_NOERR;
#line 776
void *xp;
#line 776
void *fillp=NULL;
#line 776
#line 776
NC_UNUSED(fillp);
#line 776
#line 776
if(nelems == 0)
#line 776
return NC_NOERR;
#line 776
#line 776
assert(value != NULL);
#line 776
#line 776
#ifdef ERANGE_FILL
#line 776
fillp = malloc(varp->xsz);
#line 776
status = NC3_inq_var_fill(varp, fillp);
#line 776
#endif
#line 776
#line 776
for(;;)
#line 776
{
#line 776
size_t extent = MIN(remaining, ncp->chunk);
#line 776
size_t nput = ncx_howmany(varp->type, extent);
#line 776
#line 776
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 776
RGN_WRITE, &xp);
#line 776
if(lstatus != NC_NOERR)
#line 776
return lstatus;
#line 776
#line 776
lstatus = ncx_putn_uint_int(&xp, nput, value ,fillp);
#line 776
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 776
{
#line 776
/* not fatal to the loop */
#line 776
status = lstatus;
#line 776
}
#line 776
#line 776
(void) ncio_rel(ncp->nciop, offset,
#line 776
RGN_MODIFIED);
#line 776
#line 776
remaining -= extent;
#line 776
if(remaining == 0)
#line 776
break; /* normal loop exit */
#line 776
offset += (off_t)extent;
#line 776
value += nput;
#line 776
#line 776
}
#line 776
#ifdef ERANGE_FILL
#line 776
free(fillp);
#line 776
#endif
#line 776
#line 776
return status;
#line 776
}
#line 776
static int
#line 777
putNCvx_uint_float(NC3_INFO* ncp, const NC_var *varp,
#line 777
const size_t *start, size_t nelems, const float *value)
#line 777
{
#line 777
off_t offset = NC_varoffset(ncp, varp, start);
#line 777
size_t remaining = varp->xsz * nelems;
#line 777
int status = NC_NOERR;
#line 777
void *xp;
#line 777
void *fillp=NULL;
#line 777
#line 777
NC_UNUSED(fillp);
#line 777
#line 777
if(nelems == 0)
#line 777
return NC_NOERR;
#line 777
#line 777
assert(value != NULL);
#line 777
#line 777
#ifdef ERANGE_FILL
#line 777
fillp = malloc(varp->xsz);
#line 777
status = NC3_inq_var_fill(varp, fillp);
#line 777
#endif
#line 777
#line 777
for(;;)
#line 777
{
#line 777
size_t extent = MIN(remaining, ncp->chunk);
#line 777
size_t nput = ncx_howmany(varp->type, extent);
#line 777
#line 777
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 777
RGN_WRITE, &xp);
#line 777
if(lstatus != NC_NOERR)
#line 777
return lstatus;
#line 777
#line 777
lstatus = ncx_putn_uint_float(&xp, nput, value ,fillp);
#line 777
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 777
{
#line 777
/* not fatal to the loop */
#line 777
status = lstatus;
#line 777
}
#line 777
#line 777
(void) ncio_rel(ncp->nciop, offset,
#line 777
RGN_MODIFIED);
#line 777
#line 777
remaining -= extent;
#line 777
if(remaining == 0)
#line 777
break; /* normal loop exit */
#line 777
offset += (off_t)extent;
#line 777
value += nput;
#line 777
#line 777
}
#line 777
#ifdef ERANGE_FILL
#line 777
free(fillp);
#line 777
#endif
#line 777
#line 777
return status;
#line 777
}
#line 777
static int
#line 778
putNCvx_uint_double(NC3_INFO* ncp, const NC_var *varp,
#line 778
const size_t *start, size_t nelems, const double *value)
#line 778
{
#line 778
off_t offset = NC_varoffset(ncp, varp, start);
#line 778
size_t remaining = varp->xsz * nelems;
#line 778
int status = NC_NOERR;
#line 778
void *xp;
#line 778
void *fillp=NULL;
#line 778
#line 778
NC_UNUSED(fillp);
#line 778
#line 778
if(nelems == 0)
#line 778
return NC_NOERR;
#line 778
#line 778
assert(value != NULL);
#line 778
#line 778
#ifdef ERANGE_FILL
#line 778
fillp = malloc(varp->xsz);
#line 778
status = NC3_inq_var_fill(varp, fillp);
#line 778
#endif
#line 778
#line 778
for(;;)
#line 778
{
#line 778
size_t extent = MIN(remaining, ncp->chunk);
#line 778
size_t nput = ncx_howmany(varp->type, extent);
#line 778
#line 778
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 778
RGN_WRITE, &xp);
#line 778
if(lstatus != NC_NOERR)
#line 778
return lstatus;
#line 778
#line 778
lstatus = ncx_putn_uint_double(&xp, nput, value ,fillp);
#line 778
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 778
{
#line 778
/* not fatal to the loop */
#line 778
status = lstatus;
#line 778
}
#line 778
#line 778
(void) ncio_rel(ncp->nciop, offset,
#line 778
RGN_MODIFIED);
#line 778
#line 778
remaining -= extent;
#line 778
if(remaining == 0)
#line 778
break; /* normal loop exit */
#line 778
offset += (off_t)extent;
#line 778
value += nput;
#line 778
#line 778
}
#line 778
#ifdef ERANGE_FILL
#line 778
free(fillp);
#line 778
#endif
#line 778
#line 778
return status;
#line 778
}
#line 778
static int
#line 779
putNCvx_uint_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 779
const size_t *start, size_t nelems, const longlong *value)
#line 779
{
#line 779
off_t offset = NC_varoffset(ncp, varp, start);
#line 779
size_t remaining = varp->xsz * nelems;
#line 779
int status = NC_NOERR;
#line 779
void *xp;
#line 779
void *fillp=NULL;
#line 779
#line 779
NC_UNUSED(fillp);
#line 779
#line 779
if(nelems == 0)
#line 779
return NC_NOERR;
#line 779
#line 779
assert(value != NULL);
#line 779
#line 779
#ifdef ERANGE_FILL
#line 779
fillp = malloc(varp->xsz);
#line 779
status = NC3_inq_var_fill(varp, fillp);
#line 779
#endif
#line 779
#line 779
for(;;)
#line 779
{
#line 779
size_t extent = MIN(remaining, ncp->chunk);
#line 779
size_t nput = ncx_howmany(varp->type, extent);
#line 779
#line 779
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 779
RGN_WRITE, &xp);
#line 779
if(lstatus != NC_NOERR)
#line 779
return lstatus;
#line 779
#line 779
lstatus = ncx_putn_uint_longlong(&xp, nput, value ,fillp);
#line 779
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 779
{
#line 779
/* not fatal to the loop */
#line 779
status = lstatus;
#line 779
}
#line 779
#line 779
(void) ncio_rel(ncp->nciop, offset,
#line 779
RGN_MODIFIED);
#line 779
#line 779
remaining -= extent;
#line 779
if(remaining == 0)
#line 779
break; /* normal loop exit */
#line 779
offset += (off_t)extent;
#line 779
value += nput;
#line 779
#line 779
}
#line 779
#ifdef ERANGE_FILL
#line 779
free(fillp);
#line 779
#endif
#line 779
#line 779
return status;
#line 779
}
#line 779
static int
#line 780
putNCvx_uint_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 780
const size_t *start, size_t nelems, const ushort *value)
#line 780
{
#line 780
off_t offset = NC_varoffset(ncp, varp, start);
#line 780
size_t remaining = varp->xsz * nelems;
#line 780
int status = NC_NOERR;
#line 780
void *xp;
#line 780
void *fillp=NULL;
#line 780
#line 780
NC_UNUSED(fillp);
#line 780
#line 780
if(nelems == 0)
#line 780
return NC_NOERR;
#line 780
#line 780
assert(value != NULL);
#line 780
#line 780
#ifdef ERANGE_FILL
#line 780
fillp = malloc(varp->xsz);
#line 780
status = NC3_inq_var_fill(varp, fillp);
#line 780
#endif
#line 780
#line 780
for(;;)
#line 780
{
#line 780
size_t extent = MIN(remaining, ncp->chunk);
#line 780
size_t nput = ncx_howmany(varp->type, extent);
#line 780
#line 780
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 780
RGN_WRITE, &xp);
#line 780
if(lstatus != NC_NOERR)
#line 780
return lstatus;
#line 780
#line 780
lstatus = ncx_putn_uint_ushort(&xp, nput, value ,fillp);
#line 780
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 780
{
#line 780
/* not fatal to the loop */
#line 780
status = lstatus;
#line 780
}
#line 780
#line 780
(void) ncio_rel(ncp->nciop, offset,
#line 780
RGN_MODIFIED);
#line 780
#line 780
remaining -= extent;
#line 780
if(remaining == 0)
#line 780
break; /* normal loop exit */
#line 780
offset += (off_t)extent;
#line 780
value += nput;
#line 780
#line 780
}
#line 780
#ifdef ERANGE_FILL
#line 780
free(fillp);
#line 780
#endif
#line 780
#line 780
return status;
#line 780
}
#line 780
static int
#line 781
putNCvx_uint_uint(NC3_INFO* ncp, const NC_var *varp,
#line 781
const size_t *start, size_t nelems, const uint *value)
#line 781
{
#line 781
off_t offset = NC_varoffset(ncp, varp, start);
#line 781
size_t remaining = varp->xsz * nelems;
#line 781
int status = NC_NOERR;
#line 781
void *xp;
#line 781
void *fillp=NULL;
#line 781
#line 781
NC_UNUSED(fillp);
#line 781
#line 781
if(nelems == 0)
#line 781
return NC_NOERR;
#line 781
#line 781
assert(value != NULL);
#line 781
#line 781
#ifdef ERANGE_FILL
#line 781
fillp = malloc(varp->xsz);
#line 781
status = NC3_inq_var_fill(varp, fillp);
#line 781
#endif
#line 781
#line 781
for(;;)
#line 781
{
#line 781
size_t extent = MIN(remaining, ncp->chunk);
#line 781
size_t nput = ncx_howmany(varp->type, extent);
#line 781
#line 781
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 781
RGN_WRITE, &xp);
#line 781
if(lstatus != NC_NOERR)
#line 781
return lstatus;
#line 781
#line 781
lstatus = ncx_putn_uint_uint(&xp, nput, value ,fillp);
#line 781
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 781
{
#line 781
/* not fatal to the loop */
#line 781
status = lstatus;
#line 781
}
#line 781
#line 781
(void) ncio_rel(ncp->nciop, offset,
#line 781
RGN_MODIFIED);
#line 781
#line 781
remaining -= extent;
#line 781
if(remaining == 0)
#line 781
break; /* normal loop exit */
#line 781
offset += (off_t)extent;
#line 781
value += nput;
#line 781
#line 781
}
#line 781
#ifdef ERANGE_FILL
#line 781
free(fillp);
#line 781
#endif
#line 781
#line 781
return status;
#line 781
}
#line 781
static int
#line 782
putNCvx_uint_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 782
const size_t *start, size_t nelems, const ulonglong *value)
#line 782
{
#line 782
off_t offset = NC_varoffset(ncp, varp, start);
#line 782
size_t remaining = varp->xsz * nelems;
#line 782
int status = NC_NOERR;
#line 782
void *xp;
#line 782
void *fillp=NULL;
#line 782
#line 782
NC_UNUSED(fillp);
#line 782
#line 782
if(nelems == 0)
#line 782
return NC_NOERR;
#line 782
#line 782
assert(value != NULL);
#line 782
#line 782
#ifdef ERANGE_FILL
#line 782
fillp = malloc(varp->xsz);
#line 782
status = NC3_inq_var_fill(varp, fillp);
#line 782
#endif
#line 782
#line 782
for(;;)
#line 782
{
#line 782
size_t extent = MIN(remaining, ncp->chunk);
#line 782
size_t nput = ncx_howmany(varp->type, extent);
#line 782
#line 782
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 782
RGN_WRITE, &xp);
#line 782
if(lstatus != NC_NOERR)
#line 782
return lstatus;
#line 782
#line 782
lstatus = ncx_putn_uint_ulonglong(&xp, nput, value ,fillp);
#line 782
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 782
{
#line 782
/* not fatal to the loop */
#line 782
status = lstatus;
#line 782
}
#line 782
#line 782
(void) ncio_rel(ncp->nciop, offset,
#line 782
RGN_MODIFIED);
#line 782
#line 782
remaining -= extent;
#line 782
if(remaining == 0)
#line 782
break; /* normal loop exit */
#line 782
offset += (off_t)extent;
#line 782
value += nput;
#line 782
#line 782
}
#line 782
#ifdef ERANGE_FILL
#line 782
free(fillp);
#line 782
#endif
#line 782
#line 782
return status;
#line 782
}
#line 782
static int
#line 784
putNCvx_longlong_schar(NC3_INFO* ncp, const NC_var *varp,
#line 784
const size_t *start, size_t nelems, const schar *value)
#line 784
{
#line 784
off_t offset = NC_varoffset(ncp, varp, start);
#line 784
size_t remaining = varp->xsz * nelems;
#line 784
int status = NC_NOERR;
#line 784
void *xp;
#line 784
void *fillp=NULL;
#line 784
#line 784
NC_UNUSED(fillp);
#line 784
#line 784
if(nelems == 0)
#line 784
return NC_NOERR;
#line 784
#line 784
assert(value != NULL);
#line 784
#line 784
#ifdef ERANGE_FILL
#line 784
fillp = malloc(varp->xsz);
#line 784
status = NC3_inq_var_fill(varp, fillp);
#line 784
#endif
#line 784
#line 784
for(;;)
#line 784
{
#line 784
size_t extent = MIN(remaining, ncp->chunk);
#line 784
size_t nput = ncx_howmany(varp->type, extent);
#line 784
#line 784
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 784
RGN_WRITE, &xp);
#line 784
if(lstatus != NC_NOERR)
#line 784
return lstatus;
#line 784
#line 784
lstatus = ncx_putn_longlong_schar(&xp, nput, value ,fillp);
#line 784
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 784
{
#line 784
/* not fatal to the loop */
#line 784
status = lstatus;
#line 784
}
#line 784
#line 784
(void) ncio_rel(ncp->nciop, offset,
#line 784
RGN_MODIFIED);
#line 784
#line 784
remaining -= extent;
#line 784
if(remaining == 0)
#line 784
break; /* normal loop exit */
#line 784
offset += (off_t)extent;
#line 784
value += nput;
#line 784
#line 784
}
#line 784
#ifdef ERANGE_FILL
#line 784
free(fillp);
#line 784
#endif
#line 784
#line 784
return status;
#line 784
}
#line 784
static int
#line 785
putNCvx_longlong_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 785
const size_t *start, size_t nelems, const uchar *value)
#line 785
{
#line 785
off_t offset = NC_varoffset(ncp, varp, start);
#line 785
size_t remaining = varp->xsz * nelems;
#line 785
int status = NC_NOERR;
#line 785
void *xp;
#line 785
void *fillp=NULL;
#line 785
#line 785
NC_UNUSED(fillp);
#line 785
#line 785
if(nelems == 0)
#line 785
return NC_NOERR;
#line 785
#line 785
assert(value != NULL);
#line 785
#line 785
#ifdef ERANGE_FILL
#line 785
fillp = malloc(varp->xsz);
#line 785
status = NC3_inq_var_fill(varp, fillp);
#line 785
#endif
#line 785
#line 785
for(;;)
#line 785
{
#line 785
size_t extent = MIN(remaining, ncp->chunk);
#line 785
size_t nput = ncx_howmany(varp->type, extent);
#line 785
#line 785
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 785
RGN_WRITE, &xp);
#line 785
if(lstatus != NC_NOERR)
#line 785
return lstatus;
#line 785
#line 785
lstatus = ncx_putn_longlong_uchar(&xp, nput, value ,fillp);
#line 785
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 785
{
#line 785
/* not fatal to the loop */
#line 785
status = lstatus;
#line 785
}
#line 785
#line 785
(void) ncio_rel(ncp->nciop, offset,
#line 785
RGN_MODIFIED);
#line 785
#line 785
remaining -= extent;
#line 785
if(remaining == 0)
#line 785
break; /* normal loop exit */
#line 785
offset += (off_t)extent;
#line 785
value += nput;
#line 785
#line 785
}
#line 785
#ifdef ERANGE_FILL
#line 785
free(fillp);
#line 785
#endif
#line 785
#line 785
return status;
#line 785
}
#line 785
static int
#line 786
putNCvx_longlong_short(NC3_INFO* ncp, const NC_var *varp,
#line 786
const size_t *start, size_t nelems, const short *value)
#line 786
{
#line 786
off_t offset = NC_varoffset(ncp, varp, start);
#line 786
size_t remaining = varp->xsz * nelems;
#line 786
int status = NC_NOERR;
#line 786
void *xp;
#line 786
void *fillp=NULL;
#line 786
#line 786
NC_UNUSED(fillp);
#line 786
#line 786
if(nelems == 0)
#line 786
return NC_NOERR;
#line 786
#line 786
assert(value != NULL);
#line 786
#line 786
#ifdef ERANGE_FILL
#line 786
fillp = malloc(varp->xsz);
#line 786
status = NC3_inq_var_fill(varp, fillp);
#line 786
#endif
#line 786
#line 786
for(;;)
#line 786
{
#line 786
size_t extent = MIN(remaining, ncp->chunk);
#line 786
size_t nput = ncx_howmany(varp->type, extent);
#line 786
#line 786
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 786
RGN_WRITE, &xp);
#line 786
if(lstatus != NC_NOERR)
#line 786
return lstatus;
#line 786
#line 786
lstatus = ncx_putn_longlong_short(&xp, nput, value ,fillp);
#line 786
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 786
{
#line 786
/* not fatal to the loop */
#line 786
status = lstatus;
#line 786
}
#line 786
#line 786
(void) ncio_rel(ncp->nciop, offset,
#line 786
RGN_MODIFIED);
#line 786
#line 786
remaining -= extent;
#line 786
if(remaining == 0)
#line 786
break; /* normal loop exit */
#line 786
offset += (off_t)extent;
#line 786
value += nput;
#line 786
#line 786
}
#line 786
#ifdef ERANGE_FILL
#line 786
free(fillp);
#line 786
#endif
#line 786
#line 786
return status;
#line 786
}
#line 786
static int
#line 787
putNCvx_longlong_int(NC3_INFO* ncp, const NC_var *varp,
#line 787
const size_t *start, size_t nelems, const int *value)
#line 787
{
#line 787
off_t offset = NC_varoffset(ncp, varp, start);
#line 787
size_t remaining = varp->xsz * nelems;
#line 787
int status = NC_NOERR;
#line 787
void *xp;
#line 787
void *fillp=NULL;
#line 787
#line 787
NC_UNUSED(fillp);
#line 787
#line 787
if(nelems == 0)
#line 787
return NC_NOERR;
#line 787
#line 787
assert(value != NULL);
#line 787
#line 787
#ifdef ERANGE_FILL
#line 787
fillp = malloc(varp->xsz);
#line 787
status = NC3_inq_var_fill(varp, fillp);
#line 787
#endif
#line 787
#line 787
for(;;)
#line 787
{
#line 787
size_t extent = MIN(remaining, ncp->chunk);
#line 787
size_t nput = ncx_howmany(varp->type, extent);
#line 787
#line 787
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 787
RGN_WRITE, &xp);
#line 787
if(lstatus != NC_NOERR)
#line 787
return lstatus;
#line 787
#line 787
lstatus = ncx_putn_longlong_int(&xp, nput, value ,fillp);
#line 787
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 787
{
#line 787
/* not fatal to the loop */
#line 787
status = lstatus;
#line 787
}
#line 787
#line 787
(void) ncio_rel(ncp->nciop, offset,
#line 787
RGN_MODIFIED);
#line 787
#line 787
remaining -= extent;
#line 787
if(remaining == 0)
#line 787
break; /* normal loop exit */
#line 787
offset += (off_t)extent;
#line 787
value += nput;
#line 787
#line 787
}
#line 787
#ifdef ERANGE_FILL
#line 787
free(fillp);
#line 787
#endif
#line 787
#line 787
return status;
#line 787
}
#line 787
static int
#line 788
putNCvx_longlong_float(NC3_INFO* ncp, const NC_var *varp,
#line 788
const size_t *start, size_t nelems, const float *value)
#line 788
{
#line 788
off_t offset = NC_varoffset(ncp, varp, start);
#line 788
size_t remaining = varp->xsz * nelems;
#line 788
int status = NC_NOERR;
#line 788
void *xp;
#line 788
void *fillp=NULL;
#line 788
#line 788
NC_UNUSED(fillp);
#line 788
#line 788
if(nelems == 0)
#line 788
return NC_NOERR;
#line 788
#line 788
assert(value != NULL);
#line 788
#line 788
#ifdef ERANGE_FILL
#line 788
fillp = malloc(varp->xsz);
#line 788
status = NC3_inq_var_fill(varp, fillp);
#line 788
#endif
#line 788
#line 788
for(;;)
#line 788
{
#line 788
size_t extent = MIN(remaining, ncp->chunk);
#line 788
size_t nput = ncx_howmany(varp->type, extent);
#line 788
#line 788
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 788
RGN_WRITE, &xp);
#line 788
if(lstatus != NC_NOERR)
#line 788
return lstatus;
#line 788
#line 788
lstatus = ncx_putn_longlong_float(&xp, nput, value ,fillp);
#line 788
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 788
{
#line 788
/* not fatal to the loop */
#line 788
status = lstatus;
#line 788
}
#line 788
#line 788
(void) ncio_rel(ncp->nciop, offset,
#line 788
RGN_MODIFIED);
#line 788
#line 788
remaining -= extent;
#line 788
if(remaining == 0)
#line 788
break; /* normal loop exit */
#line 788
offset += (off_t)extent;
#line 788
value += nput;
#line 788
#line 788
}
#line 788
#ifdef ERANGE_FILL
#line 788
free(fillp);
#line 788
#endif
#line 788
#line 788
return status;
#line 788
}
#line 788
static int
#line 789
putNCvx_longlong_double(NC3_INFO* ncp, const NC_var *varp,
#line 789
const size_t *start, size_t nelems, const double *value)
#line 789
{
#line 789
off_t offset = NC_varoffset(ncp, varp, start);
#line 789
size_t remaining = varp->xsz * nelems;
#line 789
int status = NC_NOERR;
#line 789
void *xp;
#line 789
void *fillp=NULL;
#line 789
#line 789
NC_UNUSED(fillp);
#line 789
#line 789
if(nelems == 0)
#line 789
return NC_NOERR;
#line 789
#line 789
assert(value != NULL);
#line 789
#line 789
#ifdef ERANGE_FILL
#line 789
fillp = malloc(varp->xsz);
#line 789
status = NC3_inq_var_fill(varp, fillp);
#line 789
#endif
#line 789
#line 789
for(;;)
#line 789
{
#line 789
size_t extent = MIN(remaining, ncp->chunk);
#line 789
size_t nput = ncx_howmany(varp->type, extent);
#line 789
#line 789
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 789
RGN_WRITE, &xp);
#line 789
if(lstatus != NC_NOERR)
#line 789
return lstatus;
#line 789
#line 789
lstatus = ncx_putn_longlong_double(&xp, nput, value ,fillp);
#line 789
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 789
{
#line 789
/* not fatal to the loop */
#line 789
status = lstatus;
#line 789
}
#line 789
#line 789
(void) ncio_rel(ncp->nciop, offset,
#line 789
RGN_MODIFIED);
#line 789
#line 789
remaining -= extent;
#line 789
if(remaining == 0)
#line 789
break; /* normal loop exit */
#line 789
offset += (off_t)extent;
#line 789
value += nput;
#line 789
#line 789
}
#line 789
#ifdef ERANGE_FILL
#line 789
free(fillp);
#line 789
#endif
#line 789
#line 789
return status;
#line 789
}
#line 789
static int
#line 790
putNCvx_longlong_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 790
const size_t *start, size_t nelems, const longlong *value)
#line 790
{
#line 790
off_t offset = NC_varoffset(ncp, varp, start);
#line 790
size_t remaining = varp->xsz * nelems;
#line 790
int status = NC_NOERR;
#line 790
void *xp;
#line 790
void *fillp=NULL;
#line 790
#line 790
NC_UNUSED(fillp);
#line 790
#line 790
if(nelems == 0)
#line 790
return NC_NOERR;
#line 790
#line 790
assert(value != NULL);
#line 790
#line 790
#ifdef ERANGE_FILL
#line 790
fillp = malloc(varp->xsz);
#line 790
status = NC3_inq_var_fill(varp, fillp);
#line 790
#endif
#line 790
#line 790
for(;;)
#line 790
{
#line 790
size_t extent = MIN(remaining, ncp->chunk);
#line 790
size_t nput = ncx_howmany(varp->type, extent);
#line 790
#line 790
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 790
RGN_WRITE, &xp);
#line 790
if(lstatus != NC_NOERR)
#line 790
return lstatus;
#line 790
#line 790
lstatus = ncx_putn_longlong_longlong(&xp, nput, value ,fillp);
#line 790
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 790
{
#line 790
/* not fatal to the loop */
#line 790
status = lstatus;
#line 790
}
#line 790
#line 790
(void) ncio_rel(ncp->nciop, offset,
#line 790
RGN_MODIFIED);
#line 790
#line 790
remaining -= extent;
#line 790
if(remaining == 0)
#line 790
break; /* normal loop exit */
#line 790
offset += (off_t)extent;
#line 790
value += nput;
#line 790
#line 790
}
#line 790
#ifdef ERANGE_FILL
#line 790
free(fillp);
#line 790
#endif
#line 790
#line 790
return status;
#line 790
}
#line 790
static int
#line 791
putNCvx_longlong_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 791
const size_t *start, size_t nelems, const ushort *value)
#line 791
{
#line 791
off_t offset = NC_varoffset(ncp, varp, start);
#line 791
size_t remaining = varp->xsz * nelems;
#line 791
int status = NC_NOERR;
#line 791
void *xp;
#line 791
void *fillp=NULL;
#line 791
#line 791
NC_UNUSED(fillp);
#line 791
#line 791
if(nelems == 0)
#line 791
return NC_NOERR;
#line 791
#line 791
assert(value != NULL);
#line 791
#line 791
#ifdef ERANGE_FILL
#line 791
fillp = malloc(varp->xsz);
#line 791
status = NC3_inq_var_fill(varp, fillp);
#line 791
#endif
#line 791
#line 791
for(;;)
#line 791
{
#line 791
size_t extent = MIN(remaining, ncp->chunk);
#line 791
size_t nput = ncx_howmany(varp->type, extent);
#line 791
#line 791
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 791
RGN_WRITE, &xp);
#line 791
if(lstatus != NC_NOERR)
#line 791
return lstatus;
#line 791
#line 791
lstatus = ncx_putn_longlong_ushort(&xp, nput, value ,fillp);
#line 791
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 791
{
#line 791
/* not fatal to the loop */
#line 791
status = lstatus;
#line 791
}
#line 791
#line 791
(void) ncio_rel(ncp->nciop, offset,
#line 791
RGN_MODIFIED);
#line 791
#line 791
remaining -= extent;
#line 791
if(remaining == 0)
#line 791
break; /* normal loop exit */
#line 791
offset += (off_t)extent;
#line 791
value += nput;
#line 791
#line 791
}
#line 791
#ifdef ERANGE_FILL
#line 791
free(fillp);
#line 791
#endif
#line 791
#line 791
return status;
#line 791
}
#line 791
static int
#line 792
putNCvx_longlong_uint(NC3_INFO* ncp, const NC_var *varp,
#line 792
const size_t *start, size_t nelems, const uint *value)
#line 792
{
#line 792
off_t offset = NC_varoffset(ncp, varp, start);
#line 792
size_t remaining = varp->xsz * nelems;
#line 792
int status = NC_NOERR;
#line 792
void *xp;
#line 792
void *fillp=NULL;
#line 792
#line 792
NC_UNUSED(fillp);
#line 792
#line 792
if(nelems == 0)
#line 792
return NC_NOERR;
#line 792
#line 792
assert(value != NULL);
#line 792
#line 792
#ifdef ERANGE_FILL
#line 792
fillp = malloc(varp->xsz);
#line 792
status = NC3_inq_var_fill(varp, fillp);
#line 792
#endif
#line 792
#line 792
for(;;)
#line 792
{
#line 792
size_t extent = MIN(remaining, ncp->chunk);
#line 792
size_t nput = ncx_howmany(varp->type, extent);
#line 792
#line 792
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 792
RGN_WRITE, &xp);
#line 792
if(lstatus != NC_NOERR)
#line 792
return lstatus;
#line 792
#line 792
lstatus = ncx_putn_longlong_uint(&xp, nput, value ,fillp);
#line 792
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 792
{
#line 792
/* not fatal to the loop */
#line 792
status = lstatus;
#line 792
}
#line 792
#line 792
(void) ncio_rel(ncp->nciop, offset,
#line 792
RGN_MODIFIED);
#line 792
#line 792
remaining -= extent;
#line 792
if(remaining == 0)
#line 792
break; /* normal loop exit */
#line 792
offset += (off_t)extent;
#line 792
value += nput;
#line 792
#line 792
}
#line 792
#ifdef ERANGE_FILL
#line 792
free(fillp);
#line 792
#endif
#line 792
#line 792
return status;
#line 792
}
#line 792
static int
#line 793
putNCvx_longlong_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 793
const size_t *start, size_t nelems, const ulonglong *value)
#line 793
{
#line 793
off_t offset = NC_varoffset(ncp, varp, start);
#line 793
size_t remaining = varp->xsz * nelems;
#line 793
int status = NC_NOERR;
#line 793
void *xp;
#line 793
void *fillp=NULL;
#line 793
#line 793
NC_UNUSED(fillp);
#line 793
#line 793
if(nelems == 0)
#line 793
return NC_NOERR;
#line 793
#line 793
assert(value != NULL);
#line 793
#line 793
#ifdef ERANGE_FILL
#line 793
fillp = malloc(varp->xsz);
#line 793
status = NC3_inq_var_fill(varp, fillp);
#line 793
#endif
#line 793
#line 793
for(;;)
#line 793
{
#line 793
size_t extent = MIN(remaining, ncp->chunk);
#line 793
size_t nput = ncx_howmany(varp->type, extent);
#line 793
#line 793
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 793
RGN_WRITE, &xp);
#line 793
if(lstatus != NC_NOERR)
#line 793
return lstatus;
#line 793
#line 793
lstatus = ncx_putn_longlong_ulonglong(&xp, nput, value ,fillp);
#line 793
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 793
{
#line 793
/* not fatal to the loop */
#line 793
status = lstatus;
#line 793
}
#line 793
#line 793
(void) ncio_rel(ncp->nciop, offset,
#line 793
RGN_MODIFIED);
#line 793
#line 793
remaining -= extent;
#line 793
if(remaining == 0)
#line 793
break; /* normal loop exit */
#line 793
offset += (off_t)extent;
#line 793
value += nput;
#line 793
#line 793
}
#line 793
#ifdef ERANGE_FILL
#line 793
free(fillp);
#line 793
#endif
#line 793
#line 793
return status;
#line 793
}
#line 793
static int
#line 795
putNCvx_ulonglong_schar(NC3_INFO* ncp, const NC_var *varp,
#line 795
const size_t *start, size_t nelems, const schar *value)
#line 795
{
#line 795
off_t offset = NC_varoffset(ncp, varp, start);
#line 795
size_t remaining = varp->xsz * nelems;
#line 795
int status = NC_NOERR;
#line 795
void *xp;
#line 795
void *fillp=NULL;
#line 795
#line 795
NC_UNUSED(fillp);
#line 795
#line 795
if(nelems == 0)
#line 795
return NC_NOERR;
#line 795
#line 795
assert(value != NULL);
#line 795
#line 795
#ifdef ERANGE_FILL
#line 795
fillp = malloc(varp->xsz);
#line 795
status = NC3_inq_var_fill(varp, fillp);
#line 795
#endif
#line 795
#line 795
for(;;)
#line 795
{
#line 795
size_t extent = MIN(remaining, ncp->chunk);
#line 795
size_t nput = ncx_howmany(varp->type, extent);
#line 795
#line 795
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 795
RGN_WRITE, &xp);
#line 795
if(lstatus != NC_NOERR)
#line 795
return lstatus;
#line 795
#line 795
lstatus = ncx_putn_ulonglong_schar(&xp, nput, value ,fillp);
#line 795
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 795
{
#line 795
/* not fatal to the loop */
#line 795
status = lstatus;
#line 795
}
#line 795
#line 795
(void) ncio_rel(ncp->nciop, offset,
#line 795
RGN_MODIFIED);
#line 795
#line 795
remaining -= extent;
#line 795
if(remaining == 0)
#line 795
break; /* normal loop exit */
#line 795
offset += (off_t)extent;
#line 795
value += nput;
#line 795
#line 795
}
#line 795
#ifdef ERANGE_FILL
#line 795
free(fillp);
#line 795
#endif
#line 795
#line 795
return status;
#line 795
}
#line 795
static int
#line 796
putNCvx_ulonglong_uchar(NC3_INFO* ncp, const NC_var *varp,
#line 796
const size_t *start, size_t nelems, const uchar *value)
#line 796
{
#line 796
off_t offset = NC_varoffset(ncp, varp, start);
#line 796
size_t remaining = varp->xsz * nelems;
#line 796
int status = NC_NOERR;
#line 796
void *xp;
#line 796
void *fillp=NULL;
#line 796
#line 796
NC_UNUSED(fillp);
#line 796
#line 796
if(nelems == 0)
#line 796
return NC_NOERR;
#line 796
#line 796
assert(value != NULL);
#line 796
#line 796
#ifdef ERANGE_FILL
#line 796
fillp = malloc(varp->xsz);
#line 796
status = NC3_inq_var_fill(varp, fillp);
#line 796
#endif
#line 796
#line 796
for(;;)
#line 796
{
#line 796
size_t extent = MIN(remaining, ncp->chunk);
#line 796
size_t nput = ncx_howmany(varp->type, extent);
#line 796
#line 796
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 796
RGN_WRITE, &xp);
#line 796
if(lstatus != NC_NOERR)
#line 796
return lstatus;
#line 796
#line 796
lstatus = ncx_putn_ulonglong_uchar(&xp, nput, value ,fillp);
#line 796
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 796
{
#line 796
/* not fatal to the loop */
#line 796
status = lstatus;
#line 796
}
#line 796
#line 796
(void) ncio_rel(ncp->nciop, offset,
#line 796
RGN_MODIFIED);
#line 796
#line 796
remaining -= extent;
#line 796
if(remaining == 0)
#line 796
break; /* normal loop exit */
#line 796
offset += (off_t)extent;
#line 796
value += nput;
#line 796
#line 796
}
#line 796
#ifdef ERANGE_FILL
#line 796
free(fillp);
#line 796
#endif
#line 796
#line 796
return status;
#line 796
}
#line 796
static int
#line 797
putNCvx_ulonglong_short(NC3_INFO* ncp, const NC_var *varp,
#line 797
const size_t *start, size_t nelems, const short *value)
#line 797
{
#line 797
off_t offset = NC_varoffset(ncp, varp, start);
#line 797
size_t remaining = varp->xsz * nelems;
#line 797
int status = NC_NOERR;
#line 797
void *xp;
#line 797
void *fillp=NULL;
#line 797
#line 797
NC_UNUSED(fillp);
#line 797
#line 797
if(nelems == 0)
#line 797
return NC_NOERR;
#line 797
#line 797
assert(value != NULL);
#line 797
#line 797
#ifdef ERANGE_FILL
#line 797
fillp = malloc(varp->xsz);
#line 797
status = NC3_inq_var_fill(varp, fillp);
#line 797
#endif
#line 797
#line 797
for(;;)
#line 797
{
#line 797
size_t extent = MIN(remaining, ncp->chunk);
#line 797
size_t nput = ncx_howmany(varp->type, extent);
#line 797
#line 797
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 797
RGN_WRITE, &xp);
#line 797
if(lstatus != NC_NOERR)
#line 797
return lstatus;
#line 797
#line 797
lstatus = ncx_putn_ulonglong_short(&xp, nput, value ,fillp);
#line 797
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 797
{
#line 797
/* not fatal to the loop */
#line 797
status = lstatus;
#line 797
}
#line 797
#line 797
(void) ncio_rel(ncp->nciop, offset,
#line 797
RGN_MODIFIED);
#line 797
#line 797
remaining -= extent;
#line 797
if(remaining == 0)
#line 797
break; /* normal loop exit */
#line 797
offset += (off_t)extent;
#line 797
value += nput;
#line 797
#line 797
}
#line 797
#ifdef ERANGE_FILL
#line 797
free(fillp);
#line 797
#endif
#line 797
#line 797
return status;
#line 797
}
#line 797
static int
#line 798
putNCvx_ulonglong_int(NC3_INFO* ncp, const NC_var *varp,
#line 798
const size_t *start, size_t nelems, const int *value)
#line 798
{
#line 798
off_t offset = NC_varoffset(ncp, varp, start);
#line 798
size_t remaining = varp->xsz * nelems;
#line 798
int status = NC_NOERR;
#line 798
void *xp;
#line 798
void *fillp=NULL;
#line 798
#line 798
NC_UNUSED(fillp);
#line 798
#line 798
if(nelems == 0)
#line 798
return NC_NOERR;
#line 798
#line 798
assert(value != NULL);
#line 798
#line 798
#ifdef ERANGE_FILL
#line 798
fillp = malloc(varp->xsz);
#line 798
status = NC3_inq_var_fill(varp, fillp);
#line 798
#endif
#line 798
#line 798
for(;;)
#line 798
{
#line 798
size_t extent = MIN(remaining, ncp->chunk);
#line 798
size_t nput = ncx_howmany(varp->type, extent);
#line 798
#line 798
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 798
RGN_WRITE, &xp);
#line 798
if(lstatus != NC_NOERR)
#line 798
return lstatus;
#line 798
#line 798
lstatus = ncx_putn_ulonglong_int(&xp, nput, value ,fillp);
#line 798
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 798
{
#line 798
/* not fatal to the loop */
#line 798
status = lstatus;
#line 798
}
#line 798
#line 798
(void) ncio_rel(ncp->nciop, offset,
#line 798
RGN_MODIFIED);
#line 798
#line 798
remaining -= extent;
#line 798
if(remaining == 0)
#line 798
break; /* normal loop exit */
#line 798
offset += (off_t)extent;
#line 798
value += nput;
#line 798
#line 798
}
#line 798
#ifdef ERANGE_FILL
#line 798
free(fillp);
#line 798
#endif
#line 798
#line 798
return status;
#line 798
}
#line 798
static int
#line 799
putNCvx_ulonglong_float(NC3_INFO* ncp, const NC_var *varp,
#line 799
const size_t *start, size_t nelems, const float *value)
#line 799
{
#line 799
off_t offset = NC_varoffset(ncp, varp, start);
#line 799
size_t remaining = varp->xsz * nelems;
#line 799
int status = NC_NOERR;
#line 799
void *xp;
#line 799
void *fillp=NULL;
#line 799
#line 799
NC_UNUSED(fillp);
#line 799
#line 799
if(nelems == 0)
#line 799
return NC_NOERR;
#line 799
#line 799
assert(value != NULL);
#line 799
#line 799
#ifdef ERANGE_FILL
#line 799
fillp = malloc(varp->xsz);
#line 799
status = NC3_inq_var_fill(varp, fillp);
#line 799
#endif
#line 799
#line 799
for(;;)
#line 799
{
#line 799
size_t extent = MIN(remaining, ncp->chunk);
#line 799
size_t nput = ncx_howmany(varp->type, extent);
#line 799
#line 799
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 799
RGN_WRITE, &xp);
#line 799
if(lstatus != NC_NOERR)
#line 799
return lstatus;
#line 799
#line 799
lstatus = ncx_putn_ulonglong_float(&xp, nput, value ,fillp);
#line 799
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 799
{
#line 799
/* not fatal to the loop */
#line 799
status = lstatus;
#line 799
}
#line 799
#line 799
(void) ncio_rel(ncp->nciop, offset,
#line 799
RGN_MODIFIED);
#line 799
#line 799
remaining -= extent;
#line 799
if(remaining == 0)
#line 799
break; /* normal loop exit */
#line 799
offset += (off_t)extent;
#line 799
value += nput;
#line 799
#line 799
}
#line 799
#ifdef ERANGE_FILL
#line 799
free(fillp);
#line 799
#endif
#line 799
#line 799
return status;
#line 799
}
#line 799
static int
#line 800
putNCvx_ulonglong_double(NC3_INFO* ncp, const NC_var *varp,
#line 800
const size_t *start, size_t nelems, const double *value)
#line 800
{
#line 800
off_t offset = NC_varoffset(ncp, varp, start);
#line 800
size_t remaining = varp->xsz * nelems;
#line 800
int status = NC_NOERR;
#line 800
void *xp;
#line 800
void *fillp=NULL;
#line 800
#line 800
NC_UNUSED(fillp);
#line 800
#line 800
if(nelems == 0)
#line 800
return NC_NOERR;
#line 800
#line 800
assert(value != NULL);
#line 800
#line 800
#ifdef ERANGE_FILL
#line 800
fillp = malloc(varp->xsz);
#line 800
status = NC3_inq_var_fill(varp, fillp);
#line 800
#endif
#line 800
#line 800
for(;;)
#line 800
{
#line 800
size_t extent = MIN(remaining, ncp->chunk);
#line 800
size_t nput = ncx_howmany(varp->type, extent);
#line 800
#line 800
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 800
RGN_WRITE, &xp);
#line 800
if(lstatus != NC_NOERR)
#line 800
return lstatus;
#line 800
#line 800
lstatus = ncx_putn_ulonglong_double(&xp, nput, value ,fillp);
#line 800
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 800
{
#line 800
/* not fatal to the loop */
#line 800
status = lstatus;
#line 800
}
#line 800
#line 800
(void) ncio_rel(ncp->nciop, offset,
#line 800
RGN_MODIFIED);
#line 800
#line 800
remaining -= extent;
#line 800
if(remaining == 0)
#line 800
break; /* normal loop exit */
#line 800
offset += (off_t)extent;
#line 800
value += nput;
#line 800
#line 800
}
#line 800
#ifdef ERANGE_FILL
#line 800
free(fillp);
#line 800
#endif
#line 800
#line 800
return status;
#line 800
}
#line 800
static int
#line 801
putNCvx_ulonglong_longlong(NC3_INFO* ncp, const NC_var *varp,
#line 801
const size_t *start, size_t nelems, const longlong *value)
#line 801
{
#line 801
off_t offset = NC_varoffset(ncp, varp, start);
#line 801
size_t remaining = varp->xsz * nelems;
#line 801
int status = NC_NOERR;
#line 801
void *xp;
#line 801
void *fillp=NULL;
#line 801
#line 801
NC_UNUSED(fillp);
#line 801
#line 801
if(nelems == 0)
#line 801
return NC_NOERR;
#line 801
#line 801
assert(value != NULL);
#line 801
#line 801
#ifdef ERANGE_FILL
#line 801
fillp = malloc(varp->xsz);
#line 801
status = NC3_inq_var_fill(varp, fillp);
#line 801
#endif
#line 801
#line 801
for(;;)
#line 801
{
#line 801
size_t extent = MIN(remaining, ncp->chunk);
#line 801
size_t nput = ncx_howmany(varp->type, extent);
#line 801
#line 801
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 801
RGN_WRITE, &xp);
#line 801
if(lstatus != NC_NOERR)
#line 801
return lstatus;
#line 801
#line 801
lstatus = ncx_putn_ulonglong_longlong(&xp, nput, value ,fillp);
#line 801
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 801
{
#line 801
/* not fatal to the loop */
#line 801
status = lstatus;
#line 801
}
#line 801
#line 801
(void) ncio_rel(ncp->nciop, offset,
#line 801
RGN_MODIFIED);
#line 801
#line 801
remaining -= extent;
#line 801
if(remaining == 0)
#line 801
break; /* normal loop exit */
#line 801
offset += (off_t)extent;
#line 801
value += nput;
#line 801
#line 801
}
#line 801
#ifdef ERANGE_FILL
#line 801
free(fillp);
#line 801
#endif
#line 801
#line 801
return status;
#line 801
}
#line 801
static int
#line 802
putNCvx_ulonglong_ushort(NC3_INFO* ncp, const NC_var *varp,
#line 802
const size_t *start, size_t nelems, const ushort *value)
#line 802
{
#line 802
off_t offset = NC_varoffset(ncp, varp, start);
#line 802
size_t remaining = varp->xsz * nelems;
#line 802
int status = NC_NOERR;
#line 802
void *xp;
#line 802
void *fillp=NULL;
#line 802
#line 802
NC_UNUSED(fillp);
#line 802
#line 802
if(nelems == 0)
#line 802
return NC_NOERR;
#line 802
#line 802
assert(value != NULL);
#line 802
#line 802
#ifdef ERANGE_FILL
#line 802
fillp = malloc(varp->xsz);
#line 802
status = NC3_inq_var_fill(varp, fillp);
#line 802
#endif
#line 802
#line 802
for(;;)
#line 802
{
#line 802
size_t extent = MIN(remaining, ncp->chunk);
#line 802
size_t nput = ncx_howmany(varp->type, extent);
#line 802
#line 802
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 802
RGN_WRITE, &xp);
#line 802
if(lstatus != NC_NOERR)
#line 802
return lstatus;
#line 802
#line 802
lstatus = ncx_putn_ulonglong_ushort(&xp, nput, value ,fillp);
#line 802
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 802
{
#line 802
/* not fatal to the loop */
#line 802
status = lstatus;
#line 802
}
#line 802
#line 802
(void) ncio_rel(ncp->nciop, offset,
#line 802
RGN_MODIFIED);
#line 802
#line 802
remaining -= extent;
#line 802
if(remaining == 0)
#line 802
break; /* normal loop exit */
#line 802
offset += (off_t)extent;
#line 802
value += nput;
#line 802
#line 802
}
#line 802
#ifdef ERANGE_FILL
#line 802
free(fillp);
#line 802
#endif
#line 802
#line 802
return status;
#line 802
}
#line 802
static int
#line 803
putNCvx_ulonglong_uint(NC3_INFO* ncp, const NC_var *varp,
#line 803
const size_t *start, size_t nelems, const uint *value)
#line 803
{
#line 803
off_t offset = NC_varoffset(ncp, varp, start);
#line 803
size_t remaining = varp->xsz * nelems;
#line 803
int status = NC_NOERR;
#line 803
void *xp;
#line 803
void *fillp=NULL;
#line 803
#line 803
NC_UNUSED(fillp);
#line 803
#line 803
if(nelems == 0)
#line 803
return NC_NOERR;
#line 803
#line 803
assert(value != NULL);
#line 803
#line 803
#ifdef ERANGE_FILL
#line 803
fillp = malloc(varp->xsz);
#line 803
status = NC3_inq_var_fill(varp, fillp);
#line 803
#endif
#line 803
#line 803
for(;;)
#line 803
{
#line 803
size_t extent = MIN(remaining, ncp->chunk);
#line 803
size_t nput = ncx_howmany(varp->type, extent);
#line 803
#line 803
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 803
RGN_WRITE, &xp);
#line 803
if(lstatus != NC_NOERR)
#line 803
return lstatus;
#line 803
#line 803
lstatus = ncx_putn_ulonglong_uint(&xp, nput, value ,fillp);
#line 803
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 803
{
#line 803
/* not fatal to the loop */
#line 803
status = lstatus;
#line 803
}
#line 803
#line 803
(void) ncio_rel(ncp->nciop, offset,
#line 803
RGN_MODIFIED);
#line 803
#line 803
remaining -= extent;
#line 803
if(remaining == 0)
#line 803
break; /* normal loop exit */
#line 803
offset += (off_t)extent;
#line 803
value += nput;
#line 803
#line 803
}
#line 803
#ifdef ERANGE_FILL
#line 803
free(fillp);
#line 803
#endif
#line 803
#line 803
return status;
#line 803
}
#line 803
static int
#line 804
putNCvx_ulonglong_ulonglong(NC3_INFO* ncp, const NC_var *varp,
#line 804
const size_t *start, size_t nelems, const ulonglong *value)
#line 804
{
#line 804
off_t offset = NC_varoffset(ncp, varp, start);
#line 804
size_t remaining = varp->xsz * nelems;
#line 804
int status = NC_NOERR;
#line 804
void *xp;
#line 804
void *fillp=NULL;
#line 804
#line 804
NC_UNUSED(fillp);
#line 804
#line 804
if(nelems == 0)
#line 804
return NC_NOERR;
#line 804
#line 804
assert(value != NULL);
#line 804
#line 804
#ifdef ERANGE_FILL
#line 804
fillp = malloc(varp->xsz);
#line 804
status = NC3_inq_var_fill(varp, fillp);
#line 804
#endif
#line 804
#line 804
for(;;)
#line 804
{
#line 804
size_t extent = MIN(remaining, ncp->chunk);
#line 804
size_t nput = ncx_howmany(varp->type, extent);
#line 804
#line 804
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 804
RGN_WRITE, &xp);
#line 804
if(lstatus != NC_NOERR)
#line 804
return lstatus;
#line 804
#line 804
lstatus = ncx_putn_ulonglong_ulonglong(&xp, nput, value ,fillp);
#line 804
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 804
{
#line 804
/* not fatal to the loop */
#line 804
status = lstatus;
#line 804
}
#line 804
#line 804
(void) ncio_rel(ncp->nciop, offset,
#line 804
RGN_MODIFIED);
#line 804
#line 804
remaining -= extent;
#line 804
if(remaining == 0)
#line 804
break; /* normal loop exit */
#line 804
offset += (off_t)extent;
#line 804
value += nput;
#line 804
#line 804
}
#line 804
#ifdef ERANGE_FILL
#line 804
free(fillp);
#line 804
#endif
#line 804
#line 804
return status;
#line 804
}
#line 804
#line 851
#if 0 /*unused*/
static int
#line 853
getNCvx_char_char(const NC3_INFO* ncp, const NC_var *varp,
#line 853
const size_t *start, size_t nelems, char *value)
#line 853
{
#line 853
off_t offset = NC_varoffset(ncp, varp, start);
#line 853
size_t remaining = varp->xsz * nelems;
#line 853
int status = NC_NOERR;
#line 853
const void *xp;
#line 853
#line 853
if(nelems == 0)
#line 853
return NC_NOERR;
#line 853
#line 853
assert(value != NULL);
#line 853
#line 853
for(;;)
#line 853
{
#line 853
size_t extent = MIN(remaining, ncp->chunk);
#line 853
size_t nget = ncx_howmany(varp->type, extent);
#line 853
#line 853
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 853
0, (void **)&xp); /* cast away const */
#line 853
if(lstatus != NC_NOERR)
#line 853
return lstatus;
#line 853
#line 853
lstatus = ncx_getn_char_char(&xp, nget, value);
#line 853
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 853
status = lstatus;
#line 853
#line 853
(void) ncio_rel(ncp->nciop, offset, 0);
#line 853
#line 853
remaining -= extent;
#line 853
if(remaining == 0)
#line 853
break; /* normal loop exit */
#line 853
offset += (off_t)extent;
#line 853
value += nget;
#line 853
}
#line 853
#line 853
return status;
#line 853
}
#line 853
#endif
static int
#line 856
getNCvx_schar_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 856
const size_t *start, size_t nelems, schar *value)
#line 856
{
#line 856
off_t offset = NC_varoffset(ncp, varp, start);
#line 856
size_t remaining = varp->xsz * nelems;
#line 856
int status = NC_NOERR;
#line 856
const void *xp;
#line 856
#line 856
if(nelems == 0)
#line 856
return NC_NOERR;
#line 856
#line 856
assert(value != NULL);
#line 856
#line 856
for(;;)
#line 856
{
#line 856
size_t extent = MIN(remaining, ncp->chunk);
#line 856
size_t nget = ncx_howmany(varp->type, extent);
#line 856
#line 856
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 856
0, (void **)&xp); /* cast away const */
#line 856
if(lstatus != NC_NOERR)
#line 856
return lstatus;
#line 856
#line 856
lstatus = ncx_getn_schar_schar(&xp, nget, value);
#line 856
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 856
status = lstatus;
#line 856
#line 856
(void) ncio_rel(ncp->nciop, offset, 0);
#line 856
#line 856
remaining -= extent;
#line 856
if(remaining == 0)
#line 856
break; /* normal loop exit */
#line 856
offset += (off_t)extent;
#line 856
value += nget;
#line 856
}
#line 856
#line 856
return status;
#line 856
}
#line 856
static int
#line 857
getNCvx_schar_short(const NC3_INFO* ncp, const NC_var *varp,
#line 857
const size_t *start, size_t nelems, short *value)
#line 857
{
#line 857
off_t offset = NC_varoffset(ncp, varp, start);
#line 857
size_t remaining = varp->xsz * nelems;
#line 857
int status = NC_NOERR;
#line 857
const void *xp;
#line 857
#line 857
if(nelems == 0)
#line 857
return NC_NOERR;
#line 857
#line 857
assert(value != NULL);
#line 857
#line 857
for(;;)
#line 857
{
#line 857
size_t extent = MIN(remaining, ncp->chunk);
#line 857
size_t nget = ncx_howmany(varp->type, extent);
#line 857
#line 857
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 857
0, (void **)&xp); /* cast away const */
#line 857
if(lstatus != NC_NOERR)
#line 857
return lstatus;
#line 857
#line 857
lstatus = ncx_getn_schar_short(&xp, nget, value);
#line 857
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 857
status = lstatus;
#line 857
#line 857
(void) ncio_rel(ncp->nciop, offset, 0);
#line 857
#line 857
remaining -= extent;
#line 857
if(remaining == 0)
#line 857
break; /* normal loop exit */
#line 857
offset += (off_t)extent;
#line 857
value += nget;
#line 857
}
#line 857
#line 857
return status;
#line 857
}
#line 857
static int
#line 858
getNCvx_schar_int(const NC3_INFO* ncp, const NC_var *varp,
#line 858
const size_t *start, size_t nelems, int *value)
#line 858
{
#line 858
off_t offset = NC_varoffset(ncp, varp, start);
#line 858
size_t remaining = varp->xsz * nelems;
#line 858
int status = NC_NOERR;
#line 858
const void *xp;
#line 858
#line 858
if(nelems == 0)
#line 858
return NC_NOERR;
#line 858
#line 858
assert(value != NULL);
#line 858
#line 858
for(;;)
#line 858
{
#line 858
size_t extent = MIN(remaining, ncp->chunk);
#line 858
size_t nget = ncx_howmany(varp->type, extent);
#line 858
#line 858
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 858
0, (void **)&xp); /* cast away const */
#line 858
if(lstatus != NC_NOERR)
#line 858
return lstatus;
#line 858
#line 858
lstatus = ncx_getn_schar_int(&xp, nget, value);
#line 858
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 858
status = lstatus;
#line 858
#line 858
(void) ncio_rel(ncp->nciop, offset, 0);
#line 858
#line 858
remaining -= extent;
#line 858
if(remaining == 0)
#line 858
break; /* normal loop exit */
#line 858
offset += (off_t)extent;
#line 858
value += nget;
#line 858
}
#line 858
#line 858
return status;
#line 858
}
#line 858
static int
#line 859
getNCvx_schar_float(const NC3_INFO* ncp, const NC_var *varp,
#line 859
const size_t *start, size_t nelems, float *value)
#line 859
{
#line 859
off_t offset = NC_varoffset(ncp, varp, start);
#line 859
size_t remaining = varp->xsz * nelems;
#line 859
int status = NC_NOERR;
#line 859
const void *xp;
#line 859
#line 859
if(nelems == 0)
#line 859
return NC_NOERR;
#line 859
#line 859
assert(value != NULL);
#line 859
#line 859
for(;;)
#line 859
{
#line 859
size_t extent = MIN(remaining, ncp->chunk);
#line 859
size_t nget = ncx_howmany(varp->type, extent);
#line 859
#line 859
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 859
0, (void **)&xp); /* cast away const */
#line 859
if(lstatus != NC_NOERR)
#line 859
return lstatus;
#line 859
#line 859
lstatus = ncx_getn_schar_float(&xp, nget, value);
#line 859
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 859
status = lstatus;
#line 859
#line 859
(void) ncio_rel(ncp->nciop, offset, 0);
#line 859
#line 859
remaining -= extent;
#line 859
if(remaining == 0)
#line 859
break; /* normal loop exit */
#line 859
offset += (off_t)extent;
#line 859
value += nget;
#line 859
}
#line 859
#line 859
return status;
#line 859
}
#line 859
static int
#line 860
getNCvx_schar_double(const NC3_INFO* ncp, const NC_var *varp,
#line 860
const size_t *start, size_t nelems, double *value)
#line 860
{
#line 860
off_t offset = NC_varoffset(ncp, varp, start);
#line 860
size_t remaining = varp->xsz * nelems;
#line 860
int status = NC_NOERR;
#line 860
const void *xp;
#line 860
#line 860
if(nelems == 0)
#line 860
return NC_NOERR;
#line 860
#line 860
assert(value != NULL);
#line 860
#line 860
for(;;)
#line 860
{
#line 860
size_t extent = MIN(remaining, ncp->chunk);
#line 860
size_t nget = ncx_howmany(varp->type, extent);
#line 860
#line 860
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 860
0, (void **)&xp); /* cast away const */
#line 860
if(lstatus != NC_NOERR)
#line 860
return lstatus;
#line 860
#line 860
lstatus = ncx_getn_schar_double(&xp, nget, value);
#line 860
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 860
status = lstatus;
#line 860
#line 860
(void) ncio_rel(ncp->nciop, offset, 0);
#line 860
#line 860
remaining -= extent;
#line 860
if(remaining == 0)
#line 860
break; /* normal loop exit */
#line 860
offset += (off_t)extent;
#line 860
value += nget;
#line 860
}
#line 860
#line 860
return status;
#line 860
}
#line 860
static int
#line 861
getNCvx_schar_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 861
const size_t *start, size_t nelems, longlong *value)
#line 861
{
#line 861
off_t offset = NC_varoffset(ncp, varp, start);
#line 861
size_t remaining = varp->xsz * nelems;
#line 861
int status = NC_NOERR;
#line 861
const void *xp;
#line 861
#line 861
if(nelems == 0)
#line 861
return NC_NOERR;
#line 861
#line 861
assert(value != NULL);
#line 861
#line 861
for(;;)
#line 861
{
#line 861
size_t extent = MIN(remaining, ncp->chunk);
#line 861
size_t nget = ncx_howmany(varp->type, extent);
#line 861
#line 861
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 861
0, (void **)&xp); /* cast away const */
#line 861
if(lstatus != NC_NOERR)
#line 861
return lstatus;
#line 861
#line 861
lstatus = ncx_getn_schar_longlong(&xp, nget, value);
#line 861
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 861
status = lstatus;
#line 861
#line 861
(void) ncio_rel(ncp->nciop, offset, 0);
#line 861
#line 861
remaining -= extent;
#line 861
if(remaining == 0)
#line 861
break; /* normal loop exit */
#line 861
offset += (off_t)extent;
#line 861
value += nget;
#line 861
}
#line 861
#line 861
return status;
#line 861
}
#line 861
static int
#line 862
getNCvx_schar_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 862
const size_t *start, size_t nelems, uint *value)
#line 862
{
#line 862
off_t offset = NC_varoffset(ncp, varp, start);
#line 862
size_t remaining = varp->xsz * nelems;
#line 862
int status = NC_NOERR;
#line 862
const void *xp;
#line 862
#line 862
if(nelems == 0)
#line 862
return NC_NOERR;
#line 862
#line 862
assert(value != NULL);
#line 862
#line 862
for(;;)
#line 862
{
#line 862
size_t extent = MIN(remaining, ncp->chunk);
#line 862
size_t nget = ncx_howmany(varp->type, extent);
#line 862
#line 862
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 862
0, (void **)&xp); /* cast away const */
#line 862
if(lstatus != NC_NOERR)
#line 862
return lstatus;
#line 862
#line 862
lstatus = ncx_getn_schar_uint(&xp, nget, value);
#line 862
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 862
status = lstatus;
#line 862
#line 862
(void) ncio_rel(ncp->nciop, offset, 0);
#line 862
#line 862
remaining -= extent;
#line 862
if(remaining == 0)
#line 862
break; /* normal loop exit */
#line 862
offset += (off_t)extent;
#line 862
value += nget;
#line 862
}
#line 862
#line 862
return status;
#line 862
}
#line 862
static int
#line 863
getNCvx_schar_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 863
const size_t *start, size_t nelems, ulonglong *value)
#line 863
{
#line 863
off_t offset = NC_varoffset(ncp, varp, start);
#line 863
size_t remaining = varp->xsz * nelems;
#line 863
int status = NC_NOERR;
#line 863
const void *xp;
#line 863
#line 863
if(nelems == 0)
#line 863
return NC_NOERR;
#line 863
#line 863
assert(value != NULL);
#line 863
#line 863
for(;;)
#line 863
{
#line 863
size_t extent = MIN(remaining, ncp->chunk);
#line 863
size_t nget = ncx_howmany(varp->type, extent);
#line 863
#line 863
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 863
0, (void **)&xp); /* cast away const */
#line 863
if(lstatus != NC_NOERR)
#line 863
return lstatus;
#line 863
#line 863
lstatus = ncx_getn_schar_ulonglong(&xp, nget, value);
#line 863
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 863
status = lstatus;
#line 863
#line 863
(void) ncio_rel(ncp->nciop, offset, 0);
#line 863
#line 863
remaining -= extent;
#line 863
if(remaining == 0)
#line 863
break; /* normal loop exit */
#line 863
offset += (off_t)extent;
#line 863
value += nget;
#line 863
}
#line 863
#line 863
return status;
#line 863
}
#line 863
static int
#line 864
getNCvx_schar_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 864
const size_t *start, size_t nelems, uchar *value)
#line 864
{
#line 864
off_t offset = NC_varoffset(ncp, varp, start);
#line 864
size_t remaining = varp->xsz * nelems;
#line 864
int status = NC_NOERR;
#line 864
const void *xp;
#line 864
#line 864
if(nelems == 0)
#line 864
return NC_NOERR;
#line 864
#line 864
assert(value != NULL);
#line 864
#line 864
for(;;)
#line 864
{
#line 864
size_t extent = MIN(remaining, ncp->chunk);
#line 864
size_t nget = ncx_howmany(varp->type, extent);
#line 864
#line 864
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 864
0, (void **)&xp); /* cast away const */
#line 864
if(lstatus != NC_NOERR)
#line 864
return lstatus;
#line 864
#line 864
lstatus = ncx_getn_schar_uchar(&xp, nget, value);
#line 864
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 864
status = lstatus;
#line 864
#line 864
(void) ncio_rel(ncp->nciop, offset, 0);
#line 864
#line 864
remaining -= extent;
#line 864
if(remaining == 0)
#line 864
break; /* normal loop exit */
#line 864
offset += (off_t)extent;
#line 864
value += nget;
#line 864
}
#line 864
#line 864
return status;
#line 864
}
#line 864
static int
#line 865
getNCvx_schar_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 865
const size_t *start, size_t nelems, ushort *value)
#line 865
{
#line 865
off_t offset = NC_varoffset(ncp, varp, start);
#line 865
size_t remaining = varp->xsz * nelems;
#line 865
int status = NC_NOERR;
#line 865
const void *xp;
#line 865
#line 865
if(nelems == 0)
#line 865
return NC_NOERR;
#line 865
#line 865
assert(value != NULL);
#line 865
#line 865
for(;;)
#line 865
{
#line 865
size_t extent = MIN(remaining, ncp->chunk);
#line 865
size_t nget = ncx_howmany(varp->type, extent);
#line 865
#line 865
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 865
0, (void **)&xp); /* cast away const */
#line 865
if(lstatus != NC_NOERR)
#line 865
return lstatus;
#line 865
#line 865
lstatus = ncx_getn_schar_ushort(&xp, nget, value);
#line 865
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 865
status = lstatus;
#line 865
#line 865
(void) ncio_rel(ncp->nciop, offset, 0);
#line 865
#line 865
remaining -= extent;
#line 865
if(remaining == 0)
#line 865
break; /* normal loop exit */
#line 865
offset += (off_t)extent;
#line 865
value += nget;
#line 865
}
#line 865
#line 865
return status;
#line 865
}
#line 865
static int
#line 867
getNCvx_short_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 867
const size_t *start, size_t nelems, schar *value)
#line 867
{
#line 867
off_t offset = NC_varoffset(ncp, varp, start);
#line 867
size_t remaining = varp->xsz * nelems;
#line 867
int status = NC_NOERR;
#line 867
const void *xp;
#line 867
#line 867
if(nelems == 0)
#line 867
return NC_NOERR;
#line 867
#line 867
assert(value != NULL);
#line 867
#line 867
for(;;)
#line 867
{
#line 867
size_t extent = MIN(remaining, ncp->chunk);
#line 867
size_t nget = ncx_howmany(varp->type, extent);
#line 867
#line 867
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 867
0, (void **)&xp); /* cast away const */
#line 867
if(lstatus != NC_NOERR)
#line 867
return lstatus;
#line 867
#line 867
lstatus = ncx_getn_short_schar(&xp, nget, value);
#line 867
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 867
status = lstatus;
#line 867
#line 867
(void) ncio_rel(ncp->nciop, offset, 0);
#line 867
#line 867
remaining -= extent;
#line 867
if(remaining == 0)
#line 867
break; /* normal loop exit */
#line 867
offset += (off_t)extent;
#line 867
value += nget;
#line 867
}
#line 867
#line 867
return status;
#line 867
}
#line 867
static int
#line 868
getNCvx_short_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 868
const size_t *start, size_t nelems, uchar *value)
#line 868
{
#line 868
off_t offset = NC_varoffset(ncp, varp, start);
#line 868
size_t remaining = varp->xsz * nelems;
#line 868
int status = NC_NOERR;
#line 868
const void *xp;
#line 868
#line 868
if(nelems == 0)
#line 868
return NC_NOERR;
#line 868
#line 868
assert(value != NULL);
#line 868
#line 868
for(;;)
#line 868
{
#line 868
size_t extent = MIN(remaining, ncp->chunk);
#line 868
size_t nget = ncx_howmany(varp->type, extent);
#line 868
#line 868
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 868
0, (void **)&xp); /* cast away const */
#line 868
if(lstatus != NC_NOERR)
#line 868
return lstatus;
#line 868
#line 868
lstatus = ncx_getn_short_uchar(&xp, nget, value);
#line 868
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 868
status = lstatus;
#line 868
#line 868
(void) ncio_rel(ncp->nciop, offset, 0);
#line 868
#line 868
remaining -= extent;
#line 868
if(remaining == 0)
#line 868
break; /* normal loop exit */
#line 868
offset += (off_t)extent;
#line 868
value += nget;
#line 868
}
#line 868
#line 868
return status;
#line 868
}
#line 868
static int
#line 869
getNCvx_short_short(const NC3_INFO* ncp, const NC_var *varp,
#line 869
const size_t *start, size_t nelems, short *value)
#line 869
{
#line 869
off_t offset = NC_varoffset(ncp, varp, start);
#line 869
size_t remaining = varp->xsz * nelems;
#line 869
int status = NC_NOERR;
#line 869
const void *xp;
#line 869
#line 869
if(nelems == 0)
#line 869
return NC_NOERR;
#line 869
#line 869
assert(value != NULL);
#line 869
#line 869
for(;;)
#line 869
{
#line 869
size_t extent = MIN(remaining, ncp->chunk);
#line 869
size_t nget = ncx_howmany(varp->type, extent);
#line 869
#line 869
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 869
0, (void **)&xp); /* cast away const */
#line 869
if(lstatus != NC_NOERR)
#line 869
return lstatus;
#line 869
#line 869
lstatus = ncx_getn_short_short(&xp, nget, value);
#line 869
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 869
status = lstatus;
#line 869
#line 869
(void) ncio_rel(ncp->nciop, offset, 0);
#line 869
#line 869
remaining -= extent;
#line 869
if(remaining == 0)
#line 869
break; /* normal loop exit */
#line 869
offset += (off_t)extent;
#line 869
value += nget;
#line 869
}
#line 869
#line 869
return status;
#line 869
}
#line 869
static int
#line 870
getNCvx_short_int(const NC3_INFO* ncp, const NC_var *varp,
#line 870
const size_t *start, size_t nelems, int *value)
#line 870
{
#line 870
off_t offset = NC_varoffset(ncp, varp, start);
#line 870
size_t remaining = varp->xsz * nelems;
#line 870
int status = NC_NOERR;
#line 870
const void *xp;
#line 870
#line 870
if(nelems == 0)
#line 870
return NC_NOERR;
#line 870
#line 870
assert(value != NULL);
#line 870
#line 870
for(;;)
#line 870
{
#line 870
size_t extent = MIN(remaining, ncp->chunk);
#line 870
size_t nget = ncx_howmany(varp->type, extent);
#line 870
#line 870
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 870
0, (void **)&xp); /* cast away const */
#line 870
if(lstatus != NC_NOERR)
#line 870
return lstatus;
#line 870
#line 870
lstatus = ncx_getn_short_int(&xp, nget, value);
#line 870
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 870
status = lstatus;
#line 870
#line 870
(void) ncio_rel(ncp->nciop, offset, 0);
#line 870
#line 870
remaining -= extent;
#line 870
if(remaining == 0)
#line 870
break; /* normal loop exit */
#line 870
offset += (off_t)extent;
#line 870
value += nget;
#line 870
}
#line 870
#line 870
return status;
#line 870
}
#line 870
static int
#line 871
getNCvx_short_float(const NC3_INFO* ncp, const NC_var *varp,
#line 871
const size_t *start, size_t nelems, float *value)
#line 871
{
#line 871
off_t offset = NC_varoffset(ncp, varp, start);
#line 871
size_t remaining = varp->xsz * nelems;
#line 871
int status = NC_NOERR;
#line 871
const void *xp;
#line 871
#line 871
if(nelems == 0)
#line 871
return NC_NOERR;
#line 871
#line 871
assert(value != NULL);
#line 871
#line 871
for(;;)
#line 871
{
#line 871
size_t extent = MIN(remaining, ncp->chunk);
#line 871
size_t nget = ncx_howmany(varp->type, extent);
#line 871
#line 871
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 871
0, (void **)&xp); /* cast away const */
#line 871
if(lstatus != NC_NOERR)
#line 871
return lstatus;
#line 871
#line 871
lstatus = ncx_getn_short_float(&xp, nget, value);
#line 871
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 871
status = lstatus;
#line 871
#line 871
(void) ncio_rel(ncp->nciop, offset, 0);
#line 871
#line 871
remaining -= extent;
#line 871
if(remaining == 0)
#line 871
break; /* normal loop exit */
#line 871
offset += (off_t)extent;
#line 871
value += nget;
#line 871
}
#line 871
#line 871
return status;
#line 871
}
#line 871
static int
#line 872
getNCvx_short_double(const NC3_INFO* ncp, const NC_var *varp,
#line 872
const size_t *start, size_t nelems, double *value)
#line 872
{
#line 872
off_t offset = NC_varoffset(ncp, varp, start);
#line 872
size_t remaining = varp->xsz * nelems;
#line 872
int status = NC_NOERR;
#line 872
const void *xp;
#line 872
#line 872
if(nelems == 0)
#line 872
return NC_NOERR;
#line 872
#line 872
assert(value != NULL);
#line 872
#line 872
for(;;)
#line 872
{
#line 872
size_t extent = MIN(remaining, ncp->chunk);
#line 872
size_t nget = ncx_howmany(varp->type, extent);
#line 872
#line 872
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 872
0, (void **)&xp); /* cast away const */
#line 872
if(lstatus != NC_NOERR)
#line 872
return lstatus;
#line 872
#line 872
lstatus = ncx_getn_short_double(&xp, nget, value);
#line 872
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 872
status = lstatus;
#line 872
#line 872
(void) ncio_rel(ncp->nciop, offset, 0);
#line 872
#line 872
remaining -= extent;
#line 872
if(remaining == 0)
#line 872
break; /* normal loop exit */
#line 872
offset += (off_t)extent;
#line 872
value += nget;
#line 872
}
#line 872
#line 872
return status;
#line 872
}
#line 872
static int
#line 873
getNCvx_short_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 873
const size_t *start, size_t nelems, longlong *value)
#line 873
{
#line 873
off_t offset = NC_varoffset(ncp, varp, start);
#line 873
size_t remaining = varp->xsz * nelems;
#line 873
int status = NC_NOERR;
#line 873
const void *xp;
#line 873
#line 873
if(nelems == 0)
#line 873
return NC_NOERR;
#line 873
#line 873
assert(value != NULL);
#line 873
#line 873
for(;;)
#line 873
{
#line 873
size_t extent = MIN(remaining, ncp->chunk);
#line 873
size_t nget = ncx_howmany(varp->type, extent);
#line 873
#line 873
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 873
0, (void **)&xp); /* cast away const */
#line 873
if(lstatus != NC_NOERR)
#line 873
return lstatus;
#line 873
#line 873
lstatus = ncx_getn_short_longlong(&xp, nget, value);
#line 873
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 873
status = lstatus;
#line 873
#line 873
(void) ncio_rel(ncp->nciop, offset, 0);
#line 873
#line 873
remaining -= extent;
#line 873
if(remaining == 0)
#line 873
break; /* normal loop exit */
#line 873
offset += (off_t)extent;
#line 873
value += nget;
#line 873
}
#line 873
#line 873
return status;
#line 873
}
#line 873
static int
#line 874
getNCvx_short_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 874
const size_t *start, size_t nelems, uint *value)
#line 874
{
#line 874
off_t offset = NC_varoffset(ncp, varp, start);
#line 874
size_t remaining = varp->xsz * nelems;
#line 874
int status = NC_NOERR;
#line 874
const void *xp;
#line 874
#line 874
if(nelems == 0)
#line 874
return NC_NOERR;
#line 874
#line 874
assert(value != NULL);
#line 874
#line 874
for(;;)
#line 874
{
#line 874
size_t extent = MIN(remaining, ncp->chunk);
#line 874
size_t nget = ncx_howmany(varp->type, extent);
#line 874
#line 874
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 874
0, (void **)&xp); /* cast away const */
#line 874
if(lstatus != NC_NOERR)
#line 874
return lstatus;
#line 874
#line 874
lstatus = ncx_getn_short_uint(&xp, nget, value);
#line 874
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 874
status = lstatus;
#line 874
#line 874
(void) ncio_rel(ncp->nciop, offset, 0);
#line 874
#line 874
remaining -= extent;
#line 874
if(remaining == 0)
#line 874
break; /* normal loop exit */
#line 874
offset += (off_t)extent;
#line 874
value += nget;
#line 874
}
#line 874
#line 874
return status;
#line 874
}
#line 874
static int
#line 875
getNCvx_short_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 875
const size_t *start, size_t nelems, ulonglong *value)
#line 875
{
#line 875
off_t offset = NC_varoffset(ncp, varp, start);
#line 875
size_t remaining = varp->xsz * nelems;
#line 875
int status = NC_NOERR;
#line 875
const void *xp;
#line 875
#line 875
if(nelems == 0)
#line 875
return NC_NOERR;
#line 875
#line 875
assert(value != NULL);
#line 875
#line 875
for(;;)
#line 875
{
#line 875
size_t extent = MIN(remaining, ncp->chunk);
#line 875
size_t nget = ncx_howmany(varp->type, extent);
#line 875
#line 875
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 875
0, (void **)&xp); /* cast away const */
#line 875
if(lstatus != NC_NOERR)
#line 875
return lstatus;
#line 875
#line 875
lstatus = ncx_getn_short_ulonglong(&xp, nget, value);
#line 875
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 875
status = lstatus;
#line 875
#line 875
(void) ncio_rel(ncp->nciop, offset, 0);
#line 875
#line 875
remaining -= extent;
#line 875
if(remaining == 0)
#line 875
break; /* normal loop exit */
#line 875
offset += (off_t)extent;
#line 875
value += nget;
#line 875
}
#line 875
#line 875
return status;
#line 875
}
#line 875
static int
#line 876
getNCvx_short_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 876
const size_t *start, size_t nelems, ushort *value)
#line 876
{
#line 876
off_t offset = NC_varoffset(ncp, varp, start);
#line 876
size_t remaining = varp->xsz * nelems;
#line 876
int status = NC_NOERR;
#line 876
const void *xp;
#line 876
#line 876
if(nelems == 0)
#line 876
return NC_NOERR;
#line 876
#line 876
assert(value != NULL);
#line 876
#line 876
for(;;)
#line 876
{
#line 876
size_t extent = MIN(remaining, ncp->chunk);
#line 876
size_t nget = ncx_howmany(varp->type, extent);
#line 876
#line 876
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 876
0, (void **)&xp); /* cast away const */
#line 876
if(lstatus != NC_NOERR)
#line 876
return lstatus;
#line 876
#line 876
lstatus = ncx_getn_short_ushort(&xp, nget, value);
#line 876
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 876
status = lstatus;
#line 876
#line 876
(void) ncio_rel(ncp->nciop, offset, 0);
#line 876
#line 876
remaining -= extent;
#line 876
if(remaining == 0)
#line 876
break; /* normal loop exit */
#line 876
offset += (off_t)extent;
#line 876
value += nget;
#line 876
}
#line 876
#line 876
return status;
#line 876
}
#line 876
static int
#line 878
getNCvx_int_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 878
const size_t *start, size_t nelems, schar *value)
#line 878
{
#line 878
off_t offset = NC_varoffset(ncp, varp, start);
#line 878
size_t remaining = varp->xsz * nelems;
#line 878
int status = NC_NOERR;
#line 878
const void *xp;
#line 878
#line 878
if(nelems == 0)
#line 878
return NC_NOERR;
#line 878
#line 878
assert(value != NULL);
#line 878
#line 878
for(;;)
#line 878
{
#line 878
size_t extent = MIN(remaining, ncp->chunk);
#line 878
size_t nget = ncx_howmany(varp->type, extent);
#line 878
#line 878
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 878
0, (void **)&xp); /* cast away const */
#line 878
if(lstatus != NC_NOERR)
#line 878
return lstatus;
#line 878
#line 878
lstatus = ncx_getn_int_schar(&xp, nget, value);
#line 878
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 878
status = lstatus;
#line 878
#line 878
(void) ncio_rel(ncp->nciop, offset, 0);
#line 878
#line 878
remaining -= extent;
#line 878
if(remaining == 0)
#line 878
break; /* normal loop exit */
#line 878
offset += (off_t)extent;
#line 878
value += nget;
#line 878
}
#line 878
#line 878
return status;
#line 878
}
#line 878
static int
#line 879
getNCvx_int_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 879
const size_t *start, size_t nelems, uchar *value)
#line 879
{
#line 879
off_t offset = NC_varoffset(ncp, varp, start);
#line 879
size_t remaining = varp->xsz * nelems;
#line 879
int status = NC_NOERR;
#line 879
const void *xp;
#line 879
#line 879
if(nelems == 0)
#line 879
return NC_NOERR;
#line 879
#line 879
assert(value != NULL);
#line 879
#line 879
for(;;)
#line 879
{
#line 879
size_t extent = MIN(remaining, ncp->chunk);
#line 879
size_t nget = ncx_howmany(varp->type, extent);
#line 879
#line 879
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 879
0, (void **)&xp); /* cast away const */
#line 879
if(lstatus != NC_NOERR)
#line 879
return lstatus;
#line 879
#line 879
lstatus = ncx_getn_int_uchar(&xp, nget, value);
#line 879
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 879
status = lstatus;
#line 879
#line 879
(void) ncio_rel(ncp->nciop, offset, 0);
#line 879
#line 879
remaining -= extent;
#line 879
if(remaining == 0)
#line 879
break; /* normal loop exit */
#line 879
offset += (off_t)extent;
#line 879
value += nget;
#line 879
}
#line 879
#line 879
return status;
#line 879
}
#line 879
static int
#line 880
getNCvx_int_short(const NC3_INFO* ncp, const NC_var *varp,
#line 880
const size_t *start, size_t nelems, short *value)
#line 880
{
#line 880
off_t offset = NC_varoffset(ncp, varp, start);
#line 880
size_t remaining = varp->xsz * nelems;
#line 880
int status = NC_NOERR;
#line 880
const void *xp;
#line 880
#line 880
if(nelems == 0)
#line 880
return NC_NOERR;
#line 880
#line 880
assert(value != NULL);
#line 880
#line 880
for(;;)
#line 880
{
#line 880
size_t extent = MIN(remaining, ncp->chunk);
#line 880
size_t nget = ncx_howmany(varp->type, extent);
#line 880
#line 880
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 880
0, (void **)&xp); /* cast away const */
#line 880
if(lstatus != NC_NOERR)
#line 880
return lstatus;
#line 880
#line 880
lstatus = ncx_getn_int_short(&xp, nget, value);
#line 880
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 880
status = lstatus;
#line 880
#line 880
(void) ncio_rel(ncp->nciop, offset, 0);
#line 880
#line 880
remaining -= extent;
#line 880
if(remaining == 0)
#line 880
break; /* normal loop exit */
#line 880
offset += (off_t)extent;
#line 880
value += nget;
#line 880
}
#line 880
#line 880
return status;
#line 880
}
#line 880
static int
#line 881
getNCvx_int_int(const NC3_INFO* ncp, const NC_var *varp,
#line 881
const size_t *start, size_t nelems, int *value)
#line 881
{
#line 881
off_t offset = NC_varoffset(ncp, varp, start);
#line 881
size_t remaining = varp->xsz * nelems;
#line 881
int status = NC_NOERR;
#line 881
const void *xp;
#line 881
#line 881
if(nelems == 0)
#line 881
return NC_NOERR;
#line 881
#line 881
assert(value != NULL);
#line 881
#line 881
for(;;)
#line 881
{
#line 881
size_t extent = MIN(remaining, ncp->chunk);
#line 881
size_t nget = ncx_howmany(varp->type, extent);
#line 881
#line 881
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 881
0, (void **)&xp); /* cast away const */
#line 881
if(lstatus != NC_NOERR)
#line 881
return lstatus;
#line 881
#line 881
lstatus = ncx_getn_int_int(&xp, nget, value);
#line 881
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 881
status = lstatus;
#line 881
#line 881
(void) ncio_rel(ncp->nciop, offset, 0);
#line 881
#line 881
remaining -= extent;
#line 881
if(remaining == 0)
#line 881
break; /* normal loop exit */
#line 881
offset += (off_t)extent;
#line 881
value += nget;
#line 881
}
#line 881
#line 881
return status;
#line 881
}
#line 881
static int
#line 882
getNCvx_int_float(const NC3_INFO* ncp, const NC_var *varp,
#line 882
const size_t *start, size_t nelems, float *value)
#line 882
{
#line 882
off_t offset = NC_varoffset(ncp, varp, start);
#line 882
size_t remaining = varp->xsz * nelems;
#line 882
int status = NC_NOERR;
#line 882
const void *xp;
#line 882
#line 882
if(nelems == 0)
#line 882
return NC_NOERR;
#line 882
#line 882
assert(value != NULL);
#line 882
#line 882
for(;;)
#line 882
{
#line 882
size_t extent = MIN(remaining, ncp->chunk);
#line 882
size_t nget = ncx_howmany(varp->type, extent);
#line 882
#line 882
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 882
0, (void **)&xp); /* cast away const */
#line 882
if(lstatus != NC_NOERR)
#line 882
return lstatus;
#line 882
#line 882
lstatus = ncx_getn_int_float(&xp, nget, value);
#line 882
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 882
status = lstatus;
#line 882
#line 882
(void) ncio_rel(ncp->nciop, offset, 0);
#line 882
#line 882
remaining -= extent;
#line 882
if(remaining == 0)
#line 882
break; /* normal loop exit */
#line 882
offset += (off_t)extent;
#line 882
value += nget;
#line 882
}
#line 882
#line 882
return status;
#line 882
}
#line 882
static int
#line 883
getNCvx_int_double(const NC3_INFO* ncp, const NC_var *varp,
#line 883
const size_t *start, size_t nelems, double *value)
#line 883
{
#line 883
off_t offset = NC_varoffset(ncp, varp, start);
#line 883
size_t remaining = varp->xsz * nelems;
#line 883
int status = NC_NOERR;
#line 883
const void *xp;
#line 883
#line 883
if(nelems == 0)
#line 883
return NC_NOERR;
#line 883
#line 883
assert(value != NULL);
#line 883
#line 883
for(;;)
#line 883
{
#line 883
size_t extent = MIN(remaining, ncp->chunk);
#line 883
size_t nget = ncx_howmany(varp->type, extent);
#line 883
#line 883
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 883
0, (void **)&xp); /* cast away const */
#line 883
if(lstatus != NC_NOERR)
#line 883
return lstatus;
#line 883
#line 883
lstatus = ncx_getn_int_double(&xp, nget, value);
#line 883
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 883
status = lstatus;
#line 883
#line 883
(void) ncio_rel(ncp->nciop, offset, 0);
#line 883
#line 883
remaining -= extent;
#line 883
if(remaining == 0)
#line 883
break; /* normal loop exit */
#line 883
offset += (off_t)extent;
#line 883
value += nget;
#line 883
}
#line 883
#line 883
return status;
#line 883
}
#line 883
static int
#line 884
getNCvx_int_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 884
const size_t *start, size_t nelems, longlong *value)
#line 884
{
#line 884
off_t offset = NC_varoffset(ncp, varp, start);
#line 884
size_t remaining = varp->xsz * nelems;
#line 884
int status = NC_NOERR;
#line 884
const void *xp;
#line 884
#line 884
if(nelems == 0)
#line 884
return NC_NOERR;
#line 884
#line 884
assert(value != NULL);
#line 884
#line 884
for(;;)
#line 884
{
#line 884
size_t extent = MIN(remaining, ncp->chunk);
#line 884
size_t nget = ncx_howmany(varp->type, extent);
#line 884
#line 884
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 884
0, (void **)&xp); /* cast away const */
#line 884
if(lstatus != NC_NOERR)
#line 884
return lstatus;
#line 884
#line 884
lstatus = ncx_getn_int_longlong(&xp, nget, value);
#line 884
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 884
status = lstatus;
#line 884
#line 884
(void) ncio_rel(ncp->nciop, offset, 0);
#line 884
#line 884
remaining -= extent;
#line 884
if(remaining == 0)
#line 884
break; /* normal loop exit */
#line 884
offset += (off_t)extent;
#line 884
value += nget;
#line 884
}
#line 884
#line 884
return status;
#line 884
}
#line 884
static int
#line 885
getNCvx_int_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 885
const size_t *start, size_t nelems, uint *value)
#line 885
{
#line 885
off_t offset = NC_varoffset(ncp, varp, start);
#line 885
size_t remaining = varp->xsz * nelems;
#line 885
int status = NC_NOERR;
#line 885
const void *xp;
#line 885
#line 885
if(nelems == 0)
#line 885
return NC_NOERR;
#line 885
#line 885
assert(value != NULL);
#line 885
#line 885
for(;;)
#line 885
{
#line 885
size_t extent = MIN(remaining, ncp->chunk);
#line 885
size_t nget = ncx_howmany(varp->type, extent);
#line 885
#line 885
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 885
0, (void **)&xp); /* cast away const */
#line 885
if(lstatus != NC_NOERR)
#line 885
return lstatus;
#line 885
#line 885
lstatus = ncx_getn_int_uint(&xp, nget, value);
#line 885
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 885
status = lstatus;
#line 885
#line 885
(void) ncio_rel(ncp->nciop, offset, 0);
#line 885
#line 885
remaining -= extent;
#line 885
if(remaining == 0)
#line 885
break; /* normal loop exit */
#line 885
offset += (off_t)extent;
#line 885
value += nget;
#line 885
}
#line 885
#line 885
return status;
#line 885
}
#line 885
static int
#line 886
getNCvx_int_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 886
const size_t *start, size_t nelems, ulonglong *value)
#line 886
{
#line 886
off_t offset = NC_varoffset(ncp, varp, start);
#line 886
size_t remaining = varp->xsz * nelems;
#line 886
int status = NC_NOERR;
#line 886
const void *xp;
#line 886
#line 886
if(nelems == 0)
#line 886
return NC_NOERR;
#line 886
#line 886
assert(value != NULL);
#line 886
#line 886
for(;;)
#line 886
{
#line 886
size_t extent = MIN(remaining, ncp->chunk);
#line 886
size_t nget = ncx_howmany(varp->type, extent);
#line 886
#line 886
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 886
0, (void **)&xp); /* cast away const */
#line 886
if(lstatus != NC_NOERR)
#line 886
return lstatus;
#line 886
#line 886
lstatus = ncx_getn_int_ulonglong(&xp, nget, value);
#line 886
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 886
status = lstatus;
#line 886
#line 886
(void) ncio_rel(ncp->nciop, offset, 0);
#line 886
#line 886
remaining -= extent;
#line 886
if(remaining == 0)
#line 886
break; /* normal loop exit */
#line 886
offset += (off_t)extent;
#line 886
value += nget;
#line 886
}
#line 886
#line 886
return status;
#line 886
}
#line 886
static int
#line 887
getNCvx_int_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 887
const size_t *start, size_t nelems, ushort *value)
#line 887
{
#line 887
off_t offset = NC_varoffset(ncp, varp, start);
#line 887
size_t remaining = varp->xsz * nelems;
#line 887
int status = NC_NOERR;
#line 887
const void *xp;
#line 887
#line 887
if(nelems == 0)
#line 887
return NC_NOERR;
#line 887
#line 887
assert(value != NULL);
#line 887
#line 887
for(;;)
#line 887
{
#line 887
size_t extent = MIN(remaining, ncp->chunk);
#line 887
size_t nget = ncx_howmany(varp->type, extent);
#line 887
#line 887
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 887
0, (void **)&xp); /* cast away const */
#line 887
if(lstatus != NC_NOERR)
#line 887
return lstatus;
#line 887
#line 887
lstatus = ncx_getn_int_ushort(&xp, nget, value);
#line 887
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 887
status = lstatus;
#line 887
#line 887
(void) ncio_rel(ncp->nciop, offset, 0);
#line 887
#line 887
remaining -= extent;
#line 887
if(remaining == 0)
#line 887
break; /* normal loop exit */
#line 887
offset += (off_t)extent;
#line 887
value += nget;
#line 887
}
#line 887
#line 887
return status;
#line 887
}
#line 887
static int
#line 889
getNCvx_float_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 889
const size_t *start, size_t nelems, schar *value)
#line 889
{
#line 889
off_t offset = NC_varoffset(ncp, varp, start);
#line 889
size_t remaining = varp->xsz * nelems;
#line 889
int status = NC_NOERR;
#line 889
const void *xp;
#line 889
#line 889
if(nelems == 0)
#line 889
return NC_NOERR;
#line 889
#line 889
assert(value != NULL);
#line 889
#line 889
for(;;)
#line 889
{
#line 889
size_t extent = MIN(remaining, ncp->chunk);
#line 889
size_t nget = ncx_howmany(varp->type, extent);
#line 889
#line 889
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 889
0, (void **)&xp); /* cast away const */
#line 889
if(lstatus != NC_NOERR)
#line 889
return lstatus;
#line 889
#line 889
lstatus = ncx_getn_float_schar(&xp, nget, value);
#line 889
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 889
status = lstatus;
#line 889
#line 889
(void) ncio_rel(ncp->nciop, offset, 0);
#line 889
#line 889
remaining -= extent;
#line 889
if(remaining == 0)
#line 889
break; /* normal loop exit */
#line 889
offset += (off_t)extent;
#line 889
value += nget;
#line 889
}
#line 889
#line 889
return status;
#line 889
}
#line 889
static int
#line 890
getNCvx_float_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 890
const size_t *start, size_t nelems, uchar *value)
#line 890
{
#line 890
off_t offset = NC_varoffset(ncp, varp, start);
#line 890
size_t remaining = varp->xsz * nelems;
#line 890
int status = NC_NOERR;
#line 890
const void *xp;
#line 890
#line 890
if(nelems == 0)
#line 890
return NC_NOERR;
#line 890
#line 890
assert(value != NULL);
#line 890
#line 890
for(;;)
#line 890
{
#line 890
size_t extent = MIN(remaining, ncp->chunk);
#line 890
size_t nget = ncx_howmany(varp->type, extent);
#line 890
#line 890
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 890
0, (void **)&xp); /* cast away const */
#line 890
if(lstatus != NC_NOERR)
#line 890
return lstatus;
#line 890
#line 890
lstatus = ncx_getn_float_uchar(&xp, nget, value);
#line 890
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 890
status = lstatus;
#line 890
#line 890
(void) ncio_rel(ncp->nciop, offset, 0);
#line 890
#line 890
remaining -= extent;
#line 890
if(remaining == 0)
#line 890
break; /* normal loop exit */
#line 890
offset += (off_t)extent;
#line 890
value += nget;
#line 890
}
#line 890
#line 890
return status;
#line 890
}
#line 890
static int
#line 891
getNCvx_float_short(const NC3_INFO* ncp, const NC_var *varp,
#line 891
const size_t *start, size_t nelems, short *value)
#line 891
{
#line 891
off_t offset = NC_varoffset(ncp, varp, start);
#line 891
size_t remaining = varp->xsz * nelems;
#line 891
int status = NC_NOERR;
#line 891
const void *xp;
#line 891
#line 891
if(nelems == 0)
#line 891
return NC_NOERR;
#line 891
#line 891
assert(value != NULL);
#line 891
#line 891
for(;;)
#line 891
{
#line 891
size_t extent = MIN(remaining, ncp->chunk);
#line 891
size_t nget = ncx_howmany(varp->type, extent);
#line 891
#line 891
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 891
0, (void **)&xp); /* cast away const */
#line 891
if(lstatus != NC_NOERR)
#line 891
return lstatus;
#line 891
#line 891
lstatus = ncx_getn_float_short(&xp, nget, value);
#line 891
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 891
status = lstatus;
#line 891
#line 891
(void) ncio_rel(ncp->nciop, offset, 0);
#line 891
#line 891
remaining -= extent;
#line 891
if(remaining == 0)
#line 891
break; /* normal loop exit */
#line 891
offset += (off_t)extent;
#line 891
value += nget;
#line 891
}
#line 891
#line 891
return status;
#line 891
}
#line 891
static int
#line 892
getNCvx_float_int(const NC3_INFO* ncp, const NC_var *varp,
#line 892
const size_t *start, size_t nelems, int *value)
#line 892
{
#line 892
off_t offset = NC_varoffset(ncp, varp, start);
#line 892
size_t remaining = varp->xsz * nelems;
#line 892
int status = NC_NOERR;
#line 892
const void *xp;
#line 892
#line 892
if(nelems == 0)
#line 892
return NC_NOERR;
#line 892
#line 892
assert(value != NULL);
#line 892
#line 892
for(;;)
#line 892
{
#line 892
size_t extent = MIN(remaining, ncp->chunk);
#line 892
size_t nget = ncx_howmany(varp->type, extent);
#line 892
#line 892
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 892
0, (void **)&xp); /* cast away const */
#line 892
if(lstatus != NC_NOERR)
#line 892
return lstatus;
#line 892
#line 892
lstatus = ncx_getn_float_int(&xp, nget, value);
#line 892
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 892
status = lstatus;
#line 892
#line 892
(void) ncio_rel(ncp->nciop, offset, 0);
#line 892
#line 892
remaining -= extent;
#line 892
if(remaining == 0)
#line 892
break; /* normal loop exit */
#line 892
offset += (off_t)extent;
#line 892
value += nget;
#line 892
}
#line 892
#line 892
return status;
#line 892
}
#line 892
static int
#line 893
getNCvx_float_float(const NC3_INFO* ncp, const NC_var *varp,
#line 893
const size_t *start, size_t nelems, float *value)
#line 893
{
#line 893
off_t offset = NC_varoffset(ncp, varp, start);
#line 893
size_t remaining = varp->xsz * nelems;
#line 893
int status = NC_NOERR;
#line 893
const void *xp;
#line 893
#line 893
if(nelems == 0)
#line 893
return NC_NOERR;
#line 893
#line 893
assert(value != NULL);
#line 893
#line 893
for(;;)
#line 893
{
#line 893
size_t extent = MIN(remaining, ncp->chunk);
#line 893
size_t nget = ncx_howmany(varp->type, extent);
#line 893
#line 893
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 893
0, (void **)&xp); /* cast away const */
#line 893
if(lstatus != NC_NOERR)
#line 893
return lstatus;
#line 893
#line 893
lstatus = ncx_getn_float_float(&xp, nget, value);
#line 893
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 893
status = lstatus;
#line 893
#line 893
(void) ncio_rel(ncp->nciop, offset, 0);
#line 893
#line 893
remaining -= extent;
#line 893
if(remaining == 0)
#line 893
break; /* normal loop exit */
#line 893
offset += (off_t)extent;
#line 893
value += nget;
#line 893
}
#line 893
#line 893
return status;
#line 893
}
#line 893
static int
#line 894
getNCvx_float_double(const NC3_INFO* ncp, const NC_var *varp,
#line 894
const size_t *start, size_t nelems, double *value)
#line 894
{
#line 894
off_t offset = NC_varoffset(ncp, varp, start);
#line 894
size_t remaining = varp->xsz * nelems;
#line 894
int status = NC_NOERR;
#line 894
const void *xp;
#line 894
#line 894
if(nelems == 0)
#line 894
return NC_NOERR;
#line 894
#line 894
assert(value != NULL);
#line 894
#line 894
for(;;)
#line 894
{
#line 894
size_t extent = MIN(remaining, ncp->chunk);
#line 894
size_t nget = ncx_howmany(varp->type, extent);
#line 894
#line 894
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 894
0, (void **)&xp); /* cast away const */
#line 894
if(lstatus != NC_NOERR)
#line 894
return lstatus;
#line 894
#line 894
lstatus = ncx_getn_float_double(&xp, nget, value);
#line 894
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 894
status = lstatus;
#line 894
#line 894
(void) ncio_rel(ncp->nciop, offset, 0);
#line 894
#line 894
remaining -= extent;
#line 894
if(remaining == 0)
#line 894
break; /* normal loop exit */
#line 894
offset += (off_t)extent;
#line 894
value += nget;
#line 894
}
#line 894
#line 894
return status;
#line 894
}
#line 894
static int
#line 895
getNCvx_float_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 895
const size_t *start, size_t nelems, longlong *value)
#line 895
{
#line 895
off_t offset = NC_varoffset(ncp, varp, start);
#line 895
size_t remaining = varp->xsz * nelems;
#line 895
int status = NC_NOERR;
#line 895
const void *xp;
#line 895
#line 895
if(nelems == 0)
#line 895
return NC_NOERR;
#line 895
#line 895
assert(value != NULL);
#line 895
#line 895
for(;;)
#line 895
{
#line 895
size_t extent = MIN(remaining, ncp->chunk);
#line 895
size_t nget = ncx_howmany(varp->type, extent);
#line 895
#line 895
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 895
0, (void **)&xp); /* cast away const */
#line 895
if(lstatus != NC_NOERR)
#line 895
return lstatus;
#line 895
#line 895
lstatus = ncx_getn_float_longlong(&xp, nget, value);
#line 895
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 895
status = lstatus;
#line 895
#line 895
(void) ncio_rel(ncp->nciop, offset, 0);
#line 895
#line 895
remaining -= extent;
#line 895
if(remaining == 0)
#line 895
break; /* normal loop exit */
#line 895
offset += (off_t)extent;
#line 895
value += nget;
#line 895
}
#line 895
#line 895
return status;
#line 895
}
#line 895
static int
#line 896
getNCvx_float_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 896
const size_t *start, size_t nelems, uint *value)
#line 896
{
#line 896
off_t offset = NC_varoffset(ncp, varp, start);
#line 896
size_t remaining = varp->xsz * nelems;
#line 896
int status = NC_NOERR;
#line 896
const void *xp;
#line 896
#line 896
if(nelems == 0)
#line 896
return NC_NOERR;
#line 896
#line 896
assert(value != NULL);
#line 896
#line 896
for(;;)
#line 896
{
#line 896
size_t extent = MIN(remaining, ncp->chunk);
#line 896
size_t nget = ncx_howmany(varp->type, extent);
#line 896
#line 896
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 896
0, (void **)&xp); /* cast away const */
#line 896
if(lstatus != NC_NOERR)
#line 896
return lstatus;
#line 896
#line 896
lstatus = ncx_getn_float_uint(&xp, nget, value);
#line 896
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 896
status = lstatus;
#line 896
#line 896
(void) ncio_rel(ncp->nciop, offset, 0);
#line 896
#line 896
remaining -= extent;
#line 896
if(remaining == 0)
#line 896
break; /* normal loop exit */
#line 896
offset += (off_t)extent;
#line 896
value += nget;
#line 896
}
#line 896
#line 896
return status;
#line 896
}
#line 896
static int
#line 897
getNCvx_float_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 897
const size_t *start, size_t nelems, ulonglong *value)
#line 897
{
#line 897
off_t offset = NC_varoffset(ncp, varp, start);
#line 897
size_t remaining = varp->xsz * nelems;
#line 897
int status = NC_NOERR;
#line 897
const void *xp;
#line 897
#line 897
if(nelems == 0)
#line 897
return NC_NOERR;
#line 897
#line 897
assert(value != NULL);
#line 897
#line 897
for(;;)
#line 897
{
#line 897
size_t extent = MIN(remaining, ncp->chunk);
#line 897
size_t nget = ncx_howmany(varp->type, extent);
#line 897
#line 897
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 897
0, (void **)&xp); /* cast away const */
#line 897
if(lstatus != NC_NOERR)
#line 897
return lstatus;
#line 897
#line 897
lstatus = ncx_getn_float_ulonglong(&xp, nget, value);
#line 897
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 897
status = lstatus;
#line 897
#line 897
(void) ncio_rel(ncp->nciop, offset, 0);
#line 897
#line 897
remaining -= extent;
#line 897
if(remaining == 0)
#line 897
break; /* normal loop exit */
#line 897
offset += (off_t)extent;
#line 897
value += nget;
#line 897
}
#line 897
#line 897
return status;
#line 897
}
#line 897
static int
#line 898
getNCvx_float_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 898
const size_t *start, size_t nelems, ushort *value)
#line 898
{
#line 898
off_t offset = NC_varoffset(ncp, varp, start);
#line 898
size_t remaining = varp->xsz * nelems;
#line 898
int status = NC_NOERR;
#line 898
const void *xp;
#line 898
#line 898
if(nelems == 0)
#line 898
return NC_NOERR;
#line 898
#line 898
assert(value != NULL);
#line 898
#line 898
for(;;)
#line 898
{
#line 898
size_t extent = MIN(remaining, ncp->chunk);
#line 898
size_t nget = ncx_howmany(varp->type, extent);
#line 898
#line 898
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 898
0, (void **)&xp); /* cast away const */
#line 898
if(lstatus != NC_NOERR)
#line 898
return lstatus;
#line 898
#line 898
lstatus = ncx_getn_float_ushort(&xp, nget, value);
#line 898
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 898
status = lstatus;
#line 898
#line 898
(void) ncio_rel(ncp->nciop, offset, 0);
#line 898
#line 898
remaining -= extent;
#line 898
if(remaining == 0)
#line 898
break; /* normal loop exit */
#line 898
offset += (off_t)extent;
#line 898
value += nget;
#line 898
}
#line 898
#line 898
return status;
#line 898
}
#line 898
static int
#line 900
getNCvx_double_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 900
const size_t *start, size_t nelems, schar *value)
#line 900
{
#line 900
off_t offset = NC_varoffset(ncp, varp, start);
#line 900
size_t remaining = varp->xsz * nelems;
#line 900
int status = NC_NOERR;
#line 900
const void *xp;
#line 900
#line 900
if(nelems == 0)
#line 900
return NC_NOERR;
#line 900
#line 900
assert(value != NULL);
#line 900
#line 900
for(;;)
#line 900
{
#line 900
size_t extent = MIN(remaining, ncp->chunk);
#line 900
size_t nget = ncx_howmany(varp->type, extent);
#line 900
#line 900
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 900
0, (void **)&xp); /* cast away const */
#line 900
if(lstatus != NC_NOERR)
#line 900
return lstatus;
#line 900
#line 900
lstatus = ncx_getn_double_schar(&xp, nget, value);
#line 900
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 900
status = lstatus;
#line 900
#line 900
(void) ncio_rel(ncp->nciop, offset, 0);
#line 900
#line 900
remaining -= extent;
#line 900
if(remaining == 0)
#line 900
break; /* normal loop exit */
#line 900
offset += (off_t)extent;
#line 900
value += nget;
#line 900
}
#line 900
#line 900
return status;
#line 900
}
#line 900
static int
#line 901
getNCvx_double_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 901
const size_t *start, size_t nelems, uchar *value)
#line 901
{
#line 901
off_t offset = NC_varoffset(ncp, varp, start);
#line 901
size_t remaining = varp->xsz * nelems;
#line 901
int status = NC_NOERR;
#line 901
const void *xp;
#line 901
#line 901
if(nelems == 0)
#line 901
return NC_NOERR;
#line 901
#line 901
assert(value != NULL);
#line 901
#line 901
for(;;)
#line 901
{
#line 901
size_t extent = MIN(remaining, ncp->chunk);
#line 901
size_t nget = ncx_howmany(varp->type, extent);
#line 901
#line 901
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 901
0, (void **)&xp); /* cast away const */
#line 901
if(lstatus != NC_NOERR)
#line 901
return lstatus;
#line 901
#line 901
lstatus = ncx_getn_double_uchar(&xp, nget, value);
#line 901
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 901
status = lstatus;
#line 901
#line 901
(void) ncio_rel(ncp->nciop, offset, 0);
#line 901
#line 901
remaining -= extent;
#line 901
if(remaining == 0)
#line 901
break; /* normal loop exit */
#line 901
offset += (off_t)extent;
#line 901
value += nget;
#line 901
}
#line 901
#line 901
return status;
#line 901
}
#line 901
static int
#line 902
getNCvx_double_short(const NC3_INFO* ncp, const NC_var *varp,
#line 902
const size_t *start, size_t nelems, short *value)
#line 902
{
#line 902
off_t offset = NC_varoffset(ncp, varp, start);
#line 902
size_t remaining = varp->xsz * nelems;
#line 902
int status = NC_NOERR;
#line 902
const void *xp;
#line 902
#line 902
if(nelems == 0)
#line 902
return NC_NOERR;
#line 902
#line 902
assert(value != NULL);
#line 902
#line 902
for(;;)
#line 902
{
#line 902
size_t extent = MIN(remaining, ncp->chunk);
#line 902
size_t nget = ncx_howmany(varp->type, extent);
#line 902
#line 902
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 902
0, (void **)&xp); /* cast away const */
#line 902
if(lstatus != NC_NOERR)
#line 902
return lstatus;
#line 902
#line 902
lstatus = ncx_getn_double_short(&xp, nget, value);
#line 902
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 902
status = lstatus;
#line 902
#line 902
(void) ncio_rel(ncp->nciop, offset, 0);
#line 902
#line 902
remaining -= extent;
#line 902
if(remaining == 0)
#line 902
break; /* normal loop exit */
#line 902
offset += (off_t)extent;
#line 902
value += nget;
#line 902
}
#line 902
#line 902
return status;
#line 902
}
#line 902
static int
#line 903
getNCvx_double_int(const NC3_INFO* ncp, const NC_var *varp,
#line 903
const size_t *start, size_t nelems, int *value)
#line 903
{
#line 903
off_t offset = NC_varoffset(ncp, varp, start);
#line 903
size_t remaining = varp->xsz * nelems;
#line 903
int status = NC_NOERR;
#line 903
const void *xp;
#line 903
#line 903
if(nelems == 0)
#line 903
return NC_NOERR;
#line 903
#line 903
assert(value != NULL);
#line 903
#line 903
for(;;)
#line 903
{
#line 903
size_t extent = MIN(remaining, ncp->chunk);
#line 903
size_t nget = ncx_howmany(varp->type, extent);
#line 903
#line 903
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 903
0, (void **)&xp); /* cast away const */
#line 903
if(lstatus != NC_NOERR)
#line 903
return lstatus;
#line 903
#line 903
lstatus = ncx_getn_double_int(&xp, nget, value);
#line 903
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 903
status = lstatus;
#line 903
#line 903
(void) ncio_rel(ncp->nciop, offset, 0);
#line 903
#line 903
remaining -= extent;
#line 903
if(remaining == 0)
#line 903
break; /* normal loop exit */
#line 903
offset += (off_t)extent;
#line 903
value += nget;
#line 903
}
#line 903
#line 903
return status;
#line 903
}
#line 903
static int
#line 904
getNCvx_double_float(const NC3_INFO* ncp, const NC_var *varp,
#line 904
const size_t *start, size_t nelems, float *value)
#line 904
{
#line 904
off_t offset = NC_varoffset(ncp, varp, start);
#line 904
size_t remaining = varp->xsz * nelems;
#line 904
int status = NC_NOERR;
#line 904
const void *xp;
#line 904
#line 904
if(nelems == 0)
#line 904
return NC_NOERR;
#line 904
#line 904
assert(value != NULL);
#line 904
#line 904
for(;;)
#line 904
{
#line 904
size_t extent = MIN(remaining, ncp->chunk);
#line 904
size_t nget = ncx_howmany(varp->type, extent);
#line 904
#line 904
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 904
0, (void **)&xp); /* cast away const */
#line 904
if(lstatus != NC_NOERR)
#line 904
return lstatus;
#line 904
#line 904
lstatus = ncx_getn_double_float(&xp, nget, value);
#line 904
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 904
status = lstatus;
#line 904
#line 904
(void) ncio_rel(ncp->nciop, offset, 0);
#line 904
#line 904
remaining -= extent;
#line 904
if(remaining == 0)
#line 904
break; /* normal loop exit */
#line 904
offset += (off_t)extent;
#line 904
value += nget;
#line 904
}
#line 904
#line 904
return status;
#line 904
}
#line 904
static int
#line 905
getNCvx_double_double(const NC3_INFO* ncp, const NC_var *varp,
#line 905
const size_t *start, size_t nelems, double *value)
#line 905
{
#line 905
off_t offset = NC_varoffset(ncp, varp, start);
#line 905
size_t remaining = varp->xsz * nelems;
#line 905
int status = NC_NOERR;
#line 905
const void *xp;
#line 905
#line 905
if(nelems == 0)
#line 905
return NC_NOERR;
#line 905
#line 905
assert(value != NULL);
#line 905
#line 905
for(;;)
#line 905
{
#line 905
size_t extent = MIN(remaining, ncp->chunk);
#line 905
size_t nget = ncx_howmany(varp->type, extent);
#line 905
#line 905
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 905
0, (void **)&xp); /* cast away const */
#line 905
if(lstatus != NC_NOERR)
#line 905
return lstatus;
#line 905
#line 905
lstatus = ncx_getn_double_double(&xp, nget, value);
#line 905
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 905
status = lstatus;
#line 905
#line 905
(void) ncio_rel(ncp->nciop, offset, 0);
#line 905
#line 905
remaining -= extent;
#line 905
if(remaining == 0)
#line 905
break; /* normal loop exit */
#line 905
offset += (off_t)extent;
#line 905
value += nget;
#line 905
}
#line 905
#line 905
return status;
#line 905
}
#line 905
static int
#line 906
getNCvx_double_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 906
const size_t *start, size_t nelems, longlong *value)
#line 906
{
#line 906
off_t offset = NC_varoffset(ncp, varp, start);
#line 906
size_t remaining = varp->xsz * nelems;
#line 906
int status = NC_NOERR;
#line 906
const void *xp;
#line 906
#line 906
if(nelems == 0)
#line 906
return NC_NOERR;
#line 906
#line 906
assert(value != NULL);
#line 906
#line 906
for(;;)
#line 906
{
#line 906
size_t extent = MIN(remaining, ncp->chunk);
#line 906
size_t nget = ncx_howmany(varp->type, extent);
#line 906
#line 906
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 906
0, (void **)&xp); /* cast away const */
#line 906
if(lstatus != NC_NOERR)
#line 906
return lstatus;
#line 906
#line 906
lstatus = ncx_getn_double_longlong(&xp, nget, value);
#line 906
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 906
status = lstatus;
#line 906
#line 906
(void) ncio_rel(ncp->nciop, offset, 0);
#line 906
#line 906
remaining -= extent;
#line 906
if(remaining == 0)
#line 906
break; /* normal loop exit */
#line 906
offset += (off_t)extent;
#line 906
value += nget;
#line 906
}
#line 906
#line 906
return status;
#line 906
}
#line 906
static int
#line 907
getNCvx_double_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 907
const size_t *start, size_t nelems, uint *value)
#line 907
{
#line 907
off_t offset = NC_varoffset(ncp, varp, start);
#line 907
size_t remaining = varp->xsz * nelems;
#line 907
int status = NC_NOERR;
#line 907
const void *xp;
#line 907
#line 907
if(nelems == 0)
#line 907
return NC_NOERR;
#line 907
#line 907
assert(value != NULL);
#line 907
#line 907
for(;;)
#line 907
{
#line 907
size_t extent = MIN(remaining, ncp->chunk);
#line 907
size_t nget = ncx_howmany(varp->type, extent);
#line 907
#line 907
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 907
0, (void **)&xp); /* cast away const */
#line 907
if(lstatus != NC_NOERR)
#line 907
return lstatus;
#line 907
#line 907
lstatus = ncx_getn_double_uint(&xp, nget, value);
#line 907
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 907
status = lstatus;
#line 907
#line 907
(void) ncio_rel(ncp->nciop, offset, 0);
#line 907
#line 907
remaining -= extent;
#line 907
if(remaining == 0)
#line 907
break; /* normal loop exit */
#line 907
offset += (off_t)extent;
#line 907
value += nget;
#line 907
}
#line 907
#line 907
return status;
#line 907
}
#line 907
static int
#line 908
getNCvx_double_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 908
const size_t *start, size_t nelems, ulonglong *value)
#line 908
{
#line 908
off_t offset = NC_varoffset(ncp, varp, start);
#line 908
size_t remaining = varp->xsz * nelems;
#line 908
int status = NC_NOERR;
#line 908
const void *xp;
#line 908
#line 908
if(nelems == 0)
#line 908
return NC_NOERR;
#line 908
#line 908
assert(value != NULL);
#line 908
#line 908
for(;;)
#line 908
{
#line 908
size_t extent = MIN(remaining, ncp->chunk);
#line 908
size_t nget = ncx_howmany(varp->type, extent);
#line 908
#line 908
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 908
0, (void **)&xp); /* cast away const */
#line 908
if(lstatus != NC_NOERR)
#line 908
return lstatus;
#line 908
#line 908
lstatus = ncx_getn_double_ulonglong(&xp, nget, value);
#line 908
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 908
status = lstatus;
#line 908
#line 908
(void) ncio_rel(ncp->nciop, offset, 0);
#line 908
#line 908
remaining -= extent;
#line 908
if(remaining == 0)
#line 908
break; /* normal loop exit */
#line 908
offset += (off_t)extent;
#line 908
value += nget;
#line 908
}
#line 908
#line 908
return status;
#line 908
}
#line 908
static int
#line 909
getNCvx_double_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 909
const size_t *start, size_t nelems, ushort *value)
#line 909
{
#line 909
off_t offset = NC_varoffset(ncp, varp, start);
#line 909
size_t remaining = varp->xsz * nelems;
#line 909
int status = NC_NOERR;
#line 909
const void *xp;
#line 909
#line 909
if(nelems == 0)
#line 909
return NC_NOERR;
#line 909
#line 909
assert(value != NULL);
#line 909
#line 909
for(;;)
#line 909
{
#line 909
size_t extent = MIN(remaining, ncp->chunk);
#line 909
size_t nget = ncx_howmany(varp->type, extent);
#line 909
#line 909
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 909
0, (void **)&xp); /* cast away const */
#line 909
if(lstatus != NC_NOERR)
#line 909
return lstatus;
#line 909
#line 909
lstatus = ncx_getn_double_ushort(&xp, nget, value);
#line 909
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 909
status = lstatus;
#line 909
#line 909
(void) ncio_rel(ncp->nciop, offset, 0);
#line 909
#line 909
remaining -= extent;
#line 909
if(remaining == 0)
#line 909
break; /* normal loop exit */
#line 909
offset += (off_t)extent;
#line 909
value += nget;
#line 909
}
#line 909
#line 909
return status;
#line 909
}
#line 909
static int
#line 911
getNCvx_uchar_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 911
const size_t *start, size_t nelems, schar *value)
#line 911
{
#line 911
off_t offset = NC_varoffset(ncp, varp, start);
#line 911
size_t remaining = varp->xsz * nelems;
#line 911
int status = NC_NOERR;
#line 911
const void *xp;
#line 911
#line 911
if(nelems == 0)
#line 911
return NC_NOERR;
#line 911
#line 911
assert(value != NULL);
#line 911
#line 911
for(;;)
#line 911
{
#line 911
size_t extent = MIN(remaining, ncp->chunk);
#line 911
size_t nget = ncx_howmany(varp->type, extent);
#line 911
#line 911
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 911
0, (void **)&xp); /* cast away const */
#line 911
if(lstatus != NC_NOERR)
#line 911
return lstatus;
#line 911
#line 911
lstatus = ncx_getn_uchar_schar(&xp, nget, value);
#line 911
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 911
status = lstatus;
#line 911
#line 911
(void) ncio_rel(ncp->nciop, offset, 0);
#line 911
#line 911
remaining -= extent;
#line 911
if(remaining == 0)
#line 911
break; /* normal loop exit */
#line 911
offset += (off_t)extent;
#line 911
value += nget;
#line 911
}
#line 911
#line 911
return status;
#line 911
}
#line 911
static int
#line 912
getNCvx_uchar_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 912
const size_t *start, size_t nelems, uchar *value)
#line 912
{
#line 912
off_t offset = NC_varoffset(ncp, varp, start);
#line 912
size_t remaining = varp->xsz * nelems;
#line 912
int status = NC_NOERR;
#line 912
const void *xp;
#line 912
#line 912
if(nelems == 0)
#line 912
return NC_NOERR;
#line 912
#line 912
assert(value != NULL);
#line 912
#line 912
for(;;)
#line 912
{
#line 912
size_t extent = MIN(remaining, ncp->chunk);
#line 912
size_t nget = ncx_howmany(varp->type, extent);
#line 912
#line 912
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 912
0, (void **)&xp); /* cast away const */
#line 912
if(lstatus != NC_NOERR)
#line 912
return lstatus;
#line 912
#line 912
lstatus = ncx_getn_uchar_uchar(&xp, nget, value);
#line 912
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 912
status = lstatus;
#line 912
#line 912
(void) ncio_rel(ncp->nciop, offset, 0);
#line 912
#line 912
remaining -= extent;
#line 912
if(remaining == 0)
#line 912
break; /* normal loop exit */
#line 912
offset += (off_t)extent;
#line 912
value += nget;
#line 912
}
#line 912
#line 912
return status;
#line 912
}
#line 912
static int
#line 913
getNCvx_uchar_short(const NC3_INFO* ncp, const NC_var *varp,
#line 913
const size_t *start, size_t nelems, short *value)
#line 913
{
#line 913
off_t offset = NC_varoffset(ncp, varp, start);
#line 913
size_t remaining = varp->xsz * nelems;
#line 913
int status = NC_NOERR;
#line 913
const void *xp;
#line 913
#line 913
if(nelems == 0)
#line 913
return NC_NOERR;
#line 913
#line 913
assert(value != NULL);
#line 913
#line 913
for(;;)
#line 913
{
#line 913
size_t extent = MIN(remaining, ncp->chunk);
#line 913
size_t nget = ncx_howmany(varp->type, extent);
#line 913
#line 913
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 913
0, (void **)&xp); /* cast away const */
#line 913
if(lstatus != NC_NOERR)
#line 913
return lstatus;
#line 913
#line 913
lstatus = ncx_getn_uchar_short(&xp, nget, value);
#line 913
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 913
status = lstatus;
#line 913
#line 913
(void) ncio_rel(ncp->nciop, offset, 0);
#line 913
#line 913
remaining -= extent;
#line 913
if(remaining == 0)
#line 913
break; /* normal loop exit */
#line 913
offset += (off_t)extent;
#line 913
value += nget;
#line 913
}
#line 913
#line 913
return status;
#line 913
}
#line 913
static int
#line 914
getNCvx_uchar_int(const NC3_INFO* ncp, const NC_var *varp,
#line 914
const size_t *start, size_t nelems, int *value)
#line 914
{
#line 914
off_t offset = NC_varoffset(ncp, varp, start);
#line 914
size_t remaining = varp->xsz * nelems;
#line 914
int status = NC_NOERR;
#line 914
const void *xp;
#line 914
#line 914
if(nelems == 0)
#line 914
return NC_NOERR;
#line 914
#line 914
assert(value != NULL);
#line 914
#line 914
for(;;)
#line 914
{
#line 914
size_t extent = MIN(remaining, ncp->chunk);
#line 914
size_t nget = ncx_howmany(varp->type, extent);
#line 914
#line 914
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 914
0, (void **)&xp); /* cast away const */
#line 914
if(lstatus != NC_NOERR)
#line 914
return lstatus;
#line 914
#line 914
lstatus = ncx_getn_uchar_int(&xp, nget, value);
#line 914
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 914
status = lstatus;
#line 914
#line 914
(void) ncio_rel(ncp->nciop, offset, 0);
#line 914
#line 914
remaining -= extent;
#line 914
if(remaining == 0)
#line 914
break; /* normal loop exit */
#line 914
offset += (off_t)extent;
#line 914
value += nget;
#line 914
}
#line 914
#line 914
return status;
#line 914
}
#line 914
static int
#line 915
getNCvx_uchar_float(const NC3_INFO* ncp, const NC_var *varp,
#line 915
const size_t *start, size_t nelems, float *value)
#line 915
{
#line 915
off_t offset = NC_varoffset(ncp, varp, start);
#line 915
size_t remaining = varp->xsz * nelems;
#line 915
int status = NC_NOERR;
#line 915
const void *xp;
#line 915
#line 915
if(nelems == 0)
#line 915
return NC_NOERR;
#line 915
#line 915
assert(value != NULL);
#line 915
#line 915
for(;;)
#line 915
{
#line 915
size_t extent = MIN(remaining, ncp->chunk);
#line 915
size_t nget = ncx_howmany(varp->type, extent);
#line 915
#line 915
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 915
0, (void **)&xp); /* cast away const */
#line 915
if(lstatus != NC_NOERR)
#line 915
return lstatus;
#line 915
#line 915
lstatus = ncx_getn_uchar_float(&xp, nget, value);
#line 915
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 915
status = lstatus;
#line 915
#line 915
(void) ncio_rel(ncp->nciop, offset, 0);
#line 915
#line 915
remaining -= extent;
#line 915
if(remaining == 0)
#line 915
break; /* normal loop exit */
#line 915
offset += (off_t)extent;
#line 915
value += nget;
#line 915
}
#line 915
#line 915
return status;
#line 915
}
#line 915
static int
#line 916
getNCvx_uchar_double(const NC3_INFO* ncp, const NC_var *varp,
#line 916
const size_t *start, size_t nelems, double *value)
#line 916
{
#line 916
off_t offset = NC_varoffset(ncp, varp, start);
#line 916
size_t remaining = varp->xsz * nelems;
#line 916
int status = NC_NOERR;
#line 916
const void *xp;
#line 916
#line 916
if(nelems == 0)
#line 916
return NC_NOERR;
#line 916
#line 916
assert(value != NULL);
#line 916
#line 916
for(;;)
#line 916
{
#line 916
size_t extent = MIN(remaining, ncp->chunk);
#line 916
size_t nget = ncx_howmany(varp->type, extent);
#line 916
#line 916
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 916
0, (void **)&xp); /* cast away const */
#line 916
if(lstatus != NC_NOERR)
#line 916
return lstatus;
#line 916
#line 916
lstatus = ncx_getn_uchar_double(&xp, nget, value);
#line 916
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 916
status = lstatus;
#line 916
#line 916
(void) ncio_rel(ncp->nciop, offset, 0);
#line 916
#line 916
remaining -= extent;
#line 916
if(remaining == 0)
#line 916
break; /* normal loop exit */
#line 916
offset += (off_t)extent;
#line 916
value += nget;
#line 916
}
#line 916
#line 916
return status;
#line 916
}
#line 916
static int
#line 917
getNCvx_uchar_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 917
const size_t *start, size_t nelems, longlong *value)
#line 917
{
#line 917
off_t offset = NC_varoffset(ncp, varp, start);
#line 917
size_t remaining = varp->xsz * nelems;
#line 917
int status = NC_NOERR;
#line 917
const void *xp;
#line 917
#line 917
if(nelems == 0)
#line 917
return NC_NOERR;
#line 917
#line 917
assert(value != NULL);
#line 917
#line 917
for(;;)
#line 917
{
#line 917
size_t extent = MIN(remaining, ncp->chunk);
#line 917
size_t nget = ncx_howmany(varp->type, extent);
#line 917
#line 917
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 917
0, (void **)&xp); /* cast away const */
#line 917
if(lstatus != NC_NOERR)
#line 917
return lstatus;
#line 917
#line 917
lstatus = ncx_getn_uchar_longlong(&xp, nget, value);
#line 917
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 917
status = lstatus;
#line 917
#line 917
(void) ncio_rel(ncp->nciop, offset, 0);
#line 917
#line 917
remaining -= extent;
#line 917
if(remaining == 0)
#line 917
break; /* normal loop exit */
#line 917
offset += (off_t)extent;
#line 917
value += nget;
#line 917
}
#line 917
#line 917
return status;
#line 917
}
#line 917
static int
#line 918
getNCvx_uchar_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 918
const size_t *start, size_t nelems, uint *value)
#line 918
{
#line 918
off_t offset = NC_varoffset(ncp, varp, start);
#line 918
size_t remaining = varp->xsz * nelems;
#line 918
int status = NC_NOERR;
#line 918
const void *xp;
#line 918
#line 918
if(nelems == 0)
#line 918
return NC_NOERR;
#line 918
#line 918
assert(value != NULL);
#line 918
#line 918
for(;;)
#line 918
{
#line 918
size_t extent = MIN(remaining, ncp->chunk);
#line 918
size_t nget = ncx_howmany(varp->type, extent);
#line 918
#line 918
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 918
0, (void **)&xp); /* cast away const */
#line 918
if(lstatus != NC_NOERR)
#line 918
return lstatus;
#line 918
#line 918
lstatus = ncx_getn_uchar_uint(&xp, nget, value);
#line 918
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 918
status = lstatus;
#line 918
#line 918
(void) ncio_rel(ncp->nciop, offset, 0);
#line 918
#line 918
remaining -= extent;
#line 918
if(remaining == 0)
#line 918
break; /* normal loop exit */
#line 918
offset += (off_t)extent;
#line 918
value += nget;
#line 918
}
#line 918
#line 918
return status;
#line 918
}
#line 918
static int
#line 919
getNCvx_uchar_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 919
const size_t *start, size_t nelems, ulonglong *value)
#line 919
{
#line 919
off_t offset = NC_varoffset(ncp, varp, start);
#line 919
size_t remaining = varp->xsz * nelems;
#line 919
int status = NC_NOERR;
#line 919
const void *xp;
#line 919
#line 919
if(nelems == 0)
#line 919
return NC_NOERR;
#line 919
#line 919
assert(value != NULL);
#line 919
#line 919
for(;;)
#line 919
{
#line 919
size_t extent = MIN(remaining, ncp->chunk);
#line 919
size_t nget = ncx_howmany(varp->type, extent);
#line 919
#line 919
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 919
0, (void **)&xp); /* cast away const */
#line 919
if(lstatus != NC_NOERR)
#line 919
return lstatus;
#line 919
#line 919
lstatus = ncx_getn_uchar_ulonglong(&xp, nget, value);
#line 919
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 919
status = lstatus;
#line 919
#line 919
(void) ncio_rel(ncp->nciop, offset, 0);
#line 919
#line 919
remaining -= extent;
#line 919
if(remaining == 0)
#line 919
break; /* normal loop exit */
#line 919
offset += (off_t)extent;
#line 919
value += nget;
#line 919
}
#line 919
#line 919
return status;
#line 919
}
#line 919
static int
#line 920
getNCvx_uchar_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 920
const size_t *start, size_t nelems, ushort *value)
#line 920
{
#line 920
off_t offset = NC_varoffset(ncp, varp, start);
#line 920
size_t remaining = varp->xsz * nelems;
#line 920
int status = NC_NOERR;
#line 920
const void *xp;
#line 920
#line 920
if(nelems == 0)
#line 920
return NC_NOERR;
#line 920
#line 920
assert(value != NULL);
#line 920
#line 920
for(;;)
#line 920
{
#line 920
size_t extent = MIN(remaining, ncp->chunk);
#line 920
size_t nget = ncx_howmany(varp->type, extent);
#line 920
#line 920
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 920
0, (void **)&xp); /* cast away const */
#line 920
if(lstatus != NC_NOERR)
#line 920
return lstatus;
#line 920
#line 920
lstatus = ncx_getn_uchar_ushort(&xp, nget, value);
#line 920
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 920
status = lstatus;
#line 920
#line 920
(void) ncio_rel(ncp->nciop, offset, 0);
#line 920
#line 920
remaining -= extent;
#line 920
if(remaining == 0)
#line 920
break; /* normal loop exit */
#line 920
offset += (off_t)extent;
#line 920
value += nget;
#line 920
}
#line 920
#line 920
return status;
#line 920
}
#line 920
static int
#line 922
getNCvx_ushort_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 922
const size_t *start, size_t nelems, schar *value)
#line 922
{
#line 922
off_t offset = NC_varoffset(ncp, varp, start);
#line 922
size_t remaining = varp->xsz * nelems;
#line 922
int status = NC_NOERR;
#line 922
const void *xp;
#line 922
#line 922
if(nelems == 0)
#line 922
return NC_NOERR;
#line 922
#line 922
assert(value != NULL);
#line 922
#line 922
for(;;)
#line 922
{
#line 922
size_t extent = MIN(remaining, ncp->chunk);
#line 922
size_t nget = ncx_howmany(varp->type, extent);
#line 922
#line 922
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 922
0, (void **)&xp); /* cast away const */
#line 922
if(lstatus != NC_NOERR)
#line 922
return lstatus;
#line 922
#line 922
lstatus = ncx_getn_ushort_schar(&xp, nget, value);
#line 922
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 922
status = lstatus;
#line 922
#line 922
(void) ncio_rel(ncp->nciop, offset, 0);
#line 922
#line 922
remaining -= extent;
#line 922
if(remaining == 0)
#line 922
break; /* normal loop exit */
#line 922
offset += (off_t)extent;
#line 922
value += nget;
#line 922
}
#line 922
#line 922
return status;
#line 922
}
#line 922
static int
#line 923
getNCvx_ushort_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 923
const size_t *start, size_t nelems, uchar *value)
#line 923
{
#line 923
off_t offset = NC_varoffset(ncp, varp, start);
#line 923
size_t remaining = varp->xsz * nelems;
#line 923
int status = NC_NOERR;
#line 923
const void *xp;
#line 923
#line 923
if(nelems == 0)
#line 923
return NC_NOERR;
#line 923
#line 923
assert(value != NULL);
#line 923
#line 923
for(;;)
#line 923
{
#line 923
size_t extent = MIN(remaining, ncp->chunk);
#line 923
size_t nget = ncx_howmany(varp->type, extent);
#line 923
#line 923
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 923
0, (void **)&xp); /* cast away const */
#line 923
if(lstatus != NC_NOERR)
#line 923
return lstatus;
#line 923
#line 923
lstatus = ncx_getn_ushort_uchar(&xp, nget, value);
#line 923
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 923
status = lstatus;
#line 923
#line 923
(void) ncio_rel(ncp->nciop, offset, 0);
#line 923
#line 923
remaining -= extent;
#line 923
if(remaining == 0)
#line 923
break; /* normal loop exit */
#line 923
offset += (off_t)extent;
#line 923
value += nget;
#line 923
}
#line 923
#line 923
return status;
#line 923
}
#line 923
static int
#line 924
getNCvx_ushort_short(const NC3_INFO* ncp, const NC_var *varp,
#line 924
const size_t *start, size_t nelems, short *value)
#line 924
{
#line 924
off_t offset = NC_varoffset(ncp, varp, start);
#line 924
size_t remaining = varp->xsz * nelems;
#line 924
int status = NC_NOERR;
#line 924
const void *xp;
#line 924
#line 924
if(nelems == 0)
#line 924
return NC_NOERR;
#line 924
#line 924
assert(value != NULL);
#line 924
#line 924
for(;;)
#line 924
{
#line 924
size_t extent = MIN(remaining, ncp->chunk);
#line 924
size_t nget = ncx_howmany(varp->type, extent);
#line 924
#line 924
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 924
0, (void **)&xp); /* cast away const */
#line 924
if(lstatus != NC_NOERR)
#line 924
return lstatus;
#line 924
#line 924
lstatus = ncx_getn_ushort_short(&xp, nget, value);
#line 924
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 924
status = lstatus;
#line 924
#line 924
(void) ncio_rel(ncp->nciop, offset, 0);
#line 924
#line 924
remaining -= extent;
#line 924
if(remaining == 0)
#line 924
break; /* normal loop exit */
#line 924
offset += (off_t)extent;
#line 924
value += nget;
#line 924
}
#line 924
#line 924
return status;
#line 924
}
#line 924
static int
#line 925
getNCvx_ushort_int(const NC3_INFO* ncp, const NC_var *varp,
#line 925
const size_t *start, size_t nelems, int *value)
#line 925
{
#line 925
off_t offset = NC_varoffset(ncp, varp, start);
#line 925
size_t remaining = varp->xsz * nelems;
#line 925
int status = NC_NOERR;
#line 925
const void *xp;
#line 925
#line 925
if(nelems == 0)
#line 925
return NC_NOERR;
#line 925
#line 925
assert(value != NULL);
#line 925
#line 925
for(;;)
#line 925
{
#line 925
size_t extent = MIN(remaining, ncp->chunk);
#line 925
size_t nget = ncx_howmany(varp->type, extent);
#line 925
#line 925
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 925
0, (void **)&xp); /* cast away const */
#line 925
if(lstatus != NC_NOERR)
#line 925
return lstatus;
#line 925
#line 925
lstatus = ncx_getn_ushort_int(&xp, nget, value);
#line 925
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 925
status = lstatus;
#line 925
#line 925
(void) ncio_rel(ncp->nciop, offset, 0);
#line 925
#line 925
remaining -= extent;
#line 925
if(remaining == 0)
#line 925
break; /* normal loop exit */
#line 925
offset += (off_t)extent;
#line 925
value += nget;
#line 925
}
#line 925
#line 925
return status;
#line 925
}
#line 925
static int
#line 926
getNCvx_ushort_float(const NC3_INFO* ncp, const NC_var *varp,
#line 926
const size_t *start, size_t nelems, float *value)
#line 926
{
#line 926
off_t offset = NC_varoffset(ncp, varp, start);
#line 926
size_t remaining = varp->xsz * nelems;
#line 926
int status = NC_NOERR;
#line 926
const void *xp;
#line 926
#line 926
if(nelems == 0)
#line 926
return NC_NOERR;
#line 926
#line 926
assert(value != NULL);
#line 926
#line 926
for(;;)
#line 926
{
#line 926
size_t extent = MIN(remaining, ncp->chunk);
#line 926
size_t nget = ncx_howmany(varp->type, extent);
#line 926
#line 926
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 926
0, (void **)&xp); /* cast away const */
#line 926
if(lstatus != NC_NOERR)
#line 926
return lstatus;
#line 926
#line 926
lstatus = ncx_getn_ushort_float(&xp, nget, value);
#line 926
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 926
status = lstatus;
#line 926
#line 926
(void) ncio_rel(ncp->nciop, offset, 0);
#line 926
#line 926
remaining -= extent;
#line 926
if(remaining == 0)
#line 926
break; /* normal loop exit */
#line 926
offset += (off_t)extent;
#line 926
value += nget;
#line 926
}
#line 926
#line 926
return status;
#line 926
}
#line 926
static int
#line 927
getNCvx_ushort_double(const NC3_INFO* ncp, const NC_var *varp,
#line 927
const size_t *start, size_t nelems, double *value)
#line 927
{
#line 927
off_t offset = NC_varoffset(ncp, varp, start);
#line 927
size_t remaining = varp->xsz * nelems;
#line 927
int status = NC_NOERR;
#line 927
const void *xp;
#line 927
#line 927
if(nelems == 0)
#line 927
return NC_NOERR;
#line 927
#line 927
assert(value != NULL);
#line 927
#line 927
for(;;)
#line 927
{
#line 927
size_t extent = MIN(remaining, ncp->chunk);
#line 927
size_t nget = ncx_howmany(varp->type, extent);
#line 927
#line 927
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 927
0, (void **)&xp); /* cast away const */
#line 927
if(lstatus != NC_NOERR)
#line 927
return lstatus;
#line 927
#line 927
lstatus = ncx_getn_ushort_double(&xp, nget, value);
#line 927
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 927
status = lstatus;
#line 927
#line 927
(void) ncio_rel(ncp->nciop, offset, 0);
#line 927
#line 927
remaining -= extent;
#line 927
if(remaining == 0)
#line 927
break; /* normal loop exit */
#line 927
offset += (off_t)extent;
#line 927
value += nget;
#line 927
}
#line 927
#line 927
return status;
#line 927
}
#line 927
static int
#line 928
getNCvx_ushort_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 928
const size_t *start, size_t nelems, longlong *value)
#line 928
{
#line 928
off_t offset = NC_varoffset(ncp, varp, start);
#line 928
size_t remaining = varp->xsz * nelems;
#line 928
int status = NC_NOERR;
#line 928
const void *xp;
#line 928
#line 928
if(nelems == 0)
#line 928
return NC_NOERR;
#line 928
#line 928
assert(value != NULL);
#line 928
#line 928
for(;;)
#line 928
{
#line 928
size_t extent = MIN(remaining, ncp->chunk);
#line 928
size_t nget = ncx_howmany(varp->type, extent);
#line 928
#line 928
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 928
0, (void **)&xp); /* cast away const */
#line 928
if(lstatus != NC_NOERR)
#line 928
return lstatus;
#line 928
#line 928
lstatus = ncx_getn_ushort_longlong(&xp, nget, value);
#line 928
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 928
status = lstatus;
#line 928
#line 928
(void) ncio_rel(ncp->nciop, offset, 0);
#line 928
#line 928
remaining -= extent;
#line 928
if(remaining == 0)
#line 928
break; /* normal loop exit */
#line 928
offset += (off_t)extent;
#line 928
value += nget;
#line 928
}
#line 928
#line 928
return status;
#line 928
}
#line 928
static int
#line 929
getNCvx_ushort_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 929
const size_t *start, size_t nelems, uint *value)
#line 929
{
#line 929
off_t offset = NC_varoffset(ncp, varp, start);
#line 929
size_t remaining = varp->xsz * nelems;
#line 929
int status = NC_NOERR;
#line 929
const void *xp;
#line 929
#line 929
if(nelems == 0)
#line 929
return NC_NOERR;
#line 929
#line 929
assert(value != NULL);
#line 929
#line 929
for(;;)
#line 929
{
#line 929
size_t extent = MIN(remaining, ncp->chunk);
#line 929
size_t nget = ncx_howmany(varp->type, extent);
#line 929
#line 929
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 929
0, (void **)&xp); /* cast away const */
#line 929
if(lstatus != NC_NOERR)
#line 929
return lstatus;
#line 929
#line 929
lstatus = ncx_getn_ushort_uint(&xp, nget, value);
#line 929
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 929
status = lstatus;
#line 929
#line 929
(void) ncio_rel(ncp->nciop, offset, 0);
#line 929
#line 929
remaining -= extent;
#line 929
if(remaining == 0)
#line 929
break; /* normal loop exit */
#line 929
offset += (off_t)extent;
#line 929
value += nget;
#line 929
}
#line 929
#line 929
return status;
#line 929
}
#line 929
static int
#line 930
getNCvx_ushort_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 930
const size_t *start, size_t nelems, ulonglong *value)
#line 930
{
#line 930
off_t offset = NC_varoffset(ncp, varp, start);
#line 930
size_t remaining = varp->xsz * nelems;
#line 930
int status = NC_NOERR;
#line 930
const void *xp;
#line 930
#line 930
if(nelems == 0)
#line 930
return NC_NOERR;
#line 930
#line 930
assert(value != NULL);
#line 930
#line 930
for(;;)
#line 930
{
#line 930
size_t extent = MIN(remaining, ncp->chunk);
#line 930
size_t nget = ncx_howmany(varp->type, extent);
#line 930
#line 930
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 930
0, (void **)&xp); /* cast away const */
#line 930
if(lstatus != NC_NOERR)
#line 930
return lstatus;
#line 930
#line 930
lstatus = ncx_getn_ushort_ulonglong(&xp, nget, value);
#line 930
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 930
status = lstatus;
#line 930
#line 930
(void) ncio_rel(ncp->nciop, offset, 0);
#line 930
#line 930
remaining -= extent;
#line 930
if(remaining == 0)
#line 930
break; /* normal loop exit */
#line 930
offset += (off_t)extent;
#line 930
value += nget;
#line 930
}
#line 930
#line 930
return status;
#line 930
}
#line 930
static int
#line 931
getNCvx_ushort_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 931
const size_t *start, size_t nelems, ushort *value)
#line 931
{
#line 931
off_t offset = NC_varoffset(ncp, varp, start);
#line 931
size_t remaining = varp->xsz * nelems;
#line 931
int status = NC_NOERR;
#line 931
const void *xp;
#line 931
#line 931
if(nelems == 0)
#line 931
return NC_NOERR;
#line 931
#line 931
assert(value != NULL);
#line 931
#line 931
for(;;)
#line 931
{
#line 931
size_t extent = MIN(remaining, ncp->chunk);
#line 931
size_t nget = ncx_howmany(varp->type, extent);
#line 931
#line 931
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 931
0, (void **)&xp); /* cast away const */
#line 931
if(lstatus != NC_NOERR)
#line 931
return lstatus;
#line 931
#line 931
lstatus = ncx_getn_ushort_ushort(&xp, nget, value);
#line 931
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 931
status = lstatus;
#line 931
#line 931
(void) ncio_rel(ncp->nciop, offset, 0);
#line 931
#line 931
remaining -= extent;
#line 931
if(remaining == 0)
#line 931
break; /* normal loop exit */
#line 931
offset += (off_t)extent;
#line 931
value += nget;
#line 931
}
#line 931
#line 931
return status;
#line 931
}
#line 931
static int
#line 933
getNCvx_uint_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 933
const size_t *start, size_t nelems, schar *value)
#line 933
{
#line 933
off_t offset = NC_varoffset(ncp, varp, start);
#line 933
size_t remaining = varp->xsz * nelems;
#line 933
int status = NC_NOERR;
#line 933
const void *xp;
#line 933
#line 933
if(nelems == 0)
#line 933
return NC_NOERR;
#line 933
#line 933
assert(value != NULL);
#line 933
#line 933
for(;;)
#line 933
{
#line 933
size_t extent = MIN(remaining, ncp->chunk);
#line 933
size_t nget = ncx_howmany(varp->type, extent);
#line 933
#line 933
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 933
0, (void **)&xp); /* cast away const */
#line 933
if(lstatus != NC_NOERR)
#line 933
return lstatus;
#line 933
#line 933
lstatus = ncx_getn_uint_schar(&xp, nget, value);
#line 933
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 933
status = lstatus;
#line 933
#line 933
(void) ncio_rel(ncp->nciop, offset, 0);
#line 933
#line 933
remaining -= extent;
#line 933
if(remaining == 0)
#line 933
break; /* normal loop exit */
#line 933
offset += (off_t)extent;
#line 933
value += nget;
#line 933
}
#line 933
#line 933
return status;
#line 933
}
#line 933
static int
#line 934
getNCvx_uint_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 934
const size_t *start, size_t nelems, uchar *value)
#line 934
{
#line 934
off_t offset = NC_varoffset(ncp, varp, start);
#line 934
size_t remaining = varp->xsz * nelems;
#line 934
int status = NC_NOERR;
#line 934
const void *xp;
#line 934
#line 934
if(nelems == 0)
#line 934
return NC_NOERR;
#line 934
#line 934
assert(value != NULL);
#line 934
#line 934
for(;;)
#line 934
{
#line 934
size_t extent = MIN(remaining, ncp->chunk);
#line 934
size_t nget = ncx_howmany(varp->type, extent);
#line 934
#line 934
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 934
0, (void **)&xp); /* cast away const */
#line 934
if(lstatus != NC_NOERR)
#line 934
return lstatus;
#line 934
#line 934
lstatus = ncx_getn_uint_uchar(&xp, nget, value);
#line 934
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 934
status = lstatus;
#line 934
#line 934
(void) ncio_rel(ncp->nciop, offset, 0);
#line 934
#line 934
remaining -= extent;
#line 934
if(remaining == 0)
#line 934
break; /* normal loop exit */
#line 934
offset += (off_t)extent;
#line 934
value += nget;
#line 934
}
#line 934
#line 934
return status;
#line 934
}
#line 934
static int
#line 935
getNCvx_uint_short(const NC3_INFO* ncp, const NC_var *varp,
#line 935
const size_t *start, size_t nelems, short *value)
#line 935
{
#line 935
off_t offset = NC_varoffset(ncp, varp, start);
#line 935
size_t remaining = varp->xsz * nelems;
#line 935
int status = NC_NOERR;
#line 935
const void *xp;
#line 935
#line 935
if(nelems == 0)
#line 935
return NC_NOERR;
#line 935
#line 935
assert(value != NULL);
#line 935
#line 935
for(;;)
#line 935
{
#line 935
size_t extent = MIN(remaining, ncp->chunk);
#line 935
size_t nget = ncx_howmany(varp->type, extent);
#line 935
#line 935
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 935
0, (void **)&xp); /* cast away const */
#line 935
if(lstatus != NC_NOERR)
#line 935
return lstatus;
#line 935
#line 935
lstatus = ncx_getn_uint_short(&xp, nget, value);
#line 935
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 935
status = lstatus;
#line 935
#line 935
(void) ncio_rel(ncp->nciop, offset, 0);
#line 935
#line 935
remaining -= extent;
#line 935
if(remaining == 0)
#line 935
break; /* normal loop exit */
#line 935
offset += (off_t)extent;
#line 935
value += nget;
#line 935
}
#line 935
#line 935
return status;
#line 935
}
#line 935
static int
#line 936
getNCvx_uint_int(const NC3_INFO* ncp, const NC_var *varp,
#line 936
const size_t *start, size_t nelems, int *value)
#line 936
{
#line 936
off_t offset = NC_varoffset(ncp, varp, start);
#line 936
size_t remaining = varp->xsz * nelems;
#line 936
int status = NC_NOERR;
#line 936
const void *xp;
#line 936
#line 936
if(nelems == 0)
#line 936
return NC_NOERR;
#line 936
#line 936
assert(value != NULL);
#line 936
#line 936
for(;;)
#line 936
{
#line 936
size_t extent = MIN(remaining, ncp->chunk);
#line 936
size_t nget = ncx_howmany(varp->type, extent);
#line 936
#line 936
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 936
0, (void **)&xp); /* cast away const */
#line 936
if(lstatus != NC_NOERR)
#line 936
return lstatus;
#line 936
#line 936
lstatus = ncx_getn_uint_int(&xp, nget, value);
#line 936
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 936
status = lstatus;
#line 936
#line 936
(void) ncio_rel(ncp->nciop, offset, 0);
#line 936
#line 936
remaining -= extent;
#line 936
if(remaining == 0)
#line 936
break; /* normal loop exit */
#line 936
offset += (off_t)extent;
#line 936
value += nget;
#line 936
}
#line 936
#line 936
return status;
#line 936
}
#line 936
static int
#line 937
getNCvx_uint_float(const NC3_INFO* ncp, const NC_var *varp,
#line 937
const size_t *start, size_t nelems, float *value)
#line 937
{
#line 937
off_t offset = NC_varoffset(ncp, varp, start);
#line 937
size_t remaining = varp->xsz * nelems;
#line 937
int status = NC_NOERR;
#line 937
const void *xp;
#line 937
#line 937
if(nelems == 0)
#line 937
return NC_NOERR;
#line 937
#line 937
assert(value != NULL);
#line 937
#line 937
for(;;)
#line 937
{
#line 937
size_t extent = MIN(remaining, ncp->chunk);
#line 937
size_t nget = ncx_howmany(varp->type, extent);
#line 937
#line 937
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 937
0, (void **)&xp); /* cast away const */
#line 937
if(lstatus != NC_NOERR)
#line 937
return lstatus;
#line 937
#line 937
lstatus = ncx_getn_uint_float(&xp, nget, value);
#line 937
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 937
status = lstatus;
#line 937
#line 937
(void) ncio_rel(ncp->nciop, offset, 0);
#line 937
#line 937
remaining -= extent;
#line 937
if(remaining == 0)
#line 937
break; /* normal loop exit */
#line 937
offset += (off_t)extent;
#line 937
value += nget;
#line 937
}
#line 937
#line 937
return status;
#line 937
}
#line 937
static int
#line 938
getNCvx_uint_double(const NC3_INFO* ncp, const NC_var *varp,
#line 938
const size_t *start, size_t nelems, double *value)
#line 938
{
#line 938
off_t offset = NC_varoffset(ncp, varp, start);
#line 938
size_t remaining = varp->xsz * nelems;
#line 938
int status = NC_NOERR;
#line 938
const void *xp;
#line 938
#line 938
if(nelems == 0)
#line 938
return NC_NOERR;
#line 938
#line 938
assert(value != NULL);
#line 938
#line 938
for(;;)
#line 938
{
#line 938
size_t extent = MIN(remaining, ncp->chunk);
#line 938
size_t nget = ncx_howmany(varp->type, extent);
#line 938
#line 938
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 938
0, (void **)&xp); /* cast away const */
#line 938
if(lstatus != NC_NOERR)
#line 938
return lstatus;
#line 938
#line 938
lstatus = ncx_getn_uint_double(&xp, nget, value);
#line 938
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 938
status = lstatus;
#line 938
#line 938
(void) ncio_rel(ncp->nciop, offset, 0);
#line 938
#line 938
remaining -= extent;
#line 938
if(remaining == 0)
#line 938
break; /* normal loop exit */
#line 938
offset += (off_t)extent;
#line 938
value += nget;
#line 938
}
#line 938
#line 938
return status;
#line 938
}
#line 938
static int
#line 939
getNCvx_uint_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 939
const size_t *start, size_t nelems, longlong *value)
#line 939
{
#line 939
off_t offset = NC_varoffset(ncp, varp, start);
#line 939
size_t remaining = varp->xsz * nelems;
#line 939
int status = NC_NOERR;
#line 939
const void *xp;
#line 939
#line 939
if(nelems == 0)
#line 939
return NC_NOERR;
#line 939
#line 939
assert(value != NULL);
#line 939
#line 939
for(;;)
#line 939
{
#line 939
size_t extent = MIN(remaining, ncp->chunk);
#line 939
size_t nget = ncx_howmany(varp->type, extent);
#line 939
#line 939
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 939
0, (void **)&xp); /* cast away const */
#line 939
if(lstatus != NC_NOERR)
#line 939
return lstatus;
#line 939
#line 939
lstatus = ncx_getn_uint_longlong(&xp, nget, value);
#line 939
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 939
status = lstatus;
#line 939
#line 939
(void) ncio_rel(ncp->nciop, offset, 0);
#line 939
#line 939
remaining -= extent;
#line 939
if(remaining == 0)
#line 939
break; /* normal loop exit */
#line 939
offset += (off_t)extent;
#line 939
value += nget;
#line 939
}
#line 939
#line 939
return status;
#line 939
}
#line 939
static int
#line 940
getNCvx_uint_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 940
const size_t *start, size_t nelems, uint *value)
#line 940
{
#line 940
off_t offset = NC_varoffset(ncp, varp, start);
#line 940
size_t remaining = varp->xsz * nelems;
#line 940
int status = NC_NOERR;
#line 940
const void *xp;
#line 940
#line 940
if(nelems == 0)
#line 940
return NC_NOERR;
#line 940
#line 940
assert(value != NULL);
#line 940
#line 940
for(;;)
#line 940
{
#line 940
size_t extent = MIN(remaining, ncp->chunk);
#line 940
size_t nget = ncx_howmany(varp->type, extent);
#line 940
#line 940
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 940
0, (void **)&xp); /* cast away const */
#line 940
if(lstatus != NC_NOERR)
#line 940
return lstatus;
#line 940
#line 940
lstatus = ncx_getn_uint_uint(&xp, nget, value);
#line 940
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 940
status = lstatus;
#line 940
#line 940
(void) ncio_rel(ncp->nciop, offset, 0);
#line 940
#line 940
remaining -= extent;
#line 940
if(remaining == 0)
#line 940
break; /* normal loop exit */
#line 940
offset += (off_t)extent;
#line 940
value += nget;
#line 940
}
#line 940
#line 940
return status;
#line 940
}
#line 940
static int
#line 941
getNCvx_uint_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 941
const size_t *start, size_t nelems, ulonglong *value)
#line 941
{
#line 941
off_t offset = NC_varoffset(ncp, varp, start);
#line 941
size_t remaining = varp->xsz * nelems;
#line 941
int status = NC_NOERR;
#line 941
const void *xp;
#line 941
#line 941
if(nelems == 0)
#line 941
return NC_NOERR;
#line 941
#line 941
assert(value != NULL);
#line 941
#line 941
for(;;)
#line 941
{
#line 941
size_t extent = MIN(remaining, ncp->chunk);
#line 941
size_t nget = ncx_howmany(varp->type, extent);
#line 941
#line 941
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 941
0, (void **)&xp); /* cast away const */
#line 941
if(lstatus != NC_NOERR)
#line 941
return lstatus;
#line 941
#line 941
lstatus = ncx_getn_uint_ulonglong(&xp, nget, value);
#line 941
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 941
status = lstatus;
#line 941
#line 941
(void) ncio_rel(ncp->nciop, offset, 0);
#line 941
#line 941
remaining -= extent;
#line 941
if(remaining == 0)
#line 941
break; /* normal loop exit */
#line 941
offset += (off_t)extent;
#line 941
value += nget;
#line 941
}
#line 941
#line 941
return status;
#line 941
}
#line 941
static int
#line 942
getNCvx_uint_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 942
const size_t *start, size_t nelems, ushort *value)
#line 942
{
#line 942
off_t offset = NC_varoffset(ncp, varp, start);
#line 942
size_t remaining = varp->xsz * nelems;
#line 942
int status = NC_NOERR;
#line 942
const void *xp;
#line 942
#line 942
if(nelems == 0)
#line 942
return NC_NOERR;
#line 942
#line 942
assert(value != NULL);
#line 942
#line 942
for(;;)
#line 942
{
#line 942
size_t extent = MIN(remaining, ncp->chunk);
#line 942
size_t nget = ncx_howmany(varp->type, extent);
#line 942
#line 942
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 942
0, (void **)&xp); /* cast away const */
#line 942
if(lstatus != NC_NOERR)
#line 942
return lstatus;
#line 942
#line 942
lstatus = ncx_getn_uint_ushort(&xp, nget, value);
#line 942
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 942
status = lstatus;
#line 942
#line 942
(void) ncio_rel(ncp->nciop, offset, 0);
#line 942
#line 942
remaining -= extent;
#line 942
if(remaining == 0)
#line 942
break; /* normal loop exit */
#line 942
offset += (off_t)extent;
#line 942
value += nget;
#line 942
}
#line 942
#line 942
return status;
#line 942
}
#line 942
static int
#line 944
getNCvx_longlong_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 944
const size_t *start, size_t nelems, schar *value)
#line 944
{
#line 944
off_t offset = NC_varoffset(ncp, varp, start);
#line 944
size_t remaining = varp->xsz * nelems;
#line 944
int status = NC_NOERR;
#line 944
const void *xp;
#line 944
#line 944
if(nelems == 0)
#line 944
return NC_NOERR;
#line 944
#line 944
assert(value != NULL);
#line 944
#line 944
for(;;)
#line 944
{
#line 944
size_t extent = MIN(remaining, ncp->chunk);
#line 944
size_t nget = ncx_howmany(varp->type, extent);
#line 944
#line 944
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 944
0, (void **)&xp); /* cast away const */
#line 944
if(lstatus != NC_NOERR)
#line 944
return lstatus;
#line 944
#line 944
lstatus = ncx_getn_longlong_schar(&xp, nget, value);
#line 944
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 944
status = lstatus;
#line 944
#line 944
(void) ncio_rel(ncp->nciop, offset, 0);
#line 944
#line 944
remaining -= extent;
#line 944
if(remaining == 0)
#line 944
break; /* normal loop exit */
#line 944
offset += (off_t)extent;
#line 944
value += nget;
#line 944
}
#line 944
#line 944
return status;
#line 944
}
#line 944
static int
#line 945
getNCvx_longlong_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 945
const size_t *start, size_t nelems, uchar *value)
#line 945
{
#line 945
off_t offset = NC_varoffset(ncp, varp, start);
#line 945
size_t remaining = varp->xsz * nelems;
#line 945
int status = NC_NOERR;
#line 945
const void *xp;
#line 945
#line 945
if(nelems == 0)
#line 945
return NC_NOERR;
#line 945
#line 945
assert(value != NULL);
#line 945
#line 945
for(;;)
#line 945
{
#line 945
size_t extent = MIN(remaining, ncp->chunk);
#line 945
size_t nget = ncx_howmany(varp->type, extent);
#line 945
#line 945
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 945
0, (void **)&xp); /* cast away const */
#line 945
if(lstatus != NC_NOERR)
#line 945
return lstatus;
#line 945
#line 945
lstatus = ncx_getn_longlong_uchar(&xp, nget, value);
#line 945
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 945
status = lstatus;
#line 945
#line 945
(void) ncio_rel(ncp->nciop, offset, 0);
#line 945
#line 945
remaining -= extent;
#line 945
if(remaining == 0)
#line 945
break; /* normal loop exit */
#line 945
offset += (off_t)extent;
#line 945
value += nget;
#line 945
}
#line 945
#line 945
return status;
#line 945
}
#line 945
static int
#line 946
getNCvx_longlong_short(const NC3_INFO* ncp, const NC_var *varp,
#line 946
const size_t *start, size_t nelems, short *value)
#line 946
{
#line 946
off_t offset = NC_varoffset(ncp, varp, start);
#line 946
size_t remaining = varp->xsz * nelems;
#line 946
int status = NC_NOERR;
#line 946
const void *xp;
#line 946
#line 946
if(nelems == 0)
#line 946
return NC_NOERR;
#line 946
#line 946
assert(value != NULL);
#line 946
#line 946
for(;;)
#line 946
{
#line 946
size_t extent = MIN(remaining, ncp->chunk);
#line 946
size_t nget = ncx_howmany(varp->type, extent);
#line 946
#line 946
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 946
0, (void **)&xp); /* cast away const */
#line 946
if(lstatus != NC_NOERR)
#line 946
return lstatus;
#line 946
#line 946
lstatus = ncx_getn_longlong_short(&xp, nget, value);
#line 946
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 946
status = lstatus;
#line 946
#line 946
(void) ncio_rel(ncp->nciop, offset, 0);
#line 946
#line 946
remaining -= extent;
#line 946
if(remaining == 0)
#line 946
break; /* normal loop exit */
#line 946
offset += (off_t)extent;
#line 946
value += nget;
#line 946
}
#line 946
#line 946
return status;
#line 946
}
#line 946
static int
#line 947
getNCvx_longlong_int(const NC3_INFO* ncp, const NC_var *varp,
#line 947
const size_t *start, size_t nelems, int *value)
#line 947
{
#line 947
off_t offset = NC_varoffset(ncp, varp, start);
#line 947
size_t remaining = varp->xsz * nelems;
#line 947
int status = NC_NOERR;
#line 947
const void *xp;
#line 947
#line 947
if(nelems == 0)
#line 947
return NC_NOERR;
#line 947
#line 947
assert(value != NULL);
#line 947
#line 947
for(;;)
#line 947
{
#line 947
size_t extent = MIN(remaining, ncp->chunk);
#line 947
size_t nget = ncx_howmany(varp->type, extent);
#line 947
#line 947
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 947
0, (void **)&xp); /* cast away const */
#line 947
if(lstatus != NC_NOERR)
#line 947
return lstatus;
#line 947
#line 947
lstatus = ncx_getn_longlong_int(&xp, nget, value);
#line 947
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 947
status = lstatus;
#line 947
#line 947
(void) ncio_rel(ncp->nciop, offset, 0);
#line 947
#line 947
remaining -= extent;
#line 947
if(remaining == 0)
#line 947
break; /* normal loop exit */
#line 947
offset += (off_t)extent;
#line 947
value += nget;
#line 947
}
#line 947
#line 947
return status;
#line 947
}
#line 947
static int
#line 948
getNCvx_longlong_float(const NC3_INFO* ncp, const NC_var *varp,
#line 948
const size_t *start, size_t nelems, float *value)
#line 948
{
#line 948
off_t offset = NC_varoffset(ncp, varp, start);
#line 948
size_t remaining = varp->xsz * nelems;
#line 948
int status = NC_NOERR;
#line 948
const void *xp;
#line 948
#line 948
if(nelems == 0)
#line 948
return NC_NOERR;
#line 948
#line 948
assert(value != NULL);
#line 948
#line 948
for(;;)
#line 948
{
#line 948
size_t extent = MIN(remaining, ncp->chunk);
#line 948
size_t nget = ncx_howmany(varp->type, extent);
#line 948
#line 948
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 948
0, (void **)&xp); /* cast away const */
#line 948
if(lstatus != NC_NOERR)
#line 948
return lstatus;
#line 948
#line 948
lstatus = ncx_getn_longlong_float(&xp, nget, value);
#line 948
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 948
status = lstatus;
#line 948
#line 948
(void) ncio_rel(ncp->nciop, offset, 0);
#line 948
#line 948
remaining -= extent;
#line 948
if(remaining == 0)
#line 948
break; /* normal loop exit */
#line 948
offset += (off_t)extent;
#line 948
value += nget;
#line 948
}
#line 948
#line 948
return status;
#line 948
}
#line 948
static int
#line 949
getNCvx_longlong_double(const NC3_INFO* ncp, const NC_var *varp,
#line 949
const size_t *start, size_t nelems, double *value)
#line 949
{
#line 949
off_t offset = NC_varoffset(ncp, varp, start);
#line 949
size_t remaining = varp->xsz * nelems;
#line 949
int status = NC_NOERR;
#line 949
const void *xp;
#line 949
#line 949
if(nelems == 0)
#line 949
return NC_NOERR;
#line 949
#line 949
assert(value != NULL);
#line 949
#line 949
for(;;)
#line 949
{
#line 949
size_t extent = MIN(remaining, ncp->chunk);
#line 949
size_t nget = ncx_howmany(varp->type, extent);
#line 949
#line 949
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 949
0, (void **)&xp); /* cast away const */
#line 949
if(lstatus != NC_NOERR)
#line 949
return lstatus;
#line 949
#line 949
lstatus = ncx_getn_longlong_double(&xp, nget, value);
#line 949
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 949
status = lstatus;
#line 949
#line 949
(void) ncio_rel(ncp->nciop, offset, 0);
#line 949
#line 949
remaining -= extent;
#line 949
if(remaining == 0)
#line 949
break; /* normal loop exit */
#line 949
offset += (off_t)extent;
#line 949
value += nget;
#line 949
}
#line 949
#line 949
return status;
#line 949
}
#line 949
static int
#line 950
getNCvx_longlong_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 950
const size_t *start, size_t nelems, longlong *value)
#line 950
{
#line 950
off_t offset = NC_varoffset(ncp, varp, start);
#line 950
size_t remaining = varp->xsz * nelems;
#line 950
int status = NC_NOERR;
#line 950
const void *xp;
#line 950
#line 950
if(nelems == 0)
#line 950
return NC_NOERR;
#line 950
#line 950
assert(value != NULL);
#line 950
#line 950
for(;;)
#line 950
{
#line 950
size_t extent = MIN(remaining, ncp->chunk);
#line 950
size_t nget = ncx_howmany(varp->type, extent);
#line 950
#line 950
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 950
0, (void **)&xp); /* cast away const */
#line 950
if(lstatus != NC_NOERR)
#line 950
return lstatus;
#line 950
#line 950
lstatus = ncx_getn_longlong_longlong(&xp, nget, value);
#line 950
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 950
status = lstatus;
#line 950
#line 950
(void) ncio_rel(ncp->nciop, offset, 0);
#line 950
#line 950
remaining -= extent;
#line 950
if(remaining == 0)
#line 950
break; /* normal loop exit */
#line 950
offset += (off_t)extent;
#line 950
value += nget;
#line 950
}
#line 950
#line 950
return status;
#line 950
}
#line 950
static int
#line 951
getNCvx_longlong_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 951
const size_t *start, size_t nelems, uint *value)
#line 951
{
#line 951
off_t offset = NC_varoffset(ncp, varp, start);
#line 951
size_t remaining = varp->xsz * nelems;
#line 951
int status = NC_NOERR;
#line 951
const void *xp;
#line 951
#line 951
if(nelems == 0)
#line 951
return NC_NOERR;
#line 951
#line 951
assert(value != NULL);
#line 951
#line 951
for(;;)
#line 951
{
#line 951
size_t extent = MIN(remaining, ncp->chunk);
#line 951
size_t nget = ncx_howmany(varp->type, extent);
#line 951
#line 951
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 951
0, (void **)&xp); /* cast away const */
#line 951
if(lstatus != NC_NOERR)
#line 951
return lstatus;
#line 951
#line 951
lstatus = ncx_getn_longlong_uint(&xp, nget, value);
#line 951
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 951
status = lstatus;
#line 951
#line 951
(void) ncio_rel(ncp->nciop, offset, 0);
#line 951
#line 951
remaining -= extent;
#line 951
if(remaining == 0)
#line 951
break; /* normal loop exit */
#line 951
offset += (off_t)extent;
#line 951
value += nget;
#line 951
}
#line 951
#line 951
return status;
#line 951
}
#line 951
static int
#line 952
getNCvx_longlong_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 952
const size_t *start, size_t nelems, ulonglong *value)
#line 952
{
#line 952
off_t offset = NC_varoffset(ncp, varp, start);
#line 952
size_t remaining = varp->xsz * nelems;
#line 952
int status = NC_NOERR;
#line 952
const void *xp;
#line 952
#line 952
if(nelems == 0)
#line 952
return NC_NOERR;
#line 952
#line 952
assert(value != NULL);
#line 952
#line 952
for(;;)
#line 952
{
#line 952
size_t extent = MIN(remaining, ncp->chunk);
#line 952
size_t nget = ncx_howmany(varp->type, extent);
#line 952
#line 952
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 952
0, (void **)&xp); /* cast away const */
#line 952
if(lstatus != NC_NOERR)
#line 952
return lstatus;
#line 952
#line 952
lstatus = ncx_getn_longlong_ulonglong(&xp, nget, value);
#line 952
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 952
status = lstatus;
#line 952
#line 952
(void) ncio_rel(ncp->nciop, offset, 0);
#line 952
#line 952
remaining -= extent;
#line 952
if(remaining == 0)
#line 952
break; /* normal loop exit */
#line 952
offset += (off_t)extent;
#line 952
value += nget;
#line 952
}
#line 952
#line 952
return status;
#line 952
}
#line 952
static int
#line 953
getNCvx_longlong_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 953
const size_t *start, size_t nelems, ushort *value)
#line 953
{
#line 953
off_t offset = NC_varoffset(ncp, varp, start);
#line 953
size_t remaining = varp->xsz * nelems;
#line 953
int status = NC_NOERR;
#line 953
const void *xp;
#line 953
#line 953
if(nelems == 0)
#line 953
return NC_NOERR;
#line 953
#line 953
assert(value != NULL);
#line 953
#line 953
for(;;)
#line 953
{
#line 953
size_t extent = MIN(remaining, ncp->chunk);
#line 953
size_t nget = ncx_howmany(varp->type, extent);
#line 953
#line 953
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 953
0, (void **)&xp); /* cast away const */
#line 953
if(lstatus != NC_NOERR)
#line 953
return lstatus;
#line 953
#line 953
lstatus = ncx_getn_longlong_ushort(&xp, nget, value);
#line 953
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 953
status = lstatus;
#line 953
#line 953
(void) ncio_rel(ncp->nciop, offset, 0);
#line 953
#line 953
remaining -= extent;
#line 953
if(remaining == 0)
#line 953
break; /* normal loop exit */
#line 953
offset += (off_t)extent;
#line 953
value += nget;
#line 953
}
#line 953
#line 953
return status;
#line 953
}
#line 953
static int
#line 955
getNCvx_ulonglong_schar(const NC3_INFO* ncp, const NC_var *varp,
#line 955
const size_t *start, size_t nelems, schar *value)
#line 955
{
#line 955
off_t offset = NC_varoffset(ncp, varp, start);
#line 955
size_t remaining = varp->xsz * nelems;
#line 955
int status = NC_NOERR;
#line 955
const void *xp;
#line 955
#line 955
if(nelems == 0)
#line 955
return NC_NOERR;
#line 955
#line 955
assert(value != NULL);
#line 955
#line 955
for(;;)
#line 955
{
#line 955
size_t extent = MIN(remaining, ncp->chunk);
#line 955
size_t nget = ncx_howmany(varp->type, extent);
#line 955
#line 955
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 955
0, (void **)&xp); /* cast away const */
#line 955
if(lstatus != NC_NOERR)
#line 955
return lstatus;
#line 955
#line 955
lstatus = ncx_getn_ulonglong_schar(&xp, nget, value);
#line 955
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 955
status = lstatus;
#line 955
#line 955
(void) ncio_rel(ncp->nciop, offset, 0);
#line 955
#line 955
remaining -= extent;
#line 955
if(remaining == 0)
#line 955
break; /* normal loop exit */
#line 955
offset += (off_t)extent;
#line 955
value += nget;
#line 955
}
#line 955
#line 955
return status;
#line 955
}
#line 955
static int
#line 956
getNCvx_ulonglong_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 956
const size_t *start, size_t nelems, uchar *value)
#line 956
{
#line 956
off_t offset = NC_varoffset(ncp, varp, start);
#line 956
size_t remaining = varp->xsz * nelems;
#line 956
int status = NC_NOERR;
#line 956
const void *xp;
#line 956
#line 956
if(nelems == 0)
#line 956
return NC_NOERR;
#line 956
#line 956
assert(value != NULL);
#line 956
#line 956
for(;;)
#line 956
{
#line 956
size_t extent = MIN(remaining, ncp->chunk);
#line 956
size_t nget = ncx_howmany(varp->type, extent);
#line 956
#line 956
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 956
0, (void **)&xp); /* cast away const */
#line 956
if(lstatus != NC_NOERR)
#line 956
return lstatus;
#line 956
#line 956
lstatus = ncx_getn_ulonglong_uchar(&xp, nget, value);
#line 956
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 956
status = lstatus;
#line 956
#line 956
(void) ncio_rel(ncp->nciop, offset, 0);
#line 956
#line 956
remaining -= extent;
#line 956
if(remaining == 0)
#line 956
break; /* normal loop exit */
#line 956
offset += (off_t)extent;
#line 956
value += nget;
#line 956
}
#line 956
#line 956
return status;
#line 956
}
#line 956
static int
#line 957
getNCvx_ulonglong_short(const NC3_INFO* ncp, const NC_var *varp,
#line 957
const size_t *start, size_t nelems, short *value)
#line 957
{
#line 957
off_t offset = NC_varoffset(ncp, varp, start);
#line 957
size_t remaining = varp->xsz * nelems;
#line 957
int status = NC_NOERR;
#line 957
const void *xp;
#line 957
#line 957
if(nelems == 0)
#line 957
return NC_NOERR;
#line 957
#line 957
assert(value != NULL);
#line 957
#line 957
for(;;)
#line 957
{
#line 957
size_t extent = MIN(remaining, ncp->chunk);
#line 957
size_t nget = ncx_howmany(varp->type, extent);
#line 957
#line 957
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 957
0, (void **)&xp); /* cast away const */
#line 957
if(lstatus != NC_NOERR)
#line 957
return lstatus;
#line 957
#line 957
lstatus = ncx_getn_ulonglong_short(&xp, nget, value);
#line 957
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 957
status = lstatus;
#line 957
#line 957
(void) ncio_rel(ncp->nciop, offset, 0);
#line 957
#line 957
remaining -= extent;
#line 957
if(remaining == 0)
#line 957
break; /* normal loop exit */
#line 957
offset += (off_t)extent;
#line 957
value += nget;
#line 957
}
#line 957
#line 957
return status;
#line 957
}
#line 957
static int
#line 958
getNCvx_ulonglong_int(const NC3_INFO* ncp, const NC_var *varp,
#line 958
const size_t *start, size_t nelems, int *value)
#line 958
{
#line 958
off_t offset = NC_varoffset(ncp, varp, start);
#line 958
size_t remaining = varp->xsz * nelems;
#line 958
int status = NC_NOERR;
#line 958
const void *xp;
#line 958
#line 958
if(nelems == 0)
#line 958
return NC_NOERR;
#line 958
#line 958
assert(value != NULL);
#line 958
#line 958
for(;;)
#line 958
{
#line 958
size_t extent = MIN(remaining, ncp->chunk);
#line 958
size_t nget = ncx_howmany(varp->type, extent);
#line 958
#line 958
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 958
0, (void **)&xp); /* cast away const */
#line 958
if(lstatus != NC_NOERR)
#line 958
return lstatus;
#line 958
#line 958
lstatus = ncx_getn_ulonglong_int(&xp, nget, value);
#line 958
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 958
status = lstatus;
#line 958
#line 958
(void) ncio_rel(ncp->nciop, offset, 0);
#line 958
#line 958
remaining -= extent;
#line 958
if(remaining == 0)
#line 958
break; /* normal loop exit */
#line 958
offset += (off_t)extent;
#line 958
value += nget;
#line 958
}
#line 958
#line 958
return status;
#line 958
}
#line 958
static int
#line 959
getNCvx_ulonglong_float(const NC3_INFO* ncp, const NC_var *varp,
#line 959
const size_t *start, size_t nelems, float *value)
#line 959
{
#line 959
off_t offset = NC_varoffset(ncp, varp, start);
#line 959
size_t remaining = varp->xsz * nelems;
#line 959
int status = NC_NOERR;
#line 959
const void *xp;
#line 959
#line 959
if(nelems == 0)
#line 959
return NC_NOERR;
#line 959
#line 959
assert(value != NULL);
#line 959
#line 959
for(;;)
#line 959
{
#line 959
size_t extent = MIN(remaining, ncp->chunk);
#line 959
size_t nget = ncx_howmany(varp->type, extent);
#line 959
#line 959
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 959
0, (void **)&xp); /* cast away const */
#line 959
if(lstatus != NC_NOERR)
#line 959
return lstatus;
#line 959
#line 959
lstatus = ncx_getn_ulonglong_float(&xp, nget, value);
#line 959
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 959
status = lstatus;
#line 959
#line 959
(void) ncio_rel(ncp->nciop, offset, 0);
#line 959
#line 959
remaining -= extent;
#line 959
if(remaining == 0)
#line 959
break; /* normal loop exit */
#line 959
offset += (off_t)extent;
#line 959
value += nget;
#line 959
}
#line 959
#line 959
return status;
#line 959
}
#line 959
static int
#line 960
getNCvx_ulonglong_double(const NC3_INFO* ncp, const NC_var *varp,
#line 960
const size_t *start, size_t nelems, double *value)
#line 960
{
#line 960
off_t offset = NC_varoffset(ncp, varp, start);
#line 960
size_t remaining = varp->xsz * nelems;
#line 960
int status = NC_NOERR;
#line 960
const void *xp;
#line 960
#line 960
if(nelems == 0)
#line 960
return NC_NOERR;
#line 960
#line 960
assert(value != NULL);
#line 960
#line 960
for(;;)
#line 960
{
#line 960
size_t extent = MIN(remaining, ncp->chunk);
#line 960
size_t nget = ncx_howmany(varp->type, extent);
#line 960
#line 960
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 960
0, (void **)&xp); /* cast away const */
#line 960
if(lstatus != NC_NOERR)
#line 960
return lstatus;
#line 960
#line 960
lstatus = ncx_getn_ulonglong_double(&xp, nget, value);
#line 960
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 960
status = lstatus;
#line 960
#line 960
(void) ncio_rel(ncp->nciop, offset, 0);
#line 960
#line 960
remaining -= extent;
#line 960
if(remaining == 0)
#line 960
break; /* normal loop exit */
#line 960
offset += (off_t)extent;
#line 960
value += nget;
#line 960
}
#line 960
#line 960
return status;
#line 960
}
#line 960
static int
#line 961
getNCvx_ulonglong_longlong(const NC3_INFO* ncp, const NC_var *varp,
#line 961
const size_t *start, size_t nelems, longlong *value)
#line 961
{
#line 961
off_t offset = NC_varoffset(ncp, varp, start);
#line 961
size_t remaining = varp->xsz * nelems;
#line 961
int status = NC_NOERR;
#line 961
const void *xp;
#line 961
#line 961
if(nelems == 0)
#line 961
return NC_NOERR;
#line 961
#line 961
assert(value != NULL);
#line 961
#line 961
for(;;)
#line 961
{
#line 961
size_t extent = MIN(remaining, ncp->chunk);
#line 961
size_t nget = ncx_howmany(varp->type, extent);
#line 961
#line 961
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 961
0, (void **)&xp); /* cast away const */
#line 961
if(lstatus != NC_NOERR)
#line 961
return lstatus;
#line 961
#line 961
lstatus = ncx_getn_ulonglong_longlong(&xp, nget, value);
#line 961
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 961
status = lstatus;
#line 961
#line 961
(void) ncio_rel(ncp->nciop, offset, 0);
#line 961
#line 961
remaining -= extent;
#line 961
if(remaining == 0)
#line 961
break; /* normal loop exit */
#line 961
offset += (off_t)extent;
#line 961
value += nget;
#line 961
}
#line 961
#line 961
return status;
#line 961
}
#line 961
static int
#line 962
getNCvx_ulonglong_uint(const NC3_INFO* ncp, const NC_var *varp,
#line 962
const size_t *start, size_t nelems, uint *value)
#line 962
{
#line 962
off_t offset = NC_varoffset(ncp, varp, start);
#line 962
size_t remaining = varp->xsz * nelems;
#line 962
int status = NC_NOERR;
#line 962
const void *xp;
#line 962
#line 962
if(nelems == 0)
#line 962
return NC_NOERR;
#line 962
#line 962
assert(value != NULL);
#line 962
#line 962
for(;;)
#line 962
{
#line 962
size_t extent = MIN(remaining, ncp->chunk);
#line 962
size_t nget = ncx_howmany(varp->type, extent);
#line 962
#line 962
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 962
0, (void **)&xp); /* cast away const */
#line 962
if(lstatus != NC_NOERR)
#line 962
return lstatus;
#line 962
#line 962
lstatus = ncx_getn_ulonglong_uint(&xp, nget, value);
#line 962
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 962
status = lstatus;
#line 962
#line 962
(void) ncio_rel(ncp->nciop, offset, 0);
#line 962
#line 962
remaining -= extent;
#line 962
if(remaining == 0)
#line 962
break; /* normal loop exit */
#line 962
offset += (off_t)extent;
#line 962
value += nget;
#line 962
}
#line 962
#line 962
return status;
#line 962
}
#line 962
static int
#line 963
getNCvx_ulonglong_ulonglong(const NC3_INFO* ncp, const NC_var *varp,
#line 963
const size_t *start, size_t nelems, ulonglong *value)
#line 963
{
#line 963
off_t offset = NC_varoffset(ncp, varp, start);
#line 963
size_t remaining = varp->xsz * nelems;
#line 963
int status = NC_NOERR;
#line 963
const void *xp;
#line 963
#line 963
if(nelems == 0)
#line 963
return NC_NOERR;
#line 963
#line 963
assert(value != NULL);
#line 963
#line 963
for(;;)
#line 963
{
#line 963
size_t extent = MIN(remaining, ncp->chunk);
#line 963
size_t nget = ncx_howmany(varp->type, extent);
#line 963
#line 963
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 963
0, (void **)&xp); /* cast away const */
#line 963
if(lstatus != NC_NOERR)
#line 963
return lstatus;
#line 963
#line 963
lstatus = ncx_getn_ulonglong_ulonglong(&xp, nget, value);
#line 963
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 963
status = lstatus;
#line 963
#line 963
(void) ncio_rel(ncp->nciop, offset, 0);
#line 963
#line 963
remaining -= extent;
#line 963
if(remaining == 0)
#line 963
break; /* normal loop exit */
#line 963
offset += (off_t)extent;
#line 963
value += nget;
#line 963
}
#line 963
#line 963
return status;
#line 963
}
#line 963
static int
#line 964
getNCvx_ulonglong_ushort(const NC3_INFO* ncp, const NC_var *varp,
#line 964
const size_t *start, size_t nelems, ushort *value)
#line 964
{
#line 964
off_t offset = NC_varoffset(ncp, varp, start);
#line 964
size_t remaining = varp->xsz * nelems;
#line 964
int status = NC_NOERR;
#line 964
const void *xp;
#line 964
#line 964
if(nelems == 0)
#line 964
return NC_NOERR;
#line 964
#line 964
assert(value != NULL);
#line 964
#line 964
for(;;)
#line 964
{
#line 964
size_t extent = MIN(remaining, ncp->chunk);
#line 964
size_t nget = ncx_howmany(varp->type, extent);
#line 964
#line 964
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 964
0, (void **)&xp); /* cast away const */
#line 964
if(lstatus != NC_NOERR)
#line 964
return lstatus;
#line 964
#line 964
lstatus = ncx_getn_ulonglong_ushort(&xp, nget, value);
#line 964
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 964
status = lstatus;
#line 964
#line 964
(void) ncio_rel(ncp->nciop, offset, 0);
#line 964
#line 964
remaining -= extent;
#line 964
if(remaining == 0)
#line 964
break; /* normal loop exit */
#line 964
offset += (off_t)extent;
#line 964
value += nget;
#line 964
}
#line 964
#line 964
return status;
#line 964
}
#line 964
#line 967
#ifdef NOTUSED
static int
#line 968
getNCvx_schar_uchar(const NC3_INFO* ncp, const NC_var *varp,
#line 968
const size_t *start, size_t nelems, uchar *value)
#line 968
{
#line 968
off_t offset = NC_varoffset(ncp, varp, start);
#line 968
size_t remaining = varp->xsz * nelems;
#line 968
int status = NC_NOERR;
#line 968
const void *xp;
#line 968
#line 968
if(nelems == 0)
#line 968
return NC_NOERR;
#line 968
#line 968
assert(value != NULL);
#line 968
#line 968
for(;;)
#line 968
{
#line 968
size_t extent = MIN(remaining, ncp->chunk);
#line 968
size_t nget = ncx_howmany(varp->type, extent);
#line 968
#line 968
int lstatus = ncio_get(ncp->nciop, offset, extent,
#line 968
0, (void **)&xp); /* cast away const */
#line 968
if(lstatus != NC_NOERR)
#line 968
return lstatus;
#line 968
#line 968
lstatus = ncx_getn_schar_uchar(&xp, nget, value);
#line 968
if(lstatus != NC_NOERR && status == NC_NOERR)
#line 968
status = lstatus;
#line 968
#line 968
(void) ncio_rel(ncp->nciop, offset, 0);
#line 968
#line 968
remaining -= extent;
#line 968
if(remaining == 0)
#line 968
break; /* normal loop exit */
#line 968
offset += (off_t)extent;
#line 968
value += nget;
#line 968
}
#line 968
#line 968
return status;
#line 968
}
#line 968
#endif /*NOTUSED*/
/*
* For ncvar{put,get},
* find the largest contiguous block from within 'edges'.
* returns the index to the left of this (which may be -1).
* Compute the number of contiguous elements and return
* that in *iocountp.
* The presence of "record" variables makes this routine
* overly subtle.
*/
static int
NCiocount(const NC3_INFO* const ncp, const NC_var *const varp,
const size_t *const edges,
size_t *const iocountp)
{
const size_t *edp0 = edges;
const size_t *edp = edges + varp->ndims;
const size_t *shp = varp->shape + varp->ndims;
if(IS_RECVAR(varp))
{
if(varp->ndims == 1 && ncp->recsize <= varp->len)
{
/* one dimensional && the only 'record' variable */
*iocountp = *edges;
return(0);
}
/* else */
edp0++;
}
assert(edges != NULL);
/* find max contiguous */
while(edp > edp0)
{
shp--; edp--;
if(*edp < *shp )
{
const size_t *zedp = edp;
while(zedp >= edp0)
{
if(*zedp == 0)
{
*iocountp = 0;
goto done;
}
/* Tip of the hat to segmented architectures */
if(zedp == edp0)
break;
zedp--;
}
break;
}
assert(*edp == *shp);
}
/*
* edp, shp reference rightmost index s.t. *(edp +1) == *(shp +1)
*
* Or there is only one dimension.
* If there is only one dimension and it is 'non record' dimension,
* edp is &edges[0] and we will return -1.
* If there is only one dimension and and it is a "record dimension",
* edp is &edges[1] (out of bounds) and we will return 0;
*/
assert(shp >= varp->shape + varp->ndims -1
|| *(edp +1) == *(shp +1));
/* now accumulate max count for a single io operation */
for(*iocountp = 1, edp0 = edp;
edp0 < edges + varp->ndims;
edp0++)
{
*iocountp *= *edp0;
}
done:
return((int)(edp - edges) - 1);
}
/*
* Set the elements of the array 'upp' to
* the sum of the corresponding elements of
* 'stp' and 'edp'. 'end' should be &stp[nelems].
*/
static void
set_upper(size_t *upp, /* modified on return */
const size_t *stp,
const size_t *edp,
const size_t *const end)
{
while(upp < end) {
*upp++ = *stp++ + *edp++;
}
}
/*
* The infamous and oft-discussed odometer code.
*
* 'start[]' is the starting coordinate.
* 'upper[]' is the upper bound s.t. start[ii] < upper[ii].
* 'coord[]' is the register, the current coordinate value.
* For some ii,
* upp == &upper[ii]
* cdp == &coord[ii]
*
* Running this routine increments *cdp.
*
* If after the increment, *cdp is equal to *upp
* (and cdp is not the leftmost dimension),
* *cdp is "zeroed" to the starting value and
* we need to "carry", eg, increment one place to
* the left.
*
* TODO: Some architectures hate recursion?
* Reimplement non-recursively.
*/
static void
odo1(const size_t *const start, const size_t *const upper,
size_t *const coord, /* modified on return */
const size_t *upp,
size_t *cdp)
{
assert(coord <= cdp && cdp <= coord + NC_MAX_VAR_DIMS);
assert(upper <= upp && upp <= upper + NC_MAX_VAR_DIMS);
assert(upp - upper == cdp - coord);
assert(*cdp <= *upp);
(*cdp)++;
if(cdp != coord && *cdp >= *upp)
{
*cdp = start[cdp - coord];
odo1(start, upper, coord, upp -1, cdp -1);
}
}
#ifdef _CRAYC
#pragma _CRI noinline odo1
#endif
#line 1130
/* Define a macro to allow hash on two type values */
#define CASE(nc1,nc2) (nc1*256+nc2)
static int
readNCv(const NC3_INFO* ncp, const NC_var* varp, const size_t* start,
const size_t nelems, void* value, const nc_type memtype)
{
int status = NC_NOERR;
switch (CASE(varp->type,memtype)) {
case CASE(NC_CHAR,NC_CHAR):
case CASE(NC_CHAR,NC_UBYTE):
return getNCvx_schar_schar(ncp,varp,start,nelems,(signed char*)value);
break;
case CASE(NC_BYTE,NC_BYTE):
return getNCvx_schar_schar(ncp,varp,start,nelems, (schar*)value);
break;
case CASE(NC_BYTE,NC_UBYTE):
if (fIsSet(ncp->flags,NC_64BIT_DATA))
return getNCvx_schar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
else
/* for CDF-1 and CDF-2, NC_BYTE is treated the same type as uchar memtype */
return getNCvx_uchar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_BYTE,NC_SHORT):
return getNCvx_schar_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_BYTE,NC_INT):
return getNCvx_schar_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_BYTE,NC_FLOAT):
return getNCvx_schar_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_BYTE,NC_DOUBLE):
return getNCvx_schar_double(ncp,varp,start,nelems,(double *)value);
break;
case CASE(NC_BYTE,NC_INT64):
return getNCvx_schar_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_BYTE,NC_UINT):
return getNCvx_schar_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_BYTE,NC_UINT64):
return getNCvx_schar_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_BYTE,NC_USHORT):
return getNCvx_schar_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_SHORT,NC_BYTE):
return getNCvx_short_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_SHORT,NC_UBYTE):
return getNCvx_short_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_SHORT,NC_SHORT):
return getNCvx_short_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_SHORT,NC_INT):
return getNCvx_short_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_SHORT,NC_FLOAT):
return getNCvx_short_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_SHORT,NC_DOUBLE):
return getNCvx_short_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_SHORT,NC_INT64):
return getNCvx_short_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_SHORT,NC_UINT):
return getNCvx_short_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_SHORT,NC_UINT64):
return getNCvx_short_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_SHORT,NC_USHORT):
return getNCvx_short_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_INT,NC_BYTE):
return getNCvx_int_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_INT,NC_UBYTE):
return getNCvx_int_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_INT,NC_SHORT):
return getNCvx_int_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_INT,NC_INT):
return getNCvx_int_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_INT,NC_FLOAT):
return getNCvx_int_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_INT,NC_DOUBLE):
return getNCvx_int_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_INT,NC_INT64):
return getNCvx_int_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_INT,NC_UINT):
return getNCvx_int_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_INT,NC_UINT64):
return getNCvx_int_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_INT,NC_USHORT):
return getNCvx_int_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_FLOAT,NC_BYTE):
return getNCvx_float_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_FLOAT,NC_UBYTE):
return getNCvx_float_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_FLOAT,NC_SHORT):
return getNCvx_float_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_FLOAT,NC_INT):
return getNCvx_float_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_FLOAT,NC_FLOAT):
return getNCvx_float_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_FLOAT,NC_DOUBLE):
return getNCvx_float_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_FLOAT,NC_INT64):
return getNCvx_float_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_FLOAT,NC_UINT):
return getNCvx_float_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_FLOAT,NC_UINT64):
return getNCvx_float_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_FLOAT,NC_USHORT):
return getNCvx_float_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_DOUBLE,NC_BYTE):
return getNCvx_double_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_DOUBLE,NC_UBYTE):
return getNCvx_double_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_DOUBLE,NC_SHORT):
return getNCvx_double_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_DOUBLE,NC_INT):
return getNCvx_double_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_DOUBLE,NC_FLOAT):
return getNCvx_double_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_DOUBLE,NC_DOUBLE):
return getNCvx_double_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_DOUBLE,NC_INT64):
return getNCvx_double_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_DOUBLE,NC_UINT):
return getNCvx_double_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_DOUBLE,NC_UINT64):
return getNCvx_double_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_DOUBLE,NC_USHORT):
return getNCvx_double_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UBYTE,NC_UBYTE):
return getNCvx_uchar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UBYTE,NC_BYTE):
return getNCvx_uchar_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UBYTE,NC_SHORT):
return getNCvx_uchar_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UBYTE,NC_INT):
return getNCvx_uchar_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UBYTE,NC_FLOAT):
return getNCvx_uchar_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UBYTE,NC_DOUBLE):
return getNCvx_uchar_double(ncp,varp,start,nelems,(double *)value);
break;
case CASE(NC_UBYTE,NC_INT64):
return getNCvx_uchar_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UBYTE,NC_UINT):
return getNCvx_uchar_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UBYTE,NC_UINT64):
return getNCvx_uchar_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UBYTE,NC_USHORT):
return getNCvx_uchar_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_USHORT,NC_BYTE):
return getNCvx_ushort_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_USHORT,NC_UBYTE):
return getNCvx_ushort_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_USHORT,NC_SHORT):
return getNCvx_ushort_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_USHORT,NC_INT):
return getNCvx_ushort_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_USHORT,NC_FLOAT):
return getNCvx_ushort_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_USHORT,NC_DOUBLE):
return getNCvx_ushort_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_USHORT,NC_INT64):
return getNCvx_ushort_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_USHORT,NC_UINT):
return getNCvx_ushort_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_USHORT,NC_UINT64):
return getNCvx_ushort_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_USHORT,NC_USHORT):
return getNCvx_ushort_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UINT,NC_BYTE):
return getNCvx_uint_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UINT,NC_UBYTE):
return getNCvx_uint_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UINT,NC_SHORT):
return getNCvx_uint_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UINT,NC_INT):
return getNCvx_uint_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UINT,NC_FLOAT):
return getNCvx_uint_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UINT,NC_DOUBLE):
return getNCvx_uint_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_UINT,NC_INT64):
return getNCvx_uint_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UINT,NC_UINT):
return getNCvx_uint_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UINT,NC_UINT64):
return getNCvx_uint_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UINT,NC_USHORT):
return getNCvx_uint_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_INT64,NC_BYTE):
return getNCvx_longlong_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_INT64,NC_UBYTE):
return getNCvx_longlong_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_INT64,NC_SHORT):
return getNCvx_longlong_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_INT64,NC_INT):
return getNCvx_longlong_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_INT64,NC_FLOAT):
return getNCvx_longlong_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_INT64,NC_DOUBLE):
return getNCvx_longlong_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_INT64,NC_INT64):
return getNCvx_longlong_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_INT64,NC_UINT):
return getNCvx_longlong_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_INT64,NC_UINT64):
return getNCvx_longlong_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_INT64,NC_USHORT):
return getNCvx_longlong_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UINT64,NC_BYTE):
return getNCvx_ulonglong_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UINT64,NC_UBYTE):
return getNCvx_ulonglong_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UINT64,NC_SHORT):
return getNCvx_ulonglong_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UINT64,NC_INT):
return getNCvx_ulonglong_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UINT64,NC_FLOAT):
return getNCvx_ulonglong_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UINT64,NC_DOUBLE):
return getNCvx_ulonglong_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_UINT64,NC_INT64):
return getNCvx_ulonglong_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UINT64,NC_UINT):
return getNCvx_ulonglong_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UINT64,NC_UINT64):
return getNCvx_ulonglong_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UINT64,NC_USHORT):
return getNCvx_ulonglong_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
default:
return NC_EBADTYPE;
break;
}
return status;
}
static int
writeNCv(NC3_INFO* ncp, const NC_var* varp, const size_t* start,
const size_t nelems, const void* value, const nc_type memtype)
{
int status = NC_NOERR;
switch (CASE(varp->type,memtype)) {
case CASE(NC_CHAR,NC_CHAR):
case CASE(NC_CHAR,NC_UBYTE):
return putNCvx_char_char(ncp,varp,start,nelems,(char*)value);
break;
case CASE(NC_BYTE,NC_BYTE):
return putNCvx_schar_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_BYTE,NC_UBYTE):
if (fIsSet(ncp->flags,NC_64BIT_DATA))
return putNCvx_schar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
else
/* for CDF-1 and CDF-2, NC_BYTE is treated the same type as uchar memtype */
return putNCvx_uchar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_BYTE,NC_SHORT):
return putNCvx_schar_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_BYTE,NC_INT):
return putNCvx_schar_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_BYTE,NC_FLOAT):
return putNCvx_schar_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_BYTE,NC_DOUBLE):
return putNCvx_schar_double(ncp,varp,start,nelems,(double *)value);
break;
case CASE(NC_BYTE,NC_INT64):
return putNCvx_schar_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_BYTE,NC_UINT):
return putNCvx_schar_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_BYTE,NC_UINT64):
return putNCvx_schar_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_BYTE,NC_USHORT):
return putNCvx_schar_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_SHORT,NC_BYTE):
return putNCvx_short_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_SHORT,NC_UBYTE):
return putNCvx_short_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_SHORT,NC_SHORT):
return putNCvx_short_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_SHORT,NC_INT):
return putNCvx_short_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_SHORT,NC_FLOAT):
return putNCvx_short_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_SHORT,NC_DOUBLE):
return putNCvx_short_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_SHORT,NC_INT64):
return putNCvx_short_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_SHORT,NC_UINT):
return putNCvx_short_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_SHORT,NC_UINT64):
return putNCvx_short_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_SHORT,NC_USHORT):
return putNCvx_short_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_INT,NC_BYTE):
return putNCvx_int_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_INT,NC_UBYTE):
return putNCvx_int_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_INT,NC_SHORT):
return putNCvx_int_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_INT,NC_INT):
return putNCvx_int_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_INT,NC_FLOAT):
return putNCvx_int_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_INT,NC_DOUBLE):
return putNCvx_int_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_INT,NC_INT64):
return putNCvx_int_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_INT,NC_UINT):
return putNCvx_int_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_INT,NC_UINT64):
return putNCvx_int_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_INT,NC_USHORT):
return putNCvx_int_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_FLOAT,NC_BYTE):
return putNCvx_float_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_FLOAT,NC_UBYTE):
return putNCvx_float_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_FLOAT,NC_SHORT):
return putNCvx_float_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_FLOAT,NC_INT):
return putNCvx_float_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_FLOAT,NC_FLOAT):
return putNCvx_float_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_FLOAT,NC_DOUBLE):
return putNCvx_float_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_FLOAT,NC_INT64):
return putNCvx_float_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_FLOAT,NC_UINT):
return putNCvx_float_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_FLOAT,NC_UINT64):
return putNCvx_float_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_FLOAT,NC_USHORT):
return putNCvx_float_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_DOUBLE,NC_BYTE):
return putNCvx_double_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_DOUBLE,NC_UBYTE):
return putNCvx_double_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_DOUBLE,NC_SHORT):
return putNCvx_double_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_DOUBLE,NC_INT):
return putNCvx_double_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_DOUBLE,NC_FLOAT):
return putNCvx_double_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_DOUBLE,NC_DOUBLE):
return putNCvx_double_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_DOUBLE,NC_INT64):
return putNCvx_double_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_DOUBLE,NC_UINT):
return putNCvx_double_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_DOUBLE,NC_UINT64):
return putNCvx_double_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_DOUBLE,NC_USHORT):
return putNCvx_double_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UBYTE,NC_UBYTE):
return putNCvx_uchar_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UBYTE,NC_BYTE):
return putNCvx_uchar_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UBYTE,NC_SHORT):
return putNCvx_uchar_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UBYTE,NC_INT):
return putNCvx_uchar_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UBYTE,NC_FLOAT):
return putNCvx_uchar_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UBYTE,NC_DOUBLE):
return putNCvx_uchar_double(ncp,varp,start,nelems,(double *)value);
break;
case CASE(NC_UBYTE,NC_INT64):
return putNCvx_uchar_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UBYTE,NC_UINT):
return putNCvx_uchar_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UBYTE,NC_UINT64):
return putNCvx_uchar_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UBYTE,NC_USHORT):
return putNCvx_uchar_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_USHORT,NC_BYTE):
return putNCvx_ushort_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_USHORT,NC_UBYTE):
return putNCvx_ushort_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_USHORT,NC_SHORT):
return putNCvx_ushort_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_USHORT,NC_INT):
return putNCvx_ushort_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_USHORT,NC_FLOAT):
return putNCvx_ushort_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_USHORT,NC_DOUBLE):
return putNCvx_ushort_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_USHORT,NC_INT64):
return putNCvx_ushort_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_USHORT,NC_UINT):
return putNCvx_ushort_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_USHORT,NC_UINT64):
return putNCvx_ushort_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_USHORT,NC_USHORT):
return putNCvx_ushort_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UINT,NC_BYTE):
return putNCvx_uint_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UINT,NC_UBYTE):
return putNCvx_uint_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UINT,NC_SHORT):
return putNCvx_uint_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UINT,NC_INT):
return putNCvx_uint_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UINT,NC_FLOAT):
return putNCvx_uint_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UINT,NC_DOUBLE):
return putNCvx_uint_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_UINT,NC_INT64):
return putNCvx_uint_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UINT,NC_UINT):
return putNCvx_uint_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UINT,NC_UINT64):
return putNCvx_uint_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UINT,NC_USHORT):
return putNCvx_uint_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_INT64,NC_BYTE):
return putNCvx_longlong_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_INT64,NC_UBYTE):
return putNCvx_longlong_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_INT64,NC_SHORT):
return putNCvx_longlong_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_INT64,NC_INT):
return putNCvx_longlong_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_INT64,NC_FLOAT):
return putNCvx_longlong_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_INT64,NC_DOUBLE):
return putNCvx_longlong_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_INT64,NC_INT64):
return putNCvx_longlong_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_INT64,NC_UINT):
return putNCvx_longlong_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_INT64,NC_UINT64):
return putNCvx_longlong_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_INT64,NC_USHORT):
return putNCvx_longlong_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
case CASE(NC_UINT64,NC_BYTE):
return putNCvx_ulonglong_schar(ncp,varp,start,nelems,(schar*)value);
break;
case CASE(NC_UINT64,NC_UBYTE):
return putNCvx_ulonglong_uchar(ncp,varp,start,nelems,(unsigned char*)value);
break;
case CASE(NC_UINT64,NC_SHORT):
return putNCvx_ulonglong_short(ncp,varp,start,nelems,(short*)value);
break;
case CASE(NC_UINT64,NC_INT):
return putNCvx_ulonglong_int(ncp,varp,start,nelems,(int*)value);
break;
case CASE(NC_UINT64,NC_FLOAT):
return putNCvx_ulonglong_float(ncp,varp,start,nelems,(float*)value);
break;
case CASE(NC_UINT64,NC_DOUBLE):
return putNCvx_ulonglong_double(ncp,varp,start,nelems,(double*)value);
break;
case CASE(NC_UINT64,NC_INT64):
return putNCvx_ulonglong_longlong(ncp,varp,start,nelems,(long long*)value);
break;
case CASE(NC_UINT64,NC_UINT):
return putNCvx_ulonglong_uint(ncp,varp,start,nelems,(unsigned int*)value);
break;
case CASE(NC_UINT64,NC_UINT64):
return putNCvx_ulonglong_ulonglong(ncp,varp,start,nelems,(unsigned long long*)value);
break;
case CASE(NC_UINT64,NC_USHORT):
return putNCvx_ulonglong_ushort(ncp,varp,start,nelems,(unsigned short*)value);
break;
default:
return NC_EBADTYPE;
break;
}
return status;
}
/**************************************************/
int
NC3_get_vara(int ncid, int varid,
const size_t *start, const size_t *edges0,
void *value0,
nc_type memtype)
{
int status = NC_NOERR;
NC* nc;
NC3_INFO* nc3;
NC_var *varp;
int ii;
size_t iocount;
size_t memtypelen;
signed char* value = (signed char*) value0; /* legally allow ptr arithmetic */
const size_t* edges = edges0; /* so we can modify for special cases */
size_t modedges[NC_MAX_VAR_DIMS];
status = NC_check_id(ncid, &nc);
if(status != NC_NOERR)
return status;
nc3 = NC3_DATA(nc);
if(NC_indef(nc3))
return NC_EINDEFINE;
status = NC_lookupvar(nc3, varid, &varp);
if(status != NC_NOERR)
return status;
if(memtype == NC_NAT) memtype=varp->type;
if(memtype == NC_CHAR && varp->type != NC_CHAR)
return NC_ECHAR;
else if(memtype != NC_CHAR && varp->type == NC_CHAR)
return NC_ECHAR;
/* If edges is NULL, then this was called from nc_get_var() */
if(edges == NULL && varp->ndims > 0) {
/* If this is a record variable, then we have to
substitute the number of records into dimension 0. */
if(varp->shape[0] == 0) {
(void)memcpy((void*)modedges,(void*)varp->shape,
sizeof(size_t)*varp->ndims);
modedges[0] = NC_get_numrecs(nc3);
edges = modedges;
} else
edges = varp->shape;
}
status = NCcoordck(nc3, varp, start);
if(status != NC_NOERR)
return status;
status = NCedgeck(nc3, varp, start, edges);
if(status != NC_NOERR)
return status;
/* Get the size of the memtype */
memtypelen = nctypelen(memtype);
if(varp->ndims == 0) /* scalar variable */
{
return( readNCv(nc3, varp, start, 1, (void*)value, memtype) );
}
if(IS_RECVAR(varp))
{
if(*start + *edges > NC_get_numrecs(nc3))
return NC_EEDGE;
if(varp->ndims == 1 && nc3->recsize <= varp->len)
{
/* one dimensional && the only record variable */
return( readNCv(nc3, varp, start, *edges, (void*)value, memtype) );
}
}
/*
* find max contiguous
* and accumulate max count for a single io operation
*/
ii = NCiocount(nc3, varp, edges, &iocount);
if(ii == -1)
{
return( readNCv(nc3, varp, start, iocount, (void*)value, memtype) );
}
assert(ii >= 0);
{ /* inline */
ALLOC_ONSTACK(coord, size_t, varp->ndims);
ALLOC_ONSTACK(upper, size_t, varp->ndims);
const size_t index = ii;
/* copy in starting indices */
(void) memcpy(coord, start, varp->ndims * sizeof(size_t));
/* set up in maximum indices */
set_upper(upper, start, edges, &upper[varp->ndims]);
/* ripple counter */
while(*coord < *upper)
{
const int lstatus = readNCv(nc3, varp, coord, iocount, (void*)value, memtype);
if(lstatus != NC_NOERR)
{
if(lstatus != NC_ERANGE)
{
status = lstatus;
/* fatal for the loop */
break;
}
/* else NC_ERANGE, not fatal for the loop */
if(status == NC_NOERR)
status = lstatus;
}
value += (iocount * memtypelen);
odo1(start, upper, coord, &upper[index], &coord[index]);
}
FREE_ONSTACK(upper);
FREE_ONSTACK(coord);
} /* end inline */
return status;
}
int
NC3_put_vara(int ncid, int varid,
const size_t *start, const size_t *edges0,
const void *value0,
nc_type memtype)
{
int status = NC_NOERR;
NC *nc;
NC3_INFO* nc3;
NC_var *varp;
int ii;
size_t iocount;
size_t memtypelen;
signed char* value = (signed char*) value0; /* legally allow ptr arithmetic */
const size_t* edges = edges0; /* so we can modify for special cases */
size_t modedges[NC_MAX_VAR_DIMS];
status = NC_check_id(ncid, &nc);
if(status != NC_NOERR)
return status;
nc3 = NC3_DATA(nc);
if(NC_readonly(nc3))
return NC_EPERM;
if(NC_indef(nc3))
return NC_EINDEFINE;
status = NC_lookupvar(nc3, varid, &varp);
if(status != NC_NOERR)
return status; /*invalid varid */
if(memtype == NC_NAT) memtype=varp->type;
if(memtype == NC_CHAR && varp->type != NC_CHAR)
return NC_ECHAR;
else if(memtype != NC_CHAR && varp->type == NC_CHAR)
return NC_ECHAR;
/* Get the size of the memtype */
memtypelen = nctypelen(memtype);
/* If edges is NULL, then this was called from nc_get_var() */
if(edges == NULL && varp->ndims > 0) {
/* If this is a record variable, then we have to
substitute the number of records into dimension 0. */
if(varp->shape[0] == 0) {
(void)memcpy((void*)modedges,(void*)varp->shape,
sizeof(size_t)*varp->ndims);
modedges[0] = NC_get_numrecs(nc3);
edges = modedges;
} else
edges = varp->shape;
}
status = NCcoordck(nc3, varp, start);
if(status != NC_NOERR)
return status;
status = NCedgeck(nc3, varp, start, edges);
if(status != NC_NOERR)
return status;
if(varp->ndims == 0) /* scalar variable */
{
return( writeNCv(nc3, varp, start, 1, (void*)value, memtype) );
}
if(IS_RECVAR(varp))
{
status = NCvnrecs(nc3, *start + *edges);
if(status != NC_NOERR)
return status;
if(varp->ndims == 1
&& nc3->recsize <= varp->len)
{
/* one dimensional && the only record variable */
return( writeNCv(nc3, varp, start, *edges, (void*)value, memtype) );
}
}
/*
* find max contiguous
* and accumulate max count for a single io operation
*/
ii = NCiocount(nc3, varp, edges, &iocount);
if(ii == -1)
{
return( writeNCv(nc3, varp, start, iocount, (void*)value, memtype) );
}
assert(ii >= 0);
{ /* inline */
ALLOC_ONSTACK(coord, size_t, varp->ndims);
ALLOC_ONSTACK(upper, size_t, varp->ndims);
const size_t index = ii;
/* copy in starting indices */
(void) memcpy(coord, start, varp->ndims * sizeof(size_t));
/* set up in maximum indices */
set_upper(upper, start, edges, &upper[varp->ndims]);
/* ripple counter */
while(*coord < *upper)
{
const int lstatus = writeNCv(nc3, varp, coord, iocount, (void*)value, memtype);
if(lstatus != NC_NOERR)
{
if(lstatus != NC_ERANGE)
{
status = lstatus;
/* fatal for the loop */
break;
}
/* else NC_ERANGE, not fatal for the loop */
if(status == NC_NOERR)
status = lstatus;
}
value += (iocount * memtypelen);
odo1(start, upper, coord, &upper[index], &coord[index]);
}
FREE_ONSTACK(upper);
FREE_ONSTACK(coord);
} /* end inline */
return status;
}