      SUBROUTINE FACTUI ( KREP, KRANGC )
#include "facom0.h"
C****
C        Sous-programme A USAGE INTERNE AU LOGICIEL. Fait la suppression
C     d'un cadre ( vis-a-vis des tables du logiciel ) .
C        En mode multi-taches, il doit y avoir verrouillage global
C     de la zone d'appel au sous-programme.
C**
C        Arguments : KREP   (Sortie) ==> Code-reponse du sous-programme;
C                    KRANGC (Entree) ==> Rang du cadre dans les tables.
C
#include "precision.h"
C
#include "facomp.h"
#include "facom1.h"
C
      INTEGER KREP, KRANGC
C
      INTEGER J, IPOSCA, INIMES, INUMER
C**
C     1.  -  CONTROLE PREALABLE DE COHERENCE.
C-----------------------------------------------------------------------
C
      IF (KRANGC.LE.0.OR.KRANGC.GT.JPNXFA) THEN
        KREP=-66
        GOTO 1001
      ENDIF
C**
C     2.  -  RECHERCHE DU CADRE DANS LA TABLE "NCAIND".
C-----------------------------------------------------------------------
C
      DO 201 J=1,NCADEF
C
      IF (NCAIND(J).EQ.KRANGC) THEN
        IPOSCA=J
        GOTO 202
      ENDIF
C
  201 CONTINUE
C
      KREP=-66
      GOTO 1001
C
  202 CONTINUE
C
      IF (NULCAD(IPOSCA).NE.0) THEN
        KREP=-67
        GOTO 1001
      ENDIF
C**
C     3.  -  MISE A JOUR DES TABLES.
C-----------------------------------------------------------------------
C
      CNOMCA(KRANGC)=' '
      NCADEF=NCADEF-1
C
      DO 301 J=IPOSCA,NCADEF
      NCAIND(J)=NCAIND(J+1)
  301 CONTINUE
C
      KREP=0
C**
C    10.  -  PHASE TERMINALE : MESSAGERIE EVENTUELLE,
C            VIA LE sous-programme "FAIPAR" .
C-----------------------------------------------------------------------
C
 1001 CONTINUE
C
      LLFATA=KREP.EQ.-66.OR.(KREP.NE.0.AND.NRFAGA.NE.2)
C
      IF (LFAMOP.OR.LLFATA) THEN
        INIMES=2
        CLNSPR='FACTUI'
        INUMER=JPNIIL
        WRITE (UNIT=CLMESS,FMT='(''KREP='',I4,'', KRANGC='',I4)')
     S     KREP,KRANGC
        CALL FAIPAR (INUMER,INIMES,KREP,.FALSE.,CLMESS,CLNSPR,CLACTI,
     S               .FALSE.)
      ENDIF
C
      RETURN
      END
