c@a
c@versb
C-----------------------------------------------------------------------
C
CVERS                  Code_Saturne version 1.3
C                      ------------------------
C
C     This file is part of the Code_Saturne Kernel, element of the
C     Code_Saturne CFD tool.
C
C     Copyright (C) 1998-2008 EDF S.A., France
C
C     contact: saturne-support@edf.fr
C
C     The Code_Saturne Kernel is free software; you can redistribute it
C     and/or modify it under the terms of the GNU General Public License
C     as published by the Free Software Foundation; either version 2 of
C     the License, or (at your option) any later version.
C
C     The Code_Saturne Kernel is distributed in the hope that it will be
C     useful, but WITHOUT ANY WARRANTY; without even the implied warranty
C     of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
C     GNU General Public License for more details.
C
C     You should have received a copy of the GNU General Public License
C     along with the Code_Saturne Kernel; if not, write to the
C     Free Software Foundation, Inc.,
C     51 Franklin St, Fifth Floor,
C     Boston, MA  02110-1301  USA
C
C-----------------------------------------------------------------------
c@verse
                        SUBROUTINE CPLPH1
C                       *****************
C     -------------------------------------------------------------
     & ( IDBIA0 , IDBRA0 ,
     &   NCELET , NCEL   ,
     &   NITBCP , NRTBCP , NITBMC , NRTBMC , NITBWO , NRTBWO ,
     &   F1M    , F2M    , F3M    , F4M    , F3P2M  , F4P2M  ,
     &   ENTH   ,
     &   RTP    , PROPCE , ROM1   ,
     &   ITBCP  , RTBCP  ,
     &   ITBMC  , RTBMC  ,
     &   ITBWO  , RTBWO   )
