diff --git a/Analysis/eddy_dump.py b/Analysis/eddy_dump.py
new file mode 100755
index 0000000000000000000000000000000000000000..7e2eb26e3e03b8ef89957aa9fda4cb76484e8e60
--- /dev/null
+++ b/Analysis/eddy_dump.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+
+import argparse
+import shapefile
+from os import path
+import pprint
+
+parser = argparse.ArgumentParser()
+parser.add_argument("directory", help = "containing the three shapefiles")
+args = parser.parse_args()
+
+eddy_index = input("eddy_index = ? ")
+eddy_index = int(eddy_index)
+ishape = eddy_index - 1
+
+for basename in ["extremum", "outermost_contour", "max_speed_contour"]:
+    filename = path.join(args.directory, basename)
+    
+    with shapefile.Reader(filename) as f:
+        shapeRec = f.shapeRecord(ishape)
+        print("\n", filename, ":")
+
+        if shapeRec.shape.shapeType == shapefile.NULL:
+            dct = shapeRec.record.as_dict()
+            pprint.pprint(dct)
+            print("null shape")
+        else:
+            pprint.pprint(shapeRec.__geo_interface__)
diff --git a/Analysis/filter.py b/Analysis/filter.py
index 4ed0faa0a8bd07f44cf1546eb895b00f88b25aa2..0178d26bd3664b803bdc0c38382d6165257e2e0b 100755
--- a/Analysis/filter.py
+++ b/Analysis/filter.py
@@ -2,12 +2,12 @@
 
 import shapefile
 
-with shapefile.Reader("extremum_1") as extremum, \
-     shapefile.Reader("outermost_contour_1") as outermost_cont, \
-     shapefile.Reader("max_speed_contour_1") as max_speed_cont, \
-     shapefile.Writer("extremum_1_filtered") as extremum_filt, \
-     shapefile.Writer("outermost_contour_1_filtered") as outermost_cont_filt, \
-     shapefile.Writer("max_speed_contour_1_filtered") as max_speed_cont_filt:
+with shapefile.Reader("extremum") as extremum, \
+     shapefile.Reader("outermost_contour") as outermost_cont, \
+     shapefile.Reader("max_speed_contour") as max_speed_cont, \
+     shapefile.Writer("extremum_filtered") as extremum_filt, \
+     shapefile.Writer("outermost_contour_filtered") as outermost_cont_filt, \
+     shapefile.Writer("max_speed_contour_filtered") as max_speed_cont_filt:
     extremum_filt.fields = extremum.fields[1:]
     outermost_cont_filt.fields = outermost_cont.fields[1:]
     max_speed_cont_filt.fields = max_speed_cont.fields[1:]
diff --git a/Documentation_texfol/documentation.tex b/Documentation_texfol/documentation.tex
index df34d88e04ace888dedf62f2a0b17dd317ac63a8..8fb48e705d8f6efeca232094aef2c69585163847 100644
--- a/Documentation_texfol/documentation.tex
+++ b/Documentation_texfol/documentation.tex
@@ -62,12 +62,17 @@ programme ne traite qu'une date.
 \subsection{Cas pathologiques}
 
 \verb+out_cont+ est vide si et seulement s'il n'y a
-pas de bon contour à \verb+innermost_level+. Le champ speed de
-extremum.dbf vaut \verb+missing_speed+ si et seulement si radius4 == 0
-ou \verb+speed_outerm+ dans \verb+set_max_speed+ est NaN. Si radius4
-$\ge$ 2 et speed dans extremum.dbf vaut \verb+missing_speed+ alors
-\verb+speed_outerm+ dans \verb+set_max_speed+ est NaN,
-\verb+e%speed_cont+ est
+pas de bon contour à \verb+innermost_level+, ce qui peut en
+particulier se produire si \verb+innermost_level+ correspond à
+l'amplitude minimale. Même si un contour extérieur est trouvé (avec
+une amplitude supérieure à l'amplitude minimale par construction), il
+peut ne pas être valide à cause du critère de surface minimale.
+
+Le champ speed de extremum.dbf vaut \verb+missing_speed+ si et
+seulement si radius4 == 0 ou \verb+speed_outerm+ dans
+\verb+set_max_speed+ est NaN. Si radius4 $\ge$ 2 et speed dans
+extremum.dbf vaut \verb+missing_speed+ alors \verb+speed_outerm+ dans
+\verb+set_max_speed+ est NaN, \verb+e%speed_cont+ est
 non vide dans \verb+max_speed_contour.shp+ et \verb+mean_speed+ sur
 \verb+e%speed_cont+ a donné un NaN. En d'autres termes, les deux
 appels à \verb+mean_speed+ ont tous les deux produit un
