C INDIC     SOURCE    GOUNAND   26/01/11    21:15:02     12447          
      SUBROUTINE INDIC
C=======================================================================
C     OPERATEUR INDIQUANT LA QUALITE D'UN MAILLAGE
C          PHILIPPE BEAUMIER  90
C     LECTURE DES MOTS CLES DE LA PROCEDURE ET APPEL A INDCR
C
C
C     SYNTAXE
C     -------
C
C     CHL = INDI GEOM1 NOMI ... ;
C
C        GEOM1 = OBJET DE TYPE GEOMETRIE
C        NOMI  = MOTS CLES
C        CHL   = OBJET DE TYPE CHAMALEM (NOUVEAU CHAMALEM, OF COURSE|)
C
C=======================================================================
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

-INC SMCOORD
-INC PPARAM
-INC CCOPTIO
-INC SMLMOTS


      PARAMETER (NCLE=3)
      CHARACTER*4 MOCLE(NCLE)
      CHARACTER*(LOCOMP) MOLUS(NCLE)
      CHARACTER*8 CHAR
      PARAMETER (NTOPO=6)
      CHARACTER*4 MOTOPO(NTOPO)
C
      DATA MOCLE/'PLAN','ASPE','SKEW'/
      DATA MOTOPO/'COHE','EQLT','ISOD','DENS','TOPO','TOP2'/
      ICHA=0
C
C Lecture des mot-cles TOPO...
C
      CALL QUETYP(CHAR,0,IRETOU)
      IF (CHAR.EQ.'MOT') THEN
         CALL LIRMOT(MOTOPO,NTOPO,itopo,1)
         if (ierr.ne.0) return
         NLUS=0
         JGN=4
         JGM=NTOPO
         SEGINI MLMOTS
 2       CONTINUE
         NLUS=NLUS+1
         if (nlus.le.ntopo) then
            MOTS(NLUS)=MOTOPO(ITOPO)
            CALL LIRMOT(MOTOPO,NTOPO,itopo,0)
            if (ierr.ne.0) return
            if (itopo.ne.0) goto 2
         endif
         JGM=NLUS
         SEGADJ MLMOTS
         ITOPO=1
      ELSE
         ITOPO=0
      ENDIF
C
C     LECTURE DU MAILLAGE (OBJET DE TYPE MAILLAGE)
C
      IMAIL=0
      IER1=0
      CALL LIROBJ('MAILLAGE',IMAIL,1,IER1)
      IF(IERR .NE. 0)RETURN
      CALL ACTOBJ('MAILLAGE',IMAIL,1)
      IF(IERR .NE. 0)RETURN
      if (itopo.ne.0) then
         CALL INDI2(IMAIL,MLMOTS)
         SEGSUP MLMOTS
         RETURN
      else
C
C     LECTURE DES MOTS CLES
C
         NLUS=0
         DO I=1,NCLE
            CALL QUETYP(CHAR,0,IRETOU)
            IF (CHAR.EQ.'        ') GOTO 1
            CALL LIRMOT(MOCLE,NCLE,ICLE,1)
            IF(IERR .NE. 0)RETURN
            MOLUS(I)=MOCLE(ICLE)
            NLUS=NLUS+1
         ENDDO
C
 1       CONTINUE
C     SI AUCUN MOT CLEF LU
         IF (NLUS.EQ.0) THEN
            CALL ERREUR(498)
            RETURN
         ENDIF
C     REALISATION DE LA TACHE
         SEGACT,MCOORD
         CALL INDCR(MOLUS,NLUS,IMAIL,ICHA)
         SEGDES,MCOORD

         CALL ACTOBJ('MCHAML',ICHA,1)
         CALL ECROBJ('MCHAML',ICHA)
      endif
C
666   RETURN
      END
 
