Télécharger raccol.eso

Retour à la liste

Numérotation des lignes :

  1. C RACCOL SOURCE CHAT 05/01/13 02:44:05 5004
  2. SUBROUTINE RACCOL(PVAL,UVAL,NORDP1,
  3. & RG,ACVTOG,RD,ACVTOD,
  4. & ROG,TG,ETHEG,UG,RTG,GAMG,CG,
  5. & ROD,TD,ETHED,UD,RTD,GAMD,CD,
  6. & ROGS,PGS,TGS,ETHEGS,UGS,DGS,GAMGS,
  7. & RODS,PDS,TDS,ETHEDS,UDS,DDS,GAMDS,
  8. & LOGNC)
  9. C
  10. C************************************************************************
  11. C
  12. C PROJET : CASTEM 2000
  13. C
  14. C NOM : RACCOL
  15. C
  16. C DESCRIPTION : voir aussi FCOLTE
  17. C
  18. C Calcul de l'intersection des conditions de
  19. C Rankine-Hugoniot
  20. C
  21. C LANGAGE : FORTRAN 77
  22. C
  23. C AUTEUR : A. BECCANTINI DRN/DMT/SEMT/LTMF
  24. C
  25. C************************************************************************
  26. C
  27. C APPELES : FUNCOL, GRACOL
  28. C
  29. C************************************************************************
  30. C
  31. C**** Entrées:
  32. C
  33. C PVAL,UVAL = pression, vitesse, de reference
  34. C
  35. C NORDP1 = degree des polynoms cv + 1
  36. C
  37. C RG, RD = R du gaz a gauche et a droite
  38. C
  39. C ACVTOG, ACVTOD = les sommes des coefficients des cv;
  40. C ACVTOT(j) = \sum_{i=1,nesp} Y_i*ACV_{i,j}
  41. C j = 1 , NORDP1
  42. C
  43. C ROG, ROD = les densités
  44. C
  45. C TG, TD = les temperatures
  46. C
  47. C ETHERG, ETHERD = les energies thermiques
  48. C
  49. C UG, UD = vitesses normales
  50. C
  51. C RTG, RTD = RG * TG = PG / ROG, ...
  52. C
  53. C GAMG, GAMD = les "gamma" du gaz (gauche et droite)
  54. C
  55. C CG, CD = les vitesse du son
  56. C
  57. C**** Sorties:
  58. C
  59. C Les etats intermediares, i.e.:
  60. C
  61. C ROGS,PGS,TGS,ETHEGS,UGS,DGS,GAMGS = densite, pression,
  62. C temperature, energie termique, vitesse normale de
  63. C l'etat GS (Gauche Star), vitesse du choc gauche et gamma
  64. C
  65. C RODS,PDS,TDS,ETHEDS,UDS,DDS,GAMDS = densite, pression,
  66. C temperature, energie termique, vitesse normale de
  67. C l'etat DS (Droite Star), vitesse du choc droite et gamma
  68. C
  69. C LOGNC = si .TRUE. Newton ne converge pas
  70. C
  71. C************************************************************************
  72. C
  73. C HISTORIQUE (Anomalies et modifications éventuelles)
  74. C
  75. C HISTORIQUE : Créé le 08.02.00
  76. C
  77. C************************************************************************
  78. C
  79. C N.B.: Toutes les variables sont DECLAREES
  80. C
  81. C
  82. IMPLICIT INTEGER(I-N)
  83. INTEGER NORDP1,IMAX,ITER,IZERMA,IZER
  84. REAL*8 ZERO,PVAL,UVAL
  85. & ,RG,ACVTOG(*),RD,ACVTOD(*)
  86. & ,ROG,TG,RTG,ETHEG,UG,GAMG,CG
  87. & ,ROD,TD,RTD,ETHED,UD,UD1,GAMD,CD
  88. & ,ROGS,PGS,TGS,ETHEGS,UGS
  89. & ,RODS,PDS,TDS,ETHEDS,UDS
  90. & ,RTGS,CVGS,DELSGS,UMXSOG,UPXSOG
  91. & ,RC1G,AEQ1G,XSOLG,DUDTGS,DPDTGS
  92. & ,RTDS,CVDS,DELSDS,UMXSOD,UPXSOD
  93. & ,RC1D,AEQ1D,XSOLD,DUDTDS,DPDTDS
  94. & ,DETJ,TGS1,TDS1,DGS,DDS,GAMGS,GAMDS
  95. & ,TGZERO,TDZERO
  96. LOGICAL LOEQGS,LOEQDS,LOGNC,LOGDO
  97. C
  98. PARAMETER(ZERO=1.0D-6,IMAX=20,IZERMA=6)
  99. C
  100. TGZERO = TG
  101. TDZERO = TD
  102. LOGNC = .FALSE.
  103. ITER = 0
  104. IZER= 0
  105. UD1 = -1.0D0 * UD
  106. TGS = TG
  107. TDS = TD
  108. C
  109. C**** Calcul de l'etat UG*
  110. C
  111. CALL FUNCOL(NORDP1,RG,ACVTOG,ROG,TG,RTG,ETHEG,UG,GAMG,CG,
  112. & TGS,RTGS,CVGS,ROGS,PGS,ETHEGS,UGS,
  113. & DELSGS,UMXSOG,UPXSOG,
  114. & RC1G,AEQ1G,XSOLG,
  115. & LOEQGS,DUDTGS,DPDTGS)
  116. C
  117. C**** Calcul de l'etat UD*
  118. C
  119. CALL FUNCOL(NORDP1,RD,ACVTOD,ROD,TD,RTD,ETHED,UD1,GAMD,CD,
  120. & TDS,RTDS,CVDS,RODS,PDS,ETHEDS,UDS,
  121. & DELSDS,UMXSOD,UPXSOD,
  122. & RC1D,AEQ1D,XSOLD,
  123. & LOEQDS,DUDTDS,DPDTDS)
  124. C
  125. C***** Convergence
  126. C
  127. LOGDO = (ABS(PGS - PDS)) .GT. (ZERO * PVAL) .OR.
  128. & (ABS(UGS + UDS)) .GT. (ZERO * UVAL)
  129. C
  130. DO WHILE(LOGDO)
  131. ITER = ITER + 1
  132. IF((IZER .GT. IZERMA) .OR. (ITER .GT. IMAX))THEN
  133. LOGDO = .FALSE.
  134. LOGNC = .TRUE.
  135. ELSE
  136. C
  137. C********* Calcul de TGS1, TDS1
  138. C
  139. IF(.NOT. LOEQGS)
  140. & CALL GRACOL(RG,RTG,CVGS,AEQ1G,DELSGS,
  141. & XSOLG,PGS,TGS,
  142. & RC1G,UG,UGS,UPXSOG,UMXSOG,
  143. & DUDTGS,DPDTGS)
  144. IF(.NOT. LOEQDS)THEN
  145. CALL GRACOL(RD,RTD,CVDS,AEQ1D,DELSDS,
  146. & XSOLD,PDS,TDS,
  147. & RC1D,UD1,UDS,UPXSOD,UMXSOD,
  148. & DUDTDS,DPDTDS)
  149. ENDIF
  150. C
  151. C********** Calcul de TGS1, TDS1
  152. C
  153. DETJ = (DPDTDS * DUDTGS) + (DPDTGS * DUDTDS)
  154. TGS1 = (DUDTDS * (PDS - PGS)) - (DPDTDS * (UDS + UGS))
  155. TGS1 = (TGS1 / DETJ) + TGS
  156. TDS1 = (DUDTGS * (PGS - PDS)) - (DPDTGS * (UDS + UGS))
  157. TDS1 = (TDS1 / DETJ) + TDS
  158. IF(TGS1 .LE. 0.0D0) THEN
  159. IZER = IZER + 1
  160. TGS = 1.0D-4 * TGZERO
  161. TGZERO = TGS
  162. ELSE
  163. TGS = TGS1
  164. ENDIF
  165. IF(TDS1 .LE. 0.0D0)THEN
  166. IZER = IZER + 1
  167. TDS = 1.0D-4 * TDZERO
  168. TDZERO = TDS
  169. ELSE
  170. TDS = TDS1
  171. ENDIF
  172. C
  173. C
  174. C**** Calcul de l'etat UG*
  175. C
  176. CALL FUNCOL(NORDP1,RG,ACVTOG,ROG,TG,RTG,ETHEG,UG,GAMG,CG,
  177. & TGS,RTGS,CVGS,ROGS,PGS,ETHEGS,UGS,
  178. & DELSGS,UMXSOG,UPXSOG,
  179. & RC1G,AEQ1G,XSOLG,
  180. & LOEQGS,DUDTGS,DPDTGS)
  181. C
  182. C**** Calcul de l'etat UD*
  183. C
  184. CALL FUNCOL(NORDP1,RD,ACVTOD,ROD,TD,RTD,ETHED,UD1,GAMD,CD,
  185. & TDS,RTDS,CVDS,RODS,PDS,ETHEDS,UDS,
  186. & DELSDS,UMXSOD,UPXSOD,
  187. & RC1D,AEQ1D,XSOLD,
  188. & LOEQDS,DUDTDS,DPDTDS)
  189. C
  190. C***** Convergence
  191. C
  192. LOGDO = (ABS(PGS - PDS)) .GT. (ZERO * PVAL) .OR.
  193. & (ABS(UGS + UDS)) .GT. (ZERO * UVAL)
  194. ENDIF
  195. ENDDO
  196. UDS = -1.0D0 * UDS
  197. IF(LOEQGS)THEN
  198. DGS = UG - CG
  199. ELSE
  200. DGS = UG - SQRT(RC1G/UMXSOG/UPXSOG)
  201. ENDIF
  202. IF(LOEQDS)THEN
  203. DDS = UD + CD
  204. ELSE
  205. DDS = UD + SQRT(RC1D/UMXSOD/UPXSOD)
  206. ENDIF
  207. GAMGS = (CVGS+RG)/CVGS
  208. GAMDS = (CVDS+RD)/CVDS
  209. RETURN
  210. END
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  

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