C BGFCQ4    SOURCE    CHAT      06/03/29    21:15:48     5360
      SUBROUTINE BGFCQ4(IGAU,XEL,SHPTOT,SHP,BGF,DJAC,IARR)
C |====================================================================|
C |                                                                    |
C |  CALCULE LA MATRICE DE GRADIAN EN FLEXION BGF POUR COQ4
C |     CODE SUO X.Z. MARS 87
C |INPUT                                                               |
C |   IGAU=NUMERO DU POINT DE GAUSS                                    |
C |   NBNO=NOMBRE DE NOEUDS                                            |
C |   LRE =NOMBRE DE COLONNES DE LA MATRICE BGR                        |
C |   XEL =COORDONNEES LOCALES DE L ELEMENT                            |
C |   SHPTOT(6,NBNO,NBGAU)=FONCTIONS DE FORMES ET DERIVEES             |
C |ZONE DE TRAVAIL                                                     |
C |   SHP(6,NBNO)=TABLEAU DE TRAVAIL                                   |
C |OUTPUT                                                              |
C |   DJAC=JACOBIEN                                                    |
C |   BGF(9,LRE)=MATRICE BGF                                           |
C |====================================================================|
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      PARAMETER (LRE=24,NBNO=4)
      DIMENSION XEL(3,*),BGF(9,*),SHP(6,*),SHPTOT(6,NBNO,*)
      DATA ZER/0.D0/
      IARR=0
C
      CALL ZERO(BGF,9,LRE)
C
C
      DO 101 NP=1,NBNO
      SHP(1,NP)=SHPTOT(1,NP,IGAU)
      SHP(2,NP)=SHPTOT(2,NP,IGAU)
      SHP(3,NP)=SHPTOT(3,NP,IGAU)
  101 CONTINUE
      CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
      IF(DJAC.LE.ZER) IARR=1
      IF(DJAC.LE.ZER) RETURN
C
C     ====================== CALCUL
C
      K=1
      DO 102 NP=1,NBNO
      BGF(1,K+4)=SHP(2,NP)
      BGF(2,K+4)=SHP(3,NP)
      BGF(3,K+4)=SHP(1,NP)
      BGF(4,K+3)=-SHP(2,NP)
      BGF(5,K+3)=-SHP(3,NP)
      BGF(6,K+3)=-SHP(1,NP)
      K=K+6
  102 CONTINUE
      RETURN
      END


