В операторе open
iostat=ierr
использует iostat=
в качестве спецификатора . Это не присвоение, передающее значение ierr
в переменную iostat
.
Так же, как при использовании ключевых слов в подпрограмме или ссылке на функцию (где call sub(a=x)
связывает фактический аргумент x
с фиктивным аргументом a
), происходит больше:
используйте переменную ierr
для хранения результирующего статуса оператора.
Итак, когда «iostat
получает значение 0», в действительности происходит определение переменной ierr
.
Вместо ierr
вы можете использовать любое имя переменной, и обычно часто используется iostat
:
open(..., iostat=iostat, ...)
Точно так же и другие части, которые вы видите, также не являются заданиями. То есть:
open(unit=99, file='vel_zcor22.txt', status='old', iostat=ierr, err=100)
может выглядеть как назначение, но все равно говорится:
открыть на блоке 99, этот файл со статусом 'old'
, передав управление в оператор с пометкой 100
в случае ошибки.
Это не установка переменной unit
на 99 и т. Д.