      SUBROUTINE FAUTIF ( KREP, KNUMER, CDIDEN )
#include "facom0.h"
C****
C        Sous-programme permettant de donner un NOM a l'Identificateur
C     d'un fichier ARPEGE.
C       ( l'Utilisateur Traite son Identificateur de Fichier )
C**
C    Arguments : KREP   (Sortie) ==> Code-reponse du sous-programme;
C                KNUMER (Entree) ==> Numero de l'unite logique;
C                CDIDEN (Entree) ==> Nom de l'identificateur.
C
C       Une messagerie de niveau 1 est emise dans les cas "normaux"
C
#include "precision.h"
C
#include "facomp.h"
#include "facom1.h"
C
      INTEGER KREP, KNUMER
C
      INTEGER IREP, ILIDEN, IRANG, INIMES, ILACTI
C
      LOGICAL LLVERF, LLRLFI
C
      CHARACTER CDIDEN*(*)
C
#include "facom2.h"
C**
C     1.  -  CONTROLES ET INITIALISATIONS.
C-----------------------------------------------------------------------
C
      LLVERF=.FALSE.
      LLRLFI=.FALSE.
      ILIDEN=LEN (CDIDEN)
      CALL FANUMU (KNUMER,IRANG)
C
      IF (IRANG.EQ.0) THEN
        IREP=-51
        GOTO 1001
      ELSEIF (ILIDEN.LE.0) THEN
        IREP=-65
        GOTO 1001
      ENDIF
C
C         Verrouillage eventuel du fichier.
C
      IF (LFAMUL) CALL LFIVER (VRFICH(IRANG),'ON')
      LLVERF=LFAMUL
      CLNOMA=CIDENT(IRANG)
C
      IF (CDIDEN.EQ.CPCACH.OR.CDIDEN.EQ.CPCADI.OR.
     S    CDIDEN.EQ.CPCAFS.OR.CDIDEN.EQ.CPCARP.OR.CDIDEN.EQ.CPDATE) THEN
        IREP=-111
        GOTO 1001
      ENDIF
C**
C     2.  -  ON RENOMME L'ARTICLE IDENTIFICATEUR, QUI EXISTE TOUJOURS SI
C            LE FICHIER EST OUVERT, AU MOINS AVEC UN NOM PAR DEFAUT.
C-----------------------------------------------------------------------
C
      IF (CDIDEN.NE.CIDENT(IRANG)) THEN
        CALL LFIREN (IREP,KNUMER,CIDENT(IRANG),CDIDEN)
        LLRLFI=IREP.NE.0
        IF (.NOT.LLRLFI) CIDENT(IRANG)=CDIDEN
      ELSE
        IREP=0
      ENDIF
C**
C    10.  -  PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
C            VIA LE SOUS-PROGRAMME "FAIPAR" .
C-----------------------------------------------------------------------
C
 1001 CONTINUE
      KREP=IREP
      LLFATA=LLMOER (IREP,IRANG)
C
C        Deverrouillage eventuel du fichier.
C
      IF (LLVERF) CALL LFIVER (VRFICH(IRANG),'OFF')
C
      IF (LLFATA) THEN
        INIMES=2
      ELSE
        INIMES=IXNVMS(IRANG)
      ENDIF
C
      IF (.NOT.LLFATA.AND.INIMES.EQ.0) RETURN
C
      CLNSPR='FAUTIF'
C
      IF (IREP.NE.-65) THEN
        ILACTI=NCPCAD
        CLACTI(1:ILACTI)=CDIDEN(1:MIN (ILIDEN,ILACTI))
      ELSE
        ILACTI=8
        CLACTI(1:ILACTI)=CHAINC(:ILACTI)
      ENDIF
C
      IF (INIMES.EQ.2) THEN
        WRITE (UNIT=CLMESS,FMT='(''KREP='',I4,'', KNUMER='',I3,
     S         '', CDIDEN='''''',A,'''''''')')
     S   KREP,KNUMER,CLACTI(1:ILACTI)
        CALL FAIPAR (KNUMER,INIMES,IREP,LLFATA,CLMESS,CLNSPR,
     S               CLACTI(1:ILACTI),LLRLFI)
      ENDIF
C
C        La messagerie qui suit n'est pas emise en cas d'erreur fatale.
C
      IF (INIMES.GE.1.AND.IRANG.NE.0) THEN
        WRITE (UNIT=CLMESS,FMT=
     S  '(''Ancien Identificateur de l''''unite logique'',I3,
     S    '' : '''''',A,'''''', Nouveau: '''''',A,'''''''')')
     S  KNUMER,CLNOMA,CIDENT(IRANG)
        CALL FAIPAR (KNUMER,INIMES,IREP,.FALSE.,CLMESS,CLNSPR,
     S               CLACTI(1:ILACTI),.FALSE.)
      ENDIF
C
      RETURN
      END
