flama
C FLAMA SOURCE CB215821 20/11/25 13:29:03 10792 IMPLICIT INTEGER(I-N) C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : FLAMA C C DESCRIPTION : voir aussi FLAM C C Calcul des masses specifiques de H2, O2, H2O et de C l'energie libere dans le cas de combustion C governe' par une loi de type Heavyside (T > Ts C tout brule). C C N.B. L'energie thermique de chaque epsece est C definie par C C e = \int_{0}^T cv(y) dy C C Toutes les grandeurs sont exprimees en unites S.I. C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI) 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 C PHRASE D'APPEL (GIBIANE) : C C RCHPO1 RCHPO2 RCHPO3 RCHPO4 = 'FLAM' MCLE1 CHPO1 FLOT1 FLOT2 FLOT3 C CHPO2 CHPO3 CHPO4 CHPO5 ; C C ENTREES : C C MCLE1 : 'HEAVYSID' : mot clé C C CHPO1 : CHPOINT contenant la temperature de seuil (en K; C une composante, 'SCAL'). C C FLOT1 : FLOTTANT contenant l'enthalpie de H2 C a 0K (en J/kg) C C FLOT2 : FLOTTANT contenant l'enthalpie de O2 C a 0K (en J/kg) C C FLOT3 : FLOTTANT contenant l'enthalpie de H2O C a 0K (en J/kg) C C CHPO2 : CHPOINT contenant la masse volumique de C l'hydrogene (en Kg/m^3; une composante, 'H2 '). C C CHPO3 : CHPOINT contenant la masse volumique de C l'oxygene (en Kg/m^3; une composante, 'O2 '). C C CHPO4 : CHPOINT contenant la masse volumique de C l'eau (en Kg/m^3; une composante, 'H2O '). C C CHPO5 : CHPOINT contenant la temperature (en K; une C composante, 'SCAL'). C C SORTIES : C C C RCHPO1 : CHPOINT contenant la masse volumique de C l'hydrogene apres la reaction (en Kg/m^3; C une composante, 'H2 '). C C RCHPO2 : CHPOINT contenant la masse volumique de C l'oxygene apres la reaction (en Kg/m^3; C une composante, 'O2 '). C C RCHPO3 : CHPOINT contenant la masse volumique de C l'eau apres la reaction (en Kg/m^3; une C composante, 'H2O '). C C RCHPO4 : CHPOINT contenant la chaleur libere' (en J/m^3; C une composante, 'SCAL'). C C N.B.:-tous les CHPOINTs sont non-partitonees et C ils ont le meme support geometrique; C en sortie tous les CHPOINTs ont le support C geometrique du CHPO1 C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : Créée le 3.3.99 C C************************************************************************ C C C**** Les Includes C -INC PPARAM -INC CCOPTIO -INC SMCHPOI POINTEUR TSEUIL.MPOVAL, TEMP.MPOVAL, RYH2.MPOVAL, RYO2.MPOVAL & , RYH2O.MPOVAL, NRYH2.MPOVAL, NRYO2.MPOVAL, NRYH2O.MPOVAL & , DE.MPOVAL -INC SMELEME C C**** Variables de COOPTIO C C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES C & ,IECHO, IIMPI, IOSPI C & ,IDIM C & ,MCOORD C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU C & ,NORINC,NORVAL,NORIND,NORVAD C & ,NUCROU, IPSAUV C C**** Les variables C & , ITSEUI, IRYH2, IRYO2 , IRYH2O, ITEMP & , IDE, INH2, INO2, INH2O, N, NC REAL*8 H0H2, H0O2, H0H2O, VALER CHARACTER*(8) MESERR CHARACTER*(8) MTYPR CHARACTER*(LOCOMP) NOMTOT(1) LOGICAL LOGNEG C C**** Initialisation des parametres d'erreur C LOGNEG = .FALSE. MESERR = ' ' VALER = 0.0D0 C C**** Initialisation des NOMTOT(1) (noms des composantes) C NOMTOT(1) = ' ' C C**** Lecture du CHPOINT CHPO1 (temperature de seuil) C ICOND = 1 MTYPR = 'CHPOINT ' IF(IERR .NE. 0)GOTO 9999 C C**** On cherche le pointeur de son maillage et on l'impose sur les C autres CHPOINTs C En plus on controlle: NBCOMP = 1 C MSOUPO.NOCOMP(1) = 'SCAL' C MCHPOI = ITSEUI SEGACT MCHPOI MSOUPO = MCHPOI.IPCHP(1) SEGACT MSOUPO C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO1 = ??? ' C C******** Message d'erreur standard C 699 2 C routine %m1:8 : On voulait un %m9:16 à %i1 composantes au lieu C de %i2 C MOTERR(1:8) = ' QUEPOI ' MOTERR(9:16) = 'CHPOINT ' INTERR(1) = 1 GOTO 9999 ENDIF NOMTOT(1) = MSOUPO.NOCOMP(1) IF(NOMTOT(1) .NE. 'SCAL')THEN C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO1 = ??? ' MOTERR= NOMTOT(1) GOTO 9999 ENDIF ICEN = MSOUPO.IGEOC MELEME = ICEN SEGACT MELEME NCEN = MELEME.NUM(/2) SEGDES MELEME TSEUIL = MSOUPO.IPOVAL SEGDES MSOUPO SEGDES MCHPOI C C**** Lecture du FLOT1 C ICOND = 1 IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du FLOT2 C ICOND = 1 IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du FLOT3 C ICOND = 1 IF(IERR .NE. 0)GOTO 9999 C C**** Lecture du CHPOINT CHPO2 C MTYPR = 'CHPOINT' IF(IERR .NE. 0)GOTO 9999 C C**** Control du CHPOINT C NOMTOT(1) = 'H2 ' IF(IERR .NE. 0)THEN IERR0 = IERR C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO2 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT CHPO3 C MTYPR = 'CHPOINT' IF(IERR .NE. 0)GOTO 9999 C C**** Control du CHPOINT C NOMTOT(1) = 'O2 ' IF(IERR .NE. 0)THEN IERR0 = IERR C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO3 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT CHPO4 C MTYPR = 'CHPOINT' IF(IERR .NE. 0)GOTO 9999 C C**** Control du CHPOINT C NOMTOT(1) = 'H2O ' IF(IERR .NE. 0)THEN IERR0 = IERR C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO4 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT CHPO5 C MTYPR = 'CHPOINT' IF(IERR .NE. 0)GOTO 9999 C C**** Control du CHPOINT C NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******** Message d'erreur standard C -301 0 %m1:40 C MOTERR = 'CHPO5 = ??? ' GOTO 9999 ENDIF C C**** On defini les CHPOINTs de sortie et on active les MPOVALs C des CHPOINTs en entre C C DE C NC = 1 N = NCEN SEGINI, DE C C DE initialise a 0.0D0 C N.B.: MSOUPO, MCHPOI sont relatif a ITSEUI C SEGINI, MSOUP1 = MSOUPO MSOUP1.IPOVAL = DE SEGDES MSOUP1 SEGINI, MCHPO1 = MCHPOI MCHPO1.IPCHP(1) = MSOUP1 MCHPO1.MOCHDE(1:40) = ' ' MCHPO1.MOCHDE(41:72) = ' ' SEGDES MCHPO1 IDE = MCHPO1 C C NRYH2 C MCHPOI = IRYH2 SEGACT MCHPOI MSOUPO = MCHPOI.IPCHP(1) SEGACT MSOUPO RYH2 = MSOUPO.IPOVAL SEGINI, NRYH2 = RYH2 SEGINI, MSOUP1 = MSOUPO MSOUP1.IPOVAL = NRYH2 SEGDES MSOUP1 SEGINI, MCHPO1 = MCHPOI MCHPO1.IPCHP(1) = MSOUP1 MCHPO1.MOCHDE(1:40) = ' ' MCHPO1.MOCHDE(41:72) = ' ' SEGDES MCHPO1 INH2 = MCHPO1 C C NRYO2 C MCHPOI = IRYO2 SEGACT MCHPOI MSOUPO = MCHPOI.IPCHP(1) SEGACT MSOUPO RYO2 = MSOUPO.IPOVAL SEGINI, NRYO2 = RYO2 SEGINI, MSOUP1 = MSOUPO MSOUP1.IPOVAL = NRYO2 SEGDES MSOUP1 SEGINI, MCHPO1 = MCHPOI MCHPO1.IPCHP(1) = MSOUP1 MCHPO1.MOCHDE(1:40) = ' ' MCHPO1.MOCHDE(41:72) = ' ' SEGDES MCHPO1 INO2 = MCHPO1 C C NRYH2O C MCHPOI = IRYH2O SEGACT MCHPOI MSOUPO = MCHPOI.IPCHP(1) SEGACT MSOUPO RYH2O = MSOUPO.IPOVAL SEGINI, NRYH2O = RYH2O SEGINI, MSOUP1 = MSOUPO MSOUP1.IPOVAL = NRYH2O SEGDES MSOUP1 SEGINI, MCHPO1 = MCHPOI MCHPO1.IPCHP(1) = MSOUP1 MCHPO1.MOCHDE(1:40) = ' ' MCHPO1.MOCHDE(41:72) = ' ' SEGDES MCHPO1 INH2O = MCHPO1 C C TEMP C MCHPOI = ITEMP SEGACT MCHPOI MSOUPO = MCHPOI.IPCHP(1) SEGDES MCHPOI SEGACT MSOUPO TEMP = MSOUPO.IPOVAL SEGDES MSOUPO SEGACT TEMP C SEGACT RYH2, RYO2, RYH2O, TSEUIL C & TEMP.VPOCHA, RYH2.VPOCHA, RYO2.VPOCHA, RYH2O.VPOCHA, & DE.VPOCHA, NRYH2.VPOCHA, NRYO2.VPOCHA, NRYH2O.VPOCHA, & LOGNEG, MESERR, VALER) C IF(LOGNEG)THEN C C******* Temperature ou densite' negative C C C******* Message d'erreur standard C 41 2 C %m1:8 = %r1 inférieur à %r2 C MOTERR(1:8) = MESERR(1:8) REAERR(1) = REAL(VALER) REAERR(2) = 0.0 GOTO 9999 ENDIF C SEGDES, TSEUIL, TEMP, RYH2, RYO2, RYH2O, DE, NRYH2, NRYO2, NRYH2O C C**** Ecriture du CHPOINT contenant IDE (dernier), INH2O, INO2, INH2 C C 9999 CONTINUE C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales