aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOHDF5/src/Input.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetIOHDF5/src/Input.cc')
-rw-r--r--Carpet/CarpetIOHDF5/src/Input.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/Carpet/CarpetIOHDF5/src/Input.cc b/Carpet/CarpetIOHDF5/src/Input.cc
index 637bb7032..4f932adee 100644
--- a/Carpet/CarpetIOHDF5/src/Input.cc
+++ b/Carpet/CarpetIOHDF5/src/Input.cc
@@ -1391,6 +1391,13 @@ static int ReadVar (const cGH* const cctkGH,
#endif
const ibbox& exterior_membox =
data.dd->light_boxes.at(mglevel).at(reflevel).at(component).exterior;
+ int const var0 = CCTK_FirstVarIndexI(gindex);
+ assert (var0>=0 and var0<CCTK_NumVars());
+ int const var = patch->vindex - var0;
+ assert (var>=0 and var<CCTK_NumVarsInGroupI(gindex));
+ const ggf* const ff = data.data.AT(var);
+ const gdata* const processor_component = ff->data_pointer
+ (timelevel, reflevel, local_component, mglevel);
// skip this dataset if it doesn't overlap with this component's
// exterior, or if it only reads what has already been read
@@ -1424,8 +1431,9 @@ static int ReadVar (const cGH* const cctkGH,
slice_start_size_t memorigin[dim], fileorigin[dim];
hsize_t memdims[dim], count[dim];
for (int i = 0; i < patch->rank; i++) {
- memdims[patch->rank-i-1] =
- (membox.upper() - membox.lower())[i] / stride[i] + 1;
+ assert (processor_component->shape()[i] ==
+ (membox.upper() - membox.lower())[i] / stride[i] + 1);
+ memdims[patch->rank-i-1] = processor_component->padded_shape()[i];
count[patch->rank-i-1] =
(overlap.upper() - overlap.lower())[i] / stride[i] + 1;
memorigin[patch->rank-i-1] =