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
OPENpara abrir un archivo. - Leer Datos: Utilizar la instrucción
READpara leer datos del archivo. - Cerrar un Archivo: Utilizar la instrucción
CLOSEpara 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 LeerArchivoExplicació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.txtcon el número de unidad10.STATUS='OLD'indica que el archivo ya existe.IOSTAT=iostatalmacena 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 LeerDatosExplicació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 SumarNumerosRetroalimentació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
IOSTATpara 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
