Télécharger austrk.eso

Retour à la liste

Numérotation des lignes :

austrk
  1. C AUSTRK SOURCE CHAT 05/01/12 21:29:35 5004
  2. C SOURCE MARTINEZ 2/10/1998
  3. C
  4. C=======================================================================
  5. C
  6. SUBROUTINE AUSTRK(VWRK1,ZFIN,CKA0,CKA1,CLA0,CLA1,DTPS)
  7. C
  8. C=======================================================================
  9. C
  10. C Calcul de transformations de phases
  11. C appelee par TRPHA2
  12. C
  13. C calcul de l'austenitisation
  14. C le modele de Leblond est integre par une methode runge-kutta
  15. C d'ordre 4
  16. C
  17. C vwrk1 /1 temperature
  18. C /2 vitesse de chauf,refr
  19. C /3 proportion d'austenite
  20. C /4 proportion de ferrite
  21. C /5 proportion de bainite
  22. C /6 proportion de martensite
  23. C /7 temperature de debut de transf. martensitique
  24. C zfin resultat
  25. C /1 proportion d'austenite
  26. C /2 proportion de ferrite
  27. C /3 proportion de bainite
  28. C /4 proportion de martensite
  29. C cka0,cla0 coef au pas i
  30. C cka1,cla1 coef au pas i+1
  31. C dtps pas de temps
  32. C
  33. C=======================================================================
  34. C
  35. IMPLICIT INTEGER(I-N)
  36. IMPLICIT REAL*8(A-H,O-Z)
  37. REAL*8 VWRK1(7),ZFIN(4)
  38. PARAMETER (SMALL=1.D-5,PRESQU_UN=0.9999999)
  39. C
  40. C RECUPERATION DE L'ETAT INITIAL
  41. C
  42. ZA0=VWRK1(3)
  43. ZF0=VWRK1(4)
  44. ZB0=VWRK1(5)
  45. ZM0=VWRK1(6)
  46. C
  47. C LINEARISATION DES COEF MATERIAU
  48. C
  49. CLAL=(CLA1-CLA0)/DTPS
  50. CKAL=(CKA1-CKA0)/DTPS
  51. C
  52. C APPLICATION DE RUNGE-KUTTA
  53. C
  54. DDTP=DTPS*0.5D0
  55. DTP6=DTPS/6.D0
  56. C
  57. ZFP1=CLA0*ZA0-CKA0*ZF0
  58. ZBP1=CLA0*ZA0-CKA0*ZB0
  59. ZMP1=CLA0*ZA0-CKA0*ZM0
  60. IF (ZFP1.GT.0.) ZFP1=0.
  61. IF (ZBP1.GT.0.) ZBP1=0.
  62. IF (ZMP1.GT.0.) ZMP1=0.
  63. ZAP1=-1.*(ZFP1+ZBP1+ZMP1)
  64. ZAK=ZA0+ZAP1*DDTP
  65. IF (ZAK.GT.PRESQU_UN) ZAK=1.
  66. ZFK=ZF0+ZFP1*DDTP
  67. IF (ZFK.LT.SMALL) ZFK=0.
  68. ZBK=ZB0+ZBP1*DDTP
  69. IF (ZBK.LT.SMALL) ZBK=0.
  70. ZMK=ZM0+ZMP1*DDTP
  71. IF (ZMK.LT.SMALL) ZMK=0.
  72. C
  73. X=DDTP
  74. ZFP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK
  75. ZBP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK
  76. ZMP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK
  77. IF (ZFP2.GT.0.) ZFP2=0.
  78. IF (ZBP2.GT.0.) ZBP2=0.
  79. IF (ZMP2.GT.0.) ZMP2=0.
  80. ZAP2=-1.*(ZFP2+ZBP2+ZMP2)
  81. ZAK=ZA0+ZAP2*DDTP
  82. IF (ZAK.GT.PRESQU_UN) ZAK=1.
  83. ZFK=ZF0+ZFP2*DDTP
  84. IF (ZFK.LT.SMALL) ZFK=0.
  85. ZBK=ZB0+ZBP2*DDTP
  86. IF (ZBK.LT.SMALL) ZBK=0.
  87. ZMK=ZM0+ZMP2*DDTP
  88. IF (ZMK.LT.SMALL) ZMK=0.
  89. C
  90. ZFP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK
  91. ZBP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK
  92. ZMP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK
  93. IF (ZFP3.GT.0.) ZFP3=0.
  94. IF (ZBP3.GT.0.) ZBP3=0.
  95. IF (ZMP3.GT.0.) ZMP3=0.
  96. ZAP3=-1.*(ZFP3+ZBP3+ZMP3)
  97. ZAK=ZA0+ZAP3*DTPS
  98. IF (ZAK.GT.PRESQU_UN) ZAK=1.
  99. ZFK=ZF0+ZFP3*DTPS
  100. IF (ZFK.LT.SMALL) ZFK=0.
  101. ZBK=ZB0+ZBP3*DTPS
  102. IF (ZBK.LT.SMALL) ZBK=0.
  103. ZMK=ZM0+ZMP3*DTPS
  104. IF (ZMK.LT.SMALL) ZMK=0.
  105. C
  106. ZAP23=ZAP2+ZAP3
  107. ZFP23=ZFP2+ZFP3
  108. ZBP23=ZBP2+ZBP3
  109. ZMP23=ZMP2+ZMP3
  110. C
  111. ZFP4=CLA1*ZAK-CKA1*ZFK
  112. ZBP4=CLA1*ZAK-CKA1*ZBK
  113. ZMP4=CLA1*ZAK-CKA1*ZMK
  114. IF (ZFP4.GT.0.) ZFP4=0.
  115. IF (ZBP4.GT.0.) ZBP4=0.
  116. IF (ZMP4.GT.0.) ZMP4=0.
  117. ZAP4=-1.*(ZFP4+ZBP4+ZMP4)
  118. C
  119. ZA1=ZA0+DTP6*(ZAP1+ZAP4+2.D0*ZAP23)
  120. IF (ZA1.GT.PRESQU_UN) ZA1=1.
  121. ZF1=ZF0+DTP6*(ZFP1+ZFP4+2.D0*ZFP23)
  122. IF (ZF1.LT.SMALL) ZF1=0.
  123. ZB1=ZB0+DTP6*(ZBP1+ZBP4+2.D0*ZBP23)
  124. IF (ZB1.LT.SMALL) ZB1=0.
  125. ZM1=ZM0+DTP6*(ZMP1+ZMP4+2.D0*ZMP23)
  126. IF (ZM1.LT.SMALL) ZM1=0.
  127. C
  128. ZFIN(1)=ZA1
  129. ZFIN(2)=ZF1
  130. ZFIN(3)=ZB1
  131. ZFIN(4)=ZM1
  132. C
  133. RETURN
  134. C
  135. END
  136.  
  137.  
  138.  

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