Télécharger cconst.eso

Retour à la liste

Numérotation des lignes :

cconst
  1. C CCONST SOURCE OF166741 25/11/04 21:15:10 12349
  2. SUBROUTINE CCONST(wrk52,wrk53,wrk54,WRK7,WRK8,WRK9,
  3. 1 WRK91,NVARI,NSSINC,INV,IFOUR7,T0,TF,FI0,FIF
  4. 4 ,TLIFE,NCOUR7,IB,IGAU,NBPGAU,KERREU1,iecou,xecou)
  5.  
  6. C---------------------------------------------------------------------
  7. C Objet: Calculer au cours d'un pas de temps DT, l'evolution des
  8. C variables internes a l'aide d'un schema Runge-Kutta 1.2
  9. C ---------------------------------------------------------------------
  10. C MFR1 <- MFR, XCARB <- XCAR, NSTRS1 <- NSTRS,
  11. C
  12. C---------------------------------------------------------------------
  13. C Entree: INPLAS type de materiau
  14. C MFR indice de la formulation mecanique(seulement massif ou coque
  15. C pour les materiaux endommageables)
  16. C DEPST(NSTRS1) increment des deformations totales
  17. C SIG0(NSTRS1) contraintes initiales
  18. C EPIN0(NSTRS1) deformations viscoplastiques initiales
  19. C VAR0(NVARI) variables internes initiales
  20. C NVARI nombre de variables internes
  21. C YOG(NYOG) courbe du module d'Young en fonction de T°C
  22. C YNU(NYNU) courbe du coefficient de Poisson en fonction de T°C
  23. C SIGY(NSIGY) courbe de la limite elastique en fonction de T°C
  24. C YRHO(NYRHO) courbe de la masse volumique en fonction de T°C
  25. C YALFA(NYALFA) courbe du coeff de dilatation en fonction de T°C
  26. C YN(NYN)
  27. C YM(NYM)
  28. C YKK(NYKK)
  29. C YALFA1(NYALF1) courbes des autres coefficients caracteristiques
  30. C YBETA1(NYBET1) en fonction de la T°C intervenant
  31. C YALF2(NYALF2) dans les lois d'evolution
  32. C YBET2(NYBET2)
  33. C YR(NYR)
  34. C YA(NYA)
  35. C YKX(NYKX) fonction k(X) tabulee en fonction de la temperature
  36. C NKX(NNKX) tableau de pointeurs sur les courbes de k(X)
  37. C XMAT(NCOMAT) materiau
  38. C XCARB(ICARA) caracteristiques geometriques
  39. C YSMAX(NYSMAX) intervient ds. le test de convergence des iter.
  40. C TRUC(NCOUR7) tableau de travail
  41. C PRECIS precision relative sur SIGMA
  42. C MSOUPA nombre maximal de sous pas autorises
  43. C JECHER = 0 avancer
  44. C = 1 rechercher sortie avec DTT
  45. C IFOUR7 = -3 EN DEFORM. PLANES GENER.
  46. C -2 EN CONTR.PLANES
  47. C -1 EN DEFORM. PLANES
  48. C 0 EN AXISYMETRIE
  49. C 1 EN SERIE DE FOURIER
  50. C 2 EN TRIDIM
  51. * CMATE = NOM DU MATERIAU
  52. * VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  53. * VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  54. * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  55. * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  56. * IB = NUMERO DE L ELEMENT COURANT
  57. * IGAU = NUMERO DU POINT COURANT
  58. * EPAIST= EPAISSEUR
  59. * NBPGAU= NBRE DE POINTS DE GAUSS
  60. * MELE = NUMERO DE L ELEMENT FINI
  61. * NPINT = NBRE DE POINTS D INTEGRATION
  62. * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  63. * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  64. * SECT = SECTION
  65. * LHOOK = TAILLE DE LA MATRICE DE HOOKE
  66. C DD(NSTRS1,NSTRS1) matrice de Hooke en fonction de T
  67. C DDV(NSTRS1,NSTRS1) derivee de DD
  68. C DDINV(NSTRS1,NSTRS1) inverse de DD
  69. C T0 temperature a t0
  70. C TF temperature a t0+DT
  71. C FI0 densite de fissions a t0
  72. C FIF densite de fissions a t0+DT
  73. C TREFA temperature de reference
  74. C DT pas de temps
  75. C ITHHER = 0 pas de chargement thermique et materiau constant
  76. C = 1 chargement thermique et materiau constant
  77. C = 2 chargement thermique et materiau(T)
  78. C-----------------------------------------------------------------------
  79. C
  80. C-----------------------------------------------------------------------
  81. C Sortie: SIGF(NSTRS1) contraintes finales
  82. C EPINF(NSTRS1) deformations viscoplastiques finales
  83. C VARF(NVARI) variables internes finales
  84. C DTT sous-increment de temps optimal (si JECHER=1)
  85. C TLIFE sous-increment de temps a rupture pour materiau
  86. C viscoplastique endommageable
  87. C NSSINC nombre de sous-increments si JECHER=0
  88. C INV = 1 si inversion
  89. C 0 sinon
  90. C KERRE = 0 si tout OK
  91. C <> 0 si entrees incoherentes
  92. C-----------------------------------------------------------------------
  93. C
  94. IMPLICIT INTEGER(I-N)
  95. IMPLICIT REAL*8(A-H,O-Z)
  96.  
  97. -INC CCREEL
  98.  
  99. -INC PPARAM
  100. -INC CCOPTIO
  101. -INC DECHE
  102. -INC TECOU
  103.  
  104. SEGMENT WRK7
  105. REAL*8 F(NCOUR7,2),W(NCOUR7),TRUC(NCOUR7)
  106. ENDSEGMENT
  107.  
  108. SEGMENT WRK8
  109. REAL*8 DD(NSTRS1,NSTRS1),DDV(NSTRS1,NSTRS1),DDINV(NSTRS1,NSTRS1)
  110. REAL*8 DDINVp(NSTRS1,NSTRS1)
  111. ENDSEGMENT
  112.  
  113. SEGMENT WRK9
  114. REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX)
  115. REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1)
  116. REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO)
  117. REAL*8 SIGY(NSIGY)
  118. INTEGER NKX(NNKX)
  119. ENDSEGMENT
  120.  
  121. SEGMENT WRK91
  122. REAL*8 YOG1(NYOG1),YNU1(NYNU1),YALFT1(NYALFT1),YSMAX1(NYSMAX1)
  123. REAL*8 YN1(NYN1),YM1(NYM1),YKK1(NYKK1),YALF2(NYALF2)
  124. REAL*8 YBET2(NYBET2),YR1(NYR1),YA1(NYA1),YQ1(NYQ1),YRHO1(NYRHO1)
  125. REAL*8 SIGY1(NSIGY1)
  126. ENDSEGMENT
  127.  
  128. DIMENSION VAR(100),VAR1(100),VARP1(100),VARP2(100)
  129. DIMENSION CRIGI(12),VAR12(100),VARP3(100)
  130. DIMENSION VARP4(100),VAR13(100),VART(100)
  131. DIMENSION VART1(100),ZMAT(100),XM(6)
  132. C
  133. C#MC 21/01/99 : les tableaux doivent dimensionnes en fonction
  134. C du plus grand INFELE(16) (voir elquoi.eso)
  135. DIMENSION SIG(8),SIG1(8),SIG12(8),SIG13(8)
  136. DIMENSION DSPT(8),EPSTHD(8),XX(8)
  137. DIMENSION EVP1(8),EVP2(8),XPM1(8),XPM2(8),EVP3(8),EVP4(8)
  138. DIMENSION XPM3(8),XPM4(8)
  139. DIMENSION SIGP1(8),SIGP2(8), SIGP3(8), SIGP4(8)
  140. DIMENSION EPSV(8),EPSV1(8),EPSV12(8),EPSV13(8)
  141.  
  142. logical dtlibr,iforce,ilog
  143.  
  144. CALL ZERO(SIG1 ,8 ,1)
  145.  
  146. NSTRS1 = iecou.NSTRSS
  147. MFRl = iecou.MFR1
  148. NCOMAT = NMATT
  149. jnplas = INPLAS
  150. C*? ifour7 = necou.IFOURB
  151.  
  152. TPS0 = TEMP0
  153. TPSF = TEMPF
  154. TPSX = MAX(ABS(TPS0),ABS(TPSF))
  155. DT0 = TPSF - TPS0
  156. IF (ABS(DT0).LE.ABS(XZPREC*TPSX)) DT0 = 0.D0
  157.  
  158. iffo=0
  159. IVTEST=0
  160. * pasbea=0.d0
  161. PRELOC=1.d-8
  162. msoupa=1000000
  163. * write(6,*) 'cconst ncomat',ncomat,xmat(/1)
  164. * write(6,*) (xmat(iu),iu=1,xmat(/1))
  165. dtlibr=.TRUE.
  166. C Test sur l'identite de toutes les listes de temperatures des coefficients
  167. C intervenant dans les lois d'evolutions non-lineaires des variables internes
  168. IF (jnplas.EQ.29) THEN
  169. * write(6,*) 'cconst avant test kerre',kerre
  170. CALL TEST(YN,NYN,YM,NYM,YKK,NYKK,YALFA1,NYALF1,YBETA1,NYBET1,
  171. & YR,NYR,YA,NYA,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,ITEST)
  172. * write(6,*) 'cconst avant test kerre',kerre
  173. ENDIF
  174. IF (jnplas.EQ.142) THEN
  175. * write(6,*) 'cconst avant test1 kerre',kerre
  176. CALL TEST1(YN1,NYN1,YM1,NYM1,YKK1,NYKK1,YALF2,NYALF2,YBET2,
  177. & NYBET2,YR1,NYR1,YA1,NYA1,SIGY1,NSIGY1,YQ1,NYQ1,ITEST)
  178. * write(6,*) 'cconst avant test1 kerre',kerre
  179. ENDIF
  180. C
  181. KERRE = 0
  182. IF (MFRl.NE.1.AND.MFRl.NE.3.AND.MFRl.NE.5.AND.MFRl.NE.17.AND.
  183. & MFRl.NE.31.AND.MFRl.NE.33) THEN
  184. KERRE = 99
  185. RETURN
  186. ENDIF
  187. *
  188. * AM 5/5/00 MFRl = 33 : MODELES 19 A 24 pour le moment
  189. * AM 27/5/3 : ET 44,45
  190. IF (MFRl.EQ.33) THEN
  191. IF ((jnplas.LT.19.OR.jnplas.GT.24).AND.
  192. & (jnplas.NE.44.AND.jnplas.NE.45))THEN
  193. KERRE = 99
  194. RETURN
  195. ENDIF
  196. ENDIF
  197.  
  198. * write(6,*) 'cconst MFR',MFRl
  199. IF (MFRl.EQ.3) THEN
  200. THICK = XCARB(1)
  201. ALFA = XCARB(2)
  202. ENDIF
  203. * dtprem=0.D0
  204. * dtdeux=0.d0
  205. dtleft= dt
  206. BORNE = 2.0
  207. RMAX = 1.3
  208. RMIN = 0.7
  209. DIV = 7.0
  210. FAC = 3.0
  211. TLIFE = -1.D0
  212. C
  213. C CALCUL DES INCREMENTS DE DEFORMATIONS
  214. C
  215. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  216. CALL CALSIG(DEPST,DDAUX,NSTRS1,CMATE,VALMAT,VALCAR,N2EL,
  217. 1 N2PTEL,MFRl,IFOUR7,IB,IGAU,EPAIST,NBPGAU,MELE,
  218. 2 NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,
  219. 3 D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD)
  220. C
  221. IF (IRTD.NE.1) THEN
  222. KERRE=69
  223. GOTO 998
  224. ENDIF
  225. C
  226. ENDIF
  227. IF (MFRl.EQ.3) THEN
  228. DO 10 I=1,NSTRS1/2
  229. SIG0( I)= SIG0( I)/THICK
  230. SIG0(NSTRS1/2+I)= SIG0(NSTRS1/2+I)*6.0D0/THICK/THICK
  231. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  232. DSIGT( I)= DSIGT( I)/THICK
  233. DSIGT(NSTRS1/2+I)= DSIGT(NSTRS1/2+I)*6.0D0/THICK/THICK
  234. ELSE
  235. DEPST( I)= DEPST( I)
  236. DEPST(NSTRS1/2+I)= -DEPST(NSTRS1/2+I)*THICK*0.5D0
  237. ENDIF
  238. 10 CONTINUE
  239. IF (IFOUR7.EQ.-2) THEN
  240. SIG0(2)=0.D0
  241. SIG0(4)=0.D0
  242. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  243. DSIGT(2)=0.D0
  244. DSIGT(4)=0.D0
  245. ENDIF
  246. ENDIF
  247. ENDIF
  248. C
  249. C REMISE A ZERO DE SIG A L'EXCEPTION DU MOMENT SUIVANT Z ET DE
  250. C L'EFFORT SUIVANT X (MODE I DU CHARGEMENT)
  251. C
  252. IF (MFRl.EQ.17) THEN
  253. SIG0(2) = 0.D0
  254. SIG0(3) = 0.D0
  255. SIG0(4) = 0.D0
  256. SIG0(5) = 0.D0
  257. ENDIF
  258. C
  259. C------------------------------------------
  260. C CONTROLE DE LA COHERENCE DES ENTREES
  261. C------------------------------------------
  262. IF (DT.LT.0.0) KERRE = 414
  263. IF (jnplas.EQ.63.AND.MFRl.NE.1.AND.MFRl.NE.31) THEN
  264. KERRE=99
  265. RETURN
  266. ENDIF
  267. IF (DT.EQ.0.0) DT = 1.e-20
  268. MOTERR(1:8) = ' CONST '
  269. IF (jnplas.EQ.17) THEN
  270. IF ((NVARI.NE.(6+4*NSTRS1)).AND.(MFRl.NE.5)) KERRE = 146
  271. IF ((NVARI.NE.(10+4*NSTRS1)).AND.(MFRl.EQ.5)) KERRE = 146
  272. IF (IFOUR7.NE.-2.AND.NCOMAT.LT.24) KERRE = 146
  273. IF (IFOUR7.EQ.-2.AND.NCOMAT.LT.25) KERRE = 146
  274. XMAX=XMAT(8)
  275. GOTO 30
  276. ENDIF
  277.  
  278. * write(6,*) 'cconst inplas ifourb ncomat',jnplas,ifour7,ncomat
  279. IF (MFRl.NE.33) THEN
  280. IF (jnplas.EQ.19.AND.IFOUR7.NE.-2.AND.NCOMAT.LT. 8)KERRE = 146
  281. IF (jnplas.EQ.19.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT. 9)KERRE = 146
  282. IF (jnplas.EQ.20.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.18)KERRE = 146
  283. IF (jnplas.EQ.20.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146
  284. IF (jnplas.EQ.21.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.12)KERRE = 146
  285. IF (jnplas.EQ.21.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.13)KERRE = 146
  286. IF (jnplas.EQ.22.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.12)KERRE = 146
  287. IF (jnplas.EQ.22.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146
  288. IF (jnplas.EQ.23.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.16)KERRE = 146
  289. IF (jnplas.EQ.23.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146
  290. IF (jnplas.EQ.24.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.11)KERRE = 146
  291. IF (jnplas.EQ.24.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.12)KERRE = 146
  292. IF (jnplas.EQ.25.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.26)KERRE = 146
  293. IF (jnplas.EQ.25.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146
  294. C IF (jnplas.EQ.29.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.13)KERRE = 146
  295. C IF (jnplas.EQ.29.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146
  296. IF (jnplas.EQ.44.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.20)KERRE = 146
  297. IF (jnplas.EQ.44.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146
  298. IF (jnplas.EQ.45.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.27)KERRE = 146
  299. IF (jnplas.EQ.45.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.28)KERRE = 146
  300. IF (jnplas.EQ.53.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.28)KERRE = 146
  301. IF (jnplas.EQ.53.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.29)KERRE = 146
  302. IF (jnplas.EQ.61.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.18)KERRE = 146
  303. IF (jnplas.EQ.61.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146
  304. IF (jnplas.EQ.63.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.32)KERRE = 146
  305. IF (jnplas.EQ.63.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.33)KERRE = 146
  306. IF (jnplas.EQ.70.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.14)KERRE = 146
  307. IF (jnplas.EQ.70.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.15)KERRE = 146
  308. IF (jnplas.EQ.76.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.26)KERRE = 146
  309. IF (jnplas.EQ.76.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146
  310. IF (jnplas.EQ.77.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.18)KERRE = 146
  311. IF (jnplas.EQ.77.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146
  312. IF (jnplas.EQ.83.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.15)KERRE = 146
  313. IF (jnplas.EQ.83.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146
  314. IF (jnplas.EQ.84.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.13)KERRE = 146
  315. IF (jnplas.EQ.84.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146
  316. IF (jnplas.EQ.85.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.19)KERRE = 146
  317. IF (jnplas.EQ.85.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146
  318. IF (jnplas.EQ.86.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.17)KERRE = 146
  319. IF (jnplas.EQ.86.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.18)KERRE = 146
  320. IF (jnplas.EQ.102.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.25)KERRE = 146
  321. IF (jnplas.EQ.102.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.26)KERRE = 146
  322. IF (jnplas.EQ.130.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.10)KERRE = 146
  323. IF (jnplas.EQ.130.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146
  324. IF (jnplas.EQ.136.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.10)KERRE = 146
  325. IF (jnplas.EQ.136.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146
  326. IF (jnplas.EQ.137.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.10)KERRE = 146
  327. IF (jnplas.EQ.137.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146
  328. IF (jnplas.EQ.138.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.10)KERRE = 146
  329. IF (jnplas.EQ.138.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146
  330. IF (jnplas.EQ.139.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.10)KERRE = 146
  331. IF (jnplas.EQ.139.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146
  332. C
  333. ELSE
  334. C
  335. C cas MFRl=33
  336. C
  337. IF (jnplas.EQ.19.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.16)KERRE = 146
  338. IF (jnplas.EQ.19.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146
  339. IF (jnplas.EQ.20.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.26)KERRE = 146
  340. IF (jnplas.EQ.20.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146
  341. IF (jnplas.EQ.21.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.20)KERRE = 146
  342. IF (jnplas.EQ.21.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146
  343. IF (jnplas.EQ.22.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.20)KERRE = 146
  344. IF (jnplas.EQ.22.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.22)KERRE = 146
  345. IF (jnplas.EQ.23.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.24)KERRE = 146
  346. IF (jnplas.EQ.23.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.25)KERRE = 146
  347. IF (jnplas.EQ.24.AND.IFOUR7.NE.-2.AND.NCOMAT.LT.19)KERRE = 146
  348. IF (jnplas.EQ.24.AND.IFOUR7.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146
  349. C
  350. ENDIF
  351. C
  352. IF (IFOUR7.EQ.1) THEN
  353. KERRE = 194
  354. MOTERR(1:8) = 'FLUAGE'
  355. ENDIF
  356. XMAX=XMAT(5)
  357. IF ((jnplas.EQ.25).OR.(jnplas.EQ.53)) XMAX=XMAT(7)
  358. IF ((jnplas.EQ.76).OR.(jnplas.EQ.77)) XMAX=XMAT(7)
  359. IF ((jnplas.EQ.70).OR.(jnplas.EQ.107)) XMAX=XMAT(1)*1.D-3
  360. IF (jnplas.EQ.29) THEN
  361. CALL DERTRA(NYSMAX,YSMAX,TF,XMAX,XMAXV,TO,TO)
  362. ENDIF
  363. IF (jnplas.EQ.142) THEN
  364. CALL DERTRA(NYSMAX1,YSMAX1,TF,XMAX,XMAXV,TO,TO)
  365. ENDIF
  366. C
  367. C TEST SUR XMAX MILL 8/3/91
  368. C
  369. IF (XMAX.EQ.0.D0) THEN
  370. IF (jnplas.EQ.29) THEN
  371. CALL DERTRA(NYOG,YOG,TF,XMAX,XMAXV,TO,TO)
  372. XMAX=XMAX*1.D-3
  373. ELSEIF (jnplas.EQ.142) THEN
  374. CALL DERTRA(NYOG1,YOG1,TF,XMAX,XMAXV,TO,TO)
  375. XMAX=XMAX*1.D-3
  376. ELSEIF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  377. XMAX=XMAT(1)*1.D-3
  378. ENDIF
  379. ENDIF
  380. C
  381. 30 CONTINUE
  382. C
  383. C-----------------------------
  384. IF (KERRE.NE.0) THEN
  385. GOTO 999
  386. ENDIF
  387.  
  388. C===========================================================
  389. C A PARTIR DE MAINTENANT, LES DEFORMATIONS DE CISAILLEMENT
  390. C NE SONT PLUS DEFINIES PAR DES GAMA.
  391. C ON DIVISE DONC LES TERMES DE CISAILLEMENT PAR 2.
  392. C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE
  393. C DE LEMAITRE (jnplas=29 ET jnplas=142).
  394. C
  395. C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI:
  396. C MFRl=1 (MASSIF)
  397. C MFRl=5 (COQUES EPAISSES)
  398. C MFRl=3 (COQUES MINCES)
  399. C MFRl=17 (TUYAUX FISSURES)
  400. C MFRl=31 (BBAR)
  401. C MFRl=33 (POREUX)
  402. C
  403. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  404. C
  405. C Cas de la formulation massive
  406. C Les termes de cisaillement apparaissent
  407. C au delà de la troisieme composante
  408. C
  409. IF (MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33) THEN
  410. DO I=4,NSTRS1
  411. EPIN0(I)=0.5D0*EPIN0(I)
  412. ENDDO
  413. C
  414. C Cas des coques épaisses
  415. C Les termes de cisaillement apparaissent
  416. C au delà de la deuxieme composante
  417. C
  418. ELSE IF (MFRl.EQ.5) THEN
  419. DO I=3,NSTRS1
  420. EPIN0(I)=0.5D0*EPIN0(I)
  421. ENDDO
  422. C
  423. C Cas des coques minces
  424. C Les termes de cisaillement apparaissent
  425. C pour la troisieme et la sixieme composante
  426. C uniquement dans les cas de calculs
  427. C tridimensionnels ou d'analyse de Fourier
  428. C
  429. ELSE IF (MFRl.EQ.3) THEN
  430. IF ((IFOUR7.EQ.1).OR.(IFOUR7.EQ.2)) THEN
  431. EPIN0(3)=0.5D0*EPIN0(3)
  432. EPIN0(6)=0.5D0*EPIN0(6)
  433. ENDIF
  434. C
  435. C Reste le cas des tuyaux fissurés (MFRl=17)
  436. C
  437. ENDIF
  438. ENDIF
  439. C
  440. C===========================================================
  441. C
  442. C ----------------
  443. C INITIALISATION
  444. C ----------------
  445. ITERO = 0
  446. 6543 CONTINUE
  447.  
  448. itero = 1 + itero
  449. if ( itero.ne.1) THEN
  450. if(ib.eq.1.and.igau.eq.1) write(6,*) 'itero ', itero
  451. dtlibr = .true.
  452. preloc = preloc * 7.d0
  453. c write(6,*) ' precision modifiée ', preloc
  454. if (itero.gt.3) then
  455. **** kerre = 460
  456. kerre = 268
  457. return
  458. endif
  459. endif
  460. DTLEFT = DT
  461. TAU = DTLEFT
  462. dtaumi= dtleft / 1500.
  463. TI0=T0
  464. TI1=TF
  465. TPOINT=(TF-T0)/DT
  466. FII0=FI0
  467. FII1=FIF
  468. FPOINT=(FIF-FI0)/DT
  469. ASIG = SQRT(PROCON(SIG0,SIG0,NSTRS1))
  470. ERRABS = PRELOC*ASIG
  471. IF (XMAX.GT.ASIG) ERRABS = PRELOC*XMAX
  472. C SP write(6,*) ' ### CCONST : Initialisation de SIG et EPSV'
  473. C SP write(6,*) ' ### CCONST : SIG0(1) =', SIG0(1)
  474. DO 40 I=1,NSTRS1
  475. SIG(I) = SIG0(I)
  476. EPSV(I) = EPIN0(I)
  477. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  478. DSPT(I) = DSIGT(I)/DT
  479. ENDIF
  480. 40 CONTINUE
  481.  
  482. IF (jnplas.EQ.29) THEN
  483. C
  484. C================================================
  485. C Calcul de l increment de deformation totale reel.
  486. C On enleve donc tous les termes qui correspondent
  487. C a l influence de la temperature et de
  488. C l endommagement (travail inverse de ce qui est
  489. C fait dans le procedure increme).
  490. C================================================
  491. C
  492. ********* materiau dependant de la temperature ***********************
  493. CALL DERTRA(NYOG,YOG,T0,YUNG0,YUNGV0,TO,TO)
  494. CALL DERTRA(NYNU,YNU,T0,ENU0,ENUV0,TO,TO)
  495. XMAT(1)=YUNG0
  496. XMAT(2)=ENU0
  497. C------------------------------------------------
  498. C Calcul de la matrice de Hooke inverse DD a t=t0
  499. C------------------------------------------------
  500. CALL ELAST1(2,IFOUR7,VAR0,NVARI,XMAT,NCOMAT,YUNGV0,ENUV0,
  501. & XCARB,ICARA,MFRl,NSTRS1,DD,DDV,KERRE,2,ITHHER)
  502. C
  503. ********* materiau dependant de la temperature ***********************
  504. CALL DERTRA(NYOG,YOG,TF,YUNG1,YUNGV1,TO,TO)
  505. CALL DERTRA(NYNU,YNU,TF,ENU1,ENUV1,TO,TO)
  506. XMAT(1)=YUNG1
  507. XMAT(2)=ENU1
  508. C---------------------------------------------------
  509. C Calcul de la matrice de Hooke inverse DDINV a T=TF
  510. C---------------------------------------------------
  511. CALL ELAST1(2,IFOUR7,VAR0,NVARI,XMAT,NCOMAT,YUNGV1,ENUV1,
  512. & XCARB,ICARA,MFRl,NSTRS1,DDINV,DDV,KERRE,2,ITHHER)
  513. ***********************************************************************
  514. C
  515. CALL DERTRA(NYALFA,YALFA,T0,ALFA0,ALFAV0,TO,TO)
  516. CALL DERTRA(NYALFA,YALFA,TF,ALFAF,ALFAVF,TO,TO)
  517. CTEPS=ALFA0*(T0-TREFA)-ALFAF*(TF-TREFA)
  518. C
  519. CALL ZDANUL(DSPT,NSTRS1)
  520. AA=CTEPS
  521. DO 45 I=1,NSTRS1
  522. IF (I.GT.3) AA=0.D0
  523. r_z = DEPST(I)
  524. DO 46 J=1,NSTRS1
  525. r_z = r_z + (DDINV(I,J)-DD(I,J))*SIG0(J)
  526. 46 CONTINUE
  527. DSPT(I)=(r_z-AA)/DT
  528. 45 CONTINUE
  529. C
  530. ELSEIF (jnplas.EQ.142) THEN
  531. C
  532. C================================================
  533. C Calcul de l increment de deformation totale reel.
  534. C On enleve donc tous les termes qui correspondent
  535. C a l influence de la temperature et de
  536. C l endommagement (travail inverse de ce qui est
  537. C fait dans le procedure increme).
  538. C================================================
  539. C
  540. ********* materiau dependant de la temperature ***********************
  541. CALL DERTRA(NYOG1,YOG1,T0,YUNG0,YUNGV0,TO,TO)
  542. CALL DERTRA(NYNU1,YNU1,T0,ENU0,ENUV0,TO,TO)
  543. XMAT(1)=YUNG0
  544. XMAT(2)=ENU0
  545. C------------------------------------------------
  546. C Calcul de la matrice de Hooke inverse DD a t=t0
  547. C------------------------------------------------
  548. CALL ELAST4(2,IFOUR7,VAR0,NVARI,XMAT,NCOMAT,YUNGV0,ENUV0,
  549. & XCARB,ICARA,MFRl,NSTRS1,DD,DDV,KERRE,2,ITHHER)
  550. C
  551. ********* materiau dependant de la temperature ***********************
  552. CALL DERTRA(NYOG1,YOG1,TF,YUNG1,YUNGV1,TO,TO)
  553. CALL DERTRA(NYNU1,YNU1,TF,ENU1,ENUV1,TO,TO)
  554. XMAT(1)=YUNG1
  555. XMAT(2)=ENU1
  556. C---------------------------------------------------
  557. C Calcul de la matrice de Hooke inverse DDINV a T=TF
  558. C---------------------------------------------------
  559. CALL ELAST4(2,IFOUR7,VAR0,NVARI,XMAT,NCOMAT,YUNGV1,ENUV1,
  560. & XCARB,ICARA,MFRl,NSTRS1,DDINV,DDV,KERRE,2,ITHHER)
  561. ***********************************************************************
  562. C
  563. CALL DERTRA(NYALFT1,YALFT1,T0,ALFA0,ALFAV0,TO,TO)
  564. CALL DERTRA(NYALFT1,YALFT1,TF,ALFAF,ALFAVF,TO,TO)
  565. CTEPS=ALFA0*(T0-TREFA)-ALFAF*(TF-TREFA)
  566. C
  567. CALL ZDANUL(DSPT,NSTRS1)
  568. AA=1.D0
  569. DO I=1,NSTRS1
  570. DSPT(I)=DEPST(I)
  571. IF (I.GT.3) AA=0.D0
  572. DO J=1,NSTRS1
  573. DSPT(I)=DSPT(I)+(DDINV(I,J)*SIG0(J))
  574. DSPT(I)=DSPT(I)-(DD(I,J)*SIG0(J))
  575. ENDDO
  576. DSPT(I)=DSPT(I)-(AA*CTEPS)
  577. DSPT(I)=DSPT(I)/DT
  578. ENDDO
  579. ENDIF
  580. DO I=1,NVARI
  581. VAR(I)=VAR0(I)
  582. ENDDO
  583. IF (NVARI.LT.100) THEN
  584. DO I=NVARI+1,100
  585. VAR(I)=0.0D0
  586. ENDDO
  587. ENDIF
  588.  
  589. C ---------------------------------------------------------------------
  590. INV = 0
  591. NSSINC = 0
  592. nitera = 1
  593. nopri=0
  594. C ---------------------------------------------------------------------
  595. C DEBUT DES ITERATIONS EN SSINCREMENTS /FIN SI DTLEFT = 0
  596. C ---------------------------------------------------------------------
  597. 70 CONTINUE
  598. iforce=.false.
  599. C if(dtaumi.gt.TAU) THEN
  600. if(dtaumi.gt.TAU.and.nssinc.gt.400) THEN
  601. tau=min(dtaumi,dtleft)
  602. iforce=.true.
  603. endif
  604. NSSINC = NSSINC + 1
  605. nopri = nopri + nitera - 1
  606. IF (NSSINC.GT.msoupa) THEN
  607. DTLIBR=.FALSE.
  608. GOTO 6543
  609. C GOTO 999
  610. ENDIF
  611. C
  612. C---------------------------------------------------------------------
  613. C START OF CALCULATIONS
  614. C_____________________________________________________________________
  615. IF (MFRl.EQ.17.AND.jnplas.NE.19) GOTO 999
  616. IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.17) THEN
  617. CALL XXPT1(SIG,EPSV,VAR,EVP1,VARP1,XPM1,XMAT,NSTRS1,NVARI,
  618. & NCOMAT,MFRl)
  619. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.((jnplas.GE.19.AND.
  620. & jnplas.LE.24).OR.jnplas.EQ.61.OR.jnplas.EQ.107)) THEN
  621. C-----------------------------------------------------------
  622. C Mise a jour eventuelle de la nouvelle temperature TI1 et
  623. C de la nouvelle densite de fissions FII1
  624. C-----------------------------------------------------------
  625. C
  626. DELTAT=TPOINT*TAU
  627. TI1=TI0+DELTAT
  628. DELTAF=FPOINT*TAU
  629. FII1=FII0+DELTAF
  630. CALL INCRE1(TAU,SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI,
  631. & jnplas,NCOMAT,MFRl,FII0,FII1,TI1)
  632. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.25) THEN
  633. CALL INCRE2(SIG,VAR,EVP1,VARP1,XMAT,XMAT0,NSTRS1,MFRl,NVARI,
  634. & NCOMAT,VALMAT,VALMA0,DT0)
  635. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31).AND.jnplas.EQ.130) THEN
  636. CALL INCREP(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFRl,
  637. & NVARI,NCOMAT)
  638. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31).AND.
  639. &(jnplas.EQ.136.OR.jnplas.EQ.137.OR.
  640. &jnplas.EQ.138.OR.jnplas.EQ.139)) THEN
  641. CALL INCVAR(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFRl,
  642. & NVARI,NCOMAT,jnplas)
  643. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.76) THEN
  644. CALL INCRA2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFRl,NVARI,NCOMAT)
  645. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.77) THEN
  646. CALL INCRB2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFRl,NVARI,NCOMAT)
  647. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.53) THEN
  648. CALL INCRE5(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFRl,NVARI,NCOMAT)
  649. ELSE IF (MFRl.NE.3.AND.jnplas.EQ.63) THEN
  650. CALL INCRE7(SIG,VAR,DSPT,EVP1,VARP1,XMAT,NSTRS1,MFRl,NVARI,
  651. & NCOMAT,IFOUR7)
  652. ELSE IF (MFRl.EQ.3.AND.((jnplas.GE.19.AND.jnplas.LE.24)
  653. & .OR.jnplas.EQ.61)) THEN
  654. CALL INCRE3(TAU,SIG,EPSV,VAR,XMAT,EVP1,VARP1,ALFA,NSTRS1,
  655. & NVARI,jnplas,NCOMAT)
  656. ELSE IF (MFRl.EQ.3.AND.jnplas.EQ.25) THEN
  657. CALL INCRE4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT)
  658. ELSE IF (MFRl.EQ.3.AND.jnplas.EQ.76) THEN
  659. CALL INCRA4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT)
  660. ELSE IF (MFRl.EQ.3.AND.jnplas.EQ.77) THEN
  661. CALL INCRB4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT)
  662. ELSE IF (MFRl.EQ.3.AND.jnplas.EQ.53) THEN
  663. CALL INCRE6(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT)
  664. ELSE IF (MFRl.NE.3.AND.(jnplas.EQ.85.OR.jnplas.EQ.86.
  665. & OR.jnplas.EQ.84.OR.jnplas.EQ.102)) THEN
  666. CALL DEVFLO(jnplas,SIG,EPSV,VAR,XMAT,NCOMAT,NSTRS1,NVARI,EVP1,
  667. & VARP1,TAU)
  668. ELSE IF (MFRl.NE.3.AND.jnplas.EQ.70) THEN
  669. CALL INCRE8(SIG,VAR,T0,TF,EVP1,VARP1,XMAT,NSTRS1,MFRl,NVARI,
  670. & NCOMAT)
  671. C
  672. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.29) THEN
  673. if (nssinc.eq.1) then
  674. C
  675. C-----------------------------------------------------------
  676. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t0
  677. C ou le materiau est a la temperature TI0 comprise dans [TINF,TSUP]
  678. C-----------------------------------------------------------
  679. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,YALFA1,
  680. & NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA,
  681. & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT,
  682. & NCOMAT,TI0,TINF,TSUP,ITEST,TRUC,NCOUR7)
  683. C
  684. IF (ITHHER.EQ.2) THEN
  685. C********** materiau dependant de la temperature **********************
  686. C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF
  687. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  688. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  689. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  690. & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC,
  691. & NCOUR7)
  692. C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP
  693. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  694. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  695. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  696. & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC,
  697. & NCOUR7)
  698. C**********************************************************************
  699. ENDIF
  700. C--------------------------------------------------------------
  701. C Calcul de la derivee de la dilatation thermique /temps a t=t0
  702. C--------------------------------------------------------------
  703. CALL DERTRA(NYALFA,YALFA,TI0,ALFA0,ALFAV0,TO,TO)
  704. CALL ZDANUL(EPSTHD,NSTRS1)
  705. CTH=(ALFAV0*TPOINT*(TI0-TREFA))+(ALFA0*TPOINT)
  706. DO I=1,3
  707. EPSTHD(I)=CTH
  708. ENDDO
  709. C
  710. CALL XXCREE(TAU,SIG,EPSV,VAR,SIGP1,EVP1,VARP1,EPSTHD,DSPT,
  711. & XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,NCOMAT,
  712. & NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFRl,
  713. & XCARB,ICARA,IFOUR7,2,TI0,TPOINT,TINF,TSUP,ITEST,
  714. & ITHHER,TRUC,NCOUR7)
  715. c DO i= 1,6
  716. c WRITE(6,*) 'sigp1(',i,')= ', sigp1(i)
  717. c ENDDO
  718. c DO i= 1,6
  719. c WRITE(6,*) 'evp1(',i,')= ', evp1(i)
  720. c ENDDO
  721. c DO i= 1,6
  722. c WRITE(6,*) 'varp1(',i,')= ', varp1(i)
  723. c ENDDO
  724. CALL ESTITO(SIG,NSTRS1,VAR,NVARI,YKX,NYKX,NKX,NNKX,XMAT,
  725. & NCOMAT,TI0,TAUX,TRUC,NCOUR7)
  726. else
  727. do i=1,nstrs
  728. sigp1(i)=sigp4(i)
  729. evp1(i)=evp4(i)
  730. enddo
  731. do i=1,nvari
  732. varp1(i)=varp4(i)
  733. enddo
  734. endif
  735. C
  736. ELSE IF (MFRl.NE.3.AND.MFRl.NE.17.AND.jnplas.EQ.142) THEN
  737. if (nssinc.eq.1) then
  738. C
  739. C-----------------------------------------------------------
  740. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t0
  741. C ou le materiau est a la temperature TI0 comprise dans [TINF,TSUP]
  742. C-----------------------------------------------------------
  743. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  744. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,NYA1,
  745. & YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,NSIGY1,
  746. & XMAT,NCOMAT,TI0,TINF,TSUP,ITEST)
  747. C
  748. IF (ITHHER.EQ.2) THEN
  749. C********** materiau dependant de la temperature **********************
  750. C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF
  751. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  752. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  753. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,
  754. & NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST)
  755. C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP
  756. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  757. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  758. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,
  759. & NSIGY1,XMAT1,NCOMAT,TSUP,TO,TO,ITEST)
  760. C**********************************************************************
  761. ENDIF
  762. C--------------------------------------------------------------
  763. C Calcul de la derivee de la dilatation thermique /temps a t=t0
  764. C--------------------------------------------------------------
  765. CALL DERTRA(NYALFT1,YALFT1,TI0,ALFA0,ALFAV0,TO,TO)
  766. CALL ZDANUL(EPSTHD,NSTRS1)
  767. CTH=(ALFAV0*TPOINT*(TI0-TREFA))+(ALFA0*TPOINT)
  768. DO I=1,3
  769. EPSTHD(I)=CTH
  770. ENDDO
  771. CALL XXCRE1(TAU,SIG,EPSV,VAR,SIGP1,EVP1,VARP1,EPSTHD,DSPT,
  772. & XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,DDV,
  773. & DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFRl,XCARB,
  774. & ICARA,IFOUR7,2,TI0,TPOINT,TINF,TSUP,ITEST,
  775. & ITHHER,VART,IB,IGAU,kerre)
  776. c DO i= 1,6
  777. c WRITE(6,*) 'sigp1(',i,')= ', sigp1(i)
  778. c ENDDO
  779. c DO i= 1,6
  780. c WRITE(6,*) 'evp1(',i,')= ', evp1(i)
  781. c ENDDO
  782. c DO i= 1,6
  783. c WRITE(6,*) 'varp1(',i,')= ', varp1(i)
  784. c ENDDO
  785. VAR(8)=VART(8)
  786. CALL ESTIT1(SIG,NSTRS1,VAR,NVARI,XMAT,NCOMAT,TI0,TAUX)
  787. else
  788. do i=1,nstrs
  789. sigp1(i)=sigp4(i)
  790. evp1(i)=evp4(i)
  791. enddo
  792. do i=1,nvari
  793. varp1(i)=varp4(i)
  794. enddo
  795. endif
  796. ELSE IF (MFRl.EQ.17.AND.jnplas.EQ.19) THEN
  797. CALL TUFINC(TAU,SIG,EPSV,VAR,XMAT,XCARB,EVP1,VARP1,NSTRS1,
  798. & NVARI,jnplas,NCOMAT,KERREU1)
  799. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33)
  800. &.AND.jnplas.EQ.44) THEN
  801. CALL POUDRA(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI,NCOMAT,
  802. & KERRE)
  803. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33)
  804. &.AND.jnplas.EQ.45) THEN
  805. CALL POUDRB(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI,NCOMAT,
  806. & KERRE)
  807.  
  808. C------ CHABOCHE
  809. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33)
  810. & .AND.jnplas.EQ.165) THEN
  811. DO I=1,NCOMAT
  812. ZMAT(I) = XMAT(I)
  813. ENDDO
  814. CALL INCRE9(SIG,VAR,ZMAT,NSTRS1,EVP1,VARP1)
  815.  
  816. C------ MERIC_CAILLETAUD
  817. ELSE IF ((MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33)
  818. & .AND.jnplas.EQ.192) THEN
  819.  
  820. C write(6,*) 'cconst: ncomat',ncomat
  821. DO I=1,NCOMAT
  822. ZMAT(I) = XMAT(I)
  823. C write(6,*) 'cconst: xmat(i)',i,xmat(i)
  824. ENDDO
  825.  
  826. * Normes vecteurs orientation
  827. XNN1=0.D0
  828. XNB1=0.D0
  829. IN1 = 11
  830. IB1 = IN1+IDIM
  831. DO IM=1,IDIM
  832. XNN1=XNN1+ZMAT(IN1+IM)**2
  833. XNB1=XNB1+ZMAT(IB1+IM)**2
  834. ENDDO
  835. XNN1=SQRT(XNN1)
  836. XNB1=SQRT(XNB1)
  837. IF (XNN1.LT.XZPREC.OR.XNB1.LT.XZPREC) THEN
  838. CALL ERREUR(239)
  839. RETURN
  840. ENDIF
  841.  
  842. * Definition du tenseur d'orientation cristalline
  843. DO K=1,6
  844. XM(K)=0.D0
  845. ENDDO
  846. IJ=0
  847. DO IM=1,IDIM
  848. IJ=IJ+1
  849. XM(IJ)=(ZMAT(IN1+IM)*ZMAT(IB1+IM))/(XNN1*XNB1)
  850. ENDDO
  851. IF (IDIM.GT.1) THEN
  852. DO IM=1,IDIM-1
  853. IJ=IJ+1
  854. XM(IJ)=ZMAT(IN1+IM)*ZMAT(IB1+IM+1)
  855. XM(IJ)=XM(IJ)+ZMAT(IN1+IM+1)*ZMAT(IB1+IM)
  856. XM(IJ)=0.5D0*XM(IJ)
  857. ENDDO
  858. ENDIF
  859. C write(6,*)'XM=',(XM(kk),kk=1,NSTRS1)
  860.  
  861. * Calcul increment :
  862. CALL INCR10(SIG,VAR,ZMAT,NSTRS1,EVP1,VARP1,XM)
  863.  
  864. C------
  865. ENDIF
  866. C
  867. NITERA = 0
  868. C --------------------------------------------------------------------
  869. C DEBUT DES ITERATIONS SUR TAU OPTIMAL /FIN SI RA PETIT
  870. C --------------------------------------------------------------------
  871. 80 CONTINUE
  872. iforce=.false.
  873. C WRITE(6,*) 'NITERA', nitera
  874. * if( tau.lt.dtaumi) then
  875. if( tau.lt.dtaumi.and.nssinc.gt.400) then
  876. tau=min(dtaumi,dtleft)
  877. iforce=.true.
  878. endif
  879. IF (MFRl.EQ.3) GOTO 150
  880. IF (MFRl.EQ.17) GOTO 210
  881. IF (jnplas.EQ.17) THEN
  882. tau2=tau*0.5d0
  883. CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,EVP1,VARP1,
  884. & XPM1,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOUR7,IVTEST,
  885. & MFRl)
  886. CALL XXPT1(SIG1,EPSV1,VAR1,EVP2,VARP2,XPM2,XMAT,NSTRS1,
  887. & NVARI,NCOMAT,MFRl)
  888. DO I=1,NSTRS1
  889. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  890. XPM2(I) = 0.5D0*(XPM1(I)+XPM2(I))
  891. ENDDO
  892. DO I=1,4+NSTRS1
  893. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  894. ENDDO
  895. CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,EVP2,VARP2,
  896. & XPM2,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOUR7,IVTEST,
  897. & MFRl)
  898. CALL XXPT1(SIG12,EPSV12,VAR12,EVP3,VARP3,XPM3,XMAT,NSTRS1,
  899. & NVARI,NCOMAT,MFRl)
  900. CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,EVP3,
  901. & VARP3,XPM3,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOUR7,
  902. & IVTEST,MFRl)
  903. CALL XXPT1(SIG13,EPSV13,VAR13,EVP4,VARP4,XPM4,XMAT,NSTRS1,
  904. & NVARI,NCOMAT,MFRl)
  905. DO I=1,NSTRS1
  906. EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  907. XPM4(I) = 0.5D0*(XPM3(I)+XPM4(I))
  908. enddo
  909. DO I=1,4+NSTRS1
  910. VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  911. enddo
  912. CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,EVP4,
  913. & VARP4,XPM4,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOUR7,
  914. & IVTEST,MFRl)
  915. CALL XXPT1(SIGf,EPinf,VARf,EVP4,VARP4,XPM4,XMAT,NSTRS1,
  916. & NVARI,NCOMAT,MFRl)
  917. DO I=1,NSTRS1
  918. EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  919. XPM2(I) = (XPM1(I)+XPM4(I))/6.d0+XPM3(I)*2.d0/3.d0
  920. enddo
  921. DO I=1,4+NSTRS1
  922. VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  923. enddo
  924. CALL AVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,EVP2,VARP2,XPM2,
  925. & DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOUR7,IVTEST,MFRl)
  926. C---------
  927. ELSE IF (jnplas.EQ.44) THEN
  928. CALL AVANP(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1,
  929. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  930. CALL POUDRA(SIGf,EPinf,VARf,EVP2,VARP2,XMAT,NSTRS1,NVARI,
  931. & NCOMAT,KERRE)
  932. DO I=1,NSTRS1
  933. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  934. ENDDO
  935. VARP2(1) = 0.5D0*(VARP1(1)+VARP2(1))
  936. CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  937. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  938. * tau2=tau*0.5d0
  939. * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  940. * & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  941. * CALL POUDRA(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1,NVARI,
  942. * & NCOMAT,KERRE)
  943. * DO I=1,NSTRS1
  944. * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  945. * ENDDO
  946. * VARP2(1) = 0.5D0*(VARP1(1)+VARP2(1))
  947. * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  948. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  949. * CALL POUDRA(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1,NVARI,
  950. * & NCOMAT,KERRE)
  951. * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  952. * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  953. * CALL POUDRA(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1,NVARI,
  954. * & NCOMAT,KERRE)
  955. * DO I=1,NSTRS1
  956. * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  957. * enddo
  958. * VARP4(1) = 0.5d0*(VARP3(1)+VARP4(1))
  959. * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  960. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  961. * CALL POUDRA(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1,NVARI,
  962. * & NCOMAT,KERRE)
  963. * DO I=1,NSTRS1
  964. * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  965. * enddo
  966. * VARP2(1) = (VARP1(1)+VARP4(1))/6.d0+VARP3(1)*2.d0/3.d0
  967. * CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2,
  968. * & XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  969. *C---------
  970. ELSE IF (jnplas.EQ.45) THEN
  971. CALL AVANP(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1,
  972. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  973. CALL POUDRB(SIGf,EPinf,VARf,EVP2,VARP2,XMAT,NSTRS1,NVARI,
  974. & NCOMAT,KERRE)
  975. DO I=1,NSTRS1
  976. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  977. ENDDO
  978. VARP2(1) = 0.5d0*(VARP1(1)+VARP2(1))
  979. CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  980. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  981. C---------
  982. C CALCUL DE LA TAILLE DE GRAIN
  983. C---------
  984. CALL GRAIN(TAU,EVP1,EVP2,SIG,SIG1,VAR,VAR1,XMAT,NSTRS1,
  985. & NVARI,KERRE)
  986.  
  987.  
  988. * tau2=tau*0.5d0
  989. * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  990. * & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  991. * CALL POUDRB(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1,NVARI,
  992. * & NCOMAT,KERRE)
  993. * DO I=1,NSTRS1
  994. * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  995. * ENDDO
  996. * VARP2(1) = 0.5d0*(VARP1(1)+VARP2(1))
  997. * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  998. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  999. *C---------
  1000. *C CALCUL DE LA TAILLE DE GRAIN
  1001. *C---------
  1002. * CALL GRAIN(TAU2,EVP1,EVP2,SIG,SIG12,VAR,VAR12,XMAT,NSTRS1,
  1003. * & NVARI,KERRE)
  1004. *c
  1005. * CALL POUDRB(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1,NVARI,
  1006. * & NCOMAT,KERRE)
  1007. * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13,DSPT,
  1008. * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  1009. * CALL POUDRB(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1,NVARI,
  1010. * & NCOMAT,KERRE)
  1011. * DO I=1,NSTRS1
  1012. * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1013. * enddo
  1014. * VARP4(1) = 0.5d0*(VARP1(1)+VARP2(1))
  1015. * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1016. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  1017. * CALL POUDRB(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1,NVARI,
  1018. * & NCOMAT,KERRE)
  1019. * DO I=1,NSTRS1
  1020. * EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1021. * enddo
  1022. * VARP2(1) =(VARP1(1)+VARP2(1))/6.d0+VARP3(1)*2.d0/3.d0
  1023. * CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2,
  1024. * & XMAT,NSTRS1,NVARI,IFOUR7,NCOMAT)
  1025. *C---------
  1026. *C CALCUL DE LA TAILLE DE GRAIN
  1027. *C---------
  1028. * CALL GRAIN(TAU2,EVP3,EVP4,SIG12,SIGf,VAR12,VARf,XMAT,NSTRS1,
  1029. * & NVARI,KERRE)
  1030. *C---------
  1031. ELSE IF ((jnplas.GE.19.AND.jnplas.LE.24).OR.jnplas.EQ.61.OR.
  1032. & jnplas.EQ.107) THEN
  1033. tau2=tau*0.5d0
  1034. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1035. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1036. C-----------------------------------------------------------
  1037. C Mise a jour eventuelle de la nouvelle temperature TI1 et
  1038. C de la nouvelle densite de fissions FII1
  1039. C-----------------------------------------------------------
  1040. C
  1041. DELTAT=TPOINT*TAU
  1042. TI1=TI0+DELTAT
  1043. DELTAF=FPOINT*TAU
  1044. FII1=FII0+DELTAF
  1045. IF (jnplas.EQ.107) VAR1(3)=VAR(3)
  1046. CALL INCRE1(TAU,SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1,
  1047. & NVARI,jnplas,NCOMAT,MFRl,FII0,FII1,TI1)
  1048. DO I=1,NSTRS1
  1049. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1050. ENDDO
  1051. IF (jnplas.EQ.24.OR.jnplas.EQ.107) THEN
  1052. IF (jnplas.EQ.107) VARPBU=VARP2(3)
  1053. DO I=1,NVARI
  1054. VARP2(I)=0.5D0*(VARP1(I)+VARP2(I))
  1055. ENDDO
  1056. ELSE
  1057. DO I=1,2*NSTRS1+2
  1058. VARP2(I)= 0.5D0*(VARP1(I) + VARP2(I))
  1059. ENDDO
  1060. DO I=2*NSTRS1+4,NVARI
  1061. VARP2(I)= 0.5D0*(VARP1(I) + VARP2(I))
  1062. ENDDO
  1063. ENDIF
  1064. C-----------------------------------------------------------
  1065. C Mise a jour eventuelle de la nouvelle temperature TI1 et
  1066. C de la nouvelle densite de fissions FII1
  1067. C-----------------------------------------------------------
  1068. C
  1069. DELTAT=TPOINT*TAU2
  1070. TI12=TI0+DELTAT
  1071. DELTAF=FPOINT*TAU2
  1072. FII12=FII0+DELTAF
  1073. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1074. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1075. IF (jnplas.EQ.107) VAR12(3)=VAR(3)
  1076. CALL INCRE1(TAU2,SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1,
  1077. & NVARI,jnplas,NCOMAT,MFRl,FII0,FII12,TI12)
  1078. C-----------------------------------------------------------
  1079. C Mise a jour eventuelle de la nouvelle temperature TI1 et
  1080. C de la nouvelle densite de fissions FII1
  1081. C-----------------------------------------------------------
  1082. C
  1083. TI1=TI12+DELTAT
  1084. FII1=FII12+DELTAF
  1085. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1086. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1087. CALL INCRE1(TAU2,SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1,
  1088. & NVARI,jnplas,NCOMAT,MFRl,FII12,FII1,TI1)
  1089. DO I=1,NSTRS1
  1090. EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  1091. enddo
  1092. IF (jnplas.EQ.24.OR.jnplas.EQ.107) THEN
  1093. DO I=1,NVARI
  1094. VARP4(I)=0.5D0*(VARP3(I)+VARP4(I))
  1095. enddo
  1096. ELSE
  1097. DO I=1,2*NSTRS1+2
  1098. VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I))
  1099. enddo
  1100. DO I=2*NSTRS1+4,NVARI
  1101. VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I))
  1102. enddo
  1103. ENDIF
  1104. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1105. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1106. C-----------------------------------------------------------
  1107. C Mise a jour eventuelle de la nouvelle temperature TI1 et
  1108. C de la nouvelle densite de fissions FII1
  1109. C-----------------------------------------------------------
  1110. C
  1111. DELTAT=TPOINT*TAU2
  1112. TI12=TI0+DELTAT
  1113. DELTAF=FPOINT*TAU2
  1114. FII12=FII0+DELTAF
  1115. IF (jnplas.EQ.107) VARf(3)=VAR(3)
  1116. CALL INCRE1(TAU2,SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1,
  1117. & NVARI,jnplas,NCOMAT,MFRl,FII0,FII12,TI12)
  1118. DO I=1,NSTRS1
  1119. EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1120. enddo
  1121. IF (jnplas.EQ.24.OR.jnplas.EQ.107) THEN
  1122. DO I=1,NVARI
  1123. VARP2(I)=(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1124. enddo
  1125. IF (jnplas.EQ.107) VARP2(3)=VARPBU
  1126. ELSE
  1127. DO I=1,2*NSTRS1+2
  1128. VARP2(I)=(VARP1(I) + VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1129. enddo
  1130. DO I=2*NSTRS1+4,NVARI
  1131. VARP2(I)= (VARP1(I) + VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1132. enddo
  1133. ENDIF
  1134. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2,
  1135. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1136. IF(jnplas.EQ.107) VARf(3)=VAR1(3)
  1137. C---------
  1138. ELSE IF (jnplas.EQ.25) THEN
  1139. tau2=tau*0.5d0
  1140. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1141. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1142. CALL INCRE2(SIG1,VAR1,EVP2,VARP2,XMAT,XMAT0,NSTRS1,MFRl,
  1143. & NVARI,NCOMAT,VALMAT,VALMA0,DT0)
  1144. DO I=1,NSTRS1
  1145. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1146. ENDDO
  1147. DO I=1,NVARI
  1148. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1149. ENDDO
  1150. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1151. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1152. CALL INCRE2(SIG12,VAR12,EVP3,VARP3,XMAT,XMAT0,NSTRS1,MFRl,
  1153. & NVARI,NCOMAT,VALMAT,VALMA0,DT0)
  1154. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1155. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1156. CALL INCRE2(SIG13,VAR13,EVP4,VARP4,XMAT,XMAT0,NSTRS1,MFRl,
  1157. & NVARI,NCOMAT,VALMAT,VALMA0,DT0)
  1158. DO I=1,NSTRS1
  1159. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1160. enddo
  1161. DO I=1,NVARI
  1162. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1163. enddo
  1164. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1165. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1166. CALL INCRE2(SIGf,VARf,EVP4,VARP4,XMAT,XMAT0,NSTRS1,MFRl,
  1167. & NVARI,NCOMAT,VALMAT,VALMA0,DT0)
  1168. DO I=1,NSTRS1
  1169. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1170. enddo
  1171. DO I=1,NVARI
  1172. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1173. enddo
  1174. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1175. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1176. C---------
  1177. ELSE IF (jnplas.EQ.130) THEN
  1178. tau2=tau*0.5d0
  1179. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1180. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1181. CALL INCREP(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1182. & NCOMAT)
  1183. DO I=1,NSTRS1
  1184. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1185. ENDDO
  1186. DO I=1,NVARI
  1187. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1188. ENDDO
  1189. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1190. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1191. CALL INCREP(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFRl,NVARI,
  1192. & NCOMAT)
  1193. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1194. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1195. CALL INCREP(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1196. & NCOMAT)
  1197. DO I=1,NSTRS1
  1198. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1199. enddo
  1200. DO I=1,NVARI
  1201. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1202. enddo
  1203. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1204. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1205. CALL INCREP(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1206. & NCOMAT)
  1207. DO I=1,NSTRS1
  1208. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1209. enddo
  1210. DO I=1,NVARI
  1211. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1212. enddo
  1213. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1214. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1215. C---------
  1216. C--------- LOI CHAB_SINH_R, CHAB_SINH_X (Runge Kuta 2-3)
  1217. ELSE IF (jnplas.EQ.136.OR.jnplas.EQ.137.OR.
  1218. a jnplas.EQ.138.OR.jnplas.EQ.139) THEN
  1219. tau2=tau*0.5d0
  1220. C write(6,*)'première entrée dans advac'
  1221. CALL ADVAR(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1222. & DEPST,VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1223. C write(6,*)'sortie de advac'
  1224. C write(6,*)'seconde entrée dans increp'
  1225. CALL INCVAR(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1226. & NCOMAT,jnplas)
  1227. C write(6,*)'sortie de increp'
  1228. DO I=1,NSTRS1
  1229. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1230. ENDDO
  1231. DO I=1,2
  1232. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1233. ENDDO
  1234. C write(6,*)'seconde entrée dans advac'
  1235. CALL ADVAR(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1236. & DEPST,VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1237. C write(6,*)'sortie de advac'
  1238. C write(6,*)'troisième entrée entrée dans increp'
  1239. CALL INCVAR(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFRl,NVARI,
  1240. & NCOMAT,jnplas)
  1241. C write(6,*)'sortie de increp'
  1242. C write(6,*)'troisième entrée dans advac'
  1243. CALL ADVAR(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1244. & EVP3,DEPST,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1245. C write(6,*)'sortie de advac'
  1246. C write(6,*)'quatrième entrée dans increp'
  1247. CALL INCVAR(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1248. & NCOMAT,jnplas)
  1249. C write(6,*)'sortie de increp'
  1250. DO I=1,NSTRS1
  1251. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1252. enddo
  1253. DO I=1,2
  1254. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1255. enddo
  1256. C write(6,*)'quatrième entrée dans advac'
  1257. CALL ADVAR(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1258. & EVP4,DEPST,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1259. C write(6,*)'sortie de advac'
  1260. C write(6,*)'cinquième entrée dans increp'
  1261. CALL INCVAR(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1262. & NCOMAT,jnplas)
  1263. C write(6,*)'sortie de increp'
  1264. DO I=1,NSTRS1
  1265. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1266. enddo
  1267. DO I=1,2
  1268. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1269. enddo
  1270. C write(6,*)'cinquième entrée dans advac'
  1271. CALL ADVAR(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1272. & DEPST,VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1273. C write(6,*)'sortie de advac'
  1274. C---------
  1275. C---------
  1276. ELSE IF (jnplas.EQ.76) THEN
  1277. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1,
  1278. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1279. CALL INCRA2(SIGf,VARf,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1280. & NCOMAT)
  1281. DO I=1,NSTRS1
  1282. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  1283. ENDDO
  1284. DO I=1,NVARI
  1285. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  1286. ENDDO
  1287. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1288. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1289. * tau2=tau*0.5d0
  1290. * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1291. * & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1292. * CALL INCRA2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1293. * & NCOMAT)
  1294. * DO I=1,NSTRS1
  1295. * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  1296. * ENDDO
  1297. * DO I=1,NVARI
  1298. * VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  1299. * ENDDO
  1300. * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1301. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1302. * CALL INCRA2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFRl,NVARI,
  1303. * & NCOMAT)
  1304. * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1305. * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1306. * CALL INCRA2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1307. * & NCOMAT)
  1308. * DO I=1,NSTRS1
  1309. * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1310. * enddo
  1311. * DO I=1,NVARI
  1312. * VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1313. * enddo
  1314. * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1315. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1316. * CALL INCRA2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1317. * & NCOMAT)
  1318. * DO I=1,NSTRS1
  1319. * EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1320. * enddo
  1321. * DO I=1,NVARI
  1322. * VARP2(I) = (VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1323. * enddo
  1324. * CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1325. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1326. C---------
  1327. ELSE IF (jnplas.EQ.77) THEN
  1328. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1,
  1329. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1330. CALL INCRB2(SIGf,VARf,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1331. & NCOMAT)
  1332. DO I=1,NSTRS1
  1333. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  1334. enddo
  1335. DO I=1,NVARI
  1336. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  1337. enddo
  1338. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1339. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1340.  
  1341. * tau2=tau*0.5d0
  1342. * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1343. * & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1344. * CALL INCRB2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1345. * & NCOMAT)
  1346. * DO I=1,NSTRS1
  1347. * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  1348. * enddo
  1349. * DO I=1,NVARI
  1350. * VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  1351. * enddo
  1352. * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1353. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1354. * CALL INCRB2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFRl,NVARI,
  1355. * & NCOMAT)
  1356. * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1357. * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1358. * CALL INCRB2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1359. * & NCOMAT)
  1360. * DO I=1,NSTRS1
  1361. * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1362. * enddo
  1363. * DO I=1,NVARI
  1364. * VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1365. * enddo
  1366. * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1367. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1368. * CALL INCRB2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1369. * & NCOMAT)
  1370. * DO I=1,NSTRS1
  1371. * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1372. * enddo
  1373. * DO I=1,NVARI
  1374. * VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1375. * enddo
  1376. * CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1377. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1378. C---------
  1379. ELSE IF (jnplas.EQ.53) THEN
  1380. tau2=tau*0.5d0
  1381. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1382. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1383. CALL INCRE5(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFRl,NVARI,
  1384. & NCOMAT)
  1385. DO I=1,NSTRS1
  1386. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1387. ENDDO
  1388. DO I=1,NVARI
  1389. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1390. ENDDO
  1391. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1392. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1393. CALL INCRE5(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFRl,NVARI,
  1394. & NCOMAT)
  1395. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1396. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1397. CALL INCRE5(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1398. & NCOMAT)
  1399. DO I=1,NSTRS1
  1400. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1401. enddo
  1402. DO I=1,NVARI
  1403. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1404. enddo
  1405. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1406. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1407. CALL INCRE5(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFRl,NVARI,
  1408. & NCOMAT)
  1409. DO I=1,NSTRS1
  1410. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1411. enddo
  1412. DO I=1,NVARI
  1413. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1414. enddo
  1415. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1416. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1417. C---------
  1418. ELSE IF (jnplas.EQ.85.OR.jnplas.EQ.86.OR.jnplas.EQ.84.OR.
  1419. & jnplas.EQ.102) THEN
  1420. tau2=tau*0.5d0
  1421. CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1422. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1423. & MFRl)
  1424. CALL DEVFLO(jnplas,SIG1,EPSV1,VAR1,XMAT,NCOMAT,NSTRS1,NVARI,
  1425. & EVP2,VARP2,TAU2)
  1426. DO I=1,NSTRS1
  1427. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1428. ENDDO
  1429. DO I=1,NVARI
  1430. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1431. ENDDO
  1432. C >>>> SI JE SUIS SUR LE PREMIER PAS <<<<
  1433. C et que j'ai calcule le resultat a la main
  1434. C _________________________________________
  1435. IF (VAR(12).GT.1.D0) THEN
  1436. C
  1437. DO I=1,NVARI
  1438. VARP2(I) = VARP1(I)
  1439. ENDDO
  1440. DO I=1,NSTRS1
  1441. EVP2(I) = EVP1(I)
  1442. ENDDO
  1443. ENDIF
  1444. C
  1445. CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1446. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1447. & MFRl)
  1448. CALL DEVFLO(jnplas,SIG12,EPSV12,VAR12,XMAT,NCOMAT,NSTRS1,
  1449. & NVARI,EVP3,VARP3,TAU2)
  1450. CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1451. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  1452. & NCOMAT,MFRl)
  1453. CALL DEVFLO(jnplas,SIG13,EPSV13,VAR13,XMAT,NCOMAT,NSTRS1,
  1454. & NVARI,EVP4,VARP4,TAU2)
  1455. C print*,'==>4',VARP4(2),VARP4(3)
  1456. DO I=1,NSTRS1
  1457. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1458. enddo
  1459. C
  1460. DO I=1,NVARI
  1461. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1462. enddo
  1463. CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1464. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  1465. & NCOMAT,MFRl)
  1466. CALL DEVFLO(jnplas,SIGf,EPinf,VARf,XMAT,NCOMAT,NSTRS1,NVARI,
  1467. & EVP4,VARP4,TAU2)
  1468. DO I=1,NSTRS1
  1469. EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1470. enddo
  1471. C
  1472. DO I=1,NVARI
  1473. VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1474. enddo
  1475. C print*,'==>5',VARP2(2),VARP2(3)
  1476. CALL ADVFLO(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1477. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1478. & MFRl)
  1479. C----------
  1480. ELSE IF (jnplas.EQ.63) THEN
  1481. tau2=tau*0.5d0
  1482. CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1483. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1484. & MFRl)
  1485. CALL INCRE7(SIG1,VAR1,DSPT,EVP2,VARP2,XMAT,NSTRS1,MFRl,
  1486. & NVARI,NCOMAT,IFOUR7)
  1487. DO I=1,NSTRS1
  1488. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1489. ENDDO
  1490. DO I=1,NVARI
  1491. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1492. ENDDO
  1493. CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1494. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1495. & MFRl)
  1496. CALL INCRE7(SIG12,VAR12,DSPT,EVP3,VARP3,XMAT,NSTRS1,MFRl,
  1497. & NVARI,NCOMAT,IFOUR7)
  1498. CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1499. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  1500. & NCOMAT,MFRl)
  1501. CALL INCRE7(SIG13,VAR13,DSPT,EVP4,VARP4,XMAT,NSTRS1,MFRl,
  1502. & NVARI,NCOMAT,IFOUR7)
  1503. DO I=1,NSTRS1
  1504. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1505. enddo
  1506. DO I=1,NVARI
  1507. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1508. enddo
  1509. CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  1510. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  1511. & NCOMAT,MFRl)
  1512. CALL INCRE7(SIGf,VARf,DSPT,EVP4,VARP4,XMAT,NSTRS1,MFRl,
  1513. & NVARI,NCOMAT,IFOUR7)
  1514. DO I=1,NSTRS1
  1515. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1516. enddo
  1517. DO I=1,NVARI
  1518. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1519. enddo
  1520. CALL ADVDDI(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  1521. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT,
  1522. & MFRl)
  1523. C--------
  1524. ELSE IF (jnplas.EQ.70) THEN
  1525. tau2=tau*0.5d0
  1526. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1527. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1528. t12=(t0+tf)*0.5d0
  1529. CALL INCRE8(SIG1,VAR1,T0,T12,EVP2,VARP2,XMAT,NSTRS1,MFRl,
  1530. & NVARI,NCOMAT)
  1531. C
  1532. DO I=1,NSTRS1
  1533. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  1534. ENDDO
  1535. DO I=1,NVARI
  1536. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  1537. ENDDO
  1538. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  1539. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1540. CALL INCRE8(SIG12,VAR12,T12,TF,EVP3,VARP3,XMAT,NSTRS1,MFRl,
  1541. & NVARI,NCOMAT)
  1542. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  1543. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1544. CALL INCRE8(SIG13,VAR13,T12,TF,EVP4,VARP4,XMAT,NSTRS1,MFRl,
  1545. & NVARI,NCOMAT)
  1546. DO I=1,NSTRS1
  1547. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  1548. enddo
  1549. DO I=1,NVARI
  1550. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  1551. enddo
  1552. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VArf,DSPT,
  1553. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1554. CALL INCRE8(SIGf,VARf,T12,TF,EVP4,VARP4,XMAT,NSTRS1,MFRl,
  1555. & NVARI,NCOMAT)
  1556. DO I=1,NSTRS1
  1557. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  1558. enddo
  1559. DO I=1,NVARI
  1560. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  1561. enddo
  1562. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2,
  1563. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1564. C---------
  1565. ELSE IF (jnplas.EQ.29) THEN
  1566. C
  1567. 143 TAU2=0.5D0*TAU
  1568. * write(6,*) 'tau=',tau
  1569. * write(6,*) 'NSSINC=',NSSINC
  1570. * if (ib.eq.1.and.igau.eq.1)write (6,*) ' tau ' ,tau
  1571. CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP1,EVP1,
  1572. & VARP1,NSTRS1,NVARI)
  1573. * write(6,*) 'varp1(3)=',varp1(3)
  1574. * Do i=1,6
  1575. * write(6,*) 'sig1(',i,')=',sig1(i)
  1576. * enddo
  1577. * Do i=1,6
  1578. * write(6,*) 'epsv1(',i,')=',epsv1(i)
  1579. * enddo
  1580. * Do i=1,7
  1581. * write(6,*) 'var1(',i,')=',var1(i)
  1582. * enddo
  1583. * if (ib.eq.1.and.igau.eq.1)
  1584. * $ write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3)
  1585. aap = MAX(ABS(SIG1(1)-SIG(1)),ABS(SIG1(2)-SIG(2)))
  1586. aap = max ( aap,ABS (Sig1(3)-SIG(3)))
  1587. IF ( aap . gt . XMAX * 5.) THEN
  1588. * write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3)
  1589. rap = aap / xmax
  1590. TAU= TAU / rap
  1591. * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau'
  1592. go to 143
  1593. * do I=1,nstrs
  1594. * sig1(i)=XMAX*100.
  1595. * sigf(I)=xmax*200.
  1596. * enddo
  1597. * go to 250
  1598. endif
  1599. C
  1600. C-----------------------------------------------------------
  1601. C Mise a jour eventuelle de la nouvelle temperature TI1
  1602. C-----------------------------------------------------------
  1603. C
  1604. DELTAT=TPOINT*TAU2
  1605. TI12=TI0+DELTAT
  1606. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU/2
  1607. C ou le materiau est a la temperature TI12 comprise dans [TINF,TSUP]
  1608. C-----------------------------------------------------------
  1609. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,YALFA1,
  1610. & NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA,
  1611. & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT,
  1612. & NCOMAT,TI12,TINF,TSUP,ITEST,TRUC,NCOUR7)
  1613. C
  1614. IF (ITHHER.EQ.2) THEN
  1615. C********** materiau dependant de la temperature **********************
  1616. C---------- Initialisation du tableauXMAT1F(NCOMAT) a T=TINF
  1617. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  1618. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  1619. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  1620. & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC,
  1621. & NCOUR7)
  1622. C---------- Initialisation du tableauXMAT2P(NCOMAT) a T=TSUP
  1623. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  1624. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  1625. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  1626. & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC,
  1627. & NCOUR7)
  1628. C**********************************************************************
  1629. ENDIF
  1630. C------------------------------------------------------------------
  1631. C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU/2
  1632. C------------------------------------------------------------------
  1633. CALL DERTRA(NYALFA,YALFA,TI12,ALFA1,ALFAV1,TO,TO)
  1634. CALL ZDANUL(EPSTHD,NSTRS1)
  1635. CTH=(ALFAV1*TPOINT*(TI12-TREFA))+(ALFA1*TPOINT)
  1636. DO I=1,3
  1637. EPSTHD(I)=CTH
  1638. ENDDO
  1639. C
  1640. c DO I=1,3
  1641. c WRITE(6,*) 'sig1(',I,')= ',sig1(I)
  1642. c ENDDO
  1643. CALL XXCREE(TAU,SIG1,EPSV1,VAR1,SIGP2,EVP2,VARP2,EPSTHD,
  1644. & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,
  1645. & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,
  1646. & MFRl,XCARB,ICARA,IFOUR7,2,TI12,TPOINT,TINF,TSUP,
  1647. & ITEST,ITHHER,TRUC,NCOUR7)
  1648. c Do i=1,3
  1649. c write(6,*) 'sigp2(',i,')=',sigp2(i)
  1650. c enddo
  1651. C
  1652. do i=1,nstrs
  1653. sigp2(i) = 0.5d0* ( sigp2(i)+sigp1(i))
  1654. evp2(i) = 0.5d0* ( evp2(i)+evp1(i))
  1655. enddo
  1656. do i=1,nvari
  1657. varp2(i)= 0.5D0 * ( varp2(i)+varp1(i))
  1658. enddo
  1659. t=tau2
  1660. CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG12,EPSV12,VAR12,SIGP2,EVP2,
  1661. & VARP2,NSTRS1,NVARI)
  1662. c Do i=1,6
  1663. c write(6,*) 'sig12(',i,')=',sig12(i)
  1664. c enddo
  1665. c Do i=1,6
  1666. c write(6,*) 'epsv12(',i,')=',epsv12(i)
  1667. c enddo
  1668. c Do i=1,7
  1669. c write(6,*) 'var12(',i,')=',var12(i)
  1670. c enddo
  1671. if (tau2.ne.t) then
  1672. tau=2.d0*tau2
  1673. goto 143
  1674. endif
  1675. * if (ib.eq.1.and.igau.eq.1)
  1676. * $ write(6,*)'SIg1(1) SIg2 sig3',sig12(1),sig12(2),sig12(3)
  1677. aap = MAX(ABS(SIG12(1)-SIG(1)),ABS(SIG12(2)-SIG(2)))
  1678. aap = max ( aap,ABS (Sig12(3)-SIG(3)))
  1679. IF ( aap . gt . XMAX * 5.) THEN
  1680. * write(6,*)'SIg12(1) SIg12 SI1g3',sig12(1),sig12(2),sig12(3)
  1681. rap = aap / xmax
  1682. TAU= TAU / rap
  1683. * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau'
  1684. go to 143
  1685. * do I=1,nstrs
  1686. * sig1(i)=XMAX*100.
  1687. * sigf(I)=xmax*200.
  1688. * enddo
  1689. * go to 250
  1690. endif
  1691. C
  1692. CALL XXCREE(TAU,SIG12,EPSV12,VAR12,SIGP3,EVP3,VARP3,EPSTHD,
  1693. & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,
  1694. & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,
  1695. & MFRl,XCARB,ICARA,IFOUR7,2,TI12,TPOINT,TINF,TSUP,
  1696. & ITEST,ITHHER,TRUC,NCOUR7)
  1697. CALL AVANXX(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13,
  1698. & SIGP3,EVP3,VARP3,NSTRS1,NVARI)
  1699. DELTAT=TPOINT*TAU
  1700. TI1=TI0+DELTAT
  1701. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU
  1702. C ou le materiau est a la temperature TI1 comprise dans [TINF,TSUP]
  1703. C-----------------------------------------------------------
  1704. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  1705. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,
  1706. & NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,
  1707. & XMAT,NCOMAT,TI1,TINF,TSUP,ITEST,TRUC,NCOUR7)
  1708. IF (ITHHER.EQ.2) THEN
  1709. C********** materiau dependant de la temperature **********************
  1710. C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF
  1711. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  1712. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  1713. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  1714. & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC,
  1715. & NCOUR7)
  1716. C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP
  1717. CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,
  1718. & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,
  1719. & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,
  1720. & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC,
  1721. & NCOUR7)
  1722. C**********************************************************************
  1723. ENDIF
  1724. C------------------------------------------------------------------
  1725. C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU
  1726. C------------------------------------------------------------------
  1727. CALL DERTRA(NYALFA,YALFA,TI1,ALFA1,ALFAV1,TO,TO)
  1728. CALL ZDANUL(EPSTHD,NSTRS1)
  1729. CTH=(ALFAV1*TPOINT*(TI1-TREFA))+(ALFA1*TPOINT)
  1730. DO I=1,3
  1731. EPSTHD(I)=CTH
  1732. ENDDO
  1733. C
  1734. CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD,
  1735. & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,
  1736. & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,
  1737. & MFRl,XCARB,ICARA,IFOUR7,2,TI1,TPOINT,TINF,TSUP,
  1738. & ITEST,ITHHER,TRUC,NCOUR7)
  1739. do i=1,nstrs
  1740. sigp4(i)= 0.5D0*( sigp4(i)+sigp3(i))
  1741. evp4(i) =0.5D0*( evp4(i)+ evp3(i))
  1742. enddo
  1743. do i=1,nvari
  1744. varp4(i)=0.5D0 * ( varp4(i)+varp3(i))
  1745. enddo
  1746. call avanxx(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,SIGP4,
  1747. & EVP4,VARP4,NSTRS1,NVARI)
  1748. CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD,
  1749. & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,
  1750. & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,
  1751. & MFRl,XCARB,ICARA,IFOUR7,2,TI1,TPOINT,TINF,TSUP,
  1752. & ITEST,ITHHER,TRUC,NCOUR7)
  1753. DO I=1,NSTRS1
  1754. EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0
  1755. SIGP2(I)=(SIGP1(I)+SIGP4(I))/6.D0+SIGP3(I)*2.D0/3.D0
  1756. ENDDO
  1757. DO I=1,NVARI
  1758. VARP2(I)=(VARP1(I)+VARP4(I))/6.D0+VARP3(I)*2.D0/3.D0
  1759. ENDDO
  1760. T=TAU
  1761. CALL AVANXX(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,SIGP2,EVP2,
  1762. & VARP2,NSTRS1,NVARI)
  1763. * Do i=1,6
  1764. * write(6,*) 'sig1(',i,')=',sig1(i)
  1765. * enddo
  1766. * Do i=1,6
  1767. * write(6,*) 'epsv1(',i,')=',epsv1(i)
  1768. * enddo
  1769. * Do i=1,3
  1770. * write(6,*) 'var1(',i,')=',var1(i)
  1771. * enddo
  1772. c IF (TAU.NE.T) GOTO 143
  1773. C---------
  1774. ELSE IF (jnplas.EQ.142) THEN
  1775. C
  1776. 144 TAU2=0.5D0*TAU
  1777. C write(6,*) 'tau=',tau
  1778. C write(6,*) 'NSSINC=',NSSINC
  1779. * if (ib.eq.1.and.igau.eq.1)write (6,*) ' tau ' ,tau
  1780. CALL AVANX1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP1,EVP1,
  1781. & VARP1,NSTRS1,NVARI)
  1782. c Do i=2,4
  1783. c write(6,*) 'varp1(',i,')=',varp1(i)
  1784. c enddo
  1785. c Do i=1,6
  1786. c write(6,*) 'sig1(',i,')=',sig1(i)
  1787. c enddo
  1788. c Do i=1,6
  1789. c write(6,*) 'epsv1(',i,')=',epsv1(i)
  1790. c enddo
  1791. c Do i=1,7
  1792. c write(6,*) 'var1(',i,')=',var1(i)
  1793. c enddo
  1794. aap = MAX(ABS(SIG1(1)-SIG(1)),ABS(SIG1(2)-SIG(2)))
  1795. aap = max ( aap,ABS (Sig1(3)-SIG(3)))
  1796. IF ( aap . gt . XMAX * 5.) THEN
  1797. * write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3)
  1798. rap = aap / xmax
  1799. TAU= TAU / rap
  1800. go to 144
  1801. * do I=1,nstrs
  1802. * sig1(i)=XMAX*100.
  1803. * sigf(I)=xmax*200.
  1804. * enddo
  1805. * go to 250
  1806. endif
  1807. C
  1808. C-----------------------------------------------------------
  1809. C Mise a jour eventuelle de la nouvelle temperature TI1
  1810. C-----------------------------------------------------------
  1811. C
  1812. DELTAT=TPOINT*TAU2
  1813. TI12=TI0+DELTAT
  1814. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU/2
  1815. C ou le materiau est a la temperature TI12 comprise dans [TINF,TSUP]
  1816. C-----------------------------------------------------------
  1817. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1818. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,NYA1,
  1819. & YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,NSIGY1,
  1820. & XMAT,NCOMAT,TI12,TINF,TSUP,ITEST)
  1821. C
  1822. IF (ITHHER.EQ.2) THEN
  1823. C********** materiau dependant de la temperature **********************
  1824. C---------- Initialisation du tableauXMAT1F(NCOMAT) a T=TINF
  1825. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1826. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  1827. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,
  1828. & SIGY1,NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST)
  1829. C---------- Initialisation du tableauXMAT2P(NCOMAT) a T=TSUP
  1830. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1831. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  1832. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,
  1833. & SIGY1,NSIGY1,XMAT2,NCOMAT,TSUP,TO,TO,ITEST)
  1834. C**********************************************************************
  1835. ENDIF
  1836. C------------------------------------------------------------------
  1837. C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU/2
  1838. C------------------------------------------------------------------
  1839. CALL DERTRA(NYALFT1,YALFT1,TI12,ALFA1,ALFAV1,TO,TO)
  1840. CALL ZDANUL(EPSTHD,NSTRS1)
  1841. CTH=(ALFAV1*TPOINT*(TI12-TREFA))+(ALFA1*TPOINT)
  1842. DO I=1,3
  1843. EPSTHD(I)=CTH
  1844. ENDDO
  1845. C
  1846. c DO I=1,4
  1847. c WRITE(6,*) 'VAR1(',I,')= ',VAR1(I)
  1848. c ENDDO
  1849. c DO I=1,6
  1850. c WRITE(6,*) 'SIG1(',I,')= ',SIG1(I)
  1851. c ENDDO
  1852. CALL XXCRE1(TAU,SIG1,EPSV1,VAR1,SIGP2,EVP2,VARP2,EPSTHD,
  1853. & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,
  1854. & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFRl,
  1855. & XCARB,ICARA,IFOUR7,2,TI12,TPOINT,TINF,TSUP,
  1856. & ITEST,ITHHER,VART1,IB,IGAU,kerre)
  1857. c DO I=1,4
  1858. c WRITE(6,*) 'VAR1 ap(',I,')= ',VAR1(I)
  1859. c ENDDO
  1860. c DO I=1,4
  1861. c WRITE(6,*) 'VARP2(',I,')= ',VARP2(I)
  1862. c ENDDO
  1863. c DO I=1,6
  1864. c WRITE(6,*) 'SIGP2(',I,')= ',SIGP2(I)
  1865. c ENDDO
  1866. c DO I=1,6
  1867. c WRITE(6,*) 'EVP2(',I,')= ',EVP2(I)
  1868. c ENDDO
  1869. C
  1870. do i=1,nstrs
  1871. sigp2(i) = 0.5d0* ( sigp2(i)+sigp1(i))
  1872. evp2(i) = 0.5d0* ( evp2(i)+evp1(i))
  1873. enddo
  1874. do i=1,nvari
  1875. varp2(i)= 0.5D0 * ( varp2(i)+varp1(i))
  1876. enddo
  1877. t=tau2
  1878. CALL AVANX1(TAU2,SIG,EPSV,VAR,SIG12,EPSV12,VAR12,SIGP2,EVP2,
  1879. & VARP2,NSTRS1,NVARI)
  1880. c Do i=1,6
  1881. c write(6,*) 'sig12(',i,')=',sig12(i)
  1882. c enddo
  1883. c Do i=1,6
  1884. c write(6,*) 'epsv12(',i,')=',epsv12(i)
  1885. c enddo
  1886. c Do i=1,7
  1887. c write(6,*) 'var12(',i,')=',var12(i)
  1888. c enddo
  1889. if (tau2.ne.t) then
  1890. tau=2.d0*tau2
  1891. goto 144
  1892. endif
  1893. * if (ib.eq.1.and.igau.eq.1)
  1894. * $ write(6,*)'SIg1(1) SIg2 sig3',sig12(1),sig12(2),sig12(3)
  1895. aap = MAX(ABS(SIG12(1)-SIG(1)),ABS(SIG12(2)-SIG(2)))
  1896. aap = max ( aap,ABS (Sig12(3)-SIG(3)))
  1897. IF ( aap . gt . XMAX * 5.) THEN
  1898. * write(6,*)'SIg12(1) SIg12 SI1g3',sig12(1),sig12(2),sig12(3)
  1899. rap = aap / xmax
  1900. TAU= TAU / rap
  1901. * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau'
  1902. go to 144
  1903. * do I=1,nstrs
  1904. * sig1(i)=XMAX*100.
  1905. * sigf(I)=xmax*200.
  1906. * enddo
  1907. * go to 250
  1908. endif
  1909. C
  1910. CALL XXCRE1(TAU,SIG12,EPSV12,VAR12,SIGP3,EVP3,VARP3,EPSTHD,
  1911. & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,
  1912. & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFRl,
  1913. & XCARB,ICARA,IFOUR7,2,TI12,TPOINT,TINF,TSUP,
  1914. & ITEST,ITHHER,VART1,IB,IGAU,kerre)
  1915. CALL AVANX1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13,
  1916. & SIGP3,EVP3,VARP3,NSTRS1,NVARI)
  1917. DELTAT=TPOINT*TAU
  1918. TI1=TI0+DELTAT
  1919.  
  1920. C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU
  1921. C ou le materiau est a la temperature TI1 comprise dans [TINF,TSUP]
  1922. C-----------------------------------------------------------
  1923. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1924. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  1925. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,
  1926. & NSIGY1,XMAT,NCOMAT,TI1,TINF,TSUP,ITEST)
  1927. IF (ITHHER.EQ.2) THEN
  1928. C********** materiau dependant de la temperature **********************
  1929. C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF
  1930. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1931. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  1932. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,
  1933. & SIGY1,NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST)
  1934. C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP
  1935. CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1,
  1936. & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,
  1937. & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,
  1938. & SIGY1,NSIGY1,XMAT2,NCOMAT,TSUP,TO,TO,ITEST)
  1939. C**********************************************************************
  1940. ENDIF
  1941. C------------------------------------------------------------------
  1942. C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU
  1943. C------------------------------------------------------------------
  1944. CALL DERTRA(NYALFT1,YALFT1,TI1,ALFA1,ALFAV1,TO,TO)
  1945. CALL ZDANUL(EPSTHD,NSTRS1)
  1946. CTH=(ALFAV1*TPOINT*(TI1-TREFA))+(ALFA1*TPOINT)
  1947. DO I=1,3
  1948. EPSTHD(I)=CTH
  1949. ENDDO
  1950. C
  1951. CALL XXCRE1(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD,
  1952. & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,
  1953. & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFRl,
  1954. & XCARB,ICARA,IFOUR7,2,TI1,TPOINT,TINF,TSUP,
  1955. & ITEST,ITHHER,VART1,IB,IGAU,kerre)
  1956. do i=1,nstrs
  1957. sigp4(i)= 0.5D0*( sigp4(i)+sigp3(i))
  1958. evp4(i) =0.5D0*( evp4(i)+ evp3(i))
  1959. enddo
  1960. do i=1,nvari
  1961. varp4(i)=0.5D0 * ( varp4(i)+varp3(i))
  1962. enddo
  1963. call AVANX1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,SIGP4,
  1964. & EVP4,VARP4,NSTRS1,NVARI)
  1965. CALL XXCRE1(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD,
  1966. & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,
  1967. & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFRl,
  1968. & XCARB,ICARA,IFOUR7,2,TI1,TPOINT,TINF,TSUP,
  1969. & ITEST,ITHHER,VART,IB,IGAU,kerre)
  1970. DO I=1,NSTRS1
  1971. EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0
  1972. SIGP2(I)=(SIGP1(I)+SIGP4(I))/6.D0+SIGP3(I)*2.D0/3.D0
  1973. ENDDO
  1974. DO I=1,NVARI
  1975. VARP2(I)=(VARP1(I)+VARP4(I))/6.D0+VARP3(I)*2.D0/3.D0
  1976. ENDDO
  1977. T=TAU
  1978. CALL AVANX1(TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP2,EVP2,
  1979. & VARP2,NSTRS1,NVARI)
  1980. c Do i=1,6
  1981. c write(6,*) 'sig1(',i,')=',sig1(i)
  1982. c enddo
  1983. c Do i=1,6
  1984. c write(6,*) 'epsv1(',i,')=',epsv1(i)
  1985. c enddo
  1986. c Do i=1,7
  1987. c write(6,*) 'var1(',i,')=',var1(i)
  1988. c enddo
  1989. c IF (TAU.NE.T) GOTO 144
  1990. C---------
  1991. ELSE IF (jnplas.EQ.165) THEN
  1992. tau2=tau*0.5d0
  1993. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  1994. & VARP1,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  1995. DO I=1,NCOMAT
  1996. ZMAT(I) = 0.5D0*(XMAT(I)+XMAT0(I))
  1997. ENDDO
  1998. CALL INCRE9(SIG1,VAR1,ZMAT,NSTRS1,EVP2,VARP2)
  1999. DO I=1,NSTRS1
  2000. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2001. ENDDO
  2002. DO I=1,NVARI
  2003. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2004. ENDDO
  2005. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2006. & VARP2,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2007. CALL INCRE9(SIG12,VAR12,ZMAT,NSTRS1,EVP3,VARP3)
  2008. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2009. & EVP3,VARP3,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2010. CALL INCRE9(SIG13,VAR13,ZMAT,NSTRS1,EVP4,VARP4)
  2011. DO I=1,NSTRS1
  2012. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  2013. ENDDO
  2014. DO I=1,NVARI
  2015. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  2016. ENDDO
  2017. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARF,DSPT,
  2018. & EVP4,VARP4,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2019. DO I=1,NCOMAT
  2020. ZMAT(I) = XMAT(I)
  2021. ENDDO
  2022. CALL INCRE9(SIGF,VARF,ZMAT,NSTRS1,EVP4,VARP4)
  2023. DO I=1,NSTRS1
  2024. EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2025. ENDDO
  2026. DO I=1,NVARI
  2027. VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2028. ENDDO
  2029. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2030. & VARP2,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2031.  
  2032. C--------- MERIC_CAILLETAUD
  2033. ELSE IF (jnplas.EQ.192) THEN
  2034. tau2=tau*0.5d0
  2035. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  2036. & VARP1,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2037. DO I=1,NCOMAT
  2038. ZMAT(I) = 0.5D0*(XMAT(I)+XMAT0(I))
  2039. ENDDO
  2040. CALL INCR10(SIG1,VAR1,ZMAT,NSTRS1,EVP2,VARP2,XM)
  2041. DO I=1,NSTRS1
  2042. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2043. ENDDO
  2044. DO I=1,NVARI
  2045. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2046. ENDDO
  2047. CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2048. & VARP2,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2049. CALL INCR10(SIG12,VAR12,ZMAT,NSTRS1,EVP3,VARP3,XM)
  2050. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2051. & EVP3,VARP3,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2052. CALL INCR10(SIG13,VAR13,ZMAT,NSTRS1,EVP4,VARP4,XM)
  2053. DO I=1,NSTRS1
  2054. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  2055. ENDDO
  2056. DO I=1,NVARI
  2057. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  2058. ENDDO
  2059. CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARF,DSPT,
  2060. & EVP4,VARP4,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2061. DO I=1,NCOMAT
  2062. ZMAT(I) = XMAT(I)
  2063. ENDDO
  2064. CALL INCR10(SIGF,VARF,ZMAT,NSTRS1,EVP4,VARP4,XM)
  2065. DO I=1,NSTRS1
  2066. EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2067. ENDDO
  2068. DO I=1,NVARI
  2069. VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2070. ENDDO
  2071. CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2072. & VARP2,ZMAT,NSTRS1,NVARI,IFOUR7,jnplas,MFRl)
  2073. C---------
  2074. ENDIF
  2075. GOTO 250
  2076. C _____________________________________________________________________
  2077. 150 CONTINUE
  2078. C----------------------------------------------------------------------
  2079. C CALCULATIONS FOR GENERALISED STRESS/STRAIN FORMULATIONS
  2080. C----------------------------------------------------------------------
  2081. IF ((jnplas.GE.19.AND.jnplas.LE.24).OR.jnplas.EQ.61) THEN
  2082. tau2=tau*0.5d0
  2083. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  2084. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2085. CALL INCRE3(TAU2,SIG1,EPSV1,VAR1,XMAT,EVP2,VARP2,ALFA,
  2086. & NSTRS1,NVARI,jnplas,NCOMAT)
  2087. DO I=1,NSTRS1,1
  2088. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  2089. ENDDO
  2090. IF (jnplas.EQ.24) THEN
  2091. DO I=1,NVARI
  2092. VARP2(I)=0.5D0*(VARP1(I)+VARP2(I))
  2093. ENDDO
  2094. ELSE
  2095. DO I=1,2*NSTRS1+2
  2096. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  2097. ENDDO
  2098. DO I=2*NSTRS1+4,NVARI
  2099. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  2100. ENDDO
  2101. ENDIF
  2102. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2103. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2104. CALL INCRE3(TAU2,SIG12,EPSV12,VAR12,XMAT,EVP3,VARP3,ALFA,
  2105. & NSTRS1,NVARI,jnplas,NCOMAT)
  2106. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2107. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2108. & NCOMAT)
  2109. CALL INCRE3(TAU2,SIG13,EPSV13,VAR13,XMAT,EVP4,VARP4,ALFA,
  2110. & NSTRS1,NVARI,jnplas,NCOMAT)
  2111. DO I=1,NSTRS1
  2112. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  2113. enddo
  2114. IF (jnplas.EQ.24) THEN
  2115. DO I=1,NVARI
  2116. VARP4(I)=0.5D0*(VARP3(I)+VARP4(I))
  2117. enddo
  2118. ELSE
  2119. DO I=1,2*NSTRS1+2
  2120. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  2121. enddo
  2122. DO I=2*NSTRS1+4,NVARI
  2123. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  2124. enddo
  2125. ENDIF
  2126. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  2127. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2128. & NCOMAT)
  2129. CALL INCRE3(TAU2,SIGf,EPinf,VARf,XMAT,EVP4,VARP4,ALFA,
  2130. & NSTRS1,NVARI,jnplas,NCOMAT)
  2131. DO I=1,NSTRS1,1
  2132. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2133. enddo
  2134. IF (jnplas.EQ.24) THEN
  2135. DO I=1,NVARI
  2136. VARP2(I)=(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2137. enddo
  2138. ELSE
  2139. DO I=1,2*NSTRS1+2
  2140. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2141. enddo
  2142. DO I=2*NSTRS1+4,NVARI
  2143. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2144. enddo
  2145. endif
  2146. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2147. & VARp2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2148. C---------
  2149. ELSE IF (jnplas.EQ.25) THEN
  2150. tau2=tau*0.5d0
  2151. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  2152. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2153. CALL INCRE4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2154. & NCOMAT)
  2155. DO I=1,NSTRS1
  2156. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  2157. ENDDO
  2158. DO I=1,NVARI
  2159. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  2160. ENDDO
  2161. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2162. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2163. CALL INCRE4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI,
  2164. & NCOMAT)
  2165. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2166. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2167. & NCOMAT)
  2168. CALL INCRE4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2169. & NCOMAT)
  2170. DO I=1,NSTRS1
  2171. EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I))
  2172. enddo
  2173. DO I=1,NVARI
  2174. VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I))
  2175. enddo
  2176. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  2177. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2178. & NCOMAT)
  2179. CALL INCRE4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2180. & NCOMAT)
  2181. DO I=1,NSTRS1
  2182. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2183. enddo
  2184. DO I=1,NVARI
  2185. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2186. enddo
  2187. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2188. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2189. C---------
  2190. ELSE IF (jnplas.EQ.76) THEN
  2191. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,
  2192. & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2193. & NCOMAT)
  2194. CALL INCRA4(SIGf,VARf,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2195. & NCOMAT)
  2196. DO I=1,NSTRS1
  2197. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2198. ENDDO
  2199. DO I=1,NVARI
  2200. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2201. ENDDO
  2202. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2203. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2204. * tau2=tau*0.5d0
  2205. * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,
  2206. * & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2207. * & NCOMAT)
  2208. * CALL INCRA4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2209. * & NCOMAT)
  2210. * DO I=1,NSTRS1
  2211. * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2212. * ENDDO
  2213. * DO I=1,NVARI
  2214. * VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2215. * ENDDO
  2216. * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2217. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2218. * CALL INCRA4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI,
  2219. * & NCOMAT)
  2220. * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2221. * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2222. * & NCOMAT)
  2223. * CALL INCRA4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2224. * & NCOMAT)
  2225. * DO I=1,NSTRS1
  2226. * EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  2227. * enddo
  2228. * DO I=1,NVARI
  2229. * VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  2230. * enddo
  2231. * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  2232. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2233. * & NCOMAT)
  2234. * DO I=1,NSTRS1
  2235. * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2236. * enddo
  2237. * DO I=1,NVARI
  2238. * VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2239. * enddo
  2240. * CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2241. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2242. C---------
  2243. ELSE IF (jnplas.EQ.77) THEN
  2244. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1,
  2245. & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,ncomat)
  2246. CALL INCRB4(SIGf,VARf,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2247. & NCOMAT)
  2248. DO I=1,NSTRS1
  2249. EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I))
  2250. enddo
  2251. DO I=1,NVARI
  2252. VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I))
  2253. enddo
  2254. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2255. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2256. * tau2=tau*0.5d0
  2257. * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,
  2258. * & VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2259. * CALL INCRB4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2260. * & NCOMAT)
  2261. * DO I=1,NSTRS1
  2262. * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2263. * ENDDO
  2264. * DO I=1,NVARI
  2265. * VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2266. * ENDDO
  2267. * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2268. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2269. * CALL INCRB4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI,
  2270. * & NCOMAT)
  2271. * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2272. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2273. * & NCOMAT)
  2274. * CALL INCRB4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2275. * & NCOMAT)
  2276. * DO I=1,NSTRS1
  2277. * EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  2278. * enddo
  2279. * DO I=1,NVARI
  2280. * VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  2281. * enddo
  2282. * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  2283. * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2284. * & NCOMAT)
  2285. * CALL INCRB4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2286. * & NCOMAT)
  2287. * DO I=1,NSTRS1
  2288. * EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2289. * enddo
  2290. * DO I=1,NVARI
  2291. * VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2292. * enddo
  2293. * CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2294. * & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2295. C---------
  2296. ELSE IF (jnplas.EQ.53) THEN
  2297. tau2=tau*0.5d0
  2298. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,
  2299. & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2300. & NCOMAT)
  2301. CALL INCRE6(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI,
  2302. & NCOMAT)
  2303. DO I=1,NSTRS1
  2304. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2305. ENDDO
  2306. DO I=1,NVARI
  2307. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2308. ENDDO
  2309. CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2310. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2311. CALL INCRE6(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI,
  2312. & NCOMAT)
  2313. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2314. & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2315. & NCOMAT)
  2316. CALL INCRE6(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2317. & NCOMAT)
  2318. DO I=1,NSTRS1
  2319. EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  2320. enddo
  2321. DO I=1,NVARI
  2322. VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  2323. enddo
  2324. CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,
  2325. & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,
  2326. & NCOMAT)
  2327. CALL INCRE6(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI,
  2328. & NCOMAT)
  2329. DO I=1,NSTRS1
  2330. EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2331. enddo
  2332. DO I=1,NVARI
  2333. VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2334. enddo
  2335. CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,
  2336. & VARP2,XMAT,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2337. C---------
  2338. ENDIF
  2339. GOTO 250
  2340. C
  2341. C CAS D'UN TUYAU FISSURE EN FLUAGE SUIVANT LA LOI "NORTON"
  2342. C
  2343. 210 CONTINUE
  2344. IF (jnplas.NE.19) GOTO 999
  2345. tau2=tau*0.5d0
  2346. CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,VARP1,
  2347. & XMAT,XCARB,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2348. CALL TUFINC(TAU2,SIG1,EPSV1,VAR1,XMAT,XCARB,EVP2,VARP2,NSTRS1,
  2349. & NVARI,jnplas,NCOMAT,KERREU1)
  2350. DO I=1,6
  2351. EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I))
  2352. ENDDO
  2353. DO I=1,4
  2354. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2355. ENDDO
  2356. DO I=6,NVARI
  2357. VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I))
  2358. ENDDO
  2359. CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2,
  2360. & VARP2,XMAT,XCARB,NSTRS1,NVARI,IFOUR7,jnplas,
  2361. & NCOMAT)
  2362. CALL TUFINC(TAU2,SIG12,EPSV12,VAR12,XMAT,XCARB,EVP3,VARP3,
  2363. & NSTRS1,NVARI,jnplas,NCOMAT,KERREU1)
  2364. CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT,
  2365. & EVP3,VARP3,XMAT,XCARB,NSTRS1,NVARI,IFOUR7,jnplas,
  2366. & NCOMAT)
  2367. CALL TUFINC(TAU2,SIG13,EPSV13,VAR13,XMAT,XCARB,EVP4,VARP4,
  2368. & NSTRS1,NVARI,jnplas,NCOMAT,KERREU1)
  2369. DO I=1,6
  2370. EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I))
  2371. enddo
  2372. DO I=1,4
  2373. VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  2374. enddo
  2375. DO I=6,NVARI
  2376. VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I))
  2377. enddo
  2378. CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,EVP4,
  2379. & VARP4,XMAT,XCARB,NSTRS1,NVARI,IFOUR7,jnplas,
  2380. & NCOMAT)
  2381. CALL TUFINC(TAU2,SIGf,EPinf,VARf,XMAT,XCARB,EVP4,VARP4,NSTRS1,
  2382. & NVARI,jnplas,NCOMAT,KERREU1)
  2383. DO I=1,6
  2384. EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0
  2385. enddo
  2386. DO I=1,4
  2387. VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2388. enddo
  2389. DO I=6,NVARI
  2390. VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0
  2391. enddo
  2392. CALL TUFADV(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2,
  2393. & XMAT,XCARB,NSTRS1,NVARI,IFOUR7,jnplas,NCOMAT)
  2394. C
  2395. C----------------------------------------------------------------------
  2396. 250 CONTINUE
  2397. C ---------------------------------------------------------------------
  2398. C CALCUL DU RAPPORT : ERREUR CALCULEE / ERREUR ADMISE
  2399. C ---------------------------------------------------------------------
  2400. **** CALL ZERO(XX ,8 ,1) inutile?
  2401. DO 2501 I=1,NSTRS1
  2402. CALL VERREE(SIG1(I),ILOG)
  2403. IF (.NOT.ILOG) GOTO 2502
  2404.  
  2405. C Copie de SIGF(I) dans XTEST sinon ARGUMENT ELEMENT DE SEGMENT
  2406. CALL VERREE(SIGF(I),ILOG)
  2407. IF (.NOT.ILOG) GOTO 259
  2408. XX(I) = SIGF(I)-SIG1(I)
  2409. 2501 CONTINUE
  2410.  
  2411. 2502 CONTINUE
  2412. ITAIL= MIN(I,NSTRS1)
  2413. RA = SQRT(PROCON(XX,XX,ITAIL))/(ERRABS)
  2414. c
  2415. IF (MFRl.EQ.17 .AND. jnplas.EQ.19) THEN
  2416. RA=SQRT(XX(1)**2 + XX(6)**2)/ERRABS
  2417. ENDIF
  2418. SQRA = SQRT(RA)
  2419. C
  2420. IF (jnplas.EQ.29) THEN
  2421. RD = 0.D0
  2422. IF (VARF(3).NE.0.D0.AND.VAR1(3).GT.1.0D-5) THEN
  2423. RD = (VARF(3)-VAR1(3))/VARF(3)
  2424. RD = ABS(RD)*1.D+4
  2425. ENDIF
  2426. RA = MAX(RA,RD)
  2427. SQRA = SQRT(RA)
  2428. ELSEIF (jnplas.EQ.142) THEN
  2429. RD = 0.D0
  2430. IF (VARF(8).NE.0.D0.AND.VAR1(8).GT.1.0D-5) THEN
  2431. RD = (VARF(8)-VAR1(8))/VARF(8)
  2432. RD = ABS(RD)*1.D+4
  2433. ENDIF
  2434. RA = MAX(RA,RD)
  2435. SQRA = SQRT(RA)
  2436. ELSEIF (jnplas.EQ.25) THEN
  2437. C Convergence variables internes ONERA
  2438. RD = 0.D0
  2439. C Uniquement si multiplicateur plastique croit sensiblement
  2440. C Cas des ecrouissages cinematiques, homogenes a une contrainte
  2441. C ERRABS : precision sur la contrainte
  2442. C PRELOC : precision relative
  2443. C XN : ordre de grandeur de la contrainte
  2444. XN = ERRABS/PRELOC
  2445. DO 251 I=1,2*NSTRS1
  2446. XI = MAX(VARF(I),XN)
  2447. VR = ABS(VARF(I)-VAR1(I))/XI
  2448. IF (VR.GT.RD) RD = VR
  2449. 251 CONTINUE
  2450. C
  2451. C Cas de l'ecrouissage isotrope R
  2452. I = 4*NSTRS1+2
  2453. XI = MAX(VARF(I),XN)
  2454. VR = ABS(VARF(I)-VAR1(I))/XI
  2455. IF (VR.GT.RD) RD = VR
  2456. C
  2457. C Cas de la variable QQQ
  2458. I = 4*NSTRS1+3
  2459. XI = MAX(VARF(I),XN)
  2460. VR = ABS(VARF(I)-VAR1(I))/XI
  2461. IF (VR.GT.RD) RD=VR
  2462. C
  2463. RD = RD/ERRABS
  2464. C
  2465. C Autres variables internes : homognes a des deformations
  2466. C ERRABS2 : precision sur les deformations (1.D11~module d'Young)
  2467. C XN2 : ordre de grandeur des deformations
  2468. RD2 = 0.D0
  2469. ERRABS2 = MAX(ERRABS/1.D11,1.D-12)
  2470. XN2 = ERRABS2/PRELOC
  2471. C
  2472. DO 252 I=2*NSTRS1+1,4*NSTRS1
  2473. XI2 = MAX(VARF(I),XN2)
  2474. VR = ABS(VARF(I)-VAR1(I))/XI2
  2475. IF (VR.GT.RD2) RD2 = VR
  2476. 252 CONTINUE
  2477. C
  2478. C Cas de la deformation plastique cumulee
  2479. I = 4*NSTRS1+1
  2480. XI2 = MAX(VARF(I),XN2)
  2481. VR = ABS(VARF(I)-VAR1(I))/XI2
  2482. IF (VR.GT.RD2) RD2=VR
  2483. C
  2484. C Cas de la variable QQ
  2485. I = 4*NSTRS1+4
  2486. XI2 = MAX(VARF(I),XN2)
  2487. VR = ABS(VARF(I)-VAR1(I))/XI2
  2488. IF (VR.GT.RD2) RD2=VR
  2489. C
  2490. RD2 = RD2/ERRABS2
  2491. IF (RD2.GT.RD) RD = RD2
  2492. C
  2493. RA = MAX(RA,RD)
  2494. SQRA = SQRT(RA)
  2495. ELSEIF (jnplas.EQ.165.OR.jnplas.EQ.192) THEN
  2496. C Convergence variables internes Chaboche ou Meric_Cailletaud
  2497. RD = 0.D0
  2498. C Les variables internes sont homognes a des deformations
  2499. C ERRABS : precision sur les contraintes
  2500. C ERRABS2 : precision sur les deformations (1.D11~module d'Young)
  2501. C PRELOC : precision relative
  2502. C XN2 : ordre de grandeur des deformations
  2503. ERRABS2 = MAX(ERRABS/1.D11,1.D-12)
  2504. XN2 = ERRABS2/PRELOC
  2505. DO 260 I=1,NVARI
  2506. XI2 = MAX(VARF(I),XN2)
  2507. VR = ABS(VARF(I)-VAR1(I))/XI2
  2508. IF (VR.GT.RD) RD = VR
  2509. 260 CONTINUE
  2510. RD = RD/ERRABS2
  2511. RA = MAX(RA,RD)
  2512. SQRA = SQRT(RA)
  2513. ENDIF
  2514. C ---------------------------------------------------------------------
  2515. C TEST DE FIN D'ITERATIONS / MISE A JOUR DE TAU /OPTION JECHER
  2516. C DIV =7 BORNE = 2
  2517. C SI SQRA>7 TAU = TAU/7 ET NOUVEL ESSAI
  2518. C SI 2<RA<7*7 ON VISE RA = 1 ET NOUVEL ESSAI
  2519. C ------------------------------------------------------------------
  2520. IF (.not.iforce.and.dtlibr ) Then
  2521. c petite ruse pour dejouer l'optimisation
  2522. ra1=ra*1.d0
  2523. * write(6,*) ' ra, div tau taux' , ra, div,tau,taux
  2524. IF ((RA.GT.DIV*DIV).OR.(RA.NE.RA1)) THEN
  2525. TAU = TAU/div
  2526. IF ((jnplas.EQ.29).OR.(jnplas.EQ.142)) TAU =MIN(TAU,TAUX)
  2527. DELTAT=TPOINT*TAU
  2528. TI1=TI0+DELTAT
  2529. GOTO 80
  2530. ELSEIF ( RA.GT.(BORNE)) THEN
  2531. TAU = TAU/SQRA
  2532. IF ((jnplas.EQ.29).OR.(jnplas.EQ.142)) TAU =MIN(TAU,TAUX)
  2533. DELTAT=TPOINT*TAU
  2534. TI1=TI0+DELTAT
  2535. GOTO 80
  2536. ENDIF
  2537. ENDIF
  2538. C ---------------------------------------------------------------------
  2539. C ici ra < borne cas JECHER :
  2540. C ---------------------------------------------------------------------
  2541. C je n'ai pas trouvé comment jecher = 1 pour moi jamais. TC
  2542. IF (JECHER.EQ.1) THEN
  2543. * write(6,*) ' on passe dans jecher = 1'
  2544. DTT = TAU
  2545. NSSINC = NITERA
  2546. IF ((NSSINC.EQ.1).AND.(RA.EQ.0.0)) GOTO 999
  2547. IF (NITERA.GE.8) GOTO 999
  2548. IF (FAC*SQRA.LT.1.0) THEN
  2549. TAU = TAU*FAC
  2550. DELTAT=TPOINT*TAU
  2551. TI1=TI0+DELTAT
  2552. GOTO 80
  2553. ELSEIF ((SQRA.LT.RMIN).OR.(SQRA.GT.RMAX)) THEN
  2554. TAU = TAU/SQRA
  2555. DELTAT=TPOINT*TAU
  2556. TI1=TI0+DELTAT
  2557. GOTO 80
  2558. ENDIF
  2559. C ---------------------------------------------------------------------
  2560. C ici rmin < sqra < rmax et nitera < 8
  2561. C pas de mise @ jour des variables
  2562. C ---------------------------------------------------------------------
  2563. GOTO 999
  2564. ENDIF
  2565. C ----------------------------------------------------------------------
  2566. C FIN D'ITERATIONS / MISE A JOUR DES VARIABLES
  2567. C ici RA < BORNE
  2568. C fin des boucles sur tau optimal
  2569. C on avance en temps
  2570. C mise @ jour de SIG etc...
  2571. C -------------------------------------------------------------------
  2572. INV = INV + IVTEST
  2573. DO I=1,NSTRS1
  2574. SIG(I) = SIGF(I)
  2575. EPSV(I) = EPINF(I)
  2576. ENDDO
  2577. DO I=1,NVARI
  2578. VAR(I) = VARF(I)
  2579. ENDDO
  2580. * if(pasbea.lt.ra) pasbea=ra
  2581. if (iforce) iffo=iffo+1
  2582.  
  2583. * IF ( nssinc.eq. 1) dtprem = tau
  2584. * IF ( nssinc.eq. 2) dtseco = tau
  2585. C
  2586. IF (jnplas.EQ.29) THEN
  2587. C--------------------------------------------------------------
  2588. C Estimation du pas de temps apres la mise a jour des variables
  2589. C--------------------------------------------------------------
  2590. C
  2591. CALL ESTITO(SIG,NSTRS1,VAR,NVARI,YKX,NYKX,NKX,NNKX,XMAT,
  2592. & NCOMAT,TI1,TD,TRUC,NCOUR7)
  2593.  
  2594. IF ((VARF(3).GE.0.96).OR.(TD.LT.1.D0)) THEN
  2595. VARF(3)=1.D0
  2596. TLIFE = DT - (DTLEFT - TAU)
  2597. GOTO 999
  2598. ENDIF
  2599. C
  2600. ELSEIF (jnplas.EQ.142) THEN
  2601. C--------------------------------------------------------------
  2602. C Estimation du pas de temps apres la mise a jour des variables
  2603. C--------------------------------------------------------------
  2604. C
  2605. CALL ESTIT1(SIG,NSTRS1,VAR,NVARI,XMAT,NCOMAT,TI1,TD)
  2606.  
  2607. IF ((VARF(8).GE.0.96).OR.(TD.LT.1.D0)) THEN
  2608. VARF(8)=1.D0
  2609. TLIFE = DT - (DTLEFT - TAU)
  2610. GOTO 999
  2611. ENDIF
  2612. ENDIF
  2613. C
  2614. C --------------------------------------------------------------------
  2615. C TEST DE FIN SS INCREMENTS / MISE A JOUR DE TAU
  2616. C si SQRA<1/3 TAU = TAU*3
  2617. C si 1/3<SQRA<RMIN on vise RA = 1
  2618. C si RMIN<SQRA<RMAX TAU inchang{
  2619. C si SQRA>RMAX on vise RA = 1
  2620. C fin des boucles en ss increments si tau = dtleft
  2621. C --------------------------------------------------------------------
  2622. C
  2623. IF ( TAU.LT.DTLEFT ) THEN
  2624. * DTDEUX=TAU
  2625. DTLEFT = DTLEFT - TAU
  2626. * IF (dtlibr) then
  2627. IF ( FAC*SQRA.LT.1.D0) THEN
  2628. TAU=TAU*FAC
  2629. ELSEIF ( (SQRA.LT.RMIN).OR.(SQRA.GT.RMAX) ) THEN
  2630. TAU=TAU/SQRA
  2631. ENDIF
  2632. * else
  2633. * TAU = TAU * R
  2634. * endif
  2635. IF (TAU.GT.DTLEFT) then
  2636. TAU = DTLEFT
  2637. endif
  2638. IF ((jnplas.EQ.29).OR.(jnplas.EQ.107).OR.(jnplas.EQ.142)) THEN
  2639. C----------------------------------------------------------------------------
  2640. C Mise a jour des temperatures
  2641. C TI0 temperature au dedut du pas de sous-incrementation avec TINF<TI0<TSUP
  2642. C TI1 temperature a la fin du pas de sous-incrementation
  2643. C-----------------------------------------------------------------------------
  2644. TI0=TI1
  2645. DELTAT=TPOINT*TAU
  2646. TI1=TI0+DELTAT
  2647. ENDIF
  2648. IF (jnplas.EQ.107) THEN
  2649. C----------------------------------------------------------------------------
  2650. C Mise a jour des densites de fissions
  2651. C FII0 densite de fissions au dedut du pas de sous-incrementation
  2652. C FII1 densite de fissions a la fin du pas de sous-incrementation
  2653. C-----------------------------------------------------------------------------
  2654. FII0=FII1
  2655. DELTAF=FPOINT*TAU
  2656. FII1=FII0+DELTAF
  2657. ENDIF
  2658. GOTO 70
  2659. ENDIF
  2660. C
  2661. IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN
  2662. WRITE ( IOIMP,* ) ' PROBLEME TAU > DTLEFT '
  2663. KERRE = 223
  2664. ENDIF
  2665.  
  2666. C-----------------------------------------------------------------------
  2667. 999 CONTINUE
  2668. IF (MFRl.EQ.3) THEN
  2669. DO 1000 I=1,NSTRS1/2
  2670. SIGF( I) =SIGF( I)*THICK
  2671. SIGF(NSTRS1/2+I) =SIGF(NSTRS1/2+ I)*THICK*THICK/6.0
  2672. * DSIGT( I)=DSIGT( I)*THICK
  2673. * DSIGT(NSTRS1/2+I)=DSIGT(NSTRS1/2+I)*THICK*THICK/6.0
  2674. 1000 CONTINUE
  2675. ENDIF
  2676. C
  2677. C===========================================================
  2678. C RETOUR A LA DEFINITION NORMALE DES DEFORMATIONS
  2679. C A SAVOIR: LES DEFORMATIONS DE CISAILLEMENT SONT
  2680. C DEFINIES PAR DES GAMA.
  2681. C ON MULTIPLIE DONC LES TERMES DE CISAILLEMENT PAR 2.
  2682. C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE
  2683. C DE LEMAITRE (jnplas=29).
  2684. C
  2685. C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI:
  2686. C MFRl=1 (MASSIF)
  2687. C MFRl=5 (COQUES EPAISSES)
  2688. C MFRl=3 (COQUES MINCES)
  2689. C MFRl=17 (TUYAUX FISSURES)
  2690. C MFRl=31 (BBAR)
  2691. C MFRl=33 (POREUX)
  2692. C
  2693. IF ((jnplas.NE.29).AND.(jnplas.NE.142)) THEN
  2694. C
  2695. C Cas de la formulation massive
  2696. C Les termes de cisaillement apparaissent
  2697. C au delà de la troisieme composante
  2698. C
  2699. IF (MFRl.EQ.1.OR.MFRl.EQ.31.OR.MFRl.EQ.33) THEN
  2700. DO 14 I=4,NSTRS1
  2701. EPIN0(I)=EPIN0(I)*2.D0
  2702. EPINF(I)=EPINF(I)*2.D0
  2703. 14 CONTINUE
  2704. C
  2705. C Cas des coques épaisses
  2706. C Les termes de cisaillement apparaissent
  2707. C au delà de la deuxieme composante
  2708. C
  2709. ELSE IF (MFRl.EQ.5) THEN
  2710. DO 15 I=3,NSTRS1
  2711. EPIN0(I)=EPIN0(I)*2.D0
  2712. EPINF(I)=EPINF(I)*2.D0
  2713. 15 CONTINUE
  2714. C
  2715. C Cas des coques minces
  2716. C Les termes de cisaillement apparaissent
  2717. C pour la troisieme et la sixieme composante
  2718. C uniquement dans les cas de calculs
  2719. C tridimensionnels ou d'analyse de Fourier
  2720. C
  2721. ELSE IF (MFRl.EQ.3) THEN
  2722. IF ((IFOUR7.EQ.1).OR.(IFOUR7.EQ.2)) THEN
  2723. DO 16 I=1,NSTRS1
  2724. A=1.D0
  2725. IF (I.EQ.3) A=2.D0
  2726. IF (I.EQ.6) A=2.D0
  2727. EPIN0(I)=EPIN0(I)*A
  2728. EPINF(I)=EPINF(I)*A
  2729. 16 CONTINUE
  2730. ENDIF
  2731. C
  2732. C Reste le cas des tuyaux fissurés (MFRl=17)
  2733. C
  2734. ENDIF
  2735. ENDIF
  2736. C
  2737. C===========================================================
  2738. 998 CONTINUE
  2739. RETURN
  2740. C
  2741. C On detecte des NaN ou des Inf dans les contraintes
  2742. 259 CONTINUE
  2743. CALL ERREUR(460)
  2744.  
  2745. RETURN
  2746. END
  2747.  
  2748.  
  2749.  

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