Télécharger tensi3.eso

Retour à la liste

Numérotation des lignes :

tensi3
  1. C TENSI3 SOURCE PV090527 24/06/12 21:15:10 11940
  2. SUBROUTINE TENSI3 (SIGMA,DSIGT,DEPST,YUNG,XNU,BETR,
  3. . VECX,VECY,VECZ,ANGLE,NBVECD,
  4. . XLTR,EPTR,XLTT,EPTT,EPRS,RT,OUVER,
  5. . SIGFIN,DEPSP,KERRE)
  6. C
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9.  
  10. -INC PPARAM
  11. -INC CCOPTIO
  12. C
  13. DIMENSION SIGMA(*),DSIGT(*),DEPST(*),SIGFIN(*),
  14. . CONTR(6),DCONT(6),DDEFT(6),CONFIN(6),DCONPR(6),
  15. . DSIGS(6),DCONS(6),DEPSP(*),DDEFP(6),DDEFS(6),DEFP(6),
  16. . VECX(*),VECY(*),VECZ(*),JECHA(3),JECHAN(3),
  17. . XLTR(*),EPTR(*),XLTT(*),EPTT(*),EPRS(*),RT(*),CISA(3),
  18. . OUVER(*),DEFPR(3),DEFRF(3),ET(3),JECRO(3),KOMPR(3),
  19. . ROTATS(6,6),TATORS(6,6),ROTATE(6,6),TATORE(6,6),
  20. . AAA(6,6),DDP(6,6)
  21. C
  22. C INITIALISATION
  23. C
  24. GAMA = 0.D0
  25. RFE=1.D-8
  26. RFS=1.D-8
  27. UNIT=0.0174532925199432957692D0
  28. CALL ZDANUL(DEFP,6)
  29. CALL ZDANUL(DEPSP,6)
  30. CALL ZDANUL(DDEFP,6)
  31. DO 9 I=1,3
  32. JECRO(I)=0
  33. KOMPR(I)=0
  34. JECHA(I)=0
  35. JECHAN(I)=0
  36. DEFRF(I)=0.D0
  37. DEFPR(I)=0.D0
  38. DEFP(I)=OUVER(I)
  39. 9 CONTINUE
  40. C
  41. IF(IIMPI.EQ.9) THEN
  42. WRITE(IOIMP,1000)
  43. WRITE(IOIMP,1001) (SIGMA(I),I=1,6)
  44. WRITE(IOIMP,1002) (DSIGT(I),I=1,6)
  45. WRITE(IOIMP,1003) (DEPST(I),I=1,6)
  46. WRITE(IOIMP,1004) (VECX(I),I=1,3)
  47. WRITE(IOIMP,1005) (VECY(I),I=1,3)
  48. WRITE(IOIMP,1006) (VECZ(I),I=1,3)
  49. WRITE(IOIMP,1007) (XLTR(I),I=1,3)
  50. WRITE(IOIMP,1008) (EPTR(I),I=1,3)
  51. WRITE(IOIMP,1009) (XLTT(I),I=1,3)
  52. WRITE(IOIMP,1010) (EPTT(I),I=1,3)
  53. WRITE(IOIMP,1011) (EPRS(I),I=1,3)
  54. WRITE(IOIMP,1012) (RT(I),I=1,3)
  55. WRITE(IOIMP,1013) (OUVER(I),I=1,3)
  56. WRITE(IOIMP,1014) YUNG,XNU,BETR,(ANGLE/UNIT),NBVECD
  57. ENDIF
  58. C
  59. C **********************************************************************
  60. C ******************* CAS DE NB DE VECT PROPRES DONNES = 0 *************
  61. C **********************************************************************
  62. C
  63. IF(NBVECD.EQ.0) THEN
  64. C
  65. CALL CLCRIT (SIGMA,DSIGT,RT,DEFP,DDEFP,DEFRF,NBVECD,KOMPR,
  66. . JECRO,KRITER,KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3)
  67. C
  68. IF(IIMPI.EQ.9) THEN
  69. WRITE(IOIMP,1015) KRITER
  70. WRITE(IOIMP,1016) KRITC1,KRITC2,KRITC3
  71. WRITE(IOIMP,1017) KRITE1,KRITE2,KRITE3
  72. ENDIF
  73. C
  74. IF(KRITER.NE.0) THEN
  75. CALL CLGAMA (SIGMA,DSIGT,RT,DEFP,DDEFP,DEFRF,NBVECD,
  76. . KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3,GAMA,
  77. . YUNG,KOMPR,KERRE)
  78. IF(KERRE.NE.0) RETURN
  79. C
  80. IF(IIMPI.EQ.9) THEN
  81. WRITE(IOIMP,1018) GAMA
  82. ENDIF
  83. ENDIF
  84. C
  85. IF(KRITER.EQ.0.OR.GAMA.GE.1) THEN
  86. C
  87. C CAS DU COMPORTEMENT ELASTIQUE LINEAIRE
  88. C
  89. DO 10 I=1,6
  90. SIGFIN(I)=SIGMA(I)+DSIGT(I)
  91. DEPSP(I)=0.D0
  92. 10 CONTINUE
  93. C
  94. IF(IIMPI.EQ.9) THEN
  95. WRITE(IOIMP,1030) (SIGFIN(I),I=1,6)
  96. WRITE(IOIMP,1031) (DEPSP(I),I=1,6)
  97. ENDIF
  98. C
  99. RETURN
  100. C
  101. ELSE
  102. C
  103. DO 20 I=1,6
  104. SIGMA(I)=SIGMA(I)+(GAMA*DSIGT(I))
  105. DSIGT(I)=(1.D0-GAMA)*DSIGT(I)
  106. DEPST(I)=(1.D0-GAMA)*DEPST(I)
  107. 20 CONTINUE
  108. C
  109. IF(IIMPI.EQ.9) THEN
  110. WRITE(IOIMP,1001) (SIGMA(I),I=1,6)
  111. WRITE(IOIMP,1002) (DSIGT(I),I=1,6)
  112. WRITE(IOIMP,1003) (DEPST(I),I=1,6)
  113. ENDIF
  114. C
  115. C POUR CALCULER VECZ
  116. C
  117. IANGLE=0
  118. CALL CLVECA (SIGMA,VECZ,ANGLE,IANGLE)
  119. C
  120. IF(IIMPI.EQ.9) THEN
  121. WRITE(IOIMP,1006) (VECZ(I),I=1,3)
  122. ENDIF
  123. C
  124. NBVECD=1
  125. ENDIF
  126. ENDIF
  127. C
  128. C **********************************************************************
  129. C ******************* CAS DE NB DE VECT PROPRES DONNES = 1 *************
  130. C **********************************************************************
  131. C
  132. IF(NBVECD.EQ.1) THEN
  133. C
  134. C INITIALISATION
  135. C
  136. ITERA=0
  137. IANGLE=0
  138. ANGLE=0.D0
  139. ET(1)=YUNG
  140. ET(2)=YUNG
  141. DEFPR(1)=0.D0
  142. DEFPR(2)=0.D0
  143. JECRO(3)=0
  144. KOMPR(3)=0
  145. JECHA(3)=0
  146. JECHAN(3)=0
  147. NJECHA=0
  148. C
  149. C POUR CALCULER VECX ET VECY
  150. C
  151. CALL CLREP(VECX,VECY,VECZ,ANGLE,IANGLE)
  152. C
  153. IF(IIMPI.EQ.9) THEN
  154. WRITE(IOIMP,1004) (VECX(I),I=1,3)
  155. WRITE(IOIMP,1005) (VECY(I),I=1,3)
  156. ENDIF
  157. C
  158. C POUR SE METTRE DANS LE REPERE DE LA FISSURE
  159. C
  160. CALL ROTA3D(ROTATS,TATORS,ROTATE,TATORE,VECX,VECY,VECZ,ANGLE)
  161. C
  162. IF(IIMPI.EQ.9) THEN
  163. WRITE(IOIMP,*) 'TATORS'
  164. WRITE(IOIMP,999) ((TATORS(I,J),J=1,6),I=1,6)
  165. WRITE(IOIMP,*) 'TATORE'
  166. WRITE(IOIMP,999) ((TATORE(I,J),J=1,6),I=1,6)
  167. ENDIF
  168. C
  169. CALL MULMAT(CONTR,TATORS,SIGMA,6,1,6)
  170. CALL MULMAT(DCONT,TATORS,DSIGT,6,1,6)
  171. CALL MULMAT(DDEFT,TATORE,DEPST,6,1,6)
  172. C
  173. IF(IIMPI.EQ.9) THEN
  174. WRITE(IOIMP,1020) (CONTR(I),I=1,6)
  175. WRITE(IOIMP,1021) (DCONT(I),I=1,6)
  176. WRITE(IOIMP,1022) (DDEFT(I),I=1,6)
  177. C
  178. ENERG=DSIGT(1)*DEPST(1)+DSIGT(2)*DEPST(2)+DSIGT(3)*DEPST(3)+
  179. . DSIGT(4)*DEPST(4)+DSIGT(5)*DEPST(5)+DSIGT(6)*DEPST(6)
  180. ENERR=DCONT(1)*DDEFT(1)+DCONT(2)*DDEFT(2)+DCONT(3)*DDEFT(3)+
  181. . DCONT(4)*DDEFT(4)+DCONT(5)*DDEFT(5)+DCONT(6)*DDEFT(6)
  182. DELEN=ENERG-ENERR
  183. WRITE(IOIMP,*) 'ENERG =',ENERG,' ENERR =',ENERR
  184. WRITE(IOIMP,*) 'DELEN =',DELEN
  185. ENDIF
  186. C
  187. 111 CALL CLDETA(YUNG,XNU,RT,XLTR,XLTT,EPTT,EPTR,EPRS,OUVER,
  188. . CONTR,DDEFT,DCONPR)
  189. C
  190. 11 CALL CLMODU(YUNG,CONTR(3),DEFP(3),DCONPR(3),DDEFT(3),RT(3),
  191. . XLTR(3),XLTT(3),EPTT(3),EPTR(3),EPRS(3),
  192. . ET(3),DEFRF(3),DEFPR(3),JECRO(3),KOMPR(3),JECHA(3),
  193. . KERRE)
  194. IF(KERRE.NE.0) RETURN
  195. C
  196. IF(IIMPI.EQ.9) THEN
  197. WRITE(IOIMP,1023) (ET(I),I=1,3)
  198. WRITE(IOIMP,1024) (DEFRF(I),I=1,3)
  199. WRITE(IOIMP,1026) (DEFPR(I),I=1,3)
  200. WRITE(IOIMP,1025) (JECRO(I),I=1,3)
  201. WRITE(IOIMP,1035) (KOMPR(I),I=1,3)
  202. WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  203. ENDIF
  204. C
  205. CALL CLCISA(ET,YUNG,XNU,BETR,XLTR,CISA)
  206. C
  207. IF(IIMPI.EQ.9) THEN
  208. WRITE(IOIMP,1027) (CISA(I),I=1,3)
  209. ENDIF
  210. C
  211. C CALCUL DU MODE DE DOMAGE
  212. C
  213. IF(ET(1).NE.YUNG) KRITER=KRITER+1
  214. IF(ET(2).NE.YUNG) KRITER=KRITER+2
  215. IF(ET(3).NE.YUNG) KRITER=KRITER+4
  216. C
  217. IF(IIMPI.EQ.9) THEN
  218. WRITE(IOIMP,1015) KRITER
  219. ENDIF
  220. C
  221. C CALCUL DES MATRICES : A ET D'
  222. C
  223. CALL CLOUVE(AAA,YUNG,XNU,ET,CISA,KRITER,KERRE)
  224. CALL CLENDO(DDP,YUNG,XNU,ET,CISA,KRITER,KERRE)
  225. IF(KERRE.NE.0) RETURN
  226. C
  227. IF(IIMPI.EQ.9) THEN
  228. WRITE(IOIMP,*) 'AAA'
  229. WRITE(IOIMP,999) ((AAA(I,J),J=1,6),I=1,6)
  230. WRITE(IOIMP,*) 'DDP'
  231. WRITE(IOIMP,999) ((DDP(I,J),J=1,6),I=1,6)
  232. ENDIF
  233. C
  234. C CALCUL DU DELTA DEFORMATION PLASTIQUE (DDEFS)
  235. C ET DU DELTA CONTRAINTE SOLUTION (DCONS)
  236. C
  237. CALL MULMAT(DDEFS,AAA,DDEFT,6,1,6)
  238. CALL MULMAT(DCONS,DDP,DDEFT,6,1,6)
  239. C
  240. IF(IIMPI.EQ.9) THEN
  241. WRITE(IOIMP,1028) (DDEFS(I),I=1,6)
  242. WRITE(IOIMP,1029) (DCONS(I),I=1,6)
  243. ENDIF
  244. C
  245. IF(NJECHA.LE.2) THEN
  246. JECHAN(3)=JECHA(3)
  247. IF(JECHA(3).EQ.1) THEN
  248. IF((ABS(DDEFS(3))).GT.RFE) THEN
  249. IF(DDEFS(3).LT.0.D0) JECHAN(3)=2
  250. ELSE
  251. IF((DCONS(3).LT.0.D0.AND.(ABS(DCONS(3))).GT.RFS).
  252. . AND.JECRO(3).NE.1) JECHAN(3)=2
  253. ENDIF
  254. ENDIF
  255. IF(JECHA(3).EQ.2) THEN
  256. IF((ABS(DDEFS(3))).GT.RFE) THEN
  257. IF(DDEFS(3).GT.0.D0) JECHAN(3)=1
  258. ELSE
  259. IF((DCONS(3).GT.0.D0.AND.(ABS(DCONS(3))).GT.RFS).
  260. . OR.JECRO(3).EQ.1) JECHAN(3)=1
  261. ENDIF
  262. ENDIF
  263. IF(IIMPI.EQ.9) WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  264. IF(JECHAN(3).NE.JECHA(3)) THEN
  265. NJECHA=NJECHA+1
  266. JECHA(3)=JECHAN(3)
  267. IF(IIMPI.EQ.9) WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  268. GO TO 11
  269. ENDIF
  270. ENDIF
  271. C
  272. IF(ET(3).EQ.0.D0) THEN
  273. CONTR(3)=0.D0
  274. DCONS(3)=0.D0
  275. ENDIF
  276. C
  277. CALL CLCRIT (CONTR,DCONS,RT,DEFP,DDEFS,DEFRF,NBVECD,KOMPR,
  278. . JECRO,KRITER,KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3)
  279. C
  280. IF(IIMPI.EQ.9) THEN
  281. WRITE(IOIMP,1015) KRITER
  282. WRITE(IOIMP,1016) KRITC1,KRITC2,KRITC3
  283. WRITE(IOIMP,1017) KRITE1,KRITE2,KRITE3
  284. ENDIF
  285. C
  286. IF(KRITER.NE.0) THEN
  287. CALL CLGAMA (CONTR,DCONS,RT,DEFP,DDEFS,DEFRF,NBVECD,
  288. . KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3,GAMA,
  289. . YUNG,KOMPR,KERRE)
  290. IF(KERRE.NE.0) RETURN
  291. C
  292. IF(IIMPI.EQ.9) THEN
  293. WRITE(IOIMP,1018) GAMA
  294. ENDIF
  295. ENDIF
  296. C
  297. IF(KRITER.EQ.0.OR.GAMA.GE.1) THEN
  298. C
  299. C CAS DE L ECOULEMENT SELON LA DIRECTION Z SEULE
  300. C
  301. DO 30 I=1,6
  302. CONFIN(I)=CONTR(I)+DCONS(I)
  303. DEFP(I)=DEFP(I)+DDEFS(I)
  304. DDEFP(I)=DDEFP(I)+DDEFS(I)
  305. 30 CONTINUE
  306. C
  307. IF(IIMPI.EQ.9) THEN
  308. WRITE(IOIMP,1032) (CONFIN(I),I=1,6)
  309. WRITE(IOIMP,1033) (DEFP(I),I=1,6)
  310. WRITE(IOIMP,1034) (DDEFP(I),I=1,6)
  311. ENDIF
  312. C
  313. C POUR SE METTRE DANS LE REPERE GLOBAL
  314. C
  315. CALL MULMAT(SIGFIN,ROTATS,CONFIN,6,1,6)
  316. CALL MULMAT(DEPSP,ROTATE,DDEFP,6,1,6)
  317. C
  318. C MISE A JOUR DES VARIABLES INTERNES
  319. C
  320. OUVER(1)=DEFP(1)
  321. OUVER(2)=DEFP(2)
  322. OUVER(3)=DEFP(3)
  323. IF(JECRO(3).EQ.1.AND.RT(3).GT.CONFIN(3)) RT(3)=CONFIN(3)
  324. IF(RT(3).LT.0.D0) RT(3)=0.D0
  325. C
  326. IF(IIMPI.EQ.9) THEN
  327. WRITE(IOIMP,1030) (SIGFIN(I),I=1,6)
  328. WRITE(IOIMP,1031) (DEPSP(I),I=1,6)
  329. ENDIF
  330. C
  331. RETURN
  332. C
  333. ELSE
  334. C
  335. DO 40 I=1,6
  336. DCONS(I)=GAMA*DCONS(I)
  337. DDEFS(I)=GAMA*DDEFS(I)
  338. DCONT(I)=(1.D0-GAMA)*DCONT(I)
  339. DDEFT(I)=(1.D0-GAMA)*DDEFT(I)
  340. CONTR(I)=CONTR(I)+DCONS(I)
  341. DEFP(I)=DEFP(I)+DDEFS(I)
  342. DDEFP(I)=DDEFP(I)+DDEFS(I)
  343. 40 CONTINUE
  344. IF(JECRO(3).EQ.1.AND.RT(3).GT.CONTR(3)) RT(3)=CONTR(3)
  345. IF(RT(3).LT.0.D0) RT(3)=0.D0
  346. C
  347. IF(IIMPI.EQ.9) THEN
  348. WRITE(IOIMP,1012) (RT(I),I=1,3)
  349. WRITE(IOIMP,1028) (DDEFS(I),I=1,6)
  350. WRITE(IOIMP,1029) (DCONS(I),I=1,6)
  351. WRITE(IOIMP,1020) (CONTR(I),I=1,6)
  352. WRITE(IOIMP,1021) (DCONT(I),I=1,6)
  353. WRITE(IOIMP,1022) (DDEFT(I),I=1,6)
  354. WRITE(IOIMP,1033) (DEFP(I),I=1,6)
  355. WRITE(IOIMP,1034) (DDEFP(I),I=1,6)
  356. ENDIF
  357. C
  358. GO TO (1,1,1,2,1,1,1),KRITER
  359. KERRE=465
  360. RETURN
  361. C
  362. 2 IF (ITERA.LE.10) THEN
  363. ITERA=ITERA+1
  364. JECRO(3)=0
  365. KOMPR(3)=0
  366. JECHA(3)=0
  367. JECHAN(3)=0
  368. NJECHA=0
  369. GO TO 111
  370. ELSE
  371. KERRE=466
  372. RETURN
  373. ENDIF
  374. C
  375. C POUR SE METTRE DANS LE REPERE GLOBAL
  376. C
  377. 1 CALL MULMAT(SIGMA,ROTATS,CONTR,6,1,6)
  378. CALL MULMAT(DSIGT,ROTATS,DCONT,6,1,6)
  379. CALL MULMAT(DEPST,ROTATS,DDEFT,6,1,6)
  380. CALL MULMAT(DEPSP,ROTATS,DDEFP,6,1,6)
  381. C
  382. IF(IIMPI.EQ.9) THEN
  383. WRITE(IOIMP,1001) (SIGMA(I),I=1,6)
  384. WRITE(IOIMP,1002) (DSIGT(I),I=1,6)
  385. WRITE(IOIMP,1003) (DEPST(I),I=1,6)
  386. WRITE(IOIMP,1031) (DEPSP(I),I=1,6)
  387. ENDIF
  388. C
  389. C POUR CALCULER L ANGLE
  390. C
  391. IANGLE=2
  392. CALL CLVECA (CONTR,VECZ,ANGLE,IANGLE)
  393. C
  394. IF(IIMPI.EQ.9) THEN
  395. WRITE(IOIMP,1019) ANGLE/UNIT
  396. ENDIF
  397. C
  398. NBVECD=2
  399. ENDIF
  400. ENDIF
  401. C
  402. C **********************************************************************
  403. C ******************* CAS DE NB DE VECT PROPRES DONNES = 2 *************
  404. C **********************************************************************
  405. C
  406. IF(NBVECD.EQ.2) THEN
  407. C
  408. C INITIALISATION
  409. C
  410. ITERB=0
  411. NJECHA=0
  412. DO 49 I=1,3
  413. JECRO(I)=0
  414. KOMPR(I)=0
  415. JECHA(I)=0
  416. JECHAN(I)=0
  417. 49 CONTINUE
  418. C
  419. C POUR SE METTRE DANS LE REPERE DE LA FISSURE
  420. C
  421. CALL ROTA3D(ROTATS,TATORS,ROTATE,TATORE,VECX,VECY,VECZ,ANGLE)
  422. C
  423. IF(IIMPI.EQ.9) THEN
  424. WRITE(IOIMP,*) 'TATORS'
  425. WRITE(IOIMP,999) ((TATORS(I,J),J=1,6),I=1,6)
  426. WRITE(IOIMP,*) 'TATORE'
  427. WRITE(IOIMP,999) ((TATORE(I,J),J=1,6),I=1,6)
  428. ENDIF
  429. C
  430. CALL MULMAT(CONTR,TATORS,SIGMA,6,1,6)
  431. CALL MULMAT(DCONT,TATORS,DSIGT,6,1,6)
  432. CALL MULMAT(DDEFT,TATORE,DEPST,6,1,6)
  433. C
  434. IF(IIMPI.EQ.9) THEN
  435. WRITE(IOIMP,1020) (CONTR(I),I=1,6)
  436. WRITE(IOIMP,1021) (DCONT(I),I=1,6)
  437. WRITE(IOIMP,1022) (DDEFT(I),I=1,6)
  438. C
  439. ENERG=DSIGT(1)*DEPST(1)+DSIGT(2)*DEPST(2)+DSIGT(3)*DEPST(3)+
  440. . DSIGT(4)*DEPST(4)+DSIGT(5)*DEPST(5)+DSIGT(6)*DEPST(6)
  441. ENERR=DCONT(1)*DDEFT(1)+DCONT(2)*DDEFT(2)+DCONT(3)*DDEFT(3)+
  442. . DCONT(4)*DDEFT(4)+DCONT(5)*DDEFT(5)+DCONT(6)*DDEFT(6)
  443. DELEN=ENERG-ENERR
  444. WRITE(IOIMP,*) 'ENERG =',ENERG,' ENERR =',ENERR
  445. WRITE(IOIMP,*) 'DELEN =',DELEN
  446. ENDIF
  447. C
  448. 222 CALL CLDETA(YUNG,XNU,RT,XLTR,XLTT,EPTT,EPTR,EPRS,OUVER,
  449. . CONTR,DDEFT,DCONPR)
  450. C
  451. 22 DO 50 I=1,3
  452. CALL CLMODU(YUNG,CONTR(I),DEFP(I),DCONPR(I),DDEFT(I),RT(I),
  453. . XLTR(I),XLTT(I),EPTT(I),EPTR(I),EPRS(I),
  454. . ET(I),DEFRF(I),DEFPR(I),JECRO(I),KOMPR(I),JECHA(I),
  455. . KERRE)
  456. IF(KERRE.NE.0) RETURN
  457. 50 CONTINUE
  458. C
  459. IF(IIMPI.EQ.9) THEN
  460. WRITE(IOIMP,1023) (ET(I),I=1,3)
  461. WRITE(IOIMP,1024) (DEFRF(I),I=1,3)
  462. WRITE(IOIMP,1026) (DEFPR(I),I=1,3)
  463. WRITE(IOIMP,1025) (JECRO(I),I=1,3)
  464. WRITE(IOIMP,1035) (KOMPR(I),I=1,3)
  465. WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  466. ENDIF
  467. C
  468. CALL CLCISA(ET,YUNG,XNU,BETR,XLTR,CISA)
  469. C
  470. IF(IIMPI.EQ.9) THEN
  471. WRITE(IOIMP,1027) (CISA(I),I=1,3)
  472. ENDIF
  473. C
  474. C CALCUL DU MODE DE DOMAGE
  475. C
  476. IF(ET(1).NE.YUNG) KRITER=KRITER+1
  477. IF(ET(2).NE.YUNG) KRITER=KRITER+2
  478. IF(ET(3).NE.YUNG) KRITER=KRITER+4
  479. C
  480. IF(IIMPI.EQ.9) THEN
  481. WRITE(IOIMP,1015) KRITER
  482. ENDIF
  483. C
  484. C CALCUL DES MATRICES : A ET D'
  485. C
  486. CALL CLOUVE(AAA,YUNG,XNU,ET,CISA,KRITER,KERRE)
  487. CALL CLENDO(DDP,YUNG,XNU,ET,CISA,KRITER,KERRE)
  488. IF(KERRE.NE.0) RETURN
  489. C
  490. IF(IIMPI.EQ.9) THEN
  491. WRITE(IOIMP,*) 'AAA'
  492. WRITE(IOIMP,999) ((AAA(I,J),J=1,6),I=1,6)
  493. WRITE(IOIMP,*) 'DDP'
  494. WRITE(IOIMP,999) ((DDP(I,J),J=1,6),I=1,6)
  495. ENDIF
  496. C
  497. C CALCUL DU DELTA DEFORMATION PLASTIQUE (DDEFS)
  498. C ET DU DELTA CONTRAINTE SOLUTION (DCONS)
  499. C
  500. CALL MULMAT(DDEFS,AAA,DDEFT,6,1,6)
  501. CALL MULMAT(DCONS,DDP,DDEFT,6,1,6)
  502. C
  503. IF(IIMPI.EQ.9) THEN
  504. WRITE(IOIMP,1028) (DDEFS(I),I=1,6)
  505. WRITE(IOIMP,1029) (DCONS(I),I=1,6)
  506. ENDIF
  507. C
  508. IF(NJECHA.LE.8) THEN
  509. DO 51 I=1,3
  510. JECHAN(I)=JECHA(I)
  511. IF(JECHA(I).EQ.1) THEN
  512. IF((ABS(DDEFS(I))).GT.RFE) THEN
  513. IF(DDEFS(I).LT.0.D0) JECHAN(I)=2
  514. ELSE
  515. IF((DCONS(I).LT.0.D0.AND.(ABS(DCONS(I))).GT.RFS).
  516. . AND.JECRO(I).NE.1) JECHAN(I)=2
  517. ENDIF
  518. ENDIF
  519. IF(JECHA(I).EQ.2) THEN
  520. IF((ABS(DDEFS(I))).GT.RFE) THEN
  521. IF(DDEFS(I).GT.0.D0) JECHAN(I)=1
  522. ELSE
  523. IF((DCONS(I).GT.0.D0.AND.(ABS(DCONS(I))).GT.RFS).
  524. . OR.JECRO(I).EQ.1) JECHAN(I)=1
  525. ENDIF
  526. ENDIF
  527. 51 CONTINUE
  528. IF(IIMPI.EQ.9) WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  529. IF(JECHAN(1).NE.JECHA(1).OR.JECHAN(2).NE.JECHA(2).OR.
  530. . JECHAN(3).NE.JECHA(3)) THEN
  531. NJECHA=NJECHA+1
  532. DO 52 I=1,3
  533. JECHA(I)=JECHAN(I)
  534. 52 CONTINUE
  535. IF(IIMPI.EQ.9) WRITE(IOIMP,1036) (JECHA(I),I=1,3)
  536. GO TO 22
  537. ENDIF
  538. ENDIF
  539. C
  540. DO 53 I=1,3
  541. IF(ET(I).EQ.0.D0) THEN
  542. CONTR(I)=0.D0
  543. DCONS(I)=0.D0
  544. ENDIF
  545. 53 CONTINUE
  546. C
  547. CALL CLCRIT (CONTR,DCONS,RT,DEFP,DDEFS,DEFRF,NBVECD,KOMPR,
  548. . JECRO,KRITER,KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3)
  549. C
  550. IF(IIMPI.EQ.9) THEN
  551. WRITE(IOIMP,1015) KRITER
  552. WRITE(IOIMP,1016) KRITC1,KRITC2,KRITC3
  553. WRITE(IOIMP,1017) KRITE1,KRITE2,KRITE3
  554. ENDIF
  555. C
  556. IF(KRITER.NE.0) THEN
  557. CALL CLGAMA (CONTR,DCONS,RT,DEFP,DDEFS,DEFRF,NBVECD,
  558. . KRITC1,KRITC2,KRITC3,KRITE1,KRITE2,KRITE3,GAMA,
  559. . YUNG,KOMPR,KERRE)
  560. IF(KERRE.NE.0) RETURN
  561. C
  562. IF(IIMPI.EQ.9) THEN
  563. WRITE(IOIMP,1018) GAMA
  564. ENDIF
  565. ENDIF
  566. C
  567. IF(KRITER.EQ.0.OR.GAMA.GE.1) THEN
  568. C
  569. C CAS DE L ECOULEMENT SANS DIFFICULTE
  570. C
  571. DO 60 I=1,6
  572. CONFIN(I)=CONTR(I)+DCONS(I)
  573. DEFP(I)=DEFP(I)+DDEFS(I)
  574. DDEFP(I)=DDEFP(I)+DDEFS(I)
  575. 60 CONTINUE
  576. C
  577. IF(IIMPI.EQ.9) THEN
  578. WRITE(IOIMP,1032) (CONFIN(I),I=1,6)
  579. WRITE(IOIMP,1033) (DEFP(I),I=1,6)
  580. WRITE(IOIMP,1034) (DDEFP(I),I=1,6)
  581. ENDIF
  582. C
  583. C POUR SE METTRE DANS LE REPERE GLOBAL
  584. C
  585. CALL MULMAT(SIGFIN,ROTATS,CONFIN,6,1,6)
  586. CALL MULMAT(DEPSP,ROTATE,DDEFP,6,1,6)
  587. C
  588. IF(IIMPI.EQ.9) THEN
  589. WRITE(IOIMP,1030) (SIGFIN(I),I=1,6)
  590. WRITE(IOIMP,1031) (DEPSP(I),I=1,6)
  591. ENDIF
  592. C
  593. C MISE A JOUR DES VARIABLES INTERNES
  594. C
  595. DO 70 I=1,3
  596. OUVER(I)=DEFP(I)
  597. IF(JECRO(I).EQ.1.AND.RT(I).GT.CONFIN(I)) RT(I)=CONFIN(I)
  598. IF(RT(I).LT.0.D0) RT(I)=0.D0
  599. 70 CONTINUE
  600. RETURN
  601. C
  602. ELSE
  603. C
  604. DO 80 I=1,6
  605. DCONS(I)=GAMA*DCONS(I)
  606. DDEFS(I)=GAMA*DDEFS(I)
  607. DCONT(I)=(1.D0-GAMA)*DCONT(I)
  608. DDEFT(I)=(1.D0-GAMA)*DDEFT(I)
  609. CONTR(I)=CONTR(I)+DCONS(I)
  610. DEFP(I)=DEFP(I)+DDEFS(I)
  611. DDEFP(I)=DDEFP(I)+DDEFS(I)
  612. 80 CONTINUE
  613. C
  614. DO 90 I=1,3
  615. IF(JECRO(I).EQ.1.AND.RT(I).GT.CONTR(I)) RT(I)=CONTR(I)
  616. IF(RT(I).LT.0.D0) RT(I)=0.D0
  617. 90 CONTINUE
  618. C
  619. IF(IIMPI.EQ.9) THEN
  620. WRITE(IOIMP,1012) (RT(I),I=1,3)
  621. WRITE(IOIMP,1028) (DDEFS(I),I=1,6)
  622. WRITE(IOIMP,1029) (DCONS(I),I=1,6)
  623. WRITE(IOIMP,1020) (CONTR(I),I=1,6)
  624. WRITE(IOIMP,1021) (DCONT(I),I=1,6)
  625. WRITE(IOIMP,1022) (DDEFT(I),I=1,6)
  626. WRITE(IOIMP,1033) (DEFP(I),I=1,6)
  627. WRITE(IOIMP,1034) (DDEFP(I),I=1,6)
  628. ENDIF
  629. C
  630. IF (ITERB.LE.15) THEN
  631. ITERB=ITERB+1
  632. NJECHA=0
  633. DO 91 I=1,3
  634. JECRO(I)=0
  635. KOMPR(I)=0
  636. JECHA(I)=0
  637. JECHAN(I)=0
  638. 91 CONTINUE
  639. GO TO 222
  640. ELSE
  641. KERRE=467
  642. RETURN
  643. ENDIF
  644. ENDIF
  645. ENDIF
  646. C
  647. 999 FORMAT(6(1X,1PE12.5))
  648. 1000 FORMAT(1X,'ETAT INITIAL AU DEBUT DE L ECOULEMENT')
  649. 1001 FORMAT(1X,'SIGMA =',6(1X,1PE12.5))
  650. 1002 FORMAT(1X,'DSIGT =',6(1X,1PE12.5))
  651. 1003 FORMAT(1X,'DEPST =',6(1X,1PE12.5))
  652. 1004 FORMAT(1X,'VECX =',3(1X,1PE12.5))
  653. 1005 FORMAT(1X,'VECY =',3(1X,1PE12.5))
  654. 1006 FORMAT(1X,'VECZ =',3(1X,1PE12.5))
  655. 1007 FORMAT(1X,'XLTR =',3(1X,1PE12.5))
  656. 1008 FORMAT(1X,'EPTR =',3(1X,1PE12.5))
  657. 1009 FORMAT(1X,'XLTT =',3(1X,1PE12.5))
  658. 1010 FORMAT(1X,'EPTT =',3(1X,1PE12.5))
  659. 1011 FORMAT(1X,'EPRS =',3(1X,1PE12.5))
  660. 1012 FORMAT(1X,'RT =',3(1X,1PE12.5))
  661. 1013 FORMAT(1X,'OUVER =',3(1X,1PE12.5))
  662. 1014 FORMAT(1X,'YUNG = ',1PE12.5,2X,'XNU = ',1PE12.5,2X,/,
  663. . 1X,'BETR = ',1PE12.5,2X,'ANGLE = ',1PE12.5,2X,
  664. . 'NBVECD= ',I3)
  665. 1015 FORMAT(1X,'KRITER= ',I3)
  666. 1016 FORMAT(1X,'KRITC1= ',I3,2X,'KRITC2= ',I3,2X,'KRITC3= ',I3)
  667. 1017 FORMAT(1X,'KRITE1= ',I3,2X,'KRITE2= ',I3,2X,'KRITE3= ',I3)
  668. 1018 FORMAT(1X,'GAMA = ',1PE12.5)
  669. 1019 FORMAT(1X,'ANGLE = ',1PE12.5)
  670. 1020 FORMAT(1X,'CONTR =',6(1X,1PE12.5))
  671. 1021 FORMAT(1X,'DCONT =',6(1X,1PE12.5))
  672. 1022 FORMAT(1X,'DDEFT =',6(1X,1PE12.5))
  673. 1023 FORMAT(1X,'ET =',3(1X,1PE12.5))
  674. 1024 FORMAT(1X,'DEFRF =',3(1X,1PE12.5))
  675. 1025 FORMAT(1X,'JECRO =',3(1X,I3))
  676. 1026 FORMAT(1X,'DEFPR =',3(1X,1PE12.5))
  677. 1027 FORMAT(1X,'CISA =',3(1X,1PE12.5))
  678. 1028 FORMAT(1X,'DDEFS =',6(1X,1PE12.5))
  679. 1029 FORMAT(1X,'DCONS =',6(1X,1PE12.5))
  680. 1030 FORMAT(1X,'SIGFIN=',6(1X,1PE12.5))
  681. 1031 FORMAT(1X,'DEPSP =',6(1X,1PE12.5))
  682. 1032 FORMAT(1X,'CONFIN=',6(1X,1PE12.5))
  683. 1033 FORMAT(1X,'DEFP =',6(1X,1PE12.5))
  684. 1034 FORMAT(1X,'DDEFP =',6(1X,1PE12.5))
  685. 1035 FORMAT(1X,'KOMPR =',3(1X,I3))
  686. 1036 FORMAT(1X,'JECHA =',3(1X,I3))
  687. C
  688. END
  689.  
  690.  
  691.  
  692.  

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