2. General architecture of routines FORTRAN#

Broadly speaking, the organization of routines FORTRAN is as follows:

_images/100000000000033F000002C38C7C4DF3CE71356E.jpg

Note:

On 01/10/94:

number of orders: n = 128

number of elementary calculations: p = 3043

The Supervisor (like routine CALCUL) structure the code because they assert independence between the routines they call:

routine

0P0001

—> command 1

routine

0P0002

—> command 2

routine

TE0001

—> elementary calculation 1

routine

TE0002

—> elementary calculation 2

  • the link between a user order and the number i of the OP000i routine that corresponds to it is given in the catalog associated with this order (see § 3.1 Order catalogs),

  • the link between an elementary calculation (for example: the calculation of the geometric rigidity for a shell element of type DKT) and the TE0031 routine that corresponds to it is given in the catalog associated with this finite element (see § 3.2 Finite element catalogs).

The independence between OP000i routines is very interesting. It means that to understand the programming of a command you do not need to understand the others; the only links between the commands are the Data structures that they exchange (see § Catalogs Structuring Data). These are described in D4 - Data Structures Description.

The independence of routines TE000i is more natural (we will however see that the same routine TE000i can be associated with several neighboring elementary calculations).

Of course, the previous diagram does not mean that all the source FORTRAN corresponding to the command i is in the routine OP000i: the programmer of a command (such as that of an elementary calculation) can structure his command as he sees fit: he can « split » it into several routines.

Schematically, we can write:

OP000i

CALCUL, JEVEUXou any other utility that can be used for several different commands.

routines specific to the 0P000i command (functional division of OP000i)

When looking for the source code associated with a given feature, you should therefore ask yourself the following questions:

  • Is this a feature specific to an order?

no: see the utilities common to several commands [D7.01],

  • Is this a feature specific to an elementary calculation?

no: see the utilities common to several elementary calculations [D7.02].