1 : C UO2XX SOURCE STRU 07/07/12 21:15:06 5789 2 : SUBROUTINE UO2XX(T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 3 : & XMAT,NCOMAT,NSIMP,AAD,GS,WRUPT,LEBIL,XINVL,PENTE,BTR, 4 : & YOUN,EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, 5 : & SMAX,XLTR,NFISSU,NVF,VF,MC,MM,FC0,NGAT,NC1,NCA,NDIM, 6 : & NN,TAU,STOT,EPSVF,VARF,WF,DXF,WMAXF,WREOUF, 7 : & TF,FIF,MCA,XXMIN,JCRIT,NCRIT,LERED,KERRE) 8 : C---------------------------------------------------------------------- 9 : C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE) 10 : C---------------------------------------------------------------------- 11 : C 12 : C ENTREES 13 : C ------- 14 : C T0/FI0 = TEMPERATURE/DENSITE DE FISSION AU DEB. DU SS PAS 15 : C TPOINT = VITESSE DE TEMPERATURE SUR LE PAS D INTEGRATION 16 : C FPOINT = VITESSE DE DENSITE DE FISSION SUR LE PAS D INTEGRATION 17 : C PRECIS = PRECISION POUR LA CONVERGENCE DU SCHEMA NUMERIQUE 18 : C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES 19 : C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU 20 : C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT 21 : C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT 22 : C DE LA DEFORMATION DE DENSIFICATION 23 : C GS(3) = RESISTANCES AU CISAILLEMENT 24 : C WRUPT(3) = OUVERTURES CONDITIONNANT LA RUPTURE 25 : C LEBIL(NC) = COMPRESSION/TRACTION 26 : C XINVL(3) = PARAMETRES DE TAILLE 27 : C PENTE(NC) = PENTES DES CRITERES 28 : C BTR/YOUN = PARAMETRE DE FERMETURE/MODULE D YOUNG 29 : C EPSPT(6) = VITESSE DES DEFORM. TOTALES SUR LE PAS D INTEGRATION 30 : C SIG0(6) = CONTRAINTES AU DEBUT DU SOUS PAS D INTEGRATION 31 : C EPSV0(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION 32 : C VAR0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS 33 : C W(3)/WMAX0(3)= OUVERTURES/ MAXIMALES DES FISSURES AU DEB. DU SS PAS 34 : C WREOU0(3) = LIMITES DE FERMETURE AU DEBUT DU SOUS PAS D'INTEGRATION 35 : C DX0(NC) = DEF. DE FISSURATION (OUV.) AU DEB. DU SS PAS 36 : C SMAX(3) = CONTR. CORRESPONDANT A WMAX0 37 : C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION 38 : C NFISSU = NOMBRE DE FISSURES 39 : C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR 40 : C DES DIRECTIONS DE FISSURATION 41 : C MM(20)/MC = TYPES/NBR DE CRIT DE FISS SUSCEPTIBLES D ETRE ATTEINTS 42 : C FC0(20) = CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS 43 : C NC1 = NC+1 AVEC NC(=3) NBR. TOTAL DE DIRECTIONS DE FISS. 44 : C NDIM = NCA+1 SI CP, NCA SINON 45 : C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT 46 : C TAU = UN NOUVEAU CRIT EST-IL VIOLE POUR LES RESULTATS A TAU 47 : C STOT(6) = CONTRAINTES A LA FIN DU SOUS PAS D INTEGRATION 48 : C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU SOUS PAS D'INTEGRATION 49 : C VARF(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE A LA FIN DU SS PAS 50 : C WF(3)/WMAXF(3)= OUVERTURES/ MAXIMALES DES FISSURES A LA FIN DU SS PAS 51 : C 52 : C SORTIES 53 : C ------- 54 : C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION 55 : C STOT(6) = CONTRAINTES A LA FIN DU NOUVEAU SOUS PAS D INTEGRATION 56 : C (LE CAS ECHEANT)/ UN DES NOUVEAUX CRITERES SOIT NUL 57 : C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU NOUVEAU SS PAS 58 : C VARF(NGAT) = VAR. INT. SCAL. A LA FIN DU NOUVEAU SS PAS 59 : C WF(3)/WMAXF(3)= OUV./ MAXIMALES DES FISS. A LA FIN DU NOUVEAU SS PAS 60 : C TF/FIF = TEMPER./DENSITE DE FISSION A LA FIN DU NOUVEAU SS PAS 61 : C MCA = NBR. DE CRIT. VIOLES AVEC STOT EN ENTREE PARMI LES 62 : C NOUVEAUX CRITERES SUSCEPTIBLES D ETRE ATTEINTS 63 : C XXMIN = UN DES NOUVEAUX CRIT. EST ATTEINT POUR XXMIN*TAU 64 : C JCRIT(20) = TYPE DES NOUVELLES NON LINEARITES RENCONTREES 65 : C POUR LA FISSURATION 66 : C NCRIT = NOMBRE DE NOUVELLES NON LINEARITES (FISSURATION) 67 : C LERED = 1 NOUVEAUX CRIT. INCOMPATIBLES POUR SIG0 ET STOT INITIAL 68 : C 0 OK 69 : C KERRE = GESTION DES ERREURS 70 : C---------------------------------------------------------------------- 71 : C 72 : IMPLICIT INTEGER(I-N) 73 : IMPLICIT REAL*8(A-H,O-Z) 74 : -INC CCOPTIO 75 : C 76 : DIMENSION EPSPT(*),SIG0(*),EPSV0(*),VAR0(*),DX0(*) 77 : DIMENSION W(*),WMAX0(*),WREOU0(*),SMAX(*),XLTR(*) 78 : DIMENSION MM(*),NN(*) 79 : DIMENSION FC0(*) 80 : DIMENSION STOT(*),VF(3,*),EPSVF(*),VARF(*),DXF(*) 81 : DIMENSION WF(*),WMAXF(*),WREOUF(*),JCRIT(*) 82 : DIMENSION XMAT(*),GS(*),WRUPT(*) 83 : DIMENSION LEBIL(*),XINVL(*),PENTE(*) 84 : C 85 : DIMENSION DSIGT(6),DXVV(3),XXF(3) 86 : DIMENSION JFIS(3),JFIS2(3) 87 : DIMENSION JCDUM(1) 88 : DIMENSION FC2(20),FCT(20),MMA(20) 89 : C 90 : DATA ITMAX/350/ 91 : C 92 : C INITIALISATIONS 93 : C 94 : KERRE=0 95 : LERED=0 96 : XXFIS=1.D4 97 : XXMIN=1.D0 98 : NCRIT=0 99 : IFLAG0=0 99 : CALL IANUL(JCRIT,20) 100 : C 100 : CALL ZDANUL(DXVV,3) 101 : IF (NCA.NE.0) THEN 102 : DO IJ=1,NCA 103 : JJ=NN(IJ) 104 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 105 : ENDDO 106 : ENDIF 107 : C 108 : DO I=1,6 109 : DSIGT(I)= STOT(I)-SIG0(I) 110 : ENDDO 111 : C 112 : C 113 : C Viole-t-on un nouveau crit. avec contr. a la fin du ss. pas ? 114 : C 114 : CALL UO2CE(MC,MM,STOT,DXVV,W,WMAXF,SMAX,WRUPT,XLTR,XINVL, 115 : & BTR,NFISSU,NVF,FCT,VF,YOUN,PRECIZ,JFIS,KERRE) 116 : IF(KERRE.NE.0) RETURN 117 : C 118 : C 119 : MCA=0 120 : DO IC=1,MC 121 : JC=MM(IC) 122 : C 123 : IF(IIMPI.EQ.42) THEN 124 : WRITE(IOIMP,30446) IC,JC,FCT(JC) 125 : 30446 FORMAT(/2X,' UO2XX - IC=',I4,2X,' JC=',I4,2X, 126 : & ' FCT(JC)=',1PE12.5/) 127 : ENDIF 128 : C 129 : IF(FCT(JC).GT.0.D0)THEN 130 : MCA=MCA+1 131 : MMA(MCA)=JC 132 : ELSE IF(ABS(FCT(JC)).LE.PRECIZ)THEN 133 : MCA=MCA+1 134 : MMA(MCA)=JC 135 : IF(FCT(JC).LT.0.D0) FCT(JC)=0.D0 136 : ENDIF 137 : ENDDO 138 : C 139 : C 140 : IF(IIMPI.EQ.42) THEN 141 : WRITE(IOIMP,50446) MCA 142 : 50446 FORMAT(/2X,' DANS UO2XX - MCA =',I4/) 143 : WRITE(IOIMP,40446) (MMA(I),I=1,MCA) 144 : 40446 FORMAT(/2X,' UO2XX - MMA =',5I4/) 145 : ENDIF 146 : C 147 : C 148 : IF(MCA.NE.0) THEN 149 : C 150 : C FAUT-IL APPELER OTTOXF ? 151 : C 152 : LAPPEL=0 153 : DO IC=1,MCA 154 : JC=MMA(IC) 155 : C 156 : IF(JC.GE.1.AND.JC.LE.3) THEN 157 : C 158 : IF(FC0(JC).GT.0.D0.AND.FC0(JC).LT.PRECIZ) THEN 159 : XXMIN=0.D0 160 : JCRIT(1)=JC 161 : NCRIT=1 162 : GO TO 300 163 : ENDIF 164 : IF(JFIS(JC).GT.1) LAPPEL=1 165 : C 166 : ENDIF 167 : ENDDO 168 : C 169 : C 170 : DO IC=1,MCA 171 : JC=MMA(IC) 172 : IF(FC0(JC)*FCT(JC).GT.0.D0) THEN 173 : IF(IIMPI.EQ.42) THEN 174 : PRINT *,'##### UO2XX CRITERES INCOMPATIBLES JC = ',JC 175 : PRINT *,' FC0 = ',FC0(JC), ' FCT = ', FCT(JC) 176 : ENDIF 177 : LERED=1 178 : RETURN 179 : ENDIF 180 : ENDDO 181 : C 182 : C APPEL A OTTOXF 183 : C 184 : IF(LAPPEL.EQ.1) THEN 184 : CALL OTTOXF(SIG0,DSIGT,XINVL,XLTR, 185 : & NFISSU,NVF,XXF,PRECIZ,KERRE) 186 : IF(KERRE.NE.0) RETURN 187 : C 188 : IF(IIMPI.EQ.42) THEN 189 : WRITE(IOIMP,44556) (XXF(I),I=1,3) 190 : 44556 FORMAT(/2X,' APRES OTTOXF : XXF ',3(1X,1PE12.5)/) 191 : ENDIF 192 : C 193 : C 194 : IF(XXF(2).EQ.1.D4.AND.XXF(3).EQ.1.D4) THEN 195 : LAPPEL=0 196 : GO TO 50 197 : ENDIF 198 : C 199 : C 200 : IF(JFIS(2).GT.1) THEN 201 : I1=1 202 : IF(JFIS(2).EQ.2) I1=2 203 : DO I=I1,3 204 : IF(XXF(I).GT.0.D0) THEN 205 : XXFIS=XXF(I) 206 : GO TO 50 207 : ENDIF 208 : ENDDO 209 : IF(IIMPI.EQ.42) THEN 210 : WRITE(IOIMP,77453) 211 : 77453 FORMAT(2X,'#### UO2XX - PAS DE RACINE POSITIVE ####'/) 212 : ENDIF 213 : C**** KERRE=70 214 : C**** RETURN 215 : C ON SE DONNE UNE DERNIERE CHANCE 216 : C 217 : LAPPEL=0 218 : ENDIF 219 : C 220 : 50 CONTINUE 221 : ENDIF 222 : C 223 : C 224 : DO IC=1,MCA 225 : JC=MMA(IC) 226 : F1=FC0(JC) 227 : F2=FCT(JC) 228 : IF(IIMPI.EQ.42) THEN 229 : PRINT *,' IC=',IC 230 : PRINT *,' JC=',JC 231 : PRINT *,' FC0=',FC0(JC) 232 : PRINT *,' FCT=',FCT(JC) 233 : ENDIF 234 : C 235 : XXDEP=0.D0 236 : C 237 : XX1=XXDEP 238 : XX2=1.D0 239 : XX= XX2 - F2*(XX2-XX1)/(F2-F1) 240 : C 241 : IF(IIMPI.EQ.42) THEN 242 : PRINT *,' UO2XX - ESTIMATION SECANTE XX = ',XX 243 : PRINT *,'JC=',JC,' JFIS(JC)=',JFIS(JC) 244 : ENDIF 245 : C 246 : C 247 : IF(JC.GE.1.AND.JC.LE.3.AND.LAPPEL.EQ.1) THEN 248 : IF(JFIS(JC).GE.2) THEN 249 : C 250 : IF(IIMPI.EQ.42) THEN 251 : PRINT *,'VALEUR CALCULEE XX = ',XXFIS 252 : ENDIF 253 : C 254 : C 255 : IF(XX.LE.1.D0.AND.XXFIS.LE.1.D0) THEN 256 : XX=XXFIS 257 : GO TO 75 258 : ELSE 259 : LAPPEL=0 260 : ENDIF 261 : C 262 : ENDIF 263 : ENDIF 264 : C 265 : C 266 : IF(IIMPI.EQ.42) THEN 267 : PRINT *,'PREMIERE ESTIMATION XX = ',XX 268 : ENDIF 269 : C 270 : C 271 : C ITERATIONS 272 : C 273 : 75 CONTINUE 274 : ITER=0 275 : C 276 : 100 CONTINUE 277 : ITER=ITER+1 278 : C 279 : IF(ITER.GT.ITMAX) THEN 280 : PRINT *,' UO2XX - NBR D ITERATIONS ',ITMAX 281 : KERRE=1 282 : RETURN 283 : ENDIF 284 : C 285 : TAUESS=XX*TAU 286 : C 286 : CALL UO2DCN(IFLAG0,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ,XMAT, 287 : & NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE, 288 : & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, 289 : & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, 290 : & VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE) 291 : C 291 : CALL ZDANUL(DXVV,3) 292 : IF (NCA.NE.0) THEN 293 : DO IJ=1,NCA 294 : JJ=NN(IJ) 295 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 296 : ENDDO 297 : ENDIF 298 : C 299 : C 300 : JCDUM(1)=JC 300 : CALL UO2CE(1,JCDUM,STOT,DXVV,W,WMAXF,SMAX,WRUPT,XLTR,XINVL, 301 : & BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) 302 : IF(KERRE.NE.0) RETURN 303 : C 304 : FF=FC2(JC) 305 : IF(ABS(FF).LT.PRECIZ) GO TO 200 306 : C 307 : IF(IIMPI.EQ.42) THEN 308 : ZOB1 = F1 309 : ZOB2 = F2 310 : ENDIF 311 : C 312 : IF(FF*F2.GE.0.D0) THEN 313 : XX2=XX 314 : F2=FF 315 : ELSE 316 : XX1=XX 317 : F1=FF 318 : ENDIF 319 : C 320 : XX= XX2 - F2*(XX2-XX1)/(F2-F1) 321 : C 322 : IF(IIMPI.EQ.42) THEN 323 : WRITE(IOIMP,75461) ITER,ZOB1,ZOB2,XX 324 : 75461 FORMAT( 2X, 'I=',I3,2X,'F1=',1PE12.5,2X, 325 : & 'F2=',1PE12.5,2X,'XX=',1PE12.5) 326 : ENDIF 327 : C 328 : GO TO 100 329 : C 330 : 200 CONTINUE 331 : C 332 : IF(XX.LT.XXMIN) THEN 333 : XXMIN=XX 334 : ENDIF 335 : C 336 : ENDDO 337 : C 338 : C 339 : C 340 : IF(IIMPI.EQ.42) THEN 341 : WRITE(IOIMP,73361) XXMIN 342 : 73361 FORMAT( 2X, ' UO2XX APRES BOUCLE - XXMIN= ',1PE12.5/) 343 : ENDIF 344 : C 345 : C 346 : C Maj et recherche des directions / on est pile sur un nouveau crit. 347 : C 348 : TAUESS=XXMIN*TAU 349 : C 349 : CALL UO2DCN(IFLAG0,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ,XMAT, 350 : & NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE, 351 : & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, 352 : & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, 353 : & VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE) 354 : C 354 : CALL ZDANUL(DXVV,3) 355 : IF (NCA.NE.0) THEN 356 : DO IJ=1,NCA 357 : JJ=NN(IJ) 358 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 359 : ENDDO 360 : ENDIF 361 : C 361 : CALL UO2CE(MCA,MMA,STOT,DXVV,W,WMAXF,SMAX,WRUPT,XLTR,XINVL, 362 : & BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) 363 : IF(KERRE.NE.0) RETURN 364 : C 365 : C 366 : DO IC=1,MCA 367 : JC=MMA(IC) 368 : C 369 : C Test supplementaire 370 : C 371 : IF(FC2(JC).GT.PRECIZ) THEN 372 : PRINT *,'######### UO2XX CRITERE INCOHERENT JC = ',JC 373 : PRINT *,' FC2 = ',FC2(JC), ' PRECIZ=',PRECIZ 374 : KERRE=2 375 : RETURN 376 : ENDIF 377 : C 378 : IF(ABS(FC2(JC)).LT.PRECIZ) THEN 379 : NCRIT=NCRIT+1 380 : JCRIT(NCRIT)=JC 381 : ENDIF 382 : ENDDO 383 : C 384 : 300 CONTINUE 385 : C 386 : ENDIF 387 : C 388 : C 389 : IF(IIMPI.EQ.42) THEN 390 : WRITE(IOIMP,77000) NCRIT,(JCRIT(I),I=1,NCRIT) 391 : 77000 FORMAT( 2X, ' UO2XX - NCRIT =',I3,4X,'JCRIT = ',15I3/) 392 : WRITE(IOIMP,77001) XXMIN 393 : 77001 FORMAT( 2X, ' UO2XX - XXMIN= ',1PE12.5/) 394 : ENDIF 395 : C 396 : RETURN 397 : END 398 : 399 : 400 : 401 : 402 : 403 :
© Cast3M 2003 - All rights reserved.
Disclaimer