ecorev
C ECOREV SOURCE STRU 08/12/22 21:15:11 6246 c Sous-Programme du module MISTRAL0 C -------------------------------------------------------------------------- C -------------------------------------------------------------------------- C Calcul (pour S >= R) de la vitesse VERV C d'ecoulement, de restauration ou de vieillissement, C homogene a une vitesse de deformation ou une derivee de contrainte, C en fonction : C - d'une contrainte ou deformation S positive ou nulle, C - d'une contrainte seuil R positive ou nulle, C - d'une deformation EPS positive ou nulle, C - de la temperature TT, C - du flux de neutrons rapides FI, C - de la variable de durcissement du a l'irradiation PSI, C et des parametres transmis dans PERV. C -------------------------------------------------------------------------- IMPLICIT INTEGER (I-N) IMPLICIT REAL*8 (A-H, O-Z) PARAMETER ( NPTTM = 5 , NPPSIM = 6 ) PARAMETER ( NPEDIM = 13+6*NPTTM+NPPSIM ) c (NPEDIM = 49) PARAMETER ( NVM=2 , NPATDM = 14 , NPFIM = 9 ) DIMENSION PERV(1:*) c (NPERVM = 11+NVM*(NPEDIM+2*NPATDM+NPFIM+11)) DIMENSION V(1:NVM) C ------------------------------------------------------------------ LEP = NINT(PERV(1)) NPERV = 1 IF (LEP.GE.99) THEN LEPS = LEP-100 NPERV = NPERV+1 VM = PERV(NPERV) ELSE LEPS = LEP END IF IF (LEPS.EQ.-1) THEN NV = 1 ELSE IF (LEPS.EQ.1) THEN NV = 1 EPS0 = PERV(NPERV+1) NPERV = NPERV+2 P1 = PERV(NPERV) ELSE IF (LEPS.EQ.2) THEN NV = 1 NPERV = NPERV+1 LVTAU = NINT(PERV(NPERV)) IF (LVTAU.EQ.0) THEN NPERV = NPERV+1 TAU = PERV(NPERV) ELSE IF (LVTAU.EQ.1) THEN TAU = PERV(NPERV+1)*EXP(PERV(NPERV+2)/TT) & *(PERV(NPERV+3)*S+PERV(NPERV+5))**PERV(NPERV+4) NPERV = NPERV+5 END IF ELSE IF ((LEPS.EQ.3).OR.(LEPS.EQ.4)) THEN NV = 2 NPERV = NPERV+1 LVEC = NINT(PERV(NPERV)) IF (LVEC.EQ.0) THEN NPERV = NPERV+1 EPSC = PERV(NPERV) ELSE IF (LVEC.EQ.1) THEN EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT) & *TANH(PERV(NPERV+3)*S+PERV(NPERV+4)) NPERV = NPERV+4 ELSE IF (LVEC.EQ.2) THEN EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT) & *(PERV(NPERV+3)*S+PERV(NPERV+5))**PERV(NPERV+4) NPERV = NPERV+5 ELSE EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT) & *SINH(PERV(NPERV+3)*S+PERV(NPERV+4)) NPERV = NPERV+4 END IF IF (LEPS.EQ.4) THEN EPS0 = PERV(NPERV+1) P1 = PERV(NPERV+2) NPERV = NPERV+3 P2 = PERV(NPERV) FACT = EXP(-EPS/EPSC) END IF ELSE IF (LEPS.EQ.5) THEN NV = 1 EPS0 = PERV(NPERV+1) P1 = (PERV(NPERV+2)+PERV(NPERV+3)*PSI)**PERV(NPERV+4) NPERV = NPERV+4 ELSE IF (LEPS.EQ.0) THEN VERV = 0. RETURN END IF C ------------------------------------------------------------------ DO IV = 1,NV C ------------ C Calcul de VS C NPERV = NPERV+1 LVS = NINT(PERV(NPERV)) IF (LVS.EQ.0) THEN VS = 1. ELSE IF (LVS.LE.7) THEN EM = PERV(NPERV+1)*EXP(PERV(NPERV+2)/TT) ELSE IF (LVS.EQ.8) THEN EM1 = PERV(NPERV+1) EM2 = PERV(NPERV+2) END IF NPERV = NPERV+3 KSC = NINT(PERV(NPERV+1)) IF (KSC.EQ.-1) THEN NPERV = NPERV+2 SC = PERV(NPERV) ELSE IF (KSC.EQ.1) THEN NPECDI = NINT(PERV(NPERV)) DO IP = 1,NPECDI PECDI(IP) = PERV(NPERV+IP) END DO NPERV = NPERV+NPECDI END IF IF (LVS.EQ.1) THEN VS = ((S-R)/SC)**EM ELSE IF (LVS.EQ.2) THEN VS = (SINH((S-R)/SC))**EM ELSE IF (LVS.EQ.3) THEN VS = (SC*SINH((S-R)/SC))**EM ELSE IF (LVS.EQ.4) THEN VS = (SC0*SINH((S-R)/SC))**EM ELSE IF (LVS.EQ.5) THEN VS = SINH(((S-R)/SC)**EM) ELSE IF (LVS.EQ.6) THEN VS = SC**EM*SINH(((S-R)/SC)**EM) ELSE IF (LVS.EQ.7) THEN VS = SC0**EM*SINH(((S-R)/SC)**EM) ELSE IF (LVS.EQ.8) THEN SR = (S-R)/SC VS = SR**EXP(EM1*SR+EM2) END IF END IF C ---------------------------------- C Calcul de VTIR = VTPSI0+VFI*VTPSI1 C NPERV = NPERV+1 LVT = NINT(PERV(NPERV+1)) IF (LVT.EQ.0) THEN VTIR = 0. NPERV = NPERV+1 ELSE NPATDI = NINT(PERV(NPERV)) DO IP = 1,NPATDI PATDI(IP) = PERV(NPERV+IP) END DO NPERV = NPERV+NPATDI END IF NPERV = NPERV+1 LVFI = NINT(PERV(NPERV+1)) IF (LVFI.EQ.0) THEN NPERV = NPERV+1 ELSE NPFI = NINT(PERV(NPERV)) DO IP = 1,NPFI END DO NPERV = NPERV+NPFI NPERV = NPERV+1 NPATDI = NINT(PERV(NPERV)) DO IP = 1,NPATDI PATDI(IP) = PERV(NPERV+IP) END DO NPERV = NPERV+NPATDI VTIR = VTIR+VFI*VTPSI1 END IF C --------------- C Calcul de V(IV) C V(IV) = VS*VTIR IF (LVS.EQ.1) THEN NPERV = NPERV+1 LVSB = NINT(PERV(NPERV)) IF (LVSB.EQ.1) THEN V(IV) = V(IV) & + PERV(NPERV+1)*((S-R)/PERV(NPERV+2))**PERV(NPERV+3) NPERV = NPERV+3 END IF END IF END DO C ------------------------------------------------------------------ C Calcul de VERV C IF (LEPS.EQ.-1) THEN VERV = V(1) ELSE IF ((LEPS.EQ.1).OR.(LEPS.EQ.5)) THEN VERV = V(1)*(EPS+EPS0)**(-P1) ELSE IF (LEPS.EQ.2) THEN VERV = MAX(V(1)-EPS/TAU,0.D0) ELSE IF (LEPS.EQ.3) THEN VERV = V(2)+(V(1)-V(2))*EXP(-EPS/EPSC) ELSE IF (LEPS.EQ.4) THEN VERV = V(1)*(EPS+EPS0)**(-P1)*FACT & + V(2)*(EPS+EPS0)**(-P2)*(1.-FACT) END IF C ------------------------------------------------------------------ C Limitation eventuelle de VERV a VM C IF (LEP.GE.99) THEN VERV = VM*TANH(VERV/VM) END IF C ------------------------------------------------------------------ RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales