我在Mac OS X 10.8上使用gfortran 4.7.1使用特定的精度编译一个简单的程序:
program simple
implicit none
integer, parameter :: l = selected_real_kind(18,100)
real(kind=l) :: myNum
myNum = 0.123456789123456789
print '(f18.12)', myNum
end program simple
当我编译并运行时,我得到0.123456791043
这显然表明我没有得到我要求的精度。
但是,如果我使用-fdefault-real-8
进行编译,我会得到正确答案。显然,我可以继续使用该选项,但我不禁想知道这是一个错误还是我错过了一些理由。当selected_real_kind
意图允许代码指定精度时,我是否真的必须在代码本身之外指定我的实际大小?
答案 0 :(得分:1)
对不起。您必须将_l
添加到号码分配中。