From 18a381032ad68ff420d9af344e99dbb406a7b8b1 Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis <spiros.tsalikis@kitware.com> Date: Thu, 30 Jan 2025 16:55:58 -0500 Subject: [PATCH] XdmfValuesHDF: Print error when there is a ranks mismatch (cherry picked from commit 780a8baaf26ff1c830086d8930e94764f08f91df) --- ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfValuesHDF.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfValuesHDF.cxx b/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfValuesHDF.cxx index 091e3363b9a..7c641573847 100644 --- a/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfValuesHDF.cxx +++ b/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfValuesHDF.cxx @@ -84,7 +84,7 @@ XdmfValuesHDF::Read(XdmfArray *anArray){ XdmfInt64 Start[ XDMF_MAX_DIMENSION ]; XdmfInt64 Stride[ XDMF_MAX_DIMENSION ]; XdmfInt64 Count[ XDMF_MAX_DIMENSION ]; - + // Select the HyperSlab from HDF5 Rank = this->DataDesc->GetHyperSlab( Start, Stride, Count ); H5.SelectHyperSlab( Start, Stride, Count ); @@ -92,6 +92,14 @@ XdmfValuesHDF::Read(XdmfArray *anArray){ XdmfErrorMessage("Return Array No Large Enough to Hold Selected Data"); RetArray->SetShapeFromSelection(&H5); } + if (Rank != H5.GetRank()) + { + XdmfErrorMessage("Dataset has rank " << Rank << " with dimensions [" + << this->DataDesc->GetShapeAsString() << "] but " << DataSetName + <<" array's selection has rank " << H5.GetRank() << " with dimensions [" + << H5.GetShapeAsString() << "]"); + // Error will be handled later, no need to do it here. + } // RetArray->SetShape(Rank, Count); // RetArray->SelectAll(); } else { -- GitLab