Мне неизвестна такая опция для gfortran (или любого другого компилятора Fortran).Я также настоятельно рекомендую не полагаться на такую опцию, если она будет найдена.
Существует форматирование списка имен, обеспечивающее некоторую простоту и гибкость ввода для конкретных объектов.Желая получить предупреждение с использованием списка имен, который не обновляет все переменные, возможно, пытается использовать инструмент ненадлежащим образом.
Для программы и ввода вопроса ожидаемое поведение во время выполнения для a
и b
должно бытьопределяется с указанными значениями, а для c
не определено.Вместо этого мы могли бы определить три переменные со значением до чтения и посмотреть, будут ли они обновлены чтением:
real, parameter :: SENTINEL=HUGE(0.)
real :: a=SENTINEL, b=SENTINEL, c=SENTINEL
namelist /my_nlt/ a, b, c
open(newunit=ufile,file='my_nlt.txt')
read(ufile,my_nlt)
if (a==SENTINEL.or.b==SENTINEL.or.c==SENTINEL) ERROR STOP
Здесь SENTINEL
будет значением, нежелательным для переменных или неожиданным ввход.Переменная, не включенная в запись списка имен, сохраняет свое значение до чтения.
Это не то же самое, что, конечно, не появляется (особенно, если нет входного значения вне диапазона), но еслиВы хотите проверить это, тогда вам придется анализировать входной файл вручную.Структура такого файла списка имен хорошо определена.
В качестве заключительного замечания, является ли переменная c
"присутствующей" в следующей входной записи списка имен?
&my_nlt a=1., b=2., c=1* /