Suiv.: 1.7 Modules - Algorithmes - Utilitaires
Sup.: Généralités
Préc.: 1.5 Tableaux dynamiques
Index
Table des matières
Les modules communiquent entre eux via des Structures de
Données (SD) standardisées.
Celles-ci sont traitées en bloc
par des sous-programmes utilitaires permettant de les manipuler
simplement.
Une SD peut résider :
- en mémoire principale,
sous forme d'un ensemble de tableaux
dynamiques,
- en mémoire secondaire,
sous forme d'un fichier
(fichier Fortran unformatted formé de plusieurs
enregistrements).
Parmi les nombreux avantages des SD, citons les suivants :
- Les interfaces entre modules sont bien normalisées,
simples et fiables.
- Le nombre de paramètres de chaque module est réduit.
En effet, une SD regroupe un grand nombre
d'informations, comme par exemple la définition
complète d'un maillage.
- La programmation des modules est facilitée
par des outils prédéfinis de lecture, d'écriture,
ou d'impression.
Toute SD possède un type (exemples :
NOPO, MAIL, COOR, B). Les
différents tableaux d'une SD de type donné sont décrits dans
la partie iii.
Si une SD est de type générique tysd,
elle peut être manipulée dans un module à l'aide des variables
suivantes :
- CHARACTER*80 NOMFIC :
nom du fichier
(cf. [Fortran 77],
ordre OPEN, spécificateur FILE).
- INTEGER NFtysd :
numéro d'unité du fichier
(cf. [Fortran 77],
ordre OPEN, spécificateur UNIT).
NFtysd = 0 signifie que la SD est en mémoire centrale.
- INTEGER NItysd :
entier, appelé niveau, qui permet de distinguer
deux SD de même type qui résident simultanément
en mémoire centrale.
Remarques concernant les fichiers :
- L'expérience montre que l'instruction Fortran OPEN
n'est pas tout à fait portable. Par suite, Modulef s'interdit
cette instruction et fait appel à
l'utilitaire OUVRIR (p. )
ou OUVRIS (p. ).
- Les programmes qui manipulent des fichiers ont souvent besoin
d'utiliser un numéro d'unité libre, c'est-à-dire
connecté à aucun fichier. L'utilitaire
TRUNIT (p. )
permet d'obtenir un tel numéro.
En conclusion, l'appel d'un module qui demande en entrée une SD de
type NOPO (par exemple)
se présente typiquement de la façon suivante :
...
CALL TRUNIT(NFNOPO)
NINOPO = 0
CALL LIBCAR(NOMFIC)
CALL OUVRIS(NFNOPO, NOMFIC, 'OLD,UNFORMATTED', 0)
CALL MODULE(M, NFNOPO, NINOPO, ...)
...
Suiv.: 1.7 Modules - Algorithmes - Utilitaires
Sup.: Généralités
Préc.: 1.5 Tableaux dynamiques
Index
Table des matières