Télécharger cconst.eso

Retour à la liste

Numérotation des lignes :

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

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