Fortran Compilers

Fortran has over a dozen open source and commercial compilers.

Compilateurs#

Open source compilers

GNU Fortran Compiler

Le compilateur GNU Fortran (gfortran) est un compilateur mature, libre et open source, faisant partie de la collection de compilateurs GNU GCC.

La bibliothèque OpenCoarrays permet à gfortran d’implémenter les fonctionnalités de programmation parallèle du Fortran 2018, en offrant une couche d’abstraction vers différents systèmes de programmation parallèle.

LLVM Flang

Flang est un nouveau frontal Fortran 2018 qui a été récemment ajouté à LLVM. Il est implémenté en C++ moderne et utilise un dialecte MLIR orienté Fortran pour passer à la représentation intermédiaire LLVM IR. Ce projet est en phase de développement actif.

Current Flang

Flang est un compilateur à code source ouvert basé sur le compilateur commercial NVIDIA/PGI.

LFortran

LFortran is a modern, interactive, LLVM-based Fortran compiler. Also available online at dev.lfortran.org using a statically served, WASM based LFortran Compiler for running code in web browsers.

Commercial compilers

Intel oneAPI

Intel oneAPI est la suite Intel de compilateurs, d’outils et de bibliothèques pour les langages Fortran, C, C++ et Python. Le Toolkit Intel oneAPI HPC fournit deux compilateurs Fortran :

  • Intel Fortran Compiler (ifx), a new, LLVM-based compiler that comes with full Fortran 2018 support. It also supports the majority of OpenMP 5.0/5.1 including offload to Intel GPUs. ifx can also offload do concurrent to Intel GPUs.

  • Intel Fortran Compiler Classic (ifort), a mature compiler with full Fortran 2018 support, for CPUs only.

The current version of Intel oneAPI is available for free, and support can be purchased. Currently the ifx compiler supports Linux and Windows platforms for x86-64 architectures. ifort supports Linux, Windows, and macOS. Community support is available for the free version at the Intel Developer forum. Optionally, you can purchase Priority Support with additional benefits including access to previous versions of ifort and ifx.

NAG

Le dernier compilateur Fortran NAG 7.0 offre une prise en charge étendue des fonctionnalités Fortran anciennes et modernes, y compris la programmation parallèle avec les co-tableaux, ainsi qu’une prise en charge étendue d’OpenMP.

Le compilateur implémente également une partie significative de la norme Fortran 2018 (opérations atomiques, événements et tâches, ainsi que d’autres éléments moins importants), presque toute la norme Fortran 2008, et intégralement la norme Fortran 2003 ainsi qu’OpenMP 3.1. Des outils de développement logiciel sont disponibles pour toutes les plates-formes : polisseurs de fichier source, générateur de dépendances pour les modules et les fichiers inclus, générateur de graphes d’appels, constructeur d’interfaces et unificateur de précision.

NVIDIA

Les compilateurs C, C++ et Fortran du NVIDIA HPC SDK, anciennement appelés compilateurs PGI, prennent en charge l’accélération GPU des applications de modélisation et de simulation HPC codés en C++ et Fortran standards, ainsi que les directives OpenACC® et CUDA®. Des bibliothèques mathématiques accélérées par GPU maximisent les performances des algorithmes HPC courants, et des bibliothèques de communication optimisées permettent une programmation multi-GPU et sur systèmes évolutifs conforme aux standards.

Les compilateurs NVHPC sont disponibles gratuitement. Actuellement, le compilateur est disponible pour les plates-formes Linux et pour les architectures x86_64, ppc64le et aarch64. Un support communautaire est assuré sur le forum du compilateur HPC.

HPE / Cray

The Cray Compiling Environment (CCE) is the cornerstone innovation of Cray’s adaptive computing paradigm. CCE builds on a well-developed and sophisticated Cray technology base that identifies regions of computation that are either sequential scalar, vector parallel or highly multithreaded. It includes optimizing compilers that automatically exploit the scalar, vector and multithreading hardware capabilities of the Cray system. CCE supports Fortran, C and C++.

IBM

IBM® XL Fortran pour Linux est un outil de programmation conforme aux standards industriels, utilisé pour développer des applications complexes en langage Fortran. Il génère du code qui exploite au mieux les capacités de la nouvelle architecture de processeur POWER9 et maximise l’utilisation de votre matériel. IBM XL Fortran pour Linux optimise votre infrastructure IBM Power Systems™ pour les grandes modélisations numériques et le calcul haute performance.

Une version communautaire des compilateurs IBM XL est disponible gratuitement. Les compilateurs sont disponibles pour Linux, les plates-formes AIX et les architectures ppc64le.

AMD

Le système de compilation AMD Optimizing C/C++ Compiler (AOCC) permet de générer du code haute performance de qualité. L’environnement AOCC offre de nombreuses options aux développeurs pour compiler et optimiser des applications C, C++ et Fortran pour plates-formes Linux® 32 bits et 64 bits. Le système de compilation AOCC offre des optimisations poussées, le support du multi-threading et des processeurs avec optimisation globale, vectorisation, analyses inter-procédurales, transformations de boucle, et génération de code. AMD fournit également des bibliothèques hautement optimisées, qui exploitent au mieux chaque cœur de processeur x86. La suite de compilateurs AOCC simplifie et accélère le développement et la mise au point de vos applications x86.

Les compilateurs AOCC sont disponibles gratuitement, pour les plates-formes Linux et les architectures x86_64.

ARM

Compilateur Fortran en espace utilisateur Linux. Conçu pour le calcul haute-performance et les codes scientifiques, avec support des normes Fortran et OpenMP les plus populaires, adapté aux principales plates-formes Arm de classe serveur. Construit sur le frontal open-source Flang, et l’infrastructure d’optimisation et de génération de code LLVM. Fait partie de la collection de compilateurs Arm pour Linux.

Oracle / Sun

Le compilateur Oracle C, C++, Fortran est hautement optimisé pour les systèmes Oracle, sur site et dans le cloud

  • Technologie avancée de génération de code pour les derniers systèmes Oracle basés sur SPARC et x86

  • Prise en charge des dernières normes et standards industriels, notamment C++14, C++11, C11 et OpenMP 4.0, ainsi qu’un support étendu des fonctionnalités GCC

  • Analyse automatique du code pendant la compilation et protection automatique contre le débordement de la pile au moment de l’exécution

Silverfrost FTN95

Silverfrost FTN95 est un compilateur implémentant intégralement les normes Fortran 95, capable de produire des exécutables rapides pour les plates-formes Win32 et Microsoft .NET. FTN95 possède le meilleur système de vérifications en cours d’exécution et est livré avec de nombreux outils de développement. Sont prises en charge toutes les fonctionnalités de la norme ainsi que de nombreuses fonctionnalités non standards mais classiques, de sorte que vos projets Fortran peuvent combiner à souhait Fortran 77, Fortran 90 et Fortran 95. Certaines fonctionnalités de Fortran 2003 et 2008 ont été ajoutées. Silverfrost Fortran fonctionne sur Windows / x86_64. Pour un usage personnel, il est disponible en version gratuite.

NEC

Le compilateur Fortran implémente la norme Fortran 2003 (ISO/IEC 1539-1:2004) ainsi que de nombreuses fonctionnalités de la norme Fortran 2008 (ISO/IEC 1539-1:2010).

LCC

Compilateur MCST C, C++, Fortran avec une prise en charge complète de Fortran-95 (ISO/IEC 1539:1997) et partielle de Fortran-2003 (ISO/IEC 1539:2004), Fortran-2008 (ISO/IEC 1539:2010) et Fortran-2018 (ISO/IEC 1539:2018). Utilisé pour les architectures de processeurs russes Elbrus (e2k) et SPARC (MCST-R). Un compilateur croisé pour l’architecture x86_64 est également disponible.

Discontinued

Voici une liste de compilateurs Fortran qui semblent avoir été abandonnés, et que nous n’avons donc pas répertoriés ci-dessus :

  • Absoft

  • Apogee

  • Edinburgh Portable Compilers

  • Hewlett Packard

  • Lahey

  • Watcom

  • PathScale

  • G95

  • Open64

  • Unisys

Note

Veuillez nous faire savoir si vous connaissez un compilateur qui n’est pas répertorié, ou si nous avons répertorié un compilateur dans la section Compilateurs abandonnés alors qu’il est bien activement maintenu.