https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99506
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Priority|P3 |P4 Last reconfirmed| |2021-03-10 Version|unknown |11.0 Ever confirmed|0 |1 CC| |marxin at gcc dot gnu.org --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Reduced test-case: module numeric_kinds integer, parameter :: single = kind(1.0) integer, parameter :: double = selected_real_kind(2*precision(1.0_single)) end module numeric_kinds module indices contains function find_idx(x, xx) result(idx) end function find_idx function nearest_idx(x, xx) result(idx) if (x < xx0) then if (xx0 - x < 0/2) then end if end if do if (dl >= 0 .and. last_dl <= 0) then end if end do end function nearest_idx function close_enough_idx(x, xx, eps, verbose) result(res) logical, intent(in), optional:: verbose if (abs0 <= eps) then if (present(verbose)) then if (verbose .eqv. .true.) then end if end if end if end function close_enough_idx end module indices program fix_track_partials use numeric_kinds, only: double character(*), parameter:: & youf = "track-partial-nws200-y-grid.dat" integer, parameter:: & lonw100 = 10000, lats100 = -4000, dlon100 = 10, dlat100 = 10 integer, parameter:: imax = 50, jmax = 350 integer, dimension(*), parameter:: & latt100 = [((lats100 + dlat100 * j - dlat100/2), j=1,jmax)] real(double), dimension(*), parameter:: & latt = [(latt100(i)/100.d0, j=1,jmax)] real(double), dimension(:), allocatable:: xs, ys, xs_fixed, ys_fixed call move_to_nearest(ys_fixed, pnts=ys, axis=latt) contains subroutine read_track(xs, ys, file) end subroutine read_track subroutine save_track(xs, ys, file) end subroutine save_track subroutine move_to_nearest(res, pnts, axis) real(double), intent(out):: res(:) real(double), intent(in) :: pnts(:), axis(:) end subroutine move_to_nearest subroutine extend_arr_double(arr, idx, mes) end subroutine extend_arr_double subroutine shrink_arr_double(arr, idx, mes) end subroutine shrink_arr_double end program fix_track_partials It's very old, at least as old as GCC 4.8.0.