Télécharger fecrdi.eso

Retour à la liste

Numérotation des lignes :

fecrdi
  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
  56. CALL FTEMP (TT, ID, PTT, R1,R1P)
  57. END IF
  58. NP = NP+1
  59. KN1 = NINT(PECDI(NP+1))
  60. IF (KN1.EQ.0) THEN
  61. NP = NP+2
  62. G1 = PECDI(NP)
  63. SR1 = R1*EXP(-G1*EPS)
  64. ELSE
  65. IF (KN1.EQ.-1) THEN
  66. NP = NP+2
  67. EN1 = PECDI(NP)
  68. ELSE IF (KN1.GT.0) THEN
  69. NPTT = NINT(PECDI(NP))
  70. DO IP = 1,NPTT
  71. PTT(IP) = PECDI(NP+IP)
  72. END DO
  73. NP = NP+NPTT
  74. CALL FTEMP (TT, ID, PTT, EN1,EN1P)
  75. END IF
  76. NP = NP+1
  77. G1 = PECDI(NP)
  78. SR1 = R1*EPE0**EN1*EXP(-G1*EPS)
  79. END IF
  80. SR = SR+SR1
  81. IF (ID.EQ.1) THEN
  82. IF (KN1.EQ.0) THEN
  83. DSRDTT = R1P*EXP(-G1*EPS)
  84. DSRDEP = -G1*SR1
  85. ELSE
  86. EPE0N1 = EPE0**EN1
  87. EMGIE = EXP(-G1*EPS)
  88. IF (KN1.EQ.-1) THEN
  89. DSRDTT = R1P*EPE0N1*EMGIE
  90. ELSE IF (KN1.GT.0) THEN
  91. DSRDTT = (R1P+R1*LOG(EPE0)*EN1P)*EPE0N1*EMGIE
  92. END IF
  93. DSRDEP = R1*EPE0N1*(EN1/EPE0-G1)*EMGIE
  94. END IF
  95. END IF
  96. END IF
  97. C ------------------------------------------------------------------
  98. C Ajout du terme R2(TT)*(EPS+EPS0)**N2(TT)*(1-exp(-G2*EPS))
  99. C
  100. NP = NP+1
  101. KR2 = NINT(PECDI(NP+1))
  102. IF (KR2.EQ.0) THEN
  103. NP = NP+1
  104. ELSE
  105. IF (KR2.EQ.-1) THEN
  106. NP = NP+2
  107. R2 = PECDI(NP)
  108. R2P = 0.D0
  109. ELSE IF (KR2.GT.0) THEN
  110. NPTT = NINT(PECDI(NP))
  111. DO IP = 1,NPTT
  112. PTT(IP) = PECDI(NP+IP)
  113. END DO
  114. NP = NP+NPTT
  115. CALL FTEMP (TT, ID, PTT, R2,R2P)
  116. END IF
  117. NP = NP+1
  118. KN2 = NINT(PECDI(NP+1))
  119. IF (KN2.EQ.0) THEN
  120. NP = NP+2
  121. G2 = PECDI(NP)
  122. SR2 = R2*(1.-EXP(-G2*EPS))
  123. ELSE
  124. IF (KN2.EQ.-1) THEN
  125. NP = NP+2
  126. EN2 = PECDI(NP)
  127. ELSE IF (KN2.GT.0) THEN
  128. NPTT = NINT(PECDI(NP))
  129. DO IP = 1,NPTT
  130. PTT(IP) = PECDI(NP+IP)
  131. END DO
  132. NP = NP+NPTT
  133. CALL FTEMP (TT, ID, PTT, EN2,EN2P)
  134. END IF
  135. NP = NP+1
  136. G2 = PECDI(NP)
  137. SR2 = R2*EPE0**EN2*(1.-EXP(-G2*EPS))
  138. END IF
  139. SR = SR+SR2
  140. IF (ID.EQ.1) THEN
  141. EMGIE = EXP(-G2*EPS)
  142. IF (KN2.EQ.0) THEN
  143. DSRDTT = DSRDTT+R2P*(1.-EMGIE)
  144. DSRDEP = DSRDEP+R2*G2*EMGIE
  145. ELSE
  146. EPE0N2 = EPE0**EN2
  147. IF (KN2.EQ.-1) THEN
  148. DSRDTT = DSRDTT+R2P*EPE0N2*(1.-EMGIE)
  149. ELSE IF (KN2.GT.0) THEN
  150. DSRDTT = DSRDTT+(R2P+R2*LOG(EPE0)*EN2P)*EPE0N2*(1.-EMGIE)
  151. END IF
  152. DSRDEP = DSRDEP+R2*EPE0N2*(EN2/EPE0*(1.-EMGIE)+G2*EMGIE)
  153. END IF
  154. END IF
  155. END IF
  156. C ------------------------------------------------------------------
  157. C Ajout du terme RP(PSI,TT)*RI(TT)*(EPS+EPS0)**NI(TT)*exp(-GI*EPS)
  158. C
  159. NP = NP+1
  160. KRP = NINT(PECDI(NP+1))
  161. IF (KRP.EQ.0) RETURN
  162. NPPSI = NINT(PECDI(NP))
  163. DO IP = 1,NPPSI
  164. PPSI(IP) = PECDI(NP+IP)
  165. END DO
  166. CALL FVDI (PSI,TT, ID, PPSI, RP,DRPDP,DRPDTT)
  167. NP = NP+NPPSI+1
  168. KRI = NINT(PECDI(NP+1))
  169. IF (KRI.EQ.0) RETURN
  170. IF (KRI.EQ.-1) THEN
  171. NP = NP+2
  172. RI = PECDI(NP)
  173. RIP = 0.D0
  174. ELSE IF (KRI.GT.0) THEN
  175. NPTT = NINT(PECDI(NP))
  176. DO IP = 1,NPTT
  177. PTT(IP) = PECDI(NP+IP)
  178. END DO
  179. NP = NP+NPTT
  180. CALL FTEMP (TT, ID, PTT, RI,RIP)
  181. END IF
  182. NP = NP+1
  183. KNI = NINT(PECDI(NP+1))
  184. IF (KNI.EQ.0) THEN
  185. NP = NP+2
  186. GI = PECDI(NP)
  187. SRI = RP*RI*EXP(-GI*EPS)
  188. ELSE
  189. IF (KNI.EQ.-1) THEN
  190. NP = NP+2
  191. ENI = PECDI(NP)
  192. ELSE IF (KNI.GT.0) THEN
  193. NPTT = NINT(PECDI(NP))
  194. DO IP = 1,NPTT
  195. PTT(IP) = PECDI(NP+IP)
  196. END DO
  197. NP = NP+NPTT
  198. CALL FTEMP (TT, ID, PTT, ENI,ENIP)
  199. END IF
  200. NP = NP+1
  201. GI = PECDI(NP)
  202. SRI = RP*RI*EPE0**ENI*EXP(-GI*EPS)
  203. END IF
  204. SR = SR+SRI
  205. IF (ID.EQ.1) THEN
  206. EMGIE = EXP(-GI*EPS)
  207. IF (KNI.EQ.0) THEN
  208. DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EMGIE
  209. DSRDEP = DSRDEP-GI*SRI
  210. DSRPSI = DRPDP*RI*EMGIE
  211. ELSE
  212. EPE0NI = EPE0**ENI
  213. IF (KNI.EQ.-1) THEN
  214. DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EPE0NI*EMGIE
  215. ELSE IF (KNI.GT.0) THEN
  216. DSRDTT = DSRDTT
  217. & +(DRPDTT*RI+RP*(RIP+RI*LOG(EPE0)*ENIP))*EPE0NI*EMGIE
  218. END IF
  219. DSRDEP = DSRDEP+RP*RI*EPE0NI*(ENI/EPE0-GI)*EMGIE
  220. DSRPSI = DRPDP*RI*EPE0NI*EMGIE
  221. END IF
  222. END IF
  223. C ------------------------------------------------------------------
  224. RETURN
  225. END
  226.  
  227.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales