Download fecrdi.eso

Back to the list

   1 : C FECRDI    SOURCE    STRU      08/12/22    21:15:20     6246           
   2 : c     Sous-Programme du module MISTRAL0
   3 : C     --------------------------------------------------------------------------
   4 :       SUBROUTINE FECRDI (TT,EPS,PSI, ID, PECDI, SR,DSRDTT,DSRDEP,DSRPSI)
   5 : C     --------------------------------------------------------------------------
   6 : C     Calcul de SR, contrainte seuil ou de reference ou pente d'ecrouissage,
   7 : C     de la forme generale suivante :
   8 : C 
   9 : C        SR =   R0  +   R1(TT)*(EPS+EPS0)**N1(TT)*exp(-G1*EPS)
  10 : C                   +   R2(TT)*(EPS+EPS0)**N2(TT)*(1-exp(-G2*EPS))
  11 : C        + RP(PSI,TT) * RI(TT)*(EPS+EPS0)**NI(TT)*exp(-GI*EPS)
  12 : C
  13 : C     et de ses derivees partielles DSRDTT, DSRDEP et DSRPSI si ID = 1,
  14 : C     en fonction :
  15 : C     - de la temperature TT,
  16 : C     - d'une deformation EPS positive ou nulle,
  17 : C     - de la variable de durcissement du a l'irradiation PSI,
  18 : C     et des parametres transmis dans PECDI.
  19 : C     --------------------------------------------------------------------------
  20 :       IMPLICIT INTEGER (I-N)
  21 :       IMPLICIT REAL*8 (A-H, O-Z)
  22 :       PARAMETER ( NPTTM = 5 , NPPSIM = 6 )
  23 :       DIMENSION PECDI(1:*)
  24 : c     (NPEDIM = 13+6*NPTTM+NPPSIM)
  25 :       DIMENSION PTT(1:NPTTM),PPSI(1:NPPSIM)
  26 : C     ------------------------------------------------------------------
  27 : C     Initialisation, R0
  28 : C
  29 :       NP = 1
  30 :       SR = PECDI(NP+1)
  31 :       EPS0 = PECDI(NP+2)
  32 :       EPE0 = EPS+EPS0
  33 :       IF (ID.EQ.1) THEN
  34 :        DSRDTT = 0.D0
  35 :        DSRDEP = 0.D0
  36 :        DSRPSI = 0.D0
  37 :       END IF
  38 : C     ------------------------------------------------------------------
  39 : C     Ajout du terme R1(TT)*(EPS+EPS0)**N1(TT)*exp(-G1*EPS)
  40 : C
  41 :       NP = NP+3
  42 :       KR1 = NINT(PECDI(NP+1))
  43 :       IF (KR1.EQ.0) THEN
  44 :        NP = NP+1
  45 :       ELSE
  46 :          IF (KR1.EQ.-1) THEN
  47 :         NP = NP+2
  48 :         R1 = PECDI(NP)
  49 :         R1P = 0.D0
  50 :        ELSE IF (KR1.GT.0) THEN
  51 :         NPTT = NINT(PECDI(NP))
  52 :         DO IP = 1,NPTT
  53 :          PTT(IP) = PECDI(NP+IP)
  54 :         END DO
  55 :         NP = NP+NPTT
  55 :         CALL FTEMP (TT, ID, PTT, R1,R1P)
  56 :        END IF
  57 :        NP = NP+1
  58 :        KN1 = NINT(PECDI(NP+1))
  59 :        IF (KN1.EQ.0) THEN
  60 :         NP = NP+2
  61 :         G1 = PECDI(NP)
  62 :         SR1 = R1*EXP(-G1*EPS)
  63 :        ELSE
  64 :           IF (KN1.EQ.-1) THEN
  65 :          NP = NP+2
  66 :          EN1 = PECDI(NP)
  67 :         ELSE IF (KN1.GT.0) THEN
  68 :          NPTT = NINT(PECDI(NP))
  69 :          DO IP = 1,NPTT
  70 :           PTT(IP) = PECDI(NP+IP)
  71 :          END DO
  72 :          NP = NP+NPTT
  72 :          CALL FTEMP (TT, ID, PTT, EN1,EN1P)
  73 :         END IF
  74 :         NP = NP+1
  75 :         G1 = PECDI(NP)
  76 :         SR1 = R1*EPE0**EN1*EXP(-G1*EPS)
  77 :        END IF
  78 :        SR = SR+SR1
  79 :        IF (ID.EQ.1) THEN
  80 :         IF (KN1.EQ.0) THEN
  81 :          DSRDTT = R1P*EXP(-G1*EPS)
  82 :          DSRDEP = -G1*SR1
  83 :         ELSE
  84 :          EPE0N1 = EPE0**EN1
  85 :          EMGIE = EXP(-G1*EPS)
  86 :            IF (KN1.EQ.-1) THEN
  87 :           DSRDTT = R1P*EPE0N1*EMGIE
  88 :          ELSE IF (KN1.GT.0) THEN
  89 :           DSRDTT = (R1P+R1*LOG(EPE0)*EN1P)*EPE0N1*EMGIE
  90 :          END IF
  91 :          DSRDEP = R1*EPE0N1*(EN1/EPE0-G1)*EMGIE
  92 :         END IF
  93 :        END IF
  94 :       END IF
  95 : C     ------------------------------------------------------------------
  96 : C     Ajout du terme R2(TT)*(EPS+EPS0)**N2(TT)*(1-exp(-G2*EPS))
  97 : C
  98 :       NP = NP+1
  99 :       KR2 = NINT(PECDI(NP+1))
 100 :       IF (KR2.EQ.0) THEN
 101 :        NP = NP+1
 102 :       ELSE
 103 :          IF (KR2.EQ.-1) THEN
 104 :         NP = NP+2
 105 :         R2 = PECDI(NP)
 106 :         R2P = 0.D0
 107 :        ELSE IF (KR2.GT.0) THEN
 108 :         NPTT = NINT(PECDI(NP))
 109 :         DO IP = 1,NPTT
 110 :          PTT(IP) = PECDI(NP+IP)
 111 :         END DO
 112 :         NP = NP+NPTT
 112 :         CALL FTEMP (TT, ID, PTT, R2,R2P)
 113 :        END IF
 114 :        NP = NP+1
 115 :        KN2 = NINT(PECDI(NP+1))
 116 :        IF (KN2.EQ.0) THEN
 117 :         NP = NP+2
 118 :         G2 = PECDI(NP)
 119 :         SR2 = R2*(1.-EXP(-G2*EPS))
 120 :        ELSE
 121 :           IF (KN2.EQ.-1) THEN
 122 :          NP = NP+2
 123 :          EN2 = PECDI(NP)
 124 :         ELSE IF (KN2.GT.0) THEN
 125 :          NPTT = NINT(PECDI(NP))
 126 :          DO IP = 1,NPTT
 127 :           PTT(IP) = PECDI(NP+IP)
 128 :          END DO
 129 :          NP = NP+NPTT
 129 :          CALL FTEMP (TT, ID, PTT, EN2,EN2P)
 130 :         END IF
 131 :         NP = NP+1
 132 :         G2 = PECDI(NP)
 133 :         SR2 = R2*EPE0**EN2*(1.-EXP(-G2*EPS))
 134 :        END IF
 135 :        SR = SR+SR2
 136 :        IF (ID.EQ.1) THEN
 137 :         EMGIE = EXP(-G2*EPS)
 138 :         IF (KN2.EQ.0) THEN
 139 :          DSRDTT = DSRDTT+R2P*(1.-EMGIE)
 140 :          DSRDEP = DSRDEP+R2*G2*EMGIE
 141 :         ELSE
 142 :          EPE0N2 = EPE0**EN2
 143 :            IF (KN2.EQ.-1) THEN
 144 :           DSRDTT = DSRDTT+R2P*EPE0N2*(1.-EMGIE)
 145 :          ELSE IF (KN2.GT.0) THEN
 146 :           DSRDTT = DSRDTT+(R2P+R2*LOG(EPE0)*EN2P)*EPE0N2*(1.-EMGIE)
 147 :          END IF
 148 :          DSRDEP = DSRDEP+R2*EPE0N2*(EN2/EPE0*(1.-EMGIE)+G2*EMGIE)
 149 :         END IF
 150 :        END IF
 151 :       END IF
 152 : C     ------------------------------------------------------------------
 153 : C     Ajout du terme RP(PSI,TT)*RI(TT)*(EPS+EPS0)**NI(TT)*exp(-GI*EPS)
 154 : C
 155 :       NP = NP+1
 156 :       KRP = NINT(PECDI(NP+1))
 157 :       IF (KRP.EQ.0) RETURN
 158 :       NPPSI = NINT(PECDI(NP))
 159 :       DO IP = 1,NPPSI
 160 :        PPSI(IP) = PECDI(NP+IP)
 161 :       END DO
 161 :       CALL FVDI (PSI,TT, ID, PPSI, RP,DRPDP,DRPDTT)
 162 :       NP = NP+NPPSI+1
 163 :       KRI = NINT(PECDI(NP+1))
 164 :       IF (KRI.EQ.0) RETURN
 165 :       IF (KRI.EQ.-1) THEN
 166 :        NP = NP+2
 167 :        RI = PECDI(NP)
 168 :        RIP = 0.D0
 169 :       ELSE IF (KRI.GT.0) THEN
 170 :        NPTT = NINT(PECDI(NP))
 171 :        DO IP = 1,NPTT
 172 :         PTT(IP) = PECDI(NP+IP)
 173 :        END DO
 174 :        NP = NP+NPTT
 174 :        CALL FTEMP (TT, ID, PTT, RI,RIP)
 175 :       END IF
 176 :       NP = NP+1
 177 :       KNI = NINT(PECDI(NP+1))
 178 :       IF (KNI.EQ.0) THEN
 179 :        NP = NP+2
 180 :        GI = PECDI(NP)
 181 :        SRI = RP*RI*EXP(-GI*EPS)
 182 :       ELSE
 183 :          IF (KNI.EQ.-1) THEN
 184 :         NP = NP+2
 185 :         ENI = PECDI(NP)
 186 :        ELSE IF (KNI.GT.0) THEN
 187 :         NPTT = NINT(PECDI(NP))
 188 :         DO IP = 1,NPTT
 189 :          PTT(IP) = PECDI(NP+IP)
 190 :         END DO
 191 :         NP = NP+NPTT
 191 :         CALL FTEMP (TT, ID, PTT, ENI,ENIP)
 192 :        END IF
 193 :        NP = NP+1
 194 :        GI = PECDI(NP)
 195 :        SRI = RP*RI*EPE0**ENI*EXP(-GI*EPS)
 196 :       END IF
 197 :       SR = SR+SRI
 198 :       IF (ID.EQ.1) THEN
 199 :        EMGIE = EXP(-GI*EPS)
 200 :        IF (KNI.EQ.0) THEN
 201 :         DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EMGIE
 202 :         DSRDEP = DSRDEP-GI*SRI
 203 :         DSRPSI = DRPDP*RI*EMGIE
 204 :        ELSE
 205 :         EPE0NI = EPE0**ENI
 206 :           IF (KNI.EQ.-1) THEN
 207 :          DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EPE0NI*EMGIE
 208 :         ELSE IF (KNI.GT.0) THEN
 209 :          DSRDTT = DSRDTT
 210 :      &          +(DRPDTT*RI+RP*(RIP+RI*LOG(EPE0)*ENIP))*EPE0NI*EMGIE
 211 :         END IF
 212 :         DSRDEP = DSRDEP+RP*RI*EPE0NI*(ENI/EPE0-GI)*EMGIE
 213 :         DSRPSI = DRPDP*RI*EPE0NI*EMGIE
 214 :        END IF
 215 :       END IF
 216 : C     ------------------------------------------------------------------
 217 :         RETURN
 218 :       END
 219 :  

© Cast3M 2003 - All rights reserved.
Disclaimer