Spec-Zone.ru › GNU Fortran 10

6.1.3 Расширения для namelist

GNU Fortran полностью поддерживает стандарт Fortran 95 для ввода/вывода namelist, включая квалификаторы массивов, подстроки и полностью квалифицированные производные типы. Вывод из namelist write совместим с чтением namelist. Вывод содержит все имена в верхнем регистре и отступы до колонки 1 после имени namelist. Разрешено два расширения:

Использование старого стиля «$» вместо «&»

$MYNML
 X(:)%Y(2) = 1.0 2.0 3.0
 CH(1:4) = "abcd"
$END

Следует отметить, что по умолчанию терминатор — «/», а не «&END».

Запрос namelist при вводе из stdin. После, как минимум, одного пробела, ввод «?» отправляет в stdout имя namelist и имена переменных в namelist:

?

&mynml
 x
 x%y
 ch
&end

Ввод «=?» выводит namelist в stdout, как если бы 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,  /

Для облегчения этого диалога, при вводе из stdin, сообщения об ошибках отправляются в stderr, и выполнение продолжается, даже если IOSTAT установлен.

Разрешен 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-10.2.0/gfortran/Extensions-to-namelist.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API