在FORTRAN 90中捕获未初始化的可分配数组

时间:2017-10-17 17:37:53

标签: fortran gfortran fortran90 intel-fortran

我正在使用gfortran 5.4.1和ifort 17.0.1进行编译

在以下代码中:

program check
   implicit none
   real, dimension(:), allocatable :: hello
   real :: g,h,i
   allocate(hello(5))
   g = hello(1)
   h = g + 10.0
   i = hello(2)*5
   print *, hello,g,h
end program check

我们分配hello数组,但从不初始化它。然后我们使用这个未初始化的数组来设置一个值,进行两次计算,然后将它们全部打印出来。

在我看来,这一切都不行。什么是你好(1)?从执行代码开始,整个数组被设置为零。此外,我怎么能找到错误?当我使用-Wall(gfortran)和-warn uninitialized -O0(ifort)进行编译时,代码运行并编译正常。

任何人都知道我错过了什么?

0 个答案:

没有答案