Librairie redlib > Fichier rederr.f |
SUBROUTINE REDERR (IRCODE,MOT)
Auteur : D.Martin (Mai 1982) Derniere modification : D.Martin (16 Decembre 1998) Impression de message d'erreurs de lecture des mots-cle -- Arguments d'entree -- IRCODE numero de l'erreur 0 < fin du fichier de lecture sur -IER a la lecture de 'MOT' 1 = il manque la directive 'MOT' 2 = la directive 'MOT' n'est pas possible a cet endroit 3 = la directive 'MOT' ne peut pas etre repetee 4 = la directive 'MOT' devait etre lue et non TEXTE 5 = la donnee 'TEXTE' lue est trop (contient trop de caracteres) 6 = la donnee 'TEXTE' lue contient des caracteres illicites 11 a 14 = On a lu un article de type IRE alors que l'on voulait IRCODE-10 MOT mot lu, attendu ou manquant
CHARACTER*(*) MOT INTEGER IRCODE CHARACTER*8 TEXT*4,TYPELU(5),CARTE CHARACTER ERCODE*120,TEXTE*80,DCARTE*80 DOUBLEPRECISION FLOT INTEGER KTRVIN,IMPPAL,IMPSDR,IMPMES,NBMESG & ,NFIX,IRE,NER,NCAR,ILU,IOP PARAMETER (KTRVIN = 80) COMMON/FICHIM/ IMPPAL,IMPSDR,IMPMES,NBMESG COMMON/REDCO1/ FLOT,NFIX,IRE,NER,NCAR,ILU,IOP(5) COMMON/REDCOM/ TEXT(20) COMMON/REDCAR/ CARTE(KTRVIN) COMMON/FORMAH/ ERCODE EQUIVALENCE (TEXTE,TEXT),(CARTE,DCARTE) DATA TYPELU /'ENTIER','FLOTTANT','MOT','CHAINE','OS'/
IF (IRCODE.GT.10) THEN CALL BAISE ('On a lu un(e) '//TYPELU(IRE) &//' alors qu''on attendait un(e) '//TYPELU(IRCODE-10) &//' . Le dernier mot lu est : ' &//TEXTE(1:NCAR)//'.' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.1) THEN ERCODE=MOT CALL BAISE ('Il manque la directive ' &//ERCODE(1:LEN(MOT))//'.' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.2) THEN ERCODE=MOT CALL BAISE ('La directive '//ERCODE(1:LEN(MOT)) &//' n''etait pas attendue ici.' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.3) THEN ERCODE=MOT CALL BAISE ('La directive '//ERCODE(1:LEN(MOT)) &//' ne doit etre donnee qu''une seule fois.' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.4) THEN ERCODE=MOT CALL BAISE ('On a lu '//TEXTE(1:NCAR) &//' alors qu''on attendait '//ERCODE(1:LEN(MOT))//'.' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.5) THEN CALL BAISE ('La chaine '//TEXTE(1:NCAR) &//' est trop longue (contient trop de caracteres).' &//' La derniere ligne de donnees lue est :'//DCARTE) ELSEIF (IRCODE.EQ.6) THEN CALL BAISE ('La chaine '//TEXTE(1:NCAR) &//' contient des caracteres non autorises (r.t.f.m).' &//'La derniere ligne de donnees lue est :'//DCARTE) ELSE CALL ENCLER (-IRCODE,ERCODE(1:3)) ERCODE(4:)=MOT CALL BAISE ('Fin des donnees sur l''unite logique ' &//ERCODE(1:3)//' dans la lecture de la variable : ' &//ERCODE(4:3+LEN(MOT))//'.') ENDIF END !RedErr