11 #ifdef USE_HDFEOS2_LIB
13 #include "HDFEOS2ArrayMissField.h"
19 #include <InternalErr.h>
27 bool HDFEOS2ArrayMissGeoField::read()
42 nelms = format_constraint(&offset[0], &step[0], &count[0]);
50 if (nelms == tnumelm) {
51 for (
int i = 0; i < nelms; i++)
53 set_value((dods_int32 *) &val[0], nelms);
57 throw InternalErr(__FILE__, __LINE__,
"Currently the rank of the missing field should be 1");
59 for (
int i = 0; i < count[0]; i++)
60 val[i] = offset[0] + step[0] * i;
61 set_value((dods_int32 *) &val[0], nelms);
70 HDFEOS2ArrayMissGeoField::format_constraint (
int *offset,
int *step,
int *count)
75 Dim_iter p = dim_begin ();
76 while (p != dim_end ()) {
78 int start = dimension_start (p,
true);
79 int stride = dimension_stride (p,
true);
80 int stop = dimension_stop (p,
true);
85 oss <<
"Array/Grid hyperslab start point "<< start <<
86 " is greater than stop point " << stop <<
".";
87 throw Error(malformed_expr, oss.str());
92 count[id] = ((stop - start) / stride) + 1;
96 "=format_constraint():"
97 <<
"id=" <<
id <<
" offset=" << offset[
id]
98 <<
" step=" << step[
id]
99 <<
" count=" << count[
id]