C
C This file is issued from the MODULEF library, but has been 
C subsequently modified
C
      INTEGER FUNCTION LIBACT(IACT)
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C BUT :
C     FORMAT LIBRE
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C PROGRAMMEUR : F. HECHT - INRIA - AVRIL 86
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      SAVE
      INTEGER IACT
C //////////////////////////////////////////////////////////////////////
C     DEBUT DES COMMON  DU FORMAT LIBRE
C ----------------------------------------
C
      DOUBLE PRECISION RVAL,RSS
      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 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
C CCCCC  POUR RECUPERER LES IDENTIFICATEURS EN CARACTERES  CCCC
      CHARACTER CIDEN2*32,CIDEN1*32
C CCCCC  POUR RECUPERER LES NOM DE FICHIER EN CARACTERES  CCCC
C
      INTEGER ADRID,ADRVAR
      INTEGER VIDE,ENTIER,REEL
      PARAMETER(ENTIER=0,REEL=1,VIDE=-1)
C
C      PILE D'EVALUATION DES VALEURS
      DOUBLE PRECISION RSTK(MXVAL)
      INTEGER PTSTK
C
C
C      PILE DES OPERATEURS
      INTEGER OPER(MXOPER),PTOPER
C
C     COMPTE DES PARAMETRES D'UNE FONCTION
      INTEGER CPARAM(MXOPER)
C
      INTEGER OP
C
C      VALEUR DES OPERATEURS
      INTEGER PLUS1,MOINS1,PLUS2,MOINS2,MUL2,DIV2,EXP2
      PARAMETER(
     +  PLUS1=1,
     +  MOINS1=2,
     +  PLUS2=11 ,
     +  MOINS2=12 ,
     +  MUL2=13 ,
     +  DIV2=14 ,
     +  EXP2=15
     + )
      LOGICAL APPEND,DEBUG
      INTEGER TIOERR,IEX,I,IRES,IS,NFIM
      DOUBLE PRECISION EX
      CHARACTER*27 CERROR(0:4)
C     COMMON MODULEF
C -------------------------
      INTEGER  IM,LM,NOMTAB,NNN,PADTRA(1020)
      COMMON /TRAVAI/ IM,LM,NOMTAB,NNN,PADTRA
      INTEGER PADTR1(29),IMPRE,IMPLEC,LECSUI,MOITOI
      COMMON /TRAVA1/ PADTR1,IMPRE,IMPLEC,LECSUI,MOITOI
      INTEGER LECTEU,IMPRIM,INTERA,NFNEWS,NFSAUV
      COMMON /UNITES/ LECTEU,IMPRIM,INTERA,NFNEWS,NFSAUV
      EXTERNAL IINFO
      INTEGER IINFO
C ------------------------------
C
      DATA CERROR /
     + ' UNE CHAINE DE CARACTERES ',
     + ' UN ENTIER ',
     + ' UN REEL SIMPLE PRECISION ',
     + ' UN LOGIQUE ',
     + ' UN REEL DOUBLE PRECISION '/
C
C
      LIBACT=0
      IF(IACT.EQ.0)RETURN
      IF(IACT.EQ.-2)THEN
          KKMODE = 0
          INISCN = 0
          NBID=0
          PTETIQ=1
          NUETIQ(PTETIQ)=IINFO('LECTEUR INITIAL')
          LGNETI(PTETIQ)=0
          TRACE=0
          ECHO=.FALSE.
          SOUFFL=.FALSE.
          DEBUG =.FALSE.
          RETURN
      ELSEIF(IACT.EQ.-1)THEN
        APPEND = .FALSE.
        PTSTK=0
        PTOPER=0
        RETURN
      ENDIF
C
      END
