Управляющие символы Fortran (управление кареткой) все еще реализованы в компиляторах?

В книгеФортран 95/2003 для ученых и инженеровмного говорится о важности признания того, что первый столбец в выражении формата зарезервирован для управляющих символов. Я также видел контрольные символы, называемые в интернете контролем над кареткой.

Чтобы избежать путаницы, под контрольными символами я обращаюсь к символам «1, пробел (т.е. \ s), 0 и +», которые влияют на вертикальный интервал вывода при размещении впервыйстолбец (символ) оператора FORMAT.

Также посмотрите эту текстовую веб-страницу, написанную полностью шрифтом с фиксированной шириной:Фортран вагон-контроль (потому что ничто так не кричит о точности и древности, как проза моноширинным шрифтом). Я нашел эту страницу и другие, как это не совсем понятно.

В соответствии сФортран 95/2003 для ученых и инженеровНеспособность напомнить, что первый столбец зарезервирован для управления кареткой, может привести ккакой ужаснепреднамеренный вывод. ПерефразируяДэйв Барри, введите неправильный символ, и ядерные ракеты будут выпущены по Норвегии.

Однако, когда я пытаюсь придерживаться этого строгого предупреждения, я обнаруживаю, что Гфортран понятия не имеет, о чем я говорю.

Позвольте мне проиллюстрировать мою точку зрения на примере кода. Я пытаюсь распечатать число Пи:

PROGRAM test_format
IMPLICIT NONE

REAL :: PI = 2 * ACOS(0.0)

WRITE (*, 100) PI
WRITE (*, 200) PI
WRITE (*, 300) PI
100 FORMAT ('1', "New page: ", F11.9)
200 FORMAT (' ', "Single Space: ", F11.9)
300 FORMAT ('0', "Double Space: ", F11.9)
END PROGRAM test_format

Это вывод:

1New page: 3.141592741
Single Space: 3.141592741
0Double Space: 3.141592741

«1» и «0» не являются опечатками. Похоже, что gfortran полностью игнорирует столбец контрольных символов.

Мой вопрос заключается в следующем:

Управляющие символы по-прежнему реализованы в компиляторах, соответствующих стандартам, или gfortran просто не соответствует стандартам?

Для наглядности вот вывод моейgfortran -v

Using built-in specs. Target: powerpc-apple-darwin9 Configured with: ../gcc-4.4.0/configure --prefix=/sw --prefix=/sw/lib/gcc4.4 --mandir=/sw/share/man --infodir=/sw/share/info --enable-languages=c,c++,fortran,objc,java --with-gmp=/sw --with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --disable-libjava-multilib --build=powerpc-apple-darwin9 --host=powerpc-apple-darwin9 --target=powerpc-apple-darwin9 Thread model: posix gcc version 4.4.0 (GCC)

Ответы на вопрос(5)

Ваш ответ на вопрос