C DOHDST    SOURCE    CB215821  26/08/24    21:16:14     12622          
      SUBROUTINE DOHDST(VELA,MATE,IFOU,LHOOK,DDHOOK,IRET)
C
C=======================================================================
C
C  MATRICE DE HOOKE DES COQUES MINCES AVEC CISAILLEMENT TRANSVERSE
C  POUR L'ELEMENT DST
C  ENTREES
C     VELA() = materiau dans un tableau de travail
C     MATE   = Nom du materiau
C     IFOU   = num{ro d'harmonique de  fourier: IFOUR de CCOPTIO
C     LHOOK  = taille de la matrice de hooke
C
C  SORTIES
C     DDHOOK(LHOOK,LHOOK) = matrice de hooke
C     IRET = 1 si option existante 0 SINON
C
C=======================================================================
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)
      PARAMETER(UN=1.D0,DEUX=2.D0)
      CHARACTER*8 MATE
C
      DIMENSION VELA(*),DDHOOK(LHOOK,*)
C
      IRET=1
      CALL ZERO(DDHOOK,LHOOK,LHOOK)
C
C     MATERIAU ISOTROPE
C
      IF(MATE.EQ.'ISOTROPE') THEN
C
C     CAS TRIDIMENSIONNEL
C
      IF(IFOU.EQ.2) THEN
      YOU =VELA(1)
      XNU =VELA(2)
      AUX=YOU/(UN-XNU*XNU)
      AUX1=AUX*XNU
      GEGE=YOU*UNDEMI/(UN+XNU)
C
      DDHOOK(1,1)=AUX
      DDHOOK(2,1)=AUX1
      DDHOOK(1,2)=AUX1
      DDHOOK(2,2)=AUX
      DDHOOK(3,3)=GEGE
C
      DDHOOK(4,4)=AUX
      DDHOOK(5,4)=AUX1
      DDHOOK(4,5)=AUX1
      DDHOOK(5,5)=AUX
      DDHOOK(6,6)=GEGE
C
      DDHOOK(7,7)=GEGE/XK
      DDHOOK(8,8)=GEGE/XK
      ELSE
      IRET=0
      ENDIF
C
C     MATERIAU ORTHOTROPE OU UNIDIRECTIONNEL
C
      ELSE IF(MATE.EQ.'ORTHOTRO'.OR.
     1            MATE.EQ.'UNIDIREC')THEN
C
C     CAS TRIDIMENSIONNEL
C
         IF(IFOU.EQ.2)THEN
C
           IF(MATE.EQ.'ORTHOTRO')THEN
            YG1 = VELA(1)
            YG2 = VELA(2)
            XNU12 = VELA(3)
            G12 = VELA(4)
            G23 = VELA(5)
            G13 = VELA(6)
C
             X1NUNU = UN - (XNU12**2) * YG2 / YG1
             DDHOOK(1,1) = YG1 / X1NUNU
             DDHOOK(2,2) = YG2 / X1NUNU
             DDHOOK(1,2) = XNU12 * DDHOOK(2,2)
             DDHOOK(2,1) = DDHOOK(1,2)
             DDHOOK(3,3) = G12
             DDHOOK(1,3) = XZER
             DDHOOK(2,3) = XZER
             DDHOOK(3,1) = XZER
             DDHOOK(3,2) = XZER
C
             DO 101 IC=1,3
               IC3=IC+3
               DO 100 IL=1,3
                 IL3=IL+3
                 DDHOOK(IL3,IC3)=DDHOOK(IL,IC)
 100          CONTINUE
  101        CONTINUE
             DDHOOK(7,7) = G13/XK
             DDHOOK(8,8) = G23/XK
            ELSE
              DDHOOK(1,1)=VELA(1)
              DDHOOK(4,4)=VELA(1)
            ENDIF
          ELSE
            IRET=0
          ENDIF
      ELSE
          IRET=0
      ENDIF
      RETURN
      END

 
