diff --git a/Documentation_texfol/Graphiques/window.odg b/Documentation_texfol/Graphiques/window.odg
index 61ff61792cbf4325f84c1494feb0b7c838e2dea7..796513de4a607d94614fdef78abd61f9884993dc 100644
Binary files a/Documentation_texfol/Graphiques/window.odg and b/Documentation_texfol/Graphiques/window.odg differ
diff --git a/Documentation_texfol/documentation.tex b/Documentation_texfol/documentation.tex
index 8fb48e705d8f6efeca232094aef2c69585163847..7b44ad308e135f2061ba8e04b32e62439695e16c 100644
--- a/Documentation_texfol/documentation.tex
+++ b/Documentation_texfol/documentation.tex
@@ -68,18 +68,31 @@ 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
+\begin{tabular}{p{5cm}cp{5cm}}
+  \hline
+  Le champ speed de extremum.dbf vaut \verb+missing_speed+
+  & $\Leftrightarrow$ &
+  radius4 == 0 ou \verb+speed_outerm+ dans \verb+set_max_speed+ est NaN \\
+  \hline
+\end{tabular}
+
+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+set_max_speed+ est NaN, la forme 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
-NaN. (\verb+e%speed_cont+ est
-non vide dans \verb+max_speed_contour.shp+ et speed dans extremum.dbf
-vaut \verb+missing_speed+) si et seulement si (radius4 $\ge$ 2 et
-speed dans extremum.dbf vaut \verb+missing_speed+).
+NaN.
+
+\begin{tabular}{p{5cm}cp{5cm}}
+  \hline
+  La forme est non vide dans \verb+max_speed_contour.shp+ et
+  speed dans extremum.dbf vaut \verb+missing_speed+
+  & $\Leftrightarrow$
+  & radius4 $\ge$ 2 et speed dans extremum.dbf vaut
+    \verb+missing_speed+ \\
+  \hline
+\end{tabular}
 
 Cas où les composantes \verb+out_cont+ ou \verb+speed_cont+ d'un
 tourbillon sont vides, c'est-à-dire égales à
@@ -103,8 +116,8 @@ tableau (\ref{tab:null_ssh_contour}).
     vide. Colonne fraction : pour la région 5, nombre de cas sur 260
     extremums au total. Note 1 : pas de bon contour à
     innermost\_level. Note 2 : out\_cont est près d'une côte, champ de
-    vitesse non défini, max\_speed vaut $10^4$ dans le fichier
-    DBF. Note 3 : pas mieux que out\_cont pour la vitesse maximale.}
+    vitesse non défini, speed vaut $10^4$ dans le fichier DBF. Note 3
+    : pas mieux que out\_cont pour la vitesse maximale.}
   \label{tab:null_ssh_contour}
 \end{table}
 Sur la région 5, sur 260 extremums, je trouve les nombres de cas
@@ -325,16 +338,16 @@ cas pathologiques.
 Format shapefile. Un type de géométrie par fichier donc il faut
 séparer les contours et les positions des extremums.
 \begin{itemize}
-\item \verb+extremum_$m.shp+ : points
-\item \verb+extremum_$m.dbf+
+\item \verb+extremum.shp+ : points
+\item \verb+extremum.dbf+
   : valeur de SSH, indice de date, indice de tourbillon à cette date,
   interpolé (logique), cyclone (logique), valid (logique), valeur
   de vitesse sur le contour de vitesse maximale
-\item \verb+outermost_contour_$m.shp+ : polygones
-\item \verb+outermost_contour_$m.dbf+ : aire, valeur de SSH, indice de
+\item \verb+outermost_contour.shp+ : polygones
+\item \verb+outermost_contour.dbf+ : aire, valeur de SSH, indice de
   date, indice de tourbillon à cette date, radius4
