| ||
auteur : Germain Salvato-Vallverdu | ||
En Fortran, les variables ainsi que les noms de programmes, de sous programmes, de fonctions ou de modules sont limités à
31 caractères et doivent obligatoirement commencer par une lettre. En Fortran, sont considérés comme des lettres les 26
lettres de l'alphabet latin plus le caractère underscore _ . On peut ensuite utiliser les 26 lettres de l'alphabet latin
le caractère underscore ou un chiffre.
ATTENTION : Fortran ne prend pas en compte la casse des caractères. Ainsi Vect VECT et vect sont les
mêmes variables.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Comment dans la plupart des langages les variables peuvent être : des nombres entiers, integer, des chaînes
de caractères, character, des nombres réels, real ou double precision ou des éléments logique (true,
false), logical
Chacun de ces types de variables peut être un scalaire (un seul nombre), ou une liste de nombres. On parle alors de variables
indicées. Celles-ci peuvent avoir un seul indice (liste, vecteurs ...) ou plusieurs indices (matrices, tenseurs etc ...).
Ils existent d'autres types de variables moins utilisés
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Les variables contenant des nombres entiers sont de type integer
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Les variables contenant des nombres réels simple précision sont de type real, elles sont enregistrées sur
4 octets soit 32 bits. Les nombres réels stockés sur 4 octets sont généralement limités entre 10-38 et
10+38. Leur précision est d'environ 10-7. Un nombre réel simple précision a donc en général 7
chiffres significatifs.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Les variables contenant des nombres réels doubles précisions sont de type double precision.
Contrairement aux réels simples précisions, les réels doubles précisions sont stockés sur 8 octets, soit 64 bits. De
cette manière la gamme des nombres pouvant être enregistrés dans un réel double précision est plus étendue que celle
pouvant être enregistrée dans un réel simple précision. Elle s'étend environ de 10-308 à 10+308
et donne des chiffres avec une précision d'environ 10-15 soit 15 chiffres significatifs.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
En Fortran, lorsqu'on déclare une chaine de caractères, on spécifie sa longueur avec len. Une chaine
de caractères peut contenir des lettres, des chiffres, des symboles ou des espaces vides, elle est de type
character.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Une variable logique est de type logical. Elle prend deux valeurs possibles : .TRUE. ou .FALSE.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Une variable peut être déclarée comme paramètre. On doit alors assigner sa valeur dès sa déclaration et elle n'est
pas modifiable dans le reste du programme. On peut se servir de cette variable pour protéger les valeurs des constantes
ou encore pour définir les dimensions des variables indicées.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
La partie entière d'un réel est donnée par la fonction int().
|
| ||
auteur : Germain Salvato-Vallverdu | ||
L'entier le plus proche d'un réel x est donnée par la fonction nint().
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Les fonctions real() et dble() permettent respectivement de transformer un entier en un réel simple précision et un réel
double précision.
|
| ||
auteur : Germain Salvato-Vallverdu | ||
Chaque variable est enregistrée dans un espace donné de la mémoire et sur un certain nombre d'octets. Il s'ensuit qu'il
existe un nombre maximal et minimal au delà desquels il est impossible d'enregistrer la valeur dans une variable. Ainsi
au cours de l'exécution d'un programme, il faut veiller à ce qu'aucune des valeurs enregistrées dans une variable ne soit supérieure
à ces limites.
Pour calculer ces valeurs il faut savoir comment sont enregistrés les nombres dans la mémoire de l'ordinateur. Les nombres
entiers sont généralement enregistrés sur 32 bits. Les nombres sont enregistrés en base 2 et chaque bit peut prendre la valeur
1 ou 0. Le premier bit est un bit de signe donc on utilise 31 bits pour enregistrer
la valeur absolue du nombre. Le dernier bit correspond à 20, l'avant dernier à 21 ect ... L'entier le plus
grand que l'on peut enregistrer en base 2 correspond au nombre pour lequel on a placé un 1 dans les 31 bits réservés.
Donc Nmax = 1x230+1x229+1x228+...+1x21+1x20
Donc Nmax = 2147483647
Les nombres réels sont enregistrés sous forme scientifique 1.2345 E +123, en base 2. Les réels simples précisions
sont enregistrés sur 32 bits et les réels doubles précisions sur 64 bits. Comme pour les entiers, le dernier bit est
pour le signe. Puis, suivant que l'on est en double ou simple précision, on a 52bits ou 23 bits pour enregistrer la
mantisse qui est la partie devant l'exposant et 11bits ou 8bits pour enregistrer l'exposant. Dans l'exposant il y a
également un bit pour le signe de l'exposant ce qui ramène le nombre à 10bits pour les réels doubles précisions et 7bits
pour les simples précisions.
Avec 10bits l'exposant maximum pour un double précision est de 1023. Comme le nombre est stocké en base 2, la mantisse est
multipliée au maximum par 21023 (et pas 101023). La gamme de nombres pouvant être enregistrée en
réel double précision est donc entre 10-308 et 10+308.
Avec 7bits l'exposant maximum pour un simple précision est de 127. La gamme de nombres pouvant être enregistrée en
réel simple précision est donc entre 10-38 et 10+38.
La fonction huge() permet d'afficher la valeur des nombres maximum utilisables.
|
| ||||
auteur : Germain Salvato-Vallverdu | ||||
En Fortran, on a le choix d'utiliser un mode de déclaration des variables explicite dans lequel on déclare toutes les
variables ou un mode de déclaration implicite dans lequel on définit un type par défaut pour certaines variables.
L'instruction suivante impose que l'on déclare toutes les variables :
L'instruction suivante définit que toutes les variables qui commencent par une lettre entre i et n inclu soient de type
integer et que les autres soient de type real (on remarquera que i et n sont les deux premières lettres de integer).
On peut définir un type implicite pour les double précision en remplaçant
real par double precision dans l'instruction suivante.
La commande implicit none est une nouveauté du Fortran90 et divise la communauté des utilisateurs de Fortran.
Certains considèrent que la déclaration implicite des variables simplifie et limite grandement la déclaration des
variables. D'autres trouvent que la déclaration implicite est dangereuse et rend plus difficile la lecture d'un programme.
Nous ne trancherons pas sur cette question ici, à chacun de faire son choix.
Avantages de la déclaration implicite des variables
Avantages de la déclaration explicite de toutes les variables
|
Copyright © 2008 developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.