2. General architecture of routines FORTRAN#
Broadly speaking, the organization of routines FORTRAN is as follows:

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