-\item \verb+max_speed_contour_$m.shp+ : polygones
-\item \verb+max_speed_contour_$m.dbf+
+\item \verb+max_speed_contour.shp+ : polygones
+\item \verb+max_speed_contour.dbf+
   : aire, valeur de SSH, indice de date, indice de tourbillon à cette
   date
 \end{itemize}
@@ -342,19 +355,19 @@ Soit un total de 9 fichiers par processus en comptant les fichiers
 shx.
 
 valid == 1 dans le fichier
-\verb+extremum_$m.dbf+ signifie qu'un contour extérieur a été trouvé
+\verb+extremum.dbf+ signifie qu'un contour extérieur a été trouvé
 et qu'il a une surface suffisante. Si un contour extérieur est bien
 défini (non vide) alors il a par construction une amplitude supérieure
 à \verb+min_amp+.
 
-Si une forme dans \verb+max_speed_contour_$m.shp+ est non vide alors
-la vitesse correspondante dans \verb+extremum_$m.dbf+ est la vitesse
+Si une forme dans \verb+max_speed_contour.shp+ est non vide alors
+la vitesse correspondante dans \verb+extremum.dbf+ est la vitesse
 sur cette forme.
 
 L'indice de date et l'indice de tourbillon dans
-\verb+outermost_contour_$m.dbf+ et \verb+max_speed_contour_$m.dbf+
+\verb+outermost_contour.dbf+ et \verb+max_speed_contour.dbf+
 sont en principe inutiles puisqu'ils sont aussi dans
-\verb+extremum_$m.dbf+ et que les tourbillons sont stockés dans le
+\verb+extremum.dbf+ et que les tourbillons sont stockés dans le
 même ordre dans les trois shapefiles. La redondance me semble
 préférable pour la solidité et le confort d'utilisation.
 
@@ -1054,17 +1067,21 @@ Nous avons besoin que la composante extr\_map de snapshot soit étendue
 en longitude dans le cas d'un domaine périodique pour son utilisation
 par \verb+successive_overlap+.
 
-Les tailles ci-dessous sont calculées pour \verb+max_delta+ = 4 et une
-durée de 16 ans, soit environ 5000 dates.
 \begin{description}
 \item[max\_delta] Scalaire entier. Intervalle maximal d'indices de
   dates auxquelles on cherche des recouvrements. Normalement 4.
-\item[flow] : Vecteur de type snapshot, de taille \verb+max_delta+ + 1,
-  chaque élément correspondant à une date. Environ 40 MiB.
+\item[flow] : Vecteur de type snapshot, de taille \verb+max_delta+ +
+  1, chaque élément correspondant à une date. Environ 40 MiB pour
+  \verb+max_delta+ = 4.
 \item[dist\_lim] Scalaire entier constant, = 3° / résolution.
 \item[weight\_delta] Scalaire réel.
 \end{description}
 
+On doit stocker dans le champ number\_eddies le nombre de tourbillons
+parce qu'on peut refaire des interpolations à une même date dans
+différents appels à non\_successive\_overlap : il faut que le numéro
+de tourbillon interpolé soit bien incrémenté.
+
 i désigne un indice de tourbillon, j un indice de position dans la
 fenêtre temporelle (entre 1 et \verb+max_delta+ + 1) et k un indice de
 date. Cf. figure (\ref{fig:window}) et algorithme
@@ -1092,7 +1109,7 @@ date. Cf. figure (\ref{fig:window}) et algorithme
     \ENDFOR
     \FOR{k = 2 \TO max\_delta + 1}
 
-    \STATE appel de successive\_overlap(k, k, flow)
+    \STATE appel de successive\_overlap(flow, k, k)
     \ENDFOR
     \FOR{delta = 2 \TO max\_delta}
 
@@ -1112,7 +1129,7 @@ date. Cf. figure (\ref{fig:window}) et algorithme
 
     \STATE appel de get\_snapshot(flow(max\_delta + 1), k)
 
