11#include "HDFDMRArray_SPLL.h"
16#include <libdap/debug.h>
17#include <libdap/InternalErr.h>
25HDFDMRArray_SPLL::read ()
28 BESDEBUG(
"h4",
"Coming to HDFDMRArray_SPLL read "<<endl);
32 offset.resize(sds_rank);
34 count.resize(sds_rank);
36 step.resize(sds_rank);
39 int nelms = format_constraint(offset.data(),step.data(),count.data());
42 throw InternalErr (__FILE__, __LINE__,
"Currently we only support TRMM version 7");
45 for (
int i = 0; i < nelms; ++i)
46 val[i] = ll_start+offset[0]*ll_res+ll_res/2 + i*ll_res*step[0];
47 set_value((dods_float32*)val.data(),nelms);
54HDFDMRArray_SPLL::format_constraint (
int *offset,
int *step,
int *count)
59 Dim_iter p = dim_begin ();
60 while (p != dim_end ()) {
62 int start = dimension_start (p,
true);
63 int stride = dimension_stride (p,
true);
64 int stop = dimension_stop (p,
true);
69 oss <<
"Array/Grid hyperslab start point "<< start <<
70 " is greater than stop point " << stop <<
".";
71 throw Error(malformed_expr, oss.str());
76 count[id] = ((stop - start) / stride) + 1;
80 "=format_constraint():"
81 <<
"id=" <<
id <<
" offset=" << offset[
id]
82 <<
" step=" << step[
id]
83 <<
" count=" << count[
id]