3. Instrumentation du code source#
Les unités de source et de cas-test doivent posséder une ligne commentaire normalisée qui doit apparaître une et une seule fois dans chaque unité de source.
Cette ligne est appelée ligne INFO.
Il existe deux types de lignes INFO:
la ligne AJOUT qui est destinée à informer les modules de gestion que l’unité de source est nouvelle.
la ligne MODIF qui est destinée à informer les modules de gestion que l’unité de source vient modifier une unité de source déjà existante.
Les lignes de ce dernier type ne doivent être modifiées en aucun cas par le développeur.
Leur forme diffère pour du code FORTRAN, CAL, C, CATALOGUE ou CASTEST.
3.1. Code de type FORTRAN#
Les lignes INFO sont de la forme:
SUBROUTINE nomsub
—— informations de la SUBROUTINE nomsub non prises en compte par les modules
de gestion ——
C MODIF nombib_1 DATE jj/mm/aa AUTEUR user_CRAY nom_auteur
—— informations de la SUBROUTINE nomsub non prises en compte par les modules
de gestion ——
END
INTEGER FUNCTION nomfun
—— informations de la FUNCTION nomfun non prises en compte par les modules
de gestion ——
C AJOUT nombib_2
—— informations de la FUNCTION nomfunnon prises en compte par les modules
de gestion ——
END
Syntaxe d’une ligne INFO (les différents champs sont séparés par au moins 1 blanc):
“C” en première colonne,
“MODIF” ou “AJOUT”,
nombib_i: nom de la bibliothèque,
si “MODIF”:
“DATE”,
jj/mm/aa: date gérée au moment de la mise à jour de la version de référence,
“AUTEUR”,
user_CRAY: user sur CRAY de la dernière personne qui a modifié la routine,
nom_auteur: lié à l’identificateur précédent. Ces deux identificateurs sont également gérés au moment de la mise à jour de la version de référence.
Ce sont ces champs qui ne doivent pas être modifiés par le développeur.
3.2. Code de type CAL#
Les lignes INFO sont de la forme:
Lorsque l’on veut rajouter une routine il faut mettre la ligne INFO suivante dans le module (cette ligne délimite le début du module):
AJOUT nom_module nom_de_bibliotheque
en première colonne,
AJOUT (en majuscules obligatoirement !),
le nom du module,
le nom d’une bibliothèque CAL Aster où le module doit être ajouté (cette bibliothèque doit déjà exister -cf organisation Source Aster -).
Remarque:
Un module que l’on veut ajouter ne doit pas déjà exister dans Aster (soit en FORTRANsoit en Csoit en CAL).
Une fois le module ajouté au Code_Aster , la ligne INFO est gérée et mise à jour par l’AGLA. Elle possède alors la forme suivante:
MODIF nom_module NOM_BIB DATE jj/mm/aa AUTEUR J2BHHMB C.MASSERET
Elle contient alors:
le nom du module,
le nom de la bibliothèque CAL où se trouve le module,
la date de sa dernière modification,
le user Cray et le nom de l’auteur de la dernière modification.
3.3. Code de type C#
Les lignes INFO sont de la forme:
/* AJOUT nom_fonction nom_de_bibliotheque */
/* en première colonne,
AJOUT (en majuscules obligatoirement !),
le nom de la fonction,
le nom d’une bibliothèque C Aster où la fonction doit être ajoutée (cette bibliothèque doit déjà exister -cf organisation Source Aster -).
Une fois la fonction ajoutée au Code Aster , la ligne INFO est gérée et mise à jour par l’AGLA. Elle possède alors la forme suivante:
/* MODIF nom_fonc NOM_BIB DATE jj/mm/aa AUTEUR J2BHHMB C.MASSERET */
Elle contient alors:
le nom de la fonction,
le nom de la bibliothèque C où se trouve la fonction,
la date de sa dernière modification,
le user Cray et le nom de l’auteur de la dernière modification.
Note:
Pour qu’une fonction Cpuisse être appelée en FORTRANil faut que son nom soit en **majuscules.*
3.4. Code de type CATALOGU#
Les lignes INFO sont de la forme:
————- informations non prises en compte par les modules de gestion —— %& MODIF nom_catalogue_1 DATE jj/mm/aa AUTEUR user_CRAY nom_auteur ————- informations de l’élément du catalogue nom_catalogue_1
non prises en compte par les modules de gestion ——
%& AJOUT nom_catalogue_2 ————- informations de l’élément du catalogue nom_catalogue_2
non prises en compte par les modules de gestion ——
Syntaxe d’une ligne INFO (les différents champs sont séparés par au moins 1 blanc):
“%” en première colonne,
“MODIF” ou “AJOUT”,
& en deuxième colonne,
nom_catalogue: nom du catalogue,
si “MODIF”:
“DATE”,
jj/mm/aa: date gérée au moment de la mise à jour de la version de référence,
“AUTEUR”,
user_CRAY: user sur CRAY de la dernière personne qui a modifié la routine,
nom_auteur: lié à l’identificateur précédent. Ces deux identificateurs sont également gérés au moment de la mise à jour de la version de référence.
On constate, sur cet exemple que la ligne INFO joue le rôle de délimiteur contrairement au cas du FORTRAN.
3.5. Fichier de type CASTEST#
Pour les cas-test deux lignes INFO sont obligatoires AJOUT ou MODIF et TITRE.
Les lignes INFO sont de la forme:
pour la modification d’un cas-test:
————- informations non prises en compte par les modules de gestion —— % MODIF DATE jj/mm/aa AUTEUR user_CRAY nom_auteur % TITRE explication, en clair, du rôle de ce cas-test ————- informations non prises en compte par les modules de gestion —- DEBUT(CODE:(NOM:’nom_du_cas_test’,
pour l’ajout d’un cas-test:
————- informations non prises en compte par les modules de gestion —— % AJOUT % TITRE explication, en clair, du rôle de ce cas-test ————- informations non prises en compte par les modules de gestion —- DEBUT(CODE:(NOM:’nom_du_cas_test’,
Il est à noter que:
le nom du fichier doit correspondre à celui du cas-test,
il n’y a qu’un seul cas-test par fichier,
la ligne INFO ‘TITRE’ est à renseigner par le développeur.
3.6. Fichier de type UNIGEST#
Un fichier de type UNIGEST ne contient pas expressément du code source, mais des consignes concernant les unités de source pour les modules de restitution.
Dans ce fichier on indique les unités de source ou de cas-test que l’on souhaite déplacer d’une bibliothèque à une autre ou supprimer. Ce type de fichier contient des lignes du type suivant:
FORSUPPR nom_de_routine nom_de_bibli
pour les routines que l’on souhaite supprimer, en indiquant leur nom et la bibliothèque d’appartenance,
CATSUPPR nom_de_sous_catalogue nom_de_catalogue
pour les éléments de catalogues que l’on souhaite supprimer, en indiquant leur nom et la catalogue d’appartenance,
TESSUPPR nom_de_cas_test
pour les cas-tests que l’on souhaite supprimer, en indiquant leur nom,
FORDEPLA nom_de_routine bibli1 bibli2
pour les routines que l’on souhaite déplacer d’une bibliothèque bibli1 vers une bibliothèque bibli2.
Il est à noter que pour ce type de fichier:
il n’y a pas de notion de commentaire,
pour qu’il n’y ait pas d’incohérence il ne peut pas y avoir plus d’un ordre UNIGEST concernant la même unité,
il n’est pour l’instant pas prévu d’ordres équivalent pour le source C et CAL.
3.7. Types de fichiers#
On appelera fichier de type:
FORTRANun fichier contenant du source de type FORTRAN,
CALun fichier contenant du source de type assembleur Cray,
C un fichier contenant du source de type langage C,
CATALOGUun fichier contenant du source de type CATALOGU,
CASTEST un fichier contenant du source de type CASTEST,
UNIGESTun fichier contenant du source de type UNIGEST.
Remarques :
On ne peut pas mélanger dans un même fichier les différents types (FORTRAN, CAL, C, CATALOGU, CASTEST, UNIGEST),
Pour les ajouts, la date et le nom de l’auteur ne sont évidemment pas nécessaires dans la ligne INFO .