From 6dfdee491a186af355541e329b315a2e90430ee2 Mon Sep 17 00:00:00 2001 From: Lionel GUEZ <guez@lmd.ens.fr> Date: Wed, 28 Feb 2024 23:04:37 +0100 Subject: [PATCH] Optimize: check `min_inters` first There is a check on `min_inters` inside `inters_lines` but adding these two tests in overlap can spare calls to `copy_shift`. Note that we do not need to add such tests in the three other cases of nullity of speed contours because, in these three other cases, if at least one of `min_inters_speed` or `min_inters_out` is <= 1 then `p_shifted` is used. --- Overlap/overlap.f90 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Overlap/overlap.f90 b/Overlap/overlap.f90 index 8c9cc3ef..ce775bab 100644 --- a/Overlap/overlap.f90 +++ b/Overlap/overlap.f90 @@ -101,11 +101,15 @@ contains assoc_eddies = inters_lines(e1%out_cont%polyline, p_shifted, & min(min_inters_speed, min_inters_out)) else - p_shifted = copy_shift(e2%speed_cont%polyline, delta_long) - assoc_eddies = inters_lines(e1%speed_cont%polyline, & - p_shifted, min_inters_speed) + if (min_inters_speed <= 1.) then + p_shifted = copy_shift(e2%speed_cont%polyline, delta_long) + assoc_eddies = inters_lines(e1%speed_cont%polyline, & + p_shifted, min_inters_speed) + else + assoc_eddies = .false. + end if - if (.not. assoc_eddies) then + if (.not. assoc_eddies .and. min_inters_out <= 1.) then p_shifted = copy_shift(e2%out_cont%polyline, delta_long) assoc_eddies = inters_lines(e1%out_cont%polyline, & p_shifted, min_inters_out) -- GitLab