6.1.3 Расширения для namelist
GNU Fortran полностью поддерживает стандарт Fortran 95 для ввода-вывода namelist, включая квалификаторы массивов, подстроки и полностью квалифицированные производные типы. Выходной поток из оператора write namelist совместим с оператором read namelist. Вывод содержит все имена в верхнем регистре и отступы до колонки 1 после имени namelist. Разрешены два расширения:
Использование старого стиля «$» вместо «&»
$MYNML X(:)%Y(2) = 1.0 2.0 3.0 CH(1:4) = "abcd" $END
Следует отметить, что по умолчанию терминатором является «/», а не «&END».
Запрос namelist при вводе со стандартного ввода. После хотя бы одного пробела, ввод «?» отправляет в стандартный вывод имя namelist и имена переменных в namelist:
? &mynml x x%y ch &end
Ввод «=?» выводит namelist в стандартный вывод, как если бы WRITE(*,NML = mynml) был вызван:
=? &MYNML X(1)%Y= 0.000000 , 1.000000 , 0.000000 , X(2)%Y= 0.000000 , 2.000000 , 0.000000 , X(3)%Y= 0.000000 , 3.000000 , 0.000000 , CH=abcd, /
Для облегчения этого диалога, когда вход происходит со стандартного ввода, сообщения об ошибках отправляются в стандартный поток ошибок, и выполнение продолжается, даже если IOSTAT установлен.
PRINT namelist разрешен. Это вызывает ошибку, если используется -std=f95.
PROGRAM test_print REAL, dimension (4) :: x = (/1.0, 2.0, 3.0, 4.0/) NAMELIST /mynml/ x PRINT mynml END PROGRAM test_print
Разрешены расширенные чтения namelist. Это вызывает ошибку, если используется -std=f95. В следующем примере первому элементу массива будет присвоено значение 0.00, а двум последующим элементам — значения 1.00 и 2.00.
&MYNML X(1,1) = 0.00 , 1.00 , 2.00 /
При записи namelist, если не указан DELIM=, по умолчанию для разграничения строковых значений используется двойная кавычка. Если используется -std=F95, F2003 или F2008 и т.д., статус разделителя устанавливается в «нет». Использование кавычек по умолчанию гарантирует, что namelist со строковыми значениями могут быть затем точно считаны обратно.
Далее: Описание формата X без поля счётчика, Предыдущее: Инициализация переменных старого стиля, Наверх: Реализованные расширения в GNU Fortran [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/Extensions-to-namelist.html