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 09/09/2021, 15:31]
86.67.213.205 [Editeurs et Environnement de Développement Intégré] findent
fortran [Le 19/02/2024, 10:47] (Version actuelle)
77.128.106.214 [Editeurs et Environnement de Développement Intégré]
Ligne 3: Ligne 3:
 ====== 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 9: 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 103: 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 138: 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 152: 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 162: Ligne 162:
 ===== Débogueurs et outils d'​analyse ===== ===== Débogueurs et outils d'​analyse =====
  
-On peut utiliser [[:gdb]], le débogueur GNU ou [[http://​en.wikipedia.org/​wiki/​Intel_Debugger|idb]] //(Intel Debugger).//​+On peut utiliser [[:gdb]], le débogueur GNU ou [[https://​en.wikipedia.org/​wiki/​Intel_Debugger|idb]] //(Intel Debugger).//​
  
 Avec gfortran, lors de la compilation on utilisera l'​option ''​-g''​ (mode debug) : Avec gfortran, lors de la compilation on utilisera l'​option ''​-g''​ (mode debug) :
Ligne 173: 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 186: 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. Bien que disponible en version 0.4.0 alpha au 30 août 2021, il est déjà pleinement utilisable pour des projets simples. 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 205: Ligne 205:
  
 fpm gère les dépendances,​ qu'il peut télécharger automatiquement depuis GitHub. fpm gère les dépendances,​ qu'il peut télécharger automatiquement depuis GitHub.
 +
 +La [[https://​fpm.fortran-lang.org/​fr/​index.html|documentation de fpm]] propose des tutoriels, des guides pratiques //​(how-to),//​ des documents, un manuel de référence et des actualités. Cette documentation est disponible en français, ainsi que dans plusieurs autres langues (allemand, espagnol, néerlandais...)
  
 ===== Bibliothèques graphiques ===== ===== Bibliothèques graphiques =====
Ligne 210: Ligne 212:
 Fortran ne dispose pas d'​instructions graphiques. La visualisation des résultats peut se faire avec des programmes externes comme [[gnuplot]] ou [[apt>​paraview|ParaView]],​ ou des bibliothèques graphiques, comme par exemple : Fortran ne dispose pas d'​instructions graphiques. La visualisation des résultats peut se faire avec des programmes externes comme [[gnuplot]] ou [[apt>​paraview|ParaView]],​ ou des bibliothèques graphiques, comme par exemple :
   * [[apt>​libplot-dev libplplotfortran0|PLplot]],​   * [[apt>​libplot-dev libplplotfortran0|PLplot]],​
-  * [[https://​github.com/​vmagnin/​gtk-fortran/​wiki|gtk-fortran]] qui permet de créer des interfaces GTK en Fortran,+  * [[https://​github.com/​vmagnin/​gtk-fortran/​wiki|gtk-fortran]] qui permet de créer des interfaces GTK en Fortran ​et peut être utilisé comme dépendance fpm,
   * [[https://​github.com/​kookma/​ogpf|ogpf]] qui permet d'​appeler simplement gnuplot depuis un programme en Fortran, grâce à son interface orientée objet. Il peut être installé en tant que paquet fpm.   * [[https://​github.com/​kookma/​ogpf|ogpf]] qui permet d'​appeler simplement gnuplot depuis un programme en Fortran, grâce à son interface orientée objet. Il peut être installé en tant que paquet fpm.
  
Ligne 216: 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]]. +  * [[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. 
-  * [[http://​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.1631194294.txt.gz
  • Dernière modification: Le 09/09/2021, 15:31
  • par 86.67.213.205