C DSTGR1    SOURCE    CHAT      05/01/12    22:56:39     5004
      SUBROUTINE DSTGR1(IGAU,NBNO,XE,NGRA,QSI,ETA,SHPTOT,
     1                  SHP,EXCEN,HS4,HS5,HS6,BGR,DJAC)
*
*            CALCUL LA MATRICE BGR RELATIVE AUX EFFETS DE
*            MEMBRANE ET DE FLEXION
*
*
* ENTREES :
*
*   IGAU :NUMERO DU POINT DE GAUSS
*    XE  :COORDONNEES DES NOEUDS
*  EXCEN :EXCENTEMENT DE COQUE
*   NBNO :NOMBRE DE NOEUDS
*  NGRA  :NOMBRE DE COMPOSANTES DE GRADIENTS
*  QSI   :COORDONNEES QSI DES POINTS DE GAUSS
*  ETA   :COORDONNEES ETA DES POINTS DE GAUSS
* SHPTOT :FONCTIONS DE FORME ET LEURS DERIVEE ( EFFET DE MEMBRANE)
*   SHP  :TABLEAU DE TRAVAIL
* HS4,HS5:FONCTIONS QUI RELIENT LES ROTATIONS (BETA)SK A {U}
* HS6
*
*  SORTIES :
*
*   BGR   :MATRICE BGR
*   DJAC  :JACOBIEN
*
*
* AUTEUR : X.Z. SUO FEVRIER 1996
*
************************************************************************
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION XE(3,*),QSI(*),ETA(*),SHPTOT(6,3,*),SHP(6,*)
      DIMENSION HS4(*),HS5(*),HS6(*),BGR(NGRA,*)
      DIMENSION SX(3),SY(3),RL(3),EXX(3),EYY(3)
      DIMENSION HXABS(9),HXORD(9),HYABS(9)
      DIMENSION HYORD(9),B(4,9)
*
*     MATRICE BGR RELATIVE A L'EFFET DE MEMBRANE
*
      DO 10 NPOI=1,3
        SHP(1,NPOI)=SHPTOT(1,NPOI,IGAU)
        SHP(2,NPOI)=SHPTOT(2,NPOI,IGAU)
        SHP(3,NPOI)=SHPTOT(3,NPOI,IGAU)
  10  CONTINUE
      CALL JACOBI(XE,SHP,2,3,DJAC)
      K=1
      DO 30 NPOI=1,3
        BGR(1,K  )=SHP(2,NPOI)
        BGR(5,K+1)=SHP(3,NPOI)
        BGR(2,K  )=SHP(3,NPOI)
        BGR(4,K+1)=SHP(2,NPOI)
        K=K+6
  30  CONTINUE
*
*     MODIFICATION SI EXCENTREMENT DE COQUE
*
      DO 40 K=4,6
       IF(K.EQ.4)THEN
         IJ=1
         I=2
         J=3
       ELSEIF(K.EQ.5)THEN
         IJ=2
          I=3
          J=1
       ELSE
         IJ=3
          I=1
          J=2
       ENDIF
       SX(IJ)=XE(1,I)-XE(1,J)
       SY(IJ)=XE(2,I)-XE(2,J)
       RL(IJ)=SQRT(SX(IJ)*SX(IJ)+SY(IJ)*SY(IJ))
       EXX(IJ)=-SX(IJ)/RL(IJ)
       EYY(IJ)=-SY(IJ)/RL(IJ)
  40   CONTINUE
       AIR=ABS(0.5D0*(SX(1)*SY(2)-SX(2)*SY(1)))
*
       CALL DERIVO(SX,SY,RL,QSI(IGAU),ETA(IGAU),HS4,HS5,
     1             HS6,EXX,EYY,HXABS,HXORD,HYABS,HYORD)
       CALL BGRMAT(SX,SY,HXABS,HYABS,HXORD,HYORD,B)
*
      K=2
      KK=0
      DO 1027 NPOI=1,NBNO
        DO 1127 IX  =1,3
          BGR(1,K+IX)=EXCEN*B(1,IX+KK)
          BGR(2,K+IX)=EXCEN*B(2,IX+KK)
          BGR(4,K+IX)=EXCEN*B(3,IX+KK)
          BGR(5,K+IX)=EXCEN*B(4,IX+KK)
 1127   CONTINUE
        K=K+6
        KK=KK+3
 1027 CONTINUE
*
      RETURN
      END



