4 subroutine flux2(ixy,maxm,meqn,maux,mbc,mx,
5 & q1d,dtdx1d,aux1,aux2,aux3,
6 & faddm,faddp,gaddm,gaddp,cfl1d,wave,s,
7 & amdq,apdq,cqxx,bmasdq,bpasdq,
rpn2,rpt2)
58 implicit double precision (a-h,o-z)
60 dimension q1d(meqn,1-mbc:maxm+mbc)
61 dimension amdq(meqn,1-mbc:maxm+mbc)
62 dimension apdq(meqn,1-mbc:maxm+mbc)
63 dimension bmasdq(meqn,1-mbc:maxm+mbc)
64 dimension bpasdq(meqn,1-mbc:maxm+mbc)
65 dimension cqxx(meqn,1-mbc:maxm+mbc)
66 dimension faddm(meqn,1-mbc:maxm+mbc)
67 dimension faddp(meqn,1-mbc:maxm+mbc)
68 dimension gaddm(meqn,1-mbc:maxm+mbc, 2)
69 dimension gaddp(meqn,1-mbc:maxm+mbc, 2)
70 dimension dtdx1d(1-mbc:maxm+mbc)
71 dimension aux1(maux,1-mbc:maxm+mbc)
72 dimension aux2(maux,1-mbc:maxm+mbc)
73 dimension aux3(maux,1-mbc:maxm+mbc)
75 dimension s(mwaves, 1-mbc:maxm+mbc)
76 dimension wave(meqn, mwaves, 1-mbc:maxm+mbc)
79 common /comxyt/ dtcom,dxcom,dycom,tcom,icom,jcom
83 if (mthlim(mw) .gt. 0) limit = .true.
89 do 10 i = 1-mbc, mx+mbc
104 call
rpn2(ixy,maxm,meqn,mwaves,maux,mbc,mx,q1d,q1d,
105 & aux2,aux2,wave,s,amdq,apdq)
110 faddp(m,i) = faddp(m,i) - apdq(m,i)
111 faddm(m,i) = faddm(m,i) + amdq(m,i)
120 cfl1d = dmax1(cfl1d, dtdx1d(i)*s(mw,i),
121 & -dtdx1d(i-1)*s(mw,i))
124 if (method(2).eq.1) go to 130
130 if (limit) call
limiter(maxm,meqn,mwaves,mbc,mx,wave,s,mthlim)
138 dtdxave = 0.5d0 * (dtdx1d(i-1) + dtdx1d(i))
148 abs_sign = dsign(1.d0,s(mw,i))
150 abs_sign = dabs(s(mw,i))
153 cqxx(m,i) = cqxx(m,i) + abs_sign
154 & * (1.d0 - dabs(s(mw,i))*dtdxave) * wave(m,mw,i)
157 faddm(m,i) = faddm(m,i) + 0.5d0 * cqxx(m,i)
158 faddp(m,i) = faddp(m,i) + 0.5d0 * cqxx(m,i)
164 if (method(3).eq.0) go to 999
166 if (method(2).gt.1 .and. method(3).eq.2)
then
170 amdq(m,i) = amdq(m,i) + cqxx(m,i)
171 apdq(m,i) = apdq(m,i) - cqxx(m,i)
181 call rpt2(ixy,1,maxm,meqn,mwaves,maux,mbc,mx,
182 & q1d,q1d,aux1,aux2,aux3,
183 & amdq,bmasdq,bpasdq)
188 gupdate = 0.5d0*dtdx1d(i-1) * bmasdq(m,i)
189 gaddm(m,i-1,1) = gaddm(m,i-1,1) - gupdate
190 gaddp(m,i-1,1) = gaddp(m,i-1,1) - gupdate
192 gupdate = 0.5d0*dtdx1d(i-1) * bpasdq(m,i)
193 gaddm(m,i-1,2) = gaddm(m,i-1,2) - gupdate
194 gaddp(m,i-1,2) = gaddp(m,i-1,2) - gupdate
198 call rpt2(ixy,2,maxm,meqn,mwaves,maux,mbc,mx,
199 & q1d,q1d,aux1,aux2,aux3,
200 & apdq,bmasdq,bpasdq)
205 gupdate = 0.5d0*dtdx1d(i) * bmasdq(m,i)
206 gaddm(m,i,1) = gaddm(m,i,1) - gupdate
207 gaddp(m,i,1) = gaddp(m,i,1) - gupdate
209 gupdate = 0.5d0*dtdx1d(i) * bpasdq(m,i)
210 gaddm(m,i,2) = gaddm(m,i,2) - gupdate
211 gaddp(m,i,2) = gaddp(m,i,2) - gupdate
subroutine limiter(maxm, meqn, mwaves, mbc, mx, wave, s, mthlim)
subroutine rpn2(ixy, maxm, meqn, mwaves, maux, mbc, mx, ql, qr, auxl, auxr, wave, s, amdq, apdq)
subroutine flux2(ixy, maxm, meqn, maux, mbc, mx, q1d, dtdx1d, aux1, aux2, aux3, faddm, faddp, gaddm, gaddp, cfl1d, wave, s, amdq, apdq, cqxx, bmasdq, bpasdq, rpn2, rpt2)