Fonctionnement général ====================== Nous partons d’un exemple pour présenter le mode de fonctionnement des utilitaires d’impression de message: Exemple ------- **Message imprimé** .. code-block:: text !-------------------------------------------------------! ! ! ! ! ! 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** .. code-block:: text 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 .. code-block:: text 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 !! """), }