SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
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
1. Historique




           SMP Module: ANP J. EL KHAMKHAMI
FORTRAN : FORmula TRANslator
    Traducteur de formules


• Langage scientifique par excellence

• Nombreuses bibliothèques de fonctions

• Rapidité ← compilateurs

                            SMP Module: ANP J. EL KHAMKHAMI
Apparition : les années 50

   1966 : 1ère norme  Fortran 66


    1977 : 2ème norme  Fortran 77



Les années 90 : Fortran 90, Fortran 95


                         SMP Module: ANP J. EL KHAMKHAMI
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 caractères spéciaux
• Le caractère blanc (espace)
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
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
Exemples :

real, x_up, sol12, fact_, geom_3d


 Contres exemples :

 2var,         _ low
   invalides
                       SMP Module: ANP J. EL KHAMKHAMI
2.3. Séparateurs

Deux identificateurs successifs doivent impérativement

        être séparés soit par un espace soit par un

                    changement de ligne



Exception :

   – certains mots clés composés (Endif)
   – si la syntaxe impose un séparateur tel que : +, -,
     =,…

                                    SMP Module: ANP J. EL KHAMKHAMI
2.4. Mots clés

Identificateurs prédéfinis par le langage 


Exemples :

 program, print, integer, real,

 dimension, goto, module, do while, if, ...


                           SMP Module: ANP J. EL KHAMKHAMI
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
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
            l'extension .f ou .for


•Format libre :
Façon nouvelle
   Les fichiers au format libre porteront
             l'extension .f90
Format libre
Les colonnes 1 à 6 ne sont plus réservées. Les étiquettes peuvent
être placées à partir de n'importe quelle colonne.

Les instructions d’un programme sont écrites sur des lignes d’au
plus 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 ligne
se terminant par le caractère "&" indique que la ligne suivante
est une ligne de continuation, exemple : 
      print * ‘ nom _ prenom :’, id, &
       ‘ date de naissance :’, nd, &
       ‘ lieu de naissance :’ ,ville
• Lors de la coupure d’une chaîne de caractères la suite   de la
chaîne doit impérativement commencer par le caractère "&",

Exemple :
       print *, 'Ceci est une phrase &
               & sur deux lignes'
• Un commentaire peut être indiqué n'importe où sur une ligne à
   condition qu'il 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
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)
– 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)
4. Structure générale d’un
        programme




                  SMP Module: ANP J. EL KHAMKHAMI
• Un programme Fortran est composé de parties
indé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
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 :
                                     Function
cliquer ici
                                     Procédures internes
                                       (Contains)
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 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
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]         éventuellement

END   [PROGRAM [nom-programme]]



             facultatifs


                                               SMP Module: ANP J. EL KHAMKHAMI
Module 

Syntaxe générale :                            Module_ kind
                                              integer, parameter :: r = 8
                                              END Module kinds

                                              Program principal
                                              Use_ kind

Module [nom-module]                           real(kind=r) :: x, y
                                              …
                                              END Program principal
       [instructions de spécification]
          [Contains
       procédures modules]        éventuellement

END   [Module [nom-module]]




            facultatifs



                                           SMP Module: ANP J. EL KHAMKHAMI
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
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

Contenu connexe

Tendances

Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
mahbouba
 
Langage C
Langage  CLangage  C
Langage C
jwilili
 

Tendances (20)

VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !
 
Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academy
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Partie 8: Objets et Classes — Programmation orientée objet en C++
Partie 8: Objets et Classes — Programmation orientée objet en C++Partie 8: Objets et Classes — Programmation orientée objet en C++
Partie 8: Objets et Classes — Programmation orientée objet en C++
 
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
Td pascal tdD
Td pascal tdDTd pascal tdD
Td pascal tdD
 
Cours php
Cours phpCours php
Cours php
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Langage C
Langage CLangage C
Langage C
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Langage C
Langage  CLangage  C
Langage C
 
Dans les entrailles du langage C
Dans les entrailles du langage CDans les entrailles du langage C
Dans les entrailles du langage C
 
