Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fortran [Le 25/04/2022, 10:27]
vmagnin [Bibliothèques graphiques]
fortran [Le 19/02/2024, 10:47] (Version actuelle)
77.128.106.214 [Editeurs et Environnement de Développement Intégré]
Ligne 1: Ligne 1:
- 
 {{tag>​programmation calcul_numérique compilation IDE}} {{tag>​programmation calcul_numérique compilation IDE}}
  
 ====== Fortran ====== ====== Fortran ======
  
-Fortran est un langage de programmation normalisé destiné au calcul scientifique. Il intègre la programmation orientée objet et l'​interfaçage avec le langage C depuis Fortran 2003 et la programmation parallèle //​(coarrays)//​ depuis Fortran 2008. La norme actuelle est Fortran 2018 : elle améliore en particulier l'​interfaçage entre C et Fortran et ajoute de nouveaux concepts pour la programmation parallèle //(teams, events, collective subroutines).//​ La prochaine ​norme est prévue pour 2023 (nommée Fortran 202X pour l'​instant).+Fortran est un langage de programmation normalisé destiné au calcul scientifique. Il intègre la programmation orientée objet et l'​interfaçage avec le langage C depuis Fortran 2003 et la programmation parallèle //​(coarrays)//​ depuis Fortran 2008. La norme Fortran 2018 améliore en particulier l'​interfaçage entre C et Fortran et ajoute de nouveaux concepts pour la programmation parallèle //(teams, events, collective subroutines).// ​ La norme Fortran ​2023 (ISO/IEC 1539-1:2023a été publiée le 17 novembre 2023.
  
 ===== Compilateurs ===== ===== Compilateurs =====
