【发布时间】:2016-12-22 01:25:14
【问题描述】:
我有这个简单的 Fortran 代码和一个函数,我在主程序中明确提供了一个参数。代码如下:
implicit none
real*8 rrr,x
external tttt
x = rrr(10)
end
function rrr(seed)
integer seed, k
real*8 rrr
k = 7
seed = 16807 * ( seed - k * 127773 ) - (k * 2836)
print*,seed
rrr = seed / 2.
end
它可以编译,但是在运行时会产生以下错误:
Program received signal SIGBUS: Access to an undefined portion of a memory object.
Backtrace for this error:
#0 0x10f43bfe6
#1 0x10f43b7ac
#2 0x7fff89740529
#3 0x10f433d78
#4 0x10f433e2c
#5 0x10f433e6e
Bus error: 10
任何想法可能导致错误?我使用 gfortran 编译我的代码。
【问题讨论】:
-
real*8不是有效的 Fortran 并且从来不是任何 ISO Fortran 标准的一部分。
标签: fortran runtime-error gfortran bus-error