Télécharger cmaxwe.eso

Retour à la liste

Numérotation des lignes :

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

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