diff --git a/examples/heatTransfer/read/PrintData.cpp b/examples/heatTransfer/read/PrintData.cpp
index ef84e6a40a69e1ad1c37514c69a0843093055e06..3cbbdb677c626f15ac5ae960a4d5fe8300d88980 100644
--- a/examples/heatTransfer/read/PrintData.cpp
+++ b/examples/heatTransfer/read/PrintData.cpp
@@ -15,8 +15,7 @@
 
 #include "PrintData.h"
 
-void printData(double *xy, uint64_t *size, uint64_t *offset, int rank,
-               int steps)
+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);
diff --git a/examples/heatTransfer/read/PrintData.h b/examples/heatTransfer/read/PrintData.h
index 308ace34007f88c15498464b1555b5cca3ed1f6b..b51ab9b8a227b146f628c2d0522ae67ff1025c68 100644
--- a/examples/heatTransfer/read/PrintData.h
+++ b/examples/heatTransfer/read/PrintData.h
@@ -13,7 +13,6 @@
 
 #include <cstdint>
 
-void printData(double *xy, uint64_t *size, uint64_t *offset, int rank,
-               int steps);
+void printData(double *xy, size_t *size, size_t *offset, int rank, int steps);
 
 #endif /* PRINTDATA_H_ */
diff --git a/examples/heatTransfer/read/heatRead_adios1.cpp b/examples/heatTransfer/read/heatRead_adios1.cpp
index 90e870e8095d5208da0cd4a7f48cae26c40c17ac..f08d9c7a128b832a447775e7d78f793ef7129bde 100644
--- a/examples/heatTransfer/read/heatRead_adios1.cpp
+++ b/examples/heatTransfer/read/heatRead_adios1.cpp
@@ -69,6 +69,8 @@ int main(int argc, char *argv[])
     // 1D decomposition of the columns, which is inefficient for reading!
     uint64_t readsize[2] = {gndx, gndy / nproc};
     uint64_t offset[2] = {0LL, rank * readsize[1]};
+    size_t readsize_size_t[2] = {gndx, gndy / nproc};
+    size_t offset_size_t[2] = {0LL, rank * readsize[1]};
     if (rank == nproc - 1)
     {
         // last process should read all the rest of columns
@@ -90,7 +92,7 @@ int main(int argc, char *argv[])
     adios_schedule_read(f, sel, "T", 0, vT->nsteps, T);
     adios_perform_reads(f, 1);
 
-    printData(T, readsize, offset, rank, vT->nsteps);
+    printData(T, readsize_size_t, offset_size_t, rank, vT->nsteps);
     adios_read_close(f);
     adios_free_varinfo(vT);
     delete[] T;
diff --git a/examples/heatTransfer/read/heatRead_adios2.cpp b/examples/heatTransfer/read/heatRead_adios2.cpp
index b74c0edfa6f4019dcd587d63d7b8724af1600ab2..35ec668372a3c950002659d1487cac773a4515c7 100644
--- a/examples/heatTransfer/read/heatRead_adios2.cpp
+++ b/examples/heatTransfer/read/heatRead_adios2.cpp
@@ -93,10 +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_size_t({gndx, gndy / nproc});
-    adios2::Dims offset_size_t({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
@@ -111,7 +109,7 @@ int main(int argc, char *argv[])
     double *T = new double[vT->m_AvailableSteps * readsize[0] * readsize[1]];
 
     // Create a 2D selection for the subset
-    vT->SetSelection(offset_size_t, readsize_size_t);
+    vT->SetSelection(offset, readsize);
     vT->SetStepSelection(0, vT->m_AvailableSteps);
 
     // Arrays are read by scheduling one or more of them