c
c
c ==========================================================
subroutine step2(mp,maxm,maxmx,maxmy,mvar,meqn,maux,mwaves,mbc,
& mx,my,qold,aux,dx,dy,t,dt,method,mthlim,cfl,
& fm,fp,gm,gp,faddm,faddp,gaddm,gaddp,
& q1d,dtdx1d,dtdy1d,aux1,aux2,aux3,
& work,mwork,rpn2,rpt2)
c ==========================================================
c
c # Main entry from AMROC. Selects between the wave propagation method
c # of Randall J. LeVeque and Godunov's dimensional splitting.
c
implicit double precision (a-h,o-z)
include "call.i"
c
dimension qold(mvar, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension fm(mvar, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension fp(mvar, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension gm(mvar, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension gp(mvar, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension q1d(1-mbc:maxm+mbc, meqn)
dimension faddm(1-mbc:maxm+mbc, meqn)
dimension faddp(1-mbc:maxm+mbc, meqn)
dimension gaddm(1-mbc:maxm+mbc, meqn, 2)
dimension gaddp(1-mbc:maxm+mbc, meqn, 2)
dimension aux(maux, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc)
dimension aux1(1-mbc:maxm+mbc, maux)
dimension aux2(1-mbc:maxm+mbc, maux)
dimension aux3(1-mbc:maxm+mbc, maux)
dimension dtdx1d(1-mbc:maxm+mbc)
dimension dtdy1d(1-mbc:maxm+mbc)
dimension method(7),mthlim(mwaves)
dimension work(mwork)
external rpn2,rpt2
c
tcom = t
dtcom = dt
dxcom = dx
dycom = dy
mpass = mp
c
if( method(3) .ge. 0 )then
c
c # unsplit version
c
call unsp2(maxm,maxmx,maxmy,mvar,meqn,maux,mwaves,mbc,mx,my,
& qold,aux,dx,dy,dt,method,mthlim,cfl,
& fm,fp,gm,gp,faddm,faddp,gaddm,gaddp,
& q1d,dtdx1d,dtdy1d,aux1,aux2,aux3,
& work,mwork,rpn2,rpt2)
c
else
c # dimensional splitting (fractional steps)
c
call dimsp2(maxm,maxmx,maxmy,mvar,meqn,maux,mwaves,mbc,mx,my,
& qold,aux,dx,dy,dt,method,mthlim,cfl,
& fm,fp,gm,gp,faddm,faddp,gaddm,gaddp,
& q1d,dtdx1d,dtdy1d,aux1,aux2,aux3,
& work,mwork,rpn2,rpt2)
c
endif
c
return
end