Télécharger uo2ot2.eso

Retour à la liste

Numérotation des lignes :

uo2ot2
  1. C UO2OT2 SOURCE PV090527 25/12/21 07:19:13 12434
  2. C responsable STRUB
  3. SUBROUTINE UO2OT2(MFR,IB,IGAU,DT,TETA1,TETA2,FI1,FI2,PRECIS,
  4. & MSOUPA,XMAT,IVAL,NCOMAT,NSIMP,XCAR,ICARA,SIG0,
  5. & NSTRS,DEPST,VAR0,NVARI,SIGF,VARF,DEFP,KERRE)
  6. C----------------------------------------------------------------------
  7. C CE SOUS-PROGRAMME EST APPELE DANS "COML8"
  8. C IL PREPARE L'INTEGRATION DU MODELE UO2 COUPLANT LES MODELES
  9. C OTTOSEN ET GATT_MONERIE
  10. C SCHEMA EULER-CAUCHY AVEC DECOUPAGE DU SOUS PAS D INTEGRATION EN 2
  11. C CONTROLE AVEC METHODE DE SIMPSON
  12. C----------------------------------------------------------------------
  13. C
  14. C ENTREES:
  15. C -------
  16. C MFR = INDICE DE LA FORMULATION MECANIQUE; SEULEMENT
  17. C MASSIF OU COQUES EN 3D
  18. C IB = NUMERO DE L ELEMENT
  19. C IGAU = NUMERO DU POINT D INTEGRATION
  20. C DT = PAS D INTEGRATION
  21. C TETA1 = TEMPERATURE AU DEBUT DU PAS D INTEGRATION
  22. C TETA2 = TEMPERATURE A LA FIN DU PAS D INTEGRATION
  23. C FI1 = DENSITE DE FISSION AU DEBUT DU PAS D INTEGRATION
  24. C FI2 = DENSITE DE FISSION A LA FIN DU PAS D INTEGRATION
  25. C PRECIS = PRECISION POUR LA VISCOPLASTICITE
  26. C MSOUPA = NBR. MAX. DE SOUS PAS AUTORISES POUR LA VISCOPLASTICITE
  27. C NCOMAT = NBR. DE CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU
  28. C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU
  29. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  30. C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT
  31. C ICARA = NBR. DE CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  32. C XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  33. C NSTRS = NBR. DE COMPOSANTES DES CONTR. OU DES DEFORM.
  34. C SIG0(NSTRS) = CONTR. AU DEBUT DU PAS D'INTEGRATION
  35. C DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES
  36. C NVARI = NBR. DE VARIABLES INTERNES
  37. C VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D INTEGRATION
  38. C
  39. C SORTIES
  40. C -------
  41. C SIGF(NSTRS) = CONTR. A LA FIN DU PAS D'INTEGRATION
  42. C VARF(NVARI) = VARIABLES INTERNES A LA FIN DU PAS D'INTEGRATION
  43. C DEFP(NSTRS) = INCREMENT DES DEFORM. INELASTIQUES A LA FIN DU PAS
  44. C D'INTEGRATION (FISSURATION+VISCOPLASTICITE)
  45. C KERRE = INDICE QUI REGIT LES ERREURS
  46. C----------------------------------------------------------------------
  47. C ==================================================================
  48. C ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  49. C ===================================================================
  50. C
  51. IMPLICIT INTEGER(I-N)
  52. IMPLICIT REAL*8(A-H,O-Z)
  53.  
  54. -INC PPARAM
  55. -INC CCOPTIO
  56. -INC CCREEL
  57. C
  58. PARAMETER (XZER=0.D0,UNDEMI=.5D0,UN=1.D0,DEUX=2.D0,TROIS=3.D0,
  59. & DIX=10.D0,NGAT=4)
  60. C
  61. DIMENSION XMAT(*),IVAL(*),XCAR(*)
  62. DIMENSION SIG0(*),DEPST(*),VAR0(*),SIGF(*),VARF(*),DEFP(*)
  63. C
  64. DIMENSION SIGMA0(6),DSIGMA(6),DDEF0(6),DDEFP0(6),SIGF0(6)
  65. DIMENSION SIGMA(6),DDEF(6),DDEFP(6),SIGMAF(6),DDEFPT(6)
  66. C
  67. DIMENSION WMAX(3),W(3),WMAX0(3),W0(3),
  68. & GFTR(3),GS(3),XLTR(3),XINVL(3),WRUPT(3),IRESU(20),
  69. & VF(3),XVF(3,3),VF1(3),VF2(3),VF3(3),VCA1(3),VCA2(3),VCA3(3),
  70. & BILIN(3),SBILI(3)
  71. C
  72. DIMENSION TAIL(6),P(6)
  73. C
  74. DIMENSION VARGA0(NGAT),VARGAF(NGAT)
  75. DIMENSION EPSV0(6),EPSVF0(6),EPSV(6),EPSVF(6)
  76. C
  77. C*******************************************************************
  78. C
  79. JEBOUC=0
  80. IIMPI0=IIMPI
  81. C
  82. 2020 JEBOUC=JEBOUC+1
  83. KERRE=0
  84. C
  85. C===================================================================
  86. C TEST DE COMPATIBILITE CALCUL/FORMULATION
  87. C===================================================================
  88. C
  89. C------UNIQUEMENT EN MASSIF OU EN COQUES MINCES
  90. C PAS DE FORMULATION DE FOURIER-----------
  91. C
  92. IF ((MFR.NE.1.AND.MFR.NE.3.AND.MFR.NE.9)
  93. . .OR.IFOUR.EQ.1) THEN
  94. KERRE=984
  95. GO TO 9999
  96. ENDIF
  97. C
  98. C=================================
  99. C --- CONTROLE DU PAS DE TEMPS ---
  100. C=================================
  101. C
  102. IF (DT.LT.0.D0) THEN
  103. KERRE = 414
  104. PRINT *,' UO2OT2 - PAS DE TEMPS NEGATIF'
  105. GO TO 9999
  106. ENDIF
  107. IF (DT.EQ.0.D0) DT=1.D-20
  108. C
  109. C===================================================================
  110. C INITIALISATION DES VARIABLES INTERNES ET DES CARACTERISTIQUES
  111. C===================================================================
  112. C
  113. C
  114. C###################################################################
  115. C===================================================================
  116. C INITIALISATION DES CARACTERISTIQUES
  117. C===================================================================
  118. C###################################################################
  119. C
  120. C Les 4 premieres valeurs de Xmat_OBLIGATOIRES sont YOUN,NU,RHO,ALPH
  121. C puis R,DG,...(caract. mecaniques non lineaires obligatoires)
  122. C La premiere valeur de Xmat_FACULTATIF est VISQ et la deuxieme en CP
  123. C est DIM3
  124. C puis GFTR,LTR,...(caract. mecaniques non lineaires facultatives)
  125. C
  126. YOUN=XMAT(1)
  127. XNU =XMAT(2)
  128. G = UNDEMI*YOUN/(UN+XNU)
  129. PRECIE=1.D-10
  130. PRECIZ=YOUN*PRECIE
  131. C
  132. C=====================================================================
  133. C----CALCUL DU COEF AA INTERVENANT DANS LA VITESSE DE DENSIFICATION---
  134. C=====================================================================
  135. C
  136. CALL ADENS(XMAT,AA,KERRE)
  137. IF(KERRE.NE.0) GO TO 2021
  138. C
  139. C====================================================================
  140. C----NOBL+i POINTE SUR LA ieme CARACTERISTIQUE DE FISSURATION FACULT.
  141. C====================================================================
  142. C
  143. IF (IFOMOD.EQ.2.AND.MFR.EQ.1) THEN
  144. NOBL=49
  145. ELSE
  146. NOBL=44
  147. IF(MFR.EQ.1.AND.IFOUR.EQ.-2) NOBL=45
  148. ENDIF
  149. C
  150. C===========================================================
  151. C---MGAT: NOMBRE DE VAR. INT. PROPRES AU MODELE GATT_MONERIE
  152. C--- PARMI CES VAR. INT. IL Y A LES DEF. VISCOPLAST.
  153. C===========================================================
  154. C
  155. IF (IFOUR.EQ.2.AND.(MFR.EQ.1.OR.MFR.EQ.3)) THEN
  156. MGAT=10
  157. ELSE
  158. MGAT=8
  159. IF(MFR.EQ.9) MGAT=12
  160. ENDIF
  161. C
  162. C===================================================
  163. C----------------TRACTION SIMPLE--------------------
  164. C===================================================
  165. C
  166. XDLTR=XMAT(2+NOBL)
  167. DEFOTR=1.2D-4
  168. IF (IVAL(2+NOBL).EQ.0) XDLTR=YOUN*DEFOTR
  169. XDGFTR=XMAT(1+NOBL)
  170. IF (IVAL(1+NOBL).EQ.0) XDGFTR=XDLTR*3.9D-5
  171. BTR=XMAT(4+NOBL)
  172. IF (IVAL(4+NOBL).EQ.0) BTR=0.2D0
  173. *
  174. * PETIT TEST SUR BTR
  175. *
  176. BTR=MIN(BTR,UN)
  177.  
  178. XDWRUP=XMAT(5+NOBL)
  179. XDBILI=XMAT(6+NOBL)
  180. C
  181. C__________________________________________________________
  182. C en defo planes ou axis
  183. C les caracteristiques dans la direction normale au plan
  184. C sont traitees particulierement
  185. C----------------------------------------------------------
  186. C
  187. XDEPSR=0.D0
  188. IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  189. XDEPSR=XMAT(7+NOBL)
  190. IF (IVAL(7+NOBL).EQ.0) XDEPSR=TROIS*XDLTR/YOUN
  191. ENDIF
  192. C
  193. C===================================================
  194. C------------------CISAILLEMENT---------------------
  195. C===================================================
  196. C
  197. XDGS=XMAT(3+NOBL)
  198. IF (IVAL(3+NOBL).EQ.0) XDGS=YOUN*1.8D-4
  199. C
  200. C###################################################################
  201. C===================================================================
  202. C INITIALISATION DES VARIABLES INTERNES
  203. C===================================================================
  204. C###################################################################
  205. C
  206. C---------------------------------------------------------------------
  207. C RECUPERATION DES VARIABLES INTERNES PROPRES AU MODELE GATT_MONERIE
  208. C AUTRES QUE LES DEF. VISCOPLAST.
  209. C---------------------------------------------------------------------
  210. C
  211. DO 9 IC=1,NGAT
  212. VARGA0(IC)=VAR0(NVARI-NGAT+IC)
  213. 9 CONTINUE
  214. C
  215. C======================================
  216. C---------CAS TRIDIMENSIONNEL MASSIF---
  217. C======================================
  218. C
  219. C NVARI=29 cf. IDVAR4
  220. C
  221. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  222. DO 10 IC=1,3
  223. ICN=IC+NOBL
  224. WMAX(IC)=VAR0(IC+1)
  225. W(IC)=VAR0(IC+4)
  226. GFTR(IC)=XMAT(ICN+6)
  227. IF (GFTR(IC).EQ.XZER) GFTR(IC)=XDGFTR
  228. GS(IC)=XMAT(ICN+9)
  229. IF (GS(IC).EQ.XZER) GS(IC)=XDGS
  230. XLTR(IC)=XMAT(ICN+12)
  231. IF (XLTR(IC).EQ.XZER) XLTR(IC)=XDLTR
  232. VF1(IC)=VAR0(IC+7)
  233. VF2(IC)=VAR0(IC+10)
  234. VF3(IC)=VAR0(IC+13)
  235. XINVL(IC)=VAR0(IC+16)
  236. WRUPT(IC)=XMAT(ICN+15)
  237. BILIN(IC)=XMAT(ICN+18)
  238. IF (BILIN(IC).EQ.XZER.OR.WRUPT(IC).EQ.XZER) THEN
  239. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  240. WRUPT(IC)=DEUX*GFTR(IC)/XLTR(IC)
  241. BILIN(IC)=XZER
  242. SBILI(IC)=XLTR(IC)
  243. ELSE
  244. WRUPT(IC)=XDWRUP
  245. BILIN(IC)=XDBILI
  246. SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*XDBILI)/XDWRUP
  247. ENDIF
  248. ELSE
  249. SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*BILIN(IC))/
  250. > (WRUPT(IC)+XPETIT)
  251. ENDIF
  252. 10 CONTINUE
  253. ENDIF
  254. C
  255. C======================================
  256. C-----------CAS CONT PLANE-------------
  257. C---- OU TRIDIM COQUES MINCES ---------
  258. C======================================
  259. C
  260. C NVARI=19 CONT PLANE cf. IDVAR4
  261. C NVARI=21/23 3D COQUES MINCES SANS/AVEC CISAILLEMENT TRANSVERSE
  262. C
  263. IF (IFOUR.EQ.-2.OR.
  264. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
  265. DO 11 IC=1,2
  266. ICN=IC+NOBL
  267. WMAX(IC+1)=VAR0(IC+1)
  268. W(IC+1)=VAR0(IC+3)
  269. GFTR(IC+1)=XMAT(ICN+6)
  270. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  271. GS(IC+1)=XMAT(ICN+8)
  272. IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS
  273. XLTR(IC+1)=XMAT(ICN+10)
  274. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  275. VF2(IC)=VAR0(IC+5)
  276. VF3(IC)=VAR0(IC+7)
  277. XINVL(IC+1)=VAR0(IC+9)
  278. WRUPT(IC+1)=XMAT(ICN+12)
  279. BILIN(IC+1)=XMAT(ICN+14)
  280. IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN
  281. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  282. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  283. BILIN(IC+1)=XZER
  284. SBILI(IC+1)=XLTR(IC+1)
  285. ELSE
  286. WRUPT(IC+1)=XDWRUP
  287. BILIN(IC+1)=XDBILI
  288. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI)
  289. & /XDWRUP
  290. ENDIF
  291. ELSE
  292. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1))
  293. & /WRUPT(IC+1)
  294. ENDIF
  295. 11 CONTINUE
  296. C
  297. C------------------------------------------------------------
  298. C La direction normale au plan est une direction principale
  299. C elle est definie par VF1 et indice par 1
  300. C------------------------------------------------------------
  301. C
  302. WMAX(1)=XZER
  303. W(1)=XZER
  304. GFTR(1)=XDGFTR
  305. GS(1)=XDGS
  306. XLTR(1)=XDLTR
  307. VF1(1)=XZER
  308. VF1(2)=XZER
  309. VF1(3)=UN
  310. XINVL(1)=XZER
  311. VF2(3)=XZER
  312. VF3(3)=XZER
  313. WRUPT(1)=DEUX*GFTR(1)/XLTR(1)
  314. BILIN(1)=XZER
  315. SBILI(1)=XLTR(1)
  316. ENDIF
  317. C
  318. C===========================================
  319. C-----------CAS DEFO PLANE/AXIS-------------
  320. C===========================================
  321. C
  322. C NVARI=22 cf. IDVAR4
  323. C
  324. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN
  325. DO 12 IC=1,2
  326. ICN=IC+NOBL
  327. WMAX(IC+1)=VAR0(IC+1)
  328. W(IC+1)=VAR0(IC+4)
  329. GFTR(IC+1)=XMAT(ICN+7)
  330. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  331. GS(IC+1)=XMAT(ICN+10)
  332. IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS
  333. XLTR(IC+1)=XMAT(ICN+13)
  334. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  335. VF2(IC)=VAR0(IC+7)
  336. VF3(IC)=VAR0(IC+9)
  337. XINVL(IC+1)=VAR0(IC+11)
  338. WRUPT(IC+1)=XMAT(ICN+16)
  339. BILIN(IC+1)=XMAT(ICN+18)
  340. IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN
  341. IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN
  342. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  343. BILIN(IC+1)=XZER
  344. SBILI(IC+1)=XLTR(IC+1)
  345. ELSE
  346. WRUPT(IC+1)=XDWRUP
  347. BILIN(IC+1)=XDBILI
  348. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI)
  349. & /XDWRUP
  350. ENDIF
  351. ELSE
  352. SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1))
  353. & /WRUPT(IC+1)
  354. ENDIF
  355. 12 CONTINUE
  356. C
  357. C------------------------------------------------------------
  358. C La direction normale au plan est une direction principale
  359. C elle est definie par VF1 et indice par 1
  360. C------------------------------------------------------------
  361. C
  362. WMAX(1)=VAR0(4)
  363. W(1)=VAR0(7)
  364. XLTR(1)=XMAT(NOBL+16)
  365. IF (XLTR(1).EQ.XZER) XLTR(1)=XDLTR
  366. EPSR=XDEPSR
  367. GS(1)=XMAT(NOBL+13)
  368. IF (GS(1).EQ.XZER) GS(1)=XDGS
  369. XINVL(1)=VAR0(14)
  370. WRUPT(1)=EPSR
  371. BILIN(1)=XMAT(NOBL+21)
  372. GFTR(1)=XMAT(NOBL+10)
  373. IF (BILIN(1).EQ.XZER.OR.GFTR(1).EQ.XZER) THEN
  374. *
  375. * MLR : ICI ON NE PEUT PAS FAIRE MIEUX CAR ON VEUT
  376. * DES DEFORMATIONS DANS LA DIRECTION ETUDIEE
  377. *
  378. IF (GFTR(1).EQ.XZER) GFTR(1)=UNDEMI*XLTR(1)*EPSR
  379. BILIN(1)=XZER
  380. SBILI(1)=XLTR(1)
  381. ELSE
  382. SBILI(1)=(DEUX*GFTR(1)-XLTR(1)*BILIN(1))/WRUPT(1)
  383. ENDIF
  384. C
  385. VF1(1)=XZER
  386. VF1(2)=XZER
  387. VF1(3)=UN
  388. C
  389. VF2(3)=XZER
  390. VF3(3)=XZER
  391. ENDIF
  392. C
  393. C
  394. C#######################################
  395. C=======================================
  396. C---------PARAMETRES DE TAILLE----------
  397. C=======================================
  398. C#######################################
  399. C
  400. NTAIL=36
  401. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  402. C
  403. C-----------TRIDIM MASSIF------------------
  404. C
  405. DO 15 IC=1,6
  406. TAIL(IC)=XMAT(IC+NTAIL)
  407. P(IC)=XMAT(IC+NTAIL+6)
  408. 15 CONTINUE
  409.  
  410. ELSE
  411. C
  412. C------AXIS/DEF/CONT PLANES/COQUES MINCES---------
  413. C
  414.  
  415. TAIL(1)=XMAT(1+NTAIL)
  416. TAIL(2)=XMAT(2+NTAIL)
  417. TAIL(3)=XMAT(4+NTAIL)
  418. TAIL(4)=XMAT(3+NTAIL)
  419. TAIL(5)=XZER
  420. TAIL(6)=XZER
  421. P(1)=XMAT(5+NTAIL)
  422. P(2)=XMAT(6+NTAIL)
  423. P(3)=UN
  424. P(4)=XMAT(7+NTAIL)
  425. P(5)=XZER
  426. P(6)=XZER
  427. ENDIF
  428. C
  429. C
  430. C IMPRESSION DES DONNEES MATERIAU ,TAILLE ET VARIABLES INTERNES
  431. C --------------------------------------------------------------
  432. C
  433. IF(IIMPI.EQ.42) THEN
  434. WRITE(IOIMP,77000) IB,IGAU
  435. 77000 FORMAT(////////2X,' IB=',I4,2X,'IGAU=',I3//)
  436. ENDIF
  437. IF(IIMPI.EQ.42) THEN
  438. WRITE(IOIMP,77001) YOUN,XNU,XDLTR,XDGFTR,BTR,XDEPSR,XDGS,
  439. . XDWRUP,XDBILI,AA
  440. 77001 FORMAT(///2X,' YUNG=',1PE12.5,2X,'XNU=',1PE12.5/
  441. . 2X,'LTR=',1PE12.5,2X,'GF=',1PE12.5,2X,'BETA=',1PE12.5/
  442. . 2X,'EPSR=',1PE12.5,2X,'GS=',1PE12.5,2X,'WRUP=',1PE12.5/
  443. . 2X,'BILI=',1PE12.5,2X,'AA=',1PE12.5///)
  444. *
  445. WRITE(IOIMP,77002) (WMAX(I),I=1,3)
  446. 77002 FORMAT('0 WMAX '/3(1X,1PE12.5)/)
  447. *
  448. WRITE(IOIMP,77003) (W(I),I=1,3),(GFTR(I),I=1,3)
  449. 77003 FORMAT('0 W '/3(1X,1PE12.5)/
  450. . 2X,'GFTR'/3(1X,1PE12.5)/)
  451. *
  452. WRITE(IOIMP,77004) (GS(I),I=1,3),(XLTR(I),I=1,3)
  453. 77004 FORMAT('0 GS '/3(1X,1PE12.5)/
  454. . 2X,'XLTR'/3(1X,1PE12.5)/)
  455. *
  456. WRITE(IOIMP,77005) (VF1(I),I=1,3),(VF2(I),I=1,3)
  457. 77005 FORMAT('0 VF1 '/3(1X,1PE12.5)/
  458. . 2X,'VF2 '/3(1X,1PE12.5)/)
  459. *
  460. WRITE(IOIMP,77006) (VF3(I),I=1,3),(XINVL(I),I=1,3)
  461. 77006 FORMAT('0 VF3 '/3(1X,1PE12.5)/
  462. . 2X,'XINVL'/3(1X,1PE12.5)/)
  463. *
  464. WRITE(IOIMP,77007) (WRUPT(I),I=1,3),(BILIN(I),I=1,3)
  465. 77007 FORMAT('0 WRUPT'/3(1X,1PE12.5)/
  466. . 2X,'BILIN'/3(1X,1PE12.5)/)
  467. *
  468. WRITE(IOIMP,77008) (SBILI(I),I=1,3)
  469. 77008 FORMAT('0 SBILI'/3(1X,1PE12.5)/)
  470. *
  471. WRITE(IOIMP,77009) (TAIL(I),I=1,6),(P(I),I=1,6)
  472. 77009 FORMAT('0 TAIL '/6(1X,1PE12.5)/
  473. . 2X,'P '/6(1X,1PE12.5)/)
  474. *
  475. WRITE(IOIMP,77090) (VARGA0(I),I=1,NGAT)
  476. 77090 FORMAT('0 VARGA0 EN ENTREE'/4(1X,1PE12.5)/)
  477. *
  478. WRITE(IOIMP,17009) (SIG0(I),I=1,NSTRS)
  479. 17009 FORMAT('0 SIG0 EN ENTREE '/8(1X,1PE12.5)/)
  480. *
  481. WRITE(IOIMP,18009) (DEPST(I),I=1,NSTRS)
  482. 18009 FORMAT('0 DEPST EN ENTREE '/8(1X,1PE12.5)/)
  483. *
  484. WRITE(IOIMP,18010) FI1,FI2
  485. 18010 FORMAT('0 FI1 FI2 '/2(1X,1PE12.5)/)
  486. *
  487. WRITE(IOIMP,18011) DT,TETA1,TETA2
  488. 18011 FORMAT('0 DT TETA1 TETA2 '/3(1X,1PE12.5)/)
  489. ENDIF
  490. C
  491. C
  492. C=======================================================================
  493. C ADAPTATION DE L'OPTION DE CALCUL VERS LE 3D MASSIF
  494. C DE SIG0 A SIGMA0
  495. C
  496. C***********************************************************************
  497. C A T T E N T I O N
  498. C
  499. C DANS LA SUITE ON TRAVAILLE SUR EPSXY AU LIEU DE GAMXY !!!!
  500. C
  501. C***********************************************************************
  502. C
  503. C=======================================================================
  504. C
  505. CALL ZDANUL(SIGMA0,6)
  506. CALL ZDANUL(DSIGMA,6)
  507. CALL ZDANUL(EPSV0,6)
  508. C
  509. IF (MFR.EQ.1) THEN
  510. C
  511. C-----------------------MASSIF 3D/2D----NSTRS=6/4---------------
  512. C
  513. DO 20 IC=1,NSTRS
  514. SIGMA0(IC)=SIG0(IC)
  515. IF(IC.LE.3) THEN
  516. DSIGMA(IC)=DEPST(IC)
  517. EPSV0(IC) =VAR0(NVARI-MGAT+IC)
  518. ELSE
  519. DSIGMA(IC)=DEPST(IC)*UNDEMI
  520. EPSV0(IC) =VAR0(NVARI-MGAT+IC)*UNDEMI
  521. ENDIF
  522. 20 CONTINUE
  523. C
  524. ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN
  525. C
  526. C-----3D COQUES MINCES SANS/AVEC CISAIL. TRANS.-----NSTRS=6/8--------
  527. C ON NE PREND QUE LA PARTIE MEMBRANE !!
  528. C
  529. EPAI=XCAR(1)
  530. SIGMA0(1)=SIG0(1)/EPAI
  531. SIGMA0(2)=SIG0(2)/EPAI
  532. SIGMA0(4)=SIG0(3)/EPAI
  533. DSIGMA(1)=DEPST(1)
  534. DSIGMA(2)=DEPST(2)
  535. DSIGMA(4)=DEPST(3)*UNDEMI
  536. EPSV0(1) =VAR0(NVARI-MGAT+1)
  537. EPSV0(2) =VAR0(NVARI-MGAT+2)
  538. EPSV0(4) =VAR0(NVARI-MGAT+3)*UNDEMI
  539. ENDIF
  540. C
  541. C#######################################################################
  542. C=======================================================================
  543. C CALCUL DES PARAMETRES POUR UN MATERIAU PRE-FISSURE
  544. C=======================================================================
  545. C#######################################################################
  546. C
  547. XNF1=VF1(1)*VF1(1)+VF1(2)*VF1(2)+VF1(3)*VF1(3)
  548. XNF2=VF2(1)*VF2(1)+VF2(2)*VF2(2)+VF2(3)*VF2(3)
  549. XNF3=VF3(1)*VF3(1)+VF3(2)*VF3(2)+VF3(3)*VF3(3)
  550. C
  551. C=======================================================================
  552. C CALCUL DES PARAMETRES DE TAILLE POUR UN MATERIAU PRE-FISSURE
  553. C=======================================================================
  554. C
  555. C---on calcule la parametre de taille si la fissure est ouverte--
  556. C---------------et le parametre de taille nul--------------------
  557. C
  558. IF (XNF1.NE.XZER.AND.W(1).NE.XZER.AND.XINVL(1).EQ.XZER) THEN
  559. C
  560. C------------FISSURE 1 OUVERTE---------------
  561. C
  562. XL1=TAIL(1)*VF1(1)*VF1(1)+TAIL(2)*VF1(2)*VF1(2)
  563. XL1=XL1+TAIL(3)*VF1(3)*VF1(3)+DEUX*TAIL(4)*VF1(2)*VF1(1)
  564. XL1=XL1+DEUX*TAIL(5)*VF1(1)*VF1(3)
  565. XL1=XL1+DEUX*TAIL(6)*VF1(2)*VF1(3)
  566. P1=P(1)*VF1(1)*VF1(1)+P(2)*VF1(2)*VF1(2)+P(3)*VF1(3)*VF1(3)
  567. P1=P1+DEUX*P(4)*VF1(2)*VF1(1)+DEUX*P(5)*VF1(1)*VF1(3)
  568. P1=P1+DEUX*P(6)*VF1(2)*VF1(3)
  569. WMAX(1)=W(1)
  570. IF (XL1.NE.XZER) THEN
  571. XINVL(1)=ABS(P1/XL1)
  572. ELSE
  573. XINVL(1)=UN
  574. ENDIF
  575. ENDIF
  576. C
  577. C---------FISSURE 2 OUVERTE-----------
  578. C
  579. IF (XNF2.NE.XZER.AND.W(2).NE.XZER.AND.XINVL(2).EQ.XZER) THEN
  580. XL2=TAIL(1)*VF2(1)*VF2(1)+TAIL(2)*VF2(2)*VF2(2)
  581. XL2=XL2+TAIL(3)*VF2(3)*VF2(3)+DEUX*TAIL(4)*VF2(2)*VF2(1)
  582. XL2=XL2+DEUX*TAIL(5)*VF2(1)*VF2(3)
  583. XL2=XL2+DEUX*TAIL(6)*VF2(2)*VF2(3)
  584. P2=P(1)*VF2(1)*VF2(1)+P(2)*VF2(2)*VF2(2)+P(3)*VF2(3)*VF2(3)
  585. P2=P2+DEUX*P(4)*VF2(2)*VF2(1)+DEUX*P(5)*VF2(1)*VF2(3)
  586. P2=P2+DEUX*P(6)*VF2(2)*VF2(3)
  587. WMAX(2)=W(2)
  588. IF (XL2.NE.XZER) THEN
  589. XINVL(2)=ABS(P2/XL2)
  590. ELSE
  591. XINVL(2)=UN
  592. ENDIF
  593. ENDIF
  594. C
  595. C---------FISSURE 3 OUVERTE-----------
  596. C
  597. IF (XNF3.NE.XZER.AND.W(3).NE.XZER.AND.XINVL(3).EQ.XZER) THEN
  598. XL3=TAIL(1)*VF3(1)*VF3(1)+TAIL(2)*VF3(2)*VF3(2)
  599. XL3=XL3+TAIL(3)*VF3(3)*VF3(3)+DEUX*TAIL(4)*VF3(2)*VF3(1)
  600. XL3=XL3+DEUX*TAIL(5)*VF3(1)*VF3(3)
  601. XL3=XL3+DEUX*TAIL(6)*VF3(2)*VF3(3)
  602. P3=P(1)*VF3(1)*VF3(1)+P(2)*VF3(2)*VF3(2)+P(3)*VF3(3)*VF3(3)
  603. P3=P3+DEUX*P(4)*VF3(2)*VF3(1)+DEUX*P(5)*VF3(1)*VF3(3)
  604. P3=P3+DEUX*P(6)*VF3(2)*VF3(3)
  605. WMAX(3)=W(3)
  606. IF (XL3.NE.XZER) THEN
  607. XINVL(3)=ABS(P3/XL3)
  608. ELSE
  609. XINVL(3)=UN
  610. ENDIF
  611. ENDIF
  612. C
  613. C======================================================================
  614. C CALCUL DU NOMBRE DE FISSURE
  615. C======================================================================
  616. C
  617. NFISSU=0
  618. IF (XINVL(1).NE.XZER) NFISSU=NFISSU+1
  619. IF (XINVL(2).NE.XZER) NFISSU=NFISSU+1
  620. IF (XINVL(3).NE.XZER) NFISSU=NFISSU+1
  621. C
  622. C================================================================
  623. C CALCUL DU NOMBRE DE DIRECTION IMPOSEE
  624. C qui ne sont pas des directions de fissuration
  625. C================================================================
  626. C
  627. NVF=0
  628. IF (XNF1.NE.XZER.AND.XINVL(1).EQ.XZER) NVF=NVF+1
  629. IF (XNF2.NE.XZER.AND.XINVL(2).EQ.XZER) NVF=NVF+1
  630. IF (XNF3.NE.XZER.AND.XINVL(3).EQ.XZER) NVF=NVF+1
  631. C
  632. C--remarque : en 2D NVF la direction (0 0 1) est toujours imposee--
  633. C
  634. C=======================================================================
  635. C-------------test la consistance des vecteurs VF1 VF2 VF3--------------
  636. C VF1 VF2 et VF3 sont dans l ordre d apparition 1 2 3
  637. C=======================================================================
  638. C
  639. IF (XNF1.EQ.XZER.AND.(XNF2+XNF3).NE.XZER) THEN
  640. KERRE=985
  641. GO TO 2021
  642. ENDIF
  643. C
  644. IF (XNF2.EQ.XZER.AND.XNF3.NE.XZER) THEN
  645. KERRE=985
  646. GO TO 2021
  647. ENDIF
  648. C
  649. PRDT=VF1(1)*VF2(1)+VF1(2)*VF2(2)+VF1(3)*VF2(3)
  650. PRDT=PRDT+VF1(1)*VF3(1)+VF1(2)*VF3(2)+VF1(3)*VF3(3)
  651. PRDT=PRDT+VF2(1)*VF3(1)+VF2(2)*VF3(2)+VF2(3)*VF3(3)
  652. PRDT=ABS(PRDT)
  653. C
  654. IF (PRDT.GE.1D-3) THEN
  655. KERRE=985
  656. GO TO 2021
  657. ENDIF
  658. C
  659. C#######################################################################
  660. C=======================================================================
  661. C INCREMENT DE DEFORMATION
  662. C=======================================================================
  663. C#######################################################################
  664. C
  665. DO 34 I=1,6
  666. DDEF0(I)=DSIGMA(I)
  667. 34 CONTINUE
  668. C
  669. C
  670. C IMPRESSION DES INCREMENTS DE DEFORMATION ET ETAT INITIAL
  671. C --------------------------------------------------------
  672. C
  673. IF(IIMPI.EQ.42) THEN
  674. WRITE(IOIMP,77010) (SIGMA0(I),I=1,6)
  675. 77010 FORMAT('0 SIGMA0 EN REPERE GENERAL '/6(1X,1PE12.5)/)
  676. *
  677. WRITE(IOIMP,77011) (DDEF0(I),I=1,6)
  678. 77011 FORMAT('0 DDEF0 EN REPERE GENERAL '/6(1X,1PE12.5)/)
  679. *
  680. WRITE(IOIMP,77013) (EPSV0(I),I=1,6)
  681. 77013 FORMAT('0 EPSV0 EN REPERE GENERAL '/6(1X,1PE12.5)/)
  682. *
  683. WRITE(IOIMP,77012) NFISSU,NVF,(XINVL(I),I=1,3)
  684. 77012 FORMAT('0 NFISSU=',I3,2X,'NVF=',I3/
  685. . '0 XINVL '/3(1X,1PE12.5)/)
  686. ENDIF
  687. C
  688. C
  689. C#######################################################################
  690. C=======================================================================
  691. C
  692. C LES CHOSES SERIEUSES COMMENCENT : ITERATIONS INTERNES
  693. C
  694. C=======================================================================
  695. C#######################################################################
  696. C
  697. C=======================================================================
  698. C INITIALISATION DES VARIABLES GLOBALES AUX ITERATIONS INTERNES
  699. C=======================================================================
  700. C
  701. PSOM=0.D0
  702. DO 334 I=1,6
  703. PSOM=PSOM+ABS(DDEF0(I))
  704. 334 CONTINUE
  705. PSOM=PSOM/(3.D0*DEFOTR)
  706. * MLR 22/11/96
  707. PSOM=MIN(PSOM,1.D6)
  708. *
  709. * AM 30/04/96 ON MODULE LA PRECISION SELON LA VALEUR DE PSOM
  710. *
  711. * PRECIS = MIN (1.D-4,1.D-4/PSOM)
  712. * EPSILO = MIN (1.D-2,1.D-2/PSOM)
  713. EPSIL2 = MIN (1.D-4,1.D-4/PSOM)
  714. TAURES=UN
  715. ITER=0
  716. C
  717. CALL ZDANUL(DDEFPT,6)
  718. C
  719. C --- LES VITESSES DE TEMPERATURE ET DE DENSITE DE FISSION SONT CTES ---
  720. C
  721. TPOINT=(TETA2-TETA1)/DT
  722. FPOINT=(FI2-FI1)/DT
  723. C
  724. DTREST=DT
  725. TEMPE1=TETA1
  726. DFISS1=FI1
  727. C
  728. C=======================================================================
  729. C LABEL DE DEBUT DES ITERATIONS INTERNES
  730. C=======================================================================
  731. C
  732. 31 CONTINUE
  733. C
  734. ITER=ITER+1
  735. C
  736. IF(IIMPI.EQ.42) THEN
  737. WRITE(IOIMP,77015) ITER,TAURES
  738. 77015 FORMAT(//////2X,' >>>>>>>>> ITERATION INTERNE ',
  739. & I3,2X,'TAURES=',1PE12.5/)
  740. ENDIF
  741. C
  742. IF (ITER.GE.25) THEN
  743. C------non convergence des iterations internes------
  744. KERRE=986
  745. GO TO 2021
  746. ENDIF
  747. C
  748. C
  749. C=======================================================================
  750. C INITIALISATION DES VARIABLES POUR GESTION DES SOUS ITERATIONS
  751. C=======================================================================
  752. C---prise en compte de la totalite du reste de l increment de def tot---
  753. C----en sortie de UO2CA2 IRESU contient la nouvelle non linearite de ---
  754. C-------fissuration rencontree lors des sous iterations internes--------
  755. C
  756. C
  757. TAU=UN
  758. C
  759. DO IC=1,3
  760. W0(IC)=W(IC)
  761. WMAX0(IC)=WMAX(IC)
  762. ENDDO
  763. C
  764. IF(IIMPI.EQ.42) THEN
  765. WRITE(IOIMP,73032) (W0(I),I=1,3),(WMAX0(I),I=1,3)
  766. 73032 FORMAT(' W0 '/3(1X,1PE12.5)/' WMAX0 '/3(1X,1PE12.5)/)
  767. *
  768. WRITE(IOIMP,73034) (WRUPT(I),I=1,3),(XINVL(I),I=1,3)
  769. 73034 FORMAT(' WRUPT'/3(1X,1PE12.5)/' XINVL'/3(1X,1PE12.5)/)
  770. WRITE(IOIMP,73934) XNF1, XNF2,XNF3
  771. 73934 FORMAT(/// 2X, 'XNF1 XNF2 XNF3 = ',3(1X,1PE12.5)/)
  772. ENDIF
  773. C
  774. C
  775. C=======================================================================
  776. C REPERE DE CALCUL
  777. C=======================================================================
  778. C
  779. C
  780. IF (XNF1.NE.XZER) THEN
  781. C
  782. C------------DIRECTION 1 IMPOSEE---------------
  783. C
  784. VCA1(1)=VF1(1)
  785. VCA1(2)=VF1(2)
  786. VCA1(3)=VF1(3)
  787. IF (XNF3.NE.XZER) THEN
  788. C
  789. C---------DIRECTION 1 2 3 IMPOSEES-----------
  790. C
  791. VCA2(1)=VF2(1)
  792. VCA2(2)=VF2(2)
  793. VCA2(3)=VF2(3)
  794. VCA3(1)=VF3(1)
  795. VCA3(2)=VF3(2)
  796. VCA3(3)=VF3(3)
  797. ELSEIF (XNF2.NE.XZER) THEN
  798. C
  799. C----------DIRECTION 1 ET 2 IMPOSEES------------
  800. C
  801. VCA2(1)=VF2(1)
  802. VCA2(2)=VF2(2)
  803. VCA2(3)=VF2(3)
  804. VCA3(1)=VF1(2)*VF2(3)-VF1(3)*VF2(2)
  805. VCA3(2)=VF1(3)*VF2(1)-VF1(1)*VF2(3)
  806. VCA3(3)=VF1(1)*VF2(2)-VF1(2)*VF2(1)
  807. ELSE
  808. C
  809. C-------------UNIQUEMENT LA DIRECTION 1 IMPOSEE--------------
  810. C
  811. IF (VCA1(2).NE.XZER.OR.VCA1(3).NE.XZER) THEN
  812. VCA2(1)=XZER
  813. VCA2(2)=-VCA1(3)
  814. VCA2(3)=VCA1(2)
  815. XVCA=SQRT(VCA2(1)*VCA2(1)+VCA2(2)*VCA2(2)
  816. . +VCA2(3)*VCA2(3))
  817. VCA2(1)=VCA2(1)/XVCA
  818. VCA2(2)=VCA2(2)/XVCA
  819. VCA2(3)=VCA2(3)/XVCA
  820. ELSE
  821. VCA2(1)=XZER
  822. VCA2(2)=UN
  823. VCA2(3)=XZER
  824. ENDIF
  825. VCA3(1)=VF1(2)*VCA2(3)-VF1(3)*VCA2(2)
  826. VCA3(2)=VF1(3)*VCA2(1)-VF1(1)*VCA2(3)
  827. VCA3(3)=VF1(1)*VCA2(2)-VF1(2)*VCA2(1)
  828. ENDIF
  829. ELSE
  830. C
  831. C------------PAS DE DIRECTION IMPOSEE----------
  832. C
  833. VCA1(1)=UN
  834. VCA1(2)=XZER
  835. VCA1(3)=XZER
  836. VCA2(1)=XZER
  837. VCA2(2)=UN
  838. VCA2(3)=XZER
  839. VCA3(1)=XZER
  840. VCA3(2)=XZER
  841. VCA3(3)=UN
  842. ENDIF
  843. C
  844. C=======================================================================
  845. C CALCUL DE DDEF0 (VIT. DEF. TOT.) ET SIGMA0 ET EPSV0 (DEF. VISCOPLAST.)
  846. C DANS LE REPERE DE CALCUL
  847. C RESULTAT NOTE : DDEF ET SIGMA ET EPSV
  848. C=======================================================================
  849. C
  850. LECAS=1
  851. CALL UO2ROT(SIGMA0,SIGMA,VCA1,VCA2,VCA3,LECAS)
  852. CALL UO2ROT(DDEF0,DDEF,VCA1,VCA2,VCA3,LECAS)
  853. CALL UO2ROT(EPSV0,EPSV,VCA1,VCA2,VCA3,LECAS)
  854. C
  855. IF(IIMPI.EQ.42) THEN
  856. WRITE(IOIMP,70016) (VCA1(I),I=1,3),(VCA2(I),I=1,3),
  857. & (VCA3(I),I=1,3)
  858. 70016 FORMAT(2X,'VECTEUR VCA1 ',3(1X,1PE12.5)/
  859. & 2X,'VECTEUR VCA2 ',3(1X,1PE12.5)/
  860. & 2X,'VECTEUR VCA3 ',3(1X,1PE12.5)//)
  861. *
  862. WRITE(IOIMP,77016) (SIGMA(I),I=1,6)
  863. 77016 FORMAT(2X,'SIGMA0 EN REPERE CALCUL '/6(1X,1PE12.5)/)
  864. *
  865. WRITE(IOIMP,77017) (DDEF(I),I=1,6)
  866. 77017 FORMAT(2X,'DDEF0 EN REPERE CALCUL '/6(1X,1PE12.5)/)
  867. *
  868. WRITE(IOIMP,77018) (EPSV(I),I=1,6)
  869. 77018 FORMAT(2X,'EPSV0 EN REPERE CALCUL '/6(1X,1PE12.5)/)
  870. *
  871. WRITE(IOIMP,73017) PRECIZ
  872. 73017 FORMAT(2X,'PRECIZ = ',1PE12.5/)
  873. ENDIF
  874. C
  875. C-----------------------------------------------------------------------
  876. C
  877. C VERIFICATIONS SUR L'ETAT INITIAL
  878. C ZZZZ A COMPLETER
  879. C-----------------------------------------------------------------------
  880. C
  881. ICAZ=1
  882. CALL UO2TE2(XINVL,W0,WMAX0,SIGMA,XLTR,PRECIZ,
  883. & IB,IGAU,ICAZ,KERRE)
  884. IF(KERRE.EQ.70) GO TO 2021
  885. C
  886. C
  887. C=======================================================================
  888. C SOUS ITERATIONS INTERNES GEREES PAR UO2CA2
  889. C
  890. C CES SOUS-ITERATIONS REDUISENT L INCREMENT DE DEF. TOT. DE MANIERE
  891. C A ANNULER TOUTES LES NON LINEARITES EVENTUELLES (FISSURATION)
  892. C=======================================================================
  893. C
  894. CALL IANUL(IRESU,20)
  895. C
  896. DO IC=1,3
  897. W(IC)=W0(IC)
  898. WMAX(IC)=WMAX0(IC)
  899. ENDDO
  900. C
  901. C=======================================================================
  902. C
  903. C---------------------------ECOULEMENT----------------------------------
  904. C
  905. C=======================================================================
  906. C
  907. CALL UO2CA2(DTREST,MSOUPA,PRECIE,PRECIZ,SIGMA,DDEF,EPSV,VARGA0,
  908. & NGAT,W,WMAX,XLTR,
  909. & XINVL,GS,XMAT,NCOMAT,NSIMP,AA,
  910. & TEMPE1,TPOINT,DFISS1,FPOINT,PRECIS,IB,IGAU,
  911. & NFISSU,NVF,XVF,DTCALC,IRESU,NRESU,
  912. & SIGMAF,DDEFP,EPSVF,VARGAF,KERRE)
  913. IF (KERRE.NE.0) THEN
  914. PRINT *,'IB=',IB,' IGAU=',IGAU
  915. GO TO 2021
  916. ENDIF
  917. C
  918. C
  919. IF(IIMPI.EQ.42) THEN
  920. WRITE(IOIMP,77031)
  921. 77031 FORMAT(' SORTIE D UO2CA2 ' /)
  922. *
  923. WRITE(IOIMP,77032) (W(I),I=1,3),(WMAX(I),I=1,3)
  924. 77032 FORMAT(' W '/3(1X,1PE12.5)/' WMAX '/3(1X,1PE12.5)/)
  925. *
  926. WRITE(IOIMP,75631) NFISSU,NVF,NRESU
  927. 75631 FORMAT(' NFISSU = ',I3,2X,'NVF = ',I3,2X,'NRESU=',I3/)
  928. WRITE(IOIMP,75632) (IRESU(I),I=1,NRESU)
  929. 75632 FORMAT(' IRESU = ',10I4/)
  930. WRITE(IOIMP,75633) ((XVF(I,J),I=1,3),J=1,3)
  931. 75633 FORMAT(' TABLEAU XVF '/(3(1X,1PE12.5)/))
  932. ENDIF
  933. C
  934. C
  935. C=======================================================================
  936. C CALCUL DU RESTE DE L'INCREMENT DE DEFORMATION
  937. C ET MISE A JOUR DES VARIABLES INTERNES
  938. C=======================================================================
  939. C
  940. C
  941. TAU=DTCALC/DTREST
  942. DTREST=(UN-TAU)*DTREST
  943. TEMPE1=TEMPE1+(TPOINT*DTCALC)
  944. DFISS1=DFISS1+(FPOINT*DTCALC)
  945. C
  946. TAURES=(UN-TAU)*TAURES
  947. C
  948. IF(IIMPI.EQ.42) THEN
  949. WRITE(IOIMP,77039) TAU,TAURES
  950. 77039 FORMAT(//2X,'VALEUR DE L INCREMENT ECOULEE ' /
  951. & /2X,' TAU = ',1PE12.5,2X,'TAURES=',1PE12.5/)
  952. ENDIF
  953. C
  954. CZZZZZZZZZZZZZZZZ
  955. C EVENTUELLEMENT TESTER L'EGALITE DE TAU A 0. AUSSI
  956. CZZZZZZZZZZZZZZZZ
  957.  
  958. IF(TAU.LT.0.D0) THEN
  959. WRITE(IOIMP,70069)
  960. 70069 FORMAT(////2X,'######### UO2OT2: TAU NEGATIF #########'////)
  961. KERRE=414
  962. GO TO 2021
  963. ENDIF
  964. C
  965. C---------------------------------------------------------------------
  966. C TEST SUR IRESU
  967. C---------------------------------------------------------------------
  968. C
  969. IF(NRESU.GT.1) THEN
  970. DO 43 IR=1,NRESU
  971. JRESU=IRESU(IR)
  972. DO 44 KR=1,NRESU
  973. KRESU=IRESU(KR)
  974. IF(KR.NE.IR.AND.JRESU.EQ.KRESU) THEN
  975. WRITE(IOIMP,20069)
  976. 20069 FORMAT(////2X,
  977. & '########### UO2OT2: 2 IRESU IDENTIQUES ###########'////)
  978. KERRE=987
  979. GO TO 2021
  980. ENDIF
  981. 44 CONTINUE
  982. 43 CONTINUE
  983. ENDIF
  984.  
  985. C
  986. C
  987. C=======================================================================
  988. C
  989. C-------------PRISE EN COMPTE DE LA NOUVELLE NON LINEARITE--------------
  990. C
  991. C=======================================================================
  992. C
  993. C
  994. DO 55 IR=1,NRESU
  995. JRESU=IRESU(IR)
  996. C
  997. IF(IIMPI.EQ.42) THEN
  998. WRITE(IOIMP,74401) JRESU
  999. 74401 FORMAT(/2X,'MISE A JOUR POUR JRESU = ',I4/)
  1000. ENDIF
  1001.  
  1002. C
  1003. C-----------------FISSURATION---------------
  1004. C
  1005. IF (JRESU.GE.1.AND.JRESU.LE.3) THEN
  1006. C
  1007. NFISSU=NFISSU+1
  1008. C
  1009. C----------CALCUL DE VF , XINVL DANS LE REPERE GLOBAL-------------
  1010. C
  1011. XVFN=XVF(1,JRESU)**2 + XVF(2,JRESU)**2
  1012. & + XVF(3,JRESU)**2
  1013. IF(XVFN.EQ.XZER) THEN
  1014. WRITE(IOIMP,77027) JRESU
  1015. 77027 FORMAT(2X,' *** UO2OT2: PB AVEC UN VECTEUR XVF !!!! ' /
  1016. & 2X,' DIRECTION = ',I3//)
  1017. KERRE=987
  1018. GO TO 2021
  1019. ENDIF
  1020. C
  1021. C
  1022. VF(1)=VCA1(1)*XVF(1,JRESU)+VCA2(1)*XVF(2,JRESU)
  1023. & +VCA3(1)*XVF(3,JRESU)
  1024. VF(2)=VCA1(2)*XVF(1,JRESU)+VCA2(2)*XVF(2,JRESU)
  1025. & +VCA3(2)*XVF(3,JRESU)
  1026. VF(3)=VCA1(3)*XVF(1,JRESU)+VCA2(3)*XVF(2,JRESU)
  1027. & +VCA3(3)*XVF(3,JRESU)
  1028. XNF=VF(1)*VF(1)+VF(2)*VF(2)+VF(3)*VF(3)
  1029. XL=TAIL(1)*VF(1)*VF(1)+TAIL(2)*VF(2)*VF(2)
  1030. XL=XL+TAIL(3)*VF(3)*VF(3)+DEUX*TAIL(4)*VF(2)*VF(1)
  1031. XL=XL+DEUX*TAIL(5)*VF(1)*VF(3)
  1032. XL=XL+DEUX*TAIL(6)*VF(2)*VF(3)
  1033. PASS=P(1)*VF(1)*VF(1)+P(2)*VF(2)*VF(2)+P(3)*VF(3)*VF(3)
  1034. PASS=PASS+DEUX*P(4)*VF(2)*VF(1)+DEUX*P(5)*VF(1)*VF(3)
  1035. PASS=PASS+DEUX*P(6)*VF(2)*VF(3)
  1036. IF (XL.NE.XZER) THEN
  1037. XTAILLE=ABS(PASS/XL)
  1038. ELSE
  1039. XTAILLE=UN
  1040. ENDIF
  1041. C
  1042. XINVL(JRESU)=XTAILLE
  1043. C
  1044. C
  1045. C MISE A JOUR DES DIRECTIONS DE FISSURE DANS LES VARIABLES INTERNES
  1046. C
  1047. C ------------------------------------------
  1048. C MATERIAU NON FISSURE PREALABLEMENT
  1049. C ------------------------------------------
  1050. C
  1051. IF (NFISSU.EQ.1) THEN
  1052. IF (NVF.EQ.0) THEN
  1053. VF1(1)=VF(1)
  1054. VF1(2)=VF(2)
  1055. VF1(3)=VF(3)
  1056. XNF1=XNF
  1057. GOTO 55
  1058. ENDIF
  1059. IF (NVF.EQ.1.AND.JRESU.EQ.1) THEN
  1060. NVF=NVF-1
  1061. GOTO 55
  1062. ENDIF
  1063. IF (NVF.EQ.1.AND.JRESU.NE.1) THEN
  1064. VF2(1)=VF(1)
  1065. VF2(2)=VF(2)
  1066. VF2(3)=VF(3)
  1067. XNF2=XNF
  1068. GOTO 55
  1069. ENDIF
  1070. IF (NVF.EQ.2.AND.JRESU.EQ.3) THEN
  1071. VF3(1)=VF(1)
  1072. VF3(2)=VF(2)
  1073. VF3(3)=VF(3)
  1074. XNF3=XNF
  1075. GOTO 55
  1076. ENDIF
  1077. IF (NVF.EQ.2.AND.JRESU.NE.3) THEN
  1078. NVF=NVF-1
  1079. GOTO 55
  1080. ENDIF
  1081. IF (NVF.EQ.3) THEN
  1082. NVF=NVF-1
  1083. GOTO 55
  1084. ENDIF
  1085. ENDIF
  1086. C
  1087. C------------------------------------------
  1088. C UNE FISSURE AU PREALABLE
  1089. C------------------------------------------
  1090. C
  1091. IF (NFISSU.EQ.2) THEN
  1092. IF (NVF.EQ.0) THEN
  1093. VF2(1)=VF(1)
  1094. VF2(2)=VF(2)
  1095. VF2(3)=VF(3)
  1096. XNF2=XNF
  1097. GOTO 55
  1098. ENDIF
  1099. IF (NVF.EQ.1.AND.JRESU.EQ.3) THEN
  1100. VF3(1)=VF(1)
  1101. VF3(2)=VF(2)
  1102. VF3(3)=VF(3)
  1103. XNF3=XNF
  1104. GOTO 55
  1105. ENDIF
  1106. IF (NVF.EQ.1.AND.JRESU.NE.3) THEN
  1107. NVF=NVF-1
  1108. GOTO 55
  1109. ENDIF
  1110. IF (NVF.EQ.2) THEN
  1111. NVF=NVF-1
  1112. GOTO 55
  1113. ENDIF
  1114. ENDIF
  1115. C
  1116. C------------------------------------------
  1117. C DEUX FISSURES PRE EXISTANTES
  1118. C------------------------------------------
  1119. C
  1120. IF (NFISSU.EQ.3) THEN
  1121. IF (NVF.EQ.1) THEN
  1122. NVF=0
  1123. GOTO 55
  1124. ENDIF
  1125. IF (JRESU.EQ.1) THEN
  1126. VF1(1)=VF(1)
  1127. VF1(2)=VF(2)
  1128. VF1(3)=VF(3)
  1129. XNF1=XNF
  1130. GOTO 55
  1131. ENDIF
  1132. IF (JRESU.EQ.2) THEN
  1133. VF2(1)=VF(1)
  1134. VF2(2)=VF(2)
  1135. VF2(3)=VF(3)
  1136. XNF2=XNF
  1137. GOTO 55
  1138. ENDIF
  1139. IF (JRESU.EQ.3) THEN
  1140. VF3(1)=VF(1)
  1141. VF3(2)=VF(2)
  1142. VF3(3)=VF(3)
  1143. XNF3=XNF
  1144. GOTO 55
  1145. ENDIF
  1146. ENDIF
  1147. ENDIF
  1148. C
  1149. C
  1150. 55 CONTINUE
  1151.  
  1152. C
  1153. C QUELQUES TESTS SUPPLEMENTAIRES
  1154. C
  1155. C
  1156. * DO I=1,3
  1157. * IF(ABS(WMAX(I)-WRUPT(I)).LT.WRUPT(I)*PRECIE) THEN
  1158. * WMAX(I)=WRUPT(I)
  1159. * ENDIF
  1160. * ENDDO
  1161. C
  1162. ICAZ=2
  1163. CALL UO2TE2(XINVL,W,WMAX,SIGMAF,XLTR,PRECIZ,
  1164. & IB,IGAU,ICAZ,KERRE)
  1165. IF(KERRE.EQ.70) GO TO 2021
  1166. C
  1167. DO 202 I=1,3
  1168. IF(DDEFP(I).GT.0.D0) THEN
  1169. IF(ABS(SIGMAF(I)).LT.PRECIZ) SIGMAF(I)=0.D0
  1170. ENDIF
  1171. 202 CONTINUE
  1172. C
  1173. C
  1174. C=======================================================================
  1175. C CALCUL DE SIGMAF ET DDEFP ET EPSVF DANS LE REPERE GLOBAL
  1176. C RESULTAT NOTE : SIGF0 ET DDEFP0 ET EPSVF0
  1177. C=======================================================================
  1178. C
  1179. LECAS=2
  1180. CALL UO2ROT(SIGMAF,SIGF0,VCA1,VCA2,VCA3,LECAS)
  1181. CALL UO2ROT(DDEFP,DDEFP0,VCA1,VCA2,VCA3,LECAS)
  1182. CALL UO2ROT(EPSVF,EPSVF0,VCA1,VCA2,VCA3,LECAS)
  1183. C
  1184. IF(IIMPI.EQ.42) THEN
  1185. WRITE(IOIMP,77040) (SIGF0(I),I=1,6)
  1186. 77040 FORMAT('0 SIGF EN REPERE GLOBAL '/6(1X,1PE12.5)/)
  1187. *
  1188. WRITE(IOIMP,77041) (DDEFP0(I),I=1,6)
  1189. 77041 FORMAT('0 DDEFP EN REPERE GLOBAL '/6(1X,1PE12.5)/)
  1190. *
  1191. WRITE(IOIMP,77042) (EPSVF0(I),I=1,6)
  1192. 77042 FORMAT('0 EPSVF EN REPERE GLOBAL '/6(1X,1PE12.5)/)
  1193. ENDIF
  1194. C
  1195. C
  1196. C=======================================================================
  1197. C MISE A JOUR DE L ETAT DU MATERIAU POUR UN NOUVEL INCREMENT INTERNE
  1198. C=======================================================================
  1199. C
  1200. DO 54 IC=1,6
  1201. SIGMA0(IC)=SIGF0(IC)
  1202. EPSV0(IC)=EPSVF0(IC)
  1203. DDEF0(IC)=(UN-TAU)*DDEF0(IC)
  1204. DDEFPT(IC)=DDEFPT(IC)+DDEFP0(IC)
  1205. 54 CONTINUE
  1206. DO I=1,NGAT
  1207. VARGA0(I)=VARGAF(I)
  1208. ENDDO
  1209. C
  1210. C
  1211. C=======================================================================
  1212. C --- CONTROLE DE L AMPLITUDE DE L INCREMENT INITIAL DE DEFORM. SI FISS.
  1213. C=======================================================================
  1214. TOLEPS=1E12
  1215. TOL=TOLEPS
  1216. EPSMAX=XZER
  1217. DO 56 I=1,3
  1218. IF (ABS(DEPST(I)).GT.EPSMAX) EPSMAX=ABS(DEPST(I))
  1219. IF (XINVL(I).NE.XZER) THEN
  1220. TOL=(XINVL(I)*WRUPT(I)) - (XLTR(I)/YOUN)
  1221. TOL=ABS(TOL)
  1222. IF (TOL.LT.TOLEPS) TOLEPS=TOL
  1223. ENDIF
  1224. 56 CONTINUE
  1225. IF (EPSMAX.GT.TOLEPS) THEN
  1226. FACTEU=DIX*EPSMAX/TOLEPS
  1227. IFAC=INT(FACTEU)
  1228. * WRITE(IOIMP,77894) IFAC
  1229. *77894 FORMAT(/,'UO2OT2 - PAS DE TEMPS TROP GRAND D UN FACTEUR ',I4,/)
  1230. * KERRE=268
  1231. * RETURN
  1232. ENDIF
  1233. C
  1234. C
  1235. C=======================================================================
  1236. C TEST L ADMISSIBILITE DU DERNIER ECOULEMENT
  1237. C=======================================================================
  1238. C
  1239. C AM 30/04/96 REMPLACEMENT DE EPSILO PAR EPSIL2
  1240. C
  1241. IF (TAURES.GT.EPSIL2) GOTO 31
  1242. C
  1243. C#######################################################################
  1244. C=======================================================================
  1245. C
  1246. C C EST FINI
  1247. C LES CONTRAINTES FINALES SONT DONNEES PAR : SIGMA0
  1248. C LES INC. DE DEF INELAS (FISS.+VISCOPLAST.) SONT DONNES PAR : DDEFPT
  1249. C LES DEF VISCOPLAST. SONT DONNEES PAR : EPSV0
  1250. C
  1251. C=======================================================================
  1252. C#######################################################################
  1253. C
  1254. C
  1255. C#######################################################################
  1256. C=======================================================================
  1257. C MISE A JOUR DES VARIABLES INTERNES
  1258. C=======================================================================
  1259. C#######################################################################
  1260. C
  1261. C============================================
  1262. C-------CAS TRIDIMENSIONNEL MASSIF-----------
  1263. C============================================
  1264. C
  1265. C NVARI=29 cf. IDVAR4
  1266. C
  1267. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  1268. DO 60 IC=1,3
  1269. VARF(IC+1) =WMAX(IC)
  1270. VARF(IC+4) =W(IC)
  1271. VARF(IC+7) =VF1(IC)
  1272. VARF(IC+10)=VF2(IC)
  1273. VARF(IC+13)=VF3(IC)
  1274. VARF(IC+16)=XINVL(IC)
  1275. 60 CONTINUE
  1276. ENDIF
  1277. C
  1278. C============================================
  1279. C-------------CAS CONT PLANE-----------------
  1280. C---------OU TRIDIM COQUES MINCES -----------
  1281. C============================================
  1282. C
  1283. C NVARI=19/21/23 (CP/3D COQUES SANS/AVEC CIS.) cf. IDVAR4
  1284. C
  1285. IF (IFOUR.EQ.-2.OR.
  1286. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)))THEN
  1287. DO 62 IC=1,2
  1288. VARF(IC+1) =WMAX(IC+1)
  1289. VARF(IC+3) =W(IC+1)
  1290. VARF(IC+5) =VF2(IC)
  1291. VARF(IC+7) =VF3(IC)
  1292. VARF(IC+9) =XINVL(IC+1)
  1293. 62 CONTINUE
  1294. ENDIF
  1295. C
  1296. C============================================
  1297. C-----------CAS DEFO PLANE/AXIS--------------
  1298. C============================================
  1299. C
  1300. C NVARI=22 cf. IDVAR4
  1301. C
  1302. IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  1303. DO 64 IC=1,2
  1304. VARF(IC+1) =WMAX(IC+1)
  1305. VARF(IC+4) =W(IC+1)
  1306. VARF(IC+7) =VF2(IC)
  1307. VARF(IC+9) =VF3(IC)
  1308. VARF(IC+11)=XINVL(IC+1)
  1309. 64 CONTINUE
  1310. VARF(4) =WMAX(1)
  1311. VARF(7) =W(1)
  1312. VARF(14)=XINVL(1)
  1313. ENDIF
  1314. C
  1315. C VARIABLE INTERNE DE NOM 'EPSE'
  1316. C ------------------------------
  1317. VARF(1)=W(1)+W(2)+W(3)
  1318. C
  1319. C------------------------------------------------------------------
  1320. C RANGEMENT DES VARIABLES INTERNES PROPRES AU MODELE GATT_MONERIE
  1321. C AUTRES QUE LES DEF. VISCOPLAST.
  1322. C------------------------------------------------------------------
  1323. DO 66 IC=1,NGAT
  1324. VARF(NVARI-NGAT+IC)=VARGAF(IC)
  1325. 66 CONTINUE
  1326. C
  1327. C-----------------------------------------------------
  1328. C RANGEMENT DES VARIABLES INTERNES / DEF. VISCOPLAST.
  1329. C------------------------------------------------------
  1330. KGAT=MGAT-NGAT
  1331. C
  1332. IF (MFR.EQ.1) THEN
  1333. C
  1334. C-----------------------MASSIF 3D/2D----KGAT=6/4---------------
  1335. C
  1336. DO 68 IC=1,KGAT
  1337. IF(IC.LE.3) THEN
  1338. VARF(NVARI-MGAT+IC)=EPSV0(IC)
  1339. ELSE
  1340. VARF(NVARI-MGAT+IC)=EPSV0(IC)*DEUX
  1341. ENDIF
  1342. 68 CONTINUE
  1343. C
  1344. ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN
  1345. C
  1346. C-----3D COQUES MINCES SANS/AVEC CISAIL. TRANS.-----KGAT=6/8--------
  1347. C ON NE PREND QUE LA PARTIE MEMBRANE !!
  1348. C
  1349. VARF(NVARI-MGAT+1)=EPSV0(1)
  1350. VARF(NVARI-MGAT+2)=EPSV0(2)
  1351. VARF(NVARI-MGAT+3)=EPSV0(4)*DEUX
  1352. VARF(NVARI-MGAT+4)=XZER
  1353. VARF(NVARI-MGAT+5)=XZER
  1354. VARF(NVARI-MGAT+6)=XZER
  1355. IF(MFR.EQ.9) THEN
  1356. VARF(NVARI-MGAT+7)=XZER
  1357. VARF(NVARI-MGAT+8)=XZER
  1358. ENDIF
  1359. ENDIF
  1360. C
  1361. C========================================================================
  1362. C---------PASSAGE A L'OPTION DE CALCUL POUR LES CONTRAINTES--------------
  1363. C========================================================================
  1364. C
  1365. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  1366. C
  1367. C----------MASSIF 3D----------------
  1368. C
  1369. DO 70 I=1,6
  1370. SIGF(I)=SIGMA0(I)
  1371. IF(I.LE.3) THEN
  1372. DEFP(I)=DDEFPT(I)
  1373. ELSE
  1374. DEFP(I)=DDEFPT(I)*DEUX
  1375. ENDIF
  1376. 70 CONTINUE
  1377. ELSE IF (IFOUR.NE.2.AND.MFR.EQ.1) THEN
  1378. C
  1379. C---AXISYMETRIQUE/DEF/CONT PLANES----
  1380. C
  1381. DO 80 I=1,4
  1382. SIGF(I)=SIGMA0(I)
  1383. IF(I.LE.3) THEN
  1384. DEFP(I)=DDEFPT(I)
  1385. ELSE
  1386. DEFP(I)=DDEFPT(I)*DEUX
  1387. ENDIF
  1388. 80 CONTINUE
  1389. IF (ABS(SIGMA0(5)).GT.(YOUN*1.D-15).OR.
  1390. & ABS(SIGMA0(6)).GT.(YOUN*1.D-15)) THEN
  1391. C
  1392. C SMRT OU SMTZ NON NULLES APRES ECOULEMENT
  1393. C
  1394. KERRE=988
  1395. GO TO 2021
  1396. ENDIF
  1397. C
  1398. ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN
  1399. C
  1400. C-----CALCUL TRIDIM COQUES MINCES -------
  1401. C
  1402. C ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE
  1403. C ET DE FACON LINEAIRE, LES PARTIES FLEXION ET EFFORTS
  1404. C TRANCHANTS LE CAS ECHEANT
  1405. C
  1406. FAC=(EPAI**3)/12.D0
  1407. AUX =FAC*YOUN/(UN-XNU*XNU)
  1408. AUX1=FAC*YOUN*UNDEMI/(UN+XNU)
  1409. SIGF(1)=SIGMA0(1)*EPAI
  1410. SIGF(2)=SIGMA0(2)*EPAI
  1411. SIGF(3)=SIGMA0(4)*EPAI
  1412. SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5))
  1413. SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4))
  1414. SIGF(6)=SIG0(6)+AUX1*DEPST(6)
  1415. DEFP(1)=DDEFPT(1)
  1416. DEFP(2)=DDEFPT(2)
  1417. DEFP(3)=DDEFPT(4)*DEUX
  1418. DEFP(4)=0.D0
  1419. DEFP(5)=0.D0
  1420. DEFP(6)=0.D0
  1421. IF(MFR.EQ.9) THEN
  1422. XK=1.2D0
  1423. AUX2=EPAI*YOUN*UNDEMI/(UN+XNU)/XK
  1424. SIGF(7)=SIG0(7)+AUX2*DEPST(7)
  1425. SIGF(8)=SIG0(8)+AUX2*DEPST(8)
  1426. DEFP(7)=0.D0
  1427. DEFP(8)=0.D0
  1428. ENDIF
  1429. ENDIF
  1430. C
  1431. IF(IIMPI.EQ.42) THEN
  1432. WRITE(IOIMP,77051) (SIGF(I),I=1,NSTRS)
  1433. 77051 FORMAT('0 SIGF '/8(1X,1PE12.5)/)
  1434. *
  1435. WRITE(IOIMP,77052) (DEFP(I),I=1,NSTRS)
  1436. 77052 FORMAT('0 DEFP '/8(1X,1PE12.5)/)
  1437. ENDIF
  1438. C
  1439. 2021 CONTINUE
  1440. C
  1441. IF(KERRE.EQ.0) GO TO 9999
  1442. C
  1443. IF(JEBOUC.EQ.1.AND.IIMPI.EQ.1042) THEN
  1444. IIMPI=42
  1445. WRITE(IOIMP,70901) IB,IGAU
  1446. 70901 FORMAT(2X,'>>>>>>>> UO2OT2 IB=',I7,2X,'IGAU=',I3/)
  1447. GO TO 2020
  1448. ENDIF
  1449. C
  1450. 9999 CONTINUE
  1451. IIMPI=IIMPI0
  1452.  
  1453. IF(KERRE.NE.0.AND.IIMPI.EQ.42) THEN
  1454. WRITE(IOIMP,70902) IB,IGAU
  1455. 70902 FORMAT(2X,'SORTIE UO2 '////)
  1456. ENDIF
  1457. C
  1458. RETURN
  1459. END
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  

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