Download raccol.eso

Back to the list

   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     
 110 :       CALL FUNCOL(NORDP1,RG,ACVTOG,ROG,TG,RTG,ETHEG,UG,GAMG,CG,
 111 :      &           TGS,RTGS,CVGS,ROGS,PGS,ETHEGS,UGS,
 112 :      &           DELSGS,UMXSOG,UPXSOG,
 113 :      &           RC1G,AEQ1G,XSOLG,
 114 :      &           LOEQGS,DUDTGS,DPDTGS)
 115 : C
 116 : C**** Calcul de l'etat UD*
 117 : C               
 117 :       CALL FUNCOL(NORDP1,RD,ACVTOD,ROD,TD,RTD,ETHED,UD1,GAMD,CD,
 118 :      &           TDS,RTDS,CVDS,RODS,PDS,ETHEDS,UDS,
 119 :      &           DELSDS,UMXSOD,UPXSOD,
 120 :      &           RC1D,AEQ1D,XSOLD,
 121 :      &           LOEQDS,DUDTDS,DPDTDS)
 122 : C        
 123 : C***** Convergence
 124 : C
 125 :       LOGDO = (ABS(PGS - PDS)) .GT. (ZERO * PVAL) .OR.
 126 :      &        (ABS(UGS + UDS)) .GT. (ZERO * UVAL)
 127 : C
 128 :       DO WHILE(LOGDO)
 129 :          ITER = ITER + 1
 130 :          IF((IZER .GT. IZERMA) .OR. (ITER .GT. IMAX))THEN
 131 :             LOGDO = .FALSE.
 132 :             LOGNC = .TRUE.
 133 :          ELSE
 134 : C        
 135 : C*********  Calcul de TGS1, TDS1
 136 : C
 137 :            IF(.NOT. LOEQGS)
 137 :      &        CALL GRACOL(RG,RTG,CVGS,AEQ1G,DELSGS,
 138 :      &               XSOLG,PGS,TGS,
 139 :      &               RC1G,UG,UGS,UPXSOG,UMXSOG,
 140 :      &               DUDTGS,DPDTGS)
 141 :             IF(.NOT. LOEQDS)THEN
 141 :                CALL GRACOL(RD,RTD,CVDS,AEQ1D,DELSDS,
 142 :      &               XSOLD,PDS,TDS,
 143 :      &               RC1D,UD1,UDS,UPXSOD,UMXSOD,
 144 :      &               DUDTDS,DPDTDS)
 145 :             ENDIF
 146 : C
 147 : C********** Calcul de TGS1, TDS1
 148 : C
 149 :             DETJ = (DPDTDS * DUDTGS) + (DPDTGS * DUDTDS)
 150 :             TGS1 = (DUDTDS * (PDS - PGS)) - (DPDTDS * (UDS + UGS))
 151 :             TGS1 = (TGS1 / DETJ) + TGS
 152 :             TDS1 = (DUDTGS * (PGS - PDS)) - (DPDTGS * (UDS + UGS))
 153 :             TDS1 = (TDS1 / DETJ) + TDS
 154 :             IF(TGS1 .LE. 0.0D0) THEN
 155 :                IZER = IZER + 1
 156 :                TGS = 1.0D-4 * TGZERO
 157 :                TGZERO = TGS
 158 :             ELSE
 159 :                TGS = TGS1
 160 :             ENDIF
 161 :             IF(TDS1 .LE. 0.0D0)THEN
 162 :                IZER = IZER + 1
 163 :                TDS = 1.0D-4 * TDZERO
 164 :                TDZERO = TDS
 165 :             ELSE
 166 :                TDS = TDS1
 167 :             ENDIF
 168 : C
 169 : C
 170 : C**** Calcul de l'etat UG*
 171 : C     
 171 :             CALL FUNCOL(NORDP1,RG,ACVTOG,ROG,TG,RTG,ETHEG,UG,GAMG,CG,
 172 :      &           TGS,RTGS,CVGS,ROGS,PGS,ETHEGS,UGS,
 173 :      &           DELSGS,UMXSOG,UPXSOG,
 174 :      &           RC1G,AEQ1G,XSOLG,
 175 :      &           LOEQGS,DUDTGS,DPDTGS)
 176 : C
 177 : C**** Calcul de l'etat UD*
 178 : C               
 178 :             CALL FUNCOL(NORDP1,RD,ACVTOD,ROD,TD,RTD,ETHED,UD1,GAMD,CD,
 179 :      &           TDS,RTDS,CVDS,RODS,PDS,ETHEDS,UDS,
 180 :      &           DELSDS,UMXSOD,UPXSOD,
 181 :      &           RC1D,AEQ1D,XSOLD,
 182 :      &           LOEQDS,DUDTDS,DPDTDS)
 183 : C        
 184 : C***** Convergence
 185 : C
 186 :             LOGDO = (ABS(PGS - PDS)) .GT. (ZERO * PVAL) .OR.
 187 :      &              (ABS(UGS + UDS)) .GT. (ZERO * UVAL)
 188 :          ENDIF
 189 :       ENDDO
 190 :       UDS = -1.0D0 * UDS 
 191 :       IF(LOEQGS)THEN
 192 :          DGS = UG - CG
 193 :       ELSE
 194 :          DGS = UG - SQRT(RC1G/UMXSOG/UPXSOG)
 195 :       ENDIF
 196 :       IF(LOEQDS)THEN
 197 :          DDS = UD + CD
 198 :       ELSE
 199 :          DDS = UD + SQRT(RC1D/UMXSOD/UPXSOD)
 200 :       ENDIF
 201 :       GAMGS = (CVGS+RG)/CVGS
 202 :       GAMDS = (CVDS+RD)/CVDS
 203 :       RETURN
 204 :       END
 205 : 
 206 :          
 207 : 
 208 : 
 209 :  
 210 :  

© Cast3M 2003 - All rights reserved.
Disclaimer