Ceci est une ancienne révision du document !


Fortran

Fortran est un langage de programmation encore largement répandu pour réaliser des calculs scientifiques. Il supporte la programmation orientée objet depuis Fortran 2003 et la programmation parallèle (coarrays) depuis Fortran 2008. La dernière norme est Fortran 2018 et la suivante est en préparation (nommée 202X pour l'instant).

Le langage Fortran dispose de nombreux compilateurs, en particulier :

  • Le compilateur libre GNU-gfortran. Le compilateur g95 n'est plus développé depuis 2013.
  • Le propriétaire Intel Fortran Compiler (ifort), et son successeur ifx basé sur LLVM (actuellement en version beta), téléchargeables gratuitement pour tous les développeurs depuis début 2021.
  • Le compilateur commercial PGI édité par The_Portland_Group, qui devrait être remplacé prochainement par le compilateur Flang intégré à LLVM.

gfortran est très utilisé par les scientifiques, bien que le compilateur Intel ifort puisse être plus performant sur certains problèmes (voir une comparaison des différents compilateurs ici).

Un autre compilateur prometteur est actuellement en développement : LFortran, qui permettra de travailler en Fortran de façon interactive, à l'aide par exemple de Jupyter.

Intel Fortran Compiler

Intel® oneAPI Toolkits est désormais disponible gratuitement pour tous les développeurs.

Installation

Basé sur Installing Intel® oneAPI Toolkits via APT.

Vous pouvez installer le paquet intel-basekit mais il utilise 16 Go sur votre disque dur ! Nous détaillons donc ci-dessous les instructions nécessaires pour installer juste les compilateurs Fortran (téléchargement : 560 Mo, sur disque : ~1.5 Go) :

wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
sudo apt install intel-oneapi-compiler-fortran
source /opt/intel/oneapi/setvars.sh

La dernière commande sert à définir les variables d'environnement. Ajoutez-là à votre fichier ~/.bash_profile, sinon vous devrez la taper à chaque ouverture d'un terminal.

Vérifiez que les deux compilateurs Intel sont bien accessibles :

ifort --version
ifort (IFORT) 2021.2.0 20210228
Copyright (C) 1985-2021 Intel Corporation.  All rights reserved.
 
ifx --version
ifx (IFORT) 2021.2.0 Beta 20210317
Copyright (C) 1985-2021 Intel Corporation. All rights reserved.

Le nouveau compilateur ifx, encore en version Beta, est basé sur LLVM mais ne permet pas encore d'utiliser les cotableaux (coarrays) pour le calcul parallèle, même si l'option apparaît dans son aide.

Utilisation

Voir le manuel pour plus d'informations :

man ifort

Exemple de commande avec optimisation poussée -O3 (l'exécutable est nommé par défaut a.out) :

ifort -O3 test.f90
./a.out
ifx -O3 test.f90
./a.out

Plusieurs IDE sont disponibles avec une configuration plus ou moins aisée en fonction du logiciel. Citons :

  • gdb, le débogueur GNU, débogue le fortran, mais de façon incomplète dans sa version actuelle (n'affiche pas les tableaux).
  • idb pallie ce problème.
  • fortran.1619785297.txt.gz
  • Dernière modification: Le 30/04/2021, 14:21
  • par vmagnin