uo2xx
C UO2XX SOURCE STRU 07/07/12 21:15:06 5789 & XMAT,NCOMAT,NSIMP,AAD,GS,WRUPT,LEBIL,XINVL,PENTE,BTR, & YOUN,EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, & SMAX,XLTR,NFISSU,NVF,VF,MC,MM,FC0,NGAT,NC1,NCA,NDIM, & NN,TAU,STOT,EPSVF,VARF,WF,DXF,WMAXF,WREOUF, & TF,FIF,MCA,XXMIN,JCRIT,NCRIT,LERED,KERRE) C---------------------------------------------------------------------- C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE) C---------------------------------------------------------------------- C C ENTREES C ------- C T0/FI0 = TEMPERATURE/DENSITE DE FISSION AU DEB. DU SS PAS C TPOINT = VITESSE DE TEMPERATURE SUR LE PAS D INTEGRATION C FPOINT = VITESSE DE DENSITE DE FISSION SUR LE PAS D INTEGRATION C PRECIS = PRECISION POUR LA CONVERGENCE DU SCHEMA NUMERIQUE C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT C DE LA DEFORMATION DE DENSIFICATION C GS(3) = RESISTANCES AU CISAILLEMENT C WRUPT(3) = OUVERTURES CONDITIONNANT LA RUPTURE C LEBIL(NC) = COMPRESSION/TRACTION C XINVL(3) = PARAMETRES DE TAILLE C PENTE(NC) = PENTES DES CRITERES C BTR/YOUN = PARAMETRE DE FERMETURE/MODULE D YOUNG C EPSPT(6) = VITESSE DES DEFORM. TOTALES SUR LE PAS D INTEGRATION C SIG0(6) = CONTRAINTES AU DEBUT DU SOUS PAS D INTEGRATION C EPSV0(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION C VAR0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS C W(3)/WMAX0(3)= OUVERTURES/ MAXIMALES DES FISSURES AU DEB. DU SS PAS C WREOU0(3) = LIMITES DE FERMETURE AU DEBUT DU SOUS PAS D'INTEGRATION C DX0(NC) = DEF. DE FISSURATION (OUV.) AU DEB. DU SS PAS C SMAX(3) = CONTR. CORRESPONDANT A WMAX0 C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION C NFISSU = NOMBRE DE FISSURES C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR C DES DIRECTIONS DE FISSURATION C MM(20)/MC = TYPES/NBR DE CRIT DE FISS SUSCEPTIBLES D ETRE ATTEINTS C FC0(20) = CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS C NC1 = NC+1 AVEC NC(=3) NBR. TOTAL DE DIRECTIONS DE FISS. C NDIM = NCA+1 SI CP, NCA SINON C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT C TAU = UN NOUVEAU CRIT EST-IL VIOLE POUR LES RESULTATS A TAU C STOT(6) = CONTRAINTES A LA FIN DU SOUS PAS D INTEGRATION C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU SOUS PAS D'INTEGRATION C VARF(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE A LA FIN DU SS PAS C WF(3)/WMAXF(3)= OUVERTURES/ MAXIMALES DES FISSURES A LA FIN DU SS PAS C C SORTIES C ------- C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION C STOT(6) = CONTRAINTES A LA FIN DU NOUVEAU SOUS PAS D INTEGRATION C (LE CAS ECHEANT)/ UN DES NOUVEAUX CRITERES SOIT NUL C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU NOUVEAU SS PAS C VARF(NGAT) = VAR. INT. SCAL. A LA FIN DU NOUVEAU SS PAS C WF(3)/WMAXF(3)= OUV./ MAXIMALES DES FISS. A LA FIN DU NOUVEAU SS PAS C TF/FIF = TEMPER./DENSITE DE FISSION A LA FIN DU NOUVEAU SS PAS C MCA = NBR. DE CRIT. VIOLES AVEC STOT EN ENTREE PARMI LES C NOUVEAUX CRITERES SUSCEPTIBLES D ETRE ATTEINTS C XXMIN = UN DES NOUVEAUX CRIT. EST ATTEINT POUR XXMIN*TAU C JCRIT(20) = TYPE DES NOUVELLES NON LINEARITES RENCONTREES C POUR LA FISSURATION C NCRIT = NOMBRE DE NOUVELLES NON LINEARITES (FISSURATION) C LERED = 1 NOUVEAUX CRIT. INCOMPATIBLES POUR SIG0 ET STOT INITIAL C 0 OK C KERRE = GESTION DES ERREURS C---------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C DIMENSION EPSPT(*),SIG0(*),EPSV0(*),VAR0(*),DX0(*) DIMENSION W(*),WMAX0(*),WREOU0(*),SMAX(*),XLTR(*) DIMENSION MM(*),NN(*) DIMENSION FC0(*) DIMENSION STOT(*),VF(3,*),EPSVF(*),VARF(*),DXF(*) DIMENSION WF(*),WMAXF(*),WREOUF(*),JCRIT(*) DIMENSION XMAT(*),GS(*),WRUPT(*) C DIMENSION DSIGT(6),DXVV(3),XXF(3) DIMENSION JFIS(3),JFIS2(3) DIMENSION JCDUM(1) DIMENSION FC2(20),FCT(20),MMA(20) C DATA ITMAX/350/ C C INITIALISATIONS C KERRE=0 LERED=0 XXFIS=1.D4 XXMIN=1.D0 NCRIT=0 IFLAG0=0 C IF (NCA.NE.0) THEN DO IJ=1,NCA JJ=NN(IJ) DXVV(JJ)=DXF(JJ)-DX0(JJ) ENDDO ENDIF C DO I=1,6 DSIGT(I)= STOT(I)-SIG0(I) ENDDO C C C Viole-t-on un nouveau crit. avec contr. a la fin du ss. pas ? C & BTR,NFISSU,NVF,FCT,VF,YOUN,PRECIZ,JFIS,KERRE) IF(KERRE.NE.0) RETURN C C MCA=0 DO IC=1,MC JC=MM(IC) C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,30446) IC,JC,FCT(JC) 30446 FORMAT(/2X,' UO2XX - IC=',I4,2X,' JC=',I4,2X, & ' FCT(JC)=',1PE12.5/) ENDIF C IF(FCT(JC).GT.0.D0)THEN MCA=MCA+1 MMA(MCA)=JC ELSE IF(ABS(FCT(JC)).LE.PRECIZ)THEN MCA=MCA+1 MMA(MCA)=JC IF(FCT(JC).LT.0.D0) FCT(JC)=0.D0 ENDIF ENDDO C C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,50446) MCA 50446 FORMAT(/2X,' DANS UO2XX - MCA =',I4/) WRITE(IOIMP,40446) (MMA(I),I=1,MCA) 40446 FORMAT(/2X,' UO2XX - MMA =',5I4/) ENDIF C C IF(MCA.NE.0) THEN C C FAUT-IL APPELER OTTOXF ? C LAPPEL=0 DO IC=1,MCA JC=MMA(IC) C IF(JC.GE.1.AND.JC.LE.3) THEN C IF(FC0(JC).GT.0.D0.AND.FC0(JC).LT.PRECIZ) THEN XXMIN=0.D0 JCRIT(1)=JC NCRIT=1 GO TO 300 ENDIF IF(JFIS(JC).GT.1) LAPPEL=1 C ENDIF ENDDO C C DO IC=1,MCA JC=MMA(IC) IF(FC0(JC)*FCT(JC).GT.0.D0) THEN IF(IIMPI.EQ.42) THEN PRINT *,'##### UO2XX CRITERES INCOMPATIBLES JC = ',JC PRINT *,' FC0 = ',FC0(JC), ' FCT = ', FCT(JC) ENDIF LERED=1 RETURN ENDIF ENDDO C C APPEL A OTTOXF C IF(LAPPEL.EQ.1) THEN & NFISSU,NVF,XXF,PRECIZ,KERRE) IF(KERRE.NE.0) RETURN C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,44556) (XXF(I),I=1,3) 44556 FORMAT(/2X,' APRES OTTOXF : XXF ',3(1X,1PE12.5)/) ENDIF C C IF(XXF(2).EQ.1.D4.AND.XXF(3).EQ.1.D4) THEN LAPPEL=0 GO TO 50 ENDIF C C IF(JFIS(2).GT.1) THEN I1=1 IF(JFIS(2).EQ.2) I1=2 DO I=I1,3 IF(XXF(I).GT.0.D0) THEN XXFIS=XXF(I) GO TO 50 ENDIF ENDDO IF(IIMPI.EQ.42) THEN WRITE(IOIMP,77453) 77453 FORMAT(2X,'#### UO2XX - PAS DE RACINE POSITIVE ####'/) ENDIF C**** KERRE=70 C**** RETURN C ON SE DONNE UNE DERNIERE CHANCE C LAPPEL=0 ENDIF C 50 CONTINUE ENDIF C C DO IC=1,MCA JC=MMA(IC) F1=FC0(JC) F2=FCT(JC) IF(IIMPI.EQ.42) THEN PRINT *,' IC=',IC PRINT *,' JC=',JC PRINT *,' FC0=',FC0(JC) PRINT *,' FCT=',FCT(JC) ENDIF C XXDEP=0.D0 C XX1=XXDEP XX2=1.D0 XX= XX2 - F2*(XX2-XX1)/(F2-F1) C IF(IIMPI.EQ.42) THEN PRINT *,' UO2XX - ESTIMATION SECANTE XX = ',XX PRINT *,'JC=',JC,' JFIS(JC)=',JFIS(JC) ENDIF C C IF(JC.GE.1.AND.JC.LE.3.AND.LAPPEL.EQ.1) THEN IF(JFIS(JC).GE.2) THEN C IF(IIMPI.EQ.42) THEN PRINT *,'VALEUR CALCULEE XX = ',XXFIS ENDIF C C IF(XX.LE.1.D0.AND.XXFIS.LE.1.D0) THEN XX=XXFIS GO TO 75 ELSE LAPPEL=0 ENDIF C ENDIF ENDIF C C IF(IIMPI.EQ.42) THEN PRINT *,'PREMIERE ESTIMATION XX = ',XX ENDIF C C C ITERATIONS C 75 CONTINUE ITER=0 C 100 CONTINUE ITER=ITER+1 C IF(ITER.GT.ITMAX) THEN PRINT *,' UO2XX - NBR D ITERATIONS ',ITMAX KERRE=1 RETURN ENDIF C TAUESS=XX*TAU C & NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE, & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, & VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE) C IF (NCA.NE.0) THEN DO IJ=1,NCA JJ=NN(IJ) DXVV(JJ)=DXF(JJ)-DX0(JJ) ENDDO ENDIF C C JCDUM(1)=JC & BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) IF(KERRE.NE.0) RETURN C FF=FC2(JC) IF(ABS(FF).LT.PRECIZ) GO TO 200 C IF(IIMPI.EQ.42) THEN ZOB1 = F1 ZOB2 = F2 ENDIF C IF(FF*F2.GE.0.D0) THEN XX2=XX F2=FF ELSE XX1=XX F1=FF ENDIF C XX= XX2 - F2*(XX2-XX1)/(F2-F1) C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,75461) ITER,ZOB1,ZOB2,XX 75461 FORMAT( 2X, 'I=',I3,2X,'F1=',1PE12.5,2X, & 'F2=',1PE12.5,2X,'XX=',1PE12.5) ENDIF C GO TO 100 C 200 CONTINUE C IF(XX.LT.XXMIN) THEN XXMIN=XX ENDIF C ENDDO C C C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,73361) XXMIN 73361 FORMAT( 2X, ' UO2XX APRES BOUCLE - XXMIN= ',1PE12.5/) ENDIF C C C Maj et recherche des directions / on est pile sur un nouveau crit. C TAUESS=XXMIN*TAU C & NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE, & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0, & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, & VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE) C IF (NCA.NE.0) THEN DO IJ=1,NCA JJ=NN(IJ) DXVV(JJ)=DXF(JJ)-DX0(JJ) ENDDO ENDIF C & BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) IF(KERRE.NE.0) RETURN C C DO IC=1,MCA JC=MMA(IC) C C Test supplementaire C IF(FC2(JC).GT.PRECIZ) THEN PRINT *,'######### UO2XX CRITERE INCOHERENT JC = ',JC PRINT *,' FC2 = ',FC2(JC), ' PRECIZ=',PRECIZ KERRE=2 RETURN ENDIF C IF(ABS(FC2(JC)).LT.PRECIZ) THEN NCRIT=NCRIT+1 JCRIT(NCRIT)=JC ENDIF ENDDO C 300 CONTINUE C ENDIF C C IF(IIMPI.EQ.42) THEN WRITE(IOIMP,77000) NCRIT,(JCRIT(I),I=1,NCRIT) 77000 FORMAT( 2X, ' UO2XX - NCRIT =',I3,4X,'JCRIT = ',15I3/) WRITE(IOIMP,77001) XXMIN 77001 FORMAT( 2X, ' UO2XX - XXMIN= ',1PE12.5/) ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales