C SUFACT    SOURCE    GOUNAND   21/06/02    21:17:44     11022          
      SUBROUTINE SUFACT(FACTIV,IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : SUFACT
C DESCRIPTION : Détruit un segment FACTIV et ses sous-objets
C               (cf. include SFACTIV)
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          :
C APPELES (E/S)    :
C APPELES (BLAS)   :
C APPELES (CALCUL) :
C APPELE PAR       :
C***********************************************************************
C SYNTAXE GIBIANE    :
C ENTREES            :
C ENTREES/SORTIES    :
C SORTIES            :
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 19/12/2002, version initiale
C HISTORIQUE : v1, 19/12/2002, création
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
C Prière de PRENDRE LE TEMPS de compléter les commentaires
C en cas de modification de ce sous-programme afin de faciliter
C la maintenance !
C***********************************************************************

-INC PPARAM
-INC CCOPTIO
-INC TNLIN      
*-INC SFACTIV
      INTEGER NBSOUV,NBSOFV
*
      INTEGER IMPR,IRET
*
      INTEGER IBSOUV,IBSOFV
*
* Executable statements
*
      IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans sufact.eso'
      IF (FACTIV.NE.0) THEN
         SEGACT FACTIV*MOD
         NBSOUV=FACTIV.IFACTI(/1)
         DO IBSOUV=1,NBSOUV
            SFACTI=FACTIV.IFACTI(IBSOUV)
            IF (SFACTI.NE.0) THEN
               SEGACT SFACTI*MOD
               NBSOFV=SFACTI.ISFACT(/1)
               DO IBSOFV=1,NBSOFV
                  SSFACT=SFACTI.ISFACT(IBSOFV)
                  IF (SSFACT.NE.0) THEN
*                     SEGACT SSFACT*MOD
                     SEGSUP SSFACT
                  ENDIF
               ENDDO
               SEGSUP SFACTI
            ENDIF
         ENDDO
         SEGSUP FACTIV
      ENDIF
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine sufact'
      RETURN
*
* End of subroutine SUFACT
*
      END


 
