Download ecorev.eso

Back to the list

   1 : C ECOREV    SOURCE    STRU      08/12/22    21:15:11     6246           
   2 : c     Sous-Programme du module MISTRAL0
   3 : C     --------------------------------------------------------------------------
   4 :       SUBROUTINE ECOREV (S,R,EPS,TT,FI,PSI, PERV, VERV)
   5 : C     --------------------------------------------------------------------------
   6 : C     Calcul (pour S >= R) de la vitesse VERV
   7 : C     d'ecoulement, de restauration ou de vieillissement,
   8 : C     homogene a une vitesse de deformation ou une derivee de contrainte,
   9 : C     en fonction :
  10 : C     - d'une contrainte ou deformation S positive ou nulle,
  11 : C     - d'une contrainte seuil R positive ou nulle,
  12 : C     - d'une deformation EPS positive ou nulle,
  13 : C     - de la temperature TT,
  14 : C     - du flux de neutrons rapides FI,
  15 : C     - de la variable de durcissement du a l'irradiation PSI,
  16 : C     et des parametres transmis dans PERV.
  17 : C     --------------------------------------------------------------------------
  18 :       IMPLICIT INTEGER (I-N)
  19 :       IMPLICIT REAL*8 (A-H, O-Z)
  20 :       PARAMETER ( NPTTM = 5 , NPPSIM = 6 )
  21 :       PARAMETER ( NPEDIM = 13+6*NPTTM+NPPSIM )
  22 : c     (NPEDIM = 49)
  23 :       PARAMETER ( NVM=2 , NPATDM = 14 , NPFIM = 9 )
  24 :       DIMENSION PERV(1:*)
  25 : c     (NPERVM = 11+NVM*(NPEDIM+2*NPATDM+NPFIM+11))
  26 :       DIMENSION PECDI(1:NPEDIM),PATDI(1:NPATDM),PFI(1:NPFIM)
  27 :       DIMENSION V(1:NVM)
  28 : C     ------------------------------------------------------------------
  29 :       LEP = NINT(PERV(1))
  30 :       NPERV = 1
  31 :       IF (LEP.GE.99) THEN
  32 :        LEPS = LEP-100
  33 :        NPERV = NPERV+1
  34 :          VM = PERV(NPERV)
  35 :       ELSE
  36 :        LEPS = LEP
  37 :       END IF
  38 :         IF (LEPS.EQ.-1) THEN
  39 :        NV = 1
  40 :         ELSE IF (LEPS.EQ.1) THEN
  41 :        NV = 1
  42 :        EPS0 = PERV(NPERV+1)
  43 :        NPERV = NPERV+2
  44 :        P1 = PERV(NPERV)
  45 :         ELSE IF (LEPS.EQ.2) THEN
  46 :        NV = 1
  47 :        NPERV = NPERV+1
  48 :        LVTAU = NINT(PERV(NPERV))
  49 :        IF (LVTAU.EQ.0) THEN
  50 :         NPERV = NPERV+1
  51 :           TAU = PERV(NPERV)
  52 :        ELSE IF (LVTAU.EQ.1) THEN
  53 :         TAU = PERV(NPERV+1)*EXP(PERV(NPERV+2)/TT)
  54 :      &        *(PERV(NPERV+3)*S+PERV(NPERV+5))**PERV(NPERV+4)
  55 :         NPERV = NPERV+5
  56 :        END IF
  57 :       ELSE IF ((LEPS.EQ.3).OR.(LEPS.EQ.4)) THEN
  58 :        NV = 2
  59 :        NPERV = NPERV+1
  60 :        LVEC = NINT(PERV(NPERV))
  61 :        IF (LVEC.EQ.0) THEN
  62 :         NPERV = NPERV+1
  63 :           EPSC = PERV(NPERV)
  64 :        ELSE IF (LVEC.EQ.1) THEN
  65 :           EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT)
  66 :      &         *TANH(PERV(NPERV+3)*S+PERV(NPERV+4))
  67 :         NPERV = NPERV+4
  68 :        ELSE IF (LVEC.EQ.2) THEN
  69 :           EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT)
  70 :      &         *(PERV(NPERV+3)*S+PERV(NPERV+5))**PERV(NPERV+4)
  71 :         NPERV = NPERV+5
  72 :        ELSE
  73 :           EPSC = PERV(NPERV+1)*EXP(-PERV(NPERV+2)/TT)
  74 :      &         *SINH(PERV(NPERV+3)*S+PERV(NPERV+4))
  75 :         NPERV = NPERV+4
  76 :        END IF
  77 :        IF (LEPS.EQ.4) THEN
  78 :         EPS0 = PERV(NPERV+1)
  79 :         P1 = PERV(NPERV+2)
  80 :         NPERV = NPERV+3
  81 :         P2 = PERV(NPERV)
  82 :         FACT = EXP(-EPS/EPSC)
  83 :        END IF
  84 :         ELSE IF (LEPS.EQ.5) THEN
  85 :        NV = 1
  86 :        EPS0 = PERV(NPERV+1)
  87 :        P1 = (PERV(NPERV+2)+PERV(NPERV+3)*PSI)**PERV(NPERV+4)
  88 :        NPERV = NPERV+4
  89 :         ELSE IF (LEPS.EQ.0) THEN
  90 :        VERV = 0.
  91 :        RETURN
  92 :         END IF
  93 : C     ------------------------------------------------------------------
  94 :         DO IV = 1,NV
  95 : C     ------------
  96 : C     Calcul de VS
  97 : C
  98 :        NPERV = NPERV+1
  99 :        LVS = NINT(PERV(NPERV))
 100 :          IF (LVS.EQ.0) THEN
 101 :         VS = 1.
 102 :        ELSE
 103 :           IF (LVS.LE.7) THEN
 104 :          EM = PERV(NPERV+1)*EXP(PERV(NPERV+2)/TT)
 105 :         ELSE IF (LVS.EQ.8) THEN
 106 :          EM1 = PERV(NPERV+1)
 107 :          EM2 = PERV(NPERV+2)
 108 :         END IF
 109 :         NPERV = NPERV+3
 110 :         KSC = NINT(PERV(NPERV+1))
 111 :         IF (KSC.EQ.-1) THEN
 112 :          NPERV = NPERV+2
 113 :          SC = PERV(NPERV)
 114 :         ELSE IF (KSC.EQ.1) THEN
 115 :          NPECDI = NINT(PERV(NPERV))
 116 :          DO IP = 1,NPECDI
 117 :           PECDI(IP) = PERV(NPERV+IP)
 118 :          END DO
 119 :          NPERV = NPERV+NPECDI
 119 :          CALL FECRDI (TT,EPS,PSI, 0, PECDI, SC,DSCDTT,DSCDEP,DSCPSI)
 120 :           END IF
 121 :           IF (LVS.EQ.1) THEN
 122 :            VS = ((S-R)/SC)**EM
 123 :           ELSE IF (LVS.EQ.2) THEN
 124 :            VS = (SINH((S-R)/SC))**EM
 125 :         ELSE IF (LVS.EQ.3) THEN
 126 :            VS = (SC*SINH((S-R)/SC))**EM
 127 :           ELSE IF (LVS.EQ.4) THEN
 127 :          CALL FECRDI (TT,EPS,0.D0, 0, PECDI, SC0,DSCDTT,DSCDEP,DSCPSI)
 128 :            VS = (SC0*SINH((S-R)/SC))**EM
 129 :           ELSE IF (LVS.EQ.5) THEN
 130 :            VS = SINH(((S-R)/SC)**EM)
 131 :           ELSE IF (LVS.EQ.6) THEN
 132 :            VS = SC**EM*SINH(((S-R)/SC)**EM)
 133 :           ELSE IF (LVS.EQ.7) THEN
 133 :          CALL FECRDI (TT,EPS,0.D0, 0, PECDI, SC0,DSCDTT,DSCDEP,DSCPSI)
 134 :            VS = SC0**EM*SINH(((S-R)/SC)**EM)
 135 :           ELSE IF (LVS.EQ.8) THEN
 136 :          SR = (S-R)/SC
 137 :            VS = SR**EXP(EM1*SR+EM2)
 138 :           END IF
 139 :          END IF
 140 : C     ----------------------------------
 141 : C     Calcul de VTIR = VTPSI0+VFI*VTPSI1
 142 : C
 143 :        NPERV = NPERV+1
 144 :        LVT = NINT(PERV(NPERV+1))
 145 :        IF (LVT.EQ.0) THEN
 146 :         VTIR = 0.
 147 :         NPERV = NPERV+1
 148 :        ELSE
 149 :         NPATDI = NINT(PERV(NPERV))
 150 :         DO IP = 1,NPATDI
 151 :          PATDI(IP) = PERV(NPERV+IP)
 152 :         END DO
 153 :         NPERV = NPERV+NPATDI
 153 :         CALL FATDI (TT,S,PSI, PATDI, VTIR)
 154 :        END IF
 155 :        NPERV = NPERV+1
 156 :        LVFI = NINT(PERV(NPERV+1))
 157 :        IF (LVFI.EQ.0) THEN
 158 :         NPERV = NPERV+1
 159 :        ELSE
 160 :         NPFI = NINT(PERV(NPERV))
 161 :         DO IP = 1,NPFI
 162 :          PFI(IP) = PERV(NPERV+IP)
 163 :         END DO
 164 :         NPERV = NPERV+NPFI
 164 :         CALL FFLUX (FI, PFI, VFI)
 165 :         NPERV = NPERV+1
 166 :         NPATDI = NINT(PERV(NPERV))
 167 :         DO IP = 1,NPATDI
 168 :          PATDI(IP) = PERV(NPERV+IP)
 169 :         END DO
 170 :         NPERV = NPERV+NPATDI
 170 :         CALL FATDI (TT,S,PSI, PATDI, VTPSI1)
 171 :         VTIR = VTIR+VFI*VTPSI1
 172 :        END IF
 173 : C     ---------------
 174 : C     Calcul de V(IV)
 175 : C
 176 :        V(IV) = VS*VTIR
 177 :          IF (LVS.EQ.1) THEN
 178 :         NPERV = NPERV+1
 179 :         LVSB = NINT(PERV(NPERV))
 180 :         IF (LVSB.EQ.1) THEN
 181 :          V(IV) = V(IV)
 182 :      &         + PERV(NPERV+1)*((S-R)/PERV(NPERV+2))**PERV(NPERV+3)
 183 :          NPERV = NPERV+3
 184 :         END IF
 185 :        END IF
 186 :         END DO
 187 : C     ------------------------------------------------------------------
 188 : C     Calcul de VERV
 189 : C
 190 :         IF (LEPS.EQ.-1) THEN
 191 :        VERV = V(1)
 192 :         ELSE IF ((LEPS.EQ.1).OR.(LEPS.EQ.5)) THEN
 193 :          VERV = V(1)*(EPS+EPS0)**(-P1)
 194 :         ELSE IF (LEPS.EQ.2) THEN
 195 :          VERV = MAX(V(1)-EPS/TAU,0.D0)      
 196 :       ELSE IF (LEPS.EQ.3) THEN
 197 :         VERV = V(2)+(V(1)-V(2))*EXP(-EPS/EPSC)
 198 :       ELSE IF (LEPS.EQ.4) THEN
 199 :         VERV = V(1)*(EPS+EPS0)**(-P1)*FACT
 200 :      &       + V(2)*(EPS+EPS0)**(-P2)*(1.-FACT)
 201 :         END IF
 202 : C     ------------------------------------------------------------------
 203 : C     Limitation eventuelle de VERV a VM
 204 : C
 205 :       IF (LEP.GE.99) THEN
 206 :        VERV = VM*TANH(VERV/VM)
 207 :       END IF
 208 : C     ------------------------------------------------------------------
 209 :         RETURN
 210 :       END
 211 :  

© Cast3M 2003 - All rights reserved.
Disclaimer