2. Comment émettre un message d’information#

  • La routine INFMAJ sert à informer le “paquet” INFXXX du niveau d’impressions demandé par l’utilisateur,

  • la routine INFNIV sert à récupérer le niveau d’impression demandé par l’utilisateur ainsi que l’unité logique du fichier ‘MESSAGE‘.

  • le programmeur d’une commande fera donc :

  • mettre le mot clé INFO dans le catalogue de la commande : 2 valeurs possibles 1 et 2, valeur par défaut :1

  • dans la routine OP000I

CALL GETVIS (' ', 'INFO', 0, 1, 1, NIV, IBID) CALL INFMAJ(NIV)
  • dans une routine voulant imprimer des INFO:

– CALL INFNIV (IFM, NIV)

– pour une INFO de niveau 1 (contractuelle) :

IF (NIV.GE.1) WRITE (IFM, …)

– pour une INFO de niveau 2 :

IF (NIV.EQ.2) WRITE (IFM, …)

Remarques :

On pourrait penser que les INFO de niveau 1 peuvent être écrites sans se protéger par ( IF (NIV.GE.1) …) car ces impressions se déclenchent par défaut. On verra au §3 «Se protéger d’un excès de messages», pourquoi il faut les protéger.

Pour se protéger des commandes qui n’ont pas le mot clé INFO dans leur catalogue, le superviseur met à jour le COMMON avant chaque commande : CALL INFMAJ(1) .