C DCOGF1    SOURCE    GOUNAND   06/08/04    21:15:23     5520
      SUBROUTINE DCOGF1(NDDL,IESREL,NBPOGO,NBELEV,NBELFV,NBELEF,
     $     NLVCOF,
     $     JCOEFF,JDFFPG,SSFACT,
     $     JDCOFG,
     $     IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : DCOGF1
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION :
C
C LANGAGE     : Fortran 77 (sauf E/S)
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          : -
C APPELE PAR       : COGAUF
C***********************************************************************
C ENTREES            :
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
      INTEGER NDDL,IESREL,NBPOGO,NBELEV,NBELFV,NBELEF
      REAL*8 JCOEFF (NDDL,NLVCOF)
      REAL*8 JDFFPG (NDDL,IESREL,NBPOGO,NBELEF)
      LOGICAL SSFACT(NBELFV,NBELEV)
      REAL*8 JDCOFG(IESREL,NBPOGO,NBELEF)
*
      INTEGER IMPR,IRET
      INTEGER JESREL,IBPOGO,IDDL,IBELEV,IBELEF,IBELFV
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogf1'
      IBELEF=0
      DO IBELEV=1,NBELEV
         DO IBELFV=1,NBELFV
            IF (SSFACT(IBELFV,IBELEV)) THEN
               IBELEF=IBELEF+1
               IF (NLVCOF.EQ.1) THEN
                  ILVCOF=1
               ELSE
                  ILVCOF=IBELEV
               ENDIF
               DO IBPOGO=1,NBPOGO
                  DO JESREL=1,IESREL
                     DO IDDL=1,NDDL
                        JDCOFG(JESREL,IBPOGO,IBELEF)=
     $                       JDCOFG(JESREL,IBPOGO,IBELEF)
     $                       + (JCOEFF(IDDL,ILVCOF)
     $                          *JDFFPG(IDDL,JESREL,IBPOGO,IBELEF))
                     ENDDO
                  ENDDO
               ENDDO
            ENDIF
         ENDDO
      ENDDO
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine dcogf1'
      RETURN
*
* End of subroutine DCOGF1
*
      END


