Download pritem.eso

Back to the list

   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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer