2. Architecture générale des routines FORTRAN#
Schématiquement, l’organisation des routines FORTRAN est la suivante :
Remarque :
Au 01/10/94 :
nombre de commandes : n = 128
nombre de calculs élémentaires : p = 3043
Le Superviseur (comme la routine CALCUL) structurent le code car ils affirment une indépendance entre les routines qu’ils appellent :
routine |
0P0001 |
–> commande 1 |
routine |
0P0002 |
–> commande 2 |
… |
… |
|
routine |
TE0001 |
–> calcul élémentaire 1 |
routine |
TE0002 |
–> calcul élémentaire 2 |
… |
… |
le lien entre une commande utilisateur et le numéro i de la routine OP000i qui lui correspond est donné dans le catalogue associé à cette commande (voir le § 3.1 Catalogues de commandes),
le lien entre un calcul élémentaire (par exemple : le calcul de la rigidité géométrique pour un élément de coque de type DKT) et la routine TE0031 qui lui correspond est donné dans le catalogue associé à cet élément fini (voir le § 3.2 Catalogues d’éléments finis).
L’indépendance entre les routines OP000i est très intéressante. Elle veut dire que pour comprendre le programmation d’une commande on n’a pas besoin de comprendre les autres ; les seuls liens entre les commandes sont les structures de Données qu’elles s’échangent (voir le § Catalogues Structuration des Données). Celles-ci sont décrites dans D4 - Description des Structures de Données.
L’indépendance des routines TE000i est plus naturelle (on verra toutefois qu’une même routine TE000i peut être associée à plusieurs calculs élémentaires voisins).
Bien entendu, le schéma précédent ne veut pas dire que tout le source FORTRAN correspondant à la commande i se trouve dans la routine OP000i : le programmeur d’une commande (comme celui d’un calcul élémentaire) peut structurer sa commande comme il l’entend : il peut la “découper” en plusieurs routines.
Schématiquement, on peut écrire :
OP000i |
→ |
CALCUL, JEVEUXou tout autre utilitaire pouvant servir à plusieurs commandes différentes. |
→ |
routines spécifiques à la commande 0P000i (découpage fonctionnel de OP000i) |
Lorsque l’on cherche le code source associé à une fonctionnalité donnée, on doit donc se poser les questions suivantes :
s’agit-il d’une fonctionnalité spécifique à une commande ?
non : voir les utilitaires communs à plusieurs commandes [D7.01],
s’agit-il d’une fonctionnalité spécifique à un calcul élémentaire ?
non : voir les utilitaires communs à plusieurs calculs élémentaires [D7.02].