Télécharger maxwel.eso

Retour à la liste

Numérotation des lignes :

  1. C MAXWEL SOURCE GOUNAND 14/05/28 21:15:09 8056
  2. SUBROUTINE MAXWEL(WRK0,WRK1,WRK5,WR12,MFR,
  3. 1 IB,IGAU,MELE,NCHAIN,KERRE,DT,CMATE,NWA,TEMP0)
  4. *
  5. *==============================================================
  6. * chaine de Maxwell
  7. *==============================================================
  8. *
  9. * entrees
  10. *
  11. * WRK0
  12. * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
  13. *
  14. * WRK1
  15. * SIG0(NSTRS) = CONTR. AU DEBUT DU PAS D'INTEGRATION
  16. * DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES
  17. * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  18. * XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  19. *
  20. * WRK5
  21. * EPINO(NSTRS) = DEFORMATION INELASTIQUE AU DEBUT DU PAS D'INTEGRATION
  22. *
  23. * WRK12
  24. * EMi(2,NWA(i+1)) i=0 a 8
  25. * = EVOLUTION DU MODUE D'YOUNG DE LA BRANCHE i
  26. * SMi(NSTRS) i=1 a 8
  27. * = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  28. *
  29. * IB = NUMERO DE L'ELEMENT
  30. * IGAU = NUMERO DU POINT DE GAUSS
  31. * MELE = NUMERO DE L'ELEMENT FINI (TYPE)
  32. * NCHAIN = NOMBRE DE BRANCHE DU MODELE DE MAXWELL
  33. * DT = INCREMENT DE TEMPS
  34. * NWA = DIMENSION DES EVOLUTIONS EMi
  35. * TEMP0 = TEMPS COURANT
  36. *
  37.  
  38. * sorties
  39. *
  40. * WRK1
  41. * SIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION
  42. * DEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS
  43. * D'INTEGRATION
  44. *
  45. * WRK5
  46. * EPINF(NSTRS) = DEFORMATION INELASTIQUE A LA FIN DU PAS D'INTEGRATION
  47. *
  48. *
  49. *
  50. *
  51. *
  52. *==============================================================
  53. *
  54. IMPLICIT INTEGER(I-N)
  55. IMPLICIT REAL*8(A-H,O-Z)
  56. -INC CCOPTIO
  57. *
  58. SEGMENT WRK0
  59. REAL*8 XMAT(NCXMAT)
  60. ENDSEGMENT
  61. *
  62. SEGMENT WRK1
  63. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  64. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  65. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  66. ENDSEGMENT
  67. *
  68. SEGMENT WRK5
  69. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  70. ENDSEGMENT
  71. *
  72. SEGMENT WR12
  73. REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
  74. REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
  75. REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
  76. REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
  77. REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
  78. REAL*8 SM8(NSTRS)
  79. ENDSEGMENT
  80. *
  81. CHARACTER*8 CMATE
  82.  
  83. DIMENSION NWA(9)
  84. NCXMAT=XMAT(/1)
  85. NVARI=VAR0(/1)
  86. NSTRS=SIG0(/1)
  87. ANU=XMAT(2)
  88. UNANU=1.D0-ANU
  89. TPS1=TEMP0
  90. TPS2=TEMP0+DT
  91. SE1=0.D0
  92. SE2=0.D0
  93.  
  94. *
  95. * Formulation UNIDIMENSIONNELLE
  96. * ou Formulation UNIDIRECTIONNELLE
  97. *
  98. IF (MFR.EQ.27.OR.
  99. & ((MFR.EQ.1.OR.MFR.EQ.33).AND.( CMATE.EQ.'UNIDIREC'))) THEN
  100.  
  101. CONS=1.D0
  102. IF(MFR.EQ.27) XSECT=XCAR(1)
  103. IF(MFR.EQ.1.OR.MFR.EQ.33) XSECT=1.D0
  104.  
  105.  
  106. CALL MODFIC(TPS1,TPS2,0,WR12,WRK0,
  107. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  108. FLUA=EXP(-TR*DT)
  109. SM0(1)=SM0(1)/XSECT
  110. SM0(1)=SM0(1)*FLUA+CONS*EFIC*DEPST(1)
  111. SM0(1)=SM0(1)*XSECT
  112. SIGF(1)=SM0(1)
  113. SE1=SE1+E1
  114. SE2=SE2+E2
  115.  
  116. CALL MODFIC(TPS1,TPS2,1,WR12,WRK0,
  117. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  118. FLUA=EXP(-TR*DT)
  119. SM1(1)=SM1(1)/XSECT
  120. SM1(1)=SM1(1)*FLUA+CONS*EFIC*DEPST(1)
  121. SM1(1)=SM1(1)*XSECT
  122. SIGF(1)=SIGF(1)+SM1(1)
  123. SE1=SE1+E1
  124. SE2=SE2+E2
  125.  
  126.  
  127.  
  128. CALL MODFIC(TPS1,TPS2,2,WR12,WRK0,
  129. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  130. FLUA=EXP(-TR*DT)
  131. SM2(1)=SM2(1)/XSECT
  132. SM2(1)=SM2(1)*FLUA+CONS*EFIC*DEPST(1)
  133. SM2(1)=SM2(1)*XSECT
  134. SIGF(1)=SIGF(1)+SM2(1)
  135. SE1=SE1+E1
  136. SE2=SE2+E2
  137.  
  138. CALL MODFIC(TPS1,TPS2,3,WR12,WRK0,
  139. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  140. FLUA=EXP(-TR*DT)
  141. SM3(1)=SM3(1)/XSECT
  142. SM3(1)=SM3(1)*FLUA+CONS*EFIC*DEPST(1)
  143. SM3(1)=SM3(1)*XSECT
  144. SIGF(1)=SIGF(1)+SM3(1)
  145. SE1=SE1+E1
  146. SE2=SE2+E2
  147.  
  148. CALL MODFIC(TPS1,TPS2,4,WR12,WRK0,
  149. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  150. FLUA=EXP(-TR*DT)
  151. SM4(1)=SM4(1)/XSECT
  152. SM4(1)=SM4(1)*FLUA+CONS*EFIC*DEPST(1)
  153. SM4(1)=SM4(1)*XSECT
  154. SIGF(1)=SIGF(1)+SM4(1)
  155. SE1=SE1+E1
  156. SE2=SE2+E2
  157.  
  158. IF (NCHAIN-1.GE.5) THEN
  159. CALL MODFIC(TPS1,TPS2,5,WR12,WRK0,
  160. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  161. FLUA=EXP(-TR*DT)
  162. SM5(1)=SM5(1)/XSECT
  163. SM5(1)=SM5(1)*FLUA+CONS*EFIC*DEPST(1)
  164. SM5(1)=SM5(1)*XSECT
  165. SIGF(1)=SIGF(1)+SM5(1)
  166. SE1=SE1+E1
  167. SE2=SE2+E2
  168.  
  169. ELSE IF (NCHAIN-1.GE.6) THEN
  170. CALL MODFIC(TPS1,TPS2,6,WR12,WRK0,
  171. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  172. FLUA=EXP(-TR*DT)
  173. SM6(1)=SM6(1)/XSECT
  174. SM6(1)=SM6(1)*FLUA+CONS*EFIC*DEPST(1)
  175. SM6(1)=SM6(1)*XSECT
  176. SIGF(1)=SIGF(1)+SM6(1)
  177. SE1=SE1+E1
  178. SE2=SE2+E2
  179.  
  180. ELSE IF (NCHAIN-1.GE.7) THEN
  181. CALL MODFIC(TPS1,TPS2,7,WR12,WRK0,
  182. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  183. FLUA=EXP(-TR*DT)
  184. SM7(1)=SM7(1)/XSECT
  185. SM7(1)=SM7(1)*FLUA+CONS*EFIC*DEPST(1)
  186. SM7(1)=SM7(1)*XSECT
  187. SIGF(1)=SIGF(1)+SM7(1)
  188. SE1=SE1+E1
  189. SE2=SE2+E2
  190.  
  191. ELSE IF (NCHAIN-1.GE.8) THEN
  192. CALL MODFIC(TPS1,TPS2,8,WR12,WRK0,
  193. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  194. FLUA=EXP(-TR*DT)
  195. SM8(1)=SM8(1)/XSECT
  196. SM8(1)=SM8(1)*FLUA+CONS*EFIC*DEPST(1)
  197. SM8(1)=SM8(1)*XSECT
  198. SIGF(1)=SIGF(1)+SM8(1)
  199. SE1=SE1+E1
  200. SE2=SE2+E2
  201. ENDIF
  202.  
  203. DEFP(1)=DEPST(1)-((SIGF(1))/(XSECT*SE2))
  204. 1 +((SIG0(1))/(XSECT*SE1))
  205. EPINF(1)=EPIN0(1)-DEFP(1)
  206. DO I=1,NVARI
  207. VARF(I)=VAR0(I)
  208. END DO
  209. GOTO 999
  210.  
  211. * Formulation TRIDIMENSIONNELLE MASSIVE
  212. *
  213. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN
  214. CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
  215. DO 10 M=0,NCHAIN-1
  216. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  217. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  218. SE1=SE1+E1
  219. SE2=SE2+E2
  220. FLUA=EXP(-TR*DT)
  221. IF (M.EQ.0) THEN
  222. SM0(1)=SM0(1)*FLUA
  223. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  224. SM0(2)=SM0(2)*FLUA
  225. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  226. SM0(3)=SM0(3)*FLUA
  227. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  228. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  229. SM0(5)=SM0(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  230. SM0(6)=SM0(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  231. SIGF(1)=SM0(1)
  232. SIGF(2)=SM0(2)
  233. SIGF(3)=SM0(3)
  234. SIGF(4)=SM0(4)
  235. SIGF(5)=SM0(5)
  236. SIGF(6)=SM0(6)
  237. ELSE IF (M.EQ.1) THEN
  238. SM1(1)=SM1(1)*FLUA
  239. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  240. SM1(2)=SM1(2)*FLUA
  241. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  242. SM1(3)=SM1(3)*FLUA
  243. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  244. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  245. SM1(5)=SM1(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  246. SM1(6)=SM1(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  247. SIGF(1)=SIGF(1)+SM1(1)
  248. SIGF(2)=SIGF(2)+SM1(2)
  249. SIGF(3)=SIGF(3)+SM1(3)
  250. SIGF(4)=SIGF(4)+SM1(4)
  251. SIGF(5)=SIGF(5)+SM1(5)
  252. SIGF(6)=SIGF(6)+SM1(6)
  253. ELSE IF (M.EQ.2) THEN
  254. SM2(1)=SM2(1)*FLUA
  255. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  256. SM2(2)=SM2(2)*FLUA
  257. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  258. SM2(3)=SM2(3)*FLUA
  259. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  260. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  261. SM2(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  262. SM2(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  263. SIGF(1)=SIGF(1)+SM2(1)
  264. SIGF(2)=SIGF(2)+SM2(2)
  265. SIGF(3)=SIGF(3)+SM2(3)
  266. SIGF(4)=SIGF(4)+SM2(4)
  267. SIGF(5)=SIGF(5)+SM2(5)
  268. SIGF(6)=SIGF(6)+SM2(6)
  269. ELSE IF (M.EQ.3) THEN
  270. SM3(1)=SM3(1)*FLUA
  271. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  272. SM3(2)=SM3(2)*FLUA
  273. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  274. SM3(3)=SM3(3)*FLUA
  275. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  276. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  277. SM3(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  278. SM3(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  279. SIGF(1)=SIGF(1)+SM3(1)
  280. SIGF(2)=SIGF(2)+SM3(2)
  281. SIGF(3)=SIGF(3)+SM3(3)
  282. SIGF(4)=SIGF(4)+SM3(4)
  283. SIGF(5)=SIGF(5)+SM3(5)
  284. SIGF(6)=SIGF(6)+SM3(6)
  285. ELSE IF (M.EQ.4) THEN
  286. SM4(1)=SM4(1)*FLUA
  287. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  288. SM4(2)=SM4(2)*FLUA
  289. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  290. SM4(3)=SM4(3)*FLUA
  291. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  292. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  293. SM4(5)=SM4(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  294. SM4(6)=SM4(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  295. SIGF(1)=SIGF(1)+SM4(1)
  296. SIGF(2)=SIGF(2)+SM4(2)
  297. SIGF(3)=SIGF(3)+SM4(3)
  298. SIGF(4)=SIGF(4)+SM4(4)
  299. SIGF(5)=SIGF(5)+SM4(5)
  300. SIGF(6)=SIGF(6)+SM4(6)
  301. ELSE IF (M.EQ.5) THEN
  302. SM5(1)=SM5(1)*FLUA
  303. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  304. SM5(2)=SM5(2)*FLUA
  305. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  306. SM5(3)=SM5(3)*FLUA
  307. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  308. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  309. SM5(5)=SM5(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  310. SM5(6)=SM5(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  311. SIGF(1)=SIGF(1)+SM5(1)
  312. SIGF(2)=SIGF(2)+SM5(2)
  313. SIGF(3)=SIGF(3)+SM5(3)
  314. SIGF(4)=SIGF(4)+SM5(4)
  315. SIGF(5)=SIGF(5)+SM5(5)
  316. SIGF(6)=SIGF(6)+SM5(6)
  317. ELSE IF (M.EQ.6) THEN
  318. SM6(1)=SM6(1)*FLUA
  319. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  320. SM6(2)=SM6(2)*FLUA
  321. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  322. SM6(3)=SM6(3)*FLUA
  323. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  324. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  325. SM6(5)=SM6(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  326. SM6(6)=SM6(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  327. SIGF(1)=SIGF(1)+SM6(1)
  328. SIGF(2)=SIGF(2)+SM6(2)
  329. SIGF(3)=SIGF(3)+SM6(3)
  330. SIGF(4)=SIGF(4)+SM6(4)
  331. SIGF(5)=SIGF(5)+SM6(5)
  332. SIGF(6)=SIGF(6)+SM6(6)
  333. ELSE IF (M.EQ.7) THEN
  334. SM7(1)=SM7(1)*FLUA
  335. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  336. SM7(2)=SM7(2)*FLUA
  337. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  338. SM7(3)=SM7(3)*FLUA
  339. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  340. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  341. SM7(5)=SM7(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  342. SM7(6)=SM7(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  343. SIGF(1)=SIGF(1)+SM7(1)
  344. SIGF(2)=SIGF(2)+SM7(2)
  345. SIGF(3)=SIGF(3)+SM7(3)
  346. SIGF(4)=SIGF(4)+SM7(4)
  347. SIGF(5)=SIGF(5)+SM7(5)
  348. SIGF(6)=SIGF(6)+SM7(6)
  349. ELSE IF (M.EQ.8) THEN
  350. SM8(1)=SM8(1)*FLUA
  351. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  352. SM8(2)=SM8(2)*FLUA
  353. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  354. SM8(3)=SM8(3)*FLUA
  355. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  356. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  357. SM8(5)=SM8(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  358. SM8(6)=SM8(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  359. SIGF(1)=SIGF(1)+SM8(1)
  360. SIGF(2)=SIGF(2)+SM8(2)
  361. SIGF(3)=SIGF(3)+SM8(3)
  362. SIGF(4)=SIGF(4)+SM8(4)
  363. SIGF(5)=SIGF(5)+SM8(5)
  364. SIGF(6)=SIGF(6)+SM8(6)
  365. END IF
  366. 10 CONTINUE
  367.  
  368. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  369. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  370. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  371. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  372. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  373. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  374. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  375. DEFP(5)=DEPST(5)-(1+ANU)*(SIGF(5)/SE2-SIG0(5)/SE1)
  376. DEFP(6)=DEPST(6)-(1+ANU)*(SIGF(6)/SE2-SIG0(6)/SE1)
  377. DO I=1,NSTRS
  378. EPINF(I)=EPIN0(I)+DEFP(I)
  379. END DO
  380. GOTO 999
  381.  
  382.  
  383. *
  384. * Formulation DEFORMATIONS PLANES /AXISYMETRIQUE
  385. *
  386. ELSE IF ((IFOMOD.EQ.-1.AND.IFOUR.NE.-2).OR.
  387. & (IFOMOD.EQ.0.OR.IFOMOD.EQ.1)) THEN
  388. CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
  389. DO 20 M=0,NCHAIN-1
  390. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  391. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  392. SE1=SE1+E1
  393. SE2=SE2+E2
  394. FLUA=EXP(-TR*DT)
  395. IF (M.EQ.0) THEN
  396. SM0(1)=SM0(1)*FLUA
  397. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  398. SM0(2)=SM0(2)*FLUA
  399. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  400. SM0(3)=SM0(3)*FLUA
  401. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  402. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  403. SIGF(1)=SM0(1)
  404. SIGF(2)=SM0(2)
  405. SIGF(3)=SM0(3)
  406. SIGF(4)=SM0(4)
  407. ELSE IF (M.EQ.1) THEN
  408. SM1(1)=SM1(1)*FLUA
  409. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  410. SM1(2)=SM1(2)*FLUA
  411. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  412. SM1(3)=SM1(3)*FLUA
  413. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  414. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  415. SIGF(1)=SIGF(1)+SM1(1)
  416. SIGF(2)=SIGF(2)+SM1(2)
  417. SIGF(3)=SIGF(3)+SM1(3)
  418. SIGF(4)=SIGF(4)+SM1(4)
  419. ELSE IF (M.EQ.2) THEN
  420. SM2(1)=SM2(1)*FLUA
  421. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  422. SM2(2)=SM2(2)*FLUA
  423. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  424. SM2(3)=SM2(3)*FLUA
  425. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  426. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  427. SIGF(1)=SIGF(1)+SM2(1)
  428. SIGF(2)=SIGF(2)+SM2(2)
  429. SIGF(3)=SIGF(3)+SM2(3)
  430. SIGF(4)=SIGF(4)+SM2(4)
  431. ELSE IF (M.EQ.3) THEN
  432. SM3(1)=SM3(1)*FLUA
  433. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  434. SM3(2)=SM3(2)*FLUA
  435. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  436. SM3(3)=SM3(3)*FLUA
  437. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  438. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  439. SIGF(1)=SIGF(1)+SM3(1)
  440. SIGF(2)=SIGF(2)+SM3(2)
  441. SIGF(3)=SIGF(3)+SM3(3)
  442. SIGF(4)=SIGF(4)+SM3(4)
  443. ELSE IF (M.EQ.4) THEN
  444. SM4(1)=SM4(1)*FLUA
  445. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  446. SM4(2)=SM4(2)*FLUA
  447. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  448. SM4(3)=SM4(3)*FLUA
  449. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  450. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  451. SIGF(1)=SIGF(1)+SM4(1)
  452. SIGF(2)=SIGF(2)+SM4(2)
  453. SIGF(3)=SIGF(3)+SM4(3)
  454. SIGF(4)=SIGF(4)+SM4(4)
  455. ELSE IF (M.EQ.5) THEN
  456. SM5(1)=SM5(1)*FLUA
  457. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  458. SM5(2)=SM5(2)*FLUA
  459. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  460. SM5(3)=SM5(3)*FLUA
  461. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  462. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  463. SIGF(1)=SIGF(1)+SM5(1)
  464. SIGF(2)=SIGF(2)+SM5(2)
  465. SIGF(3)=SIGF(3)+SM5(3)
  466. SIGF(4)=SIGF(4)+SM5(4)
  467. ELSE IF (M.EQ.6) THEN
  468. SM6(1)=SM6(1)*FLUA
  469. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  470. SM6(2)=SM6(2)*FLUA
  471. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  472. SM6(3)=SM6(3)*FLUA
  473. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  474. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  475. SIGF(1)=SIGF(1)+SM6(1)
  476. SIGF(2)=SIGF(2)+SM6(2)
  477. SIGF(3)=SIGF(3)+SM6(3)
  478. SIGF(4)=SIGF(4)+SM6(4)
  479. ELSE IF (M.EQ.7) THEN
  480. SM7(1)=SM7(1)*FLUA
  481. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  482. SM7(2)=SM7(2)*FLUA
  483. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  484. SM7(3)=SM7(3)*FLUA
  485. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  486. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  487. SIGF(1)=SIGF(1)+SM7(1)
  488. SIGF(2)=SIGF(2)+SM7(2)
  489. SIGF(3)=SIGF(3)+SM7(3)
  490. SIGF(4)=SIGF(4)+SM7(4)
  491. ELSE IF (M.EQ.8) THEN
  492. SM8(1)=SM8(1)*FLUA
  493. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  494. SM8(2)=SM8(2)*FLUA
  495. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  496. SM8(3)=SM8(3)*FLUA
  497. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  498. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  499. SIGF(1)=SIGF(1)+SM8(1)
  500. SIGF(2)=SIGF(2)+SM8(2)
  501. SIGF(3)=SIGF(3)+SM8(3)
  502. SIGF(4)=SIGF(4)+SM8(4)
  503. END IF
  504. 20 CONTINUE
  505.  
  506. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  507. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  508. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  509. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  510. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  511. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  512. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  513. DO I=1,NSTRS
  514. EPINF(I)=EPIN0(I)+DEFP(I)
  515. END DO
  516. GOTO 999
  517.  
  518. *
  519. * Formulation CONTRAINTES PLANES
  520. *
  521. ELSE IF (IFOMOD.EQ.-1.AND.IFOUR.EQ.-2) THEN
  522. * CONS=1.D0/(UNANU*ANU)
  523. CONS=1.D0/(1.D0-(ANU*ANU))
  524. DO 30 M=0,NCHAIN-1
  525. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  526. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  527. SE1=SE1+E1
  528. SE2=SE2+E2
  529. FLUA=EXP(-TR*DT)
  530. IF (M.EQ.0) THEN
  531. SM0(1)=SM0(1)*FLUA
  532. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  533. SM0(2)=SM0(2)*FLUA
  534. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  535. SM0(3)=0.D0
  536. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  537. SIGF(1)=SM0(1)
  538. SIGF(2)=SM0(2)
  539. SIGF(3)=SM0(3)
  540. SIGF(4)=SM0(4)
  541. ELSE IF (M.EQ.1) THEN
  542. SM1(1)=SM1(1)*FLUA
  543. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  544. SM1(2)=SM1(2)*FLUA
  545. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  546. SM1(3)=0.D0
  547. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  548. SIGF(1)=SIGF(1)+SM1(1)
  549. SIGF(2)=SIGF(2)+SM1(2)
  550. SIGF(3)=SIGF(3)+SM1(3)
  551. SIGF(4)=SIGF(4)+SM1(4)
  552. ELSE IF (M.EQ.2) THEN
  553. SM2(1)=SM2(1)*FLUA
  554. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  555. SM2(2)=SM2(2)*FLUA
  556. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  557. SM2(3)=0.D0
  558. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  559. SIGF(1)=SIGF(1)+SM2(1)
  560. SIGF(2)=SIGF(2)+SM2(2)
  561. SIGF(3)=SIGF(3)+SM2(3)
  562. SIGF(4)=SIGF(4)+SM2(4)
  563. ELSE IF (M.EQ.3) THEN
  564. SM3(1)=SM3(1)*FLUA
  565. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  566. SM3(2)=SM3(2)*FLUA
  567. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  568. SM3(3)=0.D0
  569. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  570. SIGF(1)=SIGF(1)+SM3(1)
  571. SIGF(2)=SIGF(2)+SM3(2)
  572. SIGF(3)=SIGF(3)+SM3(3)
  573. SIGF(4)=SIGF(4)+SM3(4)
  574. ELSE IF (M.EQ.4) THEN
  575. SM4(1)=SM4(1)*FLUA
  576. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  577. SM4(2)=SM4(2)*FLUA
  578. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  579. SM4(3)=0.D0
  580. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  581. SIGF(1)=SIGF(1)+SM4(1)
  582. SIGF(2)=SIGF(2)+SM4(2)
  583. SIGF(3)=SIGF(3)+SM4(3)
  584. SIGF(4)=SIGF(4)+SM4(4)
  585. ELSE IF (M.EQ.5) THEN
  586. SM5(1)=SM5(1)*FLUA
  587. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  588. SM5(2)=SM5(2)*FLUA
  589. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  590. SM5(3)=0.D0
  591. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  592. SIGF(1)=SIGF(1)+SM5(1)
  593. SIGF(2)=SIGF(2)+SM5(2)
  594. SIGF(3)=SIGF(3)+SM5(3)
  595. SIGF(4)=SIGF(4)+SM5(4)
  596. ELSE IF (M.EQ.6) THEN
  597. SM6(1)=SM6(1)*FLUA
  598. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  599. SM6(2)=SM6(2)*FLUA
  600. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  601. SM6(3)=0.D0
  602. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  603. SIGF(1)=SIGF(1)+SM6(1)
  604. SIGF(2)=SIGF(2)+SM6(2)
  605. SIGF(3)=SIGF(3)+SM6(3)
  606. SIGF(4)=SIGF(4)+SM6(4)
  607. ELSE IF (M.EQ.7) THEN
  608. SM7(1)=SM7(1)*FLUA
  609. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  610. SM7(2)=SM7(2)*FLUA
  611. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  612. SM7(3)=0.D0
  613. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  614. SIGF(1)=SIGF(1)+SM7(1)
  615. SIGF(2)=SIGF(2)+SM7(2)
  616. SIGF(3)=SIGF(3)+SM7(3)
  617. SIGF(4)=SIGF(4)+SM7(4)
  618. ELSE IF (M.EQ.8) THEN
  619. SM8(1)=SM8(1)*FLUA
  620. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  621. SM8(2)=SM8(2)*FLUA
  622. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  623. SM8(3)=0.D0
  624. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  625. SIGF(1)=SIGF(1)+SM8(1)
  626. SIGF(2)=SIGF(2)+SM8(2)
  627. SIGF(3)=SIGF(3)+SM8(3)
  628. SIGF(4)=SIGF(4)+SM8(4)
  629. END IF
  630. 30 CONTINUE
  631.  
  632. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  633. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  634. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  635. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  636. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  637. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  638. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  639. DO I=1,NSTRS
  640. EPINF(I)=EPIN0(I)+DEFP(I)
  641. END DO
  642. GOTO 999
  643.  
  644. ENDIF
  645. GOTO 999
  646.  
  647.  
  648. 999 RETURN
  649. END
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  

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