diff --git a/examples/heatTransfer/read/PrintData.cpp b/examples/heatTransfer/read/PrintData.cpp
index ef84e6a40a69e1ad1c37514c69a0843093055e06..edbc6688fba93569b4d3eb9b74190735d9b21be7 100644
--- a/examples/heatTransfer/read/PrintData.cpp
+++ b/examples/heatTransfer/read/PrintData.cpp
@@ -15,6 +15,44 @@
 
 #include "PrintData.h"
 
+void printData(double *xy, size_t *size, size_t *offset, int rank, int steps)
+{
+    std::ofstream myfile;
+    std::string filename = "data." + std::to_string(rank);
+    myfile.open(filename);
+    double *data = xy;
+    uint64_t nelems = size[0] * size[1];
+    for (int step = 0; step < steps; step++)
+    {
+        myfile << "rank=" << rank << " size=" << size[0] << "x" << size[1]
+               << " offsets=" << offset[0] << ":" << offset[1]
+               << " step=" << step << std::endl;
+
+        myfile << " time   row   columns " << offset[1] << "..."
+               << offset[1] + size[1] - 1 << std::endl;
+        myfile << "        ";
+        for (int j = 0; j < size[1]; j++)
+        {
+            myfile << std::setw(9) << offset[1] + j;
+        }
+        myfile << std::endl;
+        myfile << "------------------------------------------------------------"
+                  "--\n";
+        for (int i = 0; i < size[0]; i++)
+        {
+            myfile << std::setw(5) << step << std::setw(5) << offset[0] + i;
+            for (int j = 0; j < size[1]; j++)
+            {
+                myfile << std::setw(9) << std::setprecision(2)
+                       << data[i * size[1] + j];
+            }
+            myfile << std::endl;
+        }
+        data += nelems;
+    }
+    myfile.close();
+}
+
 void printData(double *xy, uint64_t *size, uint64_t *offset, int rank,
                int steps)
 {
diff --git a/examples/heatTransfer/read/PrintData.h b/examples/heatTransfer/read/PrintData.h
index 308ace34007f88c15498464b1555b5cca3ed1f6b..13e1e527ce1a27036d0f65c540be48a459b3b3eb 100644
--- a/examples/heatTransfer/read/PrintData.h
+++ b/examples/heatTransfer/read/PrintData.h
@@ -13,6 +13,7 @@
 
 #include <cstdint>
 
+void printData(double *xy, size_t *size, size_t *offset, int rank, int steps);
 void printData(double *xy, uint64_t *size, uint64_t *offset, int rank,
                int steps);
 
diff --git a/examples/heatTransfer/read/heatRead_adios2.cpp b/examples/heatTransfer/read/heatRead_adios2.cpp
index dd8ef0cf0e7038a99eae8e3d7a90c71ced2d9f15..35ec668372a3c950002659d1487cac773a4515c7 100644
--- a/examples/heatTransfer/read/heatRead_adios2.cpp
+++ b/examples/heatTransfer/read/heatRead_adios2.cpp
@@ -93,8 +93,8 @@ int main(int argc, char *argv[])
     }
 
     // 1D decomposition of the columns, which is inefficient for reading!
-    std::vector<uint64_t> readsize({gndx, gndy / nproc});
-    std::vector<uint64_t> offset({0LL, rank * readsize[1]});
+    adios2::Dims readsize({gndx, gndy / nproc});
+    adios2::Dims offset({0LL, rank * readsize[1]});
     if (rank == nproc - 1)
     {
         // last process should read all the rest of columns