cantera/samples/f77/demo.f
Ray Speth 2528df0f75 Reorganized source tree structure
These changes make it unnecessary to copy header files around during
the build process, which tends to confuse IDEs and debuggers. The
headers which comprise Cantera's external C++ interface are now in
the 'include' directory.

All of the samples and demos are now in the 'samples' subdirectory.
2012-02-12 02:27:14 +00:00

87 lines
2.5 KiB
Fortran

c
c Replace this sample main program with your program
c
c This program uses functions defined in demo_ftnlib.cpp to create
c an ideal gas mixture and print some its properties.
c
c For a C++ version of this program, see ../cxx/demo.cpp.
c
program demo
implicit double precision (a-h,o-z)
parameter (MAXSP = 20, MAXRXNS = 100)
double precision q(MAXRXNS), qf(MAXRXNS), qr(MAXRXNS)
double precision diff(MAXSP)
character*80 eq
character*20 name
c
write(*,*)
write(*,*) '******** Fortran 77 Test Program ********'
call newIdealGasMix('h2o2.cti','ohmech','Mix')
t = 1200.0
p = 101325.0
call setState_TPX_String(t, p,
$ 'H2:2, O2:1, OH:0.01, H:0.01, O:0.01')
c
write(*,*) 'Initial state properties:'
write(*,10) temperature(), pressure(), density(),
$ enthalpy_mole(), entropy_mole(), cp_mole()
c compute the equilibrium state holding the specific
c enthalpy and pressure constant
call equilibrate('HP')
write(*,*) 'Equilibrium state properties:'
write(*,10) temperature(), pressure(), density(),
$ enthalpy_mole(), entropy_mole(), cp_mole()
10 format(//'Temperature: ',g14.5,' K'/
$ 'Pressure: ',g14.5,' Pa'/
$ 'Density: ',g14.5,' kg/m3'/
$ 'Molar Enthalpy:',g14.5,' J/kmol'/
$ 'Molar Entropy: ',g14.5,' J/kmol-K'/
$ 'Molar cp: ',g14.5,' J/kmol-K'//)
c
c Reaction information
c
irxns = nReactions()
c forward and reverse rates of progress should be equal
c in equilibrium states
call getFwdRatesOfProgress(qf)
call getRevRatesOfProgress(qr)
c net rates of progress should be zero in equilibrium states
call getNetRatesOfProgress(q)
c for each reaction, print the equation and the rates of progress
do i = 1,irxns
call getReactionEqn(i,eq)
write(*,20) eq,qf(i),qr(i),q(i)
20 format(a27,3e14.5,' kmol/m3/s')
end do
c
c Transport properties
c
dnu = viscosity()
dlam = thermalConductivity()
call getMixDiffCoeffs(diff)
write(*,30) dnu, dlam
30 format(//'Viscosity: ',g14.5,' Pa-s'/
$ 'Thermal conductivity: ',g14.5,' W/m/K'/)
write(*,*) 'Species ',
$ ' Diffusion Coefficient'
nsp = nSpecies()
do k = 1, nsp
call getSpeciesName(k, name)
write(*,40) name, diff(k)
40 format(' ',a20,e14.5,' m2/s')
end do
stop
end