- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
i accidentally forged a piece of code, that results in an ICE for intel fortran 15.5 and 16.0. I tried to break it down to a small reproducer, but it succesfully resists. Commenting out of nearly any line of code, even "implicit none" fixes the ICE. Enabling /debug:all or /warn:all or changing the order of the modules fixes it, too.
module M_NULLSTELLEN
implicit none
contains
pure function calcNullstellenNewtonMaehly(Pn, x0_in, max_iter) result(x_i)
use, intrinsic :: iso_fortran_env, only: XP => real128
implicit none
real(4), intent(in ) :: Pn(0:)
real(4), optional, intent(in ) :: x0_in
integer, optional, intent(in ) :: max_iter
real(4), dimension(size(Pn)-1) :: x_i
integer :: i, k, iter
integer :: n
real(4) :: x_alt
real(4) :: x_neu
real(4) :: x0
real(4) :: f
real(4) :: df
integer :: m
real(4) :: x_epsilon
real(4) :: x_delta
NULLSTELLEN : do i = 1, n-1
m = 2
x_neu = x0
! Following Line seems(?) to be the root of the problem
ITERATIONEN : do iter = 1, merge(10, 100, x0<= 1.0)
x_alt = x_neu
do k = n-2,0,-1
df = f + x_alt*df
f = Pn(k) + x_alt * f
end do
if(i==1) then
x_neu = x_alt - f / df
else
x_neu = 1
end if
if( x_neu >= x_alt ) then
m = 1
x0 = x_alt - x_delta
if( abs(x_neu - x_alt) < x_epsilon) exit ITERATIONEN
end if
end do ITERATIONEN
x_i(i) = x_neu
end do NULLSTELLEN
end function calcNullstellenNewtonMaehly
end module M_NULLSTELLEN
module M_BEM_GAUSS_GEWICHTE
use, intrinsic :: iso_fortran_env, only: real128, real64, real32
implicit none
type, public :: DT_GAUSS_QUADRATUR
real(4), private, allocatable :: gxi (:,:)
integer, private :: max_grad
end type
type(DT_GAUSS_QUADRATUR), public :: gauss_quadratur = DT_GAUSS_QUADRATUR(max_grad=0)
end module M_BEM_GAUSS_GEWICHTE
Greetings,
Wolf
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's a perfectly good small reproducer just as it is. Thank you for your time/effort and for reporting this. I reproduced the error and reported it to Development.
(Internal tracking id: DPD200376914)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This internal error is no longer reproducible with our current development compiler and Development believes changes in related areas corrected the condition triggering the error. The fix will be present in the upcoming PSXE 2016 Update 1 next month.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page