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-2007 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 CPCYM1 C ***************** C ------------------------------------------------------------- & ( NCELET , NCEL , NITBMC , NRTBMC , & RTP , & F1M , F2M , F3M , F4M , & INDPDF , SI7 , SI8 , SP2M , F4I7 , & DSI7 , DSI8 , SDEB , SFIN , HAUT , & FUEL1 , FUEL2 , FUEL3 , OXYD , PROD1 , PROD2 , & XINER , & ITBMC , RTBMC , & IPI7I8 , & SP , SI , SR , W1 ) C ------------------------------------------------------------- C*********************************************************************** C FONCTION : C -------- c@foncb CFONC CFONC CALCUL DES CONCENTRATIONS GAZEUSES MOYENNES CFONC VALEURS CELLULES CFONC ---------------- CFONC c@fonce C ARGUMENTS c@argub CARGU .______________.____._____.______________________________________. CARGU ! NOM !TYPE!MODE ! ROLE ! CARGU !______________!____!_____!______________________________________! CARGU ! NCELET ! E ! -> ! NOMBRE D'ELEMENTS HALO COMPRIS ! CARGU ! NCEL ! E ! -> ! NOMBRE D'ELEMENTS ACTIFS ! CARGU ! NITBMC ! E ! -> ! TAILLE DU MACRO TABLEAU MC ENTIERS ! CARGU ! NRTBMC ! E ! -> ! TAILLE DU MACRO TABLEAU MC REELS ! CARGU ! RTP ! TR ! -> ! VARIABLES DE CALCUL AU CENTRE DES ! CARGU ! (NCELET,*) ! ! ! CELLULES (INSTANT COURANT) ! CARGU ! F1M ! TR ! -> ! MOYENNE DU TRACEUR 1 MVl [CHx1m+CO] ! CARGU ! F2M ! TR ! -> ! MOYENNE DU TRACEUR 2 MVL [CHx2m+CO] ! CARGU ! F3M ! TR ! -> ! MOYENNE DU TRACEUR 3 (CO C.HET) ! CARGU ! F4M ! TR ! -> ! MOYENNE DU TRACEUR 4 (AIR) ! CARGU ! INDPDF ! TE ! -> ! PASSAGE PAR LES PDF ! CARGU ! SI7 ! TR ! -> ! ABSCISSE CURVILIGNE AU POINT I7 ! CARGU ! SI8 ! TR ! -> ! ABSCISSE CURVILIGNE AU POINT I8 ! CARGU ! SP2M ! TR ! -> ! VARIANCE DROITE SUPPORT ! CARGU ! F4I7 ! TR ! -> ! F4 AU POINT I7 ! CARGU ! DSI7 ! TR ! -> ! DIRAC AU POINT I7 ! CARGU ! DSI8 ! TR ! -> ! DIRAC AU POINT I8 ! CARGU ! SDEB ! TR ! -> ! ABSCISSE DEBUT RECTANGLE ! CARGU ! SFIN ! TR ! -> ! ABSCISSE FIN RECTANGLE ! CARGU ! HREC ! TR ! -> ! HAUTEUR RECTANGLE ! CARGU ! FUEL1 ! TR ! <- ! FRACTION MASSIQUE CHx1m ! CARGU ! FUEL2 ! TR ! <- ! FRACTION MASSIQUE CHx2m ! CARGU ! FUEL3 ! TR ! <- ! FRACTION MASSIQUE CO ! CARGU ! OXYD ! TR ! <- ! FRACTION MASSIQUE O2 ! CARGU ! PROD1 ! TR ! <- ! FRACTION MASSIQUE CO2 ! CARGU ! PROD2 ! TR ! <- ! FRACTION MASSIQUE H2O ! CARGU ! XINER ! TR ! <- ! FRACTION MASSIQUE N2 ! CARGU ! ITBMC ! TR ! <-> ! MACRO TABLEAU ENTIER MC TRAVAIL ! CARGU ! RTBMC ! TR ! <-> ! MACRO TABLEAU REEL MC TRAVAIL ! CARGU ! IPI7I8 ! TE ! <-> ! POSITION DES POINTS I7 ET I8 DANS ! CARGU ! ! ! ! LES DIFFERENTS DOMAINES DE RICHESSE ! CARGU ! SP ! TR ! <-> ! DELIMITATION SUR LE SUPPORT DES ! CARGU ! ! ! ! DOMAINES PAUVRE ET INTERMEDIAIRE ! CARGU ! SI ! TR ! <-> ! DELIMITATION SUR LE SUPPORT DES ! CARGU ! ! ! ! DOMAINES INTERMEDIAIRE ET RICHE ! CARGU ! SR ! TR ! <-> ! DELIMITATION SUR LE SUPPORT DES ! CARGU ! ! ! ! DOMAINES RICHE ET HYPER-RICHE ! CARGU ! W1 ! TR ! <-> ! TABLEAU DE 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 (ALPHAMNUMERIQUE), 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 "parall.h" INCLUDE "pointe.h" INCLUDE "ppppar.h" INCLUDE "ppthch.h" INCLUDE "coincl.h" INCLUDE "cpincl.h" INCLUDE "ppincl.h" C C*********************************************************************** C C ARGUMENTS C INTEGER NCELET , NCEL INTEGER NITBMC , NRTBMC INTEGER ITBMC(NCELET,NITBMC) INTEGER INDPDF(NCELET) , IPI7I8(NCELET) C DOUBLE PRECISION RTP(NCELET,*) DOUBLE PRECISION F1M(NCELET) , F2M(NCELET) DOUBLE PRECISION F3M(NCELET) , F4M(NCELET) DOUBLE PRECISION DSI7(NCELET) , DSI8(NCELET) , SDEB(NCELET) DOUBLE PRECISION SFIN(NCELET) , HAUT(NCELET) DOUBLE PRECISION SI7(NCELET) , SI8(NCELET) , SP2M(NCELET) DOUBLE PRECISION F4I7(NCELET) DOUBLE PRECISION FUEL1(NCELET), FUEL2(NCELET) , FUEL3(NCELET) DOUBLE PRECISION OXYD(NCELET) , PROD1(NCELET) , PROD2(NCELET) DOUBLE PRECISION XINER(NCELET) DOUBLE PRECISION RTBMC(NCELET,NRTBMC) DOUBLE PRECISION SP(NCELET) , SI(NCELET) , SR(NCELET) DOUBLE PRECISION W1(NCELET) C C VARIABLES LOCALES C INTEGER IEL, ICHA, ICLA, ITBR, ITBI, IGE C INTEGER N1 , N2 , N3 , N4 , N5 , N6 , N7 , N8 , N9 INTEGER N10, N11, N12, N13, N14, N15, N16, N17, N18, N19 INTEGER N20, N21, N22, N23, N24, N25, N26, N27, N28, N29 INTEGER N30, N31, N32 INTEGER NBRINT PARAMETER (NBRINT = 32) INTEGER INTTMP(NBRINT) C DOUBLE PRECISION ZCOF10 , ZCOF20 DOUBLE PRECISION CX1M , CX2M DOUBLE PRECISION WMCHX1 , WMCHX2 , WMCO , WMCO2 , WMH2O DOUBLE PRECISION WMO2 , WMN2 , WMC DOUBLE PRECISION ACHX1F1, ACOF1 , ACHX2F2, ACOF2 DOUBLE PRECISION ACOF3 , AO2F3 , AO2F4 , AN2F4 DOUBLE PRECISION C1 , C2 , C3 , C4 DOUBLE PRECISION F1I7 , F2I7 , F3I7 DOUBLE PRECISION VARS DOUBLE PRECISION ZC(NGAZEM) DOUBLE PRECISION AC0(NGAZEM) , BC0(NGAZEM) DOUBLE PRECISION AC1(NGAZEM) , BC1(NGAZEM) DOUBLE PRECISION AC2(NGAZEM) , BC2(NGAZEM) DOUBLE PRECISION AC3(NGAZEM) , BC3(NGAZEM) DOUBLE PRECISION AI(NGAZEM) , BI(NGAZEM) DOUBLE PRECISION ANU1 , ANU2 , ANU3 DOUBLE PRECISION S1, S2, S3, SM1, SM2 DOUBLE PRECISION DEN1 , DEN2 , SOMM #ifdef DEBUG DOUBLE PRECISION SOMMF , MOM0 , MOM1 , MOM2 #endif DOUBLE PRECISION ZCHX10 , ZCHX20 , ZCO0 , ZCO20 DOUBLE PRECISION ZN20 , ZH2O0 , ZO20 DOUBLE PRECISION YCHX10 , YCHX20 , YCO0 , YCO20 DOUBLE PRECISION YN20 , YH2O0 , YO20 DOUBLE PRECISION ZCHX11 , ZCHX21 , ZCO1 , ZCO21 DOUBLE PRECISION ZN21 , ZH2O1 , ZO21 DOUBLE PRECISION ZCHX12 , ZCHX22 , ZCO2 , ZCO22 DOUBLE PRECISION ZN22 , ZH2O2 , ZO22 DOUBLE PRECISION ZCHX13 , ZCHX23 , ZCO3 , ZCO23 DOUBLE PRECISION ZN23 , ZH2O3 , ZO23 DOUBLE PRECISION REAC1 , REAC2 , REAC3 DOUBLE PRECISION X2 , XCH , XCK , XASH C C*********************************************************************** C C======================================================================= C 1. INITIALISATIONS C======================================================================= C C --- Initialisation tableau de travail C DO IEL = 1, NCEL W1(IEL) = ZERO DO ITBR = 1, NRTBMC RTBMC(IEL,ITBR) = ZERO ENDDO DO ITBI = 1, NITBMC ITBMC(IEL,ITBI) = 0 ENDDO ENDDO C C======================================================================= C 2. CALCULS PRELIMINAIRES C======================================================================= C C --- Calcul de F1M de chaque charbon dans RTBMC C de F2M de chaque charbon dans RTBMC C C ------ W1 = - Somme des X2(icla) C DO ICLA = 1, NCLACP DO IEL = 1, NCEL XCK = RTP(IEL,ISCA(IXCK(ICLA))) XCH = RTP(IEL,ISCA(IXCH(ICLA))) XASH = RTP(IEL,ISCA(INP (ICLA)))*XMASH(ICLA) X2 = XCH + XCK + XASH W1(IEL) = W1(IEL) - X2 ENDDO ENDDO C C ------ RTBMC(IF1MC(ICHA)) = F1M(ICHA) C RTBMC(IF2MC(ICHA)) = F2M(ICHA) C DO ICHA = 1, NCHARB DO IEL = 1, NCEL RTBMC(IEL,IF1MC(ICHA)) = RTP(IEL,ISCA(IF1M(ICHA))) & / (1.D0+W1(IEL)) RTBMC(IEL,IF2MC(ICHA)) = RTP(IEL,ISCA(IF2M(ICHA))) & / (1.D0+W1(IEL)) ENDDO ENDDO C C C --- Masses molaires C WMCO = WMOLE(ICO ) WMO2 = WMOLE(IO2 ) WMCO2 = WMOLE(ICO2 ) WMH2O = WMOLE(IH2O ) WMN2 = WMOLE(IN2 ) WMC = WMOLAT(IATC) C C C --- Calcul de CX1M, CX2M C et des coefficient relatifs a l'expression de C ZCHx1m0, ZCHx2m0, ZCO0, ZO20 et ZN20 C fonctions de F1, F2, F3 et F4 C ACOF3 = 1.D0/WMC AO2F3 = -.5D0/WMC AO2F4 = 1.D0 / (WMO2+XSI*WMN2) AN2F4 = XSI / (WMO2+XSI*WMN2) C DO IEL = 1, NCEL C C ---- YCHX1,20 en kg/kg de melange et C ZCHX1,20 en nb de moles/ kg de melange C YCHX10 = ZERO YCHX20 = ZERO ZCHX10 = ZERO ZCHX20 = ZERO ZCOF10 = ZERO ZCOF20 = ZERO DO ICHA = 1, NCHARB DEN1 = 1.D0 & / ( A1(ICHA)*WMOLE(ICHX1C(ICHA))+B1(ICHA)*WMOLE(ICO)) YCHX10 = YCHX10 + DEN1 * & ( RTBMC(IEL,IF1MC(ICHA))*A1(ICHA)*WMOLE(ICHX1C(ICHA)) ) ZCHX10 = ZCHX10 + DEN1 * & ( RTBMC(IEL,IF1MC(ICHA))*A1(ICHA) ) ZCOF10 = ZCOF10 + DEN1 * & ( RTBMC(IEL,IF1MC(ICHA))*B1(ICHA) ) DEN2 = 1.D0 & / ( A2(ICHA)*WMOLE(ICHX2C(ICHA))+B2(ICHA)*WMOLE(ICO)) YCHX20 = YCHX20 + DEN2 * & ( RTBMC(IEL,IF2MC(ICHA))*A2(ICHA)*WMOLE(ICHX2C(ICHA)) ) ZCHX20 = ZCHX20 + DEN2 * & ( RTBMC(IEL,IF2MC(ICHA))*A2(ICHA) ) ZCOF20 = ZCOF20 + DEN2 * & ( RTBMC(IEL,IF2MC(ICHA))*B2(ICHA) ) ENDDO RTBMC(IEL,IX1MC) = 4.D0 IF ( ZCHX10.GT.EPZERO ) & RTBMC(IEL,IX1MC) = ( YCHX10/ZCHX10-WMOLAT(IATC) ) & / WMOLAT(IATH) RTBMC(IEL,IX2MC) = 2.D0 IF ( ZCHX20.GT.EPZERO ) & RTBMC(IEL,IX2MC) = ( YCHX20/ZCHX20-WMOLAT(IATC) ) & / WMOLAT(IATH) C RTBMC(IEL,ICHX1F1) = 0.D0 RTBMC(IEL,ICOF1 ) = 0.D0 IF ( F1M(IEL).GT.EPZERO ) THEN RTBMC(IEL,ICHX1F1) = ZCHX10 / F1M(IEL) RTBMC(IEL,ICOF1 ) = ZCOF10 / F1M(IEL) ENDIF RTBMC(IEL,ICHX2F2) = 0.D0 RTBMC(IEL,ICOF2 ) = 0.D0 IF ( F2M(IEL).GT.EPZERO ) THEN RTBMC(IEL,ICHX2F2) = ZCHX20 / F2M(IEL) RTBMC(IEL,ICOF2 ) = ZCOF20 / F2M(IEL) ENDIF C ENDDO C C ---- Initialisation des fractions massiques avec de l'air C DO IEL = 1, NCEL FUEL1(IEL) = ZERO FUEL2(IEL) = ZERO FUEL3(IEL) = ZERO OXYD(IEL) = WMO2*AO2F4 PROD1(IEL) = ZERO PROD2(IEL) = ZERO XINER(IEL) = WMN2*AN2F4 IPI7I8(IEL) = 0 SP(IEL) = ZERO SI(IEL) = ZERO SR(IEL) = ZERO ENDDO C C C C======================================================================= C 3. CALCUL DE LA COMPOSITION DU MELANGE SANS LES PDF C SI LES FLUCTUATIONS DE S SONT TROP FAIBLES C SI SI7 ET SI8 SONT TROP PROCHE DE 0 C ALORS F1 = F1M, F2 = F2M , F3 = F3M ET F4 = F4M C======================================================================= C DO IEL = 1, NCEL C IF ( INDPDF(IEL).EQ.0 ) THEN C C --> Calculs preliminaires C CX1M = RTBMC(IEL,IX1MC) CX2M = RTBMC(IEL,IX2MC) WMCHX1 = WMOLAT(IATC) + CX1M*WMOLAT(IATH) WMCHX2 = WMOLAT(IATC) + CX2M*WMOLAT(IATH) ACHX1F1 = RTBMC(IEL,ICHX1F1) ACHX2F2 = RTBMC(IEL,ICHX2F2) ACOF1 = RTBMC(IEL,ICOF1) ACOF2 = RTBMC(IEL,ICOF2) C C --> Composition de la phase gazeuse avant combustion (indice 0) C C ZCHX10 = ACHX1F1*F1 C ZCHX20 = ACHX2F2*F2 C ZCO0 = ACOF1*F1 + ACOF2*F2 + ACOF3*F3 C ZCO20 = ZERO C ZH2O0 = ZERO C ZO20 = AO2F4*F4 + AO2F3*F3 C ZN20 = AN2F4*F4 C ZCHX10 = ACHX1F1*F1M(IEL) YCHX10 = ZCHX10*WMCHX1 ZCHX20 = ACHX2F2*F2M(IEL) YCHX20 = ZCHX20*WMCHX2 ZCO0 = (ACOF1*F1M(IEL)+ACOF2*F2M(IEL) + & ACOF3*F3M(IEL)) YCO0 = ZCO0 * WMCO ZO20 = (AO2F4*F4M(IEL)+AO2F3*F3M(IEL)) YO20 = ZO20*WMO2 ZN20 = (AN2F4*F4M(IEL)) YN20 = ZN20*WMN2 ZCO20 = ZERO YCO20 = ZCO20*WMCO2 ZH2O0 = ZERO YH2O0 = ZH2O0*WMH2O SOMM = YCHX10 + YCHX20 + YCO0 + YO20 + YN20 + & YCO20 + YH2O0 C ---- Test #ifdef DEBUG IF (ABS(SOMM-1.D0).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMME0', SOMM write(NFECRA,*) 'F1M',F1M(IEL) write(NFECRA,*) 'F2M',F2M(IEL) write(NFECRA,*) 'F3M',F3M(IEL) write(NFECRA,*) 'F4M',F4M(IEL) ENDIF #endif C ---- Fin test C C --> Calcul de la composition du melange C ANU1 = 0.25D0*(CX1M-CX2M) REAC1 = MIN(ZCHX10, (ZO20/ANU1)) ZCHX11 = ZCHX10 - REAC1 ZO21 = ZO20 - ANU1*REAC1 ZCHX21 = ZCHX20 + REAC1 ZCO1 = ZCO0 ZCO21 = ZCO20 ZH2O1 = ZH2O0 + 2.D0*ANU1*REAC1 ZN21 = ZN20 C ANU2 = 0.25D0*(2.D0 + CX2M) REAC2 = MIN(ZCHX21, (ZO21/ANU2)) ZCHX12 = ZCHX11 ZCHX22 = ZCHX21 - REAC2 ZO22 = ZO21 - ANU2*REAC2 ZCO2 = ZCO1 + REAC2 ZCO22 = ZCO21 ZH2O2 = ZH2O1 + .5D0*CX2M*REAC2 ZN22 = ZN21 C ANU3 = 0.5D0 REAC3 = MIN(ZCO2, (ZO22/ANU3)) ZCHX13 = ZCHX12 ZCHX23 = ZCHX22 ZO23 = ZO22 - ANU3*REAC3 ZCO3 = ZCO2 - REAC3 ZCO23 = ZCO22 + REAC3 ZH2O3 = ZH2O2 ZN23 = ZN22 C FUEL1(IEL) = ZCHX13 * WMCHX1 FUEL2(IEL) = ZCHX23 * WMCHX2 FUEL3(IEL) = ZCO3 * WMCO PROD1(IEL) = ZCO23 * WMCO2 PROD2(IEL) = ZH2O3 * WMH2O OXYD(IEL) = ZO23 * WMO2 XINER(IEL) = ZN23 * WMN2 C C ---- Test #ifdef DEBUG SOMM = FUEL1(IEL) + FUEL2(IEL) + FUEL3(IEL) & + PROD1(IEL) + PROD2(IEL) & + OXYD(IEL) + XINER(IEL) c IF (ABS(SOMM-1.D0).GT.EPSICP) THEN IF ( (ABS(SOMM-1.D0).GT.EPSICP) .OR. & (PROD2(IEL).LT.(-EPZERO) .OR. & PROD2(IEL).GT.(1.D0+EPZERO)) ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'INDPDF0',INDPDF(IEL) write(NFECRA,*) 'F1M',F1M(IEL) write(NFECRA,*) 'F2M',F2M(IEL) write(NFECRA,*) 'F3M',F3M(IEL) write(NFECRA,*) 'F4M',F4M(IEL) SOMMF = F1M(IEL) + F2M(IEL) + F3M(IEL) + F4M(IEL) write(NFECRA,*) 'SOMME F', SOMMF write(NFECRA,*) 'AO2F4, AO2F3 ', AO2F4, AO2F3 write(NFECRA,*) 'ZCHX1, 0,1,2,3', & ZCHX10,ZCHX11,ZCHX12,ZCHX13 write(NFECRA,*) 'ZCHX2, 0,1,2,3', & ZCHX20,ZCHX21,ZCHX22,ZCHX23 write(NFECRA,*) 'ZCO, 0,1,2,3', & ZCO0,ZCO1,ZCO2,ZCO3 write(NFECRA,*) 'ZCO2, 0,1,2,3', & ZCO20,ZCO21,ZCO22,ZCO23 write(NFECRA,*) 'ZH2O, 0,1,2,3', & ZH2O0,ZH2O1,ZH2O2,ZH2O3 write(NFECRA,*) 'ZO2, 0,1,2,3', & ZO20,ZO21,ZO22,ZO23 write(NFECRA,*) 'ZN2, 0,1,2,3', & ZN20,ZN21,ZN22,ZN23 write(NFECRA,*) 'Fuel1',FUEL1(IEL) write(NFECRA,*) 'Fuel2',FUEL2(IEL) write(NFECRA,*) 'Fuel3',FUEL3(IEL) write(NFECRA,*) 'Oxyd',OXYD(IEL) write(NFECRA,*) 'Iner',XINER(IEL) write(NFECRA,*) 'Prod1',PROD1(IEL) write(NFECRA,*) 'Prod2',PROD2(IEL) write(NFECRA,*) 'SOMME Y', SOMM ENDIF #endif C ---- Fin Test C ENDIF C ENDDO C C C C======================================================================= C 4. CALCUL DE LA COMPOSITION DU MELANGE AVEC LES PDF C ATTENTION : ON SE LIMITE POUR L'INSTANT A INDPDF = 3 SUPPORT (I4,M) C======================================================================= C C C --> I7 = I4 : F1I7 = F2I7 = F3I7 = 0 C F4I7 = 1 C C --> RELATIONS SUR LE SUPPORT DE LA PDF C FJ = FJM + CJ*S avec CJ = (FJM-FJI7)/SI7 (J = 1 a 4) C C Devectorisation de la boucle pour VPP 5000 C !OCL SCALAR C DO IEL = 1, NCEL C IF ( INDPDF(IEL).EQ.3 ) THEN C C --> Calculs preliminaires C CX1M = RTBMC(IEL,IX1MC) CX2M = RTBMC(IEL,IX2MC) WMCHX1 = WMOLAT(IATC) + CX1M*WMOLAT(IATH) WMCHX2 = WMOLAT(IATC) + CX2M*WMOLAT(IATH) ACHX1F1 = RTBMC(IEL,ICHX1F1) ACHX2F2 = RTBMC(IEL,ICHX2F2) ACOF1 = RTBMC(IEL,ICOF1) ACOF2 = RTBMC(IEL,ICOF2) C C ---- Calcul de F1I7, F2I7, F3I7 C F1I7 = ZERO F2I7 = ZERO F3I7 = 1.D0 - F4I7(IEL) C C ----- Calcul de C1, C2, C3 et C4 C C1 = (F1I7 -F1M(IEL)) / SI7(IEL) C2 = (F2I7 -F2M(IEL)) / SI7(IEL) C3 = (F3I7 -F3M(IEL)) / SI7(IEL) C4 = (F4I7(IEL)-F4M(IEL)) / SI7(IEL) C C ---- Rq : les autres pointeurs sont deja definis dans cplecd.F C C --> Initialisation C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = ZERO ENDDO C C --> Calculs des coefficients avant combustion phase gaz C ZC(IGE) = AC0(IGE) + BC0(IGE) * S C AC0(ICHX1) = ACHX1F1*F1M(IEL) BC0(ICHX1) = ACHX1F1*C1 AC0(ICHX2) = ACHX2F2*F2M(IEL) BC0(ICHX2) = ACHX2F2*C2 AC0(ICO ) = ACOF1*F1M(IEL)+ACOF2*F2M(IEL) + & ACOF3*F3M(IEL) BC0(ICO ) = ACOF1*C1 +ACOF2*C2 + & ACOF3*C3 AC0(ICO2 ) = ZERO BC0(ICO2 ) = ZERO AC0(IH2O ) = ZERO BC0(IH2O ) = ZERO AC0(IO2 ) = AO2F3*F3M(IEL)+AO2F4*F4M(IEL) BC0(IO2 ) = AO2F3*C3 +AO2F4*C4 AC0(IN2 ) = AN2F4*F4M(IEL) BC0(IN2 ) = AN2F4*C4 C C ---- Test #ifdef DEBUG WMOLE(ICHX1) = WMCHX1 WMOLE(ICHX2) = WMCHX2 SOMM = 0.D0 SOMMF = 0.D0 DO IGE = 1, (NGAZE-2*NCHARB) SOMM = SOMM + AC0(IGE)*WMOLE(IGE) SOMMF = SOMMF + BC0(IGE)*WMOLE(IGE) ENDDO IF (ABS(SOMM-1.D0).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'F4I7 ', F4I7(IEL) write(NFECRA,*) 'SOMM AC0', SOMM ENDIF IF (ABS(SOMMF).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM BC0', SOMMF ENDIF #endif C ---- Fin Test C C --> Les pics de Dirac sont situes dans des domaines C ou la reaction n'est pas possible (points froids) C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = DSI7(IEL)*(AC0(IGE)+BC0(IGE)*SI7(IEL)) & + DSI8(IEL)*(AC0(IGE)+BC0(IGE)*SI8(IEL)) ENDDO C C --> Initialisation des coefficients avant integration C DO IGE = 1, (NGAZE-2*NCHARB) AC1(IGE) = AC0(IGE) BC1(IGE) = BC0(IGE) AC2(IGE) = AC0(IGE) BC2(IGE) = BC0(IGE) AC3(IGE) = AC0(IGE) BC3(IGE) = BC0(IGE) ENDDO C C --> Integration dans le domaine hyper riche C C Rq : On rajoute le test suivant CAR C si F1M = 0 alors le domaine hyper riche n'existe pas C IF ( F1M(IEL).GT.EPSICP ) THEN C ANU1 = 0.25D0*(CX1M-CX2M) S1 = - (AC0(IO2)-AC0(ICHX1)*ANU1) & / (BC0(IO2)-BC0(ICHX1)*ANU1) SM1 = MAX(SDEB(IEL),S1) SM2 = SFIN(IEL) C DO IGE = 1, (NGAZE-2*NCHARB) AI(IGE) = AC0(IGE) BI(IGE) = BC0(IGE) ENDDO BI(ICHX1) = (AC0(ICHX1)+BC0(ICHX1)*SI8(IEL))/(SI8(IEL)-S1) AI(ICHX1) = -S1*BI(ICHX1) AI(ICHX2) = AC0(ICHX2) + (AC0(ICHX1)-AI(ICHX1)) BI(ICHX2) = BC0(ICHX2) + (BC0(ICHX1)-BI(ICHX1)) AI(IO2 ) = AC0(IO2 ) - ANU1*(AC0(ICHX1)-AI(ICHX1)) BI(IO2 ) = BC0(IO2 ) - ANU1*(BC0(ICHX1)-BI(ICHX1)) AI(IH2O ) = AC0(IH2O ) + 2.D0*ANU1*(AC0(ICHX1)-AI(ICHX1)) BI(IH2O ) = BC0(IH2O ) + 2.D0*ANU1*(BC0(ICHX1)-BI(ICHX1)) C IF ( SM1.LT.SM2 ) THEN C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = ZC(IGE) & + HAUT(IEL)*(SM2-SM1)*(AI(IGE)+.5D0*BI(IGE)*(SM1+SM2)) ENDDO C ENDIF C DO IGE = 1, (NGAZE-2*NCHARB) AC1(IGE) = ( AC0(IGE)*S1-AI(IGE)*SI7(IEL) + & S1*SI7(IEL)*(BC0(IGE)-BI(IGE)) ) & / ( S1-SI7(IEL) ) BC1(IGE) = (AI(IGE)+BI(IGE)*S1-AC1(IGE)) / S1 ENDDO C C ---- Apres la premiere reaction, on se trouve hors du domaine hyper riche C CHX1 ne doit plus exister AC1(ICHX1) = BC1(ICHX1) = 0 C C ---- Test #ifdef DEBUG SOMM = 0.D0 SOMMF = 0.D0 DO IGE = 1, (NGAZE-2*NCHARB) SOMM = SOMM + AC1(IGE)*WMOLE(IGE) SOMMF = SOMMF + BC1(IGE)*WMOLE(IGE) ENDDO IF ( ABS(AC1(ICHX1)).GT.EPSICP .OR. & ABS(BC1(ICHX1)).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC1(ICHX1)', AC1(ICHX1) write(NFECRA,*) 'BC1(ICHX1)', BC1(ICHX1) ENDIF IF ( ABS(SOMM-1.D0).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM AC1', SOMM ENDIF IF ( ABS(SOMMF).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM BC1', SOMMF ENDIF IF ( ABS(AC1(IO2)+BC1(IO2)*S1).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC01(IO2)', AC0(IO2),AC1(IO2) write(NFECRA,*) 'BC01(IO2)', BC0(IO2),BC1(IO2) ENDIF #endif C ---- Fin Test C ENDIF C C --> Integration dans le domaine riche C ANU2 = 0.25D0*(2.D0 + CX2M) S2 = - (AC1(IO2)-AC1(ICHX2)*ANU2) & / (BC1(IO2)-BC1(ICHX2)*ANU2) C SM1 = MAX(SDEB(IEL),S2) SM2 = MIN(SFIN(IEL),S1) C DO IGE = 1, (NGAZE-2*NCHARB) AI(IGE) = AC1(IGE) BI(IGE) = BC1(IGE) ENDDO C BI(ICHX2) = (AC1(ICHX2)+BC1(ICHX2)*S1)/(S1-S2) AI(ICHX2) = -S2*BI(ICHX2) AI(IO2 ) = AC1(IO2 ) - ANU2*(AC1(ICHX2)-AI(ICHX2)) BI(IO2 ) = BC1(IO2 ) - ANU2*(BC1(ICHX2)-BI(ICHX2)) AI(ICO ) = AC1(ICO ) + (AC1(ICHX2)-AI(ICHX2)) BI(ICO ) = BC1(ICO ) + (BC1(ICHX2)-BI(ICHX2)) AI(IH2O ) = AC1(IH2O) + .5D0*CX2M*(AC1(ICHX2)-AI(ICHX2)) BI(IH2O ) = BC1(IH2O) + .5D0*CX2M*(BC1(ICHX2)-BI(ICHX2)) C IF ( SM1.LT.SM2 ) THEN C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = ZC(IGE) & + HAUT(IEL)*(SM2-SM1)*(AI(IGE)+.5D0*BI(IGE)*(SM1+SM2)) ENDDO C ENDIF C DO IGE = 1, (NGAZE-2*NCHARB) c AC2(IGE) = (AC1(IGE)*S2-AI(IGE)*SI7(IEL)) + c & S2*SI7(IEL)*(BC1(IGE)-BI(IGE))/(S2-SI7(IEL)) c BC2(IGE) = (AI(IGE)+BI(IGE)*S2-AC2(IGE))/(S2-SI7(IEL)) AC2(IGE) = ( AC1(IGE)*S2-AI(IGE)*SI7(IEL) + & S2*SI7(IEL)*(BC1(IGE)-BI(IGE)) ) & / ( S2-SI7(IEL) ) BC2(IGE) = (AI(IGE)+BI(IGE)*S2-AC2(IGE)) / S2 ENDDO C C ---- Apres la seconde reaction, on se trouve hors du domaine riche C CHX1 et CHX2 ne doivent plus exister C AC2(ICHX1) = BC2(ICHX1) = AC2(ICHX2) = BC2(ICHX2) = 0 C C ---- Test #ifdef DEBUG SOMM = 0.D0 SOMMF = 0.D0 DO IGE = 1, (NGAZE-2*NCHARB) SOMM = SOMM + AC2(IGE)*WMOLE(IGE) SOMMF = SOMMF + BC2(IGE)*WMOLE(IGE) ENDDO IF (ABS(AC2(ICHX1)).GT.EPSICP .OR. & ABS(BC2(ICHX1)).GT.EPSICP .OR. & ABS(AC2(ICHX2)).GT.EPSICP .OR. & ABS(BC2(ICHX2)).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC2(ICHX1)', AC2(ICHX1) write(NFECRA,*) 'BC2(ICHX1)', BC2(ICHX1) write(NFECRA,*) 'AC2(ICHX2)', AC2(ICHX2) write(NFECRA,*) 'BC2(ICHX2)', BC2(ICHX2) ENDIF IF (ABS(SOMM-1.D0).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM AC2', SOMM ENDIF IF (ABS(SOMMF).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM BC2', SOMMF ENDIF IF (ABS(AC2(IO2)+BC2(IO2)*S2).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC12(IO2)', AC1(IO2),AC2(IO2) write(NFECRA,*) 'BC12(IO2)', BC1(IO2),BC2(IO2) ENDIF #endif C ---- Fin Test C C --> Integration dans le domaine intermediaire C ANU3 = 0.5D0 S3 = - (AC2(IO2)-AC2(ICO)*ANU3) & / (BC2(IO2)-BC2(ICO)*ANU3) C SM1 = MAX(SDEB(IEL),S3) SM2 = MIN(SFIN(IEL),S2) C DO IGE = 1, (NGAZE-2*NCHARB) AI(IGE) = AC2(IGE) BI(IGE) = BC2(IGE) ENDDO C BI(ICO) = (AC2(ICO)+BC2(ICO)*S2)/(S2-S3) AI(ICO) = -S3*BI(ICO) AI(IO2) = AC2(IO2 ) - ANU3*(AC2(ICO)-AI(ICO)) BI(IO2) = BC2(IO2 ) - ANU3*(BC2(ICO)-BI(ICO)) AI(ICO2) = AC2(ICO2) + (AC2(ICO)-AI(ICO)) BI(ICO2) = BC2(ICO2) + (BC2(ICO)-BI(ICO)) C IF ( SM1.LT.SM2 ) THEN C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = ZC(IGE) & + HAUT(IEL)*(SM2-SM1)*(AI(IGE)+.5D0*BI(IGE)*(SM1+SM2)) ENDDO C ENDIF C DO IGE = 1, (NGAZE-2*NCHARB) AC3(IGE) = ( AC2(IGE)*S3-AI(IGE)*SI7(IEL) + & S3*SI7(IEL)*(BC2(IGE)-BI(IGE)) ) & / ( S3-SI7(IEL) ) BC3(IGE) = (AI(IGE)+BI(IGE)*S3-AC3(IGE)) / S3 ENDDO C C ---- Apres la troisieme reaction, om se trouve dans le domaine pauvre C CHX1,CHX2 et CO doivent etre nuls C AC3(ICHX1) = BC3(ICHX1) = 0 C AC3(ICHX2) = BC3(ICHX2) = 0 C AC3(ICO ) = BC3(ICO ) = 0 C C ---- Test #ifdef DEBUG SOMM = 0.D0 SOMMF = 0.D0 DO IGE = 1, (NGAZE-2*NCHARB) SOMM = SOMM + AC3(IGE)*WMOLE(IGE) SOMMF = SOMMF + BC3(IGE)*WMOLE(IGE) ENDDO IF (ABS(AC3(ICHX1)).GT.EPSICP .OR. & ABS(BC3(ICHX1)).GT.EPSICP .OR. & ABS(AC3(ICHX2)).GT.EPSICP .OR. & ABS(BC3(ICHX2)).GT.EPSICP .OR. & ABS(AC3(ICO)).GT.EPSICP .OR. & ABS(BC3(ICO)).GT.EPSICP ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC3(ICHX1)', AC3(ICHX1) write(NFECRA,*) 'BC3(ICHX1)', BC3(ICHX1) write(NFECRA,*) 'AC3(ICHX2)', AC3(ICHX2) write(NFECRA,*) 'BC3(ICHX2)', BC3(ICHX2) write(NFECRA,*) 'AC3(ICO)', AC3(ICO) write(NFECRA,*) 'BC3(ICO)', BC3(ICO) ENDIF IF (ABS(SOMM-1.D0).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM AC3', SOMM ENDIF IF (ABS(SOMMF).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'SOMM BC3', SOMMF ENDIF IF (ABS(AC3(IO2)+BC3(IO2)*S3).GT.EPSICP) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'AC23(IO2)', AC2(IO2),AC3(IO2) write(NFECRA,*) 'BC23(IO2)', BC2(IO2),BC3(IO2) ENDIF #endif C ---- Fin Test C C --> Integration dans le domaine pauvre C SM1 = SDEB(IEL) SM2 = MIN(SFIN(IEL),S3) C DO IGE = 1, (NGAZE-2*NCHARB) AI(IGE) = AC3(IGE) BI(IGE) = BC3(IGE) ENDDO C IF ( SM1.LT.SM2 ) THEN C DO IGE = 1, (NGAZE-2*NCHARB) ZC(IGE) = ZC(IGE) & + HAUT(IEL)*(SM2-SM1)*(AI(IGE)+.5D0*BI(IGE)*(SM1+SM2)) ENDDO C ENDIF C FUEL1(IEL) = ZC(ICHX1) * WMCHX1 FUEL2(IEL) = ZC(ICHX2) * WMCHX2 FUEL3(IEL) = ZC(ICO ) * WMCO PROD1(IEL) = ZC(ICO2 ) * WMCO2 PROD2(IEL) = ZC(IH2O ) * WMH2O OXYD(IEL) = ZC(IO2 ) * WMO2 XINER(IEL) = ZC(IN2 ) * WMN2 C C ---- Test #ifdef DEBUG SOMM = FUEL1(IEL) + FUEL2(IEL) + FUEL3(IEL) & + PROD1(IEL) + PROD2(IEL) & + OXYD(IEL) + XINER(IEL) IF ( (ABS(SOMM-1.D0).GT.EPSICP) .OR. & (PROD2(IEL).LT.(-EPZERO) .OR. & PROD2(IEL).GT.(1.D0+EPZERO)) ) THEN write(NFECRA,*) 'PB CELLULE ',IEL write(NFECRA,*) 'INDPDF3',INDPDF(IEL) write(NFECRA,*) 'ACHX1F1',ACHX1F1 write(NFECRA,*) 'ACHX2F2',ACHX2F2 write(NFECRA,*) 'ACOF1',ACOF1 write(NFECRA,*) 'ACOF2',ACOF2 write(NFECRA,*) 'AO2F4',AO2F4 write(NFECRA,*) 'AO2F3',AO2F3 write(NFECRA,*) 'AN2F4',AN2F4 write(NFECRA,*) 'F1M',F1M(IEL) write(NFECRA,*) 'F2M',F2M(IEL) write(NFECRA,*) 'F3M',F3M(IEL) write(NFECRA,*) 'F4M',F4M(IEL) SOMMF = F1M(IEL) + F2M(IEL) + F3M(IEL) + F4M(IEL) write(NFECRA,*) 'SOMME F', SOMMF write(NFECRA,*) 'SI7 ',SI7(IEL) write(NFECRA,*) 'SI8 ',SI8(IEL) write(NFECRA,*) 'SDEB ',SDEB(IEL) write(NFECRA,*) 'SFIN ',SFIN(IEL) write(NFECRA,*) 'HAUT ',HAUT(IEL) write(NFECRA,*) 'DSI7 ',DSI7(IEL) write(NFECRA,*) 'DSI8 ',DSI8(IEL) ANU1 = 0.25D0*(CX1M-CX2M) S1 = - (ANU1*AC0(IO2)-AC0(ICHX1)) & / (ANU1*BC0(IO2)-BC0(ICHX1)) write(NFECRA,*) 'S1 ', S1 ANU2 = 0.25D0*(2.D0 + CX2M) S2 = - (ANU2*AC1(IO2)-AC1(ICHX2)) & / (ANU2*BC1(IO2)-BC1(ICHX2)) write(NFECRA,*) 'S2 ', S2 ANU3 = 0.5D0 S3 = - (ANU3*AC2(IO2)-AC2(ICO)) & / (ANU3*BC2(IO2)-BC2(ICO)) write(NFECRA,*) 'S3 ', S3 MOM0 = HAUT(IEL)*(SFIN(IEL)-SDEB(IEL)) & + DSI8(IEL)+DSI7(IEL) write(NFECRA,*) 'MOM0 ', MOM0, 1.D0 MOM1 = HAUT(IEL)*(SFIN(IEL)**2-SDEB(IEL)**2)/2.D0 & + DSI7(IEL)*SI7(IEL)+DSI8(IEL)*SI8(IEL) write(NFECRA,*) 'MOM1 ', MOM1, 0.D0 MOM2 = HAUT(IEL)*(SFIN(IEL)**3-SDEB(IEL)**3)/3.D0 & + DSI7(IEL)*SI7(IEL)**2+DSI8(IEL)*SI8(IEL)**2 write(NFECRA,*) 'MOM2 ', MOM2, SP2M(IEL) write(NFECRA,*) 'Fuel1',FUEL1(IEL) write(NFECRA,*) 'Fuel2',FUEL2(IEL) write(NFECRA,*) 'Fuel3',FUEL3(IEL) write(NFECRA,*) 'Oxyd',OXYD(IEL) write(NFECRA,*) 'Iner',XINER(IEL) write(NFECRA,*) 'Prod1',PROD1(IEL) write(NFECRA,*) 'Prod2',PROD2(IEL) write(NFECRA,*) 'SOMME', SOMM ENDIF #endif C ---- Fin Test C ENDIF C ENDDO C C C C======================================================================= C 5. IMPRESSION C======================================================================= C N2 = 0 N3 = 0 N4 = 0 N5 = 0 N6 = 0 N7 = 0 N8 = 0 N9 = 0 N10 = 0 N11 = 0 N12 = 0 N13 = 0 N14 = 0 N15 = 0 N16 = 0 N17 = 0 N18 = 0 N19 = 0 N20 = 0 N21 = 0 N22 = 0 N23 = 0 N24 = 0 N25 = 0 N26 = 0 N27 = 0 N28 = 0 N29 = 0 N30 = 0 N31 = 0 N32 = 0 C C --> Controle des differentes valeurs des fractions massiques C DO IEL = 1, NCEL SOMM = FUEL1(IEL) + FUEL2(IEL) + FUEL3(IEL) + OXYD(IEL) & + PROD1(IEL) + PROD2(IEL) + XINER(IEL) IF ( FUEL1(IEL).LT.(-EPZERO) .OR. & FUEL1(IEL).GT.(1.D0+EPZERO) ) N14 = N14+1 IF ( FUEL2(IEL).LT.(-EPZERO) .OR. & FUEL2(IEL).GT.(1.D0+EPZERO) ) N15 = N15+1 IF ( FUEL3(IEL).LT.(-EPZERO) .OR. & FUEL3(IEL).GT.(1.D0+EPZERO) ) N16 = N16+1 IF ( OXYD(IEL).LT.(-EPZERO) .OR. & OXYD(IEL).GT.(1.D0+EPZERO) ) N17 = N17+1 IF ( XINER(IEL).LT.(-EPZERO) .OR. & XINER(IEL).GT.(1.D0+EPZERO) ) N18 = N18+1 IF ( PROD1(IEL).LT.(-EPZERO) .OR. & PROD1(IEL).GT.(1.D0+EPZERO) ) N19 = N19+1 IF ( PROD2(IEL).LT.(-EPZERO) .OR. & PROD2(IEL).GT.(1.D0+EPZERO) ) N20 = N20+1 C IF ( ABS(SOMM-1.D0).LT.EPSICP ) N3 = N3 +1 ENDDO C C --> Controle des parametres de la pdf C DO IEL = 1, NCEL IF ( INDPDF(IEL).NE.0 ) THEN VARS = SP2M(IEL) / (-SI7(IEL)*SI8(IEL)) IF ( VARS.GT.EPZERO .AND. & VARS.LE.(1.-EPZERO) ) N2 = N2+1 IF ( DSI7(IEL).LT.EPZERO .AND. DSI8(IEL).LT.EPZERO ) & N4 = N4+1 IF ( DSI7(IEL).GT.EPZERO .AND. DSI8(IEL).LT.EPZERO ) & N5 = N5+1 IF ( DSI7(IEL).LT.EPZERO .AND. DSI8(IEL).GT.EPZERO ) & N6 = N6+1 IF ( DSI7(IEL).GT.EPZERO .AND. DSI8(IEL).GT.EPZERO ) & N7 = N7+1 IF ( DSI7(IEL).LT.(-EPZERO) ) N8 = N8+1 IF ( DSI8(IEL).LT.(-EPZERO) ) N9 = N9+1 IF ( HAUT(IEL).LT.(-EPZERO) ) N10 = N10+1 N27 = N27+1 IF ( SDEB(IEL).LT.SI7(IEL) .OR. SDEB(IEL).GT.SI8(IEL) ) & N11 = N11+1 IF ( SFIN(IEL).LT.SI7(IEL) .OR. SFIN(IEL).GT.SI8(IEL) ) & N12 = N12+1 IF ( (SFIN(IEL)-SDEB(IEL)).LT.ZERO ) N13 = N13+1 IF ( INDPDF(IEL).EQ.12 ) N28 = N28+1 IF ( INDPDF(IEL).EQ.2 ) N29 = N29+1 IF ( INDPDF(IEL).EQ.13 ) N31 = N31+1 IF ( INDPDF(IEL).EQ.11 ) N30 = N30+1 IF ( INDPDF(IEL).EQ.3 ) N32 = N32+1 IF ( IPI7I8(IEL).GT.10 .AND. IPI7I8(IEL).LT.15 ) N21 = N21+1 IF ( IPI7I8(IEL).GT.20 .AND. IPI7I8(IEL).LT.25 ) N22 = N22+1 IF ( IPI7I8(IEL).EQ.11 .OR. IPI7I8(IEL).EQ.21 ) N23 = N23+1 IF ( IPI7I8(IEL).EQ.12 .OR. IPI7I8(IEL).EQ.22 ) N24 = N24+1 IF ( IPI7I8(IEL).EQ.13 .OR. IPI7I8(IEL).EQ.23 ) N25 = N25+1 IF ( IPI7I8(IEL).EQ.14 .OR. IPI7I8(IEL).EQ.24 ) N26 = N26+1 ENDIF ENDDO C N1 = NCEL C IF (IRANGP.GE.0) THEN INTTMP( 1) = N1 INTTMP( 2) = N2 INTTMP( 3) = N3 INTTMP( 4) = N4 INTTMP( 5) = N5 INTTMP( 6) = N6 INTTMP( 7) = N7 INTTMP( 8) = N8 INTTMP( 9) = N9 INTTMP(10) = N10 INTTMP(11) = N11 INTTMP(12) = N12 INTTMP(13) = N13 INTTMP(14) = N14 INTTMP(15) = N15 INTTMP(16) = N16 INTTMP(17) = N17 INTTMP(18) = N18 INTTMP(19) = N19 INTTMP(20) = N20 INTTMP(21) = N21 INTTMP(22) = N22 INTTMP(23) = N23 INTTMP(24) = N24 INTTMP(25) = N25 INTTMP(26) = N26 INTTMP(27) = N27 INTTMP(28) = N28 INTTMP(29) = N29 INTTMP(30) = N30 INTTMP(31) = N31 INTTMP(32) = N32 CALL PARISM(NBRINT,INTTMP) C =========== ENDIF C WRITE(NFECRA,1000) N1 , N27 WRITE(NFECRA,1100) N28, N29, N31, N30, N32, N21, N22, N23, & N24, N25, N26 WRITE(NFECRA,2000) N4 , N5 , N6 , N7 WRITE(NFECRA,2100) N27, N2 , N8 , N9 , N10, N11, N12, N13 WRITE(NFECRA,2200) N1 , N3 , N14, N15, N16, N17, N18, N19, N20 C C------- C FORMAT C------- C 1000 FORMAT (/, &'MODELISATION DE LA COMBUSTION AVEC LE MODELE DE DIFFUSION ', &'TURBULENTE (CPCYM1)',/, &'CHIMIE RAPIDE A 3 CORPS - EXTENSION A 3 COMBUSTIBLES ', &'(Application au CP)',/, &'==========================================================', &'==================',/, &' Nb de points de calculs = ', & I6,/, &' Nb de points turbulents (passage par les PDF) = ', & I6) C 1100 FORMAT( C ..v.7..1....v....2....v....3....v....4....v....5....v....6....v....7.I &' Nb de points turbulents pour lesquels I7 app. [I4,L3] T12 = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 app. [I4,L5] T2 = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 app. [I4,L5] T13 = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 app. [L5,I3max] T11= ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 = I4 T3 = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 domaine P = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I7 domaine I = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I8 domaine P = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I8 domaine I = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I8 domaine R = ', & I6,/, &' - - - - - - - - - - - - pour lesquels I8 domaine HR = ', & I6) C 2000 FORMAT( &'PDF CONJOINTE DEGENEREE EN PDF MONODIMENSIONNELLE',/, &' Nb de points PDF rectangle sans Dirac = ',I6,/, &' - - - - - - - - - - - - - et Dirac en I7 = ',I6,/, &' - - - - - - - - - - - - - et Dirac en I8 = ',I6,/, &' - - - - - - - - - - - - - et Diracs en I8 et I7 = ',I6) C 2100 FORMAT( &'CONTROLE DES PARAMETRES DE LA PDF',/, &' Nb de points turbulents (passage par les PDF) = ', & I6,/, &' Nb de points turbulents pour lesquels VARS est physique = ', & I6,/ &' Nb de points Dirac_I7, Dirac_I8, HAUT < 0 = ',I6,I6,I6,/, &' Nb de points Abs.Deb < SI7 ou > SI8 = ', I6,/, &' Nb de points Abs.Fin < SI7 ou > SI8 = ', I6,/, &' Nb de points (Abs.Fin-Abs.Deb) < 0 = ', I6) C 2200 FORMAT( &'CONTROLE DES VALEURS DES FRACTIONS MASSIQUES',/, &' Nb de points de calculs = ', & I6,/, &' Nb de points de calculs qui respectent somme des Yi = 1 = ', & I6,/, &' Nb de points YCHx1m,YCHx2m,YCO < 0 ou > 1 = ',I6,I6,I6,/, &' Nb de points YO2,YN2 < 0 ou > 1 = ',I6,I6,/, &' Nb de points YCO2,YH2O < 0 ou > 1 = ',I6,I6) C C RETURN END c@z