Visual studio 2010 英特尔visual studio 2010(Fortran编译器2011)中不总是检测到未初始化变量

Visual studio 2010 英特尔visual studio 2010(Fortran编译器2011)中不总是检测到未初始化变量,visual-studio-2010,initialization,fortran,intel-fortran,Visual Studio 2010,Initialization,Fortran,Intel Fortran,我正在调试模式下编译Fortran代码,使用标志/check:uninit,在properties->Fortran->runtime->check uninitialized variables下激活 我注意到,当我运行代码时,有时正确执行会停止指示未初始化的变量,而有时它会毫无问题地继续运行,只是在我的代码中我发现某个地方有一个值为-6.277438562204192D+066的变量。为什么编译器不总是能够检测未初始化的变量 在我提到的特殊情况下,未检测到的变量是在模块中定义的全局变量,我不

我正在调试模式下编译Fortran代码,使用标志/check:uninit,在properties->Fortran->runtime->check uninitialized variables下激活

我注意到,当我运行代码时,有时正确执行会停止指示未初始化的变量,而有时它会毫无问题地继续运行,只是在我的代码中我发现某个地方有一个值为-6.277438562204192D+066的变量。为什么编译器不总是能够检测未初始化的变量


在我提到的特殊情况下,未检测到的变量是在模块中定义的全局变量,我不确定这是否是一个问题,也许编译器只能检测局部未初始化变量?如果是这种情况,如何检测全局未初始化变量?

通常,我在运行时使用
valgrind
检测未初始化变量

我不确定
ifort
在编译时需要什么作为参数,但是对于
gfortran
您还需要启用优化:
-Wuninitialized-O

可能会有帮助

编辑:使用
ifort
检查未初始化的变量时,必须禁用优化

编辑:我不知道如何使用Windows查找未初始化的变量,但我提供了一个:

我们目前确实提供了一种有限形式的未初始化运行时 变量检查,尽管它可能太有限而没有用处。 拥有Fortran Studio XE或并行Studio XE许可证的用户(或 Cluster Studio(XE)可以使用静态分析功能 整个程序的正确性检查,包括未初始化的变量 侦查它也不是完美的,但它可以非常有帮助


也许你可以使用这个工具

谢谢,但我忘了提到我使用的是Windows而不是Linux,Valgrind只在Linux上运行。