Télécharger ecorev.eso

Retour à la liste

Numérotation des lignes :

ecorev
  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
  120. CALL FECRDI (TT,EPS,PSI, 0, PECDI, SC,DSCDTT,DSCDEP,DSCPSI)
  121. END IF
  122. IF (LVS.EQ.1) THEN
  123. VS = ((S-R)/SC)**EM
  124. ELSE IF (LVS.EQ.2) THEN
  125. VS = (SINH((S-R)/SC))**EM
  126. ELSE IF (LVS.EQ.3) THEN
  127. VS = (SC*SINH((S-R)/SC))**EM
  128. ELSE IF (LVS.EQ.4) THEN
  129. CALL FECRDI (TT,EPS,0.D0, 0, PECDI, SC0,DSCDTT,DSCDEP,DSCPSI)
  130. VS = (SC0*SINH((S-R)/SC))**EM
  131. ELSE IF (LVS.EQ.5) THEN
  132. VS = SINH(((S-R)/SC)**EM)
  133. ELSE IF (LVS.EQ.6) THEN
  134. VS = SC**EM*SINH(((S-R)/SC)**EM)
  135. ELSE IF (LVS.EQ.7) THEN
  136. CALL FECRDI (TT,EPS,0.D0, 0, PECDI, SC0,DSCDTT,DSCDEP,DSCPSI)
  137. VS = SC0**EM*SINH(((S-R)/SC)**EM)
  138. ELSE IF (LVS.EQ.8) THEN
  139. SR = (S-R)/SC
  140. VS = SR**EXP(EM1*SR+EM2)
  141. END IF
  142. END IF
  143. C ----------------------------------
  144. C Calcul de VTIR = VTPSI0+VFI*VTPSI1
  145. C
  146. NPERV = NPERV+1
  147. LVT = NINT(PERV(NPERV+1))
  148. IF (LVT.EQ.0) THEN
  149. VTIR = 0.
  150. NPERV = NPERV+1
  151. ELSE
  152. NPATDI = NINT(PERV(NPERV))
  153. DO IP = 1,NPATDI
  154. PATDI(IP) = PERV(NPERV+IP)
  155. END DO
  156. NPERV = NPERV+NPATDI
  157. CALL FATDI (TT,S,PSI, PATDI, VTIR)
  158. END IF
  159. NPERV = NPERV+1
  160. LVFI = NINT(PERV(NPERV+1))
  161. IF (LVFI.EQ.0) THEN
  162. NPERV = NPERV+1
  163. ELSE
  164. NPFI = NINT(PERV(NPERV))
  165. DO IP = 1,NPFI
  166. PFI(IP) = PERV(NPERV+IP)
  167. END DO
  168. NPERV = NPERV+NPFI
  169. CALL FFLUX (FI, PFI, VFI)
  170. NPERV = NPERV+1
  171. NPATDI = NINT(PERV(NPERV))
  172. DO IP = 1,NPATDI
  173. PATDI(IP) = PERV(NPERV+IP)
  174. END DO
  175. NPERV = NPERV+NPATDI
  176. CALL FATDI (TT,S,PSI, PATDI, VTPSI1)
  177. VTIR = VTIR+VFI*VTPSI1
  178. END IF
  179. C ---------------
  180. C Calcul de V(IV)
  181. C
  182. V(IV) = VS*VTIR
  183. IF (LVS.EQ.1) THEN
  184. NPERV = NPERV+1
  185. LVSB = NINT(PERV(NPERV))
  186. IF (LVSB.EQ.1) THEN
  187. V(IV) = V(IV)
  188. & + PERV(NPERV+1)*((S-R)/PERV(NPERV+2))**PERV(NPERV+3)
  189. NPERV = NPERV+3
  190. END IF
  191. END IF
  192. END DO
  193. C ------------------------------------------------------------------
  194. C Calcul de VERV
  195. C
  196. IF (LEPS.EQ.-1) THEN
  197. VERV = V(1)
  198. ELSE IF ((LEPS.EQ.1).OR.(LEPS.EQ.5)) THEN
  199. VERV = V(1)*(EPS+EPS0)**(-P1)
  200. ELSE IF (LEPS.EQ.2) THEN
  201. VERV = MAX(V(1)-EPS/TAU,0.D0)
  202. ELSE IF (LEPS.EQ.3) THEN
  203. VERV = V(2)+(V(1)-V(2))*EXP(-EPS/EPSC)
  204. ELSE IF (LEPS.EQ.4) THEN
  205. VERV = V(1)*(EPS+EPS0)**(-P1)*FACT
  206. & + V(2)*(EPS+EPS0)**(-P2)*(1.-FACT)
  207. END IF
  208. C ------------------------------------------------------------------
  209. C Limitation eventuelle de VERV a VM
  210. C
  211. IF (LEP.GE.99) THEN
  212. VERV = VM*TANH(VERV/VM)
  213. END IF
  214. C ------------------------------------------------------------------
  215. RETURN
  216. END
  217.  
  218.  

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