c $Header: /home/proj/vtfng/vtf/amroc/rim/src/rimstep.f,v 1.2 2004/12/01 20:51:35 ralf Exp $ c subroutine rimstep(nx,ny,nbc,neqn,dx,dy,qnew,qold,dt,cfl,fx,fy) implicit double precision (a-h,o-z) include 'rim2d.i' dimension qnew(neqn,1-nbc:nx+nbc,1-nbc:ny+nbc) dimension qold(neqn,1-nbc:nx+nbc,1-nbc:ny+nbc) dimension fx(neqn,1-nbc:nx+nbc,1-nbc:ny+nbc) dimension fy(neqn,1-nbc:nx+nbc,1-nbc:ny+nbc) c c q is the state vector c entries are: q(1,i,j)=rho c q(2,i,j)=rho*u c q(3,i,j)=rho*v c q(4,i,j)=e_t c q(5,i,j)=rho*zeta c q(6,i,j)=gamma c c this solver works with primitives (den,u,v,p,z) c convert to primitives and initialize common blocks call mkprimitives(qold,nx,ny,nbc,neqn) call slope(p,dpx,dpy,dx,dy,nx,ny,nbc) call slope(u,dux,duy,dx,dy,nx,ny,nbc) call slope(v,dvx,dvy,dx,dy,nx,ny,nbc) call slope(z,dzx,dzy,dx,dy,nx,ny,nbc) call slope(den,ddenx,ddeny,dx,dy,nx,ny,nbc) call funcaux(nx,ny,nbc) call fluxI(nx,ny,nbc,neqn,dx,dy,dt,fx) call fluxJ(nx,ny,nbc,neqn,dx,dy,dt,fy) call integrate(nx,ny,nbc,neqn,dx,dy,dt,fx,fy) call computecfl(nx,ny,dx,dy,dt,cfl) call mkconserved(qnew,nx,ny,nbc,neqn) return end c do j=1,ny c do i=1,nx c do n=1,neqn c qnew(n,i,j) = qold(n,i,j) c & - dt/dx * (fx(n,i+1,j) - fx(n,i,j)) c & - dt/dy * (fy(n,i,j+1) - fy(n,i,j)) c enddo c enddo c enddo