      SUBROUTINE FACTUM ( CDNOMC )
#include "facom0.h"
C****
C        Sous-programme servant a supprimer un cadre.
C     ( Cadre a TUer Methodiquement ? )
C**
C        Argument : CDNOMC (Entree) ==> Nom symbolique du cadre.
C
#include "precision.h"
C
#include "facomp.h"
#include "facom1.h"
C
      INTEGER ILCDNO, IREP, IRANGC, ILNOMC, INIMES, INUMER, J
C
      LOGICAL LLPREA, LLVERG
C
      CHARACTER CDNOMC*(*)
C
      SAVE LLPREA
C
      DATA LLPREA/ .TRUE. /
C
#include "facom2.h"
C**
C     1.  -  INITIALISATIONS ET CONTROLES SOMMAIRES.
C-----------------------------------------------------------------------
C
      IF (LLPREA) THEN
C
C         Initialisation eventuelle des variables globales du logiciel.
C
        CALL FARINE (2)
        LLPREA=.FALSE.
      ENDIF
C
      LLVERG=.FALSE.
      ILCDNO=LEN (CDNOMC)
C
      IF (ILCDNO.LE.0) THEN
        IREP=-65
        GOTO 1001
      ELSEIF (CDNOMC.EQ.' ') THEN
        IREP=-68
        GOTO 1001
      ENDIF
C
      DO 101 J=ILCDNO,1,-1
C
      IF (CDNOMC(J:J).NE.' ') THEN
        ILNOMC=J
        GOTO 102
      ENDIF
C
  101 CONTINUE
C
  102 CONTINUE
C
      IF (ILNOMC.GT.NCPCAD) THEN
        IREP=-65
        GOTO 1001
      ENDIF
C             Verrouillage global, si necessaire.
C
      IF (LFAMUL) CALL LFIVER (VRGLAS,'ON')
      LLVERG=LFAMUL
C
C          Controle d'existence du cadre specifie.
C
      CALL FANUCA (CDNOMC,IRANGC,.FALSE.)
C
      IF (IRANGC.EQ.0) THEN
        IREP=-51
        GOTO 1001
      ENDIF
C**
C     2.  -  SUPPRESSION PROPREMENT DITE VIA LE SOUS-PROGRAMME "FACTUI".
C-----------------------------------------------------------------------
C
      CALL FACTUI (IREP,IRANGC)
C**
C    10.  -  PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
C            VIA LE sous-programme "FAIPAR" .
C-----------------------------------------------------------------------
C
 1001 CONTINUE
C
C          Deverrouillage global eventuel.
C
      IF (LLVERG) CALL LFIVER (VRGLAS,'OFF')
C
      LLFATA=LLMOER(IREP,0)
C
      IF (.NOT.LLFATA.OR.NIMSGA.NE.2) RETURN
C
      INIMES=2
      CLNSPR='FACTUM'
C
      IF (IREP.EQ.-65.AND.ILCDNO.LE.0) THEN
        ILNOMC=8
        CLACTI(1:ILNOMC)=CHAINC(:ILNOMC)
      ELSE
        ILNOMC=MIN (LEN (CLACTI),ILNOMC)
        CLACTI=CDNOMC(1:ILNOMC)
      ENDIF
C
      WRITE (UNIT=CLMESS,FMT='(''CDNOMC='''''',A,'''''''')')
     S     CLACTI(1:ILNOMC)
      INUMER=JPNIIL
      CALL FAIPAR (INUMER,INIMES,IREP,LLFATA,CLMESS,CLNSPR,
     S             CLACTI(1:ILNOMC),.FALSE.)
C
      RETURN
      END
