Cours Fortran 95
266 pages
Catalan

Cours Fortran 95

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
266 pages
Catalan
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

IDRIS 1
Cours Fortran 95
Patrick CORDE et Hervé DELOUIS
28 janvier 2005
Version 8.7
INSTITUT DU DÉVELOPPEMENT Fortran 95
ET DES RESSOURCES
CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE 2 Cours Fortran 95
Constitué à partir des transparents du cours Fortran 95 de l’IDRIS, ce manuel ne traite que
des nouveautés importantes apportées par les normes 90 et 95. Il suppose donc une bonne
connaissance préalable de Fortran 77. À noter que l’IDRIS propose aussi un cours Fortran
er
95 1 niveau. Pour une étude exhaustive, consulter les manuels référencés aux paragraphes
1.9 et 1.10. Une version HTML de ce support est disponible sur le serveur Web de l’IDRIS.
Cf.http ://www.idris.fr/data/cours/lang/fortran/f90/F90_cours.html
Patrick CORDE
Hervé DELOUIS
c Institut du Développement et des Ressources
en Informatique Scientifique (C.N.R.S.)
Boîte postale 167 – 91403 ORSAY CEDEX
28 janvier 2005
Reproduction totale de ce document interdite sans autorisation des auteurs. partielle autorisée pour l’usage du copiste.
I001 265p
Fortran 95 INSTITUT DU DÉVELOPPEMENT
ET DES RESSOURCES
CNRS – 28 janvier 2005 EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95
Table des matières 3
Table des matières
1 Introduction 9
1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Compatibilité norme 77/90 . . . . . . . . . . . . . . . . . 12
1.3 Apports de Fortran 90 . . . . . . . . . . . . . . . . . . . 13
1.4 Aspects obsolètes de Fortran 90 . . . . . . . . . ...

Sujets

Informations

Publié par
Nombre de lectures 304
Langue Catalan

Extrait

