我正在研究一个约有40年历史的Fortran意大利面条代码,其中包含大量隐含声明的变量。因此,没有一种简单的方法可以知道代码中存在哪些变量来初始化它们的值。现在,有没有办法告诉编译器(例如Intel Fortran)将代码中的所有变量初始化为特定的默认值(例如,-999),而不是零或非常大的数字,如英特尔编译器所提供的那样? / p>
答案 0 :(得分:3)
gfortran
为此提供了一些选项。可以使用-finit-integer=n
初始化整数,其中n
是整数。对于实数,您可以使用-finit-real=<zero|inf|-inf|nan|snan>
。与-ffpe-trap=denormal
一起,这可以非常有用,可以获得未初始化的实物。
答案 1 :(得分:2)
你可能想要:
ifort -check uninit
根据手册页注意,这只会检查标量
此外,根据一些快速测试,它是一个非常弱的检查。例如,它并没有抓住这个简单的事情:
program test
call f(i)
end
subroutine f(j)
write(*,*)j
end
返回0
..
我认为它总比没有好。