Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 1.5 Tableaux dynamiques Sup.: Généralités Préc.: 1.3 Format libre Index Table des matières


Fonctions interprétées

   

Le mécanisme de format libre vu précédemment permet de fournir des données de types classiques : entier, réel, chaîne de caractères, ... Or, certains programmes dépendent aussi de fonctions algébriques : par exemple, un mailleur a besoin de l'expression analytique de chacune des frontières courbes, ou encore un programme de tracé de courbes a besoin des équations de ces courbes. Le caractère statique de Fortran ne permet pas de résoudre directement ce problème. Modulef a donc défini un jeu d'utilitaires [RM 94] capables d' analyser dynamiquement une fonction algébrique, puis de l' interpréter (c'est-à-dire l'évaluer).

La définition d'une fonction peut être répartie sur plusieurs lignes et se termine obligatoirement par un point-virgule (à ne pas oublier !). A ceci près, la syntaxe est très voisine de celle des ``statement functions'' de Fortran. Exemple :

F(X,Y,Z) = X**2 + Y**2 + Z**2

+ X / (1 - COS(X+Y+Z)) ;

L'analyse d'une fonction est réalisée par l'utilitaire FONDES (p. gif).

L'interprétation d'une fonction est réalisée par l'un des utilitaires FON0RR (p. gif), FON1RR (p. gif), FON2RR (p. gif), ou FON3RR (p. gif) : retour d'une valeur réelle à partir de 0, 1, 2, ou 3 paramètres réels.

Il arrive aussi que des programmes doivent manipuler des fonctions numérotées. L'utilisateur doit alors donner des fonctions dont le nom comprend une ou plusieurs lettres, puis le numéro de la fonction. Par exemple, pour définir les équations des courbes de référence 3 et 5 pour le processeur APNOXX :

COURBE3(X,Y) = X**2 + Y**2 - 1 ;

COURBE5(X,Y) = (X-1.2)**2 + (Y-3.4)**2 - 6.25 ;

FIN

Ces fonctions sont manipulées par l'utilitaire FONDEN (p. gif).


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 1.5 Tableaux dynamiques Sup.: Généralités Préc.: 1.3 Format libre Index Table des matières