diff --git a/Inst_eddies/Tests/test_set_max_speed.f90 b/Inst_eddies/Tests/test_set_max_speed.f90
index f5021f536a37ccfb7c39e1fd6c8468cee492fbeb..38d9fc026029596dd23206ba1fb233b4b7533428 100644
--- a/Inst_eddies/Tests/test_set_max_speed.f90
+++ b/Inst_eddies/Tests/test_set_max_speed.f90
@@ -102,9 +102,10 @@ program test_set_max_speed
 
      i_outer = n_cont
 
-     call set_max_speed(e, cont_list, n_cont, &
-          ssh(llc(1):urc(1), llc(2):urc(2)), u(llc(1):urc(1), llc(2):urc(2)), &
-          v(llc(1):urc(1), llc(2):urc(2)), corner_window, step)
+     call set_max_speed(e%speed_cont, e%max_speed, cont_list, n_cont, &
+          e%extr%coord, ssh(llc(1):urc(1), llc(2):urc(2)), &
+          u(llc(1):urc(1), llc(2):urc(2)), v(llc(1):urc(1), llc(2):urc(2)), &
+          corner_window, step)
 
      do i = i_outer + 1, n_cont
         call shp_append_object_03(ishape, hshp, shpt_polygon, &
diff --git a/Inst_eddies/set_contours.f90 b/Inst_eddies/set_contours.f90
index e6824439c12b2925f9d610ebeca5ae3772546780..88a58e0e1d225c294c67fcdfdfe46fd7481fb7fc 100644
--- a/Inst_eddies/set_contours.f90
+++ b/Inst_eddies/set_contours.f90
@@ -88,8 +88,8 @@ contains
 
        ! Done restricting field
 
-       call set_max_speed(e, cont_list, n_cont, &
-            ssh(llc(1):urc(1), llc(2):urc(2)), &
+       call set_max_speed(e%speed_cont, e%max_speed, cont_list, n_cont, &
+            e%extr%coord, ssh(llc(1):urc(1), llc(2):urc(2)), &
             u(llc(1):urc(1), llc(2):urc(2)), &
             v(llc(1):urc(1), llc(2):urc(2)), corner_window, step)
     end if
diff --git a/Inst_eddies/set_max_speed.F90 b/Inst_eddies/set_max_speed.F90
index 20acdaadbad1e03bfcfd50491c63fdf0c1fd4204..2532e499696231dd48ad782d5a6d9995f9f917be 100644
--- a/Inst_eddies/set_max_speed.F90
+++ b/Inst_eddies/set_max_speed.F90
@@ -4,7 +4,8 @@ module set_max_speed_m
 
 contains
 
-  subroutine set_max_speed(e, cont_list, n_cont, ssh, u, v, corner, step)
+  subroutine set_max_speed(speed_cont, max_speed, cont_list, n_cont, &
+       extr_coord, ssh, u, v, corner, step)
 
     ! This procedure defines the components speed_cont and max_speed
     ! of argument e. On return, e%speed_cont may be a null ssh contour
@@ -26,8 +27,13 @@ contains
     use mean_speed_m, only: mean_speed
     use spher_polyline_area_m, only: spher_polyline_area
 
-    type(eddy), intent(inout):: e
-    ! e%extr%coord should be defined on input.
+    type(ssh_contour), intent(out):: speed_cont
+
+    real, intent(out):: max_speed
+     ! Average of azimuthal speed on cont_list(i_outer) or speed_cont,
+     ! in m s-1. Positive means counterclockwise circulation. If
+     ! speed_cont is not a null ssh contour then max_speed is the
+     ! speed on speed_cont.
 
     type(ssh_contour), intent(inout):: cont_list(:) ! (n_max_cont)
     ! Contour list. Defined only for subscripts 1:n_cont. On entry,
@@ -44,6 +50,9 @@ contains
     ! only called when there is an outermost contour). On return, 1 <=
     ! n_cont <= n_max_cont.
 
+    real, intent(in):: extr_coord(:)
+    ! (2) longitude and latitude of extremum , in rad
+
     real, intent(in):: ssh(:, :), u(:, :), v(:, :)
     ! The domain should be the bounding box of out_cont, because we do
     ! not exclude other extrema.
@@ -70,14 +79,14 @@ contains
     ! Now find the contours associated to the new values of SSH:
     do i = i_outer + 1, n_cont
        cont_list(i)%polyline = good_contour(corner, step, ssh, &
-            cont_list(i)%ssh, e%extr%coord)
+            cont_list(i)%ssh, extr_coord)
     end do
 
     allocate(speed(n_cont))
 
     do i = 1, n_cont
        if (cont_list(i)%closed) then
-          speed(i) = mean_speed(u, v, cont_list(i)%polyline, e%extr%coord, &
+          speed(i) = mean_speed(u, v, cont_list(i)%polyline, extr_coord, &
                corner, step)
        else
           ! It is possible that good_contour returned a null polyline
@@ -98,18 +107,18 @@ contains
 
     if (i == 0) then
        ! All speed values are NaN
-       e%speed_cont = null_ssh_contour()
-       e%max_speed = missing_speed
+       speed_cont = null_ssh_contour()
+       max_speed = missing_speed
     else
-       e%max_speed = speed(i)
+       max_speed = speed(i)
 
        if (i == i_outer) then
           ! Maximum speed on the outermost contour
-          e%speed_cont = null_ssh_contour()
+          speed_cont = null_ssh_contour()
        else
-          e%speed_cont = cont_list(i)
-          e%speed_cont%area = spher_polyline_area(e%speed_cont%polyline)
-          call ccw_orient(e%speed_cont)
+          speed_cont = cont_list(i)
+          speed_cont%area = spher_polyline_area(speed_cont%polyline)
+          call ccw_orient(speed_cont)
        end if
     end if