-    \STATE appel de successive\_overlap(max\_delta + 1, k, flow)
+    \STATE appel de successive\_overlap(flow, max\_delta + 1, k)
 
     \FOR{delta = 2 \TO max\_delta}
 
@@ -1173,10 +1190,17 @@ Nombre d'appels à \verb+non_successive_overlap+ dans le prologue :
 \end{equation*}
 Dans la boucle principale : (\verb+max_delta+ - 1)(\verb+k_end_main_loop+ -
 \verb+k_begin+ - \verb+max_delta+). Dans l'épilogue, si m < \verb+n_proc+ :
-$\frac{\mathtt{max\_delta} (\mathtt{max\_delta} - 1)}{2}$. Total si m
-< \verb+n_proc+ : (\verb+max_delta+ - 1)(k\_end - \verb+k_begin+ - \verb+max_delta+ +
-1). Total si m = \verb+n_proc+ : (\verb+max_delta+ - 1)(k\_end - \verb+k_begin+ -
-$\frac{\mathtt{max\_delta}}{2}$).
+\begin{equation*}
+  \frac{\mathtt{max\_delta} (\mathtt{max\_delta} - 1)}{2}  
+\end{equation*}
+Total si m < \verb+n_proc+ : (\verb+max_delta+ - 1)(k\_end -
+\verb+k_begin+ - \verb+max_delta+ + 1). Total si m = \verb+n_proc+ :
+\begin{equation*}
+  (\mathtt{max\_delta} - 1)
+  \left(
+    \mathtt{k\_end} - \mathtt{k\_begin} - \frac{\mathtt{max\_delta}}{2}
+  \right)
+\end{equation*}
 
 Si k\_end - \verb+k_begin+ était le même pour m = \verb+n_proc+ et m <
 \verb+n_proc+, le processus m=\verb+n_proc+ aurait des plus grands nombres
@@ -1280,10 +1304,11 @@ Exemples : cf. tableaux (\ref{tab:m2}) et (\ref{tab:m3}) et figure
 \begin{figure}[htbp]
   \centering
   \includegraphics[width=\textwidth]{m3}
-  \caption{max\_delta = 4, n\_dates = 15, n\_proc = 3. En bleu le
-    prologue, en noir la boucle principale, en rouge l'épilogue. Pour
-    un processus donné, les actions sur une même colonne sont dans une
-    même boucle de l'algorithme principal.}
+  \caption{max\_delta = 4, n\_dates = 15, n\_proc = 3. Les numéros
+    sont les indices de date. En bleu le prologue, en noir la boucle
+    principale, en rouge l'épilogue. Pour un processus donné, les
+    actions sur une même colonne sont dans une même boucle de
+    l'algorithme principal.}
   \label{fig:m3}
 \end{figure}
 
@@ -1342,7 +1367,7 @@ un seul processus.
   \ENDFOR
   \FOR{k = k\_begin + 1 \TO k\_begin + max\_delta}
 
-  \STATE appel de successive\_overlap(k - k\_begin + 1, k, flow)
+  \STATE appel de successive\_overlap(flow, k - k\_begin + 1, k)
   \ENDFOR
   \FOR{delta = 2 \TO max\_delta}
 
@@ -1364,7 +1389,7 @@ un seul processus.
 
   \STATE appel de get\_snapshot(flow(max\_delta + 1), k)
 
-  \STATE appel de successive\_overlap(max\_delta + 1, k, flow)
+  \STATE appel de successive\_overlap(flow, max\_delta + 1, k)
 
   \FOR{delta = 2 \TO max\_delta}
 
@@ -1446,7 +1471,7 @@ flow(j)\%list\_vis\%delta\_in, flow\%number\_eddies. Cf. algorithme
     \STATE polygon\_1 = merge(flow(j -
     delta)\%list\_vis(i1)\%speed\_cont\%polyline, flow(j -
     delta)\%list\_vis(i1)\%out\_cont\%polyline, flow(j -
-    delta)\%list\_vis(i1)\%max\_speed $\ne$ 0)
+    delta)\%list\_vis(i1)\%speed\_cont\%n\_points $\ne$ 0)
 
     \STATE i1\_lon = flow(j - delta)\%ind\_extr(1, i1)
 
