c ===================================================== subroutine combl() c ===================================================== c c Create and initialize application specific common-blocks. c c Copyright (C) 2002 Ralf Deiterding c Brandenburgische Universitaet Cottbus c implicit double precision (a-h,o-z) c include "ck.i" include "cuser.i" parameter( lin = 5, lout = 6 ) dimension Xkl(leNsp), Xkr(leNsp) c call cheminit() c open(unit=lin, status='unknown', form='unformatted', & file='tran.bin') call mcinit (lin, lout, lenimc, lenrmc, imcwork, rmcwork) close (lin) c open(unit=lin,status='old',form='formatted',file='init.dat') read (lin, *) vl, ul, pl read (lin, *) (Xkl(k),k=1,Nsp) read (lin, *) vr, ur, pr read (lin, *) (Xkr(k),k=1,Nsp) read (lin, *) sloc, Nden read (lin, *) Temp close (lin) c if (Temp.gt.0.d0) call tabreset(Temp) c if (Nden.eq.1) then rhol = vl rhor = vr Tl = 0.d0 Tr = 0.d0 else rhol = 0.d0 rhor = 0.d0 Tl = vl Tr = vr end if c c Convert kg/m**3 into g/cm**3 rhol = rhol * 1.d-3 rhor = rhor * 1.d-3 c Convert Pa = J/m**2 into dynes/cm**2 pl = pl * 1.d1 pr = pr * 1.d1 c Convert m/sec into cm/sec ul = ul * 1.d2 ur = ur * 1.d2 c sum = 0.d0 do k = 1, Nsp sum = sum + Xkl(k) enddo do k=1,Nsp Xkl(k) = Xkl(k)/sum enddo c call ckxty (Xkl,iwork,rwork,Ykl) call ckmmwy (Ykl,iwork,rwork,Wl) c sum = 0.d0 do k = 1, Nsp sum = sum + Xkr(k) enddo do k=1,Nsp Xkr(k) = Xkr(k)/sum enddo c call ckxty (Xkr,iwork,rwork,Ykr) call ckmmwy (Ykr,iwork,rwork,Wr) c if (Nden.eq.1) then Tl = (pl*Wl)/(rhol*RU) Tr = (pr*Wr)/(rhor*RU) else rhol = (pl*Wl)/(Tl*RU) rhor = (pr*Wr)/(Tr*RU) endif c c # data in left state: rhoul = rhol * ul El = rhol * (0.5d0*ul**2 + avgtabip(Tl,Ykl,hms,Nsp)) - pl c c # data in right state: rhour = rhor * ur Er = rhor * (0.5d0*ur**2 + avgtabip(Tr,Ykr,hms,Nsp)) - pr c return end