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 PPTBHT C ***************** C ------------------------------------------------------------- & ( NCOEL , & NOMCOE , EHCOEL , CPCOEL , WMOLCE ) C ------------------------------------------------------------- C*********************************************************************** C FONCTION : C -------- c@foncb CFONC CFONC PHYSIQUES PARTICULIERES CFONC CFONC CALCUL DE L'ENTHALPIE ET DU CP CFONC A PARTIR DE LA BANDE DE JANAF CFONC CFONC c@fonce C ARGUMENTS c@argub CARGU ._______________.____._____.______________________________________. CARGU ! NOM !TYPE!MODE ! ROLE ! CARGU !_______________!____!_____!______________________________________! CARGU ! NCOEL ! E ! -> ! NOMBRE DE CONST. ELEM. ! CARGU ! NOMCOE(NGAZEM)! A ! -> ! NOM DES CONSTITUANTS ELEMENTAIRES ! CARGU ! EHCOEL ! TR ! <- ! ENTHALPIE POUR CHAQUE CONSTITUANT ! CARGU ! (NGAZEM,NPOT) ! ! ! ELEMENTAIRE ! CARGU ! CPCOEL(NGAZEM)! TR ! <- ! CP POUR CHAQUE CONSTITUANT ! CARGU ! WMOLCE(NGAZEM)! TR ! <- ! MASSE MOLAIRE DE CHAQUE CONSTITUANT ! 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 "cstphy.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 NCOEL C CHARACTER*12 NOMCOE(NGAZEM) C DOUBLE PRECISION EHCOEL(NGAZEM,NPOT) , CPCOEL(NGAZEM) DOUBLE PRECISION WMOLCE (NGAZEM) C C VARIABLES LOCALES C CHARACTER*40 DUMMY CHARACTER*12 NOMESP C INTEGER IND , ICHES , INDTP , INICFF , INJCFF INTEGER NE , NT , NC , IOK INTEGER ICOEFF(NGAZEM) C DOUBLE PRECISION CTH , CTC C DOUBLE PRECISION TLIM(3) , WCOEFF(2,7) , COEFF(NGAZEM,2,7) C C*********************************************************************** C C C======================================================================= C 2. LECTURE DU FICHIER DE DONNEES THERMODYNAMIQUES TABLE DE JANAF C======================================================================= C C Initialisation C C DO ICHES= 1, 12 NOMESP(ICHES:ICHES)=' ' ENDDO C DO NE = 1 , NGAZEM ICOEFF(NE) = 0 DO INICFF = 1, 2 DO INJCFF = 1, 7 COEFF(NE,INICFF,INJCFF) = 0.D0 ENDDO ENDDO ENDDO C DO NE = 1 , NCOEL CPCOEL(NE)= 0.D0 DO NT = 1, NPO EHCOEL(NE,NT)= 0.D0 ENDDO ENDDO C OPEN(UNIT=IMPJNF, FILE='JANAF', STATUS='OLD' , FORM='FORMATTED') C READ (IMPJNF,'(A)') DUMMY C C Lecture des domaines de temperature C READ (IMPJNF,*) (TLIM(INDTP) , INDTP=1,3) C C Boucle de lecture des especes chimiques avec stockage partiel C 5 CONTINUE C READ (IMPJNF,'(A12,6X,A6)') NOMESP,DUMMY C IF (NOMESP(1:3).EQ.'END') GOTO 100 C READ (IMPJNF,*) (WCOEFF(1,INJCFF), INJCFF=1,5) READ (IMPJNF,*) (WCOEFF(1,INJCFF), INJCFF=6,7), & (WCOEFF(2,INJCFF), INJCFF=1,3) READ (IMPJNF,*) (WCOEFF(2,INJCFF), INJCFF=4,7) C C On ne stocke les coefficients que si C l'espece consideree fait partie de l'exemple C DO NE = 1, NCOEL IF ( NOMCOE(NE).EQ.NOMESP ) THEN ICOEFF(NE) = 1 DO INICFF = 1, 2 DO INJCFF = 1, 7 COEFF(NE,INICFF,INJCFF) = WCOEFF(INICFF,INJCFF) ENDDO ENDDO ENDIF ENDDO C GOTO 5 C 100 CONTINUE C C Arret de la lecture si tous les renseignements necessaires ont ete C enregistres C CLOSE(IMPJNF) C C Test et stop eventuel C IOK = 0 DO NE = 1, NCOEL IF(ICOEFF(NE).EQ.0) THEN IOK = IOK + 1 WRITE(NFECRA,1000) NOMCOE(NE) ENDIF ENDDO IF(IOK.NE.0) THEN WRITE(NFECRA,1100) IOK CALL CSEXIT (1) C =========== ENDIF C 1000 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : PHYSIQUE PARTICULIERE ',/, &'@ ********* ',/, &'@ L''ESPECE ',A12 ,' EST INCONNUE DANS JANAF ',/, &'@ ',/, &'@ ' ) 1100 FORMAT( &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/, &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES ',/, &'@ ********* ',/, &'@ PHYSIQUE PARTICULIERE ',/, &'@ ',/, &'@ LE FICHIER PARAMETRIQUE FAIT REFERENCE A ',I10 ,/, &'@ ESPECE(S) INCONNUE(S) DANS JANAF (data/thch). ',/, &'@ ',/, &'@ Le calcul ne sera pas execute. ',/, &'@ ',/, &'@ Verifier le fichier parametrique. ',/, &'@ ',/, &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/, &'@ ',/) C C C============================================================================== C 3. CALCUL DES ENTHALPIES ET DES CP C============================================================================== C C Constante des gaz parfaits en J/mol/K C DO NT = 1,NPO C C Determination du jeu de coefficients utilises C IF (TH(NT) .GT. TLIM(2)) THEN IND = 1 ELSE IND = 2 ENDIF C DO NE = 1, NCOEL EHCOEL(NE,NT) = COEFF(NE,IND,6) + COEFF(NE,IND,1) * TH(NT) CPCOEL(NE) = COEFF(NE,IND,1) CTH = TH(NT) CTC = 1.D0 C C Dans la table de Janaf, les COEFF sont adimensionnels (CP/R,H/R) C DO NC = 2, 5 CTH = CTH * TH(NT) CTC = CTC * TH(NT) EHCOEL(NE,NT) = EHCOEL(NE,NT) & + COEFF(NE,IND,NC) * CTH / DBLE(NC) CPCOEL(NE) = CPCOEL(NE) + COEFF(NE,IND,NC) * CTC ENDDO C C Calcul du CP et du H pour chaque espece C EHCOEL(NE,NT) = EHCOEL(NE,NT) * RR / WMOLCE(NE) CPCOEL(NE) = CPCOEL(NE) * RR / WMOLCE(NE) ENDDO C ENDDO C RETURN C END c@z