• VTF
  • FSI
  • AMROC
  • SFC
  • Motion
  • STLIB
  • Main Page
  • src/rimstep.f

    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
    

<