Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: Structures de Données Sup.: Généralités Préc.: Fonctions interprétées Index Table des matières


1.5 Tableaux dynamiques

   

La notion de tableau dynamique concerne le développeur de nouveaux modules plutôt que l' utilisateur de modules existants. Ce dernier doit uniquement écrire un programme principal, comme indiqué dans la figure 1.2.

 
Figure 1.2: Exemple de programme principal 

Ce programme principal comprend :

Pour le développeur de nouveaux modules, la notion de tableau est très courante en programmation. Cependant, les tableaux Fortran ont l'inconvénient d'être entièrement statiques : il est impossible, par exemple, de lire un entier N et de déclarer ensuite un tableau T de N réels. ([note] Ceci s'écrirait en C : t = (float *)malloc(n*sizeof(float)) ;) L'approche qui consiste à surdimensionner chaque tableau devient rapidement inutilisable lorsque le nombre de tableaux est trop important. Une autre approche, adoptée par Modulef, consiste à gérer tous les tableaux dynamiques à l'intérieur d'un même tableau statique (figure 1.3).

 
Figure 1.3: Tableaux dynamiques Modulef 

Ce tableau statique unique, appelé super-tableau  M, est déclaré dans le programme principal et passé en paramètre à tout module. Cependant, quelques modules échappent à cette règle, ce qui explique l'emploi de l'instruction COMMON.

Un certain nombre d'utilitaires sont fournis pour créer, supprimer, ou ``visualiser'' les tableaux dynamiques. Cette gestion est facilitée par l'emploi d'un nom symbolique associé à chaque tableau (cf. TAB, annexe A). En réalité, chaque tableau est repéré par son adresse IATAB dans le super-tableau : l'utilitaire de création retourne un indice IATAB tel que M(IATAB) repère le premier élément du tableau créé.

Le super-tableau est amené à contenir des tableaux de types différents (entier, réel, double précision, ...). Par suite, quelques précautions sont nécessaires :


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: Structures de Données Sup.: Généralités Préc.: Fonctions interprétées Index Table des matières