Le common "COPTIO" que l'on peut mettre dans un sous-programme par
l'instruction :
-INC CCOPTIO
contient certaines informations générales. En particulier la dimension
de l'espace, les unités d'entrées-sorties et la communication avec le
gestionnaire d'erreurs.
Ainsi la variable IERR, contenue dans le common, représente le niveau
d'erreur atteint pendant l'exécution de la commande élémentaire. Les
tableaux INTERR, REAERR et la chaine MOTERR permettent de communiquer
avec les messages d'erreurs contenus dans le fichier gibi.erreur.
Nous nous proposons de faire un opérateur qui lit une syntaxe :
FLOT1 MOT1 FLOT2
Dans cet exemple MOT1 sera soit le mot SUPERIEUR soit le mot
INFERIEUR. L'opérateur rendra un logique vrai si la phrase est vrai.
SUBROUTINE EXEMPL
IMPLICIT REAL*8(A-H,O-Z)
-INC CCOPTIO
CHARACTER*9 MOT(2)
DATA MOT/'SUPERIEUR',INFERIEUR'/
CALL LIRMOT(MOT,2,0,ICAS)
IF(ICAS.EQ.0) THEN
MOTERR(1:9) = MOT(1)
MOTERR(10:18) = MOT(2)
CALL ERREUR ( 777)
RETURN
ENDIF
CALL LIRREE(XV1,1,IRETOU)
IF(IERR.NE.0) RETURN
CALL LIRREE(XV2,1,IRETOU)
IF(IERR.NE.0) RETURN
IF( ICAS.EQ.1) THEN
IF ( XV1.GT.XV2) THEN
CALL ECRLOG(.TRUE.)
ELSE
CALL ECRLOG(.FALSE.)
ENDIF
ELSE
IF ( XV1.GT.XV2) THEN
CALL ECRLOG(.FALSE.)
ELSE
CALL ECRLOG(.TRUE.)
ENDIF
ENDIF
RETURN
END
Le message d'erreur 777 est supposé faire une impression qui ressemble
à :
On attend un des mots : SUPERIEUR ou INFERIEUR
Le tableau INTERR permet de passer des valeurs entières et REAERR des
valeurs réelles. Dans le fichier gibi.erreur, un message d'erreur est
composé de deux ou quatre
lignes. La première et la troisième contiennnent le numèro de l'erreur et
son niveau ( le niveau sert à initialiser la variable IERR et à partir
de 2 le lecteur interne passe à l'instruction suivante en sortant du
bloc REPETER ou de la procédure). La deuxième et la quatrième ligne
servent à définir le message qui va etre imprimé. Un numéro
d'erreur négatif est utilisé pour les messages normaux, par
exemple pour les textes des listes d'objets.Ci-joint l'en-tete du
fichier et un ou deux extraits.
9999 0 C GIBI ERREUR CHAT 96/03/18 21:15:02 2086 Liste des messages à traduire pour castem2000 9999 0 une ligne introduite par 9999 est commentaire: par 9998 est la 9999 0 liste des langues: par 9997 est la def de la langue : par 9999 0 9996 la fin du fichier 9995 introduit la langue utilisée par défaut 9999 0 Format du fichier : lrecl=80 9999 0 première ligne numéro message I4,1x,niveau erreur I1 9999 0 deuxième ligne texte A80 9999 0 prendre un numéro inférieur ou supérieur ( consécutif) 9999 0 %i1 représente interr(1) common coptio 9999 0 %r3 représente reaerr(3) common coptio 9999 0 %m3:8 représente moterr(3:8) common coptio 9998 0 ceci est la liste des langues utilisées(FRAN en premier) FRAN ANGL 9995 0 langue par défaut à changer si besoin est FRAN 9997 0 ceci est la langue qui va etre utilisée FRAN -307 0 Matrice élémentaire non-symétrique -306 0 ***** FIN DE LA PROCEDURE INITIALE ****** -305 0 ***** EXECUTION D'UNE PROCEDURE INITIALE ****** -304 0 ATTENTION : On ne prend pas en compte la moyenne pour un bruit blanc -304 0 à distribution exponentielle (valeur lue : %r1 ) -303 0 Impossible de regénérer l'élément %i5 ayant deux fois le meme noeud. -302 0 Liste des procedures surchargées par l'utilisateur : -302 0 **************************************************** 188 2 On cherche un chpoint qui contient des contributions modales 189 2 Pas de fréquence propre dans l'intervalle fourni 190 2 On veux lire un entier supérieur ou égal à %i1 au lieu de %i2 191 2 On veux lire un flottant supérieur ou égal à %r1 au lieu de %r2 192 2 Impossible d'orienter les forces de pression: direction donnée 192 2 perpendiculaire à la force de pression au point indiqué 193 2 Impossible d'utiliser cet opérateur pour la formulation %m1:8 194 2 Impossible de calculer les contraintes pour la formulation %m1:8 195 2 Changement de signe du jacobien dans l'élément %i1. Maillage incorrect 196 2 Le type d'un des opérandes n'est pas compatible avec l'opérateur %m1:8 197 2 Le mot %m1:4 n'est pas un nom de composante reconnu