[11. Subprogramas ]  [Tutorial de Fortran]  [13. Sentencia format ]

12. E/S Básica

Una parte importante del cualquier programa de cómputo es manejar la entrada y la salida. En los ejemplos revisados previamente, se han usado las dos construcciones más comunes de Fortran que son: read and write. La E/S con Fortran puede ser un poco complicada, por lo que nos limitaremos a los casos más sencillos en el tutorial.

Lectura y Escritura

La sentencia read es usada para la entrada y la sentencia write para la salida. El formato es:
      read (núm_unidad, núm_formato) lista_de_variables
      write(núm_unidad, núm_formato) lista_de_variables
El número de unidad se puede referir a la salida estándar, entrada estándar o a un archivo. Se describirá más adelante. El número de formato se refiere a una etiqueta para la sentencia format, la cual será descrita brevemente.

Es posible simplificar estas sentencias usando asteriscos (*) para algunos argumentos, como lo que se ha hecho en los ejemplos anteriores. A lo anterior se le conoce como una lectura/escritura de lista dirigida.

      read (*,*) lista_de_variables
      write(*,*) lista_de_variables
La primera sentencia leerá valores de la entrada estándar y asignará los valores a las variables que aparecen en la lista, y la segunda escribe la lista en la salida estándar.

Ejemplos

Se muestra un segmento de código de un programa de Fortran:
      integer m, n
      real x, y

      read(*,*) m, n 
      read(*,*) x, y 
Se ingresan los datos a través de la entrada estándar (teclado), o bien, redireccionando la entrada a partir de un archivo. Un archivo de datos consiste de registros de acuerdo a los formatos válidos de Fortran. En el ejemplo, cada registro contiene un número (entero o real). Los registros estan separados por espacios en blanco o comas. Por lo que una entrada válida al programa anterior puede ser:
   -1  100
  -1.0 1e+2
O se pueden agregar comas como separadores:
   -1, 100
 -1.0, 1e+2
Observar que la entrada en Fortran 77 es sensible a la línea, por lo que es importante contar con el número apropiado de elementos de entrada (registros) en cada línea. Por ejemplo, si se da la siguiente entrada en una sola línea
   -1, 100, -1.0, 1e+2
entonces a m y a n se asignarán los valores de -1 y 100 respectivamente, pero los dos últimos valores serán descartados, dejando a x e y sin definir.

Otras versiones (no soportada por f77 de linux)

Para una lista dirigida simple de E/S es posible usar una sintaxis alterna
      read  *, lista_de_variables
      print *, lista_de_variables
la cual tiene el mismo significado que la lista dirigida de lectura y escritura descrita anteriormente. Esta versión siempre lee/escribe a la entrada/salida estándar, por lo que * corresponde al formato.


 [11. Subprogramas ]  [Tutorial de Fortran]  [13. Sentencia format ]