Télécharger dp.eso

Retour à la liste

Numérotation des lignes :

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

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