2. Architecture générale des routines FORTRAN#

Schématiquement, l’organisation des routines FORTRAN est la suivante :

_images/100000000000033F000002C38C7C4DF3CE71356E.jpg

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].