diff --git a/Documentation_texfol/documentation.tex b/Documentation_texfol/documentation.tex
index b12d4a738133a2286cea1cd0719d1bd525bc4789..8a166c8b783117a6a48748da2e9ea68a08e190dd 100644
--- a/Documentation_texfol/documentation.tex
+++ b/Documentation_texfol/documentation.tex
@@ -533,6 +533,7 @@ Les procédures géométriques utilisées :
 \item polygon\_area\_2d (bibliothèque Geometry)
 \item polygon\_contains\_point (bibliothèque Geometry)
 \item find\_contours\_reg\_grid (bibliothèque Contour\_531)
+\item interpolate\_eddy
 \end{itemize}
 travaillent dans le plan
 et non sur la sphère. Ces procédures sont appelées par :
@@ -540,6 +541,7 @@ et non sur la sphère. Ces procédures sont appelées par :
 \item spher\_polyline\_area
 \item inside\_4
 \item good\_contour
+\item overlap
 \end{itemize}
 Dans le plan, par deux points passe un unique segment, et la donnée
 d'un triangle est équivalente à la donnée de l'ensemble de ses trois
diff --git a/Tests/test_inside_4.f90 b/Tests/test_inside_4.f90
index e5f776c7bdd05ef30fccfd4c9aa525457404afe4..9c7f617ad0018bee1f304ae6a8f186f16ef8751e 100644
--- a/Tests/test_inside_4.f90
+++ b/Tests/test_inside_4.f90
@@ -19,7 +19,7 @@ program test_inside_4
 
   call get_command_arg_dyn(1, filename)
   print *, "Reading from ", filename, "..."
-  call shp_open_03(filename, "rb", hshp)
+  call shp_open_03(hshp, filename, "rb")
   call shp_read_object_03(hshp, 0, psobject)
   CALL shpclose(hshp)
   
diff --git a/Tests/test_mean_speed.f90 b/Tests/test_mean_speed.f90
index 9a3672dfa2ab3e732b95ba7d081be3d1146fb0bb..66817fceaf700816f445004888021a9ef341023e 100644
--- a/Tests/test_mean_speed.f90
+++ b/Tests/test_mean_speed.f90
@@ -54,7 +54,7 @@ program test_mean_speed
 
   call nf95_close(ncid)
 
-  call shp_open_03("contour", "rb", hshp)
+  call shp_open_03(hshp, "contour", "rb")
   call shp_read_object_03(hshp, 0, psobject)
   CALL shpclose(hshp)
 
diff --git a/Tests/test_nearby_extr.f90 b/Tests/test_nearby_extr.f90
index 1b8a86958a16d0a5b3732ffcc4ba611a56048ae1..6be3e3db539b5eaf6cbdcaad9f1adf579e9072da 100644
--- a/Tests/test_nearby_extr.f90
+++ b/Tests/test_nearby_extr.f90
@@ -33,7 +33,7 @@ program test_nearby_extr
   call nf95_gw_var(ncid, varid, extr_map)
   call nf95_close(ncid)
 
-  call shp_open_03("extremum", pszaccess = "rb", hshp = hshp)
+  call shp_open_03(hshp, "extremum", pszaccess = "rb")
   call shp_get_info_03(hshp, n_entities)
   allocate(list_vis(n_entities))
 
diff --git a/Tests/test_read_eddy.f90 b/Tests/test_read_eddy.f90
index cb6a5f15b729085316040574c77d7fba1f58985d..ba35ee5d0802e0dd5b94540e3bebfd1d0870c162 100644
--- a/Tests/test_read_eddy.f90
+++ b/Tests/test_read_eddy.f90
@@ -20,12 +20,11 @@ program test_read_eddy
 
   !-------------------------------------------------------------------------
 
