Télécharger uo2et.eso

Retour à la liste

Numérotation des lignes :

uo2et
  1. C UO2ET SOURCE STRU 05/12/12 21:15:01 5272
  2. SUBROUTINE UO2ET(NC,NN,SIGMA,W,WMAX,SMAX,BILIN,WRUPT,BTR,
  3. & XLTR,XINVL,SBILI,PRECIE,PRECIZ,FC,FC2,LEBIL,NFISSU,
  4. & NVF,VF,FC0,PENTE,PENTE2,DXV1,YOUN,NCA,MC,MM,
  5. & ISING,IFERM,IBRUP,KERRE)
  6. C----------------------------------------------------------------------
  7. C MODELE UO2 (OTTOSEN ET GATT_MONERIE)
  8. C DETERMINATION DE L ETAT INITIAL DE FISSURATION
  9. C----------------------------------------------------------------------
  10. C
  11. C ENTREES
  12. C -------
  13. C NC = (3) NBR. TOTAL DE DIRECTIONS DE FISS. POSSIBLES
  14. C SIGMA(6) = CONTRAINTES INITIALES
  15. C W(3) = OUVERTURES INITIALES DES FISSURES
  16. C WMAX(3) = OUVERTURES MAXIMALES INITIALES DES FISSURES
  17. C SMAX(3) = CONTR. CORRESPONDANT A WMAX
  18. C BILIN(3) = OUVERTURES DEFINISSANT LE CHANGEMENT DE PENTE EN CAS DE
  19. C RELATION BILINEAIRE ENTRE CONTRAINTE ET OUVERTURE
  20. C WRUPT(3) = OUVERTURES CONDITIONNANT LA RUPTURE
  21. C BTR = PARAMETRE DE FERMETURE
  22. C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION
  23. C XINVL(3) = PARAMETRES DE TAILLE
  24. C SBILI(3) = CONTR. CORRESPONDANT A BILIN
  25. C PRECIE = PRECISION POUR TESTS SUR OUVERTURES DE FISSURES
  26. C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES
  27. C NFISSU = NOMBRE DE FISSURES
  28. C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR
  29. C DES DIRECTIONS DE FISSURATION
  30. C DXV1(3) = INCREMENT DES DEF. DE FISSURATION INITIALES (OUV.)
  31. C YOUN = MODULE D YOUNG
  32. C
  33. C SORTIES
  34. C -------
  35. C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT
  36. C FC(NC) = CRITERE DE FISSURATION
  37. C FC2(NC) = DEUXIEME CRITERE DE FISSURATION SI BIFURCATION POSSIBLE
  38. C LEBIL(NC) = COMPRESSION/TRACTION
  39. C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION
  40. C FC0(20) = CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
  41. C PENTE(NC) = PENTE DE LA DROITE DE FISSURATION CORRESPONDANT A FC
  42. C PENTE2(NC) = PENTE DE LA DROITE DE FISSURATION CORRESPONDANT A FC2
  43. C NCA = NBR. DE DIRECTIONS DE FISS. OU UN CRITERE EST ATTEINT
  44. C MM(20) = TYPES DES CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
  45. C MC = NBR. DE CRITERES DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
  46. C ISING(NC) = SINGULARITES CORRESPONDANT A UNE BIFURCATION
  47. C IFERM(NC) = FISSURES FERMEES
  48. C IBRUP(NC) = FISSURES ROMPUES
  49. C KERRE = GESTION DES ERREURS
  50. C----------------------------------------------------------------------
  51. C
  52. IMPLICIT INTEGER(I-N)
  53. IMPLICIT REAL*8(A-H,O-Z)
  54.  
  55. -INC PPARAM
  56. -INC CCOPTIO
  57. C
  58. PARAMETER (XZER=0.D0)
  59. C
  60. DIMENSION SIGMA(*),W(*),WMAX(*),SMAX(*),BILIN(*),WRUPT(*),XLTR(*)
  61. DIMENSION XINVL(*),SBILI(*),DXV1(*)
  62. DIMENSION NN(*),FC(*),FC2(*),LEBIL(*),VF(3,*),FC0(*)
  63. DIMENSION PENTE(*),PENTE2(*),MM(*)
  64. DIMENSION ISING(*),IFERM(*),IBRUP(*)
  65. DIMENSION WREOUV(3),JFIS(3)
  66. C
  67. KERRE=0
  68. CALL IANUL(ISING,NC)
  69. CALL IANUL(IFERM,NC)
  70. CALL IANUL(IBRUP,NC)
  71. C
  72. DO IC=1,NC
  73. NN(IC)=IC
  74. ENDDO
  75. C
  76. C ------ calcul de FC FC2 PENTE PENTE2 LEBIL ISING ------
  77. C ------ caracterisant l etat de fissuration ------
  78. C
  79. CALL UO2EC(NC,NC,NN,SIGMA,W,WMAX,SMAX,BILIN,WRUPT,BTR,
  80. & XLTR,XINVL,SBILI,FC,FC2,PENTE,PENTE2,LEBIL,ISING,
  81. & PRECIE,PRECIZ,KERRE)
  82. IF(KERRE.NE.0) THEN
  83. PRINT *, ' UO2ET - APRES UO2EC KERRE=',KERRE
  84. RETURN
  85. ENDIF
  86. C
  87. NCA=0
  88. MC=0
  89. C
  90. C
  91. DO IC=1,3
  92. WREOUV(IC)=BTR*MIN(WMAX(IC),WRUPT(IC))
  93. C
  94. IF(FC(IC).GT.PRECIZ.OR.FC2(IC).GT.PRECIZ) THEN
  95. C cas ou le critere est violé
  96. KERRE=2
  97. PRINT *,' UO2ET - CRITERE VIOLE ',IC
  98. RETURN
  99. ENDIF
  100. C
  101. C cas ou le critere n'est pas atteint
  102. C -----------------------------------
  103. C
  104. IF(FC(IC).LT.-PRECIZ.AND.FC2(IC).LT.-PRECIZ) THEN
  105. C
  106. C ---> sous-cas 1 : la direction n'a pas encore fissure
  107. C
  108. IF(XINVL(IC).EQ.XZER) THEN
  109. MC=MC+1
  110. MM(MC)= IC
  111. ELSE
  112. C
  113. C ---> sous-cas 2 : la direction a deja fissure
  114. C
  115. IF(LEBIL(IC).EQ.0) THEN
  116. C on est en compression
  117. IF(BTR.LT.1.D0.AND.WMAX(IC).NE.XZER) THEN
  118. MC=MC+1
  119. MM(MC)= 9+IC
  120. ELSE
  121. MC=MC+1
  122. MM(MC)= 3+IC
  123. ENDIF
  124. ELSE
  125. KERRE=2
  126. PRINT *,' UO2ET - CAS IMPOSSIBLE ',IC
  127. RETURN
  128. ENDIF
  129. C
  130. ENDIF
  131. C
  132. ELSE
  133. C
  134. C cas ou le critere est atteint
  135. C -----------------------------
  136. C
  137. IF(XINVL(IC).EQ.XZER) THEN
  138. KERRE=2
  139. PRINT *,' UO2ET - XINVL EST NUL IC= ',IC
  140. RETURN
  141. ENDIF
  142. C
  143. PRECIW=PRECIE/XINVL(IC)
  144. NCA=NCA+1
  145. NN(NCA)=IC
  146. C
  147. C ---> sous-cas 1 : le materiau n est pas totalement casse
  148. C ---------------------------------------------------
  149. C
  150. IF(WMAX(IC).LT.WRUPT(IC)) THEN
  151. C
  152. IF(ABS(W(IC)-WREOUV(IC)).LT.PRECIW) THEN
  153. C
  154. IF(WMAX(IC).EQ.0.D0.OR.BTR.EQ.1.D0) THEN
  155. C
  156. C le materiau vient d'atteindre la limite
  157. C
  158. MC=MC+1
  159. MM(MC)= 6+IC
  160. IBRUP(IC)=1
  161. C
  162. ELSE
  163. C
  164. C on est pile sur le critere sigma=0 (==> IFERM=1)
  165. C et LEBIL vaut 1
  166. C
  167. IF(LEBIL(IC).NE.1) THEN
  168. KERRE=2
  169. PRINT *,' UO2ET - LEBIL NEG 1 SELON ',IC
  170. RETURN
  171. ENDIF
  172. C
  173. MC=MC+1
  174. MM(MC)= 3+IC
  175. IFERM(IC)=1
  176. ENDIF
  177. C
  178. ELSE IF(W(IC).GT.WREOUV(IC)) THEN
  179. C
  180. IF(ABS(W(IC)-WMAX(IC)).LT.PRECIW) THEN
  181. C
  182. C LEBIL vaut 2
  183. C
  184. IF(LEBIL(IC).NE.2) THEN
  185. KERRE=2
  186. PRINT *,' UO2ET - LEBIL NEG 2 SELON ',IC
  187. RETURN
  188. ENDIF
  189. C
  190. C d abord les 2
  191. C
  192. IF(FC(IC).GT.-PRECIZ.AND.FC2(IC).GT.-PRECIZ) THEN
  193. C
  194. MC=MC+1
  195. MM(MC)= 6+IC
  196. MC=MC+1
  197. MM(MC)= 12+IC
  198. C
  199. C sinon seul le secant
  200. C
  201. ELSE IF(FC(IC).LT.-PRECIZ.AND.
  202. & FC2(IC).GT.-PRECIZ) THEN
  203. C
  204. C on remet lebil a 1
  205. C
  206. LEBIL(IC)=1
  207. FC(IC)=FC2(IC)
  208. PENTE(IC)=PENTE2(IC)
  209. MC=MC+1
  210. MM(MC)= 3+IC
  211. MC=MC+1
  212. MM(MC)= 12+IC
  213. C
  214. ELSE
  215. KERRE=2
  216. PRINT *,' UO2ET - CAS PAS POSSIBLE SELON ',IC
  217. RETURN
  218. ENDIF
  219. C
  220. C
  221. ELSE
  222. C
  223. C on est sur le secant et LEBIL vaut 1
  224. C
  225. IF(LEBIL(IC).NE.1) THEN
  226. KERRE=2
  227. PRINT *,' UO2ET - LEBIL NEG 1 SELON ',IC
  228. RETURN
  229. ENDIF
  230. C
  231. MC=MC+1
  232. MM(MC)= 3+IC
  233. MC=MC+1
  234. MM(MC)= 12+IC
  235. ENDIF
  236. C
  237. ELSE
  238. C
  239. C W < WREOUV : CAS IMPOSSIBLE
  240. C
  241. KERRE=2
  242. PRINT *,' UO2ET - W < WREOUV IC= ',IC
  243. PRINT *,'W(IC)=',W(IC)
  244. PRINT *,'WMAX(IC)=',WMAX(IC)
  245. PRINT *,'WREOUV(IC)=',WREOUV(IC)
  246. PRINT *,'WRUPT(IC)=',WRUPT(IC)
  247.  
  248.  
  249. RETURN
  250. ENDIF
  251. C
  252. C ---> sous-cas 2 : le materiau est totalement casse
  253. C ---------------------------------------------
  254. C
  255. ELSE IF(WMAX(IC).GE.WRUPT(IC)) THEN
  256. C
  257. C
  258. IF(W(IC)-WREOUV(IC).LT.-PRECIW) THEN
  259. C
  260. KERRE=2
  261. PRINT *,' UO2ET - W < WREOUV IC= ',IC
  262. PRINT *,'W(IC)=',W(IC)
  263. PRINT *,'WMAX(IC)=',WMAX(IC)
  264. PRINT *,'WREOUV(IC)=',WREOUV(IC)
  265. PRINT *,'WRUPT(IC)=',WRUPT(IC)
  266. RETURN
  267. C
  268. ELSE
  269. C
  270. C on est en ouverture
  271. C ou bien on est pile sur la limite sigma=0
  272. C LEBIL vaut 1 dans les 2 cas
  273. C
  274. IF(LEBIL(IC).NE.1) THEN
  275. KERRE=2
  276. PRINT *,' UO2ET - LEBIL NEG 1 SELON ',IC
  277. RETURN
  278. ENDIF
  279. C
  280. IF(W(IC)-WREOUV(IC).GT.PRECIW) THEN
  281. MC=MC+1
  282. MM(MC)= 12+IC
  283. ELSE
  284. IFERM(IC)=1
  285. ENDIF
  286. C
  287. ENDIF
  288. ENDIF
  289. C
  290. ENDIF
  291. C
  292. ENDDO
  293. C
  294. C
  295. C
  296. C TEST SUR MC
  297. C
  298. IF(MC.EQ.0) THEN
  299. KERRE=2
  300. PRINT *,' UO2ET - MC EST NUL '
  301. RETURN
  302. ENDIF
  303. C
  304. C APPEL A UO2CE
  305. C
  306. CALL UO2CE(MC,MM,SIGMA,DXV1,W,WMAX,SMAX,WRUPT,XLTR,XINVL,BTR,
  307. & NFISSU,NVF,FC0,VF,YOUN,PRECIZ,JFIS,KERRE)
  308. IF(KERRE.NE.0) THEN
  309. PRINT *, ' UO2ET - APRES UO2CE KERRE=',KERRE
  310. RETURN
  311. ENDIF
  312. C
  313. C TEST DE L'ETAT INITIAL
  314. C
  315. DO IC=1,MC
  316. JC=MM(IC)
  317. IF(FC0(JC).GT.PRECIZ)THEN
  318. PRINT *,'UO2ET - ETAT INITIAL INADMISSIBLE'
  319. KERRE=2
  320. RETURN
  321. ENDIF
  322. ENDDO
  323. C
  324. IF(IIMPI.EQ.42) THEN
  325. WRITE(IOIMP,77000) (FC(IC),IC=1,NC)
  326. 77000 FORMAT( 2X, ' UO2ET - FC '/(4(1X,1PE12.5)/)/)
  327. WRITE(IOIMP,77001) (LEBIL(IC),IC=1,NC)
  328. 77001 FORMAT( 2X, ' UO2ET - LEBIL '/(7I4)/)
  329. WRITE(IOIMP,77002) NCA,MC
  330. 77002 FORMAT( 2X, ' UO2ET - NCA=',I3,2X,'MC=',I3/)
  331. WRITE(IOIMP,77003) (NN(IC),IC=1,NCA)
  332. 77003 FORMAT( 2X, ' UO2ET - NN '/16(1X,I3)/)
  333. WRITE(IOIMP,77004) (MM(IC),IC=1,MC)
  334. 77004 FORMAT( 2X, ' UO2ET - MM '/16(1X,I3)/)
  335. ENDIF
  336. C
  337. RETURN
  338. END
  339.  
  340.  
  341.  
  342.  

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