3. Fonctionnement général#

Nous partons d’un exemple pour présenter le mode de fonctionnement des utilitaires d’impression de message:

3.1. Exemple#

Message imprimé

!-------------------------------------------------------!

! <A> <CHATON_2> !

! !

! Le petit chaton est de couleur rose. !

! !

! Ceci est une alarme. Si vous ne comprenez pas le sens !

! de cette alarme, vous pouvez obtenir des résultats !

! inattendus !

!-------------------------------------------------------!

Ce message utilisateur Le petit chaton est de couleur rose. est constitué de deux parties:

  • A : le texte fixe Le petit chaton est de couleur .

  • B : le texte variable rose qui représente le contenu d’une variable de type caractère.

Pour mettre en œuvre dans le fortran ou dans le python l’impression de ce message, il faut :

  • décrire dans un catalogue python la partie fixe (A) du message, avec le format des variables à imprimer

  • instrumenter le sous-programme fortran ou la fonction python pour provoquer l’impression du message.

Appel FORTRAN

SUBROUTINE CHATON(...,...)

...

...

IF(I.EQ.1) THEN

VALK = 'ROSE'

CALL U2MESK ('A','CHATON_2',1,VALK)

ENDIF

...

...

END

Les arguments du sous-programme U2MESK :

  • ‘A’ : précise que l’on imprime un message de type alarme

  • ‘CHATON_2’ : est l’identificateur du message : CHATON est le nom du catalogue de message chaton.py et le chiffre 2 indique que l’on prendra dans ce catalogue le message n°2.

  • 1: on imprime une seule variable caractère

  • VALK : variable caractère à imprimer.

Catalogue message: chaton.py

cata_msg = {


1 : _(u"""

Le petit chat est bien de couleur verte Ouf!

"""),


2 : _(u"""

Le petit chat est de couleur %(k1)s.

"""),


3 : _(u"""

Le petit chat a %(i1)d pattes et %(i2)d yeux.

"""),


4 : _(u"""

Le petit chat pèse %(r1)f kilogrammes.

"""),


5 : _(u"""

ATTENTION: Votre chat est bizarre, il :

- a plus de 4 pattes, il en a %(i1)d,

- est de couleur %(k1)s et %(k2)s,

- est trop gros, il pèse (%(r1)f kilogrammes.


On arrête les frais, ce n'est pas un chat !!

"""),


}