diff --git a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp index 864dde677a..b4d5e79296 100644 --- a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp @@ -1230,20 +1230,25 @@ void BP5Deserializer::FinalizeGets(std::vector Requests) GlobalDimensions[i] = RankSize[i]; } } - if (m_ReaderIsRowMajor) - { - ExtractSelectionFromPartialRM( - ElementSize, DimCount, GlobalDimensions, RankOffset, - RankSize, SelOffset, SelSize, IncomingData, - (char *)Req.Data, Req.MemSpace); - } - else + + auto inStart = + adios2::Dims(RankOffset, RankOffset + DimCount); + auto inCount = adios2::Dims(RankSize, RankSize + DimCount); + auto outStart = + adios2::Dims(SelOffset, SelOffset + DimCount); + auto outCount = adios2::Dims(SelSize, SelSize + DimCount); + + if (!m_ReaderIsRowMajor) { - ExtractSelectionFromPartialCM( - ElementSize, DimCount, GlobalDimensions, RankOffset, - RankSize, SelOffset, SelSize, IncomingData, - (char *)Req.Data, Req.MemSpace); + std::reverse(inStart.begin(), inStart.end()); + std::reverse(inCount.begin(), inCount.end()); + std::reverse(outStart.begin(), outStart.end()); + std::reverse(outCount.begin(), outCount.end()); } + + helper::NdCopy(IncomingData, inStart, inCount, true, true, + (char *)Req.Data, outStart, outCount, true, + true, ElementSize); } } } diff --git a/testing/adios2/engine/bp/CMakeLists.txt b/testing/adios2/engine/bp/CMakeLists.txt index bf9b2e68eb..f3a76e61f1 100644 --- a/testing/adios2/engine/bp/CMakeLists.txt +++ b/testing/adios2/engine/bp/CMakeLists.txt @@ -109,8 +109,8 @@ bp_gtest_add_tests_helper(StepsFileGlobalArray MPI_ALLOW) bp_gtest_add_tests_helper(StepsFileLocalArray MPI_ALLOW) bp_gtest_add_tests_helper(SelectSteps MPI_ALLOW) -bp3_bp4_gtest_add_tests_helper(SelectionsOnRowMajorData MPI_NONE) -bp3_bp4_gtest_add_tests_helper(SelectionsOnColumnMajorData MPI_NONE) +bp_gtest_add_tests_helper(SelectionsOnRowMajorData MPI_NONE) +bp_gtest_add_tests_helper(SelectionsOnColumnMajorData MPI_NONE) if(NOT MSVC) bp_gtest_add_tests_helper(BufferSize MPI_NONE)