diff --git a/Overlap/Tests/test_get_dispatch_snap.f90 b/Overlap/Tests/test_get_dispatch_snap.f90
index 3a0a1c3cbe30010cec74a37797273deca398f045..9fabee31537cd446a96d8d4b15f2838468294be6 100644
--- a/Overlap/Tests/test_get_dispatch_snap.f90
+++ b/Overlap/Tests/test_get_dispatch_snap.f90
@@ -75,6 +75,13 @@ program test_get_dispatch_snap
      if (periodic) call assert(2 * dist_lim * step(1) < 180., &
           "test_get_dispatch_snap dist_lim")
      copy = merge(dist_lim, 0, periodic)
+  end if
+
+  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
+
+  if (rank == 0) then
+     call dbf_read_attribute_03(d_init, hshp%extremum, hshp%extr_date, &
+          ishape = 0)
      call read_column(ishape_last, &
           file = trim(shpc_dir) // "/ishape_last.txt")
      n_dates = size(ishape_last)
@@ -92,9 +99,6 @@ program test_get_dispatch_snap
   call ezmpi_bcast(n_dates, root = 0)
   if (rank /= 0) allocate(ishape_last(n_dates))
   call ezmpi_bcast(ishape_last, root = 0)
-  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
-  if (rank == 0) call dbf_read_attribute_03(d_init, hshp%extremum, &
-       hshp%extr_date, ishape = 0)
   call ezmpi_bcast(d_init, root = 0)
   k_begin = d_init + (rank * n_dates) / n_proc
   
diff --git a/Overlap/Tests/test_overlap.f90 b/Overlap/Tests/test_overlap.f90
index d48ff4f704c70bc8a98d96bcc407d75b4130bbca..27d3f2db0425aad472435ded98eec983a926287c 100644
--- a/Overlap/Tests/test_overlap.f90
+++ b/Overlap/Tests/test_overlap.f90
@@ -66,13 +66,13 @@ program test_overlap
   corner = corner_deg * deg_to_rad
   step = step_deg * deg_to_rad
   allocate(flow(max_delta + 1))
+  call shpc_open(hshp, trim(shpc_dir), rank = 0, pszaccess = "rb")
+  call dbf_read_attribute_03(d_init, hshp%extremum, hshp%extr_date, ishape = 0)
   call read_column(ishape_last, file = trim(shpc_dir) // "/ishape_last.txt")
   n_dates = size(ishape_last)
   call assert(d_init <= [k_test_1, k_test_2] .and. [k_test_1, k_test_2] &
        < d_init + n_dates, "test_overlap k_test_1, k_test_2")
   e_overestim = maxval([ishape_last(1) + 1, ediff1d(ishape_last)])
-  call shpc_open(hshp, trim(shpc_dir), rank = 0, pszaccess = "rb")
-  call dbf_read_attribute_03(d_init, hshp%extremum, hshp%extr_date, ishape = 0)
   open(unit, file = "node_id_param.json", status = "replace", &
        action = "write")
   write(unit, fmt = *) '{"e_overestim": ', e_overestim, '}'
diff --git a/Overlap/Tests/test_send_recv.f90 b/Overlap/Tests/test_send_recv.f90
index 658e63f2ab7484d77e286c48778385af12e37793..fe160df0f3417b810853f617047baa91107727d4 100644
--- a/Overlap/Tests/test_send_recv.f90
+++ b/Overlap/Tests/test_send_recv.f90
@@ -84,6 +84,13 @@ program test_send_recv
      if (periodic) call assert(2 * dist_lim * step_deg(1) < 180., &
           "test_send_recv dist_lim")
      copy = merge(dist_lim, 0, periodic)
+  end if
+
+  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
+
+  if (rank == 0) then
+     call dbf_read_attribute_03(d_init, hshp%extremum, hshp%extr_date, &
+          ishape = 0)
      call read_column(ishape_last, &
           file = trim(shpc_dir) // "/ishape_last.txt")
      n_dates = size(ishape_last)
@@ -98,9 +105,6 @@ program test_send_recv
   if (rank == 1) allocate(ishape_last(n_dates))
   call ezmpi_bcast(ishape_last, root = 0)
 
-  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
-  if (rank == 0) call dbf_read_attribute_03(d_init, hshp%extremum, &
-       hshp%extr_date, ishape = 0)
   call ezmpi_bcast(d_init, root = 0)
   if (rank == 1) call read_snapshot(s, hshp, nlon, nlat, d_init, k = d_init, &
        corner = corner_deg * deg_to_rad, step = step_deg * deg_to_rad, &
diff --git a/Overlap/eddy_graph.f90 b/Overlap/eddy_graph.f90
index e75db8acff11bd8db292e989cb3edf9b48e2ba00..11d536ce7c41f56964d524c23f905799b1aa975e 100644
--- a/Overlap/eddy_graph.f90
+++ b/Overlap/eddy_graph.f90
@@ -91,6 +91,13 @@ program eddy_graph
      if (periodic) call assert(2 * dist_lim * step_deg(1) < 180., &
           "eddy_graph dist_lim")
      copy = merge(dist_lim, 0, periodic)
+  end if
+
+  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
+
+  if (rank == 0) then
+     call dbf_read_attribute_03(d_init, hshp%extremum, hshp%extr_date, &
+          ishape = 0)
      call read_column(ishape_last, &
           file = trim(shpc_dir) // "/ishape_last.txt", last = n_dates)
      if (n_dates == huge(0)) n_dates = size(ishape_last)
@@ -115,10 +122,6 @@ program eddy_graph
   if (rank /= 0) allocate(ishape_last(n_dates))
   call ezmpi_bcast(ishape_last, root = 0)
   call ezmpi_bcast(e_overestim, root = 0)
-
-  call shpc_open(hshp, trim(shpc_dir), rank, pszaccess = "rb")
-  if (rank == 0) call dbf_read_attribute_03(d_init, hshp%extremum, &
-       hshp%extr_date, ishape = 0)
   call ezmpi_bcast(d_init, root = 0)
 
   if (rank == 0) then