vtf-logo

src/3d/equations/euler/rprhok/flx3eurhok.f

c
c =========================================================
      subroutine flx3(ixyz,maxmx,meqn,mbc,mx,q,maux,aux,f)
c =========================================================
c
c     # Copyright (C) 2002 Ralf Deiterding
c     # Brandenburgische Universitaet Cottbus
c
c     # Copyright (C) 2003-2007 California Institute of Technology
c     # Ralf Deiterding, ralf@amroc.net
c
      implicit double precision (a-h,o-z)
      include "ck.i"
c
      dimension q(1-mbc:maxmx+mbc, meqn)
      dimension aux(1-mbc:maxmx+mbc, maux)
      dimension f(1-mbc:maxmx+mbc, meqn)
      dimension rk(LeNsp)
c
      if (ixyz .eq. 1) then
         mu = Nsp+1
         mv = Nsp+2
         mw = Nsp+3
      else if(ixyz .eq. 2)then
         mu = Nsp+2
         mv = Nsp+3
         mw = Nsp+1
      else
         mu = Nsp+3
         mv = Nsp+1
         mw = Nsp+2
      endif
      mE = Nsp+4
      mT = Nsp+5
c
      do i=1-mbc,mx+mbc
         rho  = 0.d0
         rhoW = 0.d0
         do m = 1, Nsp
            rk(m) = q(i,m)
            rho  = rho  + q(i,m)
            rhoW = rhoW + q(i,m)/Wk(m)
         enddo
         u = q(i,mu)/rho
         v = q(i,mv)/rho
         w = q(i,mw)/rho
         rhoe = q(i,mE)-0.5d0*rho*(u**2+v**2+w**2)
         call SolveTrhok(q(i,mT),rhoe,rhoW,rk,Nsp,ifail) 
         if (ifail.ne.0) write(6,100) i,q(i,mT)
         p = rhoW*RU*q(i,mT)
         do m = 1, Nsp
            f(i,m)  = u*q(i,m)
         enddo
         f(i,mu) = u*q(i,mu)+p
         f(i,mv) = u*q(i,mv)
         f(i,mw) = u*q(i,mw)
         f(i,mE) = u*(q(i,mE)+p)
         f(i,mT) = 0.d0
      enddo
c
 100  format('flx3eurhok q(',i2,'): T out of range using: ',f16.8)
      return
      end
c

<