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