IDRIS 1 Cours Fortran 95 Patrick CORDE et Hervé DELOUIS 28 janvier 2005 Version 8.7 INSTITUT DU DÉVELOPPEMENT Fortran 95 ET DES RESSOURCES CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE 2 Cours Fortran 95 Constitué à partir des transparents du cours Fortran 95 de l’IDRIS, ce manuel ne traite que des nouveautés importantes apportées par les normes 90 et 95. Il suppose donc une bonne connaissance préalable de Fortran 77. À noter que l’IDRIS propose aussi un cours Fortran er 95 1 niveau. Pour une étude exhaustive, consulter les manuels référencés aux paragraphes 1.9 et 1.10. Une version HTML de ce support est disponible sur le serveur Web de l’IDRIS. Cf.http ://www.idris.fr/data/cours/lang/fortran/f90/F90_cours.html Patrick CORDE Hervé DELOUIS c Institut du Développement et des Ressources en Informatique Scientifique (C.N.R.S.) Boîte postale 167 – 91403 ORSAY CEDEX 28 janvier 2005 Reproduction totale de ce document interdite sans autorisation des auteurs. partielle autorisée pour l’usage du copiste. I001 265p Fortran 95 INSTITUT DU DÉVELOPPEMENT ET DES RESSOURCES CNRS – 28 janvier 2005 EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 Table des matières 3 Table des matières 1 Introduction 9 1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Compatibilité norme 77/90 . . . . . . . . . . . . . . . . . 12 1.3 Apports de Fortran 90 . . . . . . . . . . . . . . . . . . . 13 1.4 Aspects obsolètes de Fortran 90 . . . . . . . . . . . . . . 14 1.5 de Fortran 95 . . . . . . . . . . . . . . 16 1.6 Évolution : principales nouveautés Fortran 95 . . . . . . . 17 1.7 Fortran 90 sur IBM-RS/6000 . . . . . . . . . . . . . . . . 18 1.8 Fortran 90 sur NEC SX-5 . . . . . . . . . . . . . . . . . 19 1.9 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . 20 1.10 Documentation . . . . . . . . . . . . . . . . . . . . . . . 22 2 Généralités 25 2.1 Structure d’un programme . . . . . . . . . . . . . . . . . 26 2.2 Éléments syntaxiques . . . . . . . . . . . . . . . . . . . 27 2.2.1 Les identificateurs . . . . . . . . . . . . . . . . . 27 2.2.2 Le “format libre” . . . . . . . . . . . . . . . . . . 28 2.2.3 Les commentaires . . . . . . . . . . . . . . . . . 29 2.2.4 Le “format fixe” . . . . . . . . . . . . . . . . . . . 31 2.2.5 Les déclarations . . . . . . . . . . . . . . . . . . 32 2.2.6 Typage et précision des nombres : paramètre KIND 36 2.3 Compilation, édition des liens, exécution . . . . . . . . . 43 INSTITUT DU DÉVELOPPEMENT Fortran 95 ET DES RESSOURCES CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 4 Table des matières 3 Types dérivés 45 3.1 Définition et déclaration de structures . . . . . . . . . . . 46 3.2 Initialisation (constructeur de structure) . . . . . . . . . . 47 3.3 Symbole % d’accès à un champ . . . . . . . . . . . . . . 48 3.4 Types dérivés et procédures . . . . . . . . . . . . . . . . 50 3.5 Types dérivés et entrées/sorties . . . . . . . . . . . . . . 53 3.6 Conclusion et rappels . . . . . . . . . . . . . . . . . . . 54 4 Programmation structurée 57 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.2 BouclesDO . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3 ConstructionSELECT-CASE . . . . . . . . . . . . . . . 65 5 Extensions tableaux 67 5.1 Définitions (rang, profil, étendue,...) . . . . . . . . . . . . 68 5.2 Manipulations de tableaux (conformance, constructeur, sec- tion, taille,...) . . . . . . . . . . . . . . . . . . . . . . . . 70 5.3 Tableau en argument d’une procédure (taille et profil impli- cites) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.4 Section de tableau non contiguë en argument d’une pro- cédure . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.5 Fonctions intrinsèques tableaux . . . . . . . . . . . . . . 83 5.5.1 Interrogation (maxloc, lbound, shape,.. ) 83 5.5.2 Réduction (all, any, count, sum,...) . . 86 Fortran 95 INSTITUT DU DÉVELOPPEMENT ET DES RESSOURCES CNRS – 28 janvier 2005 EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 Table des matières 5 5.5.3 Multiplication (matmul, dot_product,...) . 91 5.5.4 Construction/transformation (reshape, cshift, pack, spread, transpose,...) . . . . . 93 5.6 Instruction et blocWHERE . . . . . . . . . . . . . . . . . 107 5.7 Expressions d’initialisation autorisées . . . . . . . . . . . 110 6 Gestion mémoire 111 6.1 Tableaux automatiques . . . . . . . . . . . . . . . . . . . 112 6.2 Tableaux dynamiques (ALLOCATABLE, profil différé) . . . 113 7 Pointeurs 117 7.1 Définition, états d’un pointeur . . . . . . . . . . . . . . . 118 7.2 Déclaration d’un pointeur . . . . . . . . . . . . . . . . . . 119 7.3 Symbole=> . . . . . . . . . . . . . . . . . . . . . . . . 120 7.4= appliqué aux pointeurs . . . . . . . . . . . . . 123 7.5 Allocation dynamique de mémoire . . . . . . . . . . . . . 124 7.6 FonctionNULL() et instructionNULLIFY . . . . . . . . 125 7.7 Fonction intrinsèqueASSOCIATED . . . . . . . . . . . . 126 7.8 Situations à éviter . . . . . . . . . . . . . . . . . . . . . 127 7.9 Déclaration de “tableaux de pointeurs” . . . . . . . . . . . 129 7.10 Pointeur passé en argument de procédure . . . . . . . . . 131 7.11 Pointeur, tableau à profil différé etCOMMON : exemple . . . 133 7.12 Liste chaînée : exemple . . . . . . . . . . . . . . . . . . 134 INSTITUT DU DÉVELOPPEMENT Fortran 95 ET DES RESSOURCES CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 6 Table des matières 8 Interface de procédures et modules 135 8.1 Interface implicite : définition . . . . . . . . . . . . . . . . 136 8.2 Interface : exemple . . . . . . . . . . . . . . . . 137 8.3 Arguments : attributsINTENT etOPTIONAL . . . . . . . 138 8.4 Passage d’arguments par mot-clé . . . . . . . . . . . . . 140 8.5 Interface explicite : procédure interne (CONTAINS) . . . . 141 8.6 Interface explicite : 5 cas possibles . . . . . . . . . . . . . 143 8.7 Interface explicite : bloc interface . . . . . . . . . . . . . . 144 8.8 Interface explicite : ses apports . . . . . . . . . . . . . . 147 8.9 Interface explicite : module et bloc interface (USE) . . . . . 148 8.10 Interface explicite : module avec procédure . . . . . . . . 150 8.11 Cas d’interface explicite obligatoire . . . . . . . . . . . . . 151 8.12 Argument de type procédural et bloc interface . . . . . . . 154 9 Interface générique 155 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 156 9.2 Exemple avecmodule procedure . . . . . . . . . . . 157 9.3 Exemple : contrôle de procédure F77 . . . . . . . . . . . 161 10 Surcharge ou création d’opérateurs 163 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 164 10.2 Interfaceoperator . . . . . . . . . . . . . . . . . . . . 166 10.3 Interfaceassignment . . . . . . . . . . . . . . . . . . 168 Fortran 95 INSTITUT DU DÉVELOPPEMENT ET DES RESSOURCES CNRS – 28 janvier 2005 EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 Table des matières 7 11 Contrôle de visibilité, concept d’encapsulation et gestion de zones dynamiques 171 11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 172 11.2 InstructionPRIVATE etPUBLIC . . . . . . . . . . . . . 173 11.3 Attribut etPUBLIC . . . . . . . . . . . . . . . 174 11.4 Type dérivé “semi-privé” . . . . . . . . . . . . . . . . . . 175 11.5 Exemple avec gestion de zones dynamiques inaccessibles en retour de fonction . . . . . . . . . . . . . . . . . . . . 177 11.6 ParamètreONLY de l’instructionUSE . . . . . . . . . . . 187 12 Procédures récursives 189 12.1 ClausesRESULT etRECURSIVE . . . . . . . . . . . . . 190 12.2 Exemple : suite de Fibonacci . . . . . . . . . . . . . . . . 191 13 Nouveautés sur les E/S 193 13.1 OPEN (status, position, action, ...) . . . . 194 13.2 INQUIRE (recl, action, iolength,...) . . . . 196 13.3 Entrées-sorties sur les fichiers texte (advance=’no’) . 197 13.4 InstructionNAMELIST : exemple . . . . . . . . . . . . . 199 13.5 Spécification de format minimum . . . . . . . . . . . . . . 200 14 Quelques nouvelles fonctions intrinsèques 201 14.1 Conversion entiers/caractères (char, ichar,...) . . 202 14.2 Comparaison de chaînes (lge, lgt, lle, llt) . . 203 INSTITUT DU DÉVELOPPEMENT Fortran 95 ET DES RESSOURCES CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 8 Table des matières 14.3 Manipulation de chaînes (adjustl, index, ...) . . 204 14.4 Transformation (transfer) . . . . . . . . . . . . . . . . 205 14.5 Précision/codage numérique :tiny/huge, sign, nearest, spacing, ... . . . . . . . . . . . . . . . . . . . . . 207 14.6 Mesure de temps, date, nombres aléatoires . . . . . . . . 209 14.7 Opérations sur les bits (iand, ior, ishft, ...) . 211 A Annexe : paramètre KIND et précision des nombres 213 A.1 Sur IBM RS/6000 . . . . . . . . . . . . . . . . . . . . . . 214 A.2 Sur NEC SX5 . . . . . . . . . . . . . . . . . . . . . . . . 216 B Annexe : exercices 217 B.1 Exercices : énoncés . . . . . . . . . . . . . . . . . . . . 218 B.2 Exercices : corrigés . . . . . . . . . . . . . . . . . . . . 225 C Annexe : apports de la norme 95 253 C.1 Procédures “pure” . . . . . . . . . . . . . . . . . . . . . 254 C.2 “elemental” . . . . . . . . . . . . . . . . . . 256 C.3 Le “bloc FORALL” . . . . . . . . . . . . . . . . . . . . . 258 Fortran 95 INSTITUT DU DÉVELOPPEMENT ET DES RESSOURCES CNRS – 28 janvier 2005 EN INFORMATIQUE SCIENTIFIQUE Cours Fortran 95 Introduction : plan 9 1 Introduction ) Historique ) Compatibilité norme 77/90 ) Apports de Fortran 90 ) Aspects obsolètes de Fortran 90 ) de Fortran 95 ) Évolution : nouveautés Fortran 95 ) Fortran 90 sur IBM-RS/6000 ) Fortran 90 sur NEC SX-5 ) Bibliographie ) Documentation INSTITUT DU DÉVELOPPEMENT Fortran 95 ET DES RESSOURCES CNRS – 28 janvier 2005EN INFORMATIQUE SCIENTIFIQUE 10 Introduction : historique 1.1 Historique Code machine (notation numérique en octal). Assembleurs de codes mnémoniques. 1954–Projet création du premier langage symbolique par John Backus d’IBM =) FORTRAN (Mathematical FORmula TRANslating System) : 1. Efficacité du
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents