Télécharger fluage.eso

Retour à la liste

Numérotation des lignes :

fluage
  1. C FLUAGE SOURCE OF166741 25/11/04 21:15:53 12349
  2. SUBROUTINE FLUAGE(ITER,EPSTAR,S0,EPST,SSTAR,SI,DPSM1,
  3. 1 DPSM2,IBOU,DEPS,ICONV,TIMEXI,TIMEXF,YUNG,KERRE,ecou,necou)
  4. C
  5. C CE SOUS PROGRAMME CALCULE LA DEFORMATION DE FLUAGE
  6. C
  7. C SORTIES AVEC PROBLEMES
  8. C
  9. C KERRE = 3 DIMINUER LE PAS (TREANOR)
  10. C KERRE = 4 DEPS EST NEGATIF
  11. C KERRE = 5 PAS DE CONVERGENCE INTERNE
  12. C ( ANCIENNEMENT NSTOP=0 )
  13. C
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8(A-H,O-Z)
  16.  
  17. -INC TECOU
  18.  
  19. DIMENSION DSIGK1(6),DSIGK2(6),DSIGK3(6),DSIGK4(6)
  20.  
  21. DATA ITMAX/15/
  22. ITER=1
  23. ICLFLU=0
  24. IF (necou.IRELAX.EQ.0) GO TO 414
  25. C
  26. C ESSAI DE CALCUL AUTOMATIQUE DU PAS
  27. C
  28. C IRELAX = 1 ALGORITHME LADOUCEUR
  29. C IRELAX = 2 ALGORITHME TREANOR
  30. C
  31. C TESTS DE PRECISION POUR METHODE TREANOR
  32. C
  33. C EPREC=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (1ERE ESTIMATION)
  34. C EPREC2=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (VALEUR FINALE)
  35. C PRERUN TEST DE VALIDITE DU PAS DE TEMPS
  36. C PREDEF VALEUR DE REFERENCE POUR LES DEFORMATIONS TROP PETITES
  37. C PRESIG VALEUR DE REFERENCE POUR LES CONTRAINTES TROP PETITES
  38. C PREPH TEST POUR PHMAX
  39. C PREBTA = BORNE SUP POUR LES ITERATIONS INTERNES DE 2-EME NIVEAU
  40. C RPREC PRECISION SUR L ESTIMATION DE DELTA-EPS CUMULE ITER INT 2 NIV
  41. C PREZER VALEUR POUR INTERPOLATION EN DELTA-EPSILON
  42. C PREMIN VALEUR POUR ESTIMATION AUTOMATIQUE DU PAS EN TREANOR
  43. C
  44. EPREC =1.D-3
  45. EPREC2=1.D-2
  46. PRECIS=ecou.ECTEST
  47. PRERUN=PRECIS
  48. PREDEF=1.D-5
  49. PRESIG=YUNG*PREDEF
  50. PREPH=1.D-3
  51. PREBTA=2.D00
  52. RPREC=PRECIS
  53. PREZER=1.D-7
  54. PREMIN=3.D-1*PRERUN
  55. IF(IT.EQ.1) GO TO 4430
  56. IF(DPSM1.LT.PREZER) GO TO 4430
  57. EPREC=MIN(EPREC,DPSM1)
  58. EPREC2=MIN(EPREC2,DPSM1)
  59. 4430 CONTINUE
  60. TIMO=ecou.TEMPS-ecou.HPAS
  61. TIMEXF=TIMEXI+ecou.HPAS
  62. DTET=ecou.TET-ecou.TETI
  63. DTETDT=0.D00
  64. IF (ecou.HPAS.NE.0.) DTETDT=DTET/ecou.HPAS
  65. 200 CONTINUE
  66. C NITER= NOMBRE D'ITERATIONS SUR LE PAS
  67. NITER=3
  68. C
  69. C BTAEPS=ITERPOLATION DU DSIGP-DSIGP0 SUIVANT LA VARIATION DE
  70. C EPSILON ---- L'INITIALISATION DE LA PREMIERE ITERATION EST BIDON
  71. BTAEPS=1.
  72. BTAA=1.
  73. IF(IT.EQ.1) GO TO 430
  74. BTAA=DPSM1
  75. IF(BTAA.GT.PREZER) BTAEPS=1./BTAA
  76. C
  77. C IDECOU=NOMBRE DE DECOUPAGES POSSIBLE DU TEMPS
  78. 430 IDECOU=30
  79. IF(JSOUFL.NE.0) IDECOU=JSOUFL
  80. C
  81. C ICONV=1 SI CONVERGENCE INTERNE NON EFFECTUEE
  82. ICONV=0
  83. C
  84. C ICOMPT=NOMBRE D'ITERATIONS POUR AVOIR UNE BONNE ESTIMATION DE
  85. C LA VALEUR DE DELTA EPSILON ----- ICOMPT MAXIMUM=15
  86. C
  87. ICOMPT=1
  88. C
  89. C DSIGP0(IB)=PARTIE ELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN TEMPS
  90. C DSIGP-DSIGP0=PARTIE INELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN EPSILON
  91. C TEMINT=TEMPS INTERMEDIAIRE AU DEBUT DU PAS
  92. C TEMIN2=TEMPS INTERMEDIAIRE A LA FIN DU PAS
  93. C TRINS1 TEMPS INTRINSEQUE INTERMEDIAIRE DEBUT DU SS-PAS
  94. C TRINS2 TEMPS INTRINSEQUE INTERMEDIAIRE FIN DU SS-PAS
  95. C EPSINT=DEFORMATION DE FLUAGE AU DEBUT DES TEMPS INTERMEDIAIRES
  96. C EPSIN2=DEFORMATION DE FLUAGE A LA FIN DES TEMPS INTERMEDIAIRES
  97. C SINT=CONTRAINTE CALCULEE AU DEBUT DU PAS INTERMEDIAIRE
  98. C SINT2=CONTRAINTE CALCULEE A LA FIN DU PAS INTERMEDIAIRE
  99. C W2(IB)=TENSEUR DE CONTRAINTE AU DEBUT DES PAS INTERMEDIAIRES
  100. C TETINI = TEMPERATURE INTERMEDIAIRE AU DEBUT DU SS-PAS
  101. C TETINF = TEMPERATURE INTERMEDIAIRE A LA FIN DU SS-PAS
  102. C HPAS2 = PAS DE TEMPS ITERMEDIAIRES
  103. C-----------------------------------------------------------------------
  104. C ON DEMARRE
  105. C-----------------------------------------------------------------------
  106. 499 CONTINUE
  107. TEMINT=TIMO
  108. TRINS1=TIMEXI
  109. EPSINT=EPSTAR
  110. SINT=S0
  111. DO 413 IB=1,IBOU
  112. ecou.W2(IB)=ecou.SIGEL(IB)
  113. 413 CONTINUE
  114. C-----------------------------------------------------------------------
  115. C BOUCLE SUR LES SOUS-PAS
  116. C-----------------------------------------------------------------------
  117. DO 416 I=1,IDECOU
  118. C ON INTERPOLE LINEAIREMENT
  119. C
  120. TETINI=TETI+DTETDT*(TEMINT-TIMO)
  121. DECATE=TEMPS-TEMINT
  122. HPAS2=DECATE
  123. IF (IRELAX.NE.2) GO TO 8370
  124. C
  125. C MODIFS POUR LA METHODE DE TREANOR
  126. C POUR LA PREMIERE ESTIMATION DU PAS DANS LES ITERATIONS EN DEPS,
  127. C ON UTILISE LA VALEUR HFIRST TROUVEE A L ITERATION PRECEDENTE
  128. C POUR LE DECOUPAGE EN SOUS-PAS,ON AJUSTE AUTOMATIQUEMENT LA TAILLE
  129. C DU PAS .
  130. C
  131. IF(I.GT.1) GO TO 8371
  132. IF(ICOMPT.EQ.1) GO TO 8370
  133. HPAS2=HFIRST
  134. GO TO 8370
  135. 8371 HPAS2=HPADEC
  136. 8370 BETA=HPAS2/DECATE
  137. BETA = MIN(BETA,1.D0)
  138. CALL CRPLAW(VI,EPSINT,SINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB)
  139. EPSPAS=HPAS2*VI
  140. C EPSPAS=INCREMENT D'ALLONGEMENT INELASTIQUE CALCULE A LA FIN
  141. C DU SOUS PAS INTERMEDIAIRE
  142. C BETA=COEFFICIENT CORRESPONDANT A LA FRACTION DU PAS CALCULE
  143. C
  144. IF(EPSPAS.GT.EPREC) BETA=BETA*EPREC/EPSPAS
  145. C
  146. C-----------------------------------------------------------------------
  147. C DEBUT DES CALCULS POUR UN SOUS-PAS DE TAILLE DONNEE
  148. C ON RECOMMENCE ICI EN CAS DE REDUCTION DU PAS
  149. C-----------------------------------------------------------------------
  150. C
  151. 424 HPAS2=DECATE*BETA
  152. BTAPAS=HPAS2/HPAS
  153. TEMIN2=TEMINT+HPAS2
  154. TRINS2=TRINS1+HPAS2
  155. TETINF=TETI+DTETDT*(TEMIN2-TIMO)
  156. TIMO5=TEMINT+0.5*HPAS2
  157. TRINS5=TRINS1+0.5*HPAS2
  158. TETIN5=TETI+DTETDT*(TIMO5-TIMO)
  159. IF(IRELAX.EQ.2) GO TO 1101
  160. C
  161. C CALCUL PAR LA METHODE LADOUCEUR
  162. C
  163. EPSPA2=EPSPAS*BETA
  164. EPSIN2=EPSINT+EPSPA2
  165. BTASIG=EPSPA2*BTAEPS
  166. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  167. C
  168. C IL FAUT TOUJOURS INTERPOLER EN DELTA-EPSILON, MEME SI DEPS EST PETIT,
  169. C POUR QUE LA RUSE DE LA 2-EME ITERATION MARCHE EN FLUAGE PUR
  170. C
  171. IF(BTAA.LE.PREZER) BTASIG=BTAPAS
  172. ELTA=0.
  173. IF (SINT.NE.0.) ELTA=VI/SINT
  174. ELTF = HPAS2*ELTA
  175. DO 421 IB=1,IBOU
  176. ecou.SIGT(IB)=ecou.W2(IB)+ecou.DSIGP0(IB)*BTAPAS+
  177. 1 (ecou.DSIGP(IB)-ecou.DSIGP0(IB))*BTASIG
  178. 2 -ecou.E(IB)*ecou.W2(IB)*ELTF
  179. 421 CONTINUE
  180. SINT2=VNMISD(SIGT,ITYP,ecou.ALFAH,CVNMSD)
  181. C
  182. C DEBUT DES ITERATIONS SUR LA FRACTION DE PAS CONSIDERE
  183. C
  184. DO 417 J=1,NITER
  185. CALL CRPLAW(VINT,EPSIN2,SINT2,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB)
  186. ELTO=.25*HPAS2
  187. IF(J.EQ.1) EPSPA5=ELTO*(3*VI+VINT)*.5
  188. IF(J.NE.1.AND.(VI+VINT).NE.0.)
  189. 1 EPSPA5=DEPS*(3*VI+VINT)/(VI+VINT)*.25
  190. EPSO5=EPSINT+EPSPA5
  191. BTASIG=EPSPA5*BTAEPS
  192. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  193. IF(BTAA.LE.PREZER) BTASIG=BTAPAS*.5
  194. ELTB=0.
  195. IF(SINT2.NE.0.) ELTB=VINT/SINT2
  196. DO 422 IB=1,IBOU
  197. IF(J.EQ.1) ecou.W1(IB)=ecou.W2(IB)+ecou.DSIGP0(IB)*BTAPAS*.5+
  198. 1 (ecou.DSIGP(IB)-ecou.DSIGP0(IB))*BTASIG
  199. 2 -ELTO*E(IB)*(3*ecou.W2(IB)*ELTA+SIGT(IB)*ELTB)*.5
  200. IF(J.NE.1) ecou.W1(IB)=ecou.W2(IB)+ecou.DSIGP0(IB)*BTAPAS*.5+
  201. 1 (ecou.DSIGP(IB)-ecou.DSIGP0(IB))*BTASIG
  202. 2 -E(IB)*ELTO*(ecou.W2(IB)*ELTA+ecou.W1(IB)*ELTC*.25)
  203. 422 CONTINUE
  204. SO5=VNMISD(ecou.W1,ITYP,ALFAH,CVNMSD)
  205. CALL CRPLAW(VO5,EPSO5,SO5,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB)
  206. ELTO=.166666666667*HPAS2
  207. DEPS=ELTO*(VI+VINT+4*VO5)
  208. IF(DEPS.LT.EPREC2) GO TO 425
  209. BETA=BETA*.7
  210. GO TO 424
  211. 425 EPSIN2=EPSINT+DEPS
  212. BTASIG=DEPS*BTAEPS
  213. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  214. IF(BTAA.LE.PREZER) BTASIG=BTAPAS
  215. ELTC=0.
  216. IF(SO5.NE.0.) ELTC=VO5/SO5*4.
  217. DO 423 IB=1,IBOU
  218. ecou.SIGT(IB)=ecou.W2(IB)+ecou.DSIGP0(IB)*BTAPAS+
  219. 1 (ecou.DSIGP(IB)-ecou.DSIGP0(IB))*BTASIG
  220. 2 -ELTO*E(IB)*(ecou.W2(IB)*ELTA+SIGT(IB)*ELTB+ecou.W1(IB)*ELTC)
  221. 423 CONTINUE
  222. SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  223. 417 CONTINUE
  224. C
  225. GO TO 1200
  226. C
  227. 1101 CONTINUE
  228. C
  229. C CALCUL PAR LA METHODE DE TREANOR
  230. C
  231. nccor = necou.NCOURB
  232. WEP=0.5D00
  233. CALL FLURUN(ecou.W2,EPSINT,TETINI,TRINS1,HPAS2,ICLFLU,nccor,IBOU,
  234. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK1,DEPSK1,SIGT,EPSINA,WEP,
  235. . EPSINT,EPREC2,ecou)
  236. IF(ICOD.EQ.1) GO TO 424
  237. CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,nccor,IBOU,
  238. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK2,DEPSK2,SIGT,EPSINA,WEP,
  239. . EPSINT,EPREC2,ecou)
  240. IF(ICOD.EQ.1) GO TO 424
  241. WEP=1.D00
  242. CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,nccor,IBOU,
  243. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK3,DEPSK3,SIGT,EPSINA,WEP,
  244. . EPSINT,EPREC2,ecou)
  245. IF(ICOD.EQ.1) GO TO 424
  246. PHMAX=0.D0
  247. r_z = DEPSK2-DEPSK1
  248. IF (r_z.NE.0.D0) PHMAX=2.*(DEPSK2-DEPSK3)/r_z
  249. DO 4101 IB=1,IBOU
  250. r_z = DSIGK2(IB) - DSIGK1(IB)
  251. IF (r_z.NE.0.D0) THEN
  252. PH = 2.D0 * (DSIGK2(IB)-DSIGK3(IB)) / r_z
  253. PHMAX = MAX(PHMAX,PH)
  254. ENDIF
  255. 4101 CONTINUE
  256. IF (PHMAX.LE.0.D0) GO TO 4102
  257. IF (PHMAX.GE.PREPH) GO TO 4123
  258. XL1=1.-PHMAX*0.5
  259. XL2=0.5-PHMAX*0.166666666666666667
  260. XL3=0.166666666666666667-PHMAX*0.04166666666666666667
  261. XL4=-PHMAX*0.166666666666666667
  262. GO TO 4103
  263. 4123 CONTINUE
  264. XL1=(1.-EXP(-PHMAX))/PHMAX
  265. XL2=(1.-XL1)/PHMAX
  266. XL3=(0.5-XL2)/PHMAX
  267. XL4=XL1-2.*XL2
  268. GO TO 4103
  269. 4102 PHMAX=0.
  270. XL1=1.
  271. XL2=0.5
  272. XL3=0.166666666666666667
  273. XL4=0.
  274. 4103 CONTINUE
  275. XM1=-XL2+4.*XL3
  276. XM2=2.*(XL2-2.*XL3)
  277. XM3=4.*XL3-3.*XL2
  278. C
  279. C NOUVELLE ESTIMATION DE LA SOLUTION
  280. C
  281. EPSIN5=EPSINT+2.D0*XL2*DEPSK3+XL2*PHMAX*DEPSK2+XL4*DEPSK1
  282. DO 4104 IB=1,IBOU
  283. ecou.W1(IB)= ecou.W2(IB)+2.*XL2*DSIGK3(IB)+XL2*PHMAX*DSIGK2(IB)
  284. & +XL4*DSIGK1(IB)
  285. 4104 CONTINUE
  286. WEP=1.D00
  287. nccor = necou.NCOURB
  288. CALL FLURUN(ecou.W1,EPSIN5,TETINF,TRINS2,HPAS2,ICLFLU,
  289. & nccor, IBOU,ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK4,
  290. & DEPSK4,ecou.SIGT,EPSINA,WEP,EPSINT,EPREC2,ecou)
  291. IF(ICOD.EQ.1) GO TO 424
  292. C
  293. C ESTIMATION FINALE DE LA SOLUTION
  294. C
  295. FAC1=1.+PHMAX*XM3+2.*PHMAX*XM2
  296. FAC2=XL1+XM3+0.5*XM2*PHMAX
  297. FAC3=XM2*(1.+0.5*PHMAX)
  298. FAC5=XM1*PHMAX
  299. EPSIN2= EPSINT*FAC1+DEPSK1*FAC2+DEPSK2*FAC3+DEPSK3*XM2
  300. . +DEPSK4*XM1+EPSIN5*FAC5
  301. DO 4105 IB=1,IBOU
  302. ecou.SIGT(IB)=ecou.W2(IB)*FAC1+DSIGK1(IB)*FAC2+DSIGK2(IB)*FAC3
  303. . +DSIGK3(IB)*XM2+DSIGK4(IB)*XM1+ecou.W1(IB)*FAC5
  304. 4105 CONTINUE
  305. C
  306. C TEST DE PRECISION
  307. C
  308. ERMAX=ABS(EPSIN2-EPSIN5)/MAX(PREDEF,ABS(EPSIN2-EPSINT))
  309. DO 4106 IB=1,IBOU
  310. ERM=ABS(SIGT(IB)-ecou.W1(IB))/MAX(PRESIG,
  311. . ABS(SIGT(IB)-ecou.W2(IB)))
  312. ERMAX = MAX(ERMAX,ERM)
  313. 4106 CONTINUE
  314. IF(ERMAX.LE.PRERUN) GO TO 1240
  315. BETA=BETA*0.5D0
  316. GO TO 424
  317. C
  318. C-----------------------------------------------------------------------
  319. C METHODE DE TREANOR - ESTIMATION AUTOMATIQUE DU PAS DE TEMPS
  320. C-----------------------------------------------------------------------
  321. C
  322. 1240 HPADEC=HPAS2
  323. IF(ERMAX.LE.PREMIN) HPADEC=2.D00*HPAS2
  324. SINT2=VNMISD(SIGT,ITYP,ecou.ALFAH,CVNMSD)
  325. 1200 CONTINUE
  326. C
  327. C CAS DU PREMIER DECOUPAGE : ON SAUVE LA TAILLE DU 1-ER SOUS-PAS
  328. C
  329. IF(I.EQ.1.AND.ICOMPT.EQ.1) HFIRST=HPAS2
  330. DO 418 IB=1,IBOU
  331. ecou.W2(IB) = ecou.SIGT(IB)
  332. 418 CONTINUE
  333. C
  334. C-----------------------------------------------------------------------
  335. C SORTIE DE LA BOUCLE DES SOUS-PAS SI BETA=1.
  336. C LE DECOUPAGE EST FINI
  337. C-----------------------------------------------------------------------
  338. C
  339. IF(ABS(BETA-1.D00).LE.PREZER) GO TO 419
  340. EPSINT=EPSIN2
  341. C
  342. C-----------------------------------------------------------------------
  343. C SI ON N'A PAS FINI,ON REGARDE SI ON PASSE LE TEST ANTI-DIVERGENCE
  344. C SI CA A TENDANCE A EXPLOSER,ON RECOMMENCE AVEC UN BTAA MODIFIE
  345. C SINON ON SORT EN DEMANDANT PLUS DE SOUS-PAS
  346. C-----------------------------------------------------------------------
  347. C
  348. IF(IT.LE.2) GO TO 502
  349. IF(BTAA.LE.PREDEF) GO TO 502
  350. C
  351. C TEST ANTI-DIVERGENCE ITERATIONS INTERNES DE 2-EME NIVEAU
  352. C
  353. IF(DEPS.LE.1.5*BTAA) GO TO 502
  354. BTAA=1.1*BTAA
  355. BTAEPS=1./BTAA
  356. GO TO 499
  357. 502 CONTINUE
  358. SINT=SINT2
  359. TEMINT=TEMIN2
  360. IF(JNTRIN.EQ.0) TRINS1=TRINS2
  361. IF(JNTRIN.NE.0.AND.DEPS.NE.0.) TRINS1=TRINS2
  362. C
  363. C-----------------------------------------------------------------------
  364. C FIN DE LA BOUCLE SUR LES SOUS-PAS
  365. C-----------------------------------------------------------------------
  366. C
  367. 416 CONTINUE
  368. KERRE=3
  369. RETURN
  370. C
  371. C FIN DU DECOUPAGE EN SOUS-PAS
  372. C
  373. 419 SI=SINT2
  374. DEPS=EPSIN2-EPSTAR
  375. IF(DEPS.GE.0.) GO TO 3170
  376. KERRE=4
  377. DEPS=0.D00
  378. 3170 CONTINUE
  379. C
  380. C ON TESTE LA VALEUR DE DEPS PAR RAPPORT A L'ESTIMATION FAITE
  381. C ON CONTINUE JUSQ'A CONVERGENGE A RPREC PRES
  382. C
  383. IF(IT.EQ.1) GO TO 501
  384. IF(IT.EQ.2) GO TO 505
  385. C
  386. C SI BTAA EST INFERIEUR A PREZER,ON NE FAIT PAS D'ITERATIONS
  387. C INTERNES DE 2-EME NIVEAU
  388. C
  389. IF(BTAA.LE.PREZER) GO TO 501
  390. DIFFE=DEPS-BTAA
  391. RAPOR=ABS(DIFFE)/BTAA
  392. IF(RAPOR.LE.RPREC) GO TO 501
  393. IF(ICOMPT.LT.15) GO TO 415
  394. KERRE=5
  395. GO TO 505
  396. 415 CONTINUE
  397. ICOMPT=ICOMPT+1
  398. IF(ICOMPT.EQ.2) GO TO 503
  399. DESSU=BTAAZ*DEPS-BTAA*DEPSZ
  400. DESSOU=DIFFE-DIFFEZ
  401. 503 BTAAZ=BTAA
  402. DEPSZ=DEPS
  403. DIFFEZ=DIFFE
  404. IF(ICOMPT.EQ.2) GO TO 535
  405. IF(ABS(DESSOU).GT.1.D-20) GO TO 504
  406. BTAA=(BTAA+DEPS)*0.5
  407. GO TO 3390
  408. 504 BTAA=DESSU/DESSOU
  409. GO TO 3390
  410. 535 BTAA=DEPS
  411. 3390 IF(BTAA.GT.PREZER) BTAEPS=1./BTAA
  412. IF(BTAA.LT.0.) BTAA=0.5D00*BTAAZ
  413. GO TO 499
  414. 501 CONTINUE
  415. EPST=EPSIN2
  416. IF(JNTRIN.NE.0) TIMEXF=TRINS2
  417. RETURN
  418. 505 CONTINUE
  419. EPST=EPSIN2
  420. IF(JNTRIN.NE.0) TIMEXF=TRINS2
  421. IF(BTAA.LE.PREZER) RETURN
  422. ICONV=1
  423. RDEPS=DEPS/BTAA
  424. DO 506 IB=1,IBOU
  425. ecou.DSIGP(IB) = ecou.SIGEL(IB)+ecou.DSIGP0(IB)
  426. & +(ecou.DSIGP(IB)-ecou.DSIGP0(IB))*RDEPS
  427. 506 CONTINUE
  428. RETURN
  429. C
  430. C-----------------------------------------------------------------------
  431. C METHODE CLASSIQUE CASTEM
  432. C-----------------------------------------------------------------------
  433. C
  434. 414 TIMO=TEMPS-HPAS
  435. TIMEXF=TIMEXI+HPAS
  436. TIMEX5=0.5*(TIMEXI+TIMEXF)
  437. TET5=0.5*(TETI+TET)
  438. TIMO5=0.5*(TIMO+TEMPS)
  439. IF(IT.NE.1) GO TO 411
  440. C
  441. C RUSE POUR LA 1-ERE ITERATION EN CAS THERMOPLASTIQUE
  442. C
  443. CALL CRPLAW(VI,EPSTAR,S0,TETI,TIMEXI,HPAS,ICLFLU,NCOURB)
  444. DPSM1=VI
  445. EPST=EPSTAR+HPAS*VI
  446. CALL CRPLAW(VF,EPST,SSTAR,TET,TIMEXF,HPAS,ICLFLU,NCOURB)
  447. DPSM2=SSTAR
  448. SF=SSTAR
  449. ELTO=0.166666666667*HPAS
  450. SO5=0.5*(S0+SF)
  451. EPST=EPSTAR+0.25*HPAS*(VI+VF)
  452. CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)
  453. ELTA=0
  454. ELTB=0
  455. ELTC=0
  456. IF(S0.NE.0.) ELTA=1./S0
  457. IF(SF.NE.0.) ELTB=1./SF
  458. IF(SO5.NE.0.) ELTC=1./SO5
  459. ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)
  460. ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)
  461. DO 412 IB=1,IBOU
  462. ELTA=1.-ecou.E(IB)*ELTO
  463. ELTB=1.+ecou.E(IB)*ELTF
  464. ecou.SIGEL(IB)=ecou.SIGEL(IB)*ELTB/ELTA
  465. ecou.DSIGP(IB)=ecou.DSIGP(IB)*ELTB
  466. 412 CONTINUE
  467. 411 VI=DPSM1
  468. SF=DPSM2
  469. EPST=EPSTAR+HPAS*VI
  470. CALL CRPLAW(VF,EPST,SF,TET,TIMEXF,HPAS,ICLFLU,NCOURB)
  471. ELTO=0.166666666667*HPAS
  472. SO5=0.5*(S0+SF)
  473. EPST=0.25*HPAS*(VI+VF)+EPSTAR
  474. CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)
  475. ELTA=0.D0
  476. ELTB=0.D0
  477. ELTC=0.D0
  478. IF(S0.NE.0.) ELTA=1./S0
  479. IF(SF.NE.0.) ELTB=1./SF
  480. IF(SO5.NE.0.) ELTC=1./SO5
  481. ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)
  482. ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)
  483. DO 410 IB=1,IBOU
  484. ELTA=1.-ecou.E(IB)*ELTO
  485. ELTB=1.+ecou.E(IB)*ELTF
  486. ecou.SIGT(IB)=(ecou.DSIGP(IB)+ecou.SIGEL(IB)*ELTA)/ELTB
  487. IF (IT.EQ.1) THEN
  488. ecou.DSIGP(IB) = ecou.SIGT(IB)*(1.+ELTB-ELTA)
  489. ENDIF
  490. 410 CONTINUE
  491. SI=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  492. DPSM2=SI
  493. DEPS=0.166666666667*ecou.HPAS*(VI+VF+4.*VO5)
  494. EPST=EPSTAR+DEPS
  495. IF(necou.JNTRIN.NE.0.AND.DEPS.EQ.0.) TIMEXF=TIMEXI
  496. 57 CONTINUE
  497. RETURN
  498. END
  499.  
  500.  
  501.  

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