diff --git a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp index 5bbb415926..10f8196c16 100644 --- a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp @@ -1599,6 +1599,9 @@ BP5Deserializer::GenerateReadRequests(const bool doAllocTempBuffers, size_t *max auto &derivedMap = m_Engine->m_IO.GetDerivedVariables(); auto derivedVar = static_cast(derivedMap.at(VarRec->VarName).get()); + auto start = static_cast(VarRec->Variable)->m_Start; + auto count = static_cast(VarRec->Variable)->m_Count; + derivedVar->SetSelection({start, count}); derivedVarInputNameList = derivedVar->VariableNameList(); nameToVarInfo = new std::map>(); // to create a mapping between variable name and the varInfo (dim and data pointer) @@ -1613,6 +1616,7 @@ BP5Deserializer::GenerateReadRequests(const bool doAllocTempBuffers, size_t *max " in defining the derived variable "); // extract the dimensions and data for each variable VariableBase *varBase = itVariable->second.get(); + varBase->SetSelection({start, count}); nameToVarInfo->insert({varName, std::unique_ptr(nullptr)}); derivedVarInputVarList.push_back(varBase); }