Télécharger pritem.eso

Retour à la liste

Numérotation des lignes :

pritem
  1. C PRITEM SOURCE CHAT 05/01/13 02:27:55 5004
  2. SUBROUTINE PRITEM(NORDP1,ACVTOT,ETHER,T0,T,LOGNC,LOGIPG)
  3. C
  4. C************************************************************************
  5. C
  6. C PROJET : CASTEM 2000
  7. C
  8. C NOM : PRITEM
  9. C
  10. C DESCRIPTION : VOIR PRIMI2
  11. C
  12. C Melange des gaz "thermally perfect".
  13. C Calcul de la temperature (Newton-Raphson)
  14. C
  15. C LANGAGE : FORTRAN 77 Standard (avec extensions Fortran 90)
  16. C
  17. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  18. C
  19. C************************************************************************
  20. C
  21. C APPELES : /
  22. C
  23. C************************************************************************
  24. C
  25. C ENTREES : NORDP1 : ordre des polynoms + 1
  26. C
  27. C ACVTOT : table qui contient \sum_i Y(i) PROPHY.ACV(i,j)
  28. C j=1,NORDP1 (NORD-th order polynoms)
  29. C
  30. C ETHER : energie thermique
  31. C
  32. C T0 : temperature du premier essai;
  33. C
  34. C SORTIES :
  35. C
  36. C T : resultat
  37. C
  38. C LOGNC : si .TRUE., probleme de convergence
  39. C
  40. C LOGIPG : si .TRUE., il y a une probleme de cv(T)<0 !!!
  41. C ERREUR dans la table IPGAS
  42. C
  43. C************************************************************************
  44. C
  45. C HISTORIQUE (Anomalies et modifications éventuelles)
  46. C
  47. C HISTORIQUE : Créée le 16.1.98.
  48. C
  49. C************************************************************************
  50. C
  51. IMPLICIT INTEGER(I-N)
  52. INTEGER I1, ITMAX, ITER, NORDP1
  53. REAL*8 ACVTOT(NORDP1), T0, T, ETHER, ET0, DERET0
  54. & , EPSI, PUIT, T1, ATOT, DT, DEN
  55. PARAMETER(EPSI=1.0D-3,ITMAX=1000)
  56. LOGICAL LOGNC, LOGCON, LOGIPG
  57. C
  58. LOGCON = .TRUE.
  59. C
  60. C*** LOGNC, LOGIPG deja initialize
  61. C
  62. T1 = T0
  63. ITER = 0
  64. DO WHILE(LOGCON)
  65. DERET0 = ACVTOT(1)
  66. ET0 = DERET0 * T1
  67. PUIT = 1.0D0
  68. DO I1 = 2,NORDP1
  69. PUIT = PUIT * T1
  70. ATOT = ACVTOT(I1) * PUIT
  71. DERET0 = DERET0 + ATOT
  72. ATOT = ATOT * T1 / I1
  73. ET0 = ET0 + ATOT
  74. ENDDO
  75. C
  76. C******* Anomalie si DERET0 < 0
  77. C N.B. DERET0 = CVTOT
  78. C
  79. IF(DERET0 .LE. 0.0D0)THEN
  80. LOGIPG = .TRUE.
  81. GOTO 9999
  82. ENDIF
  83. DEN = ETHER - ET0
  84. DT = DEN /DERET0
  85. IF((ABS(DT) .LE. (EPSI * T1)) .AND.
  86. & (ABS(DEN) .LE. (EPSI * ET0)))THEN
  87. LOGCON = .FALSE.
  88. T = T1 + DT
  89. ELSEIF(ITER .GT. ITMAX)THEN
  90. LOGNC = .TRUE.
  91. LOGCON = .FALSE.
  92. T = T1 + DT
  93. ELSE
  94. T1 = T1 + DT
  95. ITER = ITER + 1
  96. ENDIF
  97. ENDDO
  98. C
  99. C**** Visualisation des iterations
  100. C On peut voir que la methode est tres efficace (3,4)
  101. C write(*,*) iter
  102. 9999 CONTINUE
  103. RETURN
  104. END
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  

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