2009-10-07 7 views

Respuesta

6

De la otra manera, si gfortran lo implementa, es llamar a la subrutina no estándar. No todos los compiladores implementan esto.

+4

'FLUSH' como una subrutina (como en' A RAS llamada() ') no es estándar, pero la declaración' FLUSH' es válida Fortran 2003: 'DE DESCARGA (10)' –

+0

Desde el sitio web de GNU, que dice: La sentencia FLUSH intrínseca y la versión FLUSH de Fortran 2003 tienen el mismo efecto: limpian el búfer de E/S de la biblioteca de tiempo de ejecución para que los datos se vuelvan visibles para otros procesos. Esto no garantiza que los datos estén comprometidos con el disco. –

12

Debe realizar la salida sin búfer. Intente configurar la variable de entorno GFORTRAN_UNBUFFERED_ALL en 'y', 'Y' o 1.

+0

¿Haría esto desde bash como sigue: GFORTRAN_UNBUFFERED_ALL = 'y' de exportación $ GFORTRAN_UNBUFFERED_ALL ? ¿Solo curiosidad? – banDedo

+0

Sí, aunque no necesita el '$' en la línea de exportación. Esto funcionará hasta que salga del shell actual. Si desea este comportamiento permanentemente, puede agregar esas líneas a su archivo '.bashrc'. –

+0

me han tratado la siguiente receta y me ha escrito: GFORTRAN_UNBUFFERED_ALL = 'y' GFORTRAN_UNBUFFERED_ALL exportación echo $ GFORTRAN_UNBUFFERED_ALL Echo muestra el valor correcto. He intentado esto con 'y', 'Y' y 1. Ninguno ha resuelto el problema. Gracias por la sugerencia, sin embargo. – banDedo

0

Cuando necesito enjuagar, simplemente cierro el archivo y lo vuelvo a abrir. Esto es torpe y lento, pero no sé de una mejor manera en Fortran 90 que funcione con todos los compiladores.

Cuestiones relacionadas