C     -------------------------------------------------------------
C***********************************************************************
C FONCTION :
C --------
c@foncb
CFONC
CFONC    SOUS-PROGRAMME DU MODULE LAGRANGIEN COUPLE CHARBON PULVERISE :
CFONC    --------------------------------------------------------------
CFONC
CFONC     ROUTINE UTILISATEUR POUR PHYSIQUE PARTICULIERE
CFONC
CFONC       COMBUSTION EULERIENNE DE CHARBON PULVERISE ET
CFONC       TRANSPORT LAGRANGIEN DES PARTICULES DE CHARBON
CFONC
CFONC CALCUL DES PROPRIETES PHYSIQUES DE LA PHASE GAZEUSE
CFONC   VALEURS CELLULES
CFONC   ----------------
CFONC   TEMPERATURE, MASSE VOLUMIQUE ET CONCENTRATIONS MOYENNES
CFONC   (UTILISATION D'UNE PDF RECTANGLE-DIRAC)
CFONC
CFONC
CFONC      CLONE DE CPPHY1
CFONC
CFONC
CFONC  REACTIONS HETEROGENES
CFONC    - Pyrolyse
CFONC      Composition elementaire de la mole de matieres volatiles
CFONC      Le charbon reactif s'ecrit C(1)H(ALPHA)O(BETA)
CFONC
CFONC        -(k1)-> ALPHA/4 CH4  + BETA CO + (1-ALPHA/4-BETA)    Coke
CFONC      Charbon reactif
CFONC        -(k2)-> ALPHA/Y CXHY + BETA CO + (1-ALPHA/RYSX-BETA) Coke
CFONC
CFONC        Avec RYSX = Y/X
CFONC
CFONC    - Combustion heterogene
CFONC
CFONC      Coke + 1/2 (O2 + XSI N2) -> CO + XSI/2 N2
CFONC
CFONC    - Reactions en phase gaz
CFONC
CFONC (4/(4-RYSX)) CH4 + (O2 + XSI N2)   -(1)->  4/X/(4-RYSX)*CXHY + 2 H2O
CFONC                                            + XSI N2
CFONC CXHY + X/4*(2+RYSX) (O2 + XSI N2)  -(2)->  X CO + Y/2 H2O
CFONC                                            + X/4*(2+RYSX)*XSI N2
CFONC            CO + 1/2 (O2 + XSI N2)  -(3)->  CO2 + XSI/2 N2
CFONC
CFONC CHOIX DES VARIABLES
CFONC
CFONC   F1 est la fractions massique des matieres volatiles : CH4  + CO
CFONC   F2 est la fractions massique des matieres volatiles : CXHY + CO
CFONC   F3 est la fraction massique de carbone venant de la combustion
CFONC     heterogene
CFONC
CFONC   Soit Y les fractions massiques et Z les concentrations (moles/kg)
CFONC     indice f avant reaction, b final
CFONC
CFONC PDF CONJOINTE DEGENERE EN UNE PDF 1D DE TYPE RECTANGLE - DIRAC
CFONC
c@fonce
C                             ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
CARGU ! IDBIA0       ! E  !  -> ! NUMERO DE LA 1ERE CASE LIBRE DANS IA !
CARGU ! IDBRA0       ! E  !  -> ! NUMERO DE LA 1ERE CASE LIBRE DANS RA !
CARGU ! NCELET       ! E  !  -> ! NOMBRE D'ELEMENTS HALO COMPRIS       !
CARGU ! NCEL         ! E  !  -> ! NOMBRE D'ELEMENTS ACTIFS             !
CARGU ! NITBCP       ! E  !  -> ! TAILLE DU MACRO TABLEAU CP ENTIERS   !
CARGU ! NRTBCP       ! E  !  -> ! TAILLE DU MACRO TABLEAU CP REELS     !
CARGU ! NITBMC       ! E  !  -> ! TAILLE DU MACRO TABLEAU MC ENTIERS   !
CARGU ! NRTBMC       ! E  !  -> ! TAILLE DU MACRO TABLEAU MC REELS     !
CARGU ! NITBWO       ! E  !  -> ! TAILLE DU MACRO TABLEAU WORK ENTIERS !
CARGU ! NRTBWO       ! E  !  -> ! TAILLE DU MACRO TABLEAU WORK REELS   !
CARGU ! PA           ! TR !  -> ! PRESSION ABSOLUE EN PASCALS          !
CARGU ! F1M          ! TR !  -> ! MOYENNE DU TRACEUR 1 MVl [CHx1+CO]   !
CARGU ! F2M          ! TR !  -> ! MOYENNE DU TRACEUR 2 MVL [CHx2+CO]   !
CARGU ! F3M          ! TR !  -> ! MOYENNE DU TRACEUR 3 (CO C.HET)      !
CARGU ! F4M          ! TR !  -> ! MOYENNE DU TRACEUR 4 (AIR)           !
CARGU ! F3P2M        ! TR !  -> ! VARIANCE DU TRACEUR 3 (CO C.HET)     !
CARGU ! F4P2M        ! TR !  -> ! VARIANCE DU TRACEUR 4 (AIR)          !
CARGU ! ENTH         ! TR !  -> ! ENTHALPIE EN J/KG  SOIT DU GAZ       !
CARGU !              !    !     !                    SOIT DU MELANGE   !
CARGU ! RTP          ! TR !  -> ! VARIABLES DE CALCUL AU CENTRE DES    !
CARGU ! (NCELET,*)   !    !     !    CELLULES (INSTANT COURANT)        !
CARGU ! PROPCE       ! TR ! <-> ! PROPRIETES PHYSIQUES AU CENTRE DES   !
CARGU ! (NCELET,*)   !    !     !    CELLULES                          !
CARGU ! ITBCP        ! TR ! <-> ! MACRO TABLEAU ENTIER CP TRAVAIL      !
CARGU ! RTBCP        ! TR ! <-> ! MACRO TABLEAU REEL   CP TRAVAIL      !
CARGU ! ITBMC        ! TR ! <-> ! MACRO TABLEAU ENTIER MC TRAVAIL      !
CARGU ! RTBMC        ! TR ! <-> ! MACRO TABLEAU REEL   MC TRAVAIL      !
CARGU ! ITBWO        ! TR ! <-> ! MACRO TABLEAU ENTIER TRAVAIL         !
CARGU ! RTBWO        ! TR ! <-> ! MACRO TABLEAU REEL   TRAVAIL         !
CARGU !______________!____!_____!______________________________________!
c@argue
C
c@commb
CCOMM                             COMMONS
CCOMM .______________.____._____.______________________________________.
CCOMM !    NOM       !TYPE!MODE !                   ROLE               !
CCOMM !______________!____!_____!______________________________________!
CCOMM !______________!____!_____!______________________________________!
c@comme
C
C     TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
C            L (LOGIQUE)   .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
C     MODE : -> DONNEE, <- RESULTAT, <-> DONNEE MODIFIEE,
C            - TABLEAU DE TRAVAIL
C***********************************************************************
C
      IMPLICIT NONE
C
C***********************************************************************
C     DONNEES EN COMMON
C***********************************************************************
C
      INCLUDE "paramx.h"
      INCLUDE "numvar.h"
      INCLUDE "optcal.h"
      INCLUDE "cstphy.h"
      INCLUDE "cstnum.h"
      INCLUDE "entsor.h"
      INCLUDE "ppppar.h"
      INCLUDE "ppthch.h"
      INCLUDE "coincl.h"
      INCLUDE "cpincl.h"
      INCLUDE "ppincl.h"
C
C***********************************************************************
C
C ARGUMENTS
C
      INTEGER          IDBIA0 , IDBRA0
      INTEGER          NCELET , NCEL
      INTEGER          NITBCP , NRTBCP
      INTEGER          NITBMC , NRTBMC
      INTEGER          NITBWO , NRTBWO
      INTEGER          ITBCP(NCELET,NITBCP)
      INTEGER          ITBMC(NCELET,NITBMC)
      INTEGER          ITBWO(NCELET,NITBWO)
C
      DOUBLE PRECISION F1M(NCELET), F2M(NCELET)
      DOUBLE PRECISION F3M(NCELET), F4M(NCELET)
      DOUBLE PRECISION F3P2M(NCELET), F4P2M(NCELET)
      DOUBLE PRECISION ENTH(NCELET), ROM1(NCELET)

      DOUBLE PRECISION RTP(NCELET,*), PROPCE(NCELET,*)
      DOUBLE PRECISION RTBCP(NCELET,NRTBCP)
      DOUBLE PRECISION RTBMC(NCELET,NRTBMC)
      DOUBLE PRECISION RTBWO(NCELET,NRTBWO)
C
C VARIABLES LOCALES
C
      INTEGER          IDEBIA , IDEBRA
      INTEGER          IEL    , IPHAS  , ICE
      INTEGER          IITBCP , IITBMC , IITBWO
      INTEGER          IPCTE1
      INTEGER          IPCYF1 , IPCYF2 , IPCYF3 , IPCYOX
      INTEGER          IPCYP1 , IPCYP2 , IPCYIN , IPCYCE
      DOUBLE PRECISION WMOLME , WMCHX1 , WMCHX2
C
C***********************************************************************
C
C=======================================================================
C 1. INITIALISATIONS
C=======================================================================
C
C --- Initialisation memoire
C
      IDEBIA = IDBIA0
      IDEBRA = IDBRA0
C
C --- Initialisation des tableaux d'entiers de travail
C
      DO IEL = 1, NCEL
        DO IITBCP = 1, NITBCP
          ITBCP(IEL,IITBCP) = 0
        ENDDO
        DO IITBMC = 1, NITBMC
          ITBMC(IEL,IITBMC) = 0
        ENDDO
        DO IITBWO = 1, NITBWO
          ITBWO(IEL,IITBWO) = 0
        ENDDO
      ENDDO
C
C --- Initialisation des tableaux de reels de travail
C
      DO IEL = 1, NCEL
        DO IITBCP = 1, NRTBCP
          RTBCP(IEL,IITBCP) = ZERO
        ENDDO
        DO IITBMC = 1, NRTBMC
          RTBMC(IEL,IITBMC) = ZERO
        ENDDO
        DO IITBWO = 1, NRTBWO
          RTBWO(IEL,IITBWO) = ZERO
        ENDDO
      ENDDO
C
C
C=======================================================================
C 2. DETERMINATION DU TYPE DE PDF
C=======================================================================
C
C --> Determination du type de PDF
C
C ---- Reconstitution de 3 moyennes et de 1 variance
C
      CALL CPPDF4
C     ===========
     &( NCELET , NCEL   ,
     &  F1M    , F2M    , F3M    , F4M    , F4P2M  ,
     &  ITBCP(1,1) ,
C         INDPDF
     &  RTBCP(1,1) , RTBCP(1,2) , RTBCP(1,3) , RTBCP(1,4)  )
C         SI7          SI8          SP2M         F4I7
C
C
C=======================================================================
C 3. CALCUL DES PARAMETRES DE LA PDF CENTREE RECTANGLE - PICS DE DIRAC
C=======================================================================
C
      CALL CPPDFR
C     ===========
     & ( NCELET , NCEL   ,
     &   ITBCP(1,1) , RTBCP(1,1) , RTBCP(1,2) , RTBCP(1,3) ,
C          INTPDF       SI7          SI8          SP2M
     &   RTBCP(1,5) , RTBCP(1,6) , RTBCP(1,7) , RTBCP(1,8) ,
C          DSI7         DSI8         SDEB         SFIN
     &   RTBCP(1,9)  )
C          HAUT
C
C
C=======================================================================
C 4. CALCUL DES CONCENTRATIONS MOYENNES
C=======================================================================
C
C
      IPCYF1 = IPPROC(IYM1(ICHX1))
      IPCYF2 = IPPROC(IYM1(ICHX2))
      IPCYF3 = IPPROC(IYM1(ICO  ))
      IPCYOX = IPPROC(IYM1(IO2  ))
      IPCYP1 = IPPROC(IYM1(ICO2 ))
      IPCYP2 = IPPROC(IYM1(IH2O ))
      IPCYIN = IPPROC(IYM1(IN2  ))
C
      CALL CPLYM1
C     ===========
     & ( NCELET , NCEL   , NITBMC , NRTBMC ,
     &   RTP    ,
     &   F1M    , F2M    , F3M    , F4M    ,
     &   ITBCP(1,1) ,
C          INTPDF
     &   RTBCP(1,1) , RTBCP(1,2) , RTBCP(1,3) , RTBCP(1,4) ,
C          SI7          SI8          SP2M         F4I7
     &   RTBCP(1,5) , RTBCP(1,6) , RTBCP(1,7) , RTBCP(1,8) ,
C          DSI7         DSI8         SDEB         SFIN
     &   RTBCP(1,9) ,
C          HAUT
     &   PROPCE(1,IPCYF1) , PROPCE(1,IPCYF2) , PROPCE(1,IPCYF3) ,
     &   PROPCE(1,IPCYOX) , PROPCE(1,IPCYP1) , PROPCE(1,IPCYP2) ,
     &   PROPCE(1,IPCYIN) ,
     &   ITBMC      , RTBMC      ,
C          MACRO TABLEAU MULTI CHARBONS ENTIERS REELS
     &   ITBWO(1,1) ,
     &   RTBWO(1,1) , RTBWO(1,2) , RTBWO(1,3), RTBWO(1,4) )
C          TABLEAUX DE TRAVAIL
C
C IMPORTANT : Voir dams PPINI1 pour savoir comment est range RTBMC
C
C --> Clipping eventuel des fractions massiques
C
      DO IEL = 1, NCEL
        DO ICE = 1, (NGAZE-2*NCHARB)
          IPCYCE = IPPROC(IYM1(ICE))
          IF ( ABS(PROPCE(IEL,IPCYCE)).LT.EPSICP )
     &         PROPCE(IEL,IPCYCE) = ZERO
        ENDDO
      ENDDO
C
C
C=======================================================================
C 4. CALCUL DE LA TEMPERATURE ET DE LA MASSE VOLUMIQUE
C=======================================================================
C
      IPCTE1 = IPPROC(ITEMP1)
C
C  CALCUL DE LA TEMPERATURE DU GAZ
C     EN FONCTION DE L'ENTHALPIE DU GAZ ET DES CONCENTRATIONS
C
        CALL CPTEH1
C       ===========
     & ( NCELET , NCEL   , NITBMC , NRTBMC ,
     &   ENTH,
     &   PROPCE(1,IPCYF1), PROPCE(1,IPCYF2), PROPCE(1,IPCYF3),
     &   PROPCE(1,IPCYOX), PROPCE(1,IPCYP1), PROPCE(1,IPCYP2),
     &   PROPCE(1,IPCYIN),
     &   PROPCE(1,IPCTE1),
     &   ITBMC      , RTBMC      ,
C          MACRO TABLEAU MULTI CHARBONS ENTIERS REELS
     &   RTBWO(1,1) , RTBWO(1,2) )
C          TABLEAUX DE TRAVAIL
C
      IPHAS  = 1
      IPCTE1 = IPPROC(ITEMP1)
      DO IEL = 1, NCEL
        WMCHX1 = WMOLAT(IATC)+RTBMC(IEL,IX1MC)*WMOLAT(IATH)
        WMCHX2 = WMOLAT(IATC)+RTBMC(IEL,IX2MC)*WMOLAT(IATH)
        WMOLME = PROPCE(IEL,IPCYF1)/WMCHX1
     &         + PROPCE(IEL,IPCYF2)/WMCHX2
     &         + PROPCE(IEL,IPCYF3)/WMOLE(ICO )
     &         + PROPCE(IEL,IPCYOX)/WMOLE(IO2 )
     &         + PROPCE(IEL,IPCYP1)/WMOLE(ICO2)
     &         + PROPCE(IEL,IPCYP2)/WMOLE(IH2O)
     &         + PROPCE(IEL,IPCYIN)/WMOLE(IN2 )
C
C stockage de la masse molaire du melange
C
        PROPCE(IEL,IPPROC(IMMEL)) = 1.D0 / WMOLME
C
C ---- On ne met pas la pression mecanique RTP(IEL,IPR(IPHAS))
C      mais P0(IPHAS)
C
        ROM1(IEL) = P0(IPHAS)/(WMOLME*RR*PROPCE(IEL,IPCTE1))
      ENDDO
C
C
C=======================================================================
C
C--------
C FORMATS
C--------
C
C
C----
C FIN
C----
C
      RETURN
      END
c@z
