Télécharger uo2in.eso

Retour à la liste

Numérotation des lignes :

uo2in
  1. C UO2IN SOURCE STRU 07/05/31 21:15:42 5744
  2. SUBROUTINE UO2IN(ISING,IFERM,IBRUP,LEBIL,PENTE,PENTE2,NCA,NN,MC,
  3. & MM,SIGG0,GS,FC,XINVL,XLTR,WMAX0,WRUPT,PRECIZ,T0,
  4. & TPOINT,FI0,FPOINT,PRECIS,XMAT,NCOMAT,NSIMP,AAD,BTR,
  5. & EPSPT,EPSV0,VAR0,W0,DX0,NGAT,TAU,KERRE)
  6. C----------------------------------------------------------------------
  7. C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE)
  8. C DETERMINATION DU CHEMIN A SUIVRE EN CAS DE BIFURCATION
  9. C----------------------------------------------------------------------
  10. C
  11. C ENTREES
  12. C -------
  13. C ISING(NC) = SINGULARITES CORRESPONDANT A UNE BIFURCATION
  14. C IFERM(NC) = FISSURES FERMEES
  15. C IBRUP(NC) = FISSURES ROMPUES
  16. C LEBIL(NC) = COMPRESSION/TRACTION
  17. C PENTE(NC) = PREMIERE PENTE DE FISSURATION CORRESPONDANT A FC
  18. C PENTE2(NC) = DEUXIEME PENTE DE FISSURATION
  19. C NCA = NBR. DE DIRECTIONS DE FISS. OU UN CRITERE EST ATTEINT
  20. C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT
  21. C MC = NBR. DE CRITERES DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
  22. C MM(20) = TYPES DES CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
  23. C SIGG0(6) = CONTRAINTES INITIALES
  24. C GS(3) = RESISTANCES AU CISAILLEMENT
  25. C FC(NC) = CRITERE DE FISSURATION
  26. C XINVL(3) = PARAMETRES DE TAILLE
  27. C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION
  28. C WMAX0(3) = OUVERTURES MAXIMALES DES FISSURES AU DEB. DU SOUS PAS
  29. C WRUPT(3) = OUVERTURES CONDITIONNANT LA RUPTURE
  30. C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES
  31. C T0 = TEMPERATURE AU DEBUT DU SOUS PAS D INTEGRATION
  32. C TPOINT = VITESSE DE TEMPERATURE SUR LE PAS D INTEGRATION
  33. C FI0 = DENSITE DE FISSION AU DEBUT DU SOUS PAS D INTEGRATION
  34. C FPOINT = VITESSE DE DENSITE DE FISSION SUR LE PAS D INTEGRATION
  35. C PRECIS = PRECISION POUR LA VISCOPLASTICITE
  36. C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU
  37. C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT
  38. C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT
  39. C DE LA DEFORMATION DE DENSIFICATION
  40. C BTR = PARAMETRE DE FERMETURE
  41. C EPSPT(6) = VITESSE DES DEFORM. TOTALES SUR LE PAS D INTEGRATION
  42. C EPSV0(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION
  43. C VAR0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS
  44. C W0(3) = OUVERTURES DE FISS. AU DEB. DU SS PAS D'INTEGRATION
  45. C DX0(NC) = DEF. DE FISSURATION (OUV.) AU DEB. DU SS PAS
  46. C TAU = (DT) PAS D INTEGRATION
  47. C
  48. C SORTIES
  49. C -------
  50. C NCA = NBR. DE DIR. DE FISS. OU UN CRIT. EST ATTEINT CPTE TENU
  51. C DU CHEMIN A SUIVRE (DECHARGE ELASTIQUE POSSIBLE)
  52. C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT
  53. C CPTE TENU DU CHEMIN A SUIVRE
  54. C MC = NOUVEAU NBR. DE CRIT. DE FISS. SUSCEPT. D ETRE ATTEINTS
  55. C MM(20) = NOUV. TYPES DES CRIT. DE FISS. SUSCEPT. D ETRE ATTEINTS
  56. C PENTE(NC) = PENTE DE FISSURATION DU CHEMIN A SUIVRE
  57. C-----------------------------------------------------------------------
  58. C
  59. IMPLICIT INTEGER(I-N)
  60. IMPLICIT REAL*8(A-H,O-Z)
  61.  
  62. -INC PPARAM
  63. -INC CCOPTIO
  64. C
  65. PARAMETER (NC=3,NGATT=4)
  66. C
  67. DIMENSION ISING(*),IFERM(*),IBRUP(*),LEBIL(*)
  68. DIMENSION XINVL(*),XLTR(*),WRUPT(*),WMAX0(*)
  69. DIMENSION FC(*),PENTE(*),PENTE2(*)
  70. DIMENSION NN(*),MM(*)
  71. DIMENSION SIGG0(*),EPSPT(*),EPSV0(*),VAR0(*),W0(*),DX0(*)
  72. DIMENSION GS(*),XMAT(*)
  73. DIMENSION DDE(18)
  74. DIMENSION SIGGF(6),EPSVVF(6),VARF(NGATT),WF(3),DSIG(6)
  75. DIMENSION WMAXF(3),WREOU0(3),WREOUF(3)
  76. DIMENSION DXF(NC),DDX(NC)
  77. DIMENSION NSITUA(NC+1),JESEC(NC),LASIT(NC)
  78. DIMENSION PENT(NC),NN2(NC)
  79. C
  80. C
  81. IF(IIMPI.EQ.42) THEN
  82. WRITE(IOIMP,74411) (ISING(IC),IC=1,NC),
  83. & (IFERM(IC),IC=1,NC),
  84. & (IBRUP(IC),IC=1,NC)
  85. 74411 FORMAT(5X,' ENTREE DANS UO2IN - ISING = ',3I3,
  86. & 2X,'IFERM = ',3I3/2X,'IBRUP = ',3I3/)
  87. ENDIF
  88. C
  89. C
  90. C INITIALISATIONS
  91. C
  92. NC1=NC+1
  93. KERRE=0
  94. CALL SHIFTD(PENTE,PENT,NC)
  95. PRECIE=1.D-10
  96. IFLAG1=1
  97. DO I=1,3
  98. WREOU0(I) = BTR*MIN(WMAX0(I),WRUPT(I))
  99. ENDDO
  100. C
  101. C
  102. DO IC=1,NC
  103. NSITUA(IC)=1 + ISING(IC) + IFERM(IC) + IBRUP(IC)
  104. IF(NSITUA(IC).GT.2) THEN
  105. WRITE(IOIMP,74412) IC,ISING(IC),IFERM(IC),IBRUP(IC)
  106. 74412 FORMAT(2X,'####### CAS IMPOSSIBLE IC=',I3,2X,
  107. & 'ISING(IC)=',I3,2X,'IFERM(IC)=',I3,2X,
  108. & 'IBRUP(IC)=',I3/)
  109. KERRE=7
  110. RETURN
  111. ENDIF
  112. ENDDO
  113. C
  114. C
  115. DO 21 I1=1,NSITUA(1)
  116. LASIT(1)=I1
  117. C
  118. DO 22 I2=1,NSITUA(2)
  119. LASIT(2)=I2
  120. C
  121. DO 23 I3=1,NSITUA(3)
  122. LASIT(3)=I3
  123. C
  124. C TYPES 1 (ISING) ( IC=1 A 3 )
  125. C 1 : PENTE2 (SECANTE)
  126. C 2 : PENTE
  127. C
  128. C TYPES 2 (IFERM) ( IC=1 A 3 )
  129. C 1 : ELASTIQUE
  130. C 2 : PENTE SECANTE
  131. C
  132. C TYPES 3 (IBRUP) ( IC=1 A 3 )
  133. C 1 : ELASTIQUE
  134. C 2 : PENTE
  135. C
  136. DO IC=1,3
  137. IF(LASIT(IC).EQ.2) THEN
  138. PENT(IC)=PENTE(IC)
  139. ELSE IF(LASIT(IC).EQ.1.AND.ISING(IC).EQ.1) THEN
  140. PENT(IC)=PENTE2(IC)
  141. ENDIF
  142. ENDDO
  143. C
  144. C
  145. CALL IANUL(JESEC,NC)
  146. NCA2=0
  147. DO IJ=1,NCA
  148. JJ=NN(IJ)
  149. IF(LASIT(JJ).EQ.1) THEN
  150. IF(IFERM(JJ).NE.1.AND.IBRUP(JJ).NE.1) THEN
  151. NCA2=NCA2+1
  152. NN2(NCA2)=JJ
  153. ENDIF
  154. ELSE IF(LASIT(JJ).EQ.2) THEN
  155. NCA2=NCA2+1
  156. NN2(NCA2)=JJ
  157. IF(IFERM(JJ).EQ.1.AND.JJ.LE.3) THEN
  158. JESEC(JJ)=1
  159. ENDIF
  160. ENDIF
  161. ENDDO
  162. C
  163. IF(IIMPI.EQ.42) THEN
  164. WRITE(IOIMP,60080) I1,I2,I3,NCA,NCA2
  165. 60080 FORMAT(//2X,' ******** SITUATION : I1 I2 I3 ',
  166. & 3I3/2X,'NCA=',I3,2X,'NCA2=',I3/)
  167. ENDIF
  168. C
  169. IF(NCA2.EQ.0) THEN
  170. GO TO 55
  171. ENDIF
  172. C
  173. C
  174. C --- determination d un etat converge pour TAU inferieur ou egal a DT
  175. C
  176. NDIM=NCA2
  177. IF(IFOUR.EQ.-2) NDIM=NCA2+1
  178. C
  179. TAUESS=TAU
  180. C
  181. CALL UO2DCN(IFLAG1,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ,
  182. & XMAT,NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENT,
  183. & EPSPT,SIGG0,EPSV0,VAR0,W0,WMAX0,WREOU0,DX0,
  184. & NGAT,NC1,NCA2,NDIM,NN2,TAUESS,TAUNEX,SIGGF,EPSVVF,
  185. & VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE)
  186. IF (KERRE.NE.0) THEN
  187. RETURN
  188. ENDIF
  189. C
  190. C
  191. IF(IIMPI.EQ.42) THEN
  192. WRITE(IOIMP,60081) (SIGG0(I),I=1,6)
  193. 60081 FORMAT(2X,' SIGG0 '/(6(1X,1PE12.5))/)
  194. ENDIF
  195. C
  196. IF(IIMPI.EQ.42) THEN
  197. WRITE(IOIMP,77010) NCA2,NDIM
  198. 77010 FORMAT(5X,'NCA2=',I3,2X,'NDIM =',I3/)
  199. WRITE(IOIMP,77018) (NN2(IJ),IJ=1,NCA2)
  200. 77018 FORMAT(5X,'NN2 ',5(1X,I3))
  201. ENDIF
  202. C
  203. C
  204. DO IJ=1,NCA2
  205. JJ=NN2(IJ)
  206. DDX(JJ)=DXF(JJ)-DX0(JJ)
  207. C
  208. IF(IIMPI.EQ.42) THEN
  209. WRITE(IOIMP,77013) JJ,DDX(JJ)
  210. 77013 FORMAT(5X,' UO2IN - DIRECTION',(1X,I3),
  211. & 'DDX CALCULE'/(1X,1PE12.5))
  212. ENDIF
  213. C
  214. ENDDO
  215. C
  216. C
  217. DO I=1,6
  218. DSIG(I)=SIGGF(I)-SIGG0(I)
  219. ENDDO
  220. C
  221. IF(IIMPI.EQ.42) THEN
  222. WRITE(IOIMP,79013) (DSIG(I),I=1,6)
  223. 79013 FORMAT(5X,' UO2IN - DSIG CALCULE '/(6(1X,1PE12.5)))
  224. ENDIF
  225. C
  226. C
  227. IFLAG=0
  228. DO IJ=1,NCA2
  229. JJ=NN2(IJ)
  230. IF(ISING(JJ).EQ.1) THEN
  231. IF(DSIG(JJ).GT.PRECIZ) IFLAG=1
  232. IF(PENT(JJ).EQ.PENTE(JJ).AND.DDX(JJ).LT.0.D0) IFLAG=1
  233. IF(PENT(JJ).EQ.PENTE2(JJ).AND.DDX(JJ).GT.0.D0) IFLAG=1
  234. ENDIF
  235. C
  236. IF(IFERM(JJ).EQ.1) THEN
  237. IF(DDX(JJ).LT.0.D0.OR.DSIG(JJ).LT.-PRECIZ) IFLAG=1
  238. ENDIF
  239. ENDDO
  240. C
  241. DO I=1,3
  242. IF(IFERM(I).EQ.1.AND.LASIT(I).EQ.1) THEN
  243. IF(DSIG(I).GT.PRECIZ) IFLAG=1
  244. ENDIF
  245. ENDDO
  246. C
  247. DO I=1,3
  248. IF(IBRUP(I).EQ.1.AND.LASIT(I).EQ.1) THEN
  249. IF(DSIG(I).GT.PRECIZ) IFLAG=1
  250. ENDIF
  251. ENDDO
  252. C
  253. C
  254. IF(IFLAG.EQ.0) THEN
  255. DO IJ=1,NCA2
  256. JJ=NN2(IJ)
  257. IF(ISING(JJ).EQ.1) THEN
  258. IF(PENT(JJ).EQ.PENTE(JJ)) THEN
  259. ISING(JJ)=2
  260. LEBIL(JJ)=0
  261. ENDIF
  262. IF(PENT(JJ).EQ.PENTE2(JJ)) THEN
  263. ISING(JJ)=3
  264. LEBIL(JJ)=1
  265. ENDIF
  266. ENDIF
  267. ENDDO
  268. GO TO 99
  269. ENDIF
  270. C
  271. C
  272. 55 CONTINUE
  273. C
  274. 23 CONTINUE
  275. C
  276. 22 CONTINUE
  277. C
  278. 21 CONTINUE
  279. C
  280. C
  281. C EN CAS DE PROBLEME :
  282. C
  283. KERRE=7
  284. C VALEUR DE KERRE A AMELIORER
  285. C
  286. WRITE(IOIMP,73312)
  287. 73312 FORMAT(2X,'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' /
  288. & 4X,'ATTENTION - UO2IN - PAS DE SOLUTION ' /
  289. & 2X,'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'/)
  290. RETURN
  291. C
  292. C
  293. C
  294. 99 CONTINUE
  295. C
  296. CALL SHIFTD(PENT,PENTE,NC)
  297. C
  298. IF(IIMPI.EQ.42) THEN
  299. WRITE(IOIMP,70801) (PENTE(I),I=1,NC)
  300. 70801 FORMAT(///2X,'UO2IN SORTIE - PENTE '/(4(1X,1PE12.5)/))
  301. WRITE(IOIMP,76802) (LEBIL(I),I=1,NC)
  302. 76802 FORMAT(/2X,'UO2IN SORTIE - LEBIL '/(4I5/))
  303. WRITE(IOIMP,76803) (ISING(I),I=1,NC)
  304. 76803 FORMAT(/2X,'UO2IN SORTIE - ISING '/(4I5/))
  305. ENDIF
  306. C
  307. C
  308. C RETRAITEMENT
  309. C
  310. NCA=NCA2
  311. IF (NCA.EQ.0) GOTO 1000
  312. DO I=1,NCA
  313. NN(I)=NN2(I)
  314. ENDDO
  315. C
  316. MC2=0
  317. DO I=1,MC
  318. C
  319. C TYPES 1
  320. C
  321. IF(MM(I).GE.7.AND.MM(I).LE.9) THEN
  322. IC=MM(I)-6
  323. IF(ISING(IC).EQ.3) GO TO 101
  324. ENDIF
  325.  
  326. IF(MM(I).GE.13.AND.MM(I).LE.15) THEN
  327. IC=MM(I)-12
  328. IF(ISING(IC).EQ.2) GO TO 101
  329. ENDIF
  330. C
  331. C TYPES 2
  332. C
  333. IF(MM(I).GE.4.AND.MM(I).LE.6) THEN
  334. IC=MM(I)-3
  335. IF(IFERM(IC).EQ.1.AND.JESEC(IC).EQ.0) GO TO 101
  336. ENDIF
  337. C
  338. MC2=MC2+1
  339. MM(MC2)=MM(I)
  340. 101 CONTINUE
  341. ENDDO
  342. MC=MC2
  343.  
  344. IF(IIMPI.EQ.42) THEN
  345. WRITE(IOIMP,44102) NCA
  346. 44102 FORMAT(2X,'UO2IN - NOUVELLE VALEUR NCA =',I3/)
  347. WRITE(IOIMP,44103) (NN(IC),IC=1,NCA)
  348. 44103 FORMAT(2X,'UO2IN - NOUVELLE LISTE NN '/16(1X,I3)/)
  349. WRITE(IOIMP,49102) MC
  350. 49102 FORMAT(2X,'UO2IN - NOUVELLE VALEUR MC =',I3/)
  351. WRITE(IOIMP,49103) (MM(IC),IC=1,MC)
  352. 49103 FORMAT(2X,'UO2IN - NOUVELLE LISTE MM '/16(1X,I3)/)
  353. ENDIF
  354. C
  355. 1000 CONTINUE
  356. C
  357. RETURN
  358. END
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  

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