Formation avancé du langage Fortran 77

Problème à signaler:


Télécharger Formation avancé du langage Fortran 77



★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

CHAPITRE I Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 
    TABLE  DES  MATIERES 
 
 
 
r>CHAPITRE I                                      GENERALITES  
 
 
CHAPITRE II                   NOTIONS SUR LES ALGORITHMES    
ET LES ORGANIGRAMMES 
 
    
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
CHAPITRE III                     LES INSTRUCTIONS DE FORTRAN 77 
 
 
                                                                
 
CHAPITRE IV                        LES SOUS-PROGRAMMES ET LES  
INSTRUCTIONS D’EFFICACITE DE PROGRAMMATION 
 
 
                                      3.2. Syntaxe de subroutine  .. 36 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
                                                
 
CHAPITRE                                        LES FICHIERS 
 
 
 
 
ANNEXE                                  FONCTIONS ARITHMETIQUES  
 
 
11. Parties reelles et imaginaire d’un complexe  . 46 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
  CHAPITRE I                           
GENERALITES 
 
Dans ce premier chapitre nous décrivons les éléments syntaxiques de FORTRAN. 
 
1. ALPHABET FORTRAN  
 
  Il est composé de caractères alphanumériques et spéciaux. 
 
1.1. CARACTERES ALPHANUMERIQUES 
 
Ce sont les 26 lettres de l’alphabet latin, majuscules et minuscules ainsi que les 10 chiffres  
          A B C  Z a b c  z 0 1 2  9 
 
1.2. CARACTERES SPECIAUX  
 
Ce sont = + - * / : ( ) ‘. $ et l’espace blanc. 
 
2. STRUCTURE GENERALE D’UN PROGRAMME FORTRAN 
    
Un programme FORTRAN est constitué de : 
 
- Mots : ils sont formés par des lettres, des chiffres et des caractères spéciaux. Ces mots forment 
à leurs tours des constantes, des identificateurs, des étiquettes et des opérateurs. En appliquant 
certaines règles nous formons les éléments syntaxiques du langage FORTRAN. 
 
- Instructions : une instruction est une suite d’éléments syntaxiques Il existe 2 types : exécutable 
et non exécutable. 
 
- Programme : est un ensemble d’instructions et de commentaires. Nous désignons deux types: 
les programmes principaux et les sous-programmes qui commencent par l’une des instructions 
FUNCTION ou SUBROUTINE.                          
Un programme FORTRAN peut avoir la structure suivante : 
 
  instructions de déclaration 
instructions exécutables et non exécutables  
END 
 
3. STRUCTURE D’UNE LIGNE EN FORTRAN 
 
Chaque ligne contient 80 caractères et est découpée en 4 zones : 
 
-  Zone  A  (colonnes  1  à  5)  :  elle  contient  un  nombre  entier  qui  sert  à  repérer  une  instruction; 
c’est la zone ETIQUETTE
 
- Zone B (colonne 6) : si elle contient un caractère quelconque autre que le zéro, elle spécifie 
une  ligne  suite.  En  effet,  si  une  instruction  ne  peut  être  écrite  sur  une  ligne,  nous  pouvons  la 
faire suivre de 9 lignes au maximum. 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
- Zone C (colonnes 7 à 72) : elle contient l’instruction FORTRAN proprement dite. 
 
-  Zone  D  (colonnes  73  à  80)  :  généralement  elle  est  utilisée  pour  numéroter  les  lignes  du 
programme, elle est ignorée par le compilateur. 
 
Remarques : 
 
- Les lignes comportant le caractère C ou * en colonne 1 sont dites lignes commentaires et sont 
ignorées du compilateur. 
- La première ligne d’un programme FORTRAN contient un blanc en colonne 6. 
 
4. OPERANDES  
 
Ils sont définis par l’utilisateur en respectant certaines règles. 
 
4.1. ETIQUETTES   
 
C’est un nombre sans signe de 1 à 5 chiffres. Elles peuvent apparaître soit en zone A, soit en 
zone B. 
 
4.2. CONSTANTES 
 
C’est  une  quantité  dont  la  valeur  numérique  est  fixée  et  ne  peut  plus  être  modifiée  pendant 
l’exécution du programme. Les constantes que nous étudierons sont : 
 
4.2.1. CONSTANTES ENTIERES  
 
Elles  s’écrivent  avec  1  à  N  chiffres  décimaux  (N  dépend  de  l’ordinateur  utilisé).  Elles  sont 
précédées  ou  non  d’un  signe  +  ou  -  .  Aucun  espace  ou  point  n’est  autorisé  entre  les chiffres 
composant cette constante. 
Exemples :  + 6              - 231                   12689 
 
4.2.2. CONSTANTES REELLES SIMPLE PRECISION  
 
Deux formes sont possibles, avec exposant (ou point flottant) et sans exposant (ou point fixe). 
 
a- Point fixe : Elles s’écrivent avec 1 à N chiffres décimaux avec un point décimal marquant 
la  séparation  entre la partie entière et fractionnaire. Cette constante peut être précédée ou non 
d’un signe. 
Exemples :  + 11.6             -23.12          12.              125. 
 
b-  Point  flattant  :  Dans  ce  cas  la  constante  possède  une  mantisse  ayant  1  à  N  chiffres 
décimaux  séparés  ou  non  par  un  point  décimal  suivie  d’un  exposant  (base  10)  ayant  pour 
symbole la lettre E. Le nombre qui suit E est un entier signé (nous pouvons omettre le signe +). 
Exemples : -17.E+2                 115.5E-55                      .13E8 
 
4.2.3. CONSTANTES DOUBLES PRECISION  
 
Elles s’écrivent en utilisant la forme avec exposant, la lettre E devient D. 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Exemples : 55.159874D-5              -5D+6 
 
4.2.4. CONSTANTES COMPLEXES   
 
Elles sont constituées d’un couple de constantes simple précision (avec ou sans exposant) entre 
parenthèses et séparées par une virgule. 
Exemples : (3.1, -1.12)  (-12., 5.E+2)  (2.E-1, 2.5E + 4)      
 
4.2.5. CONSTANTES LOGIQUES   
 
Elles  sont  booléennes  (vrai  ou  faux).  Nous  les  représentons  comme  suit  :  .TRUE.  ou        
.FALSE.  
NB : Les deux points entourant les mots TRUE et FALSE sont obligatoires
 
4.2.6. CONSTANTES CARACTERES   
 
C’est  une  suite  de  caractères  alphanumériques  ou  spéciaux  encadrés  par  deux  apostrophes
L’apostrophe à l’intérieur d’une chaîne de caractères est doublée
 
Exemples : ‘ INFORmatique ’    ‘ électronique ’    ‘ l’élément ’ 
 
Exercice : Donner le type des constantes suivantes : 
 
1220   1.52E+3  -200.  +.13   (5.E-2, 0.01)  12.3D+7   -1.665D-5   ‘F(x)’   .TRUE.   ‘FALSE.’ 
 
Réponse : 

Constantes entières : 1220 
Constantes réelles simple précision en point fixe : -200. , +.13 
Constantes réelles simple précision en point flottant : 1.52E+3 
Constantes complexes : (5.E-2,0.01) 
Constante logique : .TRUE.  
Constantes doubles précision : 12.3D+7, -1.665D-5 
Constantes caractère : ‘FALSE.’, ‘F(x)’ 
 
4.3. VARIABLES  
 
Le  nom  de  variable  est  formé  de  1  à  6  caractères  alphanumériques  dont  le  premier  est 
obligatoirement alphabétique. 
 
Exemples : ALPHA   FMIN   RMAX   BETTA   MATRIC 
 
Chaque  variable  possède  un  type  qui  définit  la  nature  des  informations  que  nous  voulons  y 
placer.  Nous  distinguons  les  variables  réelles,  entières,  complexes,  logiques  et  doubles 
précisions. 
Les  variables  réelles  et  entières  peuvent  être  déclarées  implicitement  :  si  une  variable 
commence par l’une des lettres suivantes I, J, K, L, M, N, elle est du type entier, sinon elle est 
du type réel. Pour les autres types de variables, la déclaration explicite est obligatoire. 
 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
4.3.1. DECLARATION EXPLICITE   
 

Les  variables  de  type  double  précision,  logique  et  complexe  sont  déclarées  selon  la  syntaxe 
suivante : 
 
 DOUBLE PRECISION 
    COMPLEX
  Var1[ , Var2, ,VarN ]    
 LOGICAL
 
avec : DOUBLE PRECISION, LOGICAL ET COMPLEX : mots-clés. 
Var1, Var2, , VarN: variables. 
 
Exemples : 
 
 LOGICAL debut, fin
 COMPLEX imag, compl
 
 DOUBLE PRECISION max
 
Remarques : Nous pouvons utiliser la même syntaxe pour déclarer une variable de type réel en 
entier, et inversement. 
 
Exemples : 
 
 INTEGER result, solut  
 REAL masse, long, nul
 
Les variables de type caractères ont une syntaxe légèrement différente : 
 
CHARACTER [*m] Var1 [[*m1], Var2 [*m2 ] , Varp [*mp]] 
 
avec  :  m,  m1,   ..,  mp  :  constantes  entières  positives,  représentant  la  longueur  des  chaînes  de 
caractères des variables. 
Var1, Var2, , varp : variables chaînes de caractères. 
 
Remarque : Dans toutes les syntaxes des instructions, les entités se trouvant entre crochets sont 
facultatives. 
 
Exemples :  
 
CHARACTER*5 NOTE1, NOTE2, MOYENNE*3, NOTE 3.  
 
La longueur des variables chaîne, NOTE1, NOTE 2 ET NOTE 3, est de 5, mais MOYENNE est 
de 3. 
 