@@ -1465,7 +1490,7 @@ flow(j)\%list\_vis\%delta\_in, flow\%number\_eddies. Cf. algorithme
     \STATE polygon\_2 =
     merge(flow(j)\%list\_vis(i2)\%speed\_cont\%polyline,
     flow(j)\%list\_vis(i2)\%out\_cont\%polyline,
-    flow(j)\%list\_vis(i2)\%max\_speed $\ne$ 0)
+    flow(j)\%list\_vis(i2)\%speed\_cont\%n\_points $\ne$ 0)
 
     \IF{polygon\_1 et polygon\_2 se recouvrent}
 
@@ -1525,7 +1550,7 @@ gagnerait rien en quantité de copie, et on perdrait en mémoire vive
 occupée.
 
 Contrainte géométrique : les extremums i1 et i2 doivent être ramenés,
-via une modulation de $2 \pi$, à une distance inférieure à $pi$ en
+via une modulation de $2 \pi$, à une distance inférieure à $\pi$ en
 longitude. Si $\lambda_1$ désigne la longitude de l'extremum 1, et
 $\lambda$ une longitude quelconque, on cherche $m \in \mathbb{Z}$ tel
 que :
diff --git a/derived_types.f90 b/derived_types.f90
index ffec692525959191f0123b67764398cee6b6bd37..38704ad6de867dd64d18dc0ce8ef89d687ec6140 100644
--- a/derived_types.f90
+++ b/derived_types.f90
@@ -17,7 +17,9 @@ module derived_types
      logical cyclone
      type(ssh_contour) out_cont ! outermost contour
      type(ssh_contour) speed_cont ! contour with maximum average azimuthal speed
-     real max_speed ! average of azimuthal speed on speed_cont, in m s-1
+
+     real max_speed
+     ! average of azimuthal speed on out_cont or speed_cont, in m s-1
 
      logical valid ! valid out_cont found: not a null contour, and
                    ! with sufficient area
diff --git a/successive_overlap.f90 b/successive_overlap.f90
index bd0101e8beeadb867fcb12220cc02e8da4c35d3d..e755c0ab18abc61cd39712ba75f1e8097a53f503 100644
--- a/successive_overlap.f90
+++ b/successive_overlap.f90
@@ -31,7 +31,10 @@ contains
     ! We look for an overlapping eddy at dist_lim (in grid points) of
     ! the first extremum.
 
-    integer, intent(in):: j, k
+    integer, intent(in):: j
+    ! position in time window, between 2 and max_delta + 1
+
+    integer, intent(in):: k ! date index
 
     ! Local:
 
diff --git a/write_eddy.f90 b/write_eddy.f90
index 0d79e0da74f5d4509f658f180d137b8279f34f32..55bad9e9f0733648f93d9f2fa87b65014001aca0 100644
--- a/write_eddy.f90
+++ b/write_eddy.f90
@@ -27,13 +27,13 @@ contains
     integer, intent(in):: k ! date index
     integer, intent(in):: i ! eddy index
 
-    TYPE(shpfileobject), intent(inout):: hshp_extremum ! shapefile extremum_$m
+    TYPE(shpfileobject), intent(inout):: hshp_extremum ! shapefile extremum
 
     TYPE(shpfileobject), intent(inout):: hshp_outermost
-    ! shapefile outermost_contour_$m
+    ! shapefile outermost_contour
 
     TYPE(shpfileobject), intent(inout):: hshp_max_speed
-    ! shapefile x_speed_contour_$m
+    ! shapefile x_speed_contour
 
     ! Local:
     integer ishape