¿Los caracteres de control de Fortran (control de carro) todavía se implementan en compiladores?

En el libroFortran 95/2003 para científicos e ingenieros, se habla mucho sobre la importancia de reconocer que la primera columna de una declaración de formato está reservada para los caracteres de control. También he visto caracteres de control conocidos como control de carro en Internet.

Para evitar confusiones, por caracteres de control, me refiero a los caracteres "1, un espacio en blanco (es decir, \ s), 0 y +" que tienen un efecto en el espaciado vertical de salida cuando se coloca en elprimerocolumna (carácter) de una instrucción FORMAT.

Además, vea esta página web de solo texto escrita completamente en tipo de letra de ancho fijo:Control de carro Fortran (porque nada grita mejor precisión y antigüedad que la prosa en letra monoespaciada). Encontré esta página y otras como que no está del todo clara.

De acuerdo aFortran 95/2003 para científicos e ingenieros, no recordar que la primera columna está reservada para el control del carro puede conducir ahorriblesalida no deseada ParafraseandoDave Barry, escribe el carácter equivocado y disparan misiles nucleares a Noruega.

Sin embargo, cuando intento adherirme a esta severa advertencia, encuentro que gfortran no tiene idea de lo que estoy hablando.

Permítame ilustrar mi punto con algún código de ejemplo. Estoy tratando de imprimir el número Pi:

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

Esta es la salida:

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

El "1" y el "0" no son errores tipográficos. Parece que gfortran ignora por completo la columna de caracteres de control.

Mi pregunta, entonces, es esta:

¿Los caracteres de control todavía se implementan en compiladores que cumplen con los estándares o gfortran simplemente no cumple con los estándares?

Para mayor claridad, aquí está el resultado de migfortran -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)

Respuestas a la pregunta(5)

Su respuesta a la pregunta