Перехват неинициализированных распределенных массивов в FORTRAN 90
Я компилирую с 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 неинициализирован -O0 (ifort), код работает и компилируется нормально.
Кто-нибудь знает, что мне не хватает??