Télécharger tensi3.eso

Retour à la liste

Numérotation des lignes :

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

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