Ligne 10: Ligne 9:
 Le langage Fortran dispose de [[https://​fortran-lang.org/​compilers/​|nombreux compilateurs]],​ en particulier : Le langage Fortran dispose de [[https://​fortran-lang.org/​compilers/​|nombreux compilateurs]],​ en particulier :
   * Le compilateur libre GNU Fortran (GFortran).   * Le compilateur libre GNU Fortran (GFortran).
-  * 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 propriétaire Intel Fortran Compiler (ifort), et son successeur ifx basé sur LLVM, téléchargeables gratuitement pour tous les développeurs depuis début 2021.
   * Le compilateur commercial [[http://​www.pgroup.com/​resources/​docs.htm| PGI]] édité par [[wp>​The_Portland_Group]],​ qui devrait être remplacé prochainement par le compilateur [[https://​github.com/​flang-compiler/​flang|Flang]] intégré à LLVM.   * Le compilateur commercial [[http://​www.pgroup.com/​resources/​docs.htm| PGI]] édité par [[wp>​The_Portland_Group]],​ qui devrait être remplacé prochainement par le compilateur [[https://​github.com/​flang-compiler/​flang|Flang]] intégré à LLVM.
  
Ligne 104: Ligne 103:
 Vérifiez que les deux compilateurs Intel sont bien accessibles : Vérifiez que les deux compilateurs Intel sont bien accessibles :
 <​code>​ <​code>​
-ifort --version +ifort --version 
-ifort (IFORT) 2021.2.0 20210228 +ifort (IFORT) 2021.8.0 20221119 
-Copyright (C) 1985-2021 Intel Corporation. ​ All rights reserved. +Copyright (C) 1985-2022 Intel Corporation. ​ All rights reserved. 
-  +ifx --version 
-ifx --version +ifx (IFORT) ​2023.0.0 20221201 
-ifx (IFORT) ​2021.2.0 Beta 20210317 +Copyright (C) 1985-2022 Intel Corporation. All rights reserved.
-Copyright (C) 1985-2021 Intel Corporation. All rights reserved.+
 </​code>​ </​code>​
  
-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èlemême si l'option apparaît dans son aide+Le compilateur ifx, basé sur LLVM, est depuis sa version 2023.0.0 conforme au standard Fortran 2018 et offre les mêmes fonctionnalités qu'​ifortqu'il va progressivement remplacer.
  
 === Utilisation === === Utilisation ===
Ligne 139: Ligne 137:
 Pour utiliser OpenMP, l'​option de compilation est ''​-qopenmp''​. Pour utiliser OpenMP, l'​option de compilation est ''​-qopenmp''​.
  
-ifort supporte ​nativement la programmation parallèle à l'aide des cotableaux : il suffit d'​utiliser l'​option de compilation ''​-coarray''​.+ifort et ifx supportent ​nativement la programmation parallèle à l'aide des cotableaux : il suffit d'​utiliser l'​option de compilation ''​-coarray''​.
  
 Parmi les méthodes utilisables pour régler le nombre de //​threads///​images,​ on peut alors utiliser ces variables d'​environnement (exemple avec ici 4 //​threads//​) : Parmi les méthodes utilisables pour régler le nombre de //​threads///​images,​ on peut alors utiliser ces variables d'​environnement (exemple avec ici 4 //​threads//​) :
Ligne 153: Ligne 151:
 Les grands IDE gèrent également le Fortran : Les grands IDE gèrent également le Fortran :
  
 +  * [[https://​marketplace.visualstudio.com/​items?​itemName=fortran-lang.linter-gfortran|Visual Studio Code]].
   * [[:​code_blocks|Code::​Blocks]] : il en existe une version [[https://​cbfortran.sourceforge.io/​|CBFortran]] dédiée au Fortran. ​   * [[:​code_blocks|Code::​Blocks]] : il en existe une version [[https://​cbfortran.sourceforge.io/​|CBFortran]] dédiée au Fortran. ​
   * [[:​Eclipse]] avec le [[http://​www.eclipse.org/​photran/​|plugin Photran]] ​   * [[:​Eclipse]] avec le [[http://​www.eclipse.org/​photran/​|plugin Photran]] ​
Ligne 174: Ligne 173:
 On peut activer toutes les vérifications (limites de tableau, dépassement de capacité...) pendant l'​exécution avec l'​option ''​-fcheck=all''​ de gfortran. On peut activer toutes les vérifications (limites de tableau, dépassement de capacité...) pendant l'​exécution avec l'​option ''​-fcheck=all''​ de gfortran.
  
-Pour visualiser les appels système lors de l'​exécution,​ on peut utiliser [[apt>​strace]] : +Pour visualiser les appels système lors de l'​exécution,​ on peut utiliser [[apt>​strace]] :
 <​code>​ <​code>​
 strace ./a.out strace ./a.out
Ligne 187: Ligne 186:
 ===== Gestionnaire de paquets Fortran fpm ===== ===== Gestionnaire de paquets Fortran fpm =====
  
-Depuis 2020, [[https://​github.com/​fortran-lang/​fpm|fpm (Fortran Package Manager)]] ​est en développement. La version 0.5.0 est sortie le 21 novembre 2021. Vous pouvez l'​installer en ligne de commandes à l'aide de git :+Depuis 2020, Fortran dispose du gestionnaire de paquets et système de construction ​[[https://​github.com/​fortran-lang/​fpm|fpm (Fortran Package Manager)]]. Vous pouvez l'​installer en ligne de commandes à l'aide de git :
 <​code>​ <​code>​
 git clone https://​github.com/​fortran-lang/​fpm.git git clone https://​github.com/​fortran-lang/​fpm.git
Ligne 219: Ligne 218:
 ===== Liens ===== ===== Liens =====
   * La page française [[wpfr>​Fortran|Fortran]] fournit de nombreuses informations,​ liens et références bibliographiques concernant le Fortran.   * La page française [[wpfr>​Fortran|Fortran]] fournit de nombreuses informations,​ liens et références bibliographiques concernant le Fortran.
-  * [[https://​fortran-lang.org/​|Fortran-lang.org]] se veut depuis 2020 la page d'​accueil du langage Fortran. La communauté développe en particulier le gestionnaire de paquets Fortran fpm, une bibliothèque standard stdlib et le compilateur interactif LFortran. Les utilisateurs de Fortran se retrouve dans le [[https://​fortran-lang.discourse.group/​|Discourse Fortran]]. Un article ​académique ​[[https://arxiv.org/abs/2203.15110|"The State of Fortran"​]] a été publié en 2022+  * [[https://​fortran-lang.org/fr/​|Fortran-lang.org]] se veut depuis 2020 la page d'​accueil du langage Fortran ​(les pages principales sont traduites en français). La communauté développe en particulier le gestionnaire de paquets Fortran fpm, une bibliothèque standard stdlib et le compilateur interactif LFortran. Les utilisateurs de Fortran se retrouve dans le [[https://​fortran-lang.discourse.group/​|Discourse Fortran]]. Un article ​en français intitulé ​[[https://www.societe-informatique-de-france.fr/​wp-content/​uploads/​2023/11/1024_22_2023_143.pdf|"​Fortran... et puis quoi encore ?"]] a été publié ​dans le //Bulletin 1024// de la [[https://​www.societe-informatique-de-france.fr/​|Société informatique de France]] ​en novembre 2023. Une traduction en anglais est disponible: [[https://​hal.science/​hal-04448657|hal-04448657]]
-  * [[https://​groups.google.com/​g/​comp.lang.fortran|comp.lang.fortran]] est un groupe de discussion Usenet actif depuis 1983.  +  * [[https://​groups.google.com/​g/​comp.lang.fortran|comp.lang.fortran]] est un groupe de discussion Usenet actif depuis 1983. 
-  * [[https://​fortranwiki.org/​fortran/​show/​HomePage|Fortran Wiki]] offre en anglais de nombreuses ressources proposées par les développeurs Fortran.+  * Le [[https://​fortranwiki.org/​fortran/​show/​HomePage|Fortran Wiki]] offre en anglais de nombreuses ressources proposées par les développeurs Fortran. La page [[https://​fortranwiki.org/​fortran/​show/​GFortran|GFortran]] donne des informations sur l'​installation,​ l'​utilisation,​ le calcul parallèle, et explique comment contribuer à GFortran.
  
  
  
  • fortran.1650875266.txt.gz
  • Dernière modification: Le 25/04/2022, 10:27
  • par vmagnin