Télécharger ccreep.eso

Retour à la liste

Numérotation des lignes :

ccreep
  1. C CCREEP SOURCE OF166741 25/11/04 21:15:12 12349
  2. SUBROUTINE CCREEP ( wrk52, wrk53, wrk54,
  3. & IFOURL, IB, IGAU, NBPGAU,
  4. & wcreep, iecou, xecou )
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. C-----------------------------------------------------------------------
  8. C
  9. C DESCRIPTION FONCTIONNELLE :
  10. C -------------------------
  11. C
  12. C Integration des lois 'VISCO_EXTERNE' par un schema Runge-Kutta 1.2
  13. C
  14. C Entrees/sorties : segments wrk52, wrk53, wrk54 de l'objet DECHE
  15. C Entrees : IFOURL = VOIR IFOUR dans CCOPTIO.INC
  16. C IB = NUMERO DE L'ELEMENT COURANT
  17. C IGAU = NUMERO DU POINT COURANT
  18. C NBPGAU = NBRE DE POINTS DE GAUSS
  19. C Variables de travail : segments wcreep, iecou, xecou
  20. C
  21. C-----------------------------------------------------------------------
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. -INC CCREEL
  26.  
  27. -INC DECHE
  28.  
  29. -INC TECOU
  30. C
  31. C Segment de travail pour les lois 'VISCO_EXTERNE'
  32. C
  33. SEGMENT WCREEP
  34. C Entrees/sorties constantes de la routine CREEP
  35. REAL*8 SERD
  36. CHARACTER*16 CMNAMC
  37. INTEGER LEXIMP, NSTTVC, LAYERC, KSPTC
  38. C Entrees/sorties de la routine CREEP pouvant varier
  39. REAL*8 STV(NSTV), STV1(NSTV), STVP1(NSTV),
  40. & STVP2(NSTV), STV12(NSTV), STVP3(NSTV),
  41. & STVP4(NSTV), STV13(NSTV), STVF(NSTV),
  42. & TMP12, TMP, TMP32,
  43. & DTMP12, DTMP,
  44. & PRD12(NPRD), PRD(NPRD), PRD32(NPRD),
  45. & DPRD12(NPRD), DPRD(NPRD)
  46. INTEGER KSTEPC
  47. C Autres indicateurs et variables de travail
  48. LOGICAL LTMP, LPRD, LSTV
  49. INTEGER IVIEX, NPAREC
  50. REAL*8 dTMPdt, dPRDdt(NPRD)
  51. ENDSEGMENT
  52. C
  53. C Variables locales
  54. C
  55. C Tableaux de travail
  56. C
  57. REAL*8 SIG(8),SIG1(8),SIG12(8),SIG13(8),
  58. & DSPT(8),XX(8),
  59. & EVP1(8),EVP2(8),EVP3(8),EVP4(8),
  60. & EPSV(8),EPSV1(8),EPSV12(8),EPSV13(8),
  61. & CRIGI(12),
  62. & DECRA(5),DESWA(5),TIME12(2),TIME(2),TIME32(2)
  63. C
  64. C Variables scalaires
  65. C
  66. LOGICAL DTLIBR
  67. C
  68. C------------------- Debut du code executable --------------------------
  69. C
  70. C=======================================================================
  71. C 1 - INITIALISATIONS
  72. C Parametres de pilotage des iterations internes
  73. C=======================================================================
  74. C
  75. PRELOC = 1.d-8
  76. KERRE = 0
  77. NSTRS1 = iecou.NSTRSS
  78. MFRL = iecou.MFR1
  79.  
  80. C* -> Les tests de "Restriction" sont maintenant effectues lors de la
  81. C* ceation du modele (cf MODELI) :
  82. C* - Restriction pour l'instant a 'VISCO_EXTERNE' 'GENERAL'
  83. C* - Restriction aux elements massifs avec option de calcul 3D
  84. C* Normalement ce test sur DT < 0 devrait etre fait avant (COMVAL ?)
  85. IF (xecou.DT .LT. 0.D0) THEN
  86. KERRE = 414
  87. RETURN
  88. ENDIF
  89. IF (xecou.DT.EQ.0.D0) xecou.DT = 1.e-20
  90. C
  91. DTLIBR =.TRUE.
  92. C
  93. DTLEFT = xecou.DT
  94. BORNE = 2.0
  95. RMAX = 1.3
  96. RMIN = 0.7
  97. DIV = 7.0
  98. FAC = 3.0
  99. C
  100. XMAX = XMAT(1)*1.D-3
  101. C
  102. C=======================================================================
  103. C 2 - Prediction elastique de l'increment de contraintes
  104. C=======================================================================
  105. C
  106. CALL CALSIG(DEPST,DDAUX,NSTRS1,CMATE,VALMAT,VALCAR,N2EL,
  107. & N2PTEL,MFRL,IFOURL,IB,IGAU,EPAIST,NBPGAU,MELE,
  108. & NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,
  109. & D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD)
  110. C
  111. IF (IRTD.NE.1) THEN
  112. KERRE = 714
  113. RETURN
  114. ENDIF
  115. C
  116. C=======================================================================
  117. C 3 - Pre-traitements avant iterations en sous-increments
  118. C=======================================================================
  119. C
  120. C.....Deformations inelastiques au debut du pas :
  121. C Passage gamma -> epsilon pour les termes extradiagonaux
  122. C
  123. C ATTENTION : adaptations si extension a d'autres formulations EF
  124. C ou a d'autres options de calcul
  125. DO 30 I=4,NSTRS1
  126. EPIN0(I)=0.5D0*EPIN0(I)
  127. 30 CONTINUE
  128. C
  129. C.....Calcul des derivees temporelles de la temperature et des
  130. C parametres externes
  131. C Ces parametres de chargement sont supposes varier lineairement
  132. C au cours du pas de temps
  133. C
  134. IF ( LTMP ) THEN
  135. dTMPdt = (TUREF(1)-TURE0(1))/DT
  136. ENDIF
  137. IF ( LPRD ) THEN
  138. DO 35 I=1,NPAREC
  139. dPRDdt(I) = (PAREXF(I)-PAREX0(I))/DT
  140. 35 CONTINUE
  141. ENDIF
  142. C
  143. C=======================================================================
  144. C 4 - INITIALISATIONS AVANT ITERATIONS EN SOUS-INCREMENTS
  145. C=======================================================================
  146. C
  147. ITERO = 0
  148. 6543 CONTINUE
  149. C
  150. ITERO = 1 + ITERO
  151. IF ( ITERO.NE.1) THEN
  152. DTLIBR = .TRUE.
  153. preloc = preloc * 7.D0
  154. IF (ITERO.GT.3) THEN
  155. KERRE = 268
  156. RETURN
  157. ENDIF
  158. ENDIF
  159. C
  160. DTLEFT = DT
  161. TAU = DTLEFT
  162. TAU12 = TAU*0.5D0
  163. C
  164. TIME12(1) = 0.5D0*DT
  165. TIME12(2) = temp0+TIME12(1)
  166. TIME(1)= DT
  167. TIME(2)= tempf
  168. TIME32(1) = 1.5D0*DT
  169. TIME32(2) = temp0+TIME32(1)
  170. C
  171. IF ( LTMP ) THEN
  172. DTMP = TUREF(1)-TURE0(1)
  173. DTMP12 = 0.5D0*DTMP
  174. TMP12 = TURE0(1)+DTMP12
  175. TMP = TUREF(1)
  176. TMP32 = TUREF(1)+DTMP12
  177. ENDIF
  178. IF ( LPRD ) THEN
  179. DO 36 I=1,NPAREC
  180. DPRD(I) = PAREXF(I)-PAREX0(I)
  181. DPRD12(I) = 0.5D0*DPRD(I)
  182. PRD12(I) = PAREX0(I)+DPRD12(I)
  183. PRD(I) = PAREXF(I)
  184. PRD32(I) = PAREXF(I)+DPRD12(I)
  185. 36 CONTINUE
  186. ENDIF
  187. C
  188. ASIG = SQRT(PROCON(SIG0,SIG0,NSTRS1))
  189. ERRABS = preloc*ASIG
  190. IF (XMAX.GT.ASIG) ERRABS = preloc*XMAX
  191. C
  192. DO 40 I=1,NSTRS1
  193. SIG(I) = SIG0(I)
  194. EPSV(I) = EPIN0(I)
  195. DSPT(I) = DSIGT(I)/DT
  196. 40 CONTINUE
  197. C
  198. EC0 = VAR0(1)
  199. ESW0 = VAR0(2)
  200. P = VAR0(3)
  201. QTLD = VAR0(4)
  202. IF ( LSTV ) THEN
  203. DO 50 I=1,NSTTVC
  204. STV(I)=VAR0(4+I)
  205. 50 CONTINUE
  206. ENDIF
  207. C
  208. C=======================================================================
  209. C 5 - ITERATIONS EN SSINCREMENTS /FIN SI DTLEFT = 0
  210. C=======================================================================
  211. C
  212. NSSINC = 0
  213. NITERA = 0
  214. 60 CONTINUE
  215. C
  216. NSSINC = NSSINC + 1
  217. IF (NSSINC.GT.MSOUPA) THEN
  218. DTLIBR=.FALSE.
  219. GOTO 6543
  220. ENDIF
  221. C
  222. C Evaluation initiale des vitesses de deformation inelastique
  223. C sur la base du dernier sous-increment converge
  224. LEND = 0
  225. CALL CREEP(DECRA,DESWA,STV,serd,EC0,ESW0,P,QTLD,
  226. & TMP,DTMP,PRD,DPRD,TIME,TAU,
  227. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  228. & layerc,ksptc,KSTEPC,NSSINC)
  229. IF (KSTEPC.NE.1) RETURN
  230. CALL INCREE(TAU,SIG,P,QTLD,DECRA,DESWA,
  231. & EVP1,EC0P1,ESW0P1,
  232. & NSTRS1,IVIEX,MFRL,IFOURL)
  233. C
  234. C ---------------------------------------------------------------
  235. C DEBUT DES ITERATIONS SUR TAU OPTIMAL /FIN SI RA PETIT
  236. C
  237. NITERA = 0
  238. 70 CONTINUE
  239. C
  240. NITERA = NITERA + 1
  241. C ____________________________________________________________
  242. C Premiere evaluation de l'etat a t+TAU12
  243. CALL AVCREE(TAU12,SIG,EPSV,EC0,ESW0,
  244. & SIG1,EPSV1,EC01,ESW01,P1,QTLD1,
  245. & DSPT,EVP1,EC0P1,ESW0P1,XMAT,
  246. & NSTRS1,IVIEX,MFRL,IFOURL)
  247. C MAJ des variables internes supplementaires le cas echeant
  248. IF ( LSTV ) THEN
  249. LEND = 1
  250. CALL CREEP(DECRA,DESWA,STV1,serd,EC0,ESW0,P1,QTLD1,
  251. & TMP12,DTMP12,PRD12,DPRD12,TIME12,TAU12,
  252. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  253. & layerc,ksptc,KSTEPC,NSSINC)
  254. IF (KSTEPC.NE.1) RETURN
  255. ENDIF
  256. C ____________________________________________________________
  257. C Reevaluation des vitesses de deformation inelastique sur la
  258. C base de l'etat a t+TAU12 calcule precedemment, puis moyenne
  259. LEND = 0
  260. CALL CREEP(DECRA,DESWA,STV1,serd,EC01,ESW01,P1,QTLD1,
  261. & TMP32,DTMP,PRD32,DPRD,TIME32,TAU,
  262. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  263. & layerc,ksptc,KSTEPC,NSSINC)
  264. IF (KSTEPC.NE.1) RETURN
  265. CALL INCREE(TAU,SIG1,P1,QTLD1,DECRA,DESWA,
  266. & EVP2,EC0P2,ESW0P2,
  267. & NSTRS1,IVIEX,MFRL,IFOURL)
  268. C
  269. DO 701 I=1,NSTRS1
  270. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  271. 701 CONTINUE
  272. EC0P2 = 0.5D0*(EC0P1+EC0P2)
  273. ESW0P2 = 0.5D0*(ESW0P1+ESW0P2)
  274. C ____________________________________________________________
  275. C Reevaluation de l'etat a t+TAU12
  276. CALL AVCREE(TAU12,SIG,EPSV,EC0,ESW0,
  277. & SIG12,EPSV12,EC012,ESW012,P12,QTLD12,
  278. & DSPT,EVP2,EC0P2,ESW0P2,XMAT,
  279. & NSTRS1,IVIEX,MFRL,IFOURL)
  280. C MAJ des variables internes supplementaires le cas echeant
  281. IF ( LSTV ) THEN
  282. LEND = 1
  283. CALL CREEP(DECRA,DESWA,STV12,serd,EC0,ESW0,P12,QTLD12,
  284. & TMP12,DTMP12,PRD12,DPRD12,TIME12,TAU12,
  285. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  286. & layerc,ksptc,KSTEPC,NSSINC)
  287. IF (KSTEPC.NE.1) RETURN
  288. ENDIF
  289. C ____________________________________________________________
  290. C Reevaluation des vitesses de deformation inelastique sur la
  291. C base de l'etat a t+TAU12 calcule precedemment
  292. LEND = 0
  293. CALL CREEP(DECRA,DESWA,STV12,serd,EC012,ESW012,P12,QTLD12,
  294. & TMP,DTMP12,PRD,DPRD12,TIME,TAU12,
  295. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  296. & layerc,ksptc,KSTEPC,NSSINC)
  297. IF (KSTEPC.NE.1) RETURN
  298. CALL INCREE(TAU12,SIG12,P12,QTLD12,DECRA,DESWA,
  299. & EVP3,EC0P3,ESW0P3,
  300. & NSTRS1,IVIEX,MFRL,IFOURL)
  301. C ____________________________________________________________
  302. C Premiere evaluation de l'etat a t+TAU
  303. CALL AVCREE(TAU12,SIG12,EPSV12,EC012,ESW012,
  304. & SIG13,EPSV13,EC013,ESW013,P13,QTLD13,
  305. & DSPT,EVP3,EC0P3,ESW0P3,XMAT,
  306. & NSTRS1,IVIEX,MFRL,IFOURL)
  307. C MAJ des variables internes supplementaires le cas echeant
  308. IF ( LSTV ) THEN
  309. LEND = 1
  310. CALL CREEP(DECRA,DESWA,STV13,serd,EC012,ESW012,P13,QTLD13,
  311. & TMP,DTMP12,PRD,DPRD12,TIME,TAU12,
  312. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  313. & layerc,ksptc,KSTEPC,NSSINC)
  314. IF (KSTEPC.NE.1) RETURN
  315. ENDIF
  316. C ____________________________________________________________
  317. C Reevaluation des vitesses de deformation inelastique sur la
  318. C base de l'etat a t+TAU calcule precedemment, puis moyenne
  319. LEND = 0
  320. CALL CREEP(DECRA,DESWA,STV13,serd,EC013,ESW013,P13,QTLD13,
  321. & TMP32,DTMP12,PRD32,DPRD12,TIME32,TAU12,
  322. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  323. & layerc,ksptc,KSTEPC,NSSINC)
  324. IF (KSTEPC.NE.1) RETURN
  325. CALL INCREE(TAU12,SIG13,P13,QTLD13,DECRA,DESWA,
  326. & EVP4,EC0P4,ESW0P4,
  327. & NSTRS1,IVIEX,MFRL,IFOURL)
  328. C
  329. DO 711 I=1,NSTRS1
  330. EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  331. 711 CONTINUE
  332. EC0P4 = 0.5D0*(EC0P3+EC0P4)
  333. ESW0P4 = 0.5D0*(ESW0P3+ESW0P4)
  334. C ____________________________________________________________
  335. C Reevaluation de l'etat a t+TAU
  336. CALL AVCREE(TAU12,SIG12,EPSV12,EC012,ESW012,
  337. & SIGF,EPINF,EC0F,ESW0F,PF,QTLDF,
  338. & DSPT,EVP4,EC0P4,ESW0P4,XMAT,
  339. & NSTRS1,IVIEX,MFRL,IFOURL)
  340. C MAJ des variables internes supplementaires le cas echeant
  341. IF ( LSTV ) THEN
  342. LEND = 1
  343. CALL CREEP(DECRA,DESWA,STVF,serd,EC012,ESW012,PF,QTLDF,
  344. & TMP,DTMP12,PRD,DPRD12,TIME,TAU12,
  345. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  346. & layerc,ksptc,KSTEPC,NSSINC)
  347. IF (KSTEPC.NE.1) RETURN
  348. ENDIF
  349. C ____________________________________________________________
  350. C Reevaluation des vitesses de deformation inelastique sur la
  351. C base de l'etat a t+TAU calcule precedemment, puis moyenne
  352. LEND = 0
  353. CALL CREEP(DECRA,DESWA,STVF,serd,EC0F,ESW0F,PF,QTLDF,
  354. & TMP32,DTMP12,PRD32,DPRD12,TIME32,TAU12,
  355. & cmnamc,leximp,LEND,coorga,nsttvc,ib,igau,
  356. & layerc,ksptc,KSTEPC,NSSINC)
  357. IF (KSTEPC.NE.1) RETURN
  358. CALL INCREE(TAU12,SIGF,PF,QTLDF,DECRA,DESWA,
  359. & EVP4,EC0P4,ESW0P4,
  360. & NSTRS1,IVIEX,MFRL,IFOURL)
  361. C
  362. DO 721 I=1,NSTRS1
  363. EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0
  364. 721 CONTINUE
  365. EC0P2 = (EC0P1+EC0P4)/6.D0+EC0P3*2.D0/3.D0
  366. ESW0P2 = (ESW0P1+ESW0P4)/6.D0+ESW0P3*2.D0/3.D0
  367. C ____________________________________________________________
  368. C Derniere evaluation de l'etat a t+TAU pour test convergence
  369. CALL AVCREE(TAU,SIG,EPSV,EC0,ESW0,
  370. & SIG1,EPSV1,EC01,ESW01,P1,QTLD1,
  371. & DSPT,EVP2,EC0P2,ESW0P2,XMAT,
  372. & NSTRS1,IVIEX,MFRL,IFOURL)
  373. C Pas de MAJ des variables internes supplementaires (inutile)
  374. C ____________________________________________________________
  375. C CALCUL DU RAPPORT : ERREUR CALCULEE / ERREUR ADMISE
  376. C
  377. DO 730 I=1,NSTRS1
  378. XX(I) = SIGF(I)-SIG1(I)
  379. 730 CONTINUE
  380. RA = SQRT(PROCON(XX,XX,NSTRS1))/(ERRABS)
  381. SQRA = SQRT(RA)
  382. C ____________________________________________________________
  383. C TEST DE FIN D'ITERATIONS / MISE A JOUR DE TAU
  384. C DIV =7 BORNE = 2
  385. C SI SQRA>7 TAU = TAU/7 ET NOUVEL ESSAI
  386. C SI 2<RA<7*7 ON VISE RA = 1 ET NOUVEL ESSAI
  387. C
  388. IF ( DTLIBR ) THEN
  389. C
  390. C Petite ruse pour dejouer l'optimisation
  391. RA1=RA*1.D0
  392. C
  393. IF ((RA.GT.DIV*DIV).OR.(RA.NE.RA1)) THEN
  394. C
  395. TAULAS = TAU
  396. TAU = TAU/DIV
  397. TAU12 = TAU*0.5D0
  398. C
  399. DTAU = TAULAS - TAU
  400. TIME12(1) = TIME12(1) - 0.5D0*DTAU
  401. TIME12(2) = TIME12(2) - 0.5D0*DTAU
  402. TIME(1) = TIME(1) - DTAU
  403. TIME(2) = TIME(2) - DTAU
  404. TIME32(1) = TIME32(1) - 1.5D0*DTAU
  405. TIME32(2) = TIME32(2) - 1.5D0*DTAU
  406. C
  407. IF ( LTMP ) THEN
  408. DTMP = dTMPdt * TAU
  409. DTMP12 = dTMPdt * TAU12
  410. TMP12 = TMP12 - 0.5D0*DTAU*dTMPdt
  411. TMP = TMP - DTAU*dTMPdt
  412. TMP32 = TMP32 - 1.5D0*DTAU*dTMPdt
  413. ENDIF
  414. IF ( LPRD ) THEN
  415. DO 740 I=1,NPAREC
  416. DPRD(I) = dPRDdt(I) * TAU
  417. DPRD12(I) = dPRDdt(I) * TAU12
  418. PRD12(I) = PRD12(I) - 0.5D0*DTAU*dPRDdt(I)
  419. PRD(I) = PRD(I) - DTAU*dPRDdt(I)
  420. PRD32(I) = PRD32(I) - 1.5D0*DTAU*dPRDdt(I)
  421. 740 CONTINUE
  422. ENDIF
  423. C
  424. GOTO 70
  425. C
  426. ELSE IF ( RA.GT.(BORNE)) THEN
  427. C
  428. TAULAS = TAU
  429. TAU = TAU/SQRA
  430. TAU12 = TAU*0.5D0
  431. C
  432. DTAU = TAULAS - TAU
  433. TIME12(1) = TIME12(1) - 0.5D0*DTAU
  434. TIME12(2) = TIME12(2) - 0.5D0*DTAU
  435. TIME(1) = TIME(1) - DTAU
  436. TIME(2) = TIME(2) - DTAU
  437. TIME32(1) = TIME32(1) - 1.5D0*DTAU
  438. TIME32(2) = TIME32(2) - 1.5D0*DTAU
  439. C
  440. IF ( LTMP ) THEN
  441. DTMP = dTMPdt * TAU
  442. DTMP12 = dTMPdt * TAU12
  443. TMP12 = TMP12 - 0.5D0*DTAU*dTMPdt
  444. TMP = TMP - DTAU*dTMPdt
  445. TMP32 = TMP32 - 1.5D0*DTAU*dTMPdt
  446. ENDIF
  447. IF ( LPRD ) THEN
  448. DO 750 I=1,NPAREC
  449. DPRD(I) = dPRDdt(I) * TAU
  450. DPRD12(I) = dPRDdt(I) * TAU12
  451. PRD12(I) = PRD12(I) - 0.5D0*DTAU*dPRDdt(I)
  452. PRD(I) = PRD(I) - DTAU*dPRDdt(I)
  453. PRD32(I) = PRD32(I) - 1.5D0*DTAU*dPRDdt(I)
  454. 750 CONTINUE
  455. ENDIF
  456. C
  457. GOTO 70
  458. C
  459. ENDIF
  460. ENDIF
  461. C ____________________________________________________________
  462. C
  463. C FIN D'ITERATIONS SUR TAU OPTIMAL / MISE A JOUR DES VARIABLES
  464. C Ici RA < BORNE
  465. C On avance en temps
  466. C
  467. DO 80 I=1,NSTRS1
  468. SIG(I) = SIGF(I)
  469. EPSV(I) = EPINF(I)
  470. 80 CONTINUE
  471. C
  472. EC0 = EC0F
  473. ESW0 = ESW0F
  474. P = PF
  475. QTLD = QTLDF
  476. IF ( LSTV ) THEN
  477. DO 90 I=1,NSTTVC
  478. STV(I) = STVF(I)
  479. 90 CONTINUE
  480. ENDIF
  481. C ---------------------------------------------------------------
  482. C
  483. C TEST DE FIN DES ITERATIONS EN SSINCREMENTS / MISE A JOUR DE TAU
  484. C * si SQRA<1/3 TAU = TAU*3
  485. C * si 1/3<SQRA<RMIN on vise RA = 1
  486. C * si RMIN<SQRA<RMAX TAU inchange
  487. C * si SQRA>RMAX on vise RA = 1
  488. C Fin des boucles en ss increments si tau = DTLEFT
  489. C
  490. IF ( TAU.LT.DTLEFT ) THEN
  491. DTLEFT = DTLEFT - TAU
  492. IF ( FAC*SQRA.LT.1.D0) THEN
  493. TAU=TAU*FAC
  494. ELSE IF ( (SQRA.LT.RMIN).OR.(SQRA.GT.RMAX) ) THEN
  495. TAU=TAU/SQRA
  496. ENDIF
  497. IF (TAU.GT.DTLEFT) TAU = DTLEFT
  498. TAU12 = TAU*0.5D0
  499. TIME12(1) = TIME(1) + TAU12
  500. TIME12(2) = TIME(2) + TAU12
  501. TIME32(1) = TIME(1) + 1.5D0*TAU
  502. TIME32(2) = TIME(2) + 1.5D0*TAU
  503. TIME(1) = TIME(1) + TAU
  504. TIME(2) = TIME(2) + TAU
  505. IF ( LTMP ) THEN
  506. DTMP = dTMPdt * TAU
  507. DTMP12 = dTMPdt * TAU12
  508. TMP12 = TMP + DTMP12
  509. TMP32 = TMP + 1.5D0*DTMP
  510. TMP = TMP + DTMP
  511. ENDIF
  512. IF ( LPRD ) THEN
  513. DO 100 I=1,NPAREC
  514. DPRD(I) = dPRDdt(I) * TAU
  515. DPRD12(I) = dPRDdt(I) * TAU12
  516. PRD12(I) = PRD(I) + DPRD12(I)
  517. PRD32(I) = PRD(I) + 1.5D0*DPRD(I)
  518. PRD(I) = PRD(I) + DPRD(I)
  519. 100 CONTINUE
  520. ENDIF
  521. GOTO 60
  522. ENDIF
  523. C
  524. IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN
  525. WRITE ( IOIMP,* ) ' PROBLEME TAU > DTLEFT '
  526. KERRE = 223
  527. RETURN
  528. ENDIF
  529. C
  530. C=======================================================================
  531. C 6 - Post-traitements pour stockage des resultats
  532. C=======================================================================
  533. C
  534. C.....Deformations inelastiques debut/fin de pas :
  535. C Passage epsilon -> gamma pour les termes extradiagonaux
  536. C ATTENTION : adaptations si extension a d'autres formulations EF
  537. C ou a d'autres options de calcul
  538. DO 110 I=4,NSTRS1
  539. EPIN0(I)=EPIN0(I)*2.D0
  540. EPINF(I)=EPINF(I)*2.D0
  541. 110 CONTINUE
  542. C
  543. C.....Variables internes a la fin du pas
  544. C
  545. VARF(1) = EC0F
  546. VARF(2) = ESW0F
  547. VARF(3) = PF
  548. VARF(4) = QTLDF
  549. IF ( LSTV ) THEN
  550. DO 120 I=1,NSTTVC
  551. VARF(4+I)=STVF(I)
  552. 120 CONTINUE
  553. ENDIF
  554. C
  555. RETURN
  556. END
  557.  
  558.  
  559.  

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