Olde Fortran Notes
Notas sobre computación científica,
Fortran, análisis numérico, LaTeX
martes, 16 de junio de 2026
[Curso] Ingredientes para usar el RASA 11"
Curso de capacitación sobre el uso del telescopio RASA 11" disponible en el Instituto de Astrofísica de La Plata (CONICET/UNLP) para el Personal de Apoyo del instituto y no-docentes de la Facultad de Ciencias Astronómicas y Geofísicas (UNLP).
viernes, 6 de septiembre de 2024
[Curso] Métodos modernos de programación en Fortran
Curso de posgrado dictado en la Facultad de Ciencias Astronómicas y Geofísicas de la Universidad Nacional de La Plata.
Al igual que un lenguaje humano cambia en el tiempo de acuerdo a sus necesidades, los lenguajes de programación adquieren nuevas características conforme la arquitectura y capacidad de las computadoras evolucionan. Fortran, siendo el primer lenguaje de programación de alto nivel, no está exento de ello y en el transcurso de más de sesenta años desde su creación, en cada revisión del lenguaje ha ido adquiriendo tales características, lo cual ha permitido que siga siendo uno de los lenguajes preferidos para la computación de alto rendimiento. En este curso introduciremos tales características, haciendo énfasis en una programación estructurada y modular e incorporando conceptos de la programación orientada a objetos y la programación en paralelo.
Lenguajes de programación compilados vs. interpretados. Historia y evolución del lenguaje Fortran. Compiladores. Sentencias obsoletas y refactorización. La comunidad de software abierto en el siglo XXI.
Unidades de medida de la memoria. Longitud de palabra. Representación binaria de complemento a 2 de enteros. Representación de números reales con el sistema de punto flotante. Aritmética en el sistema de punto flotante. Norma IEEE754 de precisión simple, doble y cuádruple. Precisión en Fortran. Portabilidad. Sistema de punto flotante extendido. Aritmética de no detención.
Tipos de datos simples: lógicos, caracteres, numéricos (enteros, reales, complejos). Constantes y variables, constantes con nombres. Asignaciones. Operaciones aritméticas, relacionales y lógicas. Funciones intrínsecas. Programación estructurada.
Estructuras de control secuencial, de selección e iteración. Entrada y salida de datos. Archivos.
Declaración de arreglos. Asignación estática y dinámica de arreglos. Segmentation fault. Orden. Constructores. Manipulación de arreglos como un todo o en porciones. Funciones intrínsecas para arreglos. Entrada y salida de arreglos.
Subprogramas en Fortran. Funciones y subrutinas. Subprogramas intrínsecos, externos, internos. Interfaz explícita vía módulos. Recursión. Pasando arreglos en subprogramas. Funciones que devuelven arreglos. Pasando subprogramas como argumentos de otro subprograma (callbacks). Interfaces abstractas. Argumentos opcionales. Creación de bibliotecas de subprogramas (librerías)
Tipo de datos derivados. Encapsulación. Subprogramas genéricos. Redefinición de operadores. Tipo de datos parametrizados.
Conceptos generales de la programación orientada a objetos. Clases y métodos. Extensión de clases, herencia y polimorfismo.
Conceptos generales de la programación en paralelo. OpenMP. Message Passing con MPI. Coarrays.
Unidad 1: Fortran en el siglo XXI
Unidad 2: Representación de los números en la computadora.
Unidad 3: Elementos básicos del lenguaje.
Unidad 4: Arreglos.
- Presentación de la clase.
- Paquete LAPACK95+LAPACK+BLAS(+OpenBLAS)
- Table_IO: Lectura y escritura de tablas de datos numéricos
Unidad 5: Modularización.
- Presentación de la clase.
- Ejercicio: Estados pares de un electrón confinado en un pozo de potencial
- Módulo roots para resolver ecuaciones no lineales de una variable
Unidad 6: Programación con tipos de datos derivados.
Unidad 7: Programación orientada a objetos.
- Presentación de la clase.
- Clase stats.
- Clase vector.
- Clase rational.
- Clase date.
- Clase derivada datetime.
- Clase abstract quad.
Unidad 8: Programación en paralelo.
- Presentación de la clase.
- Cómputo de π, versión serial
- Cómputo de π, versión OpenMP.
- Cómputo de π, versión MPI.
- Cómputo de π, versión Coarrays.
- Cómputo de π, comparación entre versión serial y OpenMP.
- Cómputo de π por el producto de Willis, versión OpenMP.
Bibliografía
- Chapman, Stephen J., Fortran for Scientists and Engineers, Fourth Edition, 2018.
- Metcalf, M., Reid J., Cohen, M., Modern Fortran explained, 2018.
- Markus, Arjen, Modern Fortran in Practice, 2012.
- Clerman, N., Spector W., Modern Fortran, Style and Usage, 2012.
- Hanso, Richard J., Hopkins, Tim, Numerical Computing with Modern Fortran, 2013
- Curcic, Milan, Modern Fortran, 2020.
- Numrich, Robert W., Parallel Programming with Co-arrays, 2019.
lunes, 4 de mayo de 2020
Subrutinas en Fortran para la resolución de ecuaciones no lineales de una variable
En general, las raíces de una ecuación no lineal f (x) = 0 no pueden ser
obtenidas por fórmulas explícitas cerradas, con lo que no es posible
obtenerlas en forma exacta. De este modo, para resolver la ecuación nos
vemos obligados a obtener soluciones aproximadas a través de algún
método numérico.
sábado, 25 de abril de 2020
Representación de los números en la computadora
Estas notas tratan de dar a los estudiantes e investigadores que hace ciencia con computadoras, pero que no son informáticos, una explicación lo más completa posible de los aspectos a tener en cuenta sobre la representación de los números en la computadora con el fin de que puedan comprender (y evitar) por que suceden ciertas cosas al utilizar software ya sea programado por uno mismo o por terceros.
jueves, 23 de abril de 2020
Olde Fortran
Muchos de los guionistas de la serie animada Futurama tienen formación en diversas ramas de la ciencia y en matemáticas. Así que, en los capítulos de la serie, aparecen una gran variedad de chistes noños que podemos disfrutar, pues, los ñoños.
Suscribirse a:
Entradas (Atom)




