C LIRMO2    SOURCE    CB215821  23/07/12    21:15:08     11704          
      SUBROUTINE LIRMO2(MOTCLE,MOTDIM,IVAL,ICOND,ICOHCO)
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)
      
-INC PPARAM
-INC CCOPTIO

      DIMENSION ICOHCO(*)
      CHARACTER*(*) MOTCLE(*)
      CHARACTER*(LOCHAI) MOT,MOTTOT


      L=LEN(MOTCLE(1))
      IF(ICOHCO(1).EQ.-1) THEN
        DO 5198 I=1,MOTDIM
          IA=0
          DO 5199 J=1,L
            IA = IA + ICHAR(MOTCLE(I)(J:J))
 5199     CONTINUE
          ICOHCO(I) = IA
 5198   CONTINUE
      ENDIF

      ICONDO = ICOND
      IVAL   = 0
      MOT    = ' '
      MOTTOT = ' '
      CALL LIRCHA(MOTTOT,ICONDO,IRETOU)
      IF (IERR  .NE.0) RETURN
      IF (IRETOU.EQ.0) RETURN
      MOT = MOTTOT(1:L)

      IA=0
      DO 65 I=1,L
        IA=IA + ICHAR(MOT(I:I))
  65  CONTINUE

      DO 1 I=1,MOTDIM
        IF(IA.NE.ICOHCO(I)) GO TO 1
        IF (MOT(1:L).EQ.MOTCLE(I)) GOTO 2
   1  CONTINUE

      IF (MOT(1:2).NE.'? ') GOTO 3
      WRITE (IOIMP,100) (MOTCLE(I),I=1,MOTDIM)
 100  FORMAT(/,' LISTE DES MOTS RECONNUS :',/,(9(1H ,A)))
   3  CALL REFUS
      I=0
      MOTERR = MOTTOT
      IF(ICOND.EQ.1)THEN
       CALL ERREUR(7)
       WRITE(IOIMP,110) (MOTCLE(I),I=1,MOTDIM)
 110   FORMAT(8(1H ,A))
      ENDIF

   2  CONTINUE
      IVAL=I
      RETURN
      END


 
