Управляющие символы 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)