Télécharger uo2ot2.eso

Retour à la liste

Numérotation des lignes :

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

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