CHARACTER ADRESSE*30, PROFESSION*15. 
La longueur des variables chaînes ADRESSE et PROFESSION est respectivement de 30 et 15. 
 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
4.3.2. VARIABLES INDICEES (TABLEAU) 
 
Une  variable  indicée  est  un  ensemble  de  variables  simples,  de  même  type.  Un  vecteur,  une 
matrice,  un  polynôme  constituent  des  variables  indicées.  Le  nombre  d’indices  tolérés  est  au 
maximum  de  3.  Toutefois  certains  compilateurs  proposent  7.Une  variable  indicée est déclarée 
avant toute utilisation. Si le nom de ces variables commence par l’une des lettres I, J, K, L, M, 
N, elles sont dites entières, sinon elles sont réelles : déclaration IMPLICITE. 
Les  autres  variables  indicées  de  types  doubles  précision,  complexe,  logique  et  caractère  sont 
déclarées explicitement. La syntaxe de déclaration pour les 3 premiers types est : 
 
 DOUBLE PRECISION 
 COMPLEX
 Tab (i1[ , i2, i3 ]) [ , .., Tab  (m1 [ ,m2, m3 ])]
i
p
  
 LOGICAL
 
avec :  
DOUBLE PRECISION, LOGICAL et COMPLEX : mots-clés. 
Tabi .Tabp : variables indicées. 
ii , .., mi : constantes entières positives représentant les dimensions des variables indicées. 
 
Remarque : Nous pouvons utiliser la même syntaxe pour déclarer une variable indicée de type 
réel en entier, et inversement. 
La  syntaxe  de  déclaration  d’une  variable  indicée  de  type  caractère,  est  identique  à  celle  de 
déclaration des variables simples, en remplaçant  
Var1, , Varp par des variables indicées. 
 
L’OPERATOIRE DE CONCATENATION (ENCHAÎNEMENT) :  
 
Il a pour rôle la création d’une chaîne de cratères nouvelle à partir des caractères des chaînes 
déjà existantes. 
 
Exemples : 
 
1- ‘INFOR’// ‘ MATIQUE’ donnera ‘INFORMATIQUE’ 
2- CHARACTER X*2, Y *4 
 
Si nous donnons à X la valeur ‘PR’ et à Y la valeur ‘ENOM’, alors X // Y donnera ‘PRENOM’, 
par contre Y // X donnera ‘ENOMPR’. 
 
4.3.3. DIMENSION D’UNE VARIABLE INDICEE 
 
La déclaration de la dimension d’une variable indicée est obligatoire. Elle se fait par la syntaxe 
suivante : 
DIMENSION VI1, (DIM1) [ , VI2 (DIM2), , Vip (DIMp)] 
avec : 
DIMENSION : mot-clé 
VI1, VI2, ..Vip : noms de variables indicées  
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
DIM1,  DIM2,   DIMp  :  Liste  des  dimensions,  avec  DIMi  (1 ?   i  ?   N)  peut  être  représenté 
comme suit : 
DIMi = inf 1 : sup1, inf 2, , infN : supn avec infi et supi respectivement bornes inférieures et 
supérieures, de la iéme dimension (1 ?  i  ?  N). Elles sont généralement des constantes entières 
positives, nulles ou négatives. 
 
Exemples : 
 
DIMENSION V (-3:1), MATR (2:5) 
V et MATR sont des vecteurs respectivement de 5 et 4 éléments numérotés de -3 à 1 pour V et 
de 2 à 5 pour MATR. Le premier est réel, le second est entier. 
 
Remarques : 
 
a  -  Lorsque  la  borne  INFi  =  1,  il  faut  se  limiter  à  la  représentation  de  la  borne  SUPi  :                      
DIMi = sup1, sup2,  ., supN 
     Exemple :                DIMENSION V(5), MATR (4,6) 
 
b  -  La  déclaration  de  variables  indicées  chaînes  de  caractères  se  fait  dans  la  déclaration 
CHARACTER. 
     Exemple :                    CHARACTER*2 C, CH (1:8)*3     
 est équivalent à : 
                                       CHARACTER*2 C, CH*3 
                                       DIMENSION C(8), CH(1:8) 
 
c - Remise à zéro d’une variable indicée par DATA 
                                  DIMENTION V(5), MATR (4,6) 
                                  DATA V, MATR / 29*0./ 
    avec 29 = 5 + 4 *6 
 
d - L’instruction DATA (MATR (1,2), = 1,4)/4*0./ initialise les 4 éléments de la 2éme colonne 
de MATR à zéro. 
 
4.3.4. INSTRUCTION DE DECLARATION IMPLICIT  
 
Sa syntaxe est : IMPLICIT Type 1 (Liste1) [, Type 2 (Liste2), , TypeN (ListeN)] 
 
avec  Type1,  Type2, ..TypeN  :  instructions  de  déclaration;  elles  peuvent  être  INTEGER, 
REAL, LOGICAL, COMPLEX, CHARACTER, DOUBLE PRECISION. 
 
Liste 1, Liste2, Liste N : Liste de variables simples ou indicées. 
La première lettre de chaque liste indique toutes les variables débutant par cette lettre sont du 
même type, sauf spécification contraire. 
Exemple : 
                                     IMPLICIT COMPLEX (w-z) 
 
Toutes les variables débutant par W, X, Y, Z sont de type complexe 
 
 

 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
5. EXPRESSIONS  
 
5.1. EXPRESSIONS ARITHMETIQUES 
 
Nous construisons une expression arithmétique à partir : 
- des constantes, des variables simples ou indicées, des fonctions, des opérateurs arithmétiques 
(+, -, /, *, **) et des parenthèses. 
L’évaluation d’une expression arithmétique se fait selon l’ordre établit suivant : 
 
1) Les appels de fonctions. 
2) Les parenthèses : nous commençons par les plus internes. 
3) Les opérateurs arithmétiques : 
3.1)  l’exponentiation : à priorité égale, nous commençons de droite à gauche. 
3.2)  la multiplication et la division. 
3.3)  la soustraction et l’addition. 
 
Pour 3.2 et 3.3 à priorité égale, nous commençons de gauche à droite. 
 
5.2. EXPRESSIONS LOGIQUES  
 
Une expression logique est une expression qui peut être vraie ou fausse. C’est une comparaison 
entre expressions arithmétiques (généralement de même type) à l’aide d’opérateurs de relation 
(.OR., NOT., AND., EQV., NEQV.). 
 
Remarque  :  L’opérateur  .NOT.  ne  s’applique  qu’à  une  seule  expression  de  relation  l’ordre 
d’évaluation des expressions logiques est le suivant : 
1) Les appels de fonctions. 
2) Les parenthèses : nous commençons par les plus internes 
3) Les opérateurs arithmétiques (voir les expressions arithmétiques).  
4) Les opérateurs de concaténation //. 
5) Les opérateurs de relations : selon l’ordre d’apparition. 
6) Les opérateurs logiques : selon l’ordre suivant : .NOT., .AND., .OR. puis .EQV. et .NEQV. 
ont la même priorité. 
 
Exercice 1 : Écrire les expressions arithmétiques suivantes en FORTRAN : 
 
