cours fortran langage fortran support de cours .cours langage fortran { 27 janvier 2006 patrick...

Download COURS FORTRAN Langage Fortran Support de cours .Cours langage Fortran { 27 janvier 2006 Patrick Corde

Post on 12-Sep-2018

232 views

Category:

Documents

5 download

Embed Size (px)

TRANSCRIPT

  • COURS FORTRAN 1

    Langage Fortran

    Support de cours

    Patrick Corde

    Anne Fouilloux

    Messagerie : Prenom.Nom@idris.fr

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 2

    1 Introduction . . . . . . . . . . . . . . . . 8

    1.1 Historique . . . . . . . . . . . . . . . . 9

    1.2 bibliographie . . . . . . . . . . . . . . . 12

    1.3 documentation . . . . . . . . . . . . . . 15

    2 Generalites . . . . . . . . . . . . . . . . . 18

    2.1 Bases de numeration . . . . . . . . . . . 19

    2.2 Representation des donnees . . . . . . . 21

    2.2.1 Representation des entiers . . . . . . 21

    2.2.2 Representation des reels . . . . . . . 22

    2.2.3 Representation des complexes . . . . 24

    2.2.4 Representation des logiques . . . . . . 25

    2.2.5 Representation des caracteres . . . . . 26

    2.3 Jeu de caracteres . . . . . . . . . . . . . 29

    2.4 Notion dunite de programme . . . . . . 30

    2.5 Elements syntaxiques . . . . . . . . . . 31

    2.5.1 Format libre . . . . . . . . . . . . . 31

    2.5.2 Commentaires . . . . . . . . . . . . . 33

    3 Declarations . . . . . . . . . . . . . . . . 34

    3.1 Identificateurs . . . . . . . . . . . . . . 35

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 3

    3.2 Differents types . . . . . . . . . . . . . . 36

    3.3 Syntaxe . . . . . . . . . . . . . . . . . . 38

    3.3.1 Forme generale dune declaration . . 38

    3.3.2 Cas particulier : le type CHARACTER 39

    3.4 Instruction IMPLICIT NONE . . . . . . 40

    3.5 Constantes litterales . . . . . . . . . . . 41

    3.5.1 Constantes entieres . . . . . . . . . . 41

    3.5.2 Constantes reelles simple precision . . 42

    3.5.3 Constantes reelles double precision . . 43

    3.5.4 Constantes complexes . . . . . . . . . 44

    3.5.5 Constantes chanes de caracteres . . . 45

    3.6 Initialisation . . . . . . . . . . . . . . . 46

    3.6.1 Linstruction DATA . . . . . . . . . . 46

    3.6.2 Le symbole = . . . . . . . . . . . . 48

    3.7 Constantes symboliques . . . . . . . . . 49

    3.8 Instruction EQUIVALENCE . . . . . . . 50

    4 Operateurs et expressions . . . . . . . . . 53

    4.1 Operateurs arithmetiques . . . . . . . . 54

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 4

    4.1.1 Les operateurs . . . . . . . . . . . . 54

    4.1.2 Les expressions . . . . . . . . . . . . 55

    4.1.3 Conversion implicite . . . . . . . . . 57

    4.2 Operateurs relationnels . . . . . . . . . . 58

    4.3 Operateurs logiques . . . . . . . . . . . 59

    4.3.1 Les tables de verite . . . . . . . . . . 60

    4.4 Operateur de concatenation . . . . . . . 61

    4.5 Operateur daffectation . . . . . . . . . . 62

    4.5.1 syntaxe generale . . . . . . . . . . . 62

    4.5.2 Regles de typage . . . . . . . . . . . 62

    4.6 Priorite des Operateurs . . . . . . . . . 64

    5 Structures de controle . . . . . . . . . . . 66

    5.1 Les tests . . . . . . . . . . . . . . . . . 67

    5.1.1 Le bloc IF . . . . . . . . . . . . . . . 67

    5.1.2 Le bloc SELECT-CASE . . . . . . . 69

    5.2 Les iterations . . . . . . . . . . . . . . . 71

    5.2.1 Linstruction GOTO . . . . . . . . . 71

    5.2.2 Les bloucles DO . . . . . . . . . . . 72

    6 Tableaux . . . . . . . . . . . . . . . . . . 79

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 5

    6.1 Declaration . . . . . . . . . . . . . . . . 80

    6.2 Definitions (rang, profil, etendue) . . . . 82

    6.3 Initialisation . . . . . . . . . . . . . . . 85

    6.3.1 Le symbole = . . . . . . . . . . . . 85

    6.3.2 Le constructeur de vecteurs . . . . . . 86

    6.3.3 Linstruction DATA . . . . . . . . . . 88

    6.4 Manipulation de tableaux . . . . . . . . 89

    6.4.1 Expressions de type tableau . . . . . 89

    6.4.2 Sections de tableaux . . . . . . . . . 90

    7 Entrees-Sorties . . . . . . . . . . . . . . . 93

    7.1 Introduction . . . . . . . . . . . . . . . 94

    7.2 Acces sequentiel . . . . . . . . . . . . . 96

    7.2.1 Fichier binaire sequentiel . . . . . . . 97

    7.2.2 Fichier texte sequentiel . . . . . . . . 99

    7.3 Acces direct . . . . . . . . . . . . . . . 133

    7.3.1 Fichier binaire a acces direct . . . . . 134

    7.3.2 Fichier texte a acces direct . . . . . . 136

    7.4 Fichier temporaire . . . . . . . . . . . . 138

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 6

    7.5 Destruction dun fichier . . . . . . . . . 139

    7.6 Fichier interne . . . . . . . . . . . . . . 140

    7.7 Instructions de positionnement . . . . . . 143

    7.8 Instruction INQUIRE . . . . . . . . . . 146

    7.9 Remarques . . . . . . . . . . . . . . . . 148

    8 Procedures . . . . . . . . . . . . . . . . . 152

    8.1 Arguments . . . . . . . . . . . . . . . . 153

    8.2 Subroutines . . . . . . . . . . . . . . . . 155

    8.3 Fonctions . . . . . . . . . . . . . . . . . 156

    8.4 Arguments de type chane de caracteres . 158

    8.5 Arguments de type tableau . . . . . . . . 160

    8.6 Arguments de type procedure . . . . . . 163

    8.7 Procedures internes . . . . . . . . . . . 165

    8.8 Duree de vie et visibilite des identificateurs 168

    8.9 Procedures intrinseques . . . . . . . . . 170

    9 Common . . . . . . . . . . . . . . . . . . 171

    9.1 Linstruction COMMON . . . . . . . . . 172

    9.2 Common blanc . . . . . . . . . . . . . . 173

    9.3 Common etiquete . . . . . . . . . . . . 175

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Liste des transparents 7

    9.3.1 Initialisation : BLOCK DATA . . . . 176

    9.3.2 Instruction SAVE et COMMON . . . 178

    9.4 Regles et restrictions . . . . . . . . . . . 180

    10 Include . . . . . . . . . . . . . . . . . . . 183

    10.1 La directive INCLUDE . . . . . . . . . 184

    11 Annexe A : entrees-sorties - syntaxes . . . . 186

    12 Annexe B : procedures intrinseques . . . . 204

    13 Annexe C : aspects obsoletes . . . . . . . . 216

    14 Annexe D : systeme de compilation . . . . 220

    15 Annexe E : exercices . . . . . . . . . . . . 224

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Introductionplan 8

    1 Introduction

    1.1 Historique

    1.2 Bibliographie

    1.3 Documentation

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • IntroductionHistorique 9

    1.1 Historique

    Code machine (notation numerique en octal).

    Assembleurs de codes mnemoniques.

    1954Projet creation du premier langage

    symbolique par John Backus dIBM = FOR-

    TRAN (Mathematical FORmula TRANslating

    System) :

    Efficacite du code genere (performance).

    Langage quasi naturel pour scientifiques (pro-

    ductivite, maintenance, lisibilite).

    1957Livraison des premiers compilateurs.

    1958Fortran II (IBM) = sous-programmes

    compilables de facon independante.

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • IntroductionHistorique 10

    Generalisation aux autres constructeurs mais :

    divergences des extensions = necessite de

    normalisation,

    ASA American Standards Association (= ANSI

    American Nat. Standards Institute). Comite

    charge du developpement dune norme Fortran

    = 1966.

    1966Fortran IV (Fortran 66).

    Evolution par extensions divergentes. . .

    1977Fortran V (Fortran 77).

    Quasi compatible :

    aucune iteration des boucles nulles (DO I=1,0)

    Nouveautes principales :

    type caractere,

    IF-THEN-ELSE,

    E/S acces direct et OPEN.

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • IntroductionHistorique 11

    Travail des comites X3J3/ANSI et WG5/ISO pour

    moderniser Fortran 77 :

    Standardisation : inclusion dextensions.

    Developpement : nouveaux concepts deja ex-

    ploites par langages plus recents APL, Algol,

    PASCAL, Ada, . . .

    Performances en calcul scientifique

    Totalement compatible avec Fortran 77

    1991/1992Norme ISO et ANSI = Fortran 90

    1994 Premiers compilateurs Fortran 90 Cray et

    IBM.

    1999 sur Cray T3E puis IBM RS/6000 = Fortran

    95

    INSTITUT DU DEVELOPPEMENTET DES RESSOURCESEN INFORMATIQUE SCIENTIFIQUE

    Cours langage Fortran 27 janvier 2006Patrick Corde et Anne Fouilloux

  • Introductionbibliographie 12

    1.2 bibliographie

    Adams, Brainerd, Martin, Smith et Wagener,

    Fortran 95 Handbook, MIT Press, 1997, (711

    pages), ISBN 0-262-51096-0.

    Brainerd, Goldberg, Adam