Université Pierre et Marie Curie Sorbonne Université Master de Sciences et Tech
Université Pierre et Marie Curie Sorbonne Université Master de Sciences et Technologies : – Mention Physique et Applications – Mention Sciences de l’Univers, Environnement, Écologie Méthodes numériques et informatiques : programmation Introduction au fortran 90/95/2003/2008 Avertissement Ce document est diffusé dans une version en évolution, qui reste encore très inachevée, notamment concernant les apports des normes 2003 et 2008 du fortran. Plusieurs chapitres ne sont que des ébauches, en particulier ceux sur les structures, les pointeurs et l’interopérabilité avec le C ; d’autres questions sont à peine abordées. L’objectif reste de compléter progressivement le document. Dans ce contexte, je vous remercie par avance de me signaler les erreurs aussi bien que les formulations obscures. Vos commentaires et suggestions seront les bienvenus. Jacques.Lefrere@upmc.fr 15 novembre 2018 ii Remerciements Je tiens à remercier mes collègues enseignants de la Maîtrise de Physique et Applications de l’Université Pierre et Marie Curie, Paris VI, Marie-Claude et Jean-Claude Justice, Michel Karatchenzeff, Maï Pham, ainsi que mes collègues du M1 du Master de l’UPMC, Albert Hertzog, Philippe Sindzingre et François Ravetta, pour leurs encouragements et leurs conseils au cours de la rédaction de ce document. Je remercie aussi Marie-Alice Foujols de l’Institut Pierre Simon Laplace pour ses séminaires enthousiastes qui nous ont sensibilisés au fortran 90. Merci aussi aux collègues du Service d’aéronomie pour les nombreuses discussions au sujet du fortran au sein du laboratoire, et en particulier à Françoise Pinsard, Francis Dalaudier et Stéphane Marchand pour leurs patientes relectures critiques. Je remercie aussi Frédéric Bernardo sans lequel le chapitre sur l’inter-opérabilité avec le langage C n’aurait pas vu le jour. Merci enfin à tous ceux qui ont contribué de près ou de loin à l’élaboration de ce document, et surtout aux étudiants de la Maîtrise de Physique et Applications de Paris VI, puis à ceux du M1 du Master (mentions P&A et SDUEE) de l’UPMC, car c’est avant tout pour eux mais aussi grâce à eux qu’il a été rédigé. Version 3480 Ce document a été mis en page grâce au traitement de texte L AT EX. iii Notations – La police « machine à écrire », à espacement fixe, est utilisée pour indiquer les éléments du code source du fortran. – Les crochets [. . . ] délimitent les éléments optionnels de la syntaxe ou les arguments option- nels des procédures ; ces symboles ne font pas partie de la syntaxe. – Lors de la description de la syntaxe, les symboles < et > indiquent où l’utilisateur doit substi- tuer les identificateurs, expressions, ou valeurs qu’il a choisis ; ces symboles ne font pas partie de la syntaxe. Exemple La syntaxe décrite comme suit : [<nom > :] IF (<expression logique >) THEN <bloc d'instructions > END IF [<nom >] peut être utilisée comme dans l’exemple suivant, où l’identificateur chiffre est optionnel : chiffre: IF (i < 10) THEN WRITE(*,*) 'i est inférieur à 10' END IF chiffre Indications de lecture ♠0.0.0 Sous-section facultative Les sections (ou sous-sections) qui peuvent être omises en première lecture sont indiquées par le symbole ♠placé à gauche du titre de la section comme ci-dessus. f2003 0.0.0 Sous-section nouveauté f2003 Les sections (ou sous-sections) qui font intervenir des nouveautés des standards 95, 2003 ou 2008 du fortran sont indiquées par le symbole f95, f2003 ou f2008 placé à gauche du titre de la section comme ci-dessus. S’il s’agit de quelques points spécifiques d’un standard, par exemple le standard 2008, le para- ⇐f2008 graphe est identifié par le symbole f2008 placé dans la marge extérieure du texte, comme pour ce paragraphe. Conseils pratiques Les règles de « bon usage » du langage, qui, au delà de la norme, sont motivées par des objectifs ⇐n de lisibilité, de portabilité ou de robustesse du code source, sont repérées par le symbole n dans la marge extérieure du texte, comme pour ce paragraphe. Difficultés Les points présentant des difficultés particulières ou des risques d’erreur sont indiqués par le ⇐B symbole B dans la marge extérieure du texte, comme pour ce paragraphe. iv Avertissement Ce document n’est pas un manuel de référence du fortran 90/95/2003/2008 décrivant exhaus- tivement la norme du langage. Il s’agit d’un document largement inspiré des références citées dans la bibliographie, références auxquelles il est vivement conseillé de se reporter pour une étude plus approfondie ou plus systématique. Incomplet, notamment sur certains aspects les plus récents du fortran, il s’apparente plus à un guide de l’utilisateur du fortran pour le calcul scientifique. Il s’adresse essentiellement à des étudiants ayant déjà une expérience de la programmation dans un langage structuré (fortran ou C) souhaitant s’initier aux nouvelles fonctionnalités du langage à partir du fortran 90, notamment : – la notation tableaux, les opérateurs et fonctions manipulant globalement des tableaux mul- tidimensionnels, – l’allocation dynamique, les types dérivés et les pointeurs, – le contrôle des passages d’arguments entre procédures via les modules. Présentation Après un chapitre 1 introductif (p. 1) présentant l’évolution du fortran, les étapes de mise au point des programmes et les éléments du langage, le chapitre 2 (p. 10) décrit les types d’objets du langage et leurs attributs, en particulier numériques, avant d’aborder au chapitre 3 (p. 22) les opérateurs qui permettent de les manipuler. Le chapitre 4 (p. 27) est entièrement consacré aux structures de contrôle du fortran : c’est un chapitre essentiel et facile qui doit être étudié dès la première lecture. Le chapitre 5 entrées-sorties (p. 36) aborde les instructions de lecture et d’écriture et les formats de conversion des données : il est conseillé de commencer par les sections d’introduction et de terminologie, quitte à revenir ensuite sur la description détaillée des instructions et surtout des formats, pour laquelle des allers et retours avec les sections d’exemples ainsi qu’avec le chapitre 8 (p. 96) sur les chaînes de caractères sont nécessaires. Le chapitre 6 intitulé procédures (p. 58) constitue le deuxième thème majeur du document : il présente les fonctions et les sous-programmes en partant de la notion de procédure interne attachée à un programme pour aboutir aux procédures de module réutilisables grâce à la compilation séparée. La dernière section (6.5) abordant les fonctionnalités avancées peut être passée en première lecture. Le troisième thème majeur du fortran, les tableaux, fait l’objet du chapitre 7 (p. 80) : il consti- tue l’atout principal du fortran 90 pour le calcul scientifique avec l’introduction des notations matricielles et des fonctions intrinsèques manipulant les tableaux multidimensionnels. Ce chapitre essentiel peut être abordé en deux étapes : la première lecture doit inclure l’allocation dynamique ainsi que le lien entre procédures et tableaux, mais on peut garder pour une deuxième lecture les notions de sections non-régulières, les masques et la structure FORALL. Le chapitre 8 (p. 96) présente la manipulation des chaînes de caractères et les fonctions asso- ciées : c’est un chapitre facile, même s’il n’est pas central pour les applications au calcul scientifique. Les chapitres 9 sur les types dérivés (p. 105), 10 sur la généricité (p. 117) et 11 sur les pointeurs (p. 124) présentent des fonctionnalités orientées objet du fortran, et peuvent être réservés à une deuxième lecture. Quant au chapitre 12 (p. 135), qui présente les techniques d’appel de fonctions écrites en C depuis le fortran et réciproquement, il peut intéresser des non-spécialistes du fortran pour l’interfacer avec le langage C. Enfin, les annexes ont plus vocation à servir de référence qu’à être lues de façon linéaire, même s’il est utile de les parcourir pour connaître leur existence. Cela vaut par exemple pour la liste des fonctions intrinsèques du fortran (A, p. 144) quitte à revenir au document ponctuellement pour vérifier une syntaxe d’appel. De la même façon, parcourir l’annexe C, p. 160 sur la norme IEEE de représentation des nombres réels permet de visualiser concrètement les approximations des calculs en machine. Par ailleurs, les utilisateurs du langage C pourront trouver dans l’annexe D, p. 166, un aide-mémoire présentant une comparaison approximative des syntaxes et fonctions des deux langages. Une correspondance entre les fonctions de numpy sous python et les outils pour les tableaux en fortran est esquissée en annexe E, p. 171. Pour terminer, l’annexe F, p. 172 fournit de brèves indications sur l’utilisation de quelques compilateurs. Table des matières Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Indications de lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Avertissement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Présentation . . . . . . . . . . . . . . uploads/Litterature/ polyf90-introduction-au-fortran 1 .pdf
Documents similaires
-
19
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 27, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 1.6184MB