diff --git a/Common/read_snapshot.f90 b/Common/read_snapshot.f90
index f86d16a1e5d063169dfb9532da9457e9c9e714d6..f2501f860d2f5a0833e995b42f225c0c76877880 100644
--- a/Common/read_snapshot.f90
+++ b/Common/read_snapshot.f90
@@ -41,21 +41,21 @@ contains
 
     !---------------------------------------------------------------------
 
-    if (k == d_init) then
+    if (k == 0) then
        ishape_first = 0
     else
-       ! {k > d_init}
-       ishape_first = ishape_last(k - d_init) + 1
+       ! {k > 0}
+       ishape_first = ishape_last(k) + 1
     end if
 
-    s%number_vis_extr = ishape_last(k - d_init + 1) - ishape_first + 1
+    s%number_vis_extr = ishape_last(k + 1) - ishape_first + 1
     allocate(s%list_vis(s%number_vis_extr))
 
-    do ishape = ishape_first, ishape_last(k - d_init + 1)
+    do ishape = ishape_first, ishape_last(k + 1)
        call read_eddy(e, d, i, hshp, ishape)
 
        ! Check that all the eddies have the same date index:
-       call assert(d == k, "read_snapshot: date index")
+       call assert(d - d_init == k, "read_snapshot: date index")
 
        s%list_vis(i) = e
     end do
diff --git a/Overlap/dispatch_snapshot.f90 b/Overlap/dispatch_snapshot.f90
index 20f63793bbbd6c7c7b2474232bcea20184935ba8..cb295aeddd1f17012ae7a055052e39f9ce2443f8 100644
--- a/Overlap/dispatch_snapshot.f90
+++ b/Overlap/dispatch_snapshot.f90
@@ -5,7 +5,7 @@ module dispatch_snapshot_m
 contains
 
   subroutine dispatch_snapshot(s, unit_isolated, unit_number_eddies, rank, &
-       k_begin, max_delta, k)
+       k_begin, max_delta, d_init, k)
 
     use derived_types, only: snapshot
     use send_snapshot_m, only: send_snapshot
@@ -18,22 +18,24 @@ contains
     integer, intent(in):: unit_number_eddies
     ! logical unit for file number_eddies_$rank.csv
 
-    integer, intent(in):: rank, k_begin, max_delta
-    integer, intent(in):: k ! date index
+    integer, intent(in):: rank, k_begin, max_delta, d_init
+    integer, intent(in):: k ! date index (0-based)
 
     ! Local:
-    integer i
+    integer i, d
 
     !------------------------------------------------------------------
 
     if (rank == 0 .or. k >= k_begin + max_delta) then
+       d = k + d_init
+       
        do i = 1, s%number_vis_extr
           if (s%list_vis(i)%valid .and. s%list_vis(i)%delta_in == huge(0) &
                .and. s%list_vis(i)%delta_out == huge(0)) &
-               write(unit_isolated, fmt = *) k, i
+               write(unit_isolated, fmt = *) d, i
        end do
 
-       write(unit_number_eddies, fmt = *) k, s%number_vis_extr, &
+       write(unit_number_eddies, fmt = *) d, s%number_vis_extr, &
             s%number_eddies - s%number_vis_extr
     else
        call send_snapshot(s, tag = k, dest = rank - 1)
diff --git a/Overlap/eddy_graph.f90 b/Overlap/eddy_graph.f90
index c9b5e8492f275a67475098d411ac850b16b1d3e0..ae4938e61b00f98eae671b5502e4dbc6967e693e 100644
--- a/Overlap/eddy_graph.f90
+++ b/Overlap/eddy_graph.f90
@@ -22,9 +22,9 @@ program eddy_graph
   
   implicit none
 
-  integer rank, n_proc, copy, delta, j
+  integer rank, n_proc, copy, delta, j, d
   integer:: n_dates = huge(0) ! number of dates to read
-  integer k ! date
+  integer k ! date index ((0-based)
   integer d_init, k_begin, k_end, k_end_main_loop
   character(len = :), allocatable:: shpc_dir
   integer:: max_delta = 1
@@ -139,13 +139,13 @@ program eddy_graph
   call shpc_create(hshp_interp, shpc_dir = trim(file), cyclone = hshp%cyclone)
   call init_interpolated_eddy
 
-  k_begin = d_init + (rank * n_dates) / n_proc
+  k_begin = (rank * n_dates) / n_proc
 
   if (rank < n_proc - 1) then
-     k_end = d_init + ((rank + 1) * n_dates) / n_proc + max_delta - 1
+     k_end = ((rank + 1) * n_dates) / n_proc + max_delta - 1
      k_end_main_loop = k_end - max_delta + 1
   else
-     k_end = d_init + n_dates - 1
+     k_end = n_dates - 1
      k_end_main_loop = k_end
   end if
 
@@ -160,8 +160,8 @@ program eddy_graph
 
   do delta = 1, max_delta
      do k = k_begin + delta, k_begin + max_delta
-        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, k, &
-             delta, j = k - k_begin + 1)
+        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, &
+             d = d_init + k, delta = delta, j = k - k_begin + 1)
      end do
   end do
 
@@ -169,13 +169,14 @@ program eddy_graph
 
   do k = k_begin + max_delta + 1, k_end_main_loop
      call dispatch_snapshot(flow(1), unit_isolated, unit_number_eddies, rank, &
-          k_begin, max_delta, k = k - max_delta - 1)
+          k_begin, max_delta, d_init, k = k - max_delta - 1)
      flow(:max_delta) = flow(2:)
      call get_snapshot(flow(max_delta + 1), nlon, nlat, ishape_last, corner, &
           step, copy, hshp, d_init, k, k_end, rank, n_proc, max_delta)
-
+     d = d_init + k
+     
      do delta = 1, max_delta
-        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, k, &
+        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, d, &
              delta, j = max_delta + 1)
      end do
   end do
@@ -185,22 +186,25 @@ program eddy_graph
   do k = k_end_main_loop + 1, k_end
      ! {rank < n_proc - 1 and k >= k_end - max_delta + 2}
      call dispatch_snapshot(flow(1), unit_isolated, unit_number_eddies, rank, &
-          k_begin, max_delta, k = k - max_delta - 1)
+          k_begin, max_delta, d_init, k = k - max_delta - 1)
      flow(:max_delta) = flow(2:)
      call get_snapshot(flow(max_delta + 1), nlon, nlat, ishape_last, corner, &
           step, copy, hshp, d_init, k, k_end, rank, n_proc, max_delta)
      ! (reception)
 
      ! Stitching:
+
+     d = d_init + k
+
      do delta = k - k_end + max_delta, max_delta
-        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, k, &
+        call overlap(flow, nlon, nlat, periodic, dist_lim, hshp_interp, d, &
              delta, j = max_delta + 1)
      end do
   end do
 
   do j = 1, max_delta + 1
      call dispatch_snapshot(flow(j), unit_isolated, unit_number_eddies, rank, &
-          k_begin, max_delta, k = k_end - max_delta - 1 + j)
+          k_begin, max_delta, d_init, k = k_end - max_delta - 1 + j)
   end do
 
   ! 5. Back matter