diff --git a/Overlap/overlap.f90 b/Overlap/overlap.f90 index dcbde96a1ba72c3045c1ed9a6015d1a5f8002968..67cd21031ebe6ae1247910853e25c20a8311cd58 100644 --- a/Overlap/overlap.f90 +++ b/Overlap/overlap.f90 @@ -38,7 +38,7 @@ contains integer i1 ! eddy index of predecessor integer i2 ! eddy index of successor integer l, n_select - type(polyline) polyline_1, polyline_2 + type(polyline) p_shifted logical assoc_eddies ! association between eddies real delta_long ! difference in longitude, in rad @@ -79,21 +79,27 @@ contains ! delta} delta_long = e1%extr%coord(1) - e2%extr%coord(1) - if (e1%speed_cont%n_points /= 0) then - polyline_1 = e1%speed_cont%polyline + if (e1%speed_cont%n_points == 0 & + .and. e2%speed_cont%n_points /= 0) then + p_shifted = copy_shift(e2%speed_cont%polyline, delta_long) + assoc_eddies = inters_lines(e1%out_cont%polyline, p_shifted, & + min_inters_speed) + elseif (e1%speed_cont%n_points /= 0 & + .and. e2%speed_cont%n_points == 0) then + p_shifted = copy_shift(e2%out_cont%polyline, delta_long) + assoc_eddies = inters_lines(e1%speed_cont%polyline, & + p_shifted, min_inters_speed) + elseif (e1%speed_cont%n_points == 0 & + .and. e2%speed_cont%n_points == 0) then + p_shifted = copy_shift(e2%out_cont%polyline, delta_long) + assoc_eddies = inters_lines(e1%out_cont%polyline, p_shifted, & + min_inters_speed) else - polyline_1 = e1%out_cont%polyline + p_shifted = copy_shift(e2%speed_cont%polyline, delta_long) + assoc_eddies = inters_lines(e1%speed_cont%polyline, & + p_shifted, min_inters_speed) end if - if (e2%speed_cont%n_points /= 0) then - polyline_2 = copy_shift(e2%speed_cont%polyline, delta_long) - else - polyline_2 = copy_shift(e2%out_cont%polyline, delta_long) - end if - - assoc_eddies = inters_lines(polyline_1, polyline_2, & - min_inters_speed) - if (assoc_eddies) then write(unit_edge, fmt = *) (k - delta) * e_overestim + i1, & k * e_overestim + i2