Le langage C
Le langage CLe langage C
Le langage C
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelle
 

En vedette

ANP-GP Approach for Selection of Software Architecture Styles
ANP-GP Approach for Selection of Software Architecture StylesANP-GP Approach for Selection of Software Architecture Styles
ANP-GP Approach for Selection of Software Architecture Styles
Waqas Tariq
 
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.xTutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
elenau12
 
Access formulaires
Access formulairesAccess formulaires
Access formulaires
hassan1488
 
Tutorial 8 building_ahp_rating_ models_ver_2.2
Tutorial 8 building_ahp_rating_ models_ver_2.2Tutorial 8 building_ahp_rating_ models_ver_2.2
Tutorial 8 building_ahp_rating_ models_ver_2.2
elenau12
 
BOCR multi level ANP models
BOCR multi level ANP modelsBOCR multi level ANP models
BOCR multi level ANP models
Elena Rokou
 
ANP market share models
ANP market share modelsANP market share models
ANP market share models
Elena Rokou
 
Tutorial2003
Tutorial2003Tutorial2003
Tutorial2003
chibi12
 
Changing from AHP to ANP thinking
Changing from AHP to ANP thinkingChanging from AHP to ANP thinking
Changing from AHP to ANP thinking
Elena Rokou
 
Validation examples AHP and ANP
Validation examples AHP and ANPValidation examples AHP and ANP
Validation examples AHP and ANP
Elena Rokou
 
SuperDecision for AHP and ANP
SuperDecision for AHP and ANPSuperDecision for AHP and ANP
SuperDecision for AHP and ANP
Elena Rokou
 

En vedette (20)

An Analytic Network Process Modeling to Assess Technological Innovation Capab...
An Analytic Network Process Modeling to Assess Technological Innovation Capab...An Analytic Network Process Modeling to Assess Technological Innovation Capab...
An Analytic Network Process Modeling to Assess Technological Innovation Capab...
 
ANP-GP Approach for Selection of Software Architecture Styles
ANP-GP Approach for Selection of Software Architecture StylesANP-GP Approach for Selection of Software Architecture Styles
ANP-GP Approach for Selection of Software Architecture Styles
 
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.xTutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
 
Regex php
Regex phpRegex php
Regex php
 
Access formulaires
Access formulairesAccess formulaires
Access formulaires
 
Tutorial 8 building_ahp_rating_ models_ver_2.2
Tutorial 8 building_ahp_rating_ models_ver_2.2Tutorial 8 building_ahp_rating_ models_ver_2.2
Tutorial 8 building_ahp_rating_ models_ver_2.2
 
BOCR multi level ANP models
BOCR multi level ANP modelsBOCR multi level ANP models
BOCR multi level ANP models
 
ANP market share models
ANP market share modelsANP market share models
ANP market share models
 
Tutorial2003
Tutorial2003Tutorial2003
Tutorial2003
 
Anp slideshow july_2001
Anp slideshow july_2001Anp slideshow july_2001
Anp slideshow july_2001
 
AHP Champion Award 2015
AHP Champion Award 2015AHP Champion Award 2015
AHP Champion Award 2015
 
Changing from AHP to ANP thinking
Changing from AHP to ANP thinkingChanging from AHP to ANP thinking
Changing from AHP to ANP thinking
 
Analytic network process
Analytic network processAnalytic network process
Analytic network process
 
Validation examples AHP and ANP
Validation examples AHP and ANPValidation examples AHP and ANP
Validation examples AHP and ANP
 
SuperDecision for AHP and ANP
SuperDecision for AHP and ANPSuperDecision for AHP and ANP
SuperDecision for AHP and ANP
 
Ppt paper
Ppt paperPpt paper
Ppt paper
 
Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
 
Analytic Network Process
Analytic Network ProcessAnalytic Network Process
Analytic Network Process
 
Access 2007 verrou
Access 2007 verrouAccess 2007 verrou
Access 2007 verrou
 