R = T/C Ln (?0 / ?)         C = U/(?Rv (E2-U2)1/2           V = 4 ? R3/3           G = S(R1  - R2 )/R3 
 
Réponse : 

R = T/C*ALOG (ALPHAO/ALPHA) 
C = U/(W*Rv*(E**2-U**2)**(1/2.)) 
V = 4./3*PI*R**3 avec PI connu 
G = S*(R1-R2)/R3 
 
Exercice 2 : Ecrire les expressions logiques suivantes en FORTRAN  
A ? B ;    X<Y et Z >W ;      X#Y ;   X2 ? 0 ou Y< 0 ;      (X-Y)2 ? 1.2 
 
Réponse : 
A.GE.B ; .W ;   X.NE.Y ;   X**.0 ;   (X-Y)**2.LE.1.2 
 
  10 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
CHAPITRE II 
 
NOTIONS SUR LES ALGORITHMES  
ET LES ORGANIGRAMMES 
 
 
Avant  d’écrire  un  programme  en  langage  évolué  comme  le  FORTRAN,  il  est  préférable,  et 
même  conseillé  de  donner  une  description  détaillée  de  la marche à suivre afin de résoudre un 
problème posé.  
Cette  description  peut  être  faite  en  utilisant  deux  formules  :  les  algorithmes  et  les 
organigrammes 
 
I.  ALGORITHMES 
 
L’algorithme est une manière de formaliser la solution d’un problème posé. Suivant la solution 
proposée, plusieurs cas peuvent se présenter. 
 
1.  INSTRUCTIONS SEQUENTIELLES  
 
L’algorithme est délimité par : 
Début : qui indique le début de l’algorithme.  
Fin     : qui définit sa fin. 
Entre ces deux mots est écrire la solution sous forme d’instruction. 
 
Début 
                    Enchaînement d’instructions 
Fin  
 
Si  toutes  ces  instructions  sont  exécutées  séquentiellement,  nous  parlons  d’une  structure 
séquentielle de l’algorithme. 
 
Exemple : 
 
Pour calculer la surface et le périmètre d’un carré, nous avons besoin de connaître la valeur du 
coté C.  Soit S la surface à chercher, et P le périmètre. 
Voici l’algorithme qui nous résoudrait le problème : 
 
Début  
Lire C 
*calcul de la surface du carré 
S = C*C 
*calcul du périmètre du carré 
p = 4*C 
Écrire S, P 
Fin  
 
A fin d’aboutir au résultat attendu, nous avons utilisé une suite d’instructions qui doivent être 
exécutées séquentiellement. Parmi ces instructions, nous constatons la présence : 
 
  11 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
- d’une instruction de lecture : introduite par lire  
         - d’une instruction d’écriture : introduite par écrire ou imprimer. 
Ce sont des instructions d’entrée - sortie. 
Nous avons une instruction d’affectation qui affecte la valeur d’une expression à une variable : 
P= 4 * C. 
Hormis  ces  instructions,  nous  avons  des  commentaires  qui  sont  introduits  pour  faciliter  la 
compréhension du traitement, nous les avons précédés d’un astérisque. 
 
En  FORTRAN,  un  commentaire  est  défini  en  mettant  la  lettre  C  en  première  colonne  de  la 
ligne. 
 
2. INSTRUCTIONS CONDITIONNELLES  
 

2.1. PREMIER CAS 
 
Supposons que lors de notre traitement, une ou un ensemble d’instruction ne sont exécutés que 
si une condition est vérifiée, nous formulerons ce besoin sous la forme : 
 
Si condition 
                Alors instruction (s) 1 
Fin si 
 
La condition est une expression logique. 
En FORTRAN, cela reviendrait à écrire : 
 
IF (condition) THEN  
                Introduction (s) 1 
ENDIF 
 
Exemple 1 : 
 
Donnons  une  prime  de  4  %  du  salaire  à  une  personne  ayant  plus  de  10  ans  d’ancienneté. 
Écrivons l’algorithme qui calcule la prime de cette personne : 
Posons : P : prime de l’employé; S : salaire ; A : ancienneté; Mat : matricule de l’employé 
 
Début 
                   Lire Mat, S, A 
                   Si A >10 
                       Alors  calcul de la prime P = S* 0.04 
                   Fin si  
                   Écrire Mat, P 
Fin 
 
2.2. DEUXIEME CAS  
         

Dans  le  cas  ou  la  condition  n’est  pas  vérifiée,  nous  pouvons  avoir  d’autres  instructions  à 
exécuter : 
  12 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Si condition 
Alors instruction (s) 1 
Sinon instruction (s) 2 
Fin si 
 
Le(s) instruction(s) 1 sont exécutées lorsque la condition est vérifiée, dans le cas contraire, ce 
sont le(s) instruction(s) 2 qui le seront. 
 
En FORTRAN 
IF condition THEN 
                Instruction 1 
ELSE 
                Instruction (s) 2 
ENDIF 
 
Exemple  2  :  Calculons  la  prime  de  l’employé  en  sachant  que  s’il  a  moins  de  10  ans 
d’ancienneté, il a 2% du salaire, dans le cas contraire, il a 4%. 
 
Début 
              Lire Mat, S, A 
Si A<10 
Alors P = S * 0.02 
Sinon P = s * 0.04 
Fin si 
Imprimer Mat, P 
Fin 
 
Remarque : nous pouvons avoir la forme générale suivante : 
 
IF    condition 1     THEN 
                 Instruction 1 
ELSE 
   IF condition2      THEN  
                Instruction(s) 2 
               . 
ENDIF 
 
3. INSTRUCTIONS ITERATIVES 
 

3.1. ITERATIONS CONTROLEES PAR DES CONDITIONS  
 
L’exécution d’une ou d’un ensemble d’instructions est répétée tant que la condition posée est 
vérifiée. 
Tant que condition 
Faire 
                   Instruction(s) 
Fait 
  13 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
La condition est une expression logique qui prendra pour valeur : vrai ou faux. 
Ces  instructions  peuvent  ne  jamais  être  exécutées  si  la  condition  a  pour  valeur  :  faux,  dés  le 
départ. De plus, les instructions peuvent être répétées indéfiniment, si parmi elles, il n’en existe 
pas une qui modifie la condition. 
 
Exemple : 
Écrire un algorithme qui calcule la valeur de S donnée par : S = 1/ (N2 + 1) 
La condition d’arrêt sera lorsque S est inférieure à E donné. 
 
Début 
                  Lire E, N 
                  S = 0 
Tant que S ? E 
Faire  
                         S = S + 1/ (N2 + 1) 
Fait 
                    Écrire S 
Fin 
 
Une autre forme d’itération contrôlée est la boucle :  
 
Répéter  
                 Instruction(s)  
Jusqu’à condition 
 
Les instructions seront répétées tant que, nous aurons la formulation suivante : 
 
Tant que non - condition 
Faire 
                  Instruction(s) 
Fait 
 
Cette manière d’écrire n’a pas d’équivalent en FORTRAN. 
 
3.2. ITERATIONS CONTROLEES PAR DES INDICES 
 
Lorsque  nous  avons  à  tester  la  valeur  d’un  compteur  dans  une  instruction  itérative,  nous 
pouvons utiliser la forme suivante : 
 
Pour compteur de VI à VF pas N 
Faire 
                     Instruction(s)  
Fait 
 
Dans ce cas, il faut connaître les valeurs entières de départ VI et d’arrivée VF du compteur ainsi 
que la valeur entière N du pas. 
Si VI est la valeur minimale du compteur, VF doit être maximale et le pas est alors positif. 
  14 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Si VI est la valeur maximale du compteur, VF doit être minimale et le pas est alors négatif. 
Si N = 1 le pas est facultatif. 
 
En FORTRAN, cela serait représenté par :  
 
             DO étiq compteur = val1, val2, pas  
                   Instruction(s) 
             étiq     instruction exécutable 
 
Remarque : L’instruction exécutable ne peut pas être un DO, STOP ou IF. 
 
Exemple : Calculer la prime de 50 employés avec la forme : P = S * 0.04. Posons P : prime de 
l’employé; D : son salaire; Mat : son matricule. 
 
Début  
Pour I de 1 à 50 pas 1 
Faire  
                         Lire Mat, S 
                         P = S * 0.04 
                        Écrire Mat, P 
Fait 
Fin  
 
Remarque : Le Pour peut être remplacé par Tant que : 
Exemple : 
 
Début  
              I = 1 
             Tant que I ? 50 
                 Faire  
                     Lire Mat, S 
                     P = S * 0.04 
                     Ecrire Mat, P 
                     I = I + 1 
Fait  
Fin 
 
II. ORGANIGRAMMES 
 
Une  seconde  description  de  la  solution  d’un  problème  posé  peut  être  donnée  en  utilisant  la 
notion d’organigrammes. 
Un organigramme utilise les schémas suivants : 
 
?  Début et Fin de l’organigramme 
?  Lecture et écriture (E/S) 
?  Instruction d’affectation et opération de traitement  
?  Test à conditions avec deux et trois sorties 
?  Nœud pour relier les différentes parties d’un organigramme 
?  Flèche pour relier deux schémas 
?  Impression sur imprimante 
  15 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
1. INSTRUCTIONS SEQUENTIELLES  
 
Les  instructions  sont  exécutées  dans  l’ordre,  l’une  après  l’autre.  Reprenons  l’exemple  donné 
dans la partie algorithmique, dans le même paragraphe : 
 
Début 
 
Lire C 
 
S = C*C 
 
P = 4*C 
 
Écrire C 
 
Fin 
 
 
2. INSTRUCTIONS CONDITIONNELLES 
 

2.1 PREMIER CAS 
 
Les instructions ne sont exécutées que si la condition est vérifiée. 
 
 
                  Vraie 
             Condition  
 
        Instructions 
       
     Faux 
 
 
Reprenons l’exemple du même paragraphe dans la partie algorithme : 
 
 
                                           Début  
   
                                        Lire S, Mat, A 
                                                
                                             A >10           
   
                   P = S * 0.04 
  
                   Écrire Mat, P 
 
 
                                                                              Fin 
 
  16 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
2.2. DEUXIEME CAS  
 
Certaines  instructions  sont  exécutées  lorsque  la  condition  est  vérifiée,  d’autres  dans  le  cas 
contraire 
 
 
                                 Condition   
                
           Instruction(s) 1                instruction(s) 2 
 
 
 
Reprenons l’exemple du même paragraphe dans la partie algorithme  
 
 
                                            Début 
 
                                        Lire S, Mat, A 
 
          0                                  A<10                                 N 
 
 
         P = S* 0.02                                                      P = S* 0.04 
 
 
                                          Écrire, Mat, P 
 
                                            
    Fin  
 
 
3. INSTRUCTIONS ITERATIVES (BOUCLES) 
 
Quelquefois,  il  est  nécessaire  de  répéter  une  partie  d’instructions  plusieurs  fois  tant  que  la 
condition posée est vérifiée. Deux cas se présentent à nous : 
 
 
 
 
                          O       condition                                  instructions 
                                
                           
 Instructions                                         N     condition 
        
                                                                                          
 
Reprenons le calcul de la prime de 50 employés : 
 
 
  17 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 
 
 
                   Début 
                 Début  
 
 
                     I = 1 
                    I = 1 
 
 
                   I ? 50 
              Lire S, Mat 
 
 
  
              P = S* 0.04 
 
          Lire S, Mat              Fin 
           Écrire Mat, P 
 
 
   
          P = S* 0.04 
                 
 
                   I = I + 1 
   
 
         Ecrire Mat, P 
                    I ? 50 
 
 
             I = I + 1 
                                        Fin 
 
 
 
 
Remarque  :  
Nous  pouvons  retrouver  des  instructions  conditionnelles  dans  une  instruction 
itérative. 
 
Exemple  :
  Calculer  la  prime  de  50  employés  en  sachant  qu’elle  est  de  3%  si  l’ancienneté  est 
inférieure à 10 ans, sinon de 4%. 
 
Algorithmes
 
 
Début  
Début  
   I = 1 
   Pour I de 1 à 50 
  Tant que I ? 50 
         Faire  
     Faire 
           Lire Mat, A, S 
       Lire Mat, A, S 
           Si A < 10 
       Si A< 10 
               Alors 
         Alors  
                  P = S* 0.03 
           P = S* 0.03 
               Sinon  
       Sinon  
                  P = S*0.04 
          P = S* 0.04 
               Fin si  
Fin si 
               Imprimer Mat, p 
      Imprimer Mat, P 
               Fait  
    I = I + 1 
    Fin 
    Fait 
Fin 
 
 
 
  18 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Le  premier  algorithme  est  traduit  en  FORTRAN  en  utilisant  l’instruction  DO  WHILE.  Le 
second est traduit en utilisant l’instruction DO. 
 
Organigramme 
 

 Début  
 
 
   I = 1 
 
I ? 50 
 
  Lire S, Mat, A 
 
  A< 10 
 
                        P = S * 0.04                              P = S* 0.03 
 
 
Ecrire Mat. P 
 
                                           I = I + 1                                                         
   Fin 
 
  19 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
CHAPITRE III 
 
INSTRUCTIONS DE FORTRAN 77 
 
 
1. INSTRUCTIONS D’AFFECTATION 
 
1.1. INSTRUCTIONS D’AFFECTATION ARITHMETIQUES 
      
Sa syntaxe est :                             Var = expr 
 
avec : 
         Var : variable numérique simple ou indicée. 
         expr : expression arithmétique qui est évaluée puis convertie au type de Var 
                   
Remarques : 
 
1- La hiérarchie des types de variables numériques est  
a - complexe 
b - double précision 
c - réel  
d - entier 
Pour une opération entre deux opérandes de types différents, l’opérande de type le plus faible 
est  converti  au  plus  fort,  sauf  dans  le  cas  de  l’exponentiation  quand  l’exposant  est  entier,  le 
résultat est toujours du type de la base. 
 
2 - Il faut éviter de mixer les types complexes et double précision, un confit de précision est très 
possible. 
 
1.2. AFFECTATION ENTRE CHAINES DE CARACTERES 
 
1.2.1. SOUS - CHAINES 
 
Prenons une variable chaîne Var de m caractères : 
CHARACTER*m Var 
 
Pour accéder à une partie de la chaîne Var, nous pouvons procéder de 3 façons :  
a - accès aux caractères i à j inclus avec 1 ? j ? m : V (i : j) 
b - accès aux j premiers caractères : Var (: j) 
c - accès à la partie finale débutant par le pème caractère : Var (p : m) 
 
Exemples
 : Si la variable BIT vaut ‘SCIENCES’, nous aurons :  
 
BIT (4 : 5) vaut ‘EN’ 
BIT (6 : 8) vaut ‘CES’ 
BIT ( : 3) vaut ‘SCI’ 
 
  20 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
1.2.2. AFFECTATION ENTRE SOUS - CHAINES  
 
Sa syntaxe est :               Var = expcar 
                             
avec : Var : variable chaîne ou sous - chaîne caractère. 
 
Exemple : ALI = ‘PROGRAMTION’ 
 
avec  ALI (8 : 9) = ‘MA’, la variable ALI devient  ‘ programmation’. 
 
Remarques : 
 
a - les caractères de droite en surnombre d’une expression trop longue sont ignorés 
b - dans le cas ou la chaîne expcar est inférieure à la réceptrice, elle est complétée à droite par 
des blancs. 
       
2. INSTRUCTION PARAMETER  
 
C’est une instruction qui initialise des variables qui seraient utilisées dans des affectations ou 
dans des déclarations. Ces variables n’existeraient plus après la compilation. 
Sa syntaxe est : 
 
PARAMETER (Var1= Cst [ , Var2 = Cste 2, ,VarN = CsteN)] 
 
avec  :  Var1,  Var2, ..,Var  N  :  variables.  Elles  ne  devraient  pas  être  déclarées  explicitement 
par les instructions de déclarations. 
Cste1, Cste2, , CsteN : constantes de types numérique, caractère ou logique. 
 
Exemple :  
PARAMETER (u = 10) 
READ (u,*) ((a (i, j), i=,10),=1,5 
 
3. INSTRUCTION D’INITIALISASTION DES VARIABLES (DATA) 
     
Son rôle est d’alléger le programme en évitant de faire plusieurs affectations. Sa syntaxe est : 
DATA  Vi1, Vi2, ViN/ C1,C2, ..CN/ 
 
avec : 
       Vii : variables à initialiser. 
       Ci  : constantes. 
       La variable Vi1 est initialisée par C1, Vi2 par C2 etc. 
 
Remarques : 
 
a  -  Dans  le  cas  où  nous  avons  plusieurs  constantes  identiques  successives,  il  est  préférable 
d’utiliser un facteur de répétition. 
Exemples : Dans une partie d’un programme FORTRAN, nous rencontrons ceci : 
  21 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 I = 2
 J = 2     
 K = 2
 L = 5
Nous utilisons DATA comme suit : 
 
DATA I, J, K, L, / 2, 2, 2, 5 / 
 
Ou, en utilisant le facteur de répétition : 
 
DATA I, J, K, L, / 3*2, 5 / 
 
b - DATA est la dernière instruction de déclaration à écrire dans un programme. 
 
4. INSTRUCTION D’ARRET D’EXECUTION (STOP) 
 
Cette  instruction  n’est  pas  obligatoire,  néanmoins  son  utilisation  est  fort  intéressante  dans  la 
mesure  où  c’est  la  dernière  instruction  exécutable  dans  un  programme  FORTRAN.  Elles 
peuvent être utilisées autant de fois que le programme l’exige. 
Sa syntaxe générale est : 
[étiq ]STOP [m] 
 
avec : 
       étiq : constante entière représentant l’étiquette de STOP. 
          m : constante entière propre à chaque instruction STOP  (dans le cas de plusieurs STOP). 
 
5. INSTRUCTION D’ARRET DE COMPILATION (End) 
  
 Sa syntaxe est :               END 
 
Son rôle est d’arrêter la compilation du programme, elle est donc obligatoire. Elle ne doit être 
suivie d’aucune instruction. 
 
6. INSTRUCTIONS DE TEST  
 
Ce sont des instructions d’exécution conditionnelles. 
 
6.1. INSTRUCTION IF ARITHMETIQUE 
 
Cette  instruction  effectue  un  test  sur  une  expression  arithmétique  dont  le  signe  renvoie  à  3 
représentations possibles : positive, négative ou nulle. Elle est dite aussi test à 3 sorties. 
Sa syntaxe est : 
IF (ExpArit) étiq1, étiq2, étiq3 
 
Avec : 
ExpArit : expression arithmétique 
             étiq1,  étiq2,  étiq3  :  étiquettes  numériques  correspondant  respectivement  à  ExpArit 
négative, ExpArit nulle, ExpArit positive. 
 
Exemple  
  22 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
DELTA = B*B - 4. * A* C 
IF (DELTA) 10, 20, 30 
 
Nous pouvons la représenter comme suit : 
 
 
                                10                        DELTA                         30     
 
 
                                                                20 
 
 
6.2. INSTRUCTION IF LOGIQUE 
 
C’est une instruction qui réalise un test logique sur une expression à valeur logique. 
Sa syntaxe est :           IF (Explog) instExéc 
avec : 
        Explog : expression logique. 
        InstExéc : instruction exécutable. Elle n’est pas exécutée que dans le cas ou l’évaluation de 
l’expression logique est vraie. Elle est décrite par l’organigramme suivant : 
 
 
 Explog 
 
                          INstExéc 
 
 Suite 
 
Remarque : 
L’instruction  InstExéc  doit  être  absolument  différente  des  instructions  IF,  DO,  et 
END. 
 
6.3. INSTRUCTION IF THEN  ELSE / ENDIF 
 
Contrairement  aux  IF  précédents  qui  conditionnaient  une  instruction  simple,  celle-ci 
conditionne une séquence, c’est à dire une suite d’instructions. 
Sa syntaxe est : 
 
IF (condition) THEN 
                            Traitement (1) 
ELSE 
                              Traitement (2) 
ENDIF 
 
Si  la  condition  est  vraie,  alors  seulement  le  traitement  (1)  est  exécuté,  sinon  c’est  à  dire  si  la 
condition est fausse, alors seulement le traitement (2) est exécuté. 
 
  23 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
7.  INSTRUCTIONS DE BRANCHEMENT  
 
Ces instructions sont utilisées généralement avec les instructions de test précédentes. Elles ont 
pour  rôle  d’indiquer  le  traitement  à  prendre  lors  du  choix.  Pour  cela,  un  numéro  qui  est  une 
étiquette désigne l’instruction correspondante au traitement. 
Il existe deux types d’instructions de branchement : 
 
7.1. INSTRUCTION DE BRANCHEMENT INCONDITIONNEL (GOTO) 
        
Sa syntaxe est :  
        GOTO étiq 
avec : 
       étiq  :  étiquette  de  l’instruction  ou  le  branchement  doit  se  faire  pour  éviter  l’exécution  en 
séquence. 
 
Remarque : l’instruction GOTO ne doit pas être étiquetée. 
 
7.2.  INSTRUCTION DE BRANCHEMENT CALCULEE 
        
Sa syntaxe est : 
étiq GOTO (étiq1, étiq2, ., étiqN) [ , ] I 
 
avec : 
        étiq : étiquette de l’instruction GOTO. 
       étiq1, étiq2, .., étiqN : étiquettes d’instructions exécutables. 
I : variable entière positive.                                             
L’exécution de l’instruction GOTO provoque un branchement à étiq k si la valeur de I est K 
avec I ? K ? N, c’est à dire : 
 
L’étiquette étiq1 si I = 1 
L’étiquette étiq2 si I = 2 
 
   L’étiquette étiq N si I = N 
 
8.  INSTRUCTIONS DE REPETITIONS (LES   BOUCLES DO) 
     

8.1. BOUCLE DO 
 
Sa syntaxe est : 
DO étiq VE = I, F, P 
avec :  
étiq : l’étiquette d’une instruction exécutable de fin de boucle qui suit l’instruction CONTINUE 
(elle est différente de GOTO, IF, END, STOP et DO). 
VE : variable entière simple qui fait le contrôle de la boucle. 
I : valeur initiale entière positive, négative ou nulle de la variable VE. 
F : valeur finale entière positive, négative ou nulle de la variable VE. 
P : pas d’incrémentions ou de décrémentation de la variable VE (différente de zéro). 
 
  24 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Cette instruction se programme en FORTRAN de la façon suivante : 
 
                  DO étiq VE = I, F, P 
                       Traitement à exécuter     
       étiq      instruction exécutable 
       
Remarques : 
 
1 - si I > F avec P > 0 ou I < F avec P < 0, nous ne pouvons accéder à la boucle ; dans ce cas la 
variable VE aura pour valeur I 
2 - si P = 1 ou -1, nous pouvons omettre de le mentionner, il sera pris par défaut. 
3  -  il  est  possible  d’imbriquer  les  boucles,  c’est  à  dire  d’utiliser  des  boucles  à  l’intérieur  des 
autres à condition qu’elles soient contrôlées par des variables différentes. 
4 - il ne faut jamais modifier la valeur de la variable VE à l’intérieur de la boucle. 
5 - il est interdit de se brancher directement à l’intérieur d’une boucle DO 
 
Exemples 
 
          S = 0                                           
          DO 100 V(i) = 1, 10, 2                       
100    S = S + V(i)                                
Y = 1                                                  
DO 50  J = 10, 1, -1  
Y = Y+2°J           
50      CONTINUE 
 
8.2. BOUCLE DO   WHILE  
 
Cette instruction existe sur beaucoup de compilateurs actuels  bien qu’elle n’ait pas été prévue 
par la norme ANSI. 
 
Sa syntaxe est : 
DO [étiq [ , ] ] WHILE explog 
 
avec : 
étiq : étiquette de la manière instruction exécutable de la  boucle. 
Explog : expression logique.  
 
Tant que explog est vraie, un bloc d’instructions compris entre DO WHILE et l’étiquette étiq 
sera exécuté. ENDDO délimite le traitement répété. 
Nous répété. 
Nous programmons cette instruction de la sorte : 
 
                      DO (étiq (,)) WHILE condition  
                             Bloc d’instructions 
                      ENDDO 
  25 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
9.  INSTRUCTION CONTINUE 
 
Sa syntaxe est : 
[étiq]CONTINUE 
 
Cette  instruction  est  surtout  utilisée  avec  la  boucle  DO.  Elle  n’a  aucun  effet,  mais  elle  est 
exécutable. 
 
10.  INSTRUCTIONS D’ENTREE / SORTIE 
 
Nous distinguons deux types d’opérations d’E / S en FORTRAN : 
 
a - les E / S en format libre. 
b - les E / S contrôlées par un format. 
 
L’opération d’E / S est caractérisée par : 
 
- le type d’accès (séquentiel ou direct) 
- le sens (entrée ou sortie) 
- le nom du périphérique ou de l’unité 
- la liste des variables à imprimer  
- le format des variables 
 
Dans la réalisation d’une E / S, 4 instructions sont utilisées : 
 
PRINT : impression des résultats sur le terminal 
READ : lecture des données tapées à partir du clavier vers la   mémoire centrale.           
WRITE : sortie des données de la mémoire centrale vers un   périphérique.                
FORMAT : avec lequel les variables doivent être transmises. 
                   Il est utilisé par les instructions précédentes. 
 
10.1. INSTRUCTION PRINT 
 
a - Sa syntaxe avec format libre : 
         PRINT*[ , liste ] 
avec : 
Liste : liste des données. Les données peuvent être des variables de n’importe quel type ou des 
constantes chaînes de caractères. 
 
Exemples : 

PRINT * ‘ le résultat est  =‘ 
PRINT* ’, I, J, F 
PRINT*’ 
 
b - Sa syntaxe avec format imposé
 : 
PRINT étiq, liste 
avec : 
étiq : l’étiquette d’une instruction FORMAT 
liste : liste de résultats 
  26 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
10.2. INSTRUCTION READ 
 

10.2.1. SYNTAXE DE L’INSTRUCTION READ AVEC FORMAT LIBRE     
            
Nous avons la possibilité de l’écrire sous deux formes : 
 
a - Première syntaxe en format libre  
 
C’est une lecture à partir du terminal. L’entrée des données se fait par le clavier. 
READ*, liste 
avec : 
Liste : liste des variables recevant les valeurs des données, séparées par des virgules. 
 
Exemples :  
 
1 -   READ * M, epsilon, alpha 
2 -   CHARACTER *17 texte 
                     READ*, texte 
 
Pour  ce  deuxième  exemple,  l’entrée  au  clavier  de  la  valeur  (par  exemple  :  VOICI  LE 
RESULTAT) de la variable TEXTE du type caractère est faite comme suit : 
 
‘ VOICI LE RESULTAT ’  
 
b - Deuxième syntaxe avec format libre 
 
La lecture se fait à partir de l’unité logique. 
READ (u, * [ , ERR = étiq 1, END = étiq 2 ]) 
avec : 
u : numéro d’unité logique, c’est une constante ou variable   entière positive. 
étiq1:  étiquette  d’une  instruction  exécutable  vers  laquelle  est  transféré  le  contrôle  en  cas 
d’erreurs.         
étiq2  :  étiquette  d’une  instruction  exécutable  vers  laquelle  est  transféré  le  contrôle  en  cas 
d’absence d’enregistrements en lecture.         
Liste : liste de variables simples ou indicées. 
 
Exemples : 
 
Lecture d’une matrice READ (5,*)((A(I,J),I=1, 10), J=1.15) 
Lecture d’un vecteur READ (7,*) (X(I), I=1, 100) 
Lecture de variables READ (1,*) A, B, C 
 
10.2.2. SYNTAXES DE L’INSTRUCTION READ AVEC FORMAT IMPOSE 
 
Deux formes d’écritures sont possibles : 
Les descriptions de cette instruction ont étés faits précédemment. 
 
a - PREMIERE SYNTAXE 
READ ef, liste 
 
  27 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
b - DEUXIEME SYNTAXE  
READ (u, ef [ , ERR = étiq 1, END = étiq2 ]) liste 
 
avec : 
ef : étiquette de l’instruction FORMAT. 
 
Exemples : 
                        READ 10, A, B, C, D 
1 -            10    FORMAT (descripteurs) 
2 -                    READ (5, 25) (X(I), I = 1, 10) 
                25    FORMAT (descripteurs)  
 
Les descripteurs seront explicités par la suite. 
 
10.3. INSTRUCTION WRITE 
 
a - Sa syntaxe en format libre est : 
 
WRITE (u, *[ , ERR = étiq ] )[ liste ] 
avec : 
Liste : liste de variables simples ou indicées, de chaînes de caractères ou d’expressions. 
          
U, étiq : voir les définitions faites précédemment pour l’instruction READ avec format libre.            
Exemple : 
 
WRITE (10,*)’ les solutions sont égales a :’, I, J, K 
 
b - Sa syntaxe en format imposé est : 

 
WRITE (u, ef [ , ERR = étiq ]) liste 
avec :  
u : numéro d’unité logique  
ef : étiquette de l’instruction FORMAT 
liste : liste de variables 
 
Exemple : 
 
           WRITE (10, 15) ((A(I, J), J = 1, 10), I = 1.10) 
15        FORMAT (descripteurs) 
 
10.4. INSTRUCTION FORMAT  
 
Cette instruction indique la mise en page pour les états imprimés. 
 
C’est une instruction non exécutable. Elle fait appel à 2 types de descripteurs : 
 
a - descripteurs de traitement des variables dans le cas des conversions, ce sont : I, E, F, L, D, A 
  28 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
b - descripteurs de mise en page et d’édition du texte, ce sont : X,’’, /, H, $ 
La syntaxe de l’instruction FORMAT est : 
étiq  FORMAT (descripteurs) 
avec : 
étiq : étiquette pour se brancher à l’instruction FORMAT 
descripteurs : liste de spécification servant à préciser le cadrage et les conversions. 
 
10.5. DESCRIPTEURS 
 
10.5.1. DESCRIPTEURS DE TRAITEMENT DES VARIABLES 
             
a - descripteur I 
 
Il est utilisé pour les variables entières.  
Sa forme générale est :  
                                     [m] I n 
avec : 
m : répétiteur  
n  :  entier  positif  indiquant  le  nombre  de  caractères  à  utiliser  pour  représenter  l’entier  sur 
l’enregistrement. 
 
Si  le  nombre  est  supérieur  aux  nombres  de  positions  indiquées  par  n,  il  ne  sera  pas  imprimé. 
Éventuellement, les positions seront remplacées par des astérisques. 
 
Exemples
 : 
 
1 -                I =21 
                    WRITE (3,10) I 
              10  FORMAT (I5) 
 
 L’édition donnera : 21 précédé de trois blancs 
 
2 -               INTGER U, V 
                   DATA U,V/ - 21, 125 / 
                   WRITE (4, 15) U, V 
            15   FORMAT (216) 
 
L’édition donnera : trois blancs suivi de 21 suivi de trois blancs suivi de 125 
 
3 -               INTEGER X1, X2, X3 
                   READ (5, 60) X1, X2, X3 
60  FORMAT (I2, I4, I3) 
 
Nous faisons entrer par le biais du clavier le nombre : un blanc suivi de 58234651, l’attribution 
sera ainsi faite : 
 
                  X1 = un blanc suivis de 5 
                  X2 = 8234        
 X3 = 651 
  29 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
b - descripteur F 
 
Il est utilisé pour la représentation des nombres de type réel en point fixe simple précision. 
Sa forme générale est :         [m] Fn.d 
                                  
avec : 
m : répétiteur 
n : représente la longueur totale occupée par le nombre à entrer ou à   imprimer. 
d : nombre de position qu’occupe la partie fractionnaire (d < n). 
Pour ne pas avoir de dépassement de capacité, la relation suivante doit être satisfaite : 
n = d + p + 2 
avec : 
n et d comme précédemment. 
P : nombre de caractères de la partie entière. 
 
Exemples : 
 
                   READ (*, 20) X, Y 
     20          FORMAT (F10.5, F6.2) 
 
Soit à lire : un blanc suivi de 324.5 suivi de quatre blancs suivi de 93.24 
 
Nous obtenons : 
X = un blanc suivi de 324.5   et    Y = 93.24 
 
Remarques : 
 
1 - Certains nombres réels très grands ou très petits (cela dépend de l’ordinateur) ne peuvent pas 
être représentés par le descripteur E 
2 - Lors de l’impression, le signe + est remplacé par un blanc. 
 
c - descripteur E 
 
Il est utilisé pour la représentation des nombres de type réel en point flottant simple précision 
avec exposant en entrée - sortie. 
Sa forme générale est :               [m] En. d 
avec : 
m : répétiteur 
n : représente la longueur totale occupée par le nombre à lire ou à imprimer. 
d : représente le nombre de chiffres de la partie fractionnaire, avec d < n. 
 
Exemples : 
 
1 - représenter 125.13 sous la forme E 10.4 : 0.1251E + 03 
2 -    
                U = - 2.25267 
               WRITE (3,5) U 

FORMAT (E11.3) 
 
L’édition donnera : un blanc suivi de - 0,225E + 01 
  30 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
d - descripteur L  
 
Il est utilisé pour le traitement des variables logiques. 
Sa forme générale est : 
[m]L n 
avec : 
m : répétiteur  
n : désigne le nombre de caractères qu’occupe la zone externe.     
    Généralement, n est égal à 1. 
 
A l’édition, à droit de la zone sera édité un T (TRUE) si la variable logique est vraie, sinon il 
sera édité un F (FALSE). 
 
Example : 
 
           LOGICAL I, J 
           I = .TRUE. 
           J =. FALSE. 
           WRITE (*, 10) I, J 
10       FORMAT (L2, L3)    
 
L’édition donnera : T suivi de deux blancs suivi de F. 
 
e - descripteur D 
 
Il est utilisé pour représenter des nombres en double précision. 
 
Sa forme générale est : 
[m] Dn. d 
avec : 
m : répétiteur 
n : et d : Voir le descripteur E. 
 
La relation suivante doit être satisfaite : n  ? d + 7  
 
Exemple : Donner le format du nombre 1.123456789D + 15  ou  1.123456789D15.9 
 
f - descripteur A 
 
Il est utilisé pour les variables de type caractère. Il ne fait aucune conversion. Son intérêt est de 
permettre la lecture et l’édition de chaînes de caractères. Sa forme générale est :  
[m] An 
avec : 
m : répétiteur et  
n : longueur de la chaîne caractères. 
 
Remarques : 
 
  31 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
1  -  En  entrée  (lecture),  si  n  est  inférieur  aux  nombres  de  caractères  que  contient  la  variable 
chaîne de caractère, elle sera tronquée à gauche. Mais si n est supérieur, les positions de droite 
seront complétées par des blancs (absence de caractères). 
2  -  En  sortie  (écriture),  si  la  zone  réservée  à  l’édition  des  caractères  est  plus  grande  que  la 
chaîne, elle sera complétée à gauche par des blancs. Mais, si la zone d’édition est insuffisante, 
la chaîne sera tronquée à droite. 
 
Exemples : 
 
  1 - 
                         WRITE (1,6) X 
           6            FORMAT (A5) 
 
 
Si  X  a  pour  valeur  MATH,  il  sera  édité  comme  suit  :  un  blanc  suivi  de  MATH.  Le  premier 
blanc sera ignoré. 
 
2 - Soit à lire ‘LA SCIENCE EST NOTE ISSUE’ en utilisant le format suivant : 
 
                      READ (*, 4) X, Y, Z 
            4        FORMAT (A10, A5, A11) 
 
L’attribution sera ainsi faite : 
 
X vaudra : LA SCIENCE 
Y vaudra : un blanc suivi de EST suivi d’un blanc 
Z vaudra : NOTRE ISSUE 
 
10.5.2. DESCRIPTEURS DE MISE EN PAGE ET D’EDITION  
 
a - descripteur X 
 
Il permet d’insérer n blancs (ou espaces, n dépend de l’ordinateur) consécutifs entre deux zones 
imprimées d’une même ligne en sortie. Par contre en entrée, il permet d’ignorer le contenu de n 
caractères consécutifs. 
 
Sa forme générale est :  
nX 
avec : 
n : une constante positive non nulle. 
 
Exemple: 
 

                WRITE (3.5) R.P 
        4      FORMAT (1X, F8, 7, 5X, E14.7) 
 
L’édition donnera : un blanc qui sera ignoré à l’édition suivi de 8 positions pour la valeur de R, 
suivi de cinq blancs suivi de 14 positions pour la valeur de P. 
 
  32 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
b - descripteur’’ 
 
Il permet l’édition de caractères non interprétés en sortie. 
 
Exemple : 
 
                     WRITE (3, 9) R 
           9      FORMAT (5X, ‘ La valeur de R est : ’, F8.7) 
 
A l’édition, nous aurons 5 blancs puis ‘la valeur de R est : ’ suivis de la valeur numérique de R 
sur 8 positions. 
 
c - descripteur / (slach) 
 
Il  permet  le  passage  à  l’enregistrement  suivant.  Pour  sauter  plusieurs  enregistrements,  il  faut 
répéter le / autant de fois. 
 
 
Exemple: 
 
                      WRITE (3.51) U, V 
         51         FORMAT (F10.3/E15.7)  
 
L’édition  donnera  :  la  valeur  numérique  de  U  sur  10  caractères  en  1er  ligne  puis  la  valeur 
numérique de V sur 15 caractères en ligne suivante. Ça équivaut aux 2 instructions suivantes : 
 
           WRITE ‘(F10.3)’, U 
          WRITE ‘(F15.7)’, V 
 
d - descripteur T (Tampon) 
 
Le rôle de ce descripteur consiste simplement à placer le pointeur sur le caractère de position p.  
Sa forme générale est :   Tp 
 
avec : p  indique la position du pointeur sur le caractère d’ordre p. 
 
Exemple: 
        Read ‘(t2, i3, t7, i1, t9, i2)’, n, m, q 
 
Si on saisit au clavier la valeur suivante 1234567890 
 
Voici le résultat : 
n vaut  234 
m vaut 7 
q vaut 90 
 
 
 
 
 
 
 
  33 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 
CHAPITRE IV  
 
LES SOUS-PROGRAMMES ET LES INSTRUCTIONS 
D’EFFICACITE DE PROGRAMMATION 
 
 
1. LES SOUS-PROGRAMMES 
 
Deux types de sous programmes sont disponibles dans le langage FORTRAN : 
 
-Les  fonctions  formules,  qui  sont  des  fonctions  mathématiques  déjà  définies,  c’est  à  dire 
reconnues par le compilateur. 
 
-Les  sous-programmes,  dans  lesquels  nous  retrouvons  les  fonctions,  définies  par  l’instruction 
FUNCTION et les subroutines définies par l’instruction SUBROUTINE. 
 
2. FONCTIONS FORMULES 
 
Elles  sont  également  appelées  fonctions  arithmétiquement  définies.  Ces  fonctions  d’un  usage 
facile figurent dans le programme principal. 
 
2.1. SYNTAXE  
 
La syntaxe générale d’une fonction formule est : 
 
NF (pf1, pf2, .., pfn) = EAL 
 
avec :  
 
NF : Nom de Fonction, construit selon les règles des variables. 
pf1, pf2, pfn : paramètres formels de la fonction; ce sont des variables non indicées. 
EAL : Expression Arithmétique ou logique. 
 
Remarque : 
 
1. L’appel  d’une  fonction  formule  provoque,  à  l’exécution,  l’évaluation  des  paramètres 
effectifs  (noms  de  variables  simples  ou  indicés,  des  expressions,  etc )  qui  doivent 
correspondre avec les paramètres formels ainsi que l’évaluation de l’expression EAL. 
 
2. Nous  pouvons  définir  le  type  d’une  fonction  implicitement  et  explicitation  (déjà  vu 
précédemment). 
3. Nous  devons  faire  apparaître  la  définition  de  la  fonction  dans  le  programme  avant  toute 
instruction exécutable. 
4. Il doit y avoir correspondance entre paramètres formels et paramètres effectifs : même type, 
même nombre et l’ordre doit être respecté. 
 
  34 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
2.2. EXEMPLES 
 
Écrire les fonctions suivantes sous forme de fonctions formules  
 
a - produit des cubes de deux variables x et y : 
 
PROCUB (X, Y) = X**3*Y**3 
b - module de 3 variables : 
 
MODULE (X, Y, Z) = SQRT (X**2+Y**2+Z**2) 
 
3. SOUS-PROGRAMMES FUNCTION ET SUBROUTINE 
 
3.1. SYNTAXE DE FUNCTION 
 
La syntaxe de définition de FUNCTION est : 
 
[déclaration] FUNCTION nomfct (arg1[ , arg2, argn ] ) 
 
avec : 
 
déclaration  :  instruction  de  déclaration  explicite  de  type  autre  que  CHARACTER  (voir  plus 
loin); s’il est absent, la déclaration est implicite. 
 
Nomfct  :  nom  de  fonction  qui  doit  être  différent  de  celui  des  fonctions  de  la  bibliothèque  de 
FORTRAN (voir annexe). Ce nom doit apparaître au moins une fois dans un sous-programme. 
arg1, arg2,  ..argn : arguments, ce sont des noms de variables simples ou indicées, de sous-
programmes ou de fonctions. Au moins un argument doit y figurer. 
La  syntaxe  de  déclaration  des  fonctions  à  valeur  de  chaînes  de  caractères,  diffère  un  peu  de 
celle donnée : 
 
CHARACTER [*m] FUNCTION nomft (pf1 [ , ., ]) 
avec : 
 
m : longueur de la chaîne de caractères. 
Pft, .., : paramètres de la fonction. 
 
Dans  l’appel  de  la  fonction  de  ce  type,  il  faut  préciser  la  longueur  exacte  de  la  chaîne  de 
caractères. 
 
3.1.1. APPEL DE FUNCTION DANS UN PROGRAMME PRINCIPAL 
 
L’appel se fait en écrivant dans n’importe quelle expression mathématique la syntaxe suivante  
nomftct (par1 [ , par2, , parn]) 
avec : 
nomft : nom de fonction. 
par1,  par2, parn : paramètres effectifs. 
  35 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 
3.1.2. SOUS-PROGRAMME FUNCTION 

 
Les  sous  -  programmes  définis  par  l’instruction  FUNTION  permettent  d’écrire  des  séquences 
d’instructions différentes de celles du programme principal. 
La structure générale est : 
 
[déclaration] FUNCTION nomfct (arg1, [ , arg2, .argn ]) 
Déclarations  
Instructions exécutables 
END 
 
La dernière instruction exécutable doit être RETURN. 
Sa syntaxe est : 
[étiq]       RETURN 
 
Elle transmet le résultat numérique de la fonction au programme qui lui fait appel ainsi que le 
retour à ce programme. 
L’étiquette est rarement utilisable. 
 
3.1.3. EXEMPLE  
 
Définir une fonction produit des M (M?1) premiers nombres entiers. 
      INTEGER FUNCTION PROD (M)  
      PROD = 1 
      DO20N= 2, M 
20  PROD =  PROD*N 
      RETURN 
      END 
 
3.2. SYNTAXE DE SUBROUTINE  
 
Sa syntaxe est : 
SUBROUTINE nomsub [(arg1, arg2, argn ]) 
avec : 
nomsub : nom de la subroutine, pour lequel s’appliquent les mêmes règles dictées aux variables. 
arg1,  arg2, argn  :  arguments  formels  ;  ce  sont  des  variables  simples  ou  indicées,  de  sous-
programmes ou de fonctions. 
 
Nous remarquerons que tous les arguments sont facultatifs, contrairement à FUNCTION ou au 
moins un argument doit figurer. 
 
3.2.1. APPEL DE SUBROUTINE DANS UN PROGRAMME PRINCIPALE  
 
          
L’appel  se  fait  par  l’intermédiaire  de  l’instruction  CALL.  Cet  appel  se  fait  soit  dans  un 
programme principal, soit dans un sous - programme. 
La syntaxe d’appel est : 
  36 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
CALL nomsub [(par1, par2, , parn)] 
avec : 
nomsub : voir précédemment  
par1,  par2, ,  parn  :  paramètres  effectifs,  qui  peuvent  êtres  des  constantes,  des  noms  de 
variables simples ou indicées, des expressions arithmétiques, des noms de sous - programmes. 
 
De  même  que  pour  l’instruction  SUBROUTINE,  les  paramètres  effectifs  peuvent  être 
facultatifs. 
 
3.2.2. SOUS-PROGRAMME SUBROUTINE 
 
Les  sous  -  programmes  définis  par  l’instruction  SUBROUTINE  permettent  d’écrire  des 
séquences d’instructions différentes de celles du programme principal. 
La structure générale est : 
 
 
SUBROUTINE nomfct [(arg1, arg2, arg)] 
déclarations 
instructions exécutables 
END         
 
La dernière instruction exécutable est l’instruction RETURN. 
 
3.2.3. EXEMPLE  
 
Écrire  un  sous-programme  SUBROUTINE  calculant  le  produit  des  éléments  positifs  et  la 
somme des éléments négatifs d’un tableau A (50). 
 
 
SUBROUTINE TABL (A, PP, SN) 
 
DIMENSION A(50) 
 
PP = 1 
 
SN = 0 
 
DO10 I = 1,50 
 
IF (A(I).L.T.0.)THEN 
 
PP = PP * A(I) 
 
ELSE 
 
SN = SN + A(I) 
 
ENDIF 
10 
CONTINUE 
RETURN 
END 
 
3.3. INSTRUCTION DE DECLARATION EXTERNAL 
 
C’est une instruction de déclaration non exécutable. 
 
Sa syntaxe est : 
EXTERNAL nomft1 [ , nomf2, .., nomefn] 
  37 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
avec : 
nomf1, nomf2, , nomefn : nom effectifs de sous - programmes ou de fonctions. 
Cette  instruction  doit  comporter  au  moins  un  nom  effectif.  Elle  doit  être  écrire  au  début  du 
programme  avant  toute  instruction  exécutable.  Elle  est  nécessaire  quand  un  sous-programme 
figure parmi les arguments d’un autre sous-programme. 
Pour mieux comprendre son rôle, prenons un exemple :  
Soit un sous - programme débutant par : SUBROUTINE DIF (A, B, C, SOM). 
Nous supposons que SOM est un sous - programme. Lors de la compilation, le compilateur ne 
fera pas de distinction entre les variables A, B, C et SOM.) 
Appelons DIF dans un programme principal : CALL DIF (A, B, C, SOM). 
Lors  de  l’exécution,  SOM  aura  une  adresse  mémoire  contenant  une  variable.  Pour  que  le 
compilateur puisse distinguer SOM d’une variable, nous devons faire la déclaration suivante : 
 
EXTERNAL SON 
 
 
II. INSTRUCTIONS D’EFFICACITE DE PROGRAMMATION 
 
1. INSTRUCTION COMMON  
 
Cette instruction a pour but de minimiser la perte de temps provoqué par les appels d’arguments 
dans un sous-programme. 
 
Pour  cela,  elle  crée  des  zones  communes  de  données  et  établit  une  correspondance  entre  des 
variables  de  programmes  et  sous  -  programmes  et  sous  -  programmes  différents.  Elle  se 
présente sous deux formes : le COMMON blanc et le COMMON étiqueté. 
 
1.1. COMMON BLANC 
 
Sa syntaxe est :  
                              COMMON liste 
 
avec :  
liste : liste de variables simples ou indicées. 
 
Dans ce cas, les mémoires allouées aux variables sont situées dans une zone commune à partir 
du début de cette zone. En plus de son rôle d’allocation de mémoire, l’instruction COMMON 
puisqu’elle peut déclarer la dimension des variables indicées. 
 
Exemple : 
 
Dans un programme principal, nous rencontrons : COMMON I, J et dans un sous-programme :  
INTEGER X 
COMMON X (3) 
 
La correspondance entre ces variables sera : 
 
  38 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
Au début de la zone commune, nous aurons : I et X (1); dans la zone commune suivante : J et X 
(2), dans celles qui suit : X(3). 
 
1.2. COMMON ETIQUETTE 
 
Sa syntaxe est : 
 
COMMON [/[nom1]/]liste1[ ,/[nom2]/, ..,/[nomN]/listeN] 
 
avec : 
nom1, , nom2, N : noms de zones de données communes. 
liste1, , liste N : liste de noms de variables simples ou indicées sans paramètres formels.   
 
Cette instruction permet de constituer N zones communes dans lesquelles peuvent être rangées 
les variables des listes. 
 
Exemple : 
 
Soit  un  programme  utilisant  les  variables  :  I,  J,  K,  L,  M,  N.  Un  premier  sous  -  programme 
utilise les variables J, L, M, N, un second utilise I, J, L. 
 
Les listes auxquelles nous faisons appel peuvent être déclarées ainsi : 
 
Dans un programme principal : 
                   COMMON J, L / zone 1/ M, N/ zone 2/I/zone3/K 
 
Dans le premier sous-programme : 
                    COMMON J, L / zone 1/ M, N 
 
Dans le second sous-programme : 
                   COMM J, L / zone2 / I 
 
2.  INSTRUCTION EQUIVALENCE  
 
Elle permet de réserver pour un même programme, la même place en mémoire à des variables 
de noms distincts mais de mêmes types (éventuellement le type peut être distinct dans certains 
compilateurs). 
Nous déduisons du fait qu’une même variable physique peut avoir plusieurs noms distincts. Elle 
permet donc de faire gagner de l’espace mémoire. 
Sa syntaxe est : 
EQUIVALENCE (liste1) [, (liste2),  (listeN)] 
avec : 
liste  :  liste  de  variable  simples  ou  indicées.  Pour  ces  dernières  les  indices  doivent  être  des 
constantes. 
 
Exemple : 
INTEGER VECT (2), TAB (2,2) 
EUIVALENCE (VECT(1), I, J), (TABL(1,2), K) 
 
  39 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
VECT (1), I, J, sont les noms différents à la même zone  
TABL (1,2) et identifient aussi la même zone. 
 
3. INSTRUCTION BLOCK DATA 
 
Cette  instruction  a  pour  rôle  l’initialisation  des  variables  de  la  zone  commune  (COMMON). 
Elle a l’allure d’un sous-programme. 
 
Sa syntaxe est : 
BLOCK DATA 
Instructions de spécification de type  
DIMENSION 
COMMON 
(EQUIVALANCE) 
DATA 
END 
 
L’instruction EQUIVALENCE est facultative. 
 
Exemple : 
BLOCK DATA 
COMMON X, A(2), Y 
INTEGER Y 
DATA X, A, Y / 2, 3.5, 4., 5 / 
END 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  40 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
CHAPITRE V 
 
LES FICHIERS 
 
 
 
1. NOTION DE FICHIERS 
 
Un  fichier  est  composé  d’un  ensemble  d’enregistrements.  Chacun  de  ces  enregistrements  est 
formé d’un ou plusieurs champs. 
Il existe deux sortes de fichiers : 
 
- Les fichiers à accès séquentiel 
- Les fichiers à accès direct 
 
Un fichier séquentiel est un fichier constitué d’un ensemble d’enregistrements ou d’articles, et 
où l’accès à ces enregistrements se fait faut passer par les (i-1) èmes enregistrements précédents. 
 
Un fichier à accès direct a des enregistrements de longueur fixe et comme son nom l’indique, 
l’accès à un enregistrement donné se fait d’une manière directe : pour lire l’enregistrement i, il 
n’est pas nécessaire de passer par ceux qui le précède. 
 
2. DESIGNATION D’UN FICHIER 
 
Un  fichier  est  désigné  par  un  nombre  entier  naturel,  appelé  numéro  d’unité  logique  par 
opposition à l’unité physique, support de fichier. 
 
Un lien est prédéterminé entre ces unités logiques et physiques en utilisant l’instruction OPEN. 
 
3. INSTRUCTION D’OUVERTURE D’UN FICHIER 
 
OPEN          (unit [, liste ] ) 
avec : 
Unit : constante ou variable entière, représentant le numéro d’unité logique du fichier. 
 
Liste : suite d’options du genre’ mot-clé = expression’ séparées par les virgules. L’ordre entre 
ces options est indifférent. 
Les options sont les suivants : 
 
3.1. FILE = nom 
 
Le programmeur donne à son fichier un nom. Ce nom est une chaîne de caractères sous forme 
d’une constante ou d’une variable. 
 
Exemple : 
 
OPEN ( 5, File = ’’ ) 
  
  41 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
3.2. STATUS = ‘expression’ 
 
avec expression peut être : 
 
STATUS = ’NEW’ 
 
Indique au système que le fichier n’existe pas, il faut donc le créer. 
 
Exemple : 

OPEN (7, STATUS = ‘NEW’, FILE = ‘’) 
 
     STATUS = ‘OLD’ 
 
Indique au système que le fichier existe déjà 
 
Exemple: 

OPEN (7, DTATUS = ‘OLD’, FILE = ‘’) 
 
   STATUS = ‘SCRATCH’ 
 
Le système crée un nouveau fichier dit temporaire, et le détruit après déconnections. Ce fichier 
est caractérisé par l’absence de nom. 
 
Exemple: 
 
OPEN (1, STATUS = ‘SCRATCH’) 
 
   STATUS = ‘ UNKNOWN’ 
 
Si le fichier existe déjà, le système l’utilise, sinon il le crée. 
 
3.3. ACCES = ‘expression’  
 
avec expression qui peut être : 
ACCES = ‘SEQUENTIAL’ 
 
C’est une valeur prise par défaut pour considérer le fichier comme étant séquentiel. 
 
ACCES = ‘DIRECT’ 
 
Précise que le fichier est à accès direct. 
 
3.4. FORM = ‘expression’  
 
avec expression qui peut être : 
 
FORM = ‘UNFORMATTED’ 
 
Indique que les enregistrements ne sont pas formatés. 
 
  42 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
FORM = ‘FORMATTED’ 
 
Dans ce sas les enregistrements sont formatés. 
 
3.5. RECL = m 
 
Cette  option  est  utilisée  en  accès  direct,  et  m  indique  la  taille  fixe  des  enregistrements  du 
fichier. 
 
3.6. ERR = étiq 
 
étiq est une étiquette d’une instruction exécutable en cas d’erreurs. 
 
4. INSTRUCTION DE FERMETURE D’UN FICHIER 
 
CLOSE (unit) 
 
Cette instruction permet de rompre le lien entre l’unité logique et le fichier physique associé en 
provoquant une déconnection de l’unité logique et une fermeture du fichier physique. 
 
S’il s’agit d’un fichier temporaire, il est détruit par : 
 
CLOSE (unit, STATUS = ‘DELETE’) 
 
5. INSTRUCTION DE REINITIALISATION D’UN FICHIER 
 
REWIND (unit) 
 
Cette instruction provoque un retour en tête du fichier ; donc après son exécution, c’est toujours 
le premier enregistrement du fichier qui est prêt à être traité. 
 
6. INSTRUCTION DE RECUL DANS UN FICHIER  
 

BACKSPACE (unit) 
 
Cette  instruction  permet  de  passer  à  l’enregistrement précédent  l’enregistrement courant  dans 
un fichier séquentiel. 
 
7. INSTRUCTION DE FIN DE FICHIER  
 
ENDFILE (unit) 
 
Utilisée dans un fichier séquentiel, cette instruction, écrit un enregistrement ‘fin de fichier’ 
 
 
8. ENTREES-SORTIES DANS UN FICHIER A ACCES DIRECT 
 

  43 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
8.1. ECRITURE DANS UN FICHIER A ACCES DIRECT 
 
La syntaxe d’écriture dans un fichier à accès direct est : 
 
READ (unit, étf, REC = m[ ,ERR = étiq ]) listVar 
 
avec : 
unit : unité logique  
étf : étiquette d’un FORMAT ou * pour un format libre  
LisVar : liste de variables  
 
8.2. LECTURE DANS FICHIER A ACCES DIRECT 
 
La syntaxe de lecture dans un fichier à accès direct est : 
 
WRITE (unit, étf, REC = m[ , ERR = étiq ] ) listDon 
 
avec : ListDon : liste de données 
 
9. ENTREES-SORTIE DANS UN FICHIER BINAIRE SEQUENTIEL 
 
La syntaxe d’écriture est : 
WRITE (unit) ListDon 
 
Cet  ordre  d’écriture  n’ajoute  qu’un  seul  enregistrement  au  fichier  dont  la  longueur  est 
déterminée par LisDon. 
La syntaxe de lecture est : 
 
DEAD (unit [ , END = étiq ] ) LisVar 
 
Cet  ordre  de  lecture  lit  un  seul  enregistrement.  La  longueur  de  LisVar  ne  doit  pas  être 
supérieure à celle de d’enregistrement à lire.   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  44 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
 
ANNEXE  
  
FONCTIONS ARITHMÉTIQUES 
 
 
 
1. FONCTIONS DE CONVERSIONS 
 
   a - Réels en entiers 
 
INT(X) : troncature 
IFIX(X) : flottant en fixe 
DINT (X) : double précisions en entier 
 
   b- Entiers en réels 
 
FLOAT(X) : entier en réel 
DFLOAT (X) : entier en double précision 
 
  c - Réels en complexes 
 
CMPLX (X, Y) : résultat complexe 
 
2. RESTE D’UNE DIVISION  
 
MOD (X, Y) : X, Y entier; le reste est entier 
AMOD (X, Y) : X, Y réels ; le reste est réel 
DMOD (X, Y) : X, Y double précision; le reste est double précision 
 
3. VALEUR ABSOLUE  
 
ABS (X) : X réel 
IABS(X) : X entier 
DABS(X) : X double précision 
CABS (X) : X complexe 
 
RACINE CARREE 
 

SQRT(X) : X réel ? 0 
DSQRT (X) : X double précision  ? 0 
CSQRT (X) : X complexe 
 
5. EXPONNENTIELLE  
 
EXP (X) : X réel  
DEXP(X) : X double précision 
CEXP (X) : X complexe 
 
  45 
 

Tome I : Cours de Fortran 
Pr. E. BOUDAIA 
 
6. LOGARITHMES  
 
     a- logarithmes Népérien     b - logarithmes décimaux argument          c- argument 
 
ALOG(X)                            ALOG 10(X)                              X réel 
DLOG (X)                            DLOG 10(X)                             X double précision 
CLOG(X)                                                                               X complexe 
 
7. TRIGONOMETRIE  
 
a - sinus           b - cosinus           c - tangente             d- argument 
 
SIN(X)            COS(X)               TAN(X)             
X réel 
DSIN(X)         DCOS (X)           DTAN (X)             X double réel 
CSIN(X)        CCOS(X)                                     
  X complexe 
 
8. TRIGONOMETRIE INVERSE 
 
a - arc sinus 
 
         ARCSIN (X)      X réel 
 
b - arc cosinus    
        
          ARCCOS (X)    X réel 
 
c - arc tangent  
 
ATAN (X)        X ? [-? /2, + ? / 2] 
DATAN(X)      X ? [-? /2, + ? / 2] 
ATAN2            X ? [-? , + ? ] 
DATAN2(X)    X ? [-?  , + ? ] 
 
9 - MAXIMUM  
 
AMAXO (X, Y, Z, ) X, Y, Z,  : entiers, résultat réel  
AMAX1 (X, Y, Z, ) X, Y, Z,  : réels, résultat réel  
MAXO (X, Y, Z, ) X, Y, Z,  : entiers, résultat entier 
MAX1 (X, Y, Z, ) X, Y, Z,  : réels, résultat entier  
 
10 - MINIMUM   
 
AMINO (X, Y, Z, .)   X, Y, Z,   : entiers, résultat réel 
AMIN1 (X, Y, Z, .)   X, Y, Z,    : réel, résultat entiers 
MINO (X, Y, Z,  .)   X, Y, Z,   : entiers, résultat entiers 
MIN1 (X, Y, Z,  .)   X, Y, Z,   : entiers, résultat entiers 
 
11. PARTIES REELLES ET IMAGINAIRE D’UN COMPLEXE 
       
REAL (X) : X complexe, résultat réel (partie réelle) 
AIMAG (X) : X complexe, résultat réel (partie imaginaire). 
  46 
 



47