-  call shp_open_03("Snapshot_old/extremum", pszaccess = "rb", &
-       hshp = hshp_extremum)
-  call shp_open_03("Snapshot_old/outermost_contour", pszaccess = "rb", &
-       hshp = hshp_outermost)
-  call shp_open_03("Snapshot_old/max_speed_contour", pszaccess = "rb", &
-       hshp = hshp_max_speed)
+  call shp_open_03(hshp_extremum, "Snapshot_old/extremum", pszaccess = "rb")
+  call shp_open_03(hshp_outermost, "Snapshot_old/outermost_contour", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_max_speed, "Snapshot_old/max_speed_contour", &
+       pszaccess = "rb")
   call read_field_indices(hshp_extremum, hshp_outermost, hshp_max_speed)
   call read_eddy(e, k, i, hshp_extremum, hshp_outermost, hshp_max_speed, &
        ishape = 0)
@@ -34,7 +33,7 @@ program test_read_eddy
   CALL shpclose(hshp_max_speed)
 
   call init_shapefiles(hshp_extremum, hshp_outermost, hshp_max_speed)
-  call write_eddy(e, k, i, hshp_extremum, hshp_outermost, hshp_max_speed)
+  call write_eddy(e, hshp_extremum, hshp_outermost, hshp_max_speed, k, i)
   CALL shpclose(hshp_extremum)
   print *, 'Created shapefile "extremum".'
   CALL shpclose(hshp_outermost)
diff --git a/Tests/test_read_snapshot.f90 b/Tests/test_read_snapshot.f90
index 0682f08bc3788b9eda6b3efaaadbc0cf9d518565..719a2fadabf85b9263d1729a22c02321d97cc994 100644
--- a/Tests/test_read_snapshot.f90
+++ b/Tests/test_read_snapshot.f90
@@ -49,12 +49,11 @@ program test_read_snapshot
   if (periodic) call assert(2 * dist_lim * step(1) < 180., &
        "test_read_snapshot dist_lim")
 
-  call shp_open_03("Snapshot_old/extremum", pszaccess = "rb", &
-       hshp = hshp_extremum)
-  call shp_open_03("Snapshot_old/outermost_contour", pszaccess = "rb", &
-       hshp = hshp_outermost)
-  call shp_open_03("Snapshot_old/max_speed_contour", pszaccess = "rb", &
-       hshp = hshp_max_speed)
+  call shp_open_03(hshp_extremum, "Snapshot_old/extremum", pszaccess = "rb")
+  call shp_open_03(hshp_outermost, "Snapshot_old/outermost_contour", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_max_speed, "Snapshot_old/max_speed_contour", &
+       pszaccess = "rb")
   call read_field_indices(hshp_extremum, hshp_outermost, hshp_max_speed)
   call read_snapshot(s, k, hshp_extremum, hshp_outermost, hshp_max_speed, &
        corner * deg_to_rad, step * deg_to_rad, nlon, nlat, periodic, dist_lim)
@@ -66,8 +65,8 @@ program test_read_snapshot
 
   ! Write snapshot:
   do i = 1, s%number_vis_extr
-     call write_eddy(s%list_vis(i), k, i, hshp_extremum, hshp_outermost, &
-          hshp_max_speed)
+     call write_eddy(s%list_vis(i), hshp_extremum, hshp_outermost, &
+          hshp_max_speed, k, i)
   end do
 
   print *, "Number of extrema:", s%number_vis_extr
diff --git a/Tests/test_set_max_speed.f90 b/Tests/test_set_max_speed.f90
index cb06b30985fb4b67d93a785967184b4ea70e8d7d..5f2b1f6b5404f1ad7e8b8585da9c8d674327a2bf 100644
--- a/Tests/test_set_max_speed.f90
+++ b/Tests/test_set_max_speed.f90
@@ -80,7 +80,7 @@ program test_set_max_speed
   call nf95_close(ncid)
 
   print *, "Reading from shapefile test_get_1_outerm..."
