32 #include "config_hdf5.h"
37 #include "InternalErr.h"
44 BaseType *HDF5GMCFSpecialCVArray::ptr_duplicate()
49 bool HDF5GMCFSpecialCVArray::read()
52 BESDEBUG(
"h5",
"Coming to HDF5GMCFSpecialCVArray read "<<endl);
54 read_data_NOT_from_mem_cache(
false, NULL);
61 void HDF5GMCFSpecialCVArray::obtain_gpm_l3_layer(
int nelms, vector<int>&offset, vector<int>&step, vector<int>&)
64 vector<float> total_val;
65 total_val.resize(tnumelm);
66 for (
int i = 0; i < 20; i++)
67 total_val[i] = 0.5 * (i + 1);
69 for (
int i = 20; i < 28; i++)
70 total_val[i] = total_val[19] + (i - 19);
75 if (nelms == tnumelm) {
76 set_value((dods_float32 *) &total_val[0], nelms);
83 for (
int i = 0; i < nelms; i++)
84 val[i] = total_val[offset[0] + step[0] * i];
85 set_value((dods_float32 *) &val[0], nelms);
94 void HDF5GMCFSpecialCVArray::obtain_gpm_l3_layer2(
int nelms, vector<int>&offset, vector<int>&step, vector<int>&)
97 vector<float> total_val;
98 total_val.resize(tnumelm);
99 for (
int i = 0; i < 2; i++)
100 total_val[i] = 0.5 * (i + 1);
102 for (
int i = 2; i < 19; i++)
103 total_val[i] = total_val[1] + (i - 1);
108 if (nelms == tnumelm) {
109 set_value((dods_float32 *) &total_val[0], nelms);
116 for (
int i = 0; i < nelms; i++)
117 val[i] = total_val[offset[0] + step[0] * i];
118 set_value((dods_float32 *) &val[0], nelms);
122 void HDF5GMCFSpecialCVArray::obtain_gpm_l3_hgt(
int nelms, vector<int>&offset, vector<int>&step, vector<int>&)
125 vector<float> total_val;
136 if (nelms == tnumelm) {
137 set_value((dods_float32 *) &total_val[0], nelms);
144 for (
int i = 0; i < nelms; i++)
145 val[i] = total_val[offset[0] + step[0] * i];
146 set_value((dods_float32 *) &val[0], nelms);
150 void HDF5GMCFSpecialCVArray::obtain_gpm_l3_nalt(
int nelms, vector<int>&offset, vector<int>&step, vector<int>&)
152 vector<float> total_val;
164 if (nelms == tnumelm) {
165 set_value((dods_float32 *) &total_val[0], nelms);
172 for (
int i = 0; i < nelms; i++)
173 val[i] = total_val[offset[0] + step[0] * i];
174 set_value((dods_float32 *) &val[0], nelms);
178 void HDF5GMCFSpecialCVArray::read_data_NOT_from_mem_cache(
bool ,
void*)
181 BESDEBUG(
"h5",
"Coming to HDF5GMCFSpecialCVArray: read_data_NOT_from_mem_cache "<<endl);
194 int nelms = format_constraint(&offset[0], &step[0], &count[0]);
196 if (GPMS_L3 == product_type || GPMM_L3 == product_type) {
197 if (varname ==
"nlayer" && 28 == tnumelm)
198 obtain_gpm_l3_layer(nelms, offset, step, count);
199 else if (varname ==
"nlayer" && 19 == tnumelm)
200 obtain_gpm_l3_layer2(nelms, offset, step, count);
201 else if (varname ==
"hgt" && 5 == tnumelm)
202 obtain_gpm_l3_hgt(nelms, offset, step, count);
203 else if (varname ==
"nalt" && 5 == tnumelm) obtain_gpm_l3_nalt(nelms, offset, step, count);