En este módulo, aprenderemos cómo leer datos desde archivos en Fortran. La capacidad de manejar archivos es crucial para muchos programas científicos y de ingeniería, ya que permite almacenar y recuperar grandes cantidades de datos de manera eficiente.
Conceptos Clave
- Abrir un Archivo: Utilizar la instrucción
OPEN
para abrir un archivo. - Leer Datos: Utilizar la instrucción
READ
para leer datos del archivo. - Cerrar un Archivo: Utilizar la instrucción
CLOSE
para cerrar el archivo después de su uso. - Manejo de Errores: Implementar manejo de errores para asegurar que el archivo se maneje correctamente.
Abrir un Archivo
Para abrir un archivo en Fortran, utilizamos la instrucción OPEN
. Aquí hay un ejemplo básico:
PROGRAM LeerArchivo IMPLICIT NONE INTEGER :: unidad, iostat CHARACTER(LEN=100) :: nombreArchivo ! Asignar un número de unidad y el nombre del archivo unidad = 10 nombreArchivo = 'datos.txt' ! Abrir el archivo OPEN(UNIT=unidad, FILE=nombreArchivo, STATUS='OLD', IOSTAT=iostat) ! Verificar si el archivo se abrió correctamente IF (iostat /= 0) THEN PRINT *, 'Error al abrir el archivo.' STOP END IF PRINT *, 'Archivo abierto exitosamente.' ! Cerrar el archivo CLOSE(UNIT=unidad) END PROGRAM LeerArchivo
Explicación del Código
IMPLICIT NONE
: Desactiva la declaración implícita de variables, lo que ayuda a evitar errores.INTEGER :: unidad, iostat
: Declara las variablesunidad
(número de unidad del archivo) eiostat
(estado de la operación de entrada/salida).CHARACTER(LEN=100) :: nombreArchivo
: Declara una variable de cadena para el nombre del archivo.OPEN(UNIT=unidad, FILE=nombreArchivo, STATUS='OLD', IOSTAT=iostat)
: Abre el archivodatos.txt
con el número de unidad10
.STATUS='OLD'
indica que el archivo ya existe.IOSTAT=iostat
almacena el estado de la operación.IF (iostat /= 0) THEN ... END IF
: Verifica si hubo un error al abrir el archivo.CLOSE(UNIT=unidad)
: Cierra el archivo.
Leer Datos del Archivo
Para leer datos de un archivo, utilizamos la instrucción READ
. Aquí hay un ejemplo que lee números enteros de un archivo:
PROGRAM LeerDatos IMPLICIT NONE INTEGER :: unidad, iostat, numero CHARACTER(LEN=100) :: nombreArchivo ! Asignar un número de unidad y el nombre del archivo unidad = 10 nombreArchivo = 'numeros.txt' ! Abrir el archivo OPEN(UNIT=unidad, FILE=nombreArchivo, STATUS='OLD', IOSTAT=iostat) ! Verificar si el archivo se abrió correctamente IF (iostat /= 0) THEN PRINT *, 'Error al abrir el archivo.' STOP END IF PRINT *, 'Archivo abierto exitosamente.' ! Leer datos del archivo DO READ(UNIT=unidad, FMT=*, IOSTAT=iostat) numero IF (iostat /= 0) EXIT PRINT *, 'Número leído:', numero END DO ! Cerrar el archivo CLOSE(UNIT=unidad) END PROGRAM LeerDatos
Explicación del Código
READ(UNIT=unidad, FMT=*, IOSTAT=iostat) numero
: Lee un número entero del archivo.FMT=*
indica que se utiliza el formato libre.IF (iostat /= 0) EXIT
: Sale del bucle si hay un error o se alcanza el final del archivo.PRINT *, 'Número leído:', numero
: Imprime el número leído.
Ejercicio Práctico
Ejercicio 1: Leer y Sumar Números
Escribe un programa que lea una lista de números enteros desde un archivo llamado numeros.txt
y calcule la suma de estos números.
Solución
PROGRAM SumarNumeros IMPLICIT NONE INTEGER :: unidad, iostat, numero, suma CHARACTER(LEN=100) :: nombreArchivo ! Inicializar variables unidad = 10 nombreArchivo = 'numeros.txt' suma = 0 ! Abrir el archivo OPEN(UNIT=unidad, FILE=nombreArchivo, STATUS='OLD', IOSTAT=iostat) ! Verificar si el archivo se abrió correctamente IF (iostat /= 0) THEN PRINT *, 'Error al abrir el archivo.' STOP END IF PRINT *, 'Archivo abierto exitosamente.' ! Leer y sumar los números del archivo DO READ(UNIT=unidad, FMT=*, IOSTAT=iostat) numero IF (iostat /= 0) EXIT suma = suma + numero END DO ! Cerrar el archivo CLOSE(UNIT=unidad) ! Imprimir la suma PRINT *, 'La suma de los números es:', suma END PROGRAM SumarNumeros
Retroalimentación y Consejos
- Error Común: Olvidar cerrar el archivo después de su uso. Siempre asegúrate de cerrar el archivo con
CLOSE(UNIT=unidad)
. - Consejo: Utiliza
IOSTAT
para manejar errores de manera efectiva y evitar que el programa se detenga inesperadamente.
Conclusión
En esta sección, hemos aprendido cómo abrir, leer y cerrar archivos en Fortran. Estos conceptos son fundamentales para manejar datos de manera eficiente en programas científicos y de ingeniería. En la próxima sección, exploraremos cómo escribir datos en archivos, lo que complementará nuestras habilidades de manejo de archivos en Fortran.
Curso de Programación en Fortran
Módulo 1: Introducción a Fortran
- Introducción a Fortran
- Configuración del Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa en Fortran
Módulo 2: Conceptos Básicos
- Variables y Tipos de Datos
- Operadores y Expresiones
- Entrada y Salida
- Estructuras de Control: Sentencias If
- Estructuras de Control: Bucles
Módulo 3: Arreglos y Cadenas
- Introducción a los Arreglos
- Arreglos Multidimensionales
- Manejo de Cadenas
- Operaciones con Arreglos y Cadenas
Módulo 4: Procedimientos y Funciones
Módulo 5: Estructuras de Datos Avanzadas
Módulo 6: Manejo de Archivos
- Lectura de Archivos
- Escritura de Archivos
- Posicionamiento de Archivos
- Operaciones con Archivos Binarios
Módulo 7: Temas Avanzados
Módulo 8: Mejores Prácticas y Optimización
- Técnicas de Optimización de Código
- Depuración y Perfilado
- Escribiendo Código Mantenible
- Estándares y Portabilidad de Fortran