Chap.1. Généralités• 1. Historique• 2. Alphabet Fortran• 3. Forme du code source• 4. Structure générale d’un programme• 5....
1. Historique           SMP Module: ANP J. EL KHAMKHAMI
FORTRAN : FORmula TRANslator    Traducteur de formules• Langage scientifique par excellence• Nombreuses bibliothèques de f...
Apparition : les années 50   1966 : 1ère norme  Fortran 66    1977 : 2ème norme  Fortran 77Les années 90 : Fortran 90, F...
2. L’alphabet Fortran              SMP Module: ANP J. EL KHAMKHAMI
2.1. Jeu de caractères• Les caractères alphanumériques  • Les 26 lettres,  • Les 10 chiffres,  • Le souligneur _• Les 20 c...
Caractères       Noms        Caractères            Noms    =        Signe égal                  Apostrophe    +        Sig...
2.2. Identificateurs• Noms des différents objets manipulables  par le programme :   Objets : Types, variables, fonctions, ...
Exemples :real, x_up, sol12, fact_, geom_3d Contres exemples : 2var,         _ low   invalides                       SMP M...
2.3. SéparateursDeux identificateurs successifs doivent impérativement        être séparés soit par un espace soit par un ...
2.4. Mots clésIdentificateurs prédéfinis par le langage Exemples : program, print, integer, real, dimension, goto, module,...
2.5. Etiquette• 1< nombre entier < 99999 • utilité : référencer certaines    instructions Fortran (boucle, branchement, dé...
3. Formats du code source                SMP Module: ANP J. EL KHAMKHAMI
•Format fixe :Façon ancienne : Fortran 77 (avec 2 extensions)     Les fichiers au format libre porteront            lexte...
Format libreLes colonnes 1 à 6 ne sont plus réservées. Les étiquettes peuventêtre placées à partir de nimporte quelle colo...
• Lors de la coupure d’une chaîne de caractères la suite   de lachaîne doit impérativement commencer par le caractère "&",...
Les blancs sont significatifs : – des blancs ne doivent jamais être insérés à   l’intérieur d’une unité lexicale : inte ge...
– Des blancs peuvent séparer des unités lexicales (majeures ou mineures) de façon à améliorer la lisibilité : (1+cos(x))+(...
4. Structure générale d’un        programme                  SMP Module: ANP J. EL KHAMKHAMI
• Un programme Fortran est composé de partiesindépendantes (unités de programme)Elles :     • peuvent être compilées sépar...
Module (Use)                                   Procédure de module                                     Subroutine (Call)  ...
SMP Module: ANP J. EL KHAMKHAMI
5. Édition, compilation,édition des liens, exécution                   SMP Module: ANP J. EL KHAMKHAMI
• Edition du code source : • saisir au clavier •sauvegarder sous un nom qui se termine par l’extension .F90• Compilation d...
Programme principal Syntaxe générale :PROGRAM [nom-programme]                 L’entête est facultatif        [instructions...
Module Syntaxe générale :                            Module_ kind                                              integer, pa...
Subroutine Syntaxe générale :                         subroutine (rac_trin(a, b, rac                                      ...
Function Syntaxe générale :                                                  Function (F(a, b                             ...
Prochain SlideShare
Chargement dans…5
×

Generalites

440 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
440
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Generalites

  1. 1. Chap.1. Généralités• 1. Historique• 2. Alphabet Fortran• 3. Forme du code source• 4. Structure générale d’un programme• 5. Compilation, édition des liens, exécution SMP Module: ANP J. EL KHAMKHAMI
  2. 2. 1. Historique SMP Module: ANP J. EL KHAMKHAMI
  3. 3. FORTRAN : FORmula TRANslator Traducteur de formules• Langage scientifique par excellence• Nombreuses bibliothèques de fonctions• Rapidité ← compilateurs SMP Module: ANP J. EL KHAMKHAMI
  4. 4. Apparition : les années 50 1966 : 1ère norme  Fortran 66 1977 : 2ème norme  Fortran 77Les années 90 : Fortran 90, Fortran 95 SMP Module: ANP J. EL KHAMKHAMI
  5. 5. 2. L’alphabet Fortran SMP Module: ANP J. EL KHAMKHAMI
  6. 6. 2.1. Jeu de caractères• Les caractères alphanumériques • Les 26 lettres, • Les 10 chiffres, • Le souligneur _• Les 20 caractères spéciaux• Le caractère blanc (espace)
  7. 7. Caractères Noms Caractères Noms = Signe égal Apostrophe + Signe plus : Deux-points - Signe moins ! Point d’exclamation * Astérisque guillemet / Barre oblique % Pour-cent ( Parenthèse & Esperluette ouvrante ) Parenthèse ; Point-virgule fermante , Virgule < Plus petit que . Point > Plus grand que § dollar ? Point d’interrogation
  8. 8. 2.2. Identificateurs• Noms des différents objets manipulables par le programme : Objets : Types, variables, fonctions, …• suite de caractères alphanumériques (31 caractères) • 1er caractère ≠ chiffre • 1er caractère ≠ souligneur _ SMP Module: ANP J. EL KHAMKHAMI
  9. 9. Exemples :real, x_up, sol12, fact_, geom_3d Contres exemples : 2var, _ low invalides SMP Module: ANP J. EL KHAMKHAMI
  10. 10. 2.3. SéparateursDeux identificateurs successifs doivent impérativement être séparés soit par un espace soit par un changement de ligneException : – certains mots clés composés (Endif) – si la syntaxe impose un séparateur tel que : +, -, =,… SMP Module: ANP J. EL KHAMKHAMI
  11. 11. 2.4. Mots clésIdentificateurs prédéfinis par le langage Exemples : program, print, integer, real, dimension, goto, module, do while, if, ... SMP Module: ANP J. EL KHAMKHAMI
  12. 12. 2.5. Etiquette• 1< nombre entier < 99999 • utilité : référencer certaines instructions Fortran (boucle, branchement, déclaration format)• Exemples : 02, 145, 85792, ... SMP Module: ANP J. EL KHAMKHAMI
  13. 13. 3. Formats du code source SMP Module: ANP J. EL KHAMKHAMI
  14. 14. •Format fixe :Façon ancienne : Fortran 77 (avec 2 extensions)  Les fichiers au format libre porteront lextension .f ou .for•Format libre :Façon nouvelle  Les fichiers au format libre porteront lextension .f90
  15. 15. Format libreLes colonnes 1 à 6 ne sont plus réservées. Les étiquettes peuventêtre placées à partir de nimporte quelle colonne.Les instructions d’un programme sont écrites sur des lignes d’auplus 132 caractères.Il est possible d’écrire plusieurs instructions sur une même ligne,mais en les séparant par un point virgule (i=1 ; x=2.3 ; y=.0).Une instruction peut être écrite sur plusieurs lignes. Une lignese terminant par le caractère "&" indique que la ligne suivanteest une ligne de continuation, exemple :  print * ‘ nom _ prenom :’, id, & ‘ date de naissance :’, nd, & ‘ lieu de naissance :’ ,ville
  16. 16. • Lors de la coupure d’une chaîne de caractères la suite de lachaîne doit impérativement commencer par le caractère "&",Exemple : print *, Ceci est une phrase &             & sur deux lignes• Un commentaire peut être indiqué nimporte où sur une ligne à condition quil soit précédé du caractère "!",Exemple : if(xfin< xdeb) then  ! si la condition est remplie print *,‘ erreur : réesayer ‘ ! écriture à l’écran endif  ! fin de la condition
  17. 17. Les blancs sont significatifs : – des blancs ne doivent jamais être insérés à l’intérieur d’une unité lexicale : inte ger (invalide), integer (valide)  – un (ou plusieurs) blanc doivent séparer des unités lexicales majeures successives : do20j=1,nmax (invalide), do 20 j=1,nmax (valide)
  18. 18. – Des blancs peuvent séparer des unités lexicales (majeures ou mineures) de façon à améliorer la lisibilité : (1+cos(x))+(x+y) ou (1+cos(x)) + (x+y)– Un blanc (au moins) doit séparer certains mots- clés composés (do while, implicit none, recursive function, type function, etc), dans d’autres, il est facultatif (end if, go to, select case, etc)
  19. 19. 4. Structure générale d’un programme SMP Module: ANP J. EL KHAMKHAMI
  20. 20. • Un programme Fortran est composé de partiesindépendantes (unités de programme)Elles : • peuvent être compilées séparément • admettent chacune son propre environnement• Une unité de programme peut être : • le programme principal • un sous-programme principal (subroutine ou function) • un module SMP Module: ANP J. EL KHAMKHAMI
  21. 21. Module (Use) Procédure de module Subroutine (Call) Programme principal Procédures internes (Contains) Function Procédures internes (Contains) Procédures externes Subroutine (Call) Procédures internes (Contains) Procédures internes (Contains)Un exemple simple de programme : Functioncliquer ici Procédures internes (Contains)
  22. 22. SMP Module: ANP J. EL KHAMKHAMI
  23. 23. 5. Édition, compilation,édition des liens, exécution SMP Module: ANP J. EL KHAMKHAMI
  24. 24. • Edition du code source : • saisir au clavier •sauvegarder sous un nom qui se termine par l’extension .F90• Compilation du fichier source : • action de transformer (à l’aide du compilateur) le code source : création du fichier : .obj• Édition des liens (linking) • établir les liens entre les différentes unités du programme création du fichier : .exe• Lancement de l’exécutable • exécuter le fichier: .exe SMP Module: ANP J. EL KHAMKHAMI
  25. 25. Programme principal Syntaxe générale :PROGRAM [nom-programme] L’entête est facultatif [instructions de spécification] [instructions exécutables] [Contains procédures internes] éventuellementEND [PROGRAM [nom-programme]] facultatifs SMP Module: ANP J. EL KHAMKHAMI
  26. 26. Module Syntaxe générale : Module_ kind integer, parameter :: r = 8 END Module kinds Program principal Use_ kindModule [nom-module] real(kind=r) :: x, y … END Program principal [instructions de spécification] [Contains procédures modules] éventuellementEND [Module [nom-module]] facultatifs SMP Module: ANP J. EL KHAMKHAMI
  27. 27. Subroutine Syntaxe générale : subroutine (rac_trin(a, b, rac implicit none real :: a, b, rac if(a==0) then Subroutine [nom-subroutine] print*, pas de solution [instructions de spécification] else rac = -b/a [instructions exécutables] endif End subroutine rac [Contains éventuellement procédures internes] END [Subroutine [nom-subroutine]] facultatifs SMP Module: ANP J. EL KHAMKHAMI
  28. 28. Function Syntaxe générale : Function (F(a, b implicit none Function [nom-function] real :: a, b F = a*cos((b [instructions de spécification] End Function F [instructions exécutables] [Contains éventuellement procédures internes] END [Function [nom-function]] facultatifs SMP Module: ANP J. EL KHAMKHAMI

×