Download flama.eso

Back to the list

   1 : C FLAMA     SOURCE    CHAT      06/03/29    21:21:19     5360           
   2 :       SUBROUTINE FLAMA()
   3 : C************************************************************************
   4 : C
   5 : C PROJET            :  CASTEM 2000
   6 : C
   7 : C NOM               :  FLAMA
   8 : C
   9 : C DESCRIPTION       :  voir aussi FLAM
  10 : C  
  11 : C                      Calcul des masses specifiques de H2, O2, H2O et de
  12 : C                      l'energie libere dans le cas de combustion
  13 : C                      governe' par une loi de type Heavyside (T > Ts 
  14 : C                      tout brule).
  15 : C
  16 : C                      N.B. L'energie thermique de chaque epsece est 
  17 : C                      definie par
  18 : C
  19 : C                           e = \int_{0}^T cv(y) dy
  20 : C
  21 : C                      Toutes les grandeurs sont exprimees en unites S.I. 
  22 : C    
  23 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  24 : C      
  25 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/LTMF                        
  26 : C
  27 : C************************************************************************
  28 : C
  29 : C
  30 : C APPELES (E/S)     : 
  31 : C     
  32 : C APPELES (Calcul)  : 
  33 : C
  34 : C
  35 : C************************************************************************
  36 : C      
  37 : C
  38 : C PHRASE D'APPEL (GIBIANE) :
  39 : C
  40 : C RCHPO1 RCHPO2 RCHPO3 RCHPO4  = 'FLAM' MCLE1 CHPO1 FLOT1 FLOT2 FLOT3 
  41 : C                                 CHPO2 CHPO3 CHPO4 CHPO5 ;
  42 : C
  43 : C ENTREES  : 
  44 : C
  45 : C            MCLE1   : 'HEAVYSID'  : mot clé
  46 : C                  
  47 : C            CHPO1   : CHPOINT contenant la temperature de seuil (en K; 
  48 : C                      une composante, 'SCAL').
  49 : C
  50 : C            FLOT1   : FLOTTANT contenant l'enthalpie de H2
  51 : C                      a 0K (en J/kg)
  52 : C
  53 : C            FLOT2   : FLOTTANT contenant l'enthalpie de O2
  54 : C                      a 0K (en J/kg)
  55 : C
  56 : C            FLOT3   : FLOTTANT contenant l'enthalpie de H2O
  57 : C                      a 0K (en J/kg)
  58 : C       
  59 : C            CHPO2   : CHPOINT  contenant la masse volumique de
  60 : C                      l'hydrogene (en Kg/m^3; une composante, 'H2  ').
  61 : C
  62 : C            CHPO3   : CHPOINT  contenant la masse volumique de
  63 : C                      l'oxygene (en Kg/m^3; une composante, 'O2  ').
  64 : C
  65 : C            CHPO4   : CHPOINT  contenant la masse volumique de
  66 : C                      l'eau (en Kg/m^3; une composante, 'H2O ').
  67 : C
  68 : C            CHPO5   : CHPOINT contenant la temperature (en K; une 
  69 : C                      composante, 'SCAL').
  70 : C
  71 : C SORTIES  : 
  72 : C
  73 : C      
  74 : C            RCHPO1  : CHPOINT  contenant la masse volumique de 
  75 : C                      l'hydrogene apres la reaction (en Kg/m^3; 
  76 : C                      une composante, 'H2  ').
  77 : C
  78 : C            RCHPO2  : CHPOINT  contenant la masse volumique de
  79 : C                      l'oxygene apres la reaction (en Kg/m^3; 
  80 : C                      une composante, 'O2  ').
  81 : C
  82 : C            RCHPO3  : CHPOINT  contenant la masse volumique de
  83 : C                      l'eau apres la reaction (en Kg/m^3; une 
  84 : C                      composante, 'H2O ').
  85 : C
  86 : C            RCHPO4  : CHPOINT contenant la chaleur libere' (en J/m^3; 
  87 : C                      une composante, 'SCAL').
  88 : C
  89 : C            N.B.:-tous les CHPOINTs sont non-partitonees et
  90 : C                  ils ont le meme support geometrique;
  91 : C                  en sortie tous les CHPOINTs ont le support
  92 : C                  geometrique du CHPO1 
  93 : C      
  94 : C************************************************************************
  95 : C
  96 : C HISTORIQUE (Anomalies et modifications éventuelles)
  97 : C
  98 : C HISTORIQUE :  Créée le 3.3.99
  99 : C 
 100 : C************************************************************************
 101 : C
 102 : C
 103 : C**** Variables de COOPTIO
 104 : C
 105 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
 106 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
 107 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
 108 : C     &        ,IECHO,   IIMPI,  IOSPI
 109 : C     &        ,IDIM
 110 : C     &        ,MCOORD      
 111 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 112 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 113 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
 114 : C     &        ,NUCROU, IPSAUV
 115 : C
 116 : C**** Les variables
 117 : C
 118 :       IMPLICIT INTEGER(I-N)
 119 :       INTEGER ICOND, IRETOU, IERR0, ICEN, NCEN, NBCOMP, INDIC
 120 :      &      , ITSEUI, IRYH2, IRYO2 , IRYH2O, ITEMP
 121 :      &      , IDE, INH2, INO2, INH2O, N, NC 
 122 :       REAL*8 H0H2, H0O2, H0H2O, VALER
 123 :       CHARACTER*(8) MESERR 
 124 :       CHARACTER*(8) MTYPR
 125 :       CHARACTER*(4) NOMTOT(1)
 126 :       LOGICAL LOGNEG
 127 : 
 128 : C     
 129 : C**** Les Includes
 130 : C
 131 : -INC CCOPTIO
 132 : -INC SMCHPOI      
 133 :       POINTEUR TSEUIL.MPOVAL, TEMP.MPOVAL, RYH2.MPOVAL, RYO2.MPOVAL
 134 :      & , RYH2O.MPOVAL, NRYH2.MPOVAL, NRYO2.MPOVAL, NRYH2O.MPOVAL
 135 :      & , DE.MPOVAL
 136 : -INC SMELEME
 137 : C
 138 : C**** Initialisation des parametres d'erreur
 139 : C
 140 :       LOGNEG  = .FALSE.
 141 :       MESERR  = '        '
 142 :       VALER = 0.0D0
 143 : C
 144 : C**** Initialisation des NOMTOT(1) (noms des composantes)      
 145 : C
 146 :       NOMTOT(1) = '    '
 147 : C      
 148 : C**** Lecture du CHPOINT CHPO1 (temperature de seuil)
 149 : C
 150 :       ICOND = 1
 151 :       MTYPR = 'CHPOINT '
 151 :       CALL LIROBJ(MTYPR,ITSEUI,ICOND,IRETOU)
 152 :       IF(IERR .NE. 0)GOTO 9999
 153 : C
 154 : C**** On cherche le pointeur de son maillage et on l'impose sur les
 155 : C     autres CHPOINTs
 156 : C     En plus on controlle: NBCOMP = 1
 157 : C                           MSOUPO.NOCOMP(1) = 'SCAL'
 158 : C
 159 :       MCHPOI = ITSEUI
 160 :       SEGACT MCHPOI
 161 :       MSOUPO = MCHPOI.IPCHP(1)
 162 :       SEGACT MSOUPO
 163 :       NBCOMP = MSOUPO.NOCOMP(/2)
 164 :       IF(NBCOMP .NE. 1)THEN
 165 : C
 166 : C******** Message d'erreur standard
 167 : C        -301 0 %m1:40
 168 : C
 169 :          MOTERR  = 'CHPO1 = ???                             '
 169 :          CALL ERREUR(-301)         
 170 : C
 171 : C******** Message d'erreur standard
 172 : C         699 2
 173 : C         routine %m1:8 : On voulait un %m9:16 à %i1 composantes au lieu
 174 : C         de %i2 
 175 : C
 176 :          MOTERR(1:8)  = ' QUEPOI '
 177 :          MOTERR(9:16) = 'CHPOINT '
 178 :          INTERR(1)   = 1
 179 :          INTERR(2)   = NBCOMP
 179 :          CALL ERREUR(699)
 180 :          GOTO 9999
 181 :       ENDIF
 182 :       NOMTOT(1) = MSOUPO.NOCOMP(1)
 183 :       IF(NOMTOT(1) .NE. 'SCAL')THEN
 184 : C
 185 : C******** Message d'erreur standard
 186 : C        -301 0 %m1:40
 187 : C
 188 :          MOTERR  = 'CHPO1 = ???                             '
 188 :          CALL ERREUR(-301)
 189 : C
 190 : C******** Message d'erreur standard
 191 : C         197 2
 192 : C         Le mot %m1:4 n'est pas un nom de composante reconnu
 193 : C
 194 :          MOTERR(1:4) = NOMTOT(1)
 194 :          CALL ERREUR(197)
 195 :          GOTO 9999
 196 :       ENDIF
 197 :       ICEN = MSOUPO.IGEOC
 198 :       MELEME = ICEN
 199 :       SEGACT MELEME
 200 :       NCEN = MELEME.NUM(/2)
 201 :       SEGDES MELEME
 202 :       TSEUIL = MSOUPO.IPOVAL
 203 :       SEGDES MSOUPO
 204 :       SEGDES MCHPOI
 205 : C      
 206 : C**** Lecture du FLOT1
 207 : C
 208 :       ICOND = 1
 208 :       CALL LIRREE(H0H2, ICOND, IRETOU)
 209 :       IF(IERR .NE. 0)GOTO 9999
 210 : C      
 211 : C**** Lecture du FLOT2 
 212 : C
 213 :       ICOND = 1
 213 :       CALL LIRREE(H0O2, ICOND, IRETOU)
 214 :       IF(IERR .NE. 0)GOTO 9999
 215 : C      
 216 : C**** Lecture du FLOT3 
 217 : C
 218 :       ICOND = 1
 218 :       CALL LIRREE(H0H2O, ICOND, IRETOU)
 219 :       IF(IERR .NE. 0)GOTO 9999
 220 : C      
 221 : C**** Lecture du CHPOINT CHPO2
 222 : C
 223 :       MTYPR = 'CHPOINT'
 223 :       CALL LIROBJ(MTYPR,IRYH2,ICOND,IRETOU)
 224 :       IF(IERR .NE. 0)GOTO 9999
 225 : C
 226 : C**** Control du CHPOINT
 227 : C     
 228 :       INDIC = 1
 229 :       NBCOMP = 1
 230 :       NOMTOT(1) = 'H2  '
 230 :       CALL QUEPOI(IRYH2, ICEN, INDIC, NBCOMP, NOMTOT)
 231 :       IF(IERR .NE. 0)THEN
 232 :          IERR0 = IERR
 233 : 
 234 : C
 235 : C******** Message d'erreur standard
 236 : C        -301 0 %m1:40
 237 : C
 238 :          MOTERR = 'CHPO2 = ???                             '
 238 :          CALL ERREUR(-301)         
 239 : 
 240 :          GOTO 9999
 241 :       ENDIF  
 242 : C      
 243 : C**** Lecture du CHPOINT CHPO3
 244 : C
 245 :       MTYPR = 'CHPOINT'
 245 :       CALL LIROBJ(MTYPR,IRYO2,ICOND,IRETOU)
 246 :       IF(IERR .NE. 0)GOTO 9999
 247 : C
 248 : C**** Control du CHPOINT
 249 : C     
 250 :       INDIC = 1
 251 :       NBCOMP = 1
 252 :       NOMTOT(1) = 'O2  '
 252 :       CALL QUEPOI(IRYO2, ICEN, INDIC, NBCOMP, NOMTOT)
 253 :       IF(IERR .NE. 0)THEN
 254 :          IERR0 = IERR
 255 : 
 256 : C
 257 : C******** Message d'erreur standard
 258 : C        -301 0 %m1:40
 259 : C
 260 :          MOTERR = 'CHPO3 = ???                             '
 260 :          CALL ERREUR(-301)         
 261 : 
 262 :          GOTO 9999
 263 :       ENDIF  
 264 : C      
 265 : C**** Lecture du CHPOINT CHPO4
 266 : C
 267 :       MTYPR = 'CHPOINT'
 267 :       CALL LIROBJ(MTYPR,IRYH2O,ICOND,IRETOU)
 268 :       IF(IERR .NE. 0)GOTO 9999
 269 : C
 270 : C**** Control du CHPOINT
 271 : C     
 272 :       INDIC = 1
 273 :       NBCOMP = 1
 274 :       NOMTOT(1) = 'H2O '
 274 :       CALL QUEPOI(IRYH2O, ICEN, INDIC, NBCOMP, NOMTOT)
 275 :       IF(IERR .NE. 0)THEN
 276 :          IERR0 = IERR
 277 : 
 278 : C
 279 : C******** Message d'erreur standard
 280 : C        -301 0 %m1:40
 281 : C
 282 :          MOTERR = 'CHPO4 = ???                             '
 282 :          CALL ERREUR(-301)         
 283 :          GOTO 9999
 284 :       ENDIF  
 285 : C      
 286 : C**** Lecture du CHPOINT CHPO5
 287 : C
 288 :       MTYPR = 'CHPOINT'
 288 :       CALL LIROBJ(MTYPR,ITEMP,ICOND,IRETOU)
 289 :       IF(IERR .NE. 0)GOTO 9999
 290 : C
 291 : C**** Control du CHPOINT
 292 : C     
 293 :       INDIC = 1
 294 :       NBCOMP = 1
 295 :       NOMTOT(1) = 'SCAL'
 295 :       CALL QUEPOI(ITEMP, ICEN, INDIC, NBCOMP, NOMTOT)
 296 :       IF(IERR .NE. 0)THEN
 297 :          IERR0 = IERR
 298 : 
 299 : C
 300 : C******** Message d'erreur standard
 301 : C        -301 0 %m1:40
 302 : C
 303 :          MOTERR = 'CHPO5 = ???                             '
 303 :          CALL ERREUR(-301)         
 304 : 
 305 :          GOTO 9999
 306 :       ENDIF  
 307 : C
 308 : C**** On defini les CHPOINTs de sortie et on active les MPOVALs
 309 : C     des CHPOINTs en entre
 310 : C
 311 : C     DE
 312 : C
 313 :       NC = 1
 314 :       N = NCEN
 315 :       SEGINI, DE 
 316 : C
 317 : C     DE initialise a 0.0D0
 318 : C     N.B.: MSOUPO, MCHPOI sont relatif a ITSEUI
 319 : C
 320 :       SEGINI, MSOUP1 = MSOUPO
 321 :       MSOUP1.IPOVAL = DE
 322 :       SEGDES MSOUP1
 323 :       SEGINI, MCHPO1 = MCHPOI
 324 :       MCHPO1.IPCHP(1) = MSOUP1
 325 :       MCHPO1.MOCHDE(1:40) = '                                        '
 326 :       MCHPO1.MOCHDE(41:72) = '                                '
 327 :       SEGDES MCHPO1
 328 :       IDE = MCHPO1
 329 : C
 330 : C     NRYH2
 331 : C
 332 :       MCHPOI = IRYH2
 333 :       SEGACT MCHPOI
 334 :       MSOUPO = MCHPOI.IPCHP(1)
 335 :       SEGACT MSOUPO
 336 :       RYH2 = MSOUPO.IPOVAL
 337 :       SEGINI, NRYH2 = RYH2
 338 :       SEGINI, MSOUP1 = MSOUPO
 339 :       MSOUP1.IPOVAL = NRYH2
 340 :       SEGDES MSOUP1
 341 :       SEGINI, MCHPO1 = MCHPOI
 342 :       MCHPO1.IPCHP(1) = MSOUP1
 343 :       MCHPO1.MOCHDE(1:40) = '                                        '
 344 :       MCHPO1.MOCHDE(41:72) = '                                '
 345 :       SEGDES MCHPO1
 346 :       INH2 = MCHPO1
 347 : C
 348 : C     NRYO2
 349 : C
 350 :       MCHPOI = IRYO2
 351 :       SEGACT MCHPOI
 352 :       MSOUPO = MCHPOI.IPCHP(1)
 353 :       SEGACT MSOUPO
 354 :       RYO2 = MSOUPO.IPOVAL
 355 :       SEGINI, NRYO2 = RYO2
 356 :       SEGINI, MSOUP1 = MSOUPO
 357 :       MSOUP1.IPOVAL = NRYO2
 358 :       SEGDES MSOUP1
 359 :       SEGINI, MCHPO1 = MCHPOI
 360 :       MCHPO1.IPCHP(1) = MSOUP1
 361 :       MCHPO1.MOCHDE(1:40) = '                                        '
 362 :       MCHPO1.MOCHDE(41:72) = '                                '
 363 :       SEGDES MCHPO1
 364 :       INO2 = MCHPO1
 365 : C
 366 : C     NRYH2O
 367 : C
 368 :       MCHPOI = IRYH2O
 369 :       SEGACT MCHPOI
 370 :       MSOUPO = MCHPOI.IPCHP(1)
 371 :       SEGACT MSOUPO
 372 :       RYH2O = MSOUPO.IPOVAL
 373 :       SEGINI, NRYH2O = RYH2O
 374 :       SEGINI, MSOUP1 = MSOUPO
 375 :       MSOUP1.IPOVAL = NRYH2O
 376 :       SEGDES MSOUP1
 377 :       SEGINI, MCHPO1 = MCHPOI
 378 :       MCHPO1.IPCHP(1) = MSOUP1
 379 :       MCHPO1.MOCHDE(1:40) = '                                        '
 380 :       MCHPO1.MOCHDE(41:72) = '                                '
 381 :       SEGDES MCHPO1
 382 :       INH2O = MCHPO1
 383 : C
 384 : C     TEMP
 385 : C
 386 :       MCHPOI = ITEMP
 387 :       SEGACT MCHPOI
 388 :       MSOUPO = MCHPOI.IPCHP(1)
 389 :       SEGDES MCHPOI
 390 :       SEGACT MSOUPO
 391 :       TEMP = MSOUPO.IPOVAL
 392 :       SEGDES MSOUPO
 393 :       SEGACT TEMP
 394 : C
 395 :       SEGACT RYH2, RYO2, RYH2O, TSEUIL
 396 : C
 396 :       CALL FLAMA1(NCEN,TSEUIL.VPOCHA,H0H2,H0O2,H0H2O,
 397 :      &            TEMP.VPOCHA, RYH2.VPOCHA, RYO2.VPOCHA, RYH2O.VPOCHA,
 398 :      &            DE.VPOCHA, NRYH2.VPOCHA, NRYO2.VPOCHA, NRYH2O.VPOCHA,
 399 :      &            LOGNEG, MESERR, VALER)
 400 : C
 401 :       IF(LOGNEG)THEN
 402 : C
 403 : C******* Temperature ou densite' negative
 404 : C
 405 : C
 406 : C******* Message d'erreur standard
 407 : C        41 2
 408 : C        %m1:8 = %r1 inférieur à %r2
 409 : C
 410 :          MOTERR(1:8) = MESERR(1:8)
 411 :          REAERR(1) = REAL(VALER)
 412 :          REAERR(2) = 0.0
 412 :          CALL ERREUR(41)
 413 :          GOTO 9999
 414 :       ENDIF
 415 : C
 416 :       SEGDES, TSEUIL, TEMP, RYH2, RYO2, RYH2O, DE, NRYH2, NRYO2, NRYH2O
 417 : C
 418 : C**** Ecriture du CHPOINT contenant IDE (dernier), INH2O, INO2, INH2
 419 : C
 419 :       CALL ECROBJ('CHPOINT',IDE)
 419 :       CALL ECROBJ('CHPOINT',INH2O)
 419 :       CALL ECROBJ('CHPOINT',INO2)
 419 :       CALL ECROBJ('CHPOINT',INH2)
 420 : C
 421 :  9999 CONTINUE
 422 : C      
 423 :       RETURN                                                                    
 424 :       END
 425 : 
 426 : 
 427 : 
 428 :  
 429 :  
 430 :  
 431 :  
 432 :  
 433 :  
 434 :  

© Cast3M 2003 - All rights reserved.
Disclaimer