typestar

Fundamentos del lenguaje

27 pasos en 9 series de Fortran.

Fortran es donde empezó la programación compilada — 1957, IBM, un equipo apostando a que una máquina podía traducir fórmulas mejor de lo que la mayoría escribe ensamblador — y nunca se detuvo: hoy corre el pronóstico del tiempo, los modelos climáticos y una buena parte de todo lo que se computa en supercomputadoras. El Fortran moderno no es el FORTRAN de tarjetas perforadas de la leyenda: fuente en formato libre, módulos y un lenguaje de arreglos que otros ecosistemas pasaron décadas reinventando.

Este tour cubre el núcleo moderno tal como lo compila gfortran: programas y declaraciones bajo implicit none, arreglos con constructores, secciones e intrínsecas reductoras, el estilo de arreglos completos con máscaras where y aritmética elemento a elemento, procedimientos con intent y pure y elemental, manejo de caracteres y descriptores de edición, tipos derivados y allocatables y complejos nativos, y kinds portables de iso_fortran_env. El bis entrega programas completos. Cada fragmento compila limpio bajo -Wall -Wextra -Werror y corre.

Empieza este tour

Programas y variables

  • La forma del programaEl programa Fortran más pequeño: un bloque con nombre y dos prints dirigidos por lista.
  • DeclaracionesCuatro variables tipadas para el diario del faro, declaradas antes de que corra ninguna sentencia.
  • Constantes con nombreparameter crea una constante que el compilador va a defender, de pi al tamaño de la tripulación.

Arreglos

Control de flujo

  • if y end ifUna decisión de navegación en una escalera if: bloques then, peldaños else if, end if al cierre.
  • select caseBandas de profundidad enrutadas por select case: rangos abiertos, cerrados y un default.
  • Bucles doEl do contado, más cycle y exit dirigiendo desde adentro del cuerpo.

Arreglos completos

Procedimientos

  • Subrutinas e intentEl veredicto del paso elevado vía subrutina: intent le dice al compilador hacia dónde fluye cada dato.
  • FuncionesUna calculadora de propina pure: el nombre de la función es su variable de resultado.
  • Funciones elementalEscribe la conversión para un valor; elemental la mapea sobre arreglos gratis.

Cadenas y formatos

Tipos y memoria

  • Tipos derivadosUn registro de kayak construido con type y leído con el signo de porcentaje.
  • Arreglos allocatableUn arreglo cuyo tamaño espera al tiempo de ejecución, crece al asignar y se limpia solo.
  • Números complejoscomplex es un tipo numérico nativo: rotar, medir y conjugar sin biblioteca.

Kinds y módulos

  • Kinds de realUn tercio a 32 y a 64 bits: iso_fortran_env nombra las precisiones de forma portable.
  • Intrínsecas matemáticasLa caja de herramientas numérica viene en el lenguaje: hypot, atan2, modulo y compañía.
  • Módulos y useUn módulo y su programa en un archivo: constantes y funciones detrás de un nombre.

Bis

  • word_freq.f90Una tabla de frecuencia de palabras hecha de index, subcadenas y un gráfico de numerales.
  • grade_report.f90Los puntajes de quiz se pliegan en promedios y calificaciones, y luego en un reporte formateado.
  • temp_stats.f90Una semana de máximas diarias reducida a mínima, máxima y media, con una barra a escala por día.

Los otros tours de Fortran