Télécharger fspvlh.eso

Retour à la liste

Numérotation des lignes :

fspvlh
  1. C FSPVLH SOURCE CHAT 05/01/13 00:10:28 5004
  2. SUBROUTINE FSPVLH(NESP,NSCA,GAMG,ROG,MG,AG,UTG,HTG,Y,S,FLUX)
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : FSPVLH
  8. C
  9. C DESCRIPTION : Voir FLUVLH
  10. C
  11. C Onde de Gauche à Droite
  12. C
  13. C LANGUAGE : FORTRAN 77
  14. C
  15. C AUTEUR : A. BECCANTINI DRN/DMT/SEMT/TTMF
  16. C
  17. C************************************************************************
  18. C
  19. C APPELES : aucun
  20. C
  21. C************************************************************************
  22. C
  23. C**** Entrées:
  24. C
  25. C NESP = nombre d'especes in FRAMAS
  26. C
  27. C NSCA = nombre de scalaires passifs a transporter
  28. C
  29. C GAMG = le "gamma" (à gauche)
  30. C
  31. C ROG = la densité
  32. C
  33. C MG = nombre de Mach (normale)
  34. C
  35. C AG = vitesse du son
  36. C
  37. C UTG = vitesse tangentielle
  38. C
  39. C Y = table des fractiones massiques
  40. C
  41. C S = table des scalaires passifs
  42. C
  43. C**** Sorties:
  44. C
  45. C FLUX = table du flux "gauche -> droite" a
  46. C l'interface
  47. C
  48. C************************************************************************
  49. C
  50. C HISTORIQUE (Anomalies et modifications éventuelles)
  51. C
  52. C HISTORIQUE : Créé le 21.02.00 pour le transport de scalaires passifs
  53. C
  54. C************************************************************************
  55. C
  56. C N.B.: Toutes les variables sont declarées explicitement
  57. C
  58. C
  59. C
  60. IMPLICIT INTEGER(I-N)
  61. INTEGER I1, NESP, NSCA
  62. REAL*8 GAMG,ROG,MG,AG,UTG,HTG
  63. & ,GM1G,MPLUS, CELL, CELLM
  64. & ,Y(*),FLUX(*),S(*)
  65. C
  66.  
  67. C**** N.B. :
  68. C
  69. C FLUX(2) = MPLUS * AG * ROG * UNG + PPLUS * PG
  70. C
  71. C PG = ROG * AG * AG / GAMG
  72. C
  73. C ABS(MG) < 1 -> PPLUS = MPLUS * (2 - MG)
  74. C
  75. C ABS(MG) > 1 -> PPLUS = MPLUS / MG
  76. C
  77.  
  78. C
  79. GM1G = GAMG - 1.0D0
  80. IF(ABS(MG) .LE. 1.0D0)THEN
  81. MPLUS = 0.5D0 * (MG + 1.0D0)
  82. MPLUS = MPLUS * MPLUS
  83. CELL = (GM1G * MG+2.0D0)*AG/GAMG
  84. ELSE
  85. MPLUS = 0.5D0 * (MG + ABS(MG))
  86. CELL = (MG + 1.0D0/GAMG/MG)*AG
  87. ENDIF
  88. CELLM = MPLUS * AG * ROG
  89. C
  90. FLUX(1) = CELLM
  91. FLUX(2) = CELLM * CELL
  92. FLUX(3) = CELLM * UTG
  93. FLUX(4) = CELLM * HTG
  94. C
  95. C**** N.B. NESP = 0 -> no boucle
  96. C
  97. DO I1 = 1, NESP, 1
  98. FLUX(4+I1) = CELLM * Y(I1)
  99. ENDDO
  100. C
  101. C**** N.B. NSCA = 0 -> no boucle
  102. C
  103. DO I1 = 1, NSCA, 1
  104. FLUX(4+I1+NESP) = CELLM * S(I1)
  105. ENDDO
  106. C
  107. RETURN
  108. END
  109.  
  110.  
  111.  
  112.  
  113.  

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