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 CPLIN1
C                       *****************
C     -------------------------------------------------------------
C     -------------------------------------------------------------
C***********************************************************************
C  FONCTION  :
C  ---------
c@foncb
CFONC
CFONC    SOUS-PROGRAMME DU MODULE LAGRANGIEN COUPLE CHARBON PULVERISE :
CFONC    --------------------------------------------------------------
CFONC
CFONC       COMBUSTION EULERIENNE DE CHARBON PULVERISE ET
CFONC       TRANSPORT LAGRANGIEN DES PARTICULES DE CHARBON
CFONC
CFONC        INIT DES OPTIONS DES VARIABLES TRANSPORTEES
CFONC                      ET DES VARIABLES ALGEBRIQUES
CFONC
c@fonce
C-----------------------------------------------------------------------
C                             ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
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***********************************************************************

      INTEGER          IPP , II , JJ , IOK
      INTEGER          ICHA , ISC , IS, IPHAS
      DOUBLE PRECISION WMOLME
C
C***********************************************************************
C
C=======================================================================
C 0. VERIFICATION ISCALT, ISCSTH
C=======================================================================
C     L'utilisateur ne doit pas y avoir touche.
C
      DO IPHAS = 1, NPHAS
        IF(ISCALT(IPHAS).NE.-1) THEN
          WRITE(NFECRA,1000)IPHAS,ISCALT(IPHAS)
          CALL CSEXIT (1)
C         ===========
        ENDIF
      ENDDO
      DO II = 1, NSCAPP
        IF(ISCSTH(ISCAPP(II)).NE.-10) THEN
          WRITE(NFECRA,1001)II,ISCAPP(II),ISCAPP(II),ISCSTH(ISCAPP(II))
          CALL CSEXIT (1)
C         ===========
        ENDIF
      ENDDO
C
C=======================================================================
C 1. VARIABLES TRANSPORTEES
C=======================================================================
C
C --> Definition des scamin et des scamax des variables transportees
C
C ---- Variables euleriennes transportees dont les termes sources
C      sont alimentes par le module Langrangien
C
      SCAMIN(IHM)   = -GRAND
      SCAMAX(IHM)   = +GRAND
C
      DO ICHA = 1, NCHARB
C
        SCAMIN(IF1M(ICHA)) = 0.D0
        SCAMAX(IF1M(ICHA)) = 1.D0
C
        SCAMIN(IF2M(ICHA)) = 0.D0
        SCAMAX(IF2M(ICHA)) = 1.D0
C
      ENDDO
C
      SCAMIN(IF3M) = 0.D0
      SCAMAX(IF3M) = 1.D0
C
      SCAMIN(IF4P2M) = 0.D0
      SCAMAX(IF4P2M) = 0.25D0
C
C
C --> Nature des scalaires transportes
C
      DO ISC = 1, NSCAPP
C
C ---- Type de scalaire (0 passif, 1 temperature en K
C                                 -1 temperature en C
C                                  2 enthalpie)
C      La distinction -1/1 sert pour le rayonnement
        ISCSTH(ISCAPP(ISC)) = 0
C
      ENDDO
C
C
C ---- On resout en enthalpie avec un CP constant (Cf. cpvarp)
C
      IPHAS = IPHSCA(IHM)
      ISCALT(IPHAS) = IHM
      ISCSTH(IHM) = 2
C
C --> Donnees physiques ou numeriques propres aux scalaires CP
C
      DO ISC = 1, NSCAPP
C
        JJ = ISCAPP(ISC)
C
        IF ( ISCAVR(JJ).LE.0 ) THEN
C
C        En combustion on considere que la viscosite turbulente domine
C        ON S'INTERDIT DONC LE CALCUL DES FLAMMES LAMINAIRES AVEC Le =/= 1
C
          VISLS0(JJ) = VISCL0(IPHSCA(JJ))
C
        ENDIF
C
C ------ Schmidt ou Prandtl turbulent
C
        SIGMAS(JJ) = 0.7D0
C
C ------ Coeff dissipation des fluctuations
C
        RVARFL(JJ) = 0.8D0
C
        II = ISCA(ISCAPP(ISC))
C
C ------ Niveau de detail des impressions pour les variables et
C          donc les scalaires (valeurs 0 ou 1)
C          Si = -10000 non modifie par l'utilisateur -> niveau 1
        IF(IWARNI(II).EQ.-10000) THEN
          IWARNI(II) = 1
        ENDIF
C
C ------ Informations relatives a la resolution des scalaires
C
C         - Facteur multiplicatif du pas de temps
        CDTVAR(II) = 1.D0
