C DCOGAF    SOURCE    GOUNAND   21/06/02    21:15:44     11022          
      SUBROUTINE DCOGAF(JCOEFF,JDFFPG,SSFACT,NBELEF,
     $     JDCOFG,
     $     IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : DCOGAF
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION :
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          :
C APPELE PAR       :
C***********************************************************************
C ENTREES            :
C
C ENTREES/SORTIES    : -
C SORTIES            :
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 03/10/03, version initiale
C HISTORIQUE : v1, 03/10/03, 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
*-INC SMCHAEL
      INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
      POINTEUR JCOEFF.MCHEVA
      POINTEUR JDCOFG.MCHEVA
* Valeurs des fns d'interpolation du coeff. aux points de Gauss
      POINTEUR JDFFPG.MCHEVA
*
      INTEGER IMPR,IRET
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogaf'
      IESREL=IDIM
      SEGACT SSFACT
      NBELFV=SSFACT.LFACTI(/1)
      NBELEV=SSFACT.LFACTI(/2)
      SEGACT JCOEFF
      NDLIG =JCOEFF.WELCHE(/1)
      NDCOL =JCOEFF.WELCHE(/2)
      N2DLIG=JCOEFF.WELCHE(/3)
      N2DCOL=JCOEFF.WELCHE(/4)
      NDNOEU=JCOEFF.WELCHE(/5)
      NBELEM=JCOEFF.WELCHE(/6)
      IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.1
     $     .OR.NDNOEU.NE.1
     $     .OR.(NBELEM.NE.1.AND.NBELEM.NE.NBELEV)) THEN
         WRITE(IOIMP,*) 'Erreur dims JCOEFF'
         GOTO 9999
      ENDIF
      NDDL=NDCOL
      NLVCOF=NBELEM
      SEGACT JDFFPG
      NDLIG =JDFFPG.WELCHE(/1)
      NDCOL =JDFFPG.WELCHE(/2)
      N2DLIG=JDFFPG.WELCHE(/3)
      N2DCOL=JDFFPG.WELCHE(/4)
      NDNOEU=JDFFPG.WELCHE(/5)
      NBELEM=JDFFPG.WELCHE(/6)
      IF (NDLIG.NE.1.OR.NDCOL.NE.NDDL
     $     .OR.N2DLIG.NE.1.OR.N2DCOL.NE.IESREL
     $     .OR.NBELEM.NE.NBELEF) THEN
         WRITE(IOIMP,*) 'Erreur dims JDFFPG'
         GOTO 9999
      ENDIF
      NBPOGO=NDNOEU
*
* Initialisations...
*
      NBLIG=1
      NBCOL=1
      N2LIG=1
      N2COL=IESREL
      NBPOI=NBPOGO
      NBELM=NBELEF
      SEGINI JDCOFG
*
* On effectue le calcul du coefficient aux points de Gauss
*
      CALL DCOGF1(NDDL,IESREL,NBPOGO,NBELEV,NBELFV,NBELEF,
     $     NLVCOF,
     $     JCOEFF.WELCHE,JDFFPG.WELCHE,SSFACT.LFACTI,
     $     JDCOFG.WELCHE,
     $     IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
      SEGDES JDCOFG
      SEGDES SSFACT
      SEGDES JCOEFF
      SEGDES JDFFPG
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine dcogaf'
      RETURN
*
* End of subroutine DCOGAF
*
      END


 
