Télécharger cmaxwe.eso

Retour à la liste

Numérotation des lignes :

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

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