-  call shp_open_03("test_get_1_outerm", "rb", hshp)
+  call shp_open_03(hshp, "test_get_1_outerm", "rb")
   call shp_read_object_03(hshp, 0, psobject)
   call dbfreadattribute(hshp, 0, 0, outermost_contour_ssh)
   CALL shpclose(hshp)
diff --git a/Tests/test_spher_polygon_area.f90 b/Tests/test_spher_polygon_area.f90
index 061353f3623d4460df198136910b6a9f94340a06..c5b7735c0a8bfd499a97ff33cc026f236b93c6e9 100644
--- a/Tests/test_spher_polygon_area.f90
+++ b/Tests/test_spher_polygon_area.f90
@@ -21,7 +21,7 @@ program test_spher_polygon_area
   !---------------------------------------------------------------------
 
   call get_command_arg_dyn(1, filename, "Required argument: shapefile")
-  call shp_open_03(filename, "rb", hshp)
+  call shp_open_03(hshp, filename, "rb")
   call shp_get_info_03(hshp, nentities)
   allocate(p(0:nentities - 1))
   
diff --git a/Tests/test_successive_overlap.f90 b/Tests/test_successive_overlap.f90
index 87a89323b9438907d5a9a096c9794362a7fa5ce3..ebadb1068076b31564761dc76c6cebf4234e1544 100644
--- a/Tests/test_successive_overlap.f90
+++ b/Tests/test_successive_overlap.f90
@@ -61,12 +61,12 @@ program test_successive_overlap
   corner = corner_deg * deg_to_rad
   step = step_deg * deg_to_rad
 
-  call shp_open_03(trim(snapshot_1) // "/extremum", pszaccess = "rb", &
-       hshp = hshp_extremum)
-  call shp_open_03(trim(snapshot_1) // "/outermost_contour", pszaccess = "rb", &
-       hshp = hshp_outermost)
-  call shp_open_03(trim(snapshot_1) // "/max_speed_contour", pszaccess = "rb", &
-       hshp = hshp_max_speed)
+  call shp_open_03(hshp_extremum, trim(snapshot_1) // "/extremum", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_outermost, trim(snapshot_1) // "/outermost_contour", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_max_speed, trim(snapshot_1) // "/max_speed_contour", &
+       pszaccess = "rb")
   call read_field_indices(hshp_extremum, hshp_outermost, hshp_max_speed)
   call read_snapshot(flow(1), k, hshp_extremum, hshp_outermost, &
        hshp_max_speed, corner, step, nlon, nlat, periodic, dist_lim)
@@ -75,12 +75,12 @@ program test_successive_overlap
   CALL shpclose(hshp_max_speed)
   print *, snapshot_1, ", k = ", k
 
-  call shp_open_03(trim(snapshot_2) // "/extremum", pszaccess = "rb", &
-       hshp = hshp_extremum)
-  call shp_open_03(trim(snapshot_2) // "/outermost_contour", pszaccess = "rb", &
-       hshp = hshp_outermost)
-  call shp_open_03(trim(snapshot_2) // "/max_speed_contour", pszaccess = "rb", &
-       hshp = hshp_max_speed)
+  call shp_open_03(hshp_extremum, trim(snapshot_2) // "/extremum", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_outermost, trim(snapshot_2) // "/outermost_contour", &
+       pszaccess = "rb")
+  call shp_open_03(hshp_max_speed, trim(snapshot_2) // "/max_speed_contour", &
+       pszaccess = "rb")
   ! We assume that the field indices are the same than in snapshot_1.
   call read_snapshot(flow(2), k, hshp_extremum, hshp_outermost, &
        hshp_max_speed, corner, step, nlon, nlat, periodic, dist_lim)
diff --git a/extraction_eddies.f90 b/extraction_eddies.f90
index e7ef136330b54c707c305ea855f4c738a46b5f14..caa1d95da0cfaace7a0c1ce5427859bb2e7ecafc 100644
--- a/extraction_eddies.f90
+++ b/extraction_eddies.f90
@@ -188,8 +188,8 @@ program extraction_eddies
 
   ! Write snapshot:
   do i = 1, s%number_vis_extr
-     call write_eddy(s%list_vis(i), k, i, hshp_extremum, hshp_outermost, &
-          hshp_max_speed)
+     call write_eddy(s%list_vis(i), hshp_extremum, hshp_outermost, &
+          hshp_max_speed, k, i)
   end do
 
   print *, "Number of extrema:", s%number_vis_extr
diff --git a/overlap.f90 b/overlap.f90
index a552007bf41e4753bd69b453c9b808c643b39642..efbd1c59b7e3fbab1584981340e4b7d23504fd83 100644
--- a/overlap.f90
+++ b/overlap.f90
@@ -122,9 +122,9 @@ contains
                       k_interp = k - j + j_interp
                       call write_eddy(interpolate_eddy( &
                            flow(j - delta)%list_vis(i1), flow(j)%list_vis(i2), &
-                           k - delta, k, k_interp), k_interp, &
-                           flow(j_interp)%number_eddies, hshp_extremum, &
-                           hshp_outermost, hshp_max_speed)
+                           k - delta, k, k_interp), hshp_extremum, &
+                           hshp_outermost, hshp_max_speed, k_interp, &
+                           flow(j_interp)%number_eddies)
                       write(unit_edgelist, fmt = *) k_interp - 1, i_pred, &
                            k_interp, flow(j_interp)%number_eddies, w
                       i_pred = flow(j_interp)%number_eddies
diff --git a/set_all_outerm.f90 b/set_all_outerm.f90
index dcff12737c0c8772f6c3b7c14d38b96a2e78cac9..f26082f700624e156f9ab24e0fd23d56dfb16afa 100644
--- a/set_all_outerm.f90
+++ b/set_all_outerm.f90
@@ -89,9 +89,9 @@ contains
          innermost_level, cyclone, ssh(1 - copy:nlon + copy, :), periodic, &
          my_lbound = [1 - copy, 1])
     ! Assertion: \forall k, s%ind_extr(1, k) \in \{2 - copy, \dots,
-    ! nlon + copy - 1\} et s%ind_extr(2, k) \in \{2, \dots, nlat - 1\}
+    ! nlon + copy - 1\} and s%ind_extr(2, k) \in \{2, \dots, nlat - 1\}
     
-    ! Assertion: \forall k, s%ind_extr(1, k) \in \{1, \dots, nlon\} et
+    ! Assertion: \forall k, s%ind_extr(1, k) \in \{1, \dots, nlon\} and
     ! s%ind_extr(2, k) \in \{2, \dots, nlat - 1\}
 
     if (periodic) then
diff --git a/write_eddy.f90 b/write_eddy.f90
index d7ee53931a67f3842bd3f1d223d710ece87b8de6..8ea0dd4e2abb70cb16f14004b59f6ac08ddf2928 100644
--- a/write_eddy.f90
+++ b/write_eddy.f90
@@ -4,7 +4,7 @@ module write_eddy_m
 
 contains
 
-  subroutine write_eddy(e, k, i, hshp_extremum, hshp_outermost, hshp_max_speed)
+  subroutine write_eddy(e, hshp_extremum, hshp_outermost, hshp_max_speed, k, i)
 
     use, intrinsic:: ieee_arithmetic, only: ieee_is_nan
 
@@ -24,15 +24,14 @@ contains
          ifield_max_speed_eddy_index 
 
     type(eddy), intent(in):: e
-    integer, intent(in):: k ! date index
-    integer, intent(in):: i ! eddy index
-
     TYPE(shpfileobject), intent(in):: hshp_extremum ! shapefile extremum
 
     TYPE(shpfileobject), intent(in):: hshp_outermost
     ! shapefile outermost_contour
 
     TYPE(shpfileobject), intent(in):: hshp_max_speed ! shapefile x_speed_contour
+    integer, intent(in):: k ! date index
+    integer, intent(in):: i ! eddy index
 
     ! Local:
     integer ishape