Exercice tresorerie + ingenierie financiere
Exercice  tresorerie + ingenierie financiereExercice  tresorerie + ingenierie financiere
Exercice tresorerie + ingenierie financiere
 

Similaire à Generalites

Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
Hailisara
 
Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)
ISIG
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensions
julien pauli
 

Similaire à Generalites (20)

C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
compilation1-2020.pdf
compilation1-2020.pdfcompilation1-2020.pdf
compilation1-2020.pdf
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
Interception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appelInterception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appel
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojure
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 
Algorithmique iv
Algorithmique ivAlgorithmique iv
Algorithmique iv
 
C#
C#C#
C#
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
Chapitre 5 Linux
Chapitre 5 LinuxChapitre 5 Linux
Chapitre 5 Linux
 
POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensions
 

Generalites

  • 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. 1. Historique SMP Module: ANP J. EL KHAMKHAMI
  • 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. Apparition : les années 50 1966 : 1ère norme  Fortran 66 1977 : 2ème norme  Fortran 77 Les années 90 : Fortran 90, Fortran 95 SMP Module: ANP J. EL KHAMKHAMI
  • 5. 2. L’alphabet Fortran SMP Module: ANP J. EL KHAMKHAMI
  • 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. 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. 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. Exemples : real, x_up, sol12, fact_, geom_3d Contres exemples : 2var, _ low invalides SMP Module: ANP J. EL KHAMKHAMI
  • 10. 2.3. Séparateurs Deux identificateurs successifs doivent impérativement être séparés soit par un espace soit par un changement de ligne Exception : – certains mots clés composés (Endif) – si la syntaxe impose un séparateur tel que : +, -, =,… SMP Module: ANP J. EL KHAMKHAMI
  • 11. 2.4. Mots clés Identificateurs prédéfinis par le langage  Exemples : program, print, integer, real, dimension, goto, module, do while, if, ... SMP Module: ANP J. EL KHAMKHAMI
  • 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. 3. Formats du code source SMP Module: ANP J. EL KHAMKHAMI
  • 14. •Format fixe : Façon ancienne : Fortran 77 (avec 2 extensions)  Les fichiers au format libre porteront l'extension .f ou .for •Format libre : Façon nouvelle  Les fichiers au format libre porteront l'extension .f90
  • 15. Format libre Les colonnes 1 à 6 ne sont plus réservées. Les étiquettes peuvent être placées à partir de n'importe quelle colonne. Les instructions d’un programme sont écrites sur des lignes d’au plus 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 ligne se terminant par le caractère "&" indique que la ligne suivante est une ligne de continuation, exemple :  print * ‘ nom _ prenom :’, id, & ‘ date de naissance :’, nd, & ‘ lieu de naissance :’ ,ville
  • 16. • Lors de la coupure d’une chaîne de caractères la suite de la chaîne doit impérativement commencer par le caractère "&", Exemple : print *, 'Ceci est une phrase &             & sur deux lignes' • Un commentaire peut être indiqué n'importe où sur une ligne à condition qu'il 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. 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. – 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. 4. Structure générale d’un programme SMP Module: ANP J. EL KHAMKHAMI
  • 20. • Un programme Fortran est composé de parties indé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. 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 : Function cliquer ici Procédures internes (Contains)
  • 22. SMP Module: ANP J. EL KHAMKHAMI
  • 23. 5. Édition, compilation, édition des liens, exécution SMP Module: ANP J. EL KHAMKHAMI
  • 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. 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] éventuellement END [PROGRAM [nom-programme]] facultatifs SMP Module: ANP J. EL KHAMKHAMI
  • 26. Module  Syntaxe générale : Module_ kind integer, parameter :: r = 8 END Module kinds Program principal Use_ kind Module [nom-module] real(kind=r) :: x, y … END Program principal [instructions de spécification] [Contains procédures modules] éventuellement END [Module [nom-module]] facultatifs SMP Module: ANP J. EL KHAMKHAMI
  • 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. 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