C
C This file is issued from the MODULEF library, but has been 
C subsequently modified
C
      SUBROUTINE LIBDCL(IDEN,ADRID,IRES)
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C BUT :
C     FORMAT LIBRE
C
C     EN ENTREE: NOM DE L'ID DANS IDEN
C     EN SORTIE: RENVOIE DANS ADRID SON ADRESSE
C                   IRES=0 SI IDEN ETAIT DEJA DECLARE
C                   IRES=1 SI IDEN N'ETAIT PAS DEJA DECLARE
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C PROGRAMMEUR : F. HECHT - INRIA - AVRIL 86
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      INTEGER ADRID,IRES
      CHARACTER IDEN*(*),IDEN12*12
C //////////////////////////////////////////////////////////////////////
C     DEBUT DES COMMON  DU FORMAT LIBRE
C ----------------------------------------
C
      DOUBLE PRECISION RVAL
      INTEGER PTBUF,IVAL,TYPVAL,SIZDEN,CARLUE
C
      INTEGER MXETIQ
      PARAMETER (MXETIQ=20)
      LOGICAL ECHO,SOUFFL
      INTEGER PTETIQ,NUETIQ(MXETIQ),TRACE,LGNETI(MXETIQ),PPILE,KKMODE
C
C     MXID=NOMBRE MAXI D'ID
C     MXVAL=TAILLE DE LA PILE D'EVALUATION DES EXPRESSIONS
C     MXOPER = TAILLE DE LA PILE DES OPERATEURS
C     ID=NOMS DES IDENTIFICATEURS (12 CARAC)
C     VALID= VALEUR DE L'IDENTIFICATEUR
C           C'EST LE NOMBRE D'ELEMENTS DE L'ID
C
      INTEGER MXVAL,MXID,MXOPER
      PARAMETER(MXID=200,MXVAL=100,MXOPER=50)
      DOUBLE PRECISION VALID(MXID)
      INTEGER NBID
      CHARACTER ID(MXID)*12
C
C
      CHARACTER IDENT*256
      CHARACTER IBUF(256)*1,BUF*256,CSTRNG*256
C
       DOUBLE PRECISION RESULT
       INTEGER TYPEAT,LSTRNG
       LOGICAL STRING,ERRLEC,IDEM,ERRSMT
      INTEGER INISCN
      COMMON /LIB001/ RESULT,VALID,RVAL
     +               ,TYPEAT,LSTRNG
     +               ,STRING,ERRLEC,ERRSMT,IDEM
     +               ,INISCN,NBID
     +               ,PTBUF,TYPVAL,IVAL,SIZDEN,CARLUE
     +               ,ECHO,TRACE,PTETIQ,NUETIQ,LGNETI,SOUFFL,PPILE
     +               ,KKMODE
      COMMON /LIB002/ ID, IBUF,BUF,IDENT,CSTRNG
C     FIN DES COMMON  DU FORMAT LIBRE
C ----------------------------------------
C //////////////////////////////////////////////////////////////////////
C
C
      INTEGER I,J
C
      INTEGER LECTEU,IMPRIM,INTERA,NFNEWS,NFSAUV
      COMMON /UNITES/ LECTEU,IMPRIM,INTERA,NFNEWS,NFSAUV
C
C
      IDEN12=IDEN
      IF(NBID.GT.0)THEN
        DO 1 ADRID=1,NBID
          IF(IDEN12.NE.ID(ADRID))GOTO 1
C         ON L'A TROUVE
          IRES=0
          RETURN
    1   CONTINUE
C       ON NE L'A PAS TROUVE
      ELSE
        NBID=0
      ENDIF
      IRES=1
      NBID=NBID+1
      ADRID=NBID
      IF(NBID.GT.MXID)GOTO 9998
      ID(ADRID)=IDEN12
      RETURN
 9998 CONTINUE
      WRITE (IMPRIM,*)'TROP D''IDENTIFICATEURS (<MXID)',MXID
      STOP 'FATAL ERROR DCLID'
      END
