Livré par IBM en 1957, Fortran est le premier langage de programmation de haut niveau à avoir connu une large diffusion. Il a été conçu pour écrire des formules mathématiques comme sur le papier et en obtenir un programme aussi rapide que s'il avait été écrit à la main. Près de soixante-dix ans plus tard, il fait encore tourner les prévisions météo, les modèles de climat et une bonne partie des supercalculateurs. Cinq planches pour voir comment il traduit les formules, range ses tableaux, simule le mouvement des planètes, résout des systèmes d'équations, puis pour exécuter de vrais programmes Fortran.
Au début des années 1950, on programme les ordinateurs en langage machine ou en assembleur, et le travail de programmation et de mise au point représente l'essentiel du coût d'un calcul. En 1954, chez IBM, John Backus propose de laisser l'ordinateur faire lui-même la traduction : le scientifique écrit Y = A*X**2 + B*X + C, et un programme, le compilateur, produit les instructions machine. Beaucoup de spécialistes doutent qu'un programme traduit automatiquement puisse être aussi rapide qu'un programme écrit à la main. Après trois ans de travail, l'équipe de Backus livre en avril 1957 le premier compilateur FORTRAN pour l'IBM 704, dont l'optimisation est si soignée que les programmes obtenus rivalisent avec ceux des meilleurs programmeurs. En quelques années, la majorité des programmes scientifiques sont écrits en FORTRAN.
L'IBM 704 calcule avec un seul registre, l'accumulateur : on y charge un nombre (CLA), on lui ajoute, soustrait, multiplie ou divise un nombre de la mémoire, on range le résultat (STO). Pour traduire une formule, le compilateur la découpe d'abord en un arbre qui respecte les priorités (puissance, puis multiplication et division, puis addition et soustraction, de gauche à droite), puis parcourt cet arbre pour produire les instructions, en rangeant les résultats intermédiaires dans des cases temporaires T1, T2… Choisissez une formule, ou écrivez la vôtre, puis suivez l'exécution pas à pas.
Fortran a été le premier langage à proposer des tableaux à plusieurs dimensions : A(I,J) désigne l'élément de la ligne I et de la colonne J d'une matrice. En mémoire, qui n'a qu'une seule dimension, Fortran range les éléments colonne après colonne (le langage C, lui, les range ligne après ligne). Or le processeur ne lit pas la mémoire nombre par nombre : il charge dans sa mémoire cache, très rapide mais petite, des lignes de 64 octets, soit 8 réels en double précision. Parcourir la matrice dans le bon ordre réutilise chaque ligne de cache chargée ; dans le mauvais ordre, on la jette souvent avant de s'en être servi.
S = SUM(A) ou C = A + B sur des tableaux entiers, et laisse le compilateur choisir le meilleur ordre.Le métier premier de Fortran est la simulation numérique : on découpe le temps en petits pas dt et on fait avancer, pas après pas, la position et la vitesse. Prenons une planète attirée par le Soleil, avec les unités de l'astronomie (distance en unités astronomiques, temps en années, GM = 4π²). Trois méthodes se ressemblent beaucoup : Euler met à jour la position avec l'ancienne vitesse ; Euler-Cromer met d'abord à jour la vitesse ; Verlet fait un demi-pas de vitesse, un pas de position, puis un second demi-pas de vitesse. Observez la trajectoire et l'énergie, qui devrait rester constante.
Une grande partie du calcul scientifique se ramène à résoudre un système linéaire A·x = b. La méthode reine est l'élimination de Gauss : on fait apparaître des zéros sous la diagonale, colonne par colonne, puis on remonte. Pour limiter les erreurs d'arrondi, on choisit à chaque étape comme pivot le plus grand nombre de la colonne. En 1979, la bibliothèque Fortran LINPACK fournit ces méthodes, et son guide publie un tableau des temps de calcul sur différents ordinateurs : c'est l'origine du test qui classe depuis 1993 les 500 plus puissants supercalculateurs du monde, le TOP500.
Voici un petit interpréteur Fortran, écrit pour cette page, qui exécute dans votre navigateur un sous-ensemble de Fortran 90 en forme libre : types integer (4 ou 8 octets), real (simple ou double précision), logical, character ; constantes parameter ; tableaux à plusieurs dimensions, sections a(2:5) et opérations sur tableaux entiers ; boucles do, do while, exit, cycle ; if et select case ; fonctions et sous-programmes avec passage des arguments par référence ; fonctions intrinsèques (sqrt, mod, sum, matmul…) ; affichage avec formats (I, F, E, ES, G, A, L, X). Chaque exemple a aussi été compilé par le vrai compilateur gfortran : les sorties sont comparées caractère par caractère.
implicit none interdit les déclarations implicites d'autrefois (une variable commençant par I à N était automatiquement entière, les autres réelles : d'où la célèbre boucle DO I). Les arguments sont passés par référence : un sous-programme peut modifier la variable de l'appelant, ce que précise l'attribut intent (exemple 6). Les formats d'affichage, hérités des imprimantes des années 1950, fixent la largeur exacte de chaque nombre : F12.6 donne 12 caractères dont 6 décimales, ES14.3 la notation scientifique. Essayez de modifier les exemples : changez le nombre de points de l'exemple 6 ou la taille du crible de l'exemple 3.Les grands modèles de prévision du temps, comme celui du Centre européen de prévision météorologique à moyen terme (ECMWF) ou les modèles de Météo-France, et la plupart des modèles de climat utilisés pour les rapports du GIEC sont écrits en Fortran, souvent sur des millions de lignes.
Mécanique des fluides (aérodynamique, combustion), physique nucléaire, calcul des structures, astrophysique : des codes développés depuis des décennies et validés par l'expérience continuent d'évoluer en Fortran, désormais sur des processeurs graphiques.
De nombreux logiciels de chimie quantique et de simulation des matériaux, très utilisés sur les supercalculateurs, sont écrits en grande partie en Fortran, comme VASP ou Quantum ESPRESSO.
BLAS et LAPACK, écrites à l'origine en Fortran, servent encore de référence pour l'algèbre linéaire. Quand on calcule avec NumPy, SciPy, R ou MATLAB, on appelle souvent, sans le savoir, du code d'origine Fortran.
Les centres de calcul fournissent tous des compilateurs Fortran optimisés, avec la parallélisation par OpenMP, MPI ou les coarrays de Fortran 2008. Le test du TOP500 descend directement de LINPACK.
Longtemps jugé dépassé, Fortran est revenu dans le classement TIOBE des 20 langages les plus recherchés en 2021. En octobre 2026, il y est 13e, juste devant COBOL (16e). Une communauté active développe des outils modernes (gestionnaire de paquets fpm, bibliothèque standard stdlib, compilateur LFortran).
Les exemples de la planche 5, les formules de la planche 1, les orbites de la planche 3 et les systèmes de la planche 4 ont été compilés et exécutés par gfortran 13.3 (sans optimisation qui change l'ordre des calculs) au moment de la fabrication de la page ; la simulation de cache a été refaite en Python. Votre navigateur refait tous ces calculs et les compare. Les performances du TOP500 sont celles publiées sur top500.org.