我在 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
意图允许代码指定精度时,我真的必须在代码本身之外指定我的实际大小吗?