Télécharger dp.eso

Retour à la liste

Numérotation des lignes :

dp
  1. C DP SOURCE CHAT 05/01/12 22:54:43 5004
  2. SUBROUTINE DP(SIG,DSIG,YOUN,ANU,RT1,RT2,RDP,ADP,HDP,
  3. 1 XLAM1,XLAM2,XLAM3,IDAM,ANG,IFISSU,EPPLDP,EPPLTR,ALPHA,KERRE)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. -INC PPARAM
  8. -INC CCOPTIO
  9. DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3),
  10. 1 A(3),B(3),IDAM(3),EPC(3),EPDP(3),SSI(3),SI(3),EPC1(3),
  11. 1 EPPLDP(3),EPPLTR(3)
  12. ITER=0
  13. SIREF=1.E-6*YOUN
  14. IF(IFISSU.EQ.1) BETA=ALPHA
  15. IF(IFISSU.EQ.0) BETA=1.D0
  16. DO 10 ITYP=1,3
  17. EPPLTR(ITYP)=0.D0
  18. EPPLDP(ITYP)=0.D0
  19. 10 EPDP(ITYP)=0.D0
  20. ISOR=0
  21. XT=0.D0
  22. IF(IIMPI.EQ.9) WRITE(IOIMP,9999)
  23. 9999 FORMAT(1X,'DP ECOULEMENT SUIVANT DRUCKER',/)
  24. 9998 FORMAT(1X,'DP ',I4,'ITERATIONS INTERNES',/)
  25. C-----------------------------------------------
  26. C ON SEPLACE DANS LE REPERE DE FISSURATION
  27. C-----------------------------------------------
  28. C
  29. CALL CHREP(SIG,SFG,ANG)
  30. CALL CHREP(DSIG,DSFG,ANG)
  31. C
  32. C------------------------------------------------
  33. C ECOULEMENT SUIVANT LE DRUCKER SEUL
  34. C------------------------------------------------
  35. C----------------------------------------------
  36. C DEFINITION D UNE CONTRAINTE DE REFERENCE
  37. C SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR
  38. C ALORS SIGMA=0
  39. C----------------------------------------------
  40. C
  41. RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))
  42. IF(SIREF.LT.RMAX) GOTO 29
  43. 19 DO 20 ITYP=1,3
  44. 20 SIG(ITYP)=SIG(ITYP)+DSIG(ITYP)
  45. CALL NORME(SIG,DL3)
  46. DL3=DL3/YOUN*10.D0
  47. XLAM3=XLAM3+DL3
  48. RDP=0.D0
  49. HDP=0.D0
  50. ADP=0.D0
  51. CALL CPHOIN(SIG,EPPLDP,YOUN,ANU)
  52. DO 30 ITYP=1,3
  53. IDAM(ITYP)=0
  54. DSIG(ITYP)=0.D0
  55. 30 SIG(ITYP)=0.D0
  56. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  57. RETURN
  58. C
  59. C-----------------------------------------------------
  60. C ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES
  61. C-----------------------------------------------------
  62. C
  63. C 29 CALL GDP(SIG,DSIG,RDP,ADP,GAMDP)
  64. C IF(GAMDP.GT.1.E-8) THEN
  65. C IDAM(3)=0
  66. C RETURN
  67. C
  68. 29 CALL SIJ(SFG,SI,SIETOI)
  69. CALL EPSDP(SI,SIETOI,ADP,EPC)
  70. CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA)
  71. CALL SCAL(SSI,DSFG,VAL)
  72. CALL NORME(DSFG,VA1)
  73. CALL NORME(SSI,VA2)
  74. RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP)))
  75. IF(VA1.EQ.0.D0) THEN
  76. IDAM(3)=0
  77. RETURN
  78. ENDIF
  79. X=VAL/VA1/VA2
  80. IF(X.GE.1.D0) THEN
  81. X=1.D0
  82. GOTO 31
  83. ENDIF
  84. X=RMIN/SQRT(1.0001D0-X*X)/VA1/8.D0
  85. IF(X.GT.1.D0) X=1.D0
  86. C
  87. C----------------------------------------------------------
  88. C ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE
  89. C----------------------------------------------------------
  90. C
  91. 31 ITER=ITER+1
  92. IF(ITER.GT.201) GOTO 653
  93. DO 45 ITYP=1,3
  94. DSGG(ITYP)=DSFG(ITYP)*X
  95. A(ITYP)=SFG(ITYP)+DSGG(ITYP)
  96. 45 B(ITYP)=-SSI(ITYP)
  97. CALL SCAL2(EPC,SSI,VAL)
  98. VAL=VAL-HDP
  99. IF(VAL.LT.0.D0) THEN
  100. KERRE=459
  101. RETURN
  102. ENDIF
  103. ITER=ITER+1
  104. 653 IF(ITER.GT.200) THEN
  105. KERRE=460
  106. RETURN
  107. ENDIF
  108. CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST)
  109. IF(ITEST.EQ.1) THEN
  110. X=X/2.D0
  111. GOTO 31
  112. ENDIF
  113. DO 50 ITYP=1,3
  114. 50 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  115. CALL SIJ(SGG,SI,SIETOI)
  116. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  117. CALL SCAL(EPC,EPC1,VAL)
  118. CALL NORME(EPC,VA1)
  119. CALL NORME(EPC1,VA2)
  120. CO=VAL/VA1/VA2
  121. IF(CO.LT.0.99) THEN
  122. X=X/2.D0
  123. GOTO 31
  124. ENDIF
  125. IF(DL3.LT.0.D0) THEN
  126. IDAM(3)=0
  127. DL3=0.D0
  128. ISOR=1
  129. GOTO 525
  130. ENDIF
  131. RD=RDP-DL3*HDP
  132. IF(RD.LT.SIREF) GOTO 19
  133. IF(IFISSU.EQ.1) GOTO 100
  134. CALL CTRSF(SGG,RT1,VAL)
  135. IF(VAL.LE.0.D0) GOTO 500
  136. C
  137. C-------------------------------------------------
  138. C CAS OU LA LIMITE EN TRACTION EST DEPASSEE
  139. C MAIS ON NE CONNAIT PAS LE REPERE PRINCIPAL
  140. C DE FISSURATION
  141. C-------------------------------------------------
  142. IFISSU=1
  143. CALL CANG(SGG,ANG,YOUN)
  144. DO 55 ITYP=1,3
  145. 55 DSGG(ITYP)=SFG(ITYP)
  146. CALL CHREP(DSGG,SFG,ANG)
  147. CALL CHREP(DSIG,DSFG,ANG)
  148. CALL SIJ(SFG,SI,SIETOI)
  149. CALL EPSDP(SI,SIETOI,ADP,EPC)
  150. CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA)
  151. DO 60 ITYP=1,3
  152. DSGG(ITYP)=DSFG(ITYP)*X
  153. A(ITYP)=SFG(ITYP)+DSGG(ITYP)
  154. 60 B(ITYP)=-SSI(ITYP)
  155. CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST)
  156. DO 65 ITYP=1,3
  157. 65 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  158. CALL CTRAF(SGG(1),RT1,VCTR1)
  159. IF(VCTR1.LE.0.D0) GOTO 80
  160. C
  161. C------------------------------------
  162. C ON ENDOMMAGE LA TRACTION 1
  163. C------------------------------------
  164. C
  165. ISOR=1
  166. IF(DSFG(1).NE.0.D0) THEN
  167. E=(RT1-SFG(1))/DSFG(1)
  168. F=SSI(1)/DSFG(1)
  169. DO 70 ITYP=1,3
  170. A(ITYP)=SFG(ITYP)+E*DSFG(ITYP)
  171. 70 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  172. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  173. DO 69 ITYP=1,3
  174. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  175. 69 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  176. CALL SIJ(SGG,SI,SIETOI)
  177. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  178. CALL SCAL(EPC,EPC1,VAL)
  179. CALL NORME(EPC,VA1)
  180. CALL NORME(EPC1,VA2)
  181. CO1=VAL/VA1/VA2
  182. CALL SIJ(DSGG,SI,SIETOI)
  183. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  184. CALL SCAL(EPC,EPC1,VAL)
  185. CALL NORME(EPC,VA1)
  186. CALL NORME(EPC1,VA2)
  187. CO2=VAL/VA1/VA2
  188. XIN1=E+F*DL31
  189. XIN2=E+F*DL32
  190. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  191. X=XIN1
  192. DL3=DL31
  193. GOTO 71
  194. ENDIF
  195. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  196. X=XIN2
  197. DL3=DL32
  198. GOTO 71
  199. ENDIF
  200. IF(IIMPI.EQ.9) WRITE(IOIMP,10101)
  201. 10101 FORMAT(1X,'ERREUR DP TRACTION 1 SF',/)
  202. DL3=DL31
  203. X=XIN1
  204. 71 DO 72 ITYP=1,3
  205. 72 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  206. IDAM(1)=1
  207. IDAM(2)=0
  208. IDAM(3)=1
  209. GOTO 80
  210. ENDIF
  211. DL3=(-RT1+SFG(1))/SSI(1)
  212. RD=RDP-DL3*HDP
  213. IF(RD.LT.SIREF) GOTO 19
  214. DO 74 ITYP=1,3
  215. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  216. 74 B(ITYP)=DSFG(ITYP)
  217. CALL XDP(A,B,RD,ADP,X,ITEST)
  218. DO 76 ITYP=1,3
  219. 76 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  220. IDAM(1)=1
  221. IDAM(2)=0
  222. IDAM(3)=1
  223. C
  224. C------------------------------------
  225. C ON ENDOMMAGE LA TRACTION 2
  226. C------------------------------------
  227. C
  228. 80 CALL CTRAF(SGG(2),RT2,VCTR2)
  229. IF(VCTR2.LE.0.D0) GOTO 91
  230. ISOR=1
  231. IF(DSFG(2).NE.0.D0) THEN
  232. E=(RT2-SFG(2))/DSFG(2)
  233. F=SSI(2)/DSFG(2)
  234. DO 82 ITYP=1,3
  235. A(ITYP)=SFG(ITYP)+E*DSFG(ITYP)
  236. 82 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  237. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  238. DO 81 ITYP=1,3
  239. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  240. 81 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  241. CALL SIJ(SGG,SI,SIETOI)
  242. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  243. CALL SCAL(EPC,EPC1,VAL)
  244. CALL NORME(EPC,VA1)
  245. CALL NORME(EPC1,VA2)
  246. CO1=VAL/VA1/VA2
  247. CALL SIJ(DSGG,SI,SIETOI)
  248. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  249. CALL SCAL(EPC,EPC1,VAL)
  250. CALL NORME(EPC,VA1)
  251. CALL NORME(EPC1,VA2)
  252. CO2=VAL/VA1/VA2
  253. XIN1=E+F*DL31
  254. XIN2=E+F*DL32
  255. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  256. X=XIN1
  257. DL3=DL31
  258. GOTO 83
  259. ENDIF
  260. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  261. X=XIN2
  262. DL3=DL32
  263. GOTO 83
  264. ENDIF
  265. IF(IIMPI.EQ.9) WRITE(IOIMP,20202)
  266. 20202 FORMAT(1X,'ERREUR DP TRACTION 2 SF',/)
  267. DL3=DL31
  268. X=XIN1
  269. 83 DO 84 ITYP=1,3
  270. 84 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  271. IDAM(1)=0
  272. IDAM(2)=1
  273. IDAM(3)=1
  274. GOTO 91
  275. ENDIF
  276. DL3=(-RT2+SFG(2))/SSI(2)
  277. RD=RDP-DL3*HDP
  278. IF(RD.LT.SIREF) GOTO 19
  279. DO 86 ITYP=1,3
  280. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  281. 86 B(ITYP)=DSFG(ITYP)
  282. CALL XDP(A,B,RD,ADP,X,ITEST)
  283. DO 88 ITYP=1,3
  284. 88 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  285. IDAM(1)=0
  286. IDAM(2)=1
  287. IDAM(3)=1
  288. 91 RDP=RDP-DL3*HDP
  289. IF(RDP.LT.SIREF) THEN
  290. ANG=0.D0
  291. IFISSU=0
  292. GOTO 19
  293. ENDIF
  294. XT=XT+X
  295. DO 90 ITYP=1,3
  296. SFG(ITYP)=SGG(ITYP)
  297. 90 DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP)
  298. DSGG(1)=0.D0
  299. DSGG(2)=0.D0
  300. DSGG(3)=(1.D0-ALPHA)*DSFG(3)
  301. CALL CPHOIN(DSGG,SGG,YOUN,ANU)
  302. CALL CHREP(SGG,EPPLTR,-ANG)
  303. DO 92 ITYP=1,3
  304. 92 SGG(ITYP)=DL3*EPC(ITYP)
  305. CALL CHREP(SGG,EPPLDP,-ANG)
  306. DO 94 ITYP=1,3
  307. 94 EPPLDP(ITYP)=EPPLDP(ITYP)+EPDP(ITYP)
  308. CALL CHREP(SFG,SIG,-ANG)
  309. DSFG(3)=ALPHA*DSFG(3)
  310. CALL CHREP(DSFG,DSIG,-ANG)
  311. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  312. CALL GDP(SIG,DSIG,RDP,ADP,GAMDP)
  313. IF(GAMDP.GT.1.E-8) IDAM(3)=0
  314. RETURN
  315. C
  316. C------------------------------------------------------------
  317. C ON REGARDE SI ON N ENDOMMAGE PAS LES AUTRES CRITERES
  318. C AUQUEL CAS IL FAUT CALCULER X POUR ARRIVER AU COUPLAGE
  319. C------------------------------------------------------------
  320. C------------------------------------
  321. C ON ENDOMMAGE LA TRACTION 1
  322. C------------------------------------
  323. C
  324. 100 CONTINUE
  325. CALL CTRAF(SGG(1),RT1,VCTR1)
  326. CALL CCOAF(SGG(1),XLAM1,VCCO1)
  327. IF(VCTR1.GT.0.D0) GOTO 105
  328. IF(VCCO1.GT.0.D0) GOTO 200
  329. CALL CTRAF(SGG(2),RT2,VCTR2)
  330. CALL CCOAF(SGG(2),XLAM2,VCCO2)
  331. IF(VCTR2.GT.0.D0) GOTO 300
  332. IF(VCCO2.GT.0.D0) GOTO 400
  333. GOTO 500
  334. 105 ISOR=1
  335. IF(DSFG(1).NE.0.D0) THEN
  336. E=(RT1-SFG(1))/DSFG(1)
  337. F=SSI(1)/DSFG(1)
  338. DO 110 ITYP=1,3
  339. A(ITYP)=SFG(ITYP)+E*DSFG(ITYP)
  340. 110 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  341. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  342. DO 111 ITYP=1,3
  343. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  344. 111 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  345. CALL SIJ(SGG,SI,SIETOI)
  346. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  347. CALL SCAL(EPC,EPC1,VAL)
  348. CALL NORME(EPC,VA1)
  349. CALL NORME(EPC1,VA2)
  350. CO1=VAL/VA1/VA2
  351. CALL SIJ(DSGG,SI,SIETOI)
  352. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  353. CALL SCAL(EPC,EPC1,VAL)
  354. CALL NORME(EPC,VA1)
  355. CALL NORME(EPC1,VA2)
  356. CO2=VAL/VA1/VA2
  357. XIN1=E+F*DL31
  358. XIN2=E+F*DL32
  359. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  360. X=XIN1
  361. DL3=DL31
  362. GOTO 119
  363. ENDIF
  364. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  365. X=XIN2
  366. DL3=DL32
  367. GOTO 119
  368. ENDIF
  369. IF(IIMPI.EQ.9) WRITE(IOIMP,30303)
  370. 30303 FORMAT(1X,'ERREUR DP TRACTION 1 AF',/)
  371. DL3=DL31
  372. X=XIN1
  373. 119 DO 120 ITYP=1,3
  374. 120 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  375. IDAM(1)=1
  376. IDAM(2)=0
  377. IDAM(3)=1
  378. GOTO 150
  379. ENDIF
  380. DL3=(-RT1+SFG(1))/SSI(1)
  381. RD=RDP-DL3*HDP
  382. IF(RDP.LT.SIREF) GOTO 19
  383. DO 130 ITYP=1,3
  384. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  385. 130 B(ITYP)=DSFG(ITYP)
  386. CALL XDP(A,B,RD,ADP,X,ITEST)
  387. DO 140 ITYP=1,3
  388. 140 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  389. IDAM(1)=1
  390. IDAM(2)=0
  391. IDAM(3)=1
  392. 150 CALL CTRAF(SGG(2),RT2,VCTR2)
  393. CALL CCOAF(SGG(2),XLAM2,VCCO2)
  394. IF(VCTR2.GT.0.D0) GOTO 300
  395. IF(VCCO2.GT.0.D0) GOTO 400
  396. GOTO 500
  397. C
  398. C------------------------------------
  399. C ON ENDOMMAGE LA COMPRESSION 1
  400. C------------------------------------
  401. C
  402. 200 ISOR=1
  403. IF(DSFG(1).NE.0.D0) THEN
  404. E=SFG(1)/DSFG(1)
  405. F=SSI(1)/DSFG(1)
  406. DO 210 ITYP=1,3
  407. A(ITYP)=SFG(ITYP)-E*DSFG(ITYP)
  408. 210 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  409. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  410. DO 211 ITYP=1,3
  411. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  412. 211 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  413. CALL SIJ(SGG,SI,SIETOI)
  414. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  415. CALL SCAL(EPC,EPC1,VAL)
  416. CALL NORME(EPC,VA1)
  417. CALL NORME(EPC1,VA2)
  418. CO1=VAL/VA1/VA2
  419. CALL SIJ(DSGG,SI,SIETOI)
  420. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  421. CALL SCAL(EPC,EPC1,VAL)
  422. CALL NORME(EPC,VA1)
  423. CALL NORME(EPC1,VA2)
  424. CO2=VAL/VA1/VA2
  425. XIN1=-E+F*DL31
  426. XIN2=-E+F*DL32
  427. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  428. X=XIN1
  429. DL3=DL31
  430. GOTO 219
  431. ENDIF
  432. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  433. X=XIN2
  434. DL3=DL32
  435. GOTO 219
  436. ENDIF
  437. IF(IIMPI.EQ.9) WRITE(IOIMP,40404)
  438. 40404 FORMAT(1X,'ERREUR DP COMPRESSION 1',/)
  439. DL3=DL31
  440. X=XIN1
  441. 219 DO 220 ITYP=1,3
  442. 220 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  443. IDAM(1)=-1
  444. IDAM(2)=0
  445. IDAM(3)=1
  446. GOTO 250
  447. ENDIF
  448. DL3=SFG(1)/SSI(1)
  449. RD=RDP-DL3*HDP
  450. IF(RD.LT.SIREF) GOTO 19
  451. DO 230 ITYP=1,3
  452. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  453. 230 B(ITYP)=DSFG(ITYP)
  454. CALL XDP(A,B,RD,ADP,X,ITEST)
  455. DO 240 ITYP=1,3
  456. 240 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  457. IDAM(1)=-1
  458. IDAM(2)=0
  459. IDAM(3)=1
  460. 250 CALL CTRAF(SGG(2),RT2,VCTR2)
  461. CALL CCOAF(SGG(2),XLAM2,VCCO2)
  462. IF(VCTR2.GT.0.D0) GOTO 300
  463. IF(VCCO2.GT.0.D0) GOTO 400
  464. GOTO 500
  465. C
  466. C------------------------------------
  467. C ON ENDOMMAGE LA TRACTION 2
  468. C------------------------------------
  469. C
  470. 300 ISOR=1
  471. IF(DSFG(2).NE.0.D0) THEN
  472. E=(RT2-SFG(2))/DSFG(2)
  473. F=SSI(2)/DSFG(2)
  474. DO 310 ITYP=1,3
  475. A(ITYP)=SFG(ITYP)+E*DSFG(ITYP)
  476. 310 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  477. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  478. DO 311 ITYP=1,3
  479. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  480. 311 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  481. CALL SIJ(SGG,SI,SIETOI)
  482. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  483. CALL SCAL(EPC,EPC1,VAL)
  484. CALL NORME(EPC,VA1)
  485. CALL NORME(EPC1,VA2)
  486. CO1=VAL/VA1/VA2
  487. CALL SIJ(DSGG,SI,SIETOI)
  488. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  489. CALL SCAL(EPC,EPC1,VAL)
  490. CALL NORME(EPC,VA1)
  491. CALL NORME(EPC1,VA2)
  492. CO2=VAL/VA1/VA2
  493. XIN1=E+F*DL31
  494. XIN2=E+F*DL32
  495. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  496. X=XIN1
  497. DL3=DL31
  498. GOTO 319
  499. ENDIF
  500. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  501. X=XIN2
  502. DL3=DL32
  503. GOTO 319
  504. ENDIF
  505. IF(IIMPI.EQ.9) WRITE(IOIMP,50505)
  506. 50505 FORMAT(1X,'ERREUR DP TRACTION 2 AF',/)
  507. DL3=DL31
  508. X=XIN1
  509. 319 DO 320 ITYP=1,3
  510. 320 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  511. IDAM(1)=0
  512. IDAM(2)=1
  513. IDAM(3)=1
  514. GOTO 500
  515. ENDIF
  516. DL3=(-RT2+SFG(2))/SSI(2)
  517. RD=RDP-DL3*HDP
  518. IF(RD.LT.SIREF) GOTO 19
  519. DO 330 ITYP=1,3
  520. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  521. 330 B(ITYP)=DSFG(ITYP)
  522. CALL XDP(A,B,RD,ADP,X,ITEST)
  523. DO 340 ITYP=1,3
  524. 340 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  525. IDAM(1)=0
  526. IDAM(2)=1
  527. IDAM(3)=1
  528. GOTO 500
  529. C
  530. C------------------------------------
  531. C ON ENDOMMAGE LA COMPRESSION 2
  532. C------------------------------------
  533. C
  534. 400 ISOR=1
  535. IF(DSFG(2).NE.0.D0) THEN
  536. E=SFG(2)/DSFG(2)
  537. F=SSI(2)/DSFG(2)
  538. DO 410 ITYP=1,3
  539. A(ITYP)=SFG(ITYP)-E*DSFG(ITYP)
  540. 410 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP)
  541. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  542. DO 411 ITYP=1,3
  543. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  544. 411 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  545. CALL SIJ(SGG,SI,SIETOI)
  546. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  547. CALL SCAL(EPC,EPC1,VAL)
  548. CALL NORME(EPC,VA1)
  549. CALL NORME(EPC1,VA2)
  550. CO1=VAL/VA1/VA2
  551. CALL SIJ(DSGG,SI,SIETOI)
  552. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  553. CALL SCAL(EPC,EPC1,VAL)
  554. CALL NORME(EPC,VA1)
  555. CALL NORME(EPC1,VA2)
  556. CO2=VAL/VA1/VA2
  557. XIN1=-E+F*DL31
  558. XIN2=-E+F*DL32
  559. IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  560. X=XIN1
  561. DL3=DL31
  562. GOTO 419
  563. ENDIF
  564. IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  565. X=XIN2
  566. DL3=DL32
  567. GOTO 419
  568. ENDIF
  569. IF(IIMPI.EQ.9) WRITE(IOIMP,60606)
  570. 60606 FORMAT(1X,'ERREUR DP COMPRESSION 2 ',/)
  571. DL3=DL31
  572. X=XIN1
  573. 419 DO 420 ITYP=1,3
  574. 420 SGG(ITYP)=A(ITYP)+DL3*B(ITYP)
  575. IDAM(1)=0
  576. IDAM(2)=-1
  577. IDAM(3)=1
  578. GOTO 500
  579. ENDIF
  580. DO 430 ITYP=1,3
  581. DL3=SFG(2)/SSI(2)
  582. RD=RDP-DL3*HDP
  583. IF(RD.LT.SIREF) GOTO 19
  584. A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP)
  585. 430 B(ITYP)=DSFG(ITYP)
  586. CALL XDP(A,B,RD,ADP,X,ITEST)
  587. DO 440 ITYP=1,3
  588. 440 SGG(ITYP)=A(ITYP)+X*B(ITYP)
  589. IDAM(1)=0
  590. IDAM(2)=-1
  591. IDAM(3)=1
  592. 500 DO 510 ITYP=1,3
  593. EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP)
  594. 510 SFG(ITYP)=SGG(ITYP)
  595. C
  596. C-------------------------------------------------------
  597. C CAS OU LA LIMITE EN TRACTION N EST PAS DEPASSEE
  598. C-------------------------------------------------------
  599. C
  600. RDP=RDP-DL3*HDP
  601. IF(RDP.LT.SIREF) GOTO 19
  602. XLAM3=XLAM3+DL3
  603. XT=X+XT
  604. C=1.D0-1.D-10
  605. IF(XT.GT.C) THEN
  606. DO 520 ITYP=1,3
  607. IDAM(ITYP)=0
  608. 520 DSIG(ITYP)=0.D0
  609. CALL CHREP(SFG,SIG,-ANG)
  610. CALL CHREP(EPDP,EPPLDP,-ANG)
  611. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  612. RETURN
  613. ENDIF
  614. 525 IF(ISOR.EQ.1) THEN
  615. DO 530 ITYP=1,3
  616. 530 DSFG(ITYP)=(1D0-XT)*DSFG(ITYP)
  617. CALL CHREP(SFG,SIG,-ANG)
  618. CALL CHREP(DSFG,DSIG,-ANG)
  619. CALL CHREP(EPDP,EPPLDP,-ANG)
  620. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  621. RETURN
  622. ENDIF
  623. X=2.D0*X
  624. IF((XT+X).GT.1.D0) X=1.D0-XT
  625. CALL SIJ(SFG,SI,SIETOI)
  626. CALL EPSDP(SI,SIETOI,ADP,EPC)
  627. CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA)
  628. IF(DL3.LT.0.D0) THEN
  629. KERRE=461
  630. RETURN
  631. ENDIF
  632. GOTO 31
  633. END
  634.  
  635.  

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