当我编译我的程序与运行时检查,我得到以下错误(我不知道为什么):运行时检查失败
ifort -check all test.f90 -o test
./test
forrtl: severe (193): Run-Time Check Failure. The variable 'my_sum$2$_2' is being used without being defined
Image PC Routine Line Source
sum 0000000000403098 Unknown Unknown Unknown
sum 0000000000403098 Unknown Unknown Unknown
sum 0000000000403098 Unknown Unknown Unknown
sum 0000000000403098 Unknown Unknown Unknown
.
.
.
sum 0000000000403098 Unknown Unknown Unknown
sum 0000000000402EAF Unknown Unknown Unknown
sum 0000000000402DE6 Unknown Unknown Unknown
libc.so.6 00007F7FEB268BE5 Unknown Unknown Unknown
sum 0000000000402CD9 Unknown Unknown Unknown
的代码是:
program test
implicit none
real(8) :: x
x=my_sum(lambda_i,0,200)
print*,x
contains
function lambda_i(n) result(i)
real(8) :: i
integer,intent(in) :: n
i=dble(n)
end function
recursive function my_sum(f,i,n) result(s)
implicit none
real(8) :: s
integer, intent(in) :: i,n
interface
function f(n)
implicit none
real(8) :: f
integer,intent(in) :: n
end function
end interface
if (n .ge. 0) s=f(n)+my_sum(f,i,n-1)
end function
end program
任何想法?没有检查,程序运行正常,除非我达到递归限制。
我ifort产生了价值20100,可避免不崩溃(版本14在Windows上)。 Gfortran具有相同的价值,Abosft 2014无法编译(因为它希望lambda_i声明为外部函数,即使它是内部函数)。如果我将lambda_i“外部化”,我仍然可以获得20100. –