Télécharger dohmao.eso

Retour à la liste

Numérotation des lignes :

  1. C DOHMAO SOURCE BP208322 17/03/01 21:17:02 9325
  2.  
  3. C=======================================================================
  4. C= D O H M A O =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul de la matrice de Hooke (elasticite lineaire) dans le cas =
  10. C= des materiaux orthotropes et anisotropes =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= VELA (E) Valeurs des parametres elastiques du materiau =
  15. C= MATE (E) Chaine contenant le type du materiau =
  16. C= IFOU (E) Mode de calcul (cf. IFOUR de CCOPTIO) =
  17. C= IDIM (E) Dimension du probleme (1,2,3) (cf. CCOPTIO) =
  18. C= TXR (E) Cosinus directeurs des axes LOCAUX / repere GLOBAL =
  19. C= XLOC (S) Tableau de travail contenant le repere =
  20. C= d'orthotropie / repere LOCAL =
  21. C= XGLOB (S) Tableau de travail contenant le repere =
  22. C= d'orthotropie / repere GLOBAL =
  23. C= D1HOOK (S) Matrice de Hooke dans le repere LOCAL d'orthotropie=
  24. C= DDHOOK (S) Matrice de Hooke dans le repere GLOBAL =
  25. C= LHOOK (S) Dimension de la matrice de Hooke =
  26. C= KCAS (E) =1 si on veut la matrice de Hooke associee au mode =
  27. C= de calcul (non necessairement inversible) =
  28. C= =2 si on veut la matrice de Hooke complete pour =
  29. C= l'inverser par la suite (matrice de souplesse) =
  30. C= IRET (S) =1 si option existante , =0 sinon =
  31. C= =
  32. C= Remarque : En DIMEnsion 1, on calcule directement la matrice DDHOOK=
  33. C= ---------- car les directions d'ORTHOTROPIE correspondent a celles =
  34. C= du repere GLOBAL. =
  35. C=======================================================================
  36.  
  37. SUBROUTINE DOHMAO (VELA,MATE,IFOU,IDIM,TXR,XLOC,XGLOB,
  38. . D1HOOK,ROTHOO,DDHOOK,LHOOK,KCAS,IRET)
  39.  
  40. IMPLICIT INTEGER(I-N)
  41. IMPLICIT REAL*8 (A-H,O-Z)
  42.  
  43. PARAMETER (XZero=0.,XUn=1.,XDeux=2.)
  44.  
  45. DIMENSION VELA(*),DDHOOK(LHOOK,*),D1HOOK(LHOOK,*),ROTHOO(LHOOK,*),
  46. . TXR(IDIM,*),XLOC(3,3),XGLOB(3,3)
  47. CHARACTER*(*) MATE
  48.  
  49. IRET=1
  50. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  51. CALL ZERO(XLOC,3,3)
  52.  
  53. C 1 - MATERIAU ORTHOTROPE
  54. C =========================
  55. IF (MATE.EQ.'ORTHOTRO') THEN
  56. C =====
  57. C 1.1 - Definition de la matrice de HOOKE dans les axes d'ORTHOTROPIE
  58. C =====
  59. C= -> Contraintes planes et KCAS=1
  60. IF (IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  61. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  62. YG1=VELA(1)
  63. YG2=VELA(2)
  64. XNU12=VELA(3)
  65. XNU21=(YG2/YG1)*XNU12
  66. AUX=XUn/(XUn-XNU12*XNU21)
  67. D1HOOK(1,1)=YG1*AUX
  68. D1HOOK(2,1)=XNU21*YG1*AUX
  69. D1HOOK(1,2)=D1HOOK(2,1)
  70. D1HOOK(2,2)=YG2*AUX
  71. D1HOOK(4,4)=VELA(4)
  72. C= -> Contraintes planes et KCAS=2
  73. ELSEIF (IFOU.EQ.-2.AND.KCAS.EQ.2) THEN
  74. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  75. YG1=VELA(1)
  76. YG2=VELA(2)
  77. YG3=VELA(7)
  78. XNU12=VELA(3)
  79. XNU23=VELA(8)
  80. XNU13=VELA(9)
  81. XNU21=(YG2/YG1)*XNU12
  82. XNU32=(YG3/YG2)*XNU23
  83. XNU31=(YG3/YG1)*XNU13
  84. AUX=XUn/( XUn-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  85. . -XDeux*XNU12*XNU23*XNU31)
  86. AUX1=AUX*YG1
  87. AUX2=AUX*YG2
  88. D1HOOK(1,1)=(XUn-XNU23*XNU32)*AUX1
  89. D1HOOK(2,1)=(XNU21+XNU23*XNU31)*AUX1
  90. D1HOOK(3,1)=(XNU31+XNU32*XNU21)*AUX1
  91. D1HOOK(1,2)=D1HOOK(2,1)
  92. D1HOOK(2,2)=(XUn-XNU13*XNU31)*AUX2
  93. D1HOOK(3,2)=(XNU32+XNU31*XNU12)*AUX2
  94. D1HOOK(1,3)=D1HOOK(3,1)
  95. D1HOOK(2,3)=D1HOOK(3,2)
  96. D1HOOK(3,3)=(XUn-XNU12*XNU21)*AUX*YG3
  97. D1HOOK(4,4)=VELA(4)
  98. C= -> Deformations planes, Axisymetrie, Serie de Fourier et 3D
  99. ELSEIF (IFOU.EQ.-1.OR.IFOU.EQ.-3.OR.
  100. . IFOU.EQ.0.OR.IFOU.EQ.1.OR.IFOU.EQ.2) THEN
  101. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  102. YG1=VELA(1)
  103. YG2=VELA(2)
  104. YG3=VELA(3)
  105. XNU12=VELA(4)
  106. XNU23=VELA(5)
  107. XNU13=VELA(6)
  108. XNU21=(YG2/YG1)*XNU12
  109. XNU32=(YG3/YG2)*XNU23
  110. XNU31=(YG3/YG1)*XNU13
  111. AUX=XUn/( XUn-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  112. . -XDeux*XNU12*XNU23*XNU31)
  113. AUX1=AUX*YG1
  114. AUX2=AUX*YG2
  115. D1HOOK(1,1)=(XUn-XNU23*XNU32)*AUX1
  116. D1HOOK(2,1)=(XNU21+XNU23*XNU31)*AUX1
  117. D1HOOK(3,1)=(XNU31+XNU32*XNU21)*AUX1
  118. D1HOOK(1,2)=D1HOOK(2,1)
  119. D1HOOK(2,2)=(XUn-XNU13*XNU31)*AUX2
  120. D1HOOK(3,2)=(XNU32+XNU31*XNU12)*AUX2
  121. D1HOOK(1,3)=D1HOOK(3,1)
  122. D1HOOK(2,3)=D1HOOK(3,2)
  123. D1HOOK(3,3)=(XUn-XNU12*XNU21)*AUX*YG3
  124. D1HOOK(4,4)=VELA(7)
  125. IF (IFOU.EQ.1.OR.IFOU.EQ.2) THEN
  126. D1HOOK(5,5)=VELA(9)
  127. D1HOOK(6,6)=VELA(8)
  128. ENDIF
  129. C= -> Modes de calcul 1D
  130. C= On calcule directement DDHOOK car les directions d'ORTHOTROPIE
  131. C= correspondent aux direction du repere GLOBAL
  132. ELSEIF (IFOU.GE.3.AND.IFOU.LE.15) THEN
  133. IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN
  134. DDHOOK(1,1)=VELA(1)
  135. ELSEIF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND.
  136. . KCAS.EQ.1) THEN
  137. YG1=VELA(1)
  138. YG3=VELA(3)
  139. XNU13=VELA(6)
  140. XNU31=(YG3/YG1)*XNU13
  141. AUX=XUn/(XUn-XNU13*XNU31)
  142. DDHOOK(1,1)=YG1*AUX
  143. DDHOOK(3,1)=XNU13*YG3*AUX
  144. DDHOOK(1,3)=DDHOOK(3,1)
  145. DDHOOK(3,3)=YG3*AUX
  146. ELSEIF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN
  147. YG1=VELA(1)
  148. YG2=VELA(2)
  149. XNU12=VELA(4)
  150. XNU21=(YG2/YG1)*XNU12
  151. AUX=XUn/(XUn-XNU12*XNU21)
  152. DDHOOK(1,1)=YG1*AUX
  153. DDHOOK(2,1)=XNU21*YG1*AUX
  154. DDHOOK(1,2)=DDHOOK(2,1)
  155. DDHOOK(2,2)=YG2*AUX
  156. ELSE
  157. YG1=VELA(1)
  158. YG2=VELA(2)
  159. YG3=VELA(3)
  160. XNU12=VELA(4)
  161. XNU23=VELA(5)
  162. XNU13=VELA(6)
  163. XNU21=(YG2/YG1)*XNU12
  164. XNU32=(YG3/YG2)*XNU23
  165. XNU31=(YG3/YG1)*XNU13
  166. AUX=XUn/(XUn-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  167. . -XDeux*XNU12*XNU23*XNU31)
  168. AUX1=AUX*YG1
  169. AUX2=AUX*YG2
  170. DDHOOK(1,1)=(XUn-XNU23*XNU32)*AUX1
  171. DDHOOK(2,1)=(XNU21+XNU23*XNU31)*AUX1
  172. DDHOOK(3,1)=(XNU31+XNU32*XNU21)*AUX1
  173. DDHOOK(1,2)=DDHOOK(2,1)
  174. DDHOOK(2,2)=(XUn-XNU13*XNU31)*AUX2
  175. DDHOOK(3,2)=(XNU32+XNU31*XNU12)*AUX2
  176. DDHOOK(1,3)=DDHOOK(3,1)
  177. DDHOOK(2,3)=DDHOOK(3,2)
  178. DDHOOK(3,3)=(XUn-XNU12*XNU21)*AUX*YG3
  179. ENDIF
  180. C= -> Cas non prevus actuellement
  181. ELSE
  182. IRET=0
  183. RETURN
  184. ENDIF
  185. C =====
  186. C 1.2 - Definition de la matrice de passage des axes d'ORTHOTROPIE
  187. C aux axes LOCAUX au point considere (dimensions 2 et 3)
  188. C =====
  189. cbp IF (IDIM.EQ.2) THEN
  190. IF (IDIM.EQ.2.AND.IFOU.NE.1) THEN
  191. IF (IFOU.EQ.-2) THEN
  192. XLOC(1,1)=VELA(5)
  193. XLOC(2,1)=VELA(6)
  194. ELSEIF (IFOU.EQ.-1.OR.IFOU.EQ.-3.OR.IFOU.EQ.0) THEN
  195. XLOC(1,1)=VELA(8)
  196. XLOC(2,1)=VELA(9)
  197. c ELSEIF (IFOU.EQ.1) THEN
  198. c XLOC(1,1)=VELA(10)
  199. c XLOC(2,1)=VELA(11)
  200. ENDIF
  201. XLOC(1,2)=-XLOC(2,1)
  202. XLOC(2,2)=XLOC(1,1)
  203. cbp ELSEIF (IDIM.EQ.3) THEN
  204. ELSE
  205. XLOC(1,1)=VELA(10)
  206. XLOC(2,1)=VELA(11)
  207. XLOC(3,1)=VELA(12)
  208. XLOC(1,2)=VELA(13)
  209. XLOC(2,2)=VELA(14)
  210. XLOC(3,2)=VELA(15)
  211. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  212. ENDIF
  213.  
  214. C 2 - MATERIAU ANISOTROPE
  215. C =========================
  216. ELSEIF (MATE.EQ.'ANISOTRO') THEN
  217. C =====
  218. C 2.1 - Definition de la matrice de HOOKE dans les axes d'ANISOTROPIE
  219. C =====
  220. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  221. C= -> Contraintes planes et KCAS=1
  222. IF (IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  223. D11=VELA(1)
  224. D21=VELA(2)
  225. D22=VELA(3)
  226. D31=VELA(9)
  227. D32=VELA(10)
  228. D33=VELA(11)
  229. IF (D33.EQ.XZero) D33=D11*1.E-6
  230. D41=VELA(4)
  231. D42=VELA(5)
  232. D43=VELA(12)
  233. D44=VELA(6)
  234. D1HOOK(1,1)=D11-(D31*D31/D33)
  235. D1HOOK(2,1)=D21-(D31*D32/D33)
  236. D1HOOK(4,1)=D41-(D31*D43/D33)
  237. D1HOOK(1,2)=D1HOOK(2,1)
  238. D1HOOK(2,2)=D22-(D32*D32/D33)
  239. D1HOOK(4,2)=D42-(D32*D43/D33)
  240. D1HOOK(1,4)=D1HOOK(4,1)
  241. D1HOOK(2,4)=D1HOOK(4,2)
  242. D1HOOK(4,4)=D44-(D43*D43/D33)
  243. C= -> Contraintes planes et KCAS=2
  244. ELSEIF (IFOU.EQ.-2.AND.KCAS.EQ.2) THEN
  245. D1HOOK(1,1)=VELA(1)
  246. D1HOOK(2,1)=VELA(2)
  247. D1HOOK(3,1)=VELA(9)
  248. D1HOOK(4,1)=VELA(4)
  249. D1HOOK(1,2)=D1HOOK(2,1)
  250. D1HOOK(2,2)=VELA(3)
  251. D1HOOK(3,2)=VELA(10)
  252. D1HOOK(4,2)=VELA(5)
  253. D1HOOK(3,3)=VELA(11)
  254. D1HOOK(1,3)=D1HOOK(3,1)
  255. D1HOOK(2,3)=D1HOOK(3,2)
  256. D1HOOK(4,3)=VELA(12)
  257. D1HOOK(1,4)=D1HOOK(4,1)
  258. D1HOOK(2,4)=D1HOOK(4,2)
  259. D1HOOK(3,4)=D1HOOK(4,3)
  260. D1HOOK(4,4)=VELA(6)
  261. C= -> Deformations planes et Axisymetrie
  262. ELSEIF (IFOU.EQ.-1.OR.IFOU.EQ.-3.OR.IFOU.EQ.0) THEN
  263. D1HOOK(1,1)=VELA(1)
  264. D1HOOK(2,1)=VELA(2)
  265. D1HOOK(3,1)=VELA(4)
  266. D1HOOK(4,1)=VELA(7)
  267. D1HOOK(1,2)=D1HOOK(2,1)
  268. D1HOOK(2,2)=VELA(3)
  269. D1HOOK(3,2)=VELA(5)
  270. D1HOOK(4,2)=VELA(8)
  271. D1HOOK(1,3)=D1HOOK(3,1)
  272. D1HOOK(2,3)=D1HOOK(3,2)
  273. D1HOOK(3,3)=VELA(6)
  274. D1HOOK(4,3)=VELA(9)
  275. D1HOOK(1,4)=D1HOOK(4,1)
  276. D1HOOK(2,4)=D1HOOK(4,2)
  277. D1HOOK(3,4)=D1HOOK(4,3)
  278. D1HOOK(4,4)=VELA(10)
  279. C= -> Serie de Fourier et 3D
  280. ELSEIF (IFOU.EQ.1.OR.IFOU.EQ.2) THEN
  281. D1HOOK(1,1)=VELA(1)
  282. D1HOOK(2,1)=VELA(2)
  283. D1HOOK(3,1)=VELA(4)
  284. D1HOOK(4,1)=VELA(7)
  285. D1HOOK(1,2)=D1HOOK(2,1)
  286. D1HOOK(2,2)=VELA(3)
  287. D1HOOK(3,2)=VELA(5)
  288. D1HOOK(4,2)=VELA(8)
  289. D1HOOK(1,3)=D1HOOK(3,1)
  290. D1HOOK(2,3)=D1HOOK(3,2)
  291. D1HOOK(3,3)=VELA(6)
  292. D1HOOK(4,3)=VELA(9)
  293. D1HOOK(1,4)=D1HOOK(4,1)
  294. D1HOOK(2,4)=D1HOOK(4,2)
  295. D1HOOK(3,4)=D1HOOK(4,3)
  296. D1HOOK(4,4)=VELA(10)
  297. IF (IFOU.EQ.1) THEN
  298. D1HOOK(5,5)=VELA(11)
  299. D1HOOK(6,5)=VELA(12)
  300. D1HOOK(5,6)=D1HOOK(6,5)
  301. D1HOOK(6,6)=VELA(13)
  302. ELSE
  303. D1HOOK(5,1)=VELA(11)
  304. D1HOOK(6,1)=VELA(16)
  305. D1HOOK(5,2)=VELA(12)
  306. D1HOOK(6,2)=VELA(17)
  307. D1HOOK(5,3)=VELA(13)
  308. D1HOOK(6,3)=VELA(18)
  309. D1HOOK(5,4)=VELA(14)
  310. D1HOOK(6,4)=VELA(19)
  311. D1HOOK(1,5)=D1HOOK(5,1)
  312. D1HOOK(2,5)=D1HOOK(5,2)
  313. D1HOOK(3,5)=D1HOOK(5,3)
  314. D1HOOK(4,5)=D1HOOK(5,4)
  315. D1HOOK(5,5)=VELA(15)
  316. D1HOOK(6,5)=VELA(20)
  317. D1HOOK(1,6)=D1HOOK(6,1)
  318. D1HOOK(2,6)=D1HOOK(6,2)
  319. D1HOOK(3,6)=D1HOOK(6,3)
  320. D1HOOK(4,6)=D1HOOK(6,4)
  321. D1HOOK(5,6)=D1HOOK(6,5)
  322. D1HOOK(6,6)=VELA(21)
  323. ENDIF
  324. C= -> Cas non prevus actuellement
  325. ELSE
  326. IRET=0
  327. RETURN
  328. ENDIF
  329. C =====
  330. C 2.2 - Definition de la matrice de passage des axes d'ANSIOTROPIE
  331. C aux axes LOCAUX au point considere (dimensions 2 et 3)
  332. C =====
  333. IF (IDIM.EQ.2) THEN
  334. IF (IFOU.EQ.-2) THEN
  335. XLOC(1,1)=VELA(7)
  336. XLOC(2,1)=VELA(8)
  337. ELSEIF (IFOU.EQ.-3.OR.IFOU.EQ.-1.OR.IFOU.EQ.0) THEN
  338. XLOC(1,1)=VELA(11)
  339. XLOC(2,1)=VELA(12)
  340. ELSEIF (IFOU.EQ.1) THEN
  341. XLOC(1,1)=VELA(14)
  342. XLOC(2,1)=VELA(15)
  343. ENDIF
  344. XLOC(1,2)=-XLOC(2,1)
  345. XLOC(2,2)=XLOC(1,1)
  346. ELSEIF (IDIM.EQ.3) THEN
  347. XLOC(1,1)=VELA(22)
  348. XLOC(2,1)=VELA(23)
  349. XLOC(3,1)=VELA(24)
  350. XLOC(1,2)=VELA(25)
  351. XLOC(2,2)=VELA(26)
  352. XLOC(3,2)=VELA(27)
  353. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  354. ENDIF
  355.  
  356. C 3 - MATERIAU UNIDIRECTIONNEL
  357. C ==============================
  358. ELSEIF (MATE.EQ.'UNIDIREC') THEN
  359. C =====
  360. C 3.1 - Definition de la matrice de HOOKE dans les axes d'ANISOTROPIE
  361. C =====
  362. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  363. D1HOOK(1,1)=VELA(1)
  364. C =====
  365. C 3.2 - Definition de la matrice de passage des axes d'ANISOTROPIE
  366. C aux axes LOCAUX au point considere (dimensions 2 et 3)
  367. C =====
  368. IF (IDIM.EQ.2) THEN
  369. XLOC(1,1)=VELA(2)
  370. XLOC(2,1)=VELA(3)
  371. XLOC(1,2)=-XLOC(2,1)
  372. XLOC(2,2)=XLOC(1,1)
  373. ELSEIF (IDIM.EQ.3) THEN
  374. XLOC(1,1)=VELA(2)
  375. XLOC(2,1)=VELA(3)
  376. XLOC(3,1)=VELA(4)
  377. XLOC(1,2)=VELA(5)
  378. XLOC(2,2)=VELA(6)
  379. XLOC(3,2)=VELA(7)
  380. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  381. ENDIF
  382.  
  383. C 4 - MATERIAUX NON PREVUS
  384. C ==========================
  385. ELSE
  386. IRET=0
  387. RETURN
  388. ENDIF
  389.  
  390. C 5 - DEFINITION DE LA MATRICE DE PASSAGE DES AXES
  391. C D'ORTHO/ANISOTROPIE AUX AXES DU REPERE GLOBAL
  392. C ===================================================
  393. IF (IDIM.EQ.1) RETURN
  394.  
  395. CALL ZERO(XGLOB,3,3)
  396. CALL ZERO(ROTHOO,LHOOK,LHOOK)
  397. IDIM2=IDIM
  398. IF(IFOU.EQ.1) IDIM2=3
  399. DO j=1,IDIM
  400. DO k=1,IDIM2
  401. cc=XZero
  402. DO i=1,IDIM
  403. cc=cc+TXR(j,i)*XLOC(i,k)
  404. ENDDO
  405. XGLOB(k,j)=cc
  406. ENDDO
  407. ENDDO
  408. cbp en 2D Fourier, vrai TXR = [TXR(2x2) [0] ; [0] 1]
  409. IF (IFOU.EQ.1) THEN
  410. XGLOB(1,3)=XLOC(3,1)
  411. XGLOB(2,3)=XLOC(3,2)
  412. XGLOB(3,3)=XLOC(3,3)
  413. ENDIF
  414. IF (IDIM.EQ.2.AND.IFOU.NE.1) THEN
  415. ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1)
  416. ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1)
  417. ROTHOO(4,1)=XDeux*XGLOB(1,1)*XGLOB(2,1)
  418. ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2)
  419. ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2)
  420. ROTHOO(4,2)=XDeux*XGLOB(1,2)*XGLOB(2,2)
  421. ROTHOO(3,3)=XUn
  422. ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2)
  423. ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2)
  424. ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2)
  425. c IF (IFOU.EQ.1) THEN
  426. c ROTHOO(5,5)=XGLOB(1,1)
  427. c ROTHOO(6,5)=XGLOB(2,1)
  428. c ROTHOO(5,6)=XGLOB(1,2)
  429. c ROTHOO(6,6)=XGLOB(2,2)
  430. c ENDIF
  431. cbp ELSEIF (IDIM.EQ.3) THEN
  432. ELSE
  433. IF (LHOOK.LT.6) THEN
  434. IRET=0
  435. RETURN
  436. ENDIF
  437. DO i=1,3
  438. ROTHOO(1,i)=XGLOB(1,i)*XGLOB(1,i)
  439. ROTHOO(2,i)=XGLOB(2,i)*XGLOB(2,i)
  440. ROTHOO(3,i)=XGLOB(3,i)*XGLOB(3,i)
  441. ROTHOO(i,4)=XGLOB(i,1)*XGLOB(i,2)
  442. ROTHOO(i,5)=XGLOB(i,2)*XGLOB(i,3)
  443. ROTHOO(i,6)=XGLOB(i,1)*XGLOB(i,3)
  444. ROTHOO(4,i)=XDeux*XGLOB(1,i)*XGLOB(2,i)
  445. ROTHOO(5,i)=XDeux*XGLOB(2,i)*XGLOB(3,i)
  446. ROTHOO(6,i)=XDeux*XGLOB(1,i)*XGLOB(3,i)
  447. ENDDO
  448. DO j=4,6
  449. j1=j-3
  450. j2=j1+1
  451. IF (j2.GT.3) j2=j2-3
  452. DO i=4,6
  453. i1=i-3
  454. i2=i1+1
  455. IF (i2.GT.3) i2=i2-3
  456. ROTHOO(i,j)= XGLOB(i1,j1)*XGLOB(i2,j2)
  457. . +XGLOB(i1,j2)*XGLOB(i2,j1)
  458. ENDDO
  459. ENDDO
  460. DO i=1,6
  461. AA=ROTHOO(6,i)
  462. ROTHOO(6,i)=ROTHOO(5,i)
  463. ROTHOO(5,i)=AA
  464. ENDDO
  465. DO i=1,6
  466. AA=ROTHOO(i,6)
  467. ROTHOO(i,6)=ROTHOO(i,5)
  468. ROTHOO(i,5)=AA
  469. ENDDO
  470. ENDIF
  471.  
  472. C 6 - CALCUL DE LA MATRICE DE HOOKE DANS LE REPERE GLOBAL
  473. C =========================================================
  474. CALL PRODT(DDHOOK,D1HOOK,ROTHOO,LHOOK,LHOOK)
  475.  
  476. RETURN
  477. END
  478.  
  479.  
  480.  
  481.  
  482.  

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