C FLAMB1    SOURCE    CHAT      05/01/13    00:03:21     5004
      SUBROUTINE FLAMB1(NC,DT,A,B,C,TA,TSEUIL,H0H2,H0O2,H0H2O,TEMP,
     &                  RYH2, RYO2, RYH2O,
     &                  DE, NRYH2, NRYO2, NRYH2O,
     &                  LOGNEG, MESERR, VALER)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  FLAMB1
C
C DESCRIPTION       :  voir  FLAMB
C
C                      Calculs
C
C LANGAGE           :  FORTRAN 77 (avec extensions F90)
C
C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/LTMF
C
C************************************************************************
C
C
C APPELES (E/S)     :  /
C
C APPELES (Calcul)  :  /
C
C
C************************************************************************
C
C ENTREES  :
C
C            NC = nombre de points centre
C
C            DT = interval de temps
C
C            A, B, C, TA = constantes de la cinetique chmimique (voir
C                           FLAMB)
C
C            TSEUIL(NC) = champ de la temperature de seuil
C
C            H0H2, H0O2, HOH2O = enthalpie de formation a 0K (J/kg)
C
C            TEMP(NC)  = champ de temperature
C
C            RYH2(NC)  = masse volumique d'hydrogene (initial)
C
C            RYO2(NC)  = masse volumique d'oxygene
C
C            RYH2O(NC) = masse volumique d'eau
C
C SORTIES  :
C
C            DE(NC) = variation d'energie thermique a suite de la reaction
C
C            NRYH2(NC)  = masse volumique d'hydrogene (final)
C
C            NRYO2(NC)  = masse volumique d'oxygene
C
C            NRYH2O(NC) = masse volumique d'eau
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créée le 25.2.99
C
C************************************************************************
C
C
C**** Les variables
C
      IMPLICIT INTEGER(I-N)
      INTEGER I1, NC
      REAL*8 MH2,MO2,MH2O,DT, A, B, C, TA, H0H2, H0O2, H0H2O, VALER
     &       ,TSEUIL(NC),RYH2(NC),RYO2(NC),RYH2O(NC), DE(NC)
     &       ,NRYH2(NC),NRYO2(NC),NRYH2O(NC), TEMP(NC)
     &       ,TEMP0, TSEU0, RYH2I, RYO2I, RYH2OI
     &       ,XH2, XO2, LAMBDA, CELL, DRYH2, DRYO2, DRYH2O, DMOL
      CHARACTER*(8) MESERR
      LOGICAL LOGNEG
      PARAMETER(MH2=2.016D-3,MO2=31.998D-3,MH2O=18.015D-3)
C
      DO I1 = 1, NC
         TEMP0 = TEMP(I1)
         TSEU0 = TSEUIL(I1)
         RYH2I = RYH2(I1)
         RYO2I = RYO2(I1)
         RYH2OI = RYH2O(I1)
         IF(RYH2I .LT. 0.0D0)THEN
            LOGNEG = .TRUE.
            VALER = RYH2I
            MESERR = 'RYH2    '
            GOTO 9999
         ENDIF
         IF(RYO2I .LT. 0.0D0)THEN
            LOGNEG = .TRUE.
            VALER = RYO2I
            MESERR = 'RYO2    '
            GOTO 9999
         ENDIF
         IF(RYH2OI .LT. 0.0D0)THEN
            LOGNEG = .TRUE.
            VALER = RYH2OI
            MESERR = 'RYH2O   '
            GOTO 9999
         ENDIF
         IF(TEMP0 .GE. TSEU0)THEN
C
C********** A la recherche de l'espece majortitaire
C
C           XH2 = mole / m^3 d'H2
C
            XH2 = RYH2I / MH2
            XO2 = RYO2I / MO2
            IF(XH2 .GE. (2.0D0 * XO2))THEN
C
C           H2 majoritaire -> on integre O2
C
               LAMBDA = EXP(-1.0D0*TA/TEMP0)
               LAMBDA = LAMBDA * (TEMP0 ** (-1.0D0*B))
               LAMBDA = LAMBDA * (RYH2I ** C)
               LAMBDA = LAMBDA * MO2 * A
               CELL = RYO2I / (1.0D0 + (LAMBDA * DT))
               DRYO2 = CELL - RYO2I
               DMOL = DRYO2 / MO2
               DRYH2 = 2.0D0 * DMOL * MH2
               DRYH2O = -2.0D0 * DMOL * MH2O
               NRYO2(I1) = CELL
               NRYH2(I1) = RYH2I + DRYH2
               NRYH2O(I1) = RYH2OI + DRYH2O

            ELSE
C
C           O2 majoritaire -> On integre H2
C
               LAMBDA = EXP(-1.0D0*TA/TEMP0)
               LAMBDA = LAMBDA * (TEMP0 ** (-1.0D0*B))
               LAMBDA = LAMBDA * (RYH2I ** (C-1.0D0)) * RYO2I
               LAMBDA = 2.0D0 * LAMBDA * MH2 * A
               CELL = RYH2I / (1.0D0 + (LAMBDA * DT))
               DRYH2 = CELL - RYH2I
               DMOL = DRYH2 / MH2 / 2.0D0
               DRYO2 = DMOL * MO2
               DRYH2O = -2.0D0 * DMOL * MH2O
               NRYH2(I1) = CELL
               NRYO2(I1) = RYO2I + DRYO2
               NRYH2O(I1) = RYH2OI + DRYH2O
            ENDIF
            DE(I1) = (DRYH2 * H0H2) + (DRYO2 * H0O2) + (DRYH2O * H0H2O)
            DE(I1) = -1.0D0 * DE(I1)
         ENDIF
      ENDDO
C
 9999 CONTINUE
C
      RETURN
      END








