Télécharger dohcoe.eso

Retour à la liste

Numérotation des lignes :

dohcoe
  1. C DOHCOE SOURCE CHAT 05/01/12 22:53:24 5004
  2. C
  3. SUBROUTINE DOHCOE(VELA,MATE,IFOU,LHOOK,DDHOOK,IRET)
  4. C
  5. C=======================================================================
  6. C
  7. C MATRICE DE HOOK DES COQUES EPAISSES
  8. C
  9. C ENTREES
  10. C VELA() = materiau dans un tableau de travail
  11. C MATE = Nom du materiau
  12. C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO
  13. C LHOOK = taille de la matrice de hooke
  14. C
  15. C SORTIES
  16. C DDHOOK(LHOOK,LHOOK) = matrice de hooke
  17. C IRET = 1 si option existante 0 SINON
  18. C
  19. C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90
  20. C=======================================================================
  21. C
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)
  25. PARAMETER(UN=1.D0,DEUX=2.D0)
  26. CHARACTER*8 MATE
  27. C
  28. DIMENSION VELA(*),DDHOOK(LHOOK,*)
  29. REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3)
  30. REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
  31. C
  32. IRET=1
  33. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  34. C
  35. C MATERIAU ISOTROPE
  36. C
  37. IF(MATE.EQ.'ISOTROPE') THEN
  38. C
  39. C CAS TRIDIMENSIONNEL
  40. C
  41. IF(IFOU.EQ.2) THEN
  42. YOU=VELA(1)
  43. XNU=VELA(2)
  44. AUX=YOU/(UN-XNU*XNU)
  45. AUX1=AUX*XNU
  46. GEGE=YOU*UNDEMI/(UN+XNU)
  47. C
  48. DDHOOK(1,1)=AUX
  49. DDHOOK(2,1)=AUX1
  50. DDHOOK(1,2)=AUX1
  51. DDHOOK(2,2)=AUX
  52. C
  53. DDHOOK(3,3)=GEGE
  54. DDHOOK(4,4)=GEGE/XK
  55. DDHOOK(5,5)=DDHOOK(4,4)
  56. ELSE
  57. IRET=0
  58. ENDIF
  59. C
  60. C MATERIAU ORTHOTROPE ET UNIDIRECTIONNEL
  61. C
  62. ELSE IF(MATE.EQ.'ORTHOTRO'.OR.
  63. 1 MATE.EQ.'UNIDIREC') THEN
  64. C
  65. C CAS TRIDIMENSIONNEL
  66. C
  67. IF(IFOU.EQ.2)THEN
  68. C
  69. IF(MATE.EQ.'ORTHOTRO')THEN
  70. YG1 = VELA(1)
  71. YG2 = VELA(2)
  72. XNU12 = VELA(3)
  73. G12 = VELA(4)
  74. G23 = VELA(5)
  75. G13 = VELA(6)
  76. COSA = VELA(7)
  77. SINA = VELA(8)
  78. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  79. C
  80. D3HOO1(1,1) = YG1 / X1NUNU
  81. D3HOO1(2,2) = YG2 / X1NUNU
  82. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  83. D3HOO1(2,1) = D3HOO1(1,2)
  84. D3HOO1(3,3) = G12
  85. D3HOO1(1,3) = XZER
  86. D3HOO1(2,3) = XZER
  87. D3HOO1(3,1) = XZER
  88. D3HOO1(3,2) = XZER
  89. C
  90. D2HOO1(1,1) = G13/XK
  91. D2HOO1(2,2) = G23/XK
  92. D2HOO1(1,2) = XZER
  93. D2HOO1(2,1) = XZER
  94. ELSE
  95. CALL ZERO(D3HOO1,3,3)
  96. CALL ZERO(D2HOO2,2,2)
  97. D3HOO1(1,1)=VELA(1)
  98. COSA=VELA(2)
  99. SINA=VELA(3)
  100. ENDIF
  101. C
  102. COS2 = COSA**2
  103. SIN2 = SINA**2
  104. SINCOS = SINA * COSA
  105. ROTHOO(1,1) = COS2
  106. ROTHOO(1,2) = SIN2
  107. ROTHOO(1,3) = SINCOS
  108. ROTHOO(2,1) = SIN2
  109. ROTHOO(2,2) = COS2
  110. ROTHOO(2,3) = - SINCOS
  111. ROTHOO(3,1) = - DEUX * SINCOS
  112. ROTHOO(3,2) = DEUX * SINCOS
  113. ROTHOO(3,3) = COS2 - SIN2
  114. C
  115. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  116. CALL PRODT (D3HOO2,D3HOO1,ROTHOO,3,3)
  117. DO 400 J=1,3
  118. DO 400 I=1,3
  119. DDHOOK(I,J) = D3HOO2(I,J)
  120. 400 CONTINUE
  121. C
  122. IF(MATE.EQ.'ORTHOTRO')THEN
  123. RO2HOO(1,1) = COSA
  124. RO2HOO(1,2) = SINA
  125. RO2HOO(2,1) = -SINA
  126. RO2HOO(2,2) = COSA
  127. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  128. ENDIF
  129. C
  130. DO 500 J=1,2
  131. DO 500 I=1,2
  132. DDHOOK(3+I,3+J) = D2HOO2(I,J)
  133. 500 CONTINUE
  134. C
  135. ELSE
  136. IRET=0
  137. ENDIF
  138. ELSE
  139. IRET=0
  140. ENDIF
  141. RETURN
  142. END
  143.  
  144.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales