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 COPROP
C                       *****************
C     -------------------------------------------------------------
     & ( IPROPP , IPPPST )
C     -------------------------------------------------------------
C***********************************************************************
C  FONCTION  :
C  ---------
c@foncb
CFONC
CFONC      INIT DES POSITIONS DES VARIABLES D'ETAT POUR
CFONC               POUR LA COMBUSTION
CFONC         FLAMME DE DIFFUSION ET DE PREMELANGE
CFONC          (DANS VECTEURS PROPCE, PROPFA, PROPFB)
CFONC
c@fonce
C-----------------------------------------------------------------------
C                             ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
CARGU ! IPROPP       ! E  ! <-> ! NUMERO DE LA DERNIERE PROPRIETE      !
CARGU !              !    !     !  (LES PROPRIETES SONT DANS PROPCE,   !
CARGU !              !    !     !   PROPFA ou PRPFB)                   !
CARGU ! IPPPST       ! E  ! <-> ! POINTEUR INDIQUANT LE RANG DE LA     !
CARGU !              !    !     !  DERNIERE GRANDEUR DEFINIE AUX       !
CARGU !              !    !     !  CELLULES (RTP,PROPCE...) POUR LE    !
CARGU !              !    !     !  POST TRAITEMENT                     !
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 "dimens.h"
      INCLUDE "numvar.h"
      INCLUDE "optcal.h"
      INCLUDE "cstphy.h"
      INCLUDE "entsor.h"
      INCLUDE "cstnum.h"
      INCLUDE "ppppar.h"
      INCLUDE "ppthch.h"
      INCLUDE "coincl.h"
      INCLUDE "cpincl.h"
      INCLUDE "ppincl.h"
C
C***********************************************************************
C
C ARGUMENTS
C
      INTEGER       IPROPP, IPPPST
C
C VARIABLES LOCALES
C
      INTEGER       IPROP, ICG, IDIRAC
C
C***********************************************************************
C=======================================================================
C 1. POSITIONNEMENT DES PROPRIETES : PROPCE, PROPFA, PROPFB
C    Physique particuliere : Flamme de diffusion chimie 3 points
C=======================================================================
C
      IF ( IPPMOD(ICOD3P).GE.0 ) THEN
C
C ---> Definition des pointeurs relatifs aux variables d'etat
C
C
        IPROP = IPROPP
C
        IPROP  = IPROP + 1
        ITEMP  = IPROP
        DO ICG = 1, NGAZG
          IPROP    = IPROP + 1
          IYM(ICG) = IPROP
        ENDDO
        IF ( IPPMOD(ICOD3P).EQ.1 .AND. IRAYPP.GT.0 ) THEN
          IPROP = IPROP + 1
          ICKABS= IPROP
          IPROP = IPROP + 1
          IT4M  = IPROP
          IPROP = IPROP + 1
          IT3M  = IPROP
        ENDIF
C
C
C ----  Nb de variables algebriques (ou d'etat)
C         propre a la physique particuliere NSALPP
C         total NSALTO
C
        NSALPP = IPROP - IPROPP
        NSALTO = IPROP
C
C ----  On renvoie IPROPP au cas ou d'autres proprietes devraient
C         etre numerotees ensuite
C
        IPROPP = IPROP
C
C
C ---> Positionnement dans le tableau PROPCE
C      et reperage du rang pour le post-traitement
C
        IPROP                 = NPROCE
C
        IPROP                 = IPROP + 1
        IPPROC(ITEMP)         = IPROP
        IPPPST                = IPPPST + 1
        IPPPRO(IPROP)         = IPPPST
C
        DO ICG = 1, NGAZG
          IPROP                 = IPROP + 1
          IPPROC(IYM(ICG))      = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
        ENDDO
C
        IF ( IPPMOD(ICOD3P).EQ.1 .AND. IRAYPP.GT.0 ) THEN
C
          IPROP                 = IPROP + 1
          IPPROC(ICKABS)        = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT4M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT3M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
        ENDIF
C
        NPROCE = IPROP
C
C
C ---> Positionnement dans le tableau PROPFB
C      Au centre des faces de bord
C
        IPROP = NPROFB
        IF ( IPPMOD(ICOD3P).EQ.1 .AND. IRAYPP.GT.0 ) THEN
          DO ICG = 1, NGAZG
            IPROP            = IPROP + 1
            IPPROB(IYM(ICG)) = IPROP
          ENDDO
        ENDIF
        NPROFB = IPROP
C
C
C ---> Positionnement dans le tableau PROPFA
C      Au centre des faces internes (flux de masse)
C
       IPROP = NPROFA
C Exemple INUTILE DANS NOTRE CAS
C       IPROP         = IPROP + 1
C       IPPROF(ITEMP) = IPROP
       NPROFA = IPROP
C
       ENDIF
C
C
C
C=======================================================================
C 2. POSITIONNEMENT DES PROPRIETES : PROPCE, PROPFA, PROPFB
C    Physique particuliere : Flamme de diffusion chimie equilibre
C=======================================================================
C
C      IF ( LPP(IDEQA).OR.LPP(IDEQR) ) THEN
C      ENDIF
C
C
C
C=======================================================================
C 3. POSITIONNEMENT DES PROPRIETES : PROPCE, PROPFA, PROPFB
C    Physique particuliere : Flamme de premelange - Modele EBU
C=======================================================================
C
      IF ( IPPMOD(ICOEBU).GE.0 ) THEN
C
C ---> Definition des pointeurs relatifs aux variables d'etat
C
        IPROP = IPROPP
C
        IPROP  = IPROP + 1
        ITEMP  = IPROP
        DO ICG = 1, NGAZG
          IPROP    = IPROP + 1
          IYM(ICG) = IPROP
        ENDDO
        IF ( ( IPPMOD(ICOEBU).EQ.1 .OR. IPPMOD(ICOEBU).EQ.3 )
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
          IPROP = IPROP + 1
          ICKABS= IPROP
          IPROP = IPROP + 1
          IT4M  = IPROP
          IPROP = IPROP + 1
          IT3M  = IPROP
        ENDIF
C
C
C ----  Nb de variables algebriques (ou d'etat)
C         propre a la physique particuliere NSALPP
C         total NSALTO
C
        NSALPP = IPROP - IPROPP
        NSALTO = IPROP
C
C ----  On renvoie IPROPP au cas ou d'autres proprietes devraient
C         etre numerotees ensuite
C
        IPROPP = IPROP
C
C
C ---> Positionnement dans le tableau PROPCE
C      et reperage du rang pour le post-traitement
C
        IPROP         = NPROCE
C
        IPROP                 = IPROP + 1
        IPPROC(ITEMP)         = IPROP
        IPPPST                = IPPPST + 1
        IPPPRO(IPROP)         = IPPPST
C
        DO ICG = 1, NGAZG
          IPROP                 = IPROP + 1
          IPPROC(IYM(ICG))      = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
        ENDDO
C
        IF ( ( IPPMOD(ICOEBU).EQ.1 .OR. IPPMOD(ICOEBU).EQ.3 )
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
C
          IPROP                 = IPROP + 1
          IPPROC(ICKABS)        = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT4M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT3M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
        ENDIF
C
        NPROCE = IPROP
C
C
C ---> Positionnement dans le tableau PROPFB
C      Au centre des faces de bord
C
        IPROP = NPROFB
        IF ( ( IPPMOD(ICOEBU).EQ.1 .OR. IPPMOD(ICOEBU).EQ.3 )
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
          DO ICG = 1, NGAZG
            IPROP            = IPROP + 1
            IPPROB(IYM(ICG)) = IPROP
          ENDDO
        ENDIF
        NPROFB = IPROP
C
C
C ---> Positionnement dans le tableau PROPFA
C      Au centre des faces internes (flux de masse)
C
       IPROP = NPROFA
C Exemple INUTILE DANS NOTRE CAS
C       IPROP         = IPROP + 1
C       IPPROF(ITEMP) = IPROP
       NPROFA = IPROP
C
       ENDIF
C
C
C
C=======================================================================
C 4. POSITIONNEMENT DES PROPRIETES : PROPCE, PROPFA, PROPFB
C    Physique particuliere : Flamme de premelange - Modele BML
C=======================================================================
C
C      IF ( IPPMOD(ICOBML).GE.0 ) THEN
C      ENDIF
C
C
C
C=======================================================================
C 5. POSITIONNEMENT DES PROPRIETES : PROPCE, PROPFA, PROPFB
C    Physique particuliere : Flamme de premelange - Modele LWC
C=======================================================================
C
      IF ( IPPMOD(ICOLWC).GE.0 ) THEN
C
C ---> Definition des pointeurs relatifs aux variables d'etat
C
        IPROP = IPROPP
C
        IPROP  = IPROP + 1
        ITEMP  = IPROP
C
        IPROP  = IPROP + 1
        IMAM   = IPROP
C
        IPROP  = IPROP + 1
        ITSC   = IPROP
C
        DO ICG = 1, NGAZG
          IPROP    = IPROP + 1
          IYM(ICG) = IPROP
        ENDDO
C
        DO IDIRAC = 1, NDIRAC
C masse volumique Locale
          IPROP         = IPROP + 1
          IRHOL(IDIRAC) = IPROP
C Temperature L.
          IPROP         = IPROP + 1
          ITEML(IDIRAC) = IPROP
C Fraction de Melange L.
          IPROP         = IPROP + 1
          IFMEL(IDIRAC) = IPROP
C Fraction Massique L.
          IPROP         = IPROP + 1
          IFMAL(IDIRAC) = IPROP
C Amplitude L.
          IPROP         = IPROP + 1
          IAMPL(IDIRAC) = IPROP
C Terme Source Chimique L.
          IPROP         = IPROP + 1
          ITSCL(IDIRAC) = IPROP
C MAsse Molaire L.
          IPROP         = IPROP + 1
          IMAML(IDIRAC) = IPROP
        ENDDO
C
        IF ( ( IPPMOD(ICOLWC).EQ.1 .OR. IPPMOD(ICOLWC).EQ.3
     &                             .OR. IPPMOD(ICOLWC).EQ.5 )
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
          IPROP = IPROP + 1
          ICKABS= IPROP
          IPROP = IPROP + 1
          IT4M  = IPROP
          IPROP = IPROP + 1
          IT3M  = IPROP
        ENDIF
C
C ----  Nb de variables algebriques (ou d'etat)
C         propre a la physique particuliere NSALPP
C         total NSALTO
C
        NSALPP = IPROP - IPROPP
        NSALTO = IPROP
C
C
C ---> Positionnement dans le tableau PROPCE
C
        IPROP         = NPROCE
C
        IPROP         = IPROP + 1
        IPPROC(ITEMP) = IPROP
        IPPPST        = IPPPST + 1
        IPPPRO(IPROP) = IPPPST
C
        IPROP         = IPROP + 1
        IPPROC(IMAM)  = IPROP
        IPPPST        = IPPPST + 1
        IPPPRO(IPROP) = IPPPST
C
        IPROP         = IPROP + 1
        IPPROC(ITSC)  = IPROP
        IPPPST        = IPPPST + 1
        IPPPRO(IPROP) = IPPPST
C
        DO ICG = 1, NGAZG
          IPROP            = IPROP + 1
          IPPROC(IYM(ICG)) = IPROP
          IPPPST           = IPPPST + 1
          IPPPRO(IPROP)    = IPPPST
        ENDDO
C
        DO IDIRAC = 1, NDIRAC
          IPROP                 = IPROP + 1
          IPPROC(IRHOL(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(ITEML(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IFMEL(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IFMAL(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IAMPL(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(ITSCL(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IMAML(IDIRAC)) = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
        ENDDO
C
        IF ( ( IPPMOD(ICOLWC).EQ.1 .OR. IPPMOD(ICOLWC).EQ.3
     &                             .OR. IPPMOD(ICOLWC).EQ.5 )
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
C
          IPROP                 = IPROP + 1
          IPPROC(ICKABS)        = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT4M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
          IPROP                 = IPROP + 1
          IPPROC(IT3M)          = IPROP
          IPPPST                = IPPPST + 1
          IPPPRO(IPROP)         = IPPPST
C
        ENDIF
C
        NPROCE = IPROP
C
C
C ---> Positionnement dans le tableau PROPFB
C      Au centre des faces de bord
C
C
C
C ---> Positionnement dans le tableau PROPFB
C      Au centre des faces de bord
C
        IPROP = NPROFB
        IF ( ( IPPMOD(ICOLWC).EQ.1 .OR. IPPMOD(ICOLWC).EQ.3
     &                             .OR. IPPMOD(ICOLWC).EQ.5)
     &       .AND. ( IRAYPP.GE.1 )  ) THEN
          DO ICG = 1, NGAZG
            IPROP            = IPROP + 1
            IPPROB(IYM(ICG)) = IPROP
          ENDDO
        ENDIF
        NPROFB = IPROP
C
C ---> Positionnement dans le tableau PROPFA
C      Au centre des faces internes (flux de masse)
C
        IPROP = NPROFA
C Exemple INUTILE DANS NOTRE CAS
C       IPROP         = IPROP + 1
C       IPPROF(ITEMP) = IPROP
        NPROFA = IPROP
C
      ENDIF
C
C
      RETURN
C
      END
c@z
