39 #include "InternalErr.h"
56 BESDEBUG(
"h5",
"Coming to HDF5GMCFFillIndexArray read "<<endl);
60 cerr<<
"coming to read function"<<endl;
61 cerr<<
"file name " <<filename <<endl;
62 cerr <<
"var name "<<varname <<endl;
66 throw InternalErr (__FILE__, __LINE__,
67 "Currently the rank of the dimension scale must be 1.");
85 vector<unsigned char> val;
88 for (
int i = 0; i < count[0]; i++)
89 val[i] = offset[0] + step[0] * i;
91 set_value ((dods_byte *) &val[0], nelms);
104 for (
int i = 0; i < count[0]; i++)
105 val[i] = offset[0] + step[0] * i;
107 set_value ((dods_int16 *) &val[0], nelms);
114 vector<unsigned short> val;
117 for (
int i = 0; i < count[0]; i++)
118 val[i] = offset[0] + step[0] * i;
120 set_value ((dods_uint16 *) &val[0], nelms);
130 for (
int i = 0; i < count[0]; i++)
131 val[i] = offset[0] + step[0] * i;
133 set_value ((dods_int32 *) &val[0], nelms);
139 vector<unsigned int>val;
142 for (
int i = 0; i < count[0]; i++)
143 val[i] = offset[0] + step[0] * i;
145 set_value ((dods_uint32 *) &val[0], nelms);
155 for (
int i = 0; i < count[0]; i++)
156 val[i] = offset[0] + step[0] * i;
158 set_value ((dods_float32 *) &val[0], nelms);
169 for (
int i = 0; i < count[0]; i++)
170 val[i] = offset[0] + step[0] * i;
172 set_value ((dods_float64 *) &val[0], nelms);
182 eherr <<
"Currently the dimension scale datatype cannot be string"<<endl;
183 throw InternalErr (__FILE__, __LINE__, eherr.str ());
201 Dim_iter p = dim_begin ();
203 while (p != dim_end ()) {
205 int start = dimension_start (p,
true);
206 int stride = dimension_stride (p,
true);
207 int stop = dimension_stop (p,
true);
211 if (stride < 0 || start < 0 || stop < 0 || start > stop) {
214 oss <<
"Array/Grid hyperslab indices are bad: [" << start <<
215 ":" << stride <<
":" << stop <<
"]";
216 throw Error (malformed_expr, oss.str ());
220 if (start == 0 && stop == 0 && stride == 0) {
221 start = dimension_start (p,
false);
222 stride = dimension_stride (p,
false);
223 stop = dimension_stop (p,
false);
228 count[id] = ((stop - start) / stride) + 1;
232 "=format_constraint():"
233 <<
"id=" <<
id <<
" offset=" << offset[
id]
234 <<
" step=" << step[
id]
235 <<
" count=" << count[
id]
int format_constraint(int *cor, int *step, int *edg)
HDF5GMCFFillIndexArray(int rank, H5DataType dtype, const string &n="", BaseType *v=0)
#define BESDEBUG(x, y)
macro used to send debug information to the debug stream
This class includes the methods to read data array into DAP buffer from an HDF5 dataset for the CF op...
virtual BaseType * ptr_duplicate()