C
C         - Schema convectif % schema 2ieme ordre
C           = 0 : upwind
C           = 1 : second ordre
        BLENCV(II) = 0.D0
C
C         - Type de schema convetif second ordre (utile si BLENCV > 0)
C           = 0 : Second Order Linear Upwind
C           = 1 : Centre
        ISCHCV(II) = 1
C
C         - Test de pente pour basculer d'un schema centre vers l'upwind
C           = 0 : utlisation automatique du test de pente
C           = 1 : calcul sans test de pente
        ISSTPC(II) = 0
C
C         - Reconstruction des flux de convetion et de diffusion aux faces
C           = 0 : pas de reconstruction
        IRCFLU(II) = 0
C
      ENDDO
C
C
C---> Variable courante : nom, sortie chrono, suivi listing, sortie histo
C
C     Comme pour les autres variables,
C       si l'on n'affecte pas les tableaux suivants,
C       les valeurs par defaut seront utilisees
C
C     NOMVAR( ) = nom de la variable
C     ICHRVR( ) = sortie chono (oui 1/non 0)
C     ILISVR( ) = suivi listing (oui 1/non 0)
C     IHISVR( ) = sortie historique (nombre de sondes et numeros)
C     si IHISVR(.,1)  = -1 sortie sur toutes les sondes
C
C     NB : Les 8 premiers caracteres du noms seront repris dans le
C          listing 'developpeur'
C
C
C ---- Variables propres a la suspension gaz - particules
C
      IPP = IPPRTP(ISCA(IHM))
      NOMVAR(IPP)  = 'Enthalpy'
      ICHRVR(IPP)  = 1
      ILISVR(IPP)  = 1
      IHISVR(IPP,1)= -1
C
      DO ICHA = 1, NCHARB
C
        IPP = IPPRTP(ISCA(IF1M(ICHA)))
        WRITE(NOMVAR(IPP),'(A6,I2.2)')'Fr_MV1' ,ICHA
        ICHRVR(IPP)  = 1
        ILISVR(IPP)  = 1
        IHISVR(IPP,1)= -1
C
        IPP = IPPRTP(ISCA(IF2M(ICHA)))
        WRITE(NOMVAR(IPP),'(A6,I2.2)')'Fr_MV2' ,ICHA
        ICHRVR(IPP)  = 1
        ILISVR(IPP)  = 1
        IHISVR(IPP,1)= -1
C
      ENDDO
C
      IPP = IPPRTP(ISCA(IF3M))
      NOMVAR(IPP)  = 'Fr_HET'
      ICHRVR(IPP)  = 1
      ILISVR(IPP)  = 1
      IHISVR(IPP,1)= -1
C
      IPP = IPPRTP(ISCA(IF4P2M))
      NOMVAR(IPP)  = 'Var_AIR'
      ICHRVR(IPP)  = 1
      ILISVR(IPP)  = 1
      IHISVR(IPP,1)= -1
C
C=======================================================================
C 2. VARIABLES ALGEBRIQUES OU D'ETAT
C=======================================================================
C
C
C ---> Variables algebriques propres a la suspension gaz - particules
C
      IPP = IPPPRO(IPPROC(IMMEL))
      NOMVAR(IPP)   = 'XM'
      ICHRVR(IPP)   = 0
      ILISVR(IPP)   = 0
      IHISVR(IPP,1) = -1
C
C ---> Variables algebriques propres a la phase continue
C
      IPP = IPPPRO(IPPROC(ITEMP1))
      NOMVAR(IPP)   = 'Temp_GAZ'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IROM1))
      NOMVAR(IPP)   = 'ROM_GAZ'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(1)))
      NOMVAR(IPP)   = 'YM_CHx1m'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(2)))
      NOMVAR(IPP)   = 'YM_CHx2m'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(3)))
      NOMVAR(IPP)   = 'YM_CO'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(4)))
      NOMVAR(IPP)   = 'YM_O2'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(5)))
      NOMVAR(IPP)   = 'YM_CO2'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(6)))
      NOMVAR(IPP)   = 'YM_H2O'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
      IPP = IPPPRO(IPPROC(IYM1(7)))
      NOMVAR(IPP)   = 'YM_N2'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
C
C ---> Rayonnement
C
      IPP = IPPPRO(IPPROC(ILUMI))
      NOMVAR(IPP)   = 'IntLuminance_4PI'
      ICHRVR(IPP)   = 1
      ILISVR(IPP)   = 1
      IHISVR(IPP,1) = -1
C
C
C=======================================================================
C 3. INFORMATIONS COMPLEMENTAIRES
C=======================================================================
C
C ---> Definition des pointeurs du tableau TBMCR utilise dans cpphy1.F
C      et dans les sous-programmes appeles
C
      IS = 0
      DO ICHA = 1, NCHARB
        IS          = IS + 1
        IF1MC(ICHA) = IS
        IS          = IS + 1
        IF2MC(ICHA) = IS
      ENDDO
      IS      = IS + 1
      IX1MC   = IS
      IS      = IS + 1
      IX2MC   = IS
      IS      = IS + 1
      ICHX1F1 = IS
      IS      = IS + 1
      ICHX2F2 = IS
      IS      = IS + 1
      ICOF1   = IS
      IS      = IS + 1
      ICOF2   = IS
C
C ---> Initialisation
C
C ---- Calcul de RO0 a partir de T0 et P0
C        (loi des gaz parfaits appliquee a l'air)
C
      WMOLME = (WMOLE(IO2)+XSI*WMOLE(IN2)) / (1.D0+XSI)
      RO0(IPHAS) = P0(IPHAS)*WMOLME / (RR*T0(IPHAS))
C
C ---- Initialisation pour la masse volumique du coke
C
      DO ICHA = 1, NCHARB
        RHOCK(ICHA) = RHO0CH(ICHA)
      ENDDO
C
C On met SRROM et DIFTL0 a -GRAND pour forcer l'utilisateur a les
C definir dans cplin1
C ---> Coefficient de relaxation de la masse volumique
C      RHO(n+1) = SRROM * RHO(n) + (1-SRROM) * RHO(n+1)
      SRROM =-GRAND
C
C ---> Viscosite laminaire associee au scalaire enthalpie
C       DIFTL0 (diffusivite dynamique en kg/(m s))
      DIFTL0      = -GRAND
C
C ---> Masse volumique variable et viscosite constante (pour les suites)
      IROVAR(IPHAS) = 1
      IVIVAR(IPHAS) = 0
C
C=======================================================================
C 4. ON REDONNE LA MAIN A L'UTLISATEUR
C=======================================================================
C
      CALL USCPL1
C     ===========
C
C=======================================================================
C 5. VERIFICATION DES DONNERS FOURNIES PAR L'UTLISATEUR
C=======================================================================
C
      IOK = 0
      CALL CPLVER (IOK)
C     ===========
C
      IF(IOK.GT.0) THEN
        WRITE(NFECRA,9999)IOK
        CALL CSEXIT (1)
C       ===========
      ELSE
        WRITE(NFECRA,9998)
      ENDIF
C
C
 1000 FORMAT(
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES               ',/,
     &'@    *********                                               ',/,
     &'@    PHYSIQUE PARTICULIERE (C.P. COUPLE LAGRANGIEN) DEMANDEE ',/,
     &'@                                                            ',/,
     &'@  La valeur de ISCALT est renseignee automatiquement.       ',/,
     &'@                                                            ',/,
     &'@  L''utilisateur ne doit pas la renseigner dans usini1, or  ',/,
     &'@    elle a ete affectee comme suit :                        ',/,
     &'@    ISCALT(',I10   ,') = ',I10                               ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@  Verifier usini1.                                          ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 1001 FORMAT(
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES               ',/,
     &'@    *********                                               ',/,
     &'@    PHYSIQUE PARTICULIERE (C.P. COUPLE LAGRANGIEN) DEMANDEE ',/,
     &'@                                                            ',/,
     &'@  Les valeurs de ISCSTH sont renseignees automatiquement.   ',/,
     &'@                                                            ',/,
     &'@  L''utilisateur ne doit pas les renseigner dans usini1, or ',/,
     &'@    pour le scalaire ',I10   ,' correspondant au scalaire   ',/,
     &'@    physique particuliere ',I10   ,' on a                   ',/,
     &'@    ISCSTH(',I10   ,') = ',I10                               ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@  Verifier usini1.                                          ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 9998 FORMAT(
     &'                                                             ',/,
     &' Pas d erreur detectee lors de la verification des donnees   ',/,
     &'                                                    (uscpl1).',/)
 9999 FORMAT(
     &'@                                                            ',/,
     &'@                                                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES               ',/,
     &'@    *********                                               ',/,
     &'@    PHYSIQUE PARTICULIERE (C.P. COUPLE LAGRANGIEN) DEMANDEE ',/,
     &'@    LES PARAMETRES DE CALCUL SONT INCOHERENTS OU INCOMPLETS ',/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute (',I10,' erreurs).          ',/,
     &'@                                                            ',/,
     &'@  Se reporter aux impressions precedentes pour plus de      ',/,
     &'@    renseignements.                                         ',/,
     &'@  Verifier uscpl1.                                          ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
C
      RETURN
      END
c@z