diff --git a/Tests/Input/successive_overlap_global_nml.txt b/Tests/Input/successive_overlap_global_nml.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bcbe3d6dfde524b6cb7c5776212de96b7296cc52
--- /dev/null
+++ b/Tests/Input/successive_overlap_global_nml.txt
@@ -0,0 +1,2 @@
+&MAIN_NML CORNER_DEG=0.125,-89.875, NLON    =1440 NLAT    =720/
+
diff --git a/Tests/long_tests.json b/Tests/long_tests.json
index 8365bf26dec58f1c646e2f6c5d47f91a0057b2e2..4bd4aede660dc33421c91bcb8582f376f235800e 100644
--- a/Tests/long_tests.json
+++ b/Tests/long_tests.json
@@ -1,12 +1,12 @@
 [
     {
-	"args": ["$compil_prod_dir/test_set_all_outerm",
+	"args": ["$build_dir/test_set_all_outerm",
 		 "$input_dir/h_region_3.nc"],
 	"title": "Set_all_outerm",
 	"input": "&main_nml min_amp = 0.001/\n"
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_3",
 	"required": [["$input_dir/h_region_3.nc", "h.nc"],
 		     ["$input_dir/uv_region_3.nc", "uv.nc"]],
@@ -14,7 +14,7 @@
 	"description": "Larger region, 120 x 120. Includes degenerate extrema."
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_3_min",
 	"required": [["$input_dir/h_region_3.nc", "h.nc"],
 		     ["$input_dir/uv_region_3.nc", "uv.nc"]],
@@ -22,7 +22,7 @@
 	"description": "Same as Extraction_eddies_region_3 except with 1 mm minimum amplitude."
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_5",
 	"required": [["$input_dir/h_region_5.nc", "h.nc"],
 		     ["$input_dir/uv_region_5.nc", "uv.nc"]],
diff --git a/Tests/short_tests.json b/Tests/short_tests.json
index 9c0ff18ab82504c5004f4924ada55d5fc3bfee73..5f100604fe86d0de196071db062fbf69e698fd95 100644
--- a/Tests/short_tests.json
+++ b/Tests/short_tests.json
@@ -1,7 +1,7 @@
 [
     {
 	"stdin_filename" : "$input_dir/good_contour.txt",
-	"args" : ["$compil_prod_dir/test_good_contour",
+	"args" : ["$build_dir/test_good_contour",
 		  "$input_dir/example.nc"],
 	"title" : "Good_contour",
 	"required": [["$input_dir/outside_points_1.csv", "outside_points.csv"]],
@@ -10,7 +10,7 @@
     },
     {
 	"stdin_filename" : "$input_dir/good_contour_2.txt",
-	"args" : ["$compil_prod_dir/test_good_contour",
+	"args" : ["$build_dir/test_good_contour",
 		  "$input_dir/example.nc"],
 	"title" : "Good_contour_2",
 	"required": [["$input_dir/outside_points_2.csv", "outside_points.csv"]],
@@ -19,26 +19,26 @@
     },
     {
 	"stdin_filename" : "$input_dir/no_good_contour.txt",
-	"args" : ["$compil_prod_dir/test_good_contour",
+	"args" : ["$build_dir/test_good_contour",
 		  "$input_dir/example.nc"],
 	"title" : "No_good_contour",
 	"required": [["$input_dir/outside_points_1.csv", "outside_points.csv"]]
     },
     {
-	"args" : ["$compil_prod_dir/test_local_extrema",
+	"args" : ["$build_dir/test_local_extrema",
 		  "$input_dir/h_region_1.nc"],
 	"title" : "Local_extrema",
 	"input" : "f"
     },
     {
-	"args" : ["$compil_prod_dir/test_local_extrema",
+	"args" : ["$build_dir/test_local_extrema",
 		  "$input_dir/h_region_2.nc"],
 	"title" : "Local_extrema_larger",
 	"input" : "f",
 	"description": "With a larger region than in test Local_extrema."
     },
     {
-	"args" : "$compil_prod_dir/test_get_1_outerm",
+	"args" : "$build_dir/test_get_1_outerm",
 	"required":
 	[
 	    ["$input_dir/h_region_1.nc", "h.nc"],
@@ -48,7 +48,7 @@
 	"input" : "&main_nml /\n"
     },
     {
-	"args" : "$compil_prod_dir/test_get_1_outerm",
+	"args" : "$build_dir/test_get_1_outerm",
 	"required":
 	[
 	    ["$input_dir/h_region_1.nc", "h.nc"],
@@ -59,7 +59,7 @@
 	"description": "Assume insufficient amplitude for extrema 2 and 8. Even if extremum 8 does not have a particularly small amplitude, we just want to see the target extremum, 6, grow its outermost contour compared to the case without minimum amplitude."
     },
     {
-	"args" : "$compil_prod_dir/test_get_1_outerm",
+	"args" : "$build_dir/test_get_1_outerm",
 	"required": [
 	    ["$input_dir/h_region_1.nc", "h.nc"],
 	    [
@@ -72,20 +72,20 @@
 	"description": "Negative value for extremum 2."
     },
     {
-	"args" : ["$compil_prod_dir/test_max_speed_contour_ssh",
+	"args" : ["$build_dir/test_max_speed_contour_ssh",
 		  "$input_dir/h_region_1.nc", "$input_dir/uv_region_1.nc"],
 	"title" : "Max_speed_contour_ssh",
 	"input" : "&main_nml /\n"
     },
     {
-	"args" : ["$compil_prod_dir/test_max_speed_contour_ssh",
+	"args" : ["$build_dir/test_max_speed_contour_ssh",
 		  "$input_dir/h_region_1.nc", "$input_dir/uv_region_1.nc"],
 	"title" : "Max_speed_contour_ssh_north",
 	"input" : "&main_nml IND_EXTR= 4,14/\n",
 	"description": "direction = 2"
     },
     {
-	"args" : ["$compil_prod_dir/test_max_speed_contour_ssh",
+	"args" : ["$build_dir/test_max_speed_contour_ssh",
 		  "$input_dir/huv_2015_11_29.nc",
 		  "$input_dir/huv_2015_11_29.nc"],
 	"title" : "Max_speed_contour_ssh_missing",
@@ -93,7 +93,7 @@
 	"description": "Missing value in speed."
     },
     {
-	"args" : "$compil_prod_dir/test_mean_speed",
+	"args" : "$build_dir/test_mean_speed",
 	"required": [["$input_dir/uv_region_1.nc", "uv.nc"],
 		     ["$tests_old_dir/Get_1_outerm/test_get_1_outerm.shp",
 		      "contour.shp"],
@@ -105,7 +105,7 @@
 	"input" : "&main_nml /\n"
     },
     {
-	"args" : "$compil_prod_dir/test_mean_speed",
+	"args" : "$build_dir/test_mean_speed",
 	"required": [["$input_dir/uv_region_1.nc","uv.nc"],
 		     ["$input_dir/outermost_contour_alt.shp", "contour.shp"],
 		     ["$input_dir/outermost_contour_alt.dbf", "contour.dbf"],
@@ -114,7 +114,7 @@
 	"input" : "&main_nml /\n"
     },
     {
-	"args": "$compil_prod_dir/test_set_max_speed",
+	"args": "$build_dir/test_set_max_speed",
 	"title": "Set_max_speed",
 	"required": [["$input_dir/h_outermost.nc", "h.nc"],
 		     ["$input_dir/uv_outermost.nc", "uv.nc"],
@@ -128,7 +128,7 @@
 	"input" : "&main_nml /\n"
     },
     {
-	"args": "$compil_prod_dir/test_set_max_speed",
+	"args": "$build_dir/test_set_max_speed",
 	"title": "Set_max_speed_noise",
 	"required":
 	[
@@ -140,14 +140,14 @@
 	"input": "&MAIN_NML IND_TARG_EXTR=19,11 /\n"
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_1",
 	"required": [["$input_dir/h_region_1.nc", "h.nc"],
 		     ["$input_dir/uv_region_1.nc", "uv.nc"]],
 	"input": "&main_nml min_amp = 0./\n"
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_1_noise",
 	"required": [["$input_dir/h_region_1.nc", "h.nc"],
 		     ["$input_dir/uv_region_1.nc", "uv.nc"]],
@@ -155,33 +155,33 @@
 	"description" : "Same as Extraction_eddies_region_1 but with non-zero minimal amplitude."
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_2",
 	"required": [["$input_dir/h_region_2.nc", "h.nc"],
 		     ["$input_dir/uv_region_2.nc", "uv.nc"]],
 	"input": "&main_nml min_amp = 0./\n"
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_2_noise",
 	"required": [["$input_dir/h_region_2.nc", "h.nc"],
 		     ["$input_dir/uv_region_2.nc", "uv.nc"]],
 	"input": "&main_nml /\n"
     },
     {
-	"args": ["$compil_prod_dir/test_inside_4",
+	"args": ["$build_dir/test_inside_4",
 		 "$input_dir/outermost_eddy_5"],
 	"title": "Inside_4_true",
 	"stdin_filename": "$input_dir/inside_4_true_nml.txt"
     },
     {
-	"args": ["$compil_prod_dir/test_inside_4",
+	"args": ["$build_dir/test_inside_4",
 		 "$input_dir/outermost_eddy_5"],
 	"title": "Inside_4_false",
 	"stdin_filename": "$input_dir/inside_4_false_nml.txt"
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_region_4",
 	"required":
 	[
@@ -191,44 +191,44 @@
 	"input": "&main_nml /\n",
 	"description": "Part of the domain has missing values."
     },
-    {"args": "$compil_prod_dir/test_weight", "title": "Weight"},
+    {"args": "$build_dir/test_weight", "title": "Weight"},
     {
-	"args": "$compil_prod_dir/test_spher_polyline_area",
+	"args": "$build_dir/test_spher_polyline_area",
 	"title": "Spher_polyline_area"
     },
     {
-	"args": ["$compil_prod_dir/test_spher_polygon_area",
+	"args": ["$build_dir/test_spher_polygon_area",
 		 "$input_dir/triangle"],
 	"title": "Spher_polygon_area"
     },
     {
-	"args": ["$compil_prod_dir/test_spher_polygon_area",
+	"args": ["$build_dir/test_spher_polygon_area",
 		 "$input_dir/tri_square_hole"],
 	"title": "Area_multi_polygon",
 	"description": "Area of a multipolygon, with a hole in one polygon."
     },
     {
-	"args": "$compil_prod_dir/test_read_eddy.sh",
+	"args": "$build_dir/test_read_eddy.sh",
 	"required":
 	[["$input_dir/Region_4_2006_01_01/Snapshot", "Snapshot_old"]],
 	"title": "Read_eddy"
     },
     {
-	"args": "$compil_prod_dir/test_read_snapshot.sh",
+	"args": "$build_dir/test_read_snapshot.sh",
 	"required":
 	[["$input_dir/Region_4_2006_01_01/Snapshot", "Snapshot_old"]],
 	"title": "Read_snapshot",
 	"stdin_filename": "$input_dir/read_snapshot_nml.txt"
     },
     {
-	"args" : ["$compil_prod_dir/test_local_extrema",
+	"args" : ["$build_dir/test_local_extrema",
 		  "$input_dir/Region_4_2006_01_01/h.nc"],
 	"title" : "Local_extrema_missing",
 	"description": "With input file containing missing values.",
 	"input" : "f"
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$input_dir/Region_4_2006_01_01/Snapshot",
 		  "$input_dir/Region_4_2006_01_01/Snapshot"],
 	"title" : "Successive_overlap",
@@ -236,7 +236,7 @@
 	"stdin_filename": "$input_dir/successive_overlap_nml.txt"
     },
     {
-	"args" : "$compil_prod_dir/test_nearby_extr",
+	"args" : "$build_dir/test_nearby_extr",
 	"title" : "Nearby_extr",
 	"required":
 	[
@@ -245,7 +245,7 @@
 	]
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$tests_old_dir/Extraction_eddies_region_5/Snapshot",
 		  "$tests_old_dir/Extraction_eddies_region_5/Snapshot"],
 	"title" : "Successive_overlap_region_5_one_date",
@@ -253,28 +253,28 @@
 	"stdin_filename": "$input_dir/successive_overlap_region_5_nml.txt"
     },
     {
-	"args" : ["$compil_prod_dir/test_local_extrema",
+	"args" : ["$build_dir/test_local_extrema",
 		  "$input_dir/h_region_1.nc"],
 	"title" : "Local_extrema_periodic",
 	"input" : "t",
 	"description": "Same as Local_extrema but with periodicity. The data is actually regional so there is a discontinuity in the field and the longitude grid assuming periodicity is not regular."
     },
     {
-	"args" : ["$compil_prod_dir/test_local_extrema",
+	"args" : ["$build_dir/test_local_extrema",
 		  "$input_dir/h_2006_01_01_coarse.nc"],
 	"title" : "Local_extrema_periodic_2",
 	"input" : "t",
 	"description": "The data is really global so there is no discontinuity in the field and the longitude grid assuming periodicity is regular."
     },
     {
-	"args": ["$compil_prod_dir/test_set_all_outerm",
+	"args": ["$build_dir/test_set_all_outerm",
 		 "$input_dir/h_2006_01_01_coarse.nc"],
 	"title": "Set_all_outerm_periodic",
 	"input": "&main_nml MAX_RADIUS = 4, 4/\n",
 	"description": "test_set_all_outerm with periodicity."
     },
     {
-	"args": "$compil_prod_dir/extraction_eddies.sh",
+	"args": "$build_dir/extraction_eddies.sh",
 	"title": "Extraction_eddies_periodic",
 	"required": [["$input_dir/h_2006_01_01_coarse.nc", "h.nc"],
 		     ["$input_dir/uv_2006_01_01_coarse.nc", "uv.nc"]],
@@ -282,7 +282,7 @@
 	"description": "Periodic domain."
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$tests_old_dir/Extraction_eddies_periodic/Snapshot",
 		  "$tests_old_dir/Extraction_eddies_periodic/Snapshot"],
 	"title" : "Successive_overlap_periodic",
@@ -290,7 +290,7 @@
 	"stdin_filename": "$input_dir/successive_overlap_periodic_nml.txt"
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$input_dir/Region_4_2006_01_01/Snapshot",
 		  "$input_dir/Region_4_2006_01_02/Snapshot"],
 	"title" : "Successive_overlap_different_snapshots",
@@ -298,7 +298,7 @@
 	"stdin_filename": "$input_dir/successive_overlap_nml.txt"
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$tests_old_dir/Extraction_eddies_region_2_noise/Snapshot",
 		  "$input_dir/Region_2_2006_01_02/Snapshot"],
 	"title" : "Successive_overlap_region_2",
@@ -306,11 +306,19 @@
 	"stdin_filename": "$input_dir/successive_overlap_region_2_nml.txt"
     },
     {
-	"args" : ["$compil_prod_dir/test_successive_overlap",
+	"args" : ["$build_dir/test_successive_overlap",
 		  "$tests_old_dir/Extraction_eddies_region_5/Snapshot",
 		  "$input_dir/Snapshot_region_5_2006_01_02"],
 	"title" : "Successive_overlap_region_5",
 	"description": "Same as Successive_overlap_region_2, but with a larger region. We get some merging and splitting.",
 	"stdin_filename": "$input_dir/successive_overlap_region_5_nml.txt"
+    },
+    {
+	"args" : ["$build_dir/test_successive_overlap",
+		  "$large_input_dir/Snapshot_2006_01_01",
+		  "$large_input_dir/Snapshot_2006_01_02"],
+	"title" : "Successive_overlap_global",
+	"description": "Global grid, normal 0.25° resolution.",
+	"stdin_filename": "$input_dir/successive_overlap_global_nml.txt"
     }
 ]
diff --git a/extraction_eddies.f90 b/extraction_eddies.f90
index 5f04e0a673766c94271b5ac83a42eb8d8c8988db..e7ef136330b54c707c305ea855f4c738a46b5f14 100644
--- a/extraction_eddies.f90
+++ b/extraction_eddies.f90
@@ -77,6 +77,7 @@ program extraction_eddies
   call assert(IEEE_SUPPORT_DATATYPE(0.), ieee_support_nan(0.), &
        "extraction_eddies: not enough IEEE support")
 
+  ! We need this before looking at the input files:
   write(unit = error_unit, nml = main_nml)
   write(unit = error_unit, fmt = *) "Enter namelist main_nml."
   read(unit = *, nml = main_nml)
@@ -88,8 +89,10 @@ program extraction_eddies
   call nf95_get_att(ncid, varid, name = "units", values = time_unit)
   call assert(time_unit == "days since 1950-01-01 00:00:00" &
        .or. time_unit == "days since 1950-1-1 00:00:00", "main: bad time unit")
+
   ! We are assuming there is a single date in the input file:
   call nf95_get_var(ncid, varid, time)
+  
   k = nint(time)
   call assert(abs(time - k) < 0.1, "main: bad time value")
 
diff --git a/get_1_outerm.f90 b/get_1_outerm.f90
index 5017fbf138930c3e217981fa6677aeaad2569f7d..01657288977887223f00022ba687aa3b7d0d480b 100644
--- a/get_1_outerm.f90
+++ b/get_1_outerm.f90
@@ -82,7 +82,7 @@ contains
           get_1_outerm%polyline = tentative_contour
           get_1_outerm%ssh = level_try
        else
-          ! {no good contour at maxval or minval}
+          ! Assertion: {no good contour at maxval or minval}
           level_bad = level_try
 
           do while (abs(level_bad - level_good) > precision)
@@ -96,9 +96,9 @@ contains
                 level_bad = level_try
              end if
 
-             ! {get_1_outerm%polyline == good_contour(. . .,
+             ! Assertion: get_1_outerm%polyline == good_contour(. . .,
              ! level_good) and get_1_outerm%%n_points /= 0 and
-             ! no good contour at level_bad}
+             ! no good contour at level_bad
           end do
           
           get_1_outerm%ssh = level_good