C LIRMOT SOURCE PV 14/02/20 21:15:01 7973 C CE PROGRAMME PERMET DE SIMULER UN SOUS-TYPAGE AU NIVEAU DES MOTS C SUBROUTINE LIRMOT(MOTCLE,MOTDI ,IVAL,ICOND) C MOTCLE TABLEAU DES MOTS CLES POSSIBLES C MOTDIM DIMENSION DE MOTCLE C IVAL POSITION DU MOT TROUVE DANS MOTCLE (0) SI ECHEC C ICOND LECTURE IMPERATIVE OU NON IMPLICIT INTEGER(I-N) CHARACTER*(*) MOTCLE(*) CHARACTER*500 MOT EXTERNAL LONG -INC CCOPTIO motdim=abs(motdi) IVAL=0 ICONDO=ICOND LMOT=LEN(MOTCLE(1)) CALL LIRCHA(MOT(1:LMOT),ICONDO,IRETOU) IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) RETURN DO 1 I=1,MOTDIM IF (MOT(1:LMOT).EQ.MOTCLE(I)) GOTO 2 1 CONTINUE if (motdi.gt.0) goto 3 LLU=LONG(MOT(1:LMOT)) ITROUV=0 DO 5 I=1,MOTDIM IF (MOT(1:LLU).NE.MOTCLE(I)(1:MIN(LLU,LMOT))) GOTO 5 ITROUV=ITROUV+1 IV=I 5 CONTINUE I=IV IF (ITROUV.EQ.1) GOTO 2 IF (MOT(1:2).NE.'? ') GOTO 3 WRITE (IOIMP,100) (MOTCLE(I),I=1,MOTDIM) 100 FORMAT(/,' LISTE DES MOTS RECONNUS',/,(1H ,10A8)) 3 CALL REFUS I=0 MOTERR(1:8)=MOT(1:8) IF (ICOND.EQ.1) THEN CALL ERREUR(7) if (mot(1:2).ne.'? ')WRITE(IOIMP,110) (MOTCLE(I),I=1,MOTDIM) 110 FORMAT(10(1H ,A8)) ENDIF 2 CONTINUE IVAL=I RETURN END