diff --git a/Inst_eddies/set_all_outerm.f90 b/Inst_eddies/set_all_outerm.f90
index 85f99ab92f8326a69d1c416eb7ad9c4aa10edfe9..99f13c4b2b0fdb88dd3f2630e26f9aa7534d1480 100644
--- a/Inst_eddies/set_all_outerm.f90
+++ b/Inst_eddies/set_all_outerm.f90
@@ -48,6 +48,7 @@ contains
     ! m. By construction, innermost_level < extremum for a maximum, >
     ! extremum for a minimum.
 
+    real innermost_level_2
     logical, allocatable:: cyclone(:) ! (s%number_extr)
     integer i, l, copy
     integer n_cycl ! number of cyclones
@@ -143,9 +144,9 @@ contains
        corner_window = corner + (llc - 1) * step
 
        ! No need to consider contours with amplitudes < min_amp:
-       if (abs(s%list(i)%ssh_extr - innermost_level(i)) < min_amp) &
-            innermost_level(i) = s%list(i)%ssh_extr &
-            + merge(min_amp, - min_amp, s%list(i)%cyclone)
+       innermost_level_2 = merge(s%list(i)%ssh_extr + merge(min_amp, &
+            - min_amp, s%list(i)%cyclone), innermost_level(i), &
+            abs(s%list(i)%ssh_extr - innermost_level(i)) < min_amp)
        
        outside_points = nearby_extr(s%extr_map(llc(1):urc(1), llc(2):urc(2)), &
             s%list, i)
@@ -154,7 +155,7 @@ contains
        ! (Shift the longitude of each point to a value close to the
        ! longitude of the target extremum.)
        s%list(i)%out_cont = get_1_outerm(s%list(i)%cyclone, &
-            s%list(i)%coord_extr, innermost_level(i), outside_points, &
+            s%list(i)%coord_extr, innermost_level_2, outside_points, &
             ssh(llc(1):urc(1), llc(2):urc(2)), corner_window, step)
        s%list(i)%valid = s%list(i)%out_cont%area >= min_area
     end do