Если присутствует ключевое слово iostat
, программа не останавливается при возникновении ошибки ввода-вывода. Затем, если я попытаюсь считать недопустимое значение в скалярную переменную, i
скажем, останется ли эта переменная неизменной? Кажется, работает следующее:
program test
integer :: i, stat
i = 1
do
write (*, "('i = ')", advance='no')
read (*, *, iostat=stat) i
if (stat .eq. 0) then
write (*, "('Valid integer. i has been set to ', I0)") i
else
write (*, "('Bad integer. i is still ', I0)") i
end if
end do
end program test
Могу ли я положиться на это поведение в Fortran 2003?