89 energy,qsourcesplit,active)
97 integer,
intent(in) :: ixI^L, ixO^L
98 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
99 double precision,
intent(inout) :: w(ixI^S,1:nw)
100 logical,
intent(in) :: energy,qsourcesplit
101 logical,
intent(inout) :: active
103 double precision:: lambda(ixI^S,ndir,ndir),tmp(ixI^S),vlambda(ixI^S,ndir),divv23,nabla_v(ndim,ndir),vc_mus(ixI^S)
105 logical :: total_energy=.false.
107 if(qsourcesplit .eqv.
vc_split)
then
109 if(energy.and..not.phys_internal_e) total_energy=.true.
114 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
115 call mpistop(
"error for viscous source addition, 2 layers needed")
123 {
do ix^db=ixmin^db,ixmax^db\}
125 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
127 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
129 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
131 lambda(ix^d,2,1)=(wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
133 lambda(ix^d,2,2)=(wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
135 lambda(ix^d,2,3)=(wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))
137 lambda(ix^d,3,1)=(wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
139 lambda(ix^d,3,2)=(wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
141 lambda(ix^d,3,3)=(wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))
142 if(phys_internal_e)
then
143 nabla_v(1,1)=lambda(ix^d,1,1)
144 nabla_v(1,2)=lambda(ix^d,1,2)
145 nabla_v(1,3)=lambda(ix^d,1,3)
146 nabla_v(2,1)=lambda(ix^d,2,1)
147 nabla_v(2,2)=lambda(ix^d,2,2)
148 nabla_v(2,3)=lambda(ix^d,2,3)
149 nabla_v(3,1)=lambda(ix^d,3,1)
150 nabla_v(3,2)=lambda(ix^d,3,2)
151 nabla_v(3,3)=lambda(ix^d,3,3)
154 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
155 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*vc_mus(ix^d)
156 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*vc_mus(ix^d)
157 lambda(ix^d,2,1)=lambda(ix^d,1,2)
158 lambda(ix^d,3,1)=lambda(ix^d,1,3)
159 lambda(ix^d,3,2)=lambda(ix^d,2,3)
160 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
161 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
162 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
163 lambda(ix^d,3,3)=(two*lambda(ix^d,3,3)-divv23)*vc_mus(ix^d)
164 if(total_energy)
then
165 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
166 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
167 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
169 if(phys_internal_e)
then
170 w(ix^d,e_)=w(ix^d,e_)+&
171 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
172 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
173 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
177 {
do ix^db=ixomin^db,ixomax^db\}
178 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
179 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
180 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdt+w(ix^d,mom(1))
181 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
182 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
183 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdt+w(ix^d,mom(2))
184 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
185 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+&
186 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3)))*qdt+w(ix^d,mom(3))
190 {
do ix^db=ixmin^db,ixmax^db\}
192 lambda(ix^d,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
194 lambda(ix^d,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
196 lambda(ix^d,2,1)=(wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))
198 lambda(ix^d,2,2)=(wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))
199 if(phys_internal_e)
then
200 nabla_v(1,1)=lambda(ix^d,1,1)
201 nabla_v(1,2)=lambda(ix^d,1,2)
202 nabla_v(2,1)=lambda(ix^d,2,1)
203 nabla_v(2,2)=lambda(ix^d,2,2)
205 nabla_v(1,3)=lambda(ix^d,1,3)
206 nabla_v(2,3)=lambda(ix^d,2,3)
210 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
211 lambda(ix^d,2,1)=lambda(ix^d,1,2)
212 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
213 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
214 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
217 lambda(ix1,ix2,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))*vc_mus(ix^d)
219 lambda(ix1,ix2,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*vc_mus(ix^d)
220 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
221 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
222 lambda(ix1,ix2,3,3)=-divv23*vc_mus(ix^d)
223 if(total_energy)
then
224 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,1)
225 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,2)
226 vlambda(ix1,ix2,3)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,3)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,3)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,3)
228 if(phys_internal_e)
then
229 w(ix^d,e_)=w(ix^d,e_)+&
230 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
231 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)&
232 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3))
235 if(total_energy)
then
236 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
237 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
239 if(phys_internal_e)
then
240 w(ix^d,e_)=w(ix^d,e_)+&
241 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
242 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
247 {
do ix^db=ixomin^db,ixomax^db\}
248 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
249 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdt+w(ix^d,mom(1))
250 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
251 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdt+w(ix^d,mom(2))
253 w(ix1,ix2,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
254 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2)))*qdt+w(ix1,ix2,mom(3))
261 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
263 if(phys_internal_e)
then
264 nabla_v(1,1)=lambda(ix^d,1,1)
266 divv23=two*third*lambda(ix1,1,1)
267 lambda(ix1,1,1)=(two*lambda(ix1,1,1)-divv23)*vc_mus(ix^d)
270 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
271 if(phys_internal_e) nabla_v(1,2)=lambda(ix^d,1,2)
272 lambda(ix1,1,2)=lambda(ix1,1,2)*vc_mus(ix^d)
274 lambda(ix1,2,1)=lambda(ix1,1,2)
275 lambda(ix1,2,2)=-divv23*vc_mus(ix^d)
276 if(total_energy)
then
277 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
278 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
280 if(phys_internal_e)
then
281 w(ix^d,e_)=w(ix^d,e_)+&
282 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)&
283 +lambda(ix^d,1,2)*nabla_v(1,2))
285 else if(ndir==3)
then
287 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
289 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
290 if(phys_internal_e)
then
291 nabla_v(1,2)=lambda(ix^d,1,2)
292 nabla_v(1,3)=lambda(ix^d,1,3)
294 lambda(ix1,1,2)=lambda(ix1,1,2)*vc_mus(ix^d)
295 lambda(ix1,1,3)=lambda(ix1,1,3)*vc_mus(ix^d)
297 lambda(ix1,2,1)=lambda(ix1,1,2)
298 lambda(ix1,3,1)=lambda(ix1,1,3)
299 lambda(ix1,2,2)=-divv23*vc_mus(ix^d)
300 lambda(ix1,3,3)=-divv23*vc_mus(ix^d)
301 if(total_energy)
then
302 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
303 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
304 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
306 if(phys_internal_e)
then
307 w(ix^d,e_)=w(ix^d,e_)+&
308 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)&
309 +lambda(ix^d,1,2)*nabla_v(1,2)&
310 +lambda(ix^d,1,3)*nabla_v(1,3))
313 if(total_energy)
then
314 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
316 if(phys_internal_e)
then
317 w(ix^d,e_)=w(ix^d,e_)+&
318 qdt*(lambda(ix^d,1,1)*nabla_v(1,1))
323 do ix1=ixomin1,ixomax1
325 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(1))
326 else if(ndir==2)
then
327 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(1))
328 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(2))
330 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(1))
331 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(2))
332 w(ix1,mom(3))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix1,mom(3))
336 if(total_energy)
then
339 call divvector(vlambda,ixi^l,ixo^l,tmp)
340 w(ixo^s,e_)=w(ixo^s,e_)+tmp(ixo^s)*qdt
347 energy,qsourcesplit,active)
355 integer,
intent(in) :: ixI^L, ixO^L
356 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
357 double precision,
intent(inout) :: w(ixI^S,1:nw)
358 logical,
intent(in) :: energy,qsourcesplit
359 logical,
intent(inout) :: active
361 double precision :: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S),tctan(ixI^S),invrsin(ixI^S),nabla_v(ndir,ndir),vc_mus(ixI^S)
362 double precision :: tsin,tcos,divv23
364 logical :: total_energy=.false.
366 if(qsourcesplit .eqv.
vc_split)
then
368 if(energy.and..not.phys_internal_e) total_energy=.true.
373 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
374 call mpistop(
"error for viscous source addition, 2 layers needed")
385 {
do ix^db=ixmin^db,ixmax^db\}
386 invr(ix^d)=1.d0/x(ix^d,1)
389 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
391 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
393 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
395 lambda(ix^d,2,1)=((wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))-wp(ix^d,
v2_))*invr(ix^d)
397 lambda(ix^d,2,2)=((wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v1_))*invr(ix^d)
399 lambda(ix^d,2,3)=((wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v2_)*tcos)*invr(ix^d)
401 invrsin(ix^d)=invr(ix^d)/tsin
402 tctan(ix^d)=tcos/tsin
404 lambda(ix^d,3,1)=((wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))-wp(ix^d,
v3_)*tsin)*invrsin(ix^d)
406 lambda(ix^d,3,2)=((wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))-wp(ix^d,
v3_)*tcos)*invrsin(ix^d)
408 lambda(ix^d,3,3)=((wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+wp(ix^d,
v1_)*tsin+&
409 wp(ix^d,
v2_)*tcos)*invrsin(ix^d)
410 if(phys_internal_e)
then
411 nabla_v(1,1)=lambda(ix^d,1,1)
412 nabla_v(1,2)=lambda(ix^d,1,2)
413 nabla_v(1,3)=lambda(ix^d,1,3)
414 nabla_v(2,1)=lambda(ix^d,2,1)
415 nabla_v(2,2)=lambda(ix^d,2,2)
416 nabla_v(2,3)=lambda(ix^d,2,3)
417 nabla_v(3,1)=lambda(ix^d,3,1)
418 nabla_v(3,2)=lambda(ix^d,3,2)
419 nabla_v(3,3)=lambda(ix^d,3,3)
422 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
423 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*vc_mus(ix^d)
424 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*vc_mus(ix^d)
425 lambda(ix^d,2,1)=lambda(ix^d,1,2)
426 lambda(ix^d,3,1)=lambda(ix^d,1,3)
427 lambda(ix^d,3,2)=lambda(ix^d,2,3)
428 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
429 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
430 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
431 lambda(ix^d,3,3)=(two*lambda(ix^d,3,3)-divv23)*vc_mus(ix^d)
432 if(total_energy)
then
433 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
434 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
435 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
437 if(phys_internal_e)
then
438 w(ix^d,e_)=w(ix^d,e_)+&
439 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
440 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
441 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
445 {
do ix^db=ixomin^db,ixomax^db\}
446 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
447 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
448 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
449 two*lambda(ix^d,1,1)*invr(ix^d)+lambda(ix^d,2,1)*invr(ix^d)*tctan(ix^d))*qdt+w(ix^d,mom(1))
450 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
451 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
452 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
453 two*lambda(ix^d,1,2)*invr(ix^d)+lambda(ix^d,2,2)*invr(ix^d)*tctan(ix^d)-lambda(ix^d,3,3)*tctan(ix^d)*invr(ix^d)**2)*qdt+&
455 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
456 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
457 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invrsin(ix^d)+&
458 two*lambda(ix^d,1,3)*invr(ix^d)+lambda(ix^d,2,3)*(invr(ix^d)+invr(ix^d)**2)*tctan(ix^d))*qdt+w(ix^d,mom(3))
462 {
do ix^db=ixmin^db,ixmax^db\}
463 invr(ix1,ix2)=1.d0/x(ix1,ix2,1)
465 lambda(ix1,ix2,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
467 lambda(ix1,ix2,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
469 lambda(ix1,ix2,2,1)=((wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))-wp(ix1,ix2,
v2_))*invr(ix1,ix2)
471 lambda(ix1,ix2,2,2)=((wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix1,ix2,
v1_))*invr(ix1,ix2)
472 tcos=dcos(x(ix1,ix2,2))
473 tsin=dsin(x(ix1,ix2,2))
474 tctan(ix1,ix2)=tcos/tsin
476 if(phys_internal_e)
then
477 nabla_v(1,1)=lambda(ix^d,1,1)
478 nabla_v(1,2)=lambda(ix^d,1,2)
479 nabla_v(2,1)=lambda(ix^d,2,1)
480 nabla_v(2,2)=lambda(ix^d,2,2)
483 lambda(ix1,ix2,1,2)=(lambda(ix1,ix2,1,2)+lambda(ix1,ix2,2,1))*vc_mus(ix^d)
484 lambda(ix1,ix2,2,1)=lambda(ix1,ix2,1,2)
485 divv23=two*third*(lambda(ix1,ix2,1,1)+lambda(ix1,ix2,2,2))
486 lambda(ix1,ix2,1,1)=(two*lambda(ix1,ix2,1,1)-divv23)*vc_mus(ix^d)
487 lambda(ix1,ix2,2,2)=(two*lambda(ix1,ix2,2,2)-divv23)*vc_mus(ix^d)
488 if(total_energy)
then
489 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
490 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
492 if(phys_internal_e)
then
493 w(ix^d,e_)=w(ix^d,e_)+&
494 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
495 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
498 invrsin(ix1,ix2)=invr(ix1,ix2)/tsin
500 lambda(ix1,ix2,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
502 lambda(ix1,ix2,2,3)=((wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix1,ix2,
v2_)*tcos)*invr(ix1,ix2)
504 lambda(ix1,ix2,3,1)=-wp(ix1,ix2,
v3_)*tsin*invrsin(ix1,ix2)
506 lambda(ix1,ix2,3,2)=-wp(ix1,ix2,
v3_)*tcos*invrsin(ix1,ix2)
508 lambda(ix1,ix2,3,3)=(wp(ix1,ix2,
v1_)*tsin+wp(ix1,ix2,
v2_)*tcos)*invrsin(ix1,ix2)
509 if(phys_internal_e)
then
510 nabla_v(1,1)=lambda(ix^d,1,1)
511 nabla_v(1,2)=lambda(ix^d,1,2)
512 nabla_v(1,3)=lambda(ix^d,1,3)
513 nabla_v(2,1)=lambda(ix^d,2,1)
514 nabla_v(2,2)=lambda(ix^d,2,2)
515 nabla_v(2,3)=lambda(ix^d,2,3)
516 nabla_v(3,1)=lambda(ix^d,3,1)
517 nabla_v(3,2)=lambda(ix^d,3,2)
518 nabla_v(3,3)=lambda(ix^d,3,3)
521 lambda(ix1,ix2,1,2)=(lambda(ix1,ix2,1,2)+lambda(ix1,ix2,2,1))*vc_mus(ix^d)
522 lambda(ix1,ix2,1,3)=(lambda(ix1,ix2,1,3)+lambda(ix1,ix2,3,1))*vc_mus(ix^d)
523 lambda(ix1,ix2,2,3)=(lambda(ix1,ix2,2,3)+lambda(ix1,ix2,3,2))*vc_mus(ix^d)
524 lambda(ix1,ix2,2,1)=lambda(ix1,ix2,1,2)
525 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
526 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
527 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
528 lambda(ix1,ix2,1,1)=(two*lambda(ix1,ix2,1,1)-divv23)*vc_mus(ix^d)
529 lambda(ix1,ix2,2,2)=(two*lambda(ix1,ix2,2,2)-divv23)*vc_mus(ix^d)
530 lambda(ix1,ix2,3,3)=(two*lambda(ix1,ix2,3,3)-divv23)*vc_mus(ix^d)
531 if(total_energy)
then
532 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,1)
533 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,2)
534 vlambda(ix1,ix2,3)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,3)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,3)+wp(ix1,ix2,
v3_)*lambda(ix1,ix2,3,3)
536 if(phys_internal_e)
then
537 w(ix^d,e_)=w(ix^d,e_)+&
538 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
539 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
540 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
545 {
do ix^db=ixomin^db,ixomax^db\}
547 w(ix1,ix2,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
548 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
549 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2))*qdt+w(ix1,ix2,mom(1))
550 w(ix1,ix2,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
551 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
552 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2))*qdt+w(ix1,ix2,mom(2))
554 w(ix1,ix2,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
555 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
556 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2))*qdt+w(ix1,ix2,mom(1))
557 w(ix1,ix2,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
558 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
559 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2)-&
560 lambda(ix1,ix2,3,3)*tctan(ix1,ix2)*invr(ix1,ix2)**2)*qdt+w(ix1,ix2,mom(2))
561 w(ix1,ix2,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
562 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix1,ix2)+&
563 two*lambda(ix1,ix2,1,3)*invr(ix1,ix2)+lambda(ix1,ix2,2,3)*(invr(ix1,ix2)+invr(ix1,ix2)**2)*tctan(ix1,ix2))*qdt+&
570 invr(ix1)=1.d0/x(ix1,1)
572 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
574 if(phys_internal_e)
then
575 nabla_v(1,1)=lambda(ix^d,1,1)
577 divv23=two*third*lambda(ix1,1,1)
578 lambda(ix1,1,1)=(two*lambda(ix1,1,1)-divv23)*vc_mus(ix^d)
579 if(total_energy)
then
580 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
582 if(phys_internal_e)
then
583 w(ix^d,e_)=w(ix^d,e_)+&
584 qdt*lambda(ix^d,1,1)*nabla_v(1,1)
586 else if(ndir==2)
then
588 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
590 lambda(ix1,2,2)=-divv23
591 if(phys_internal_e)
then
592 nabla_v(1,1)=lambda(ix^d,1,1)
593 nabla_v(1,2)=lambda(ix^d,1,2)
594 nabla_v(2,1)=lambda(ix^d,2,1)
595 nabla_v(2,2)=lambda(ix^d,2,2)
598 lambda(ix1,1,2)=lambda(ix1,1,2)*vc_mus(ix^d)
599 lambda(ix1,2,1)=lambda(ix1,1,2)
600 divv23=two*third*(lambda(ix1,1,1)+lambda(ix1,2,2))
601 lambda(ix1,1,1)=(two*lambda(ix1,1,1)-divv23)*vc_mus(ix^d)
602 lambda(ix1,2,2)=(two*lambda(ix1,2,2)-divv23)*vc_mus(ix^d)
603 if(total_energy)
then
604 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
605 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
607 if(phys_internal_e)
then
608 w(ix^d,e_)=w(ix^d,e_)+&
609 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
610 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
616 invrsin(ix1)=invr(ix1)/tsin
617 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
618 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
620 lambda(ix1,2,2)=-divv23
621 lambda(ix1,2,3)=wp(ix1,
v2_)*tcos*invr(ix1)
622 lambda(ix1,3,1)=-wp(ix1,
v3_)*tsin*invrsin(ix1)
623 lambda(ix1,3,2)=-wp(ix1,
v3_)*tcos*invrsin(ix1)
624 lambda(ix1,3,3)=(wp(ix1,
v1_)*tsin+wp(ix1,
v2_)*tcos)*invrsin(ix1)
625 if(phys_internal_e)
then
626 nabla_v(1,1)=lambda(ix^d,1,1)
627 nabla_v(1,2)=lambda(ix^d,1,2)
628 nabla_v(1,3)=lambda(ix^d,1,3)
629 nabla_v(2,1)=lambda(ix^d,2,1)
630 nabla_v(2,2)=lambda(ix^d,2,2)
631 nabla_v(2,3)=lambda(ix^d,2,3)
632 nabla_v(3,1)=lambda(ix^d,3,1)
633 nabla_v(3,2)=lambda(ix^d,3,2)
634 nabla_v(3,3)=lambda(ix^d,3,3)
637 lambda(ix1,1,2)=(lambda(ix1,1,2)+lambda(ix1,2,1))*vc_mus(ix^d)
638 lambda(ix1,1,3)=(lambda(ix1,1,3)+lambda(ix1,3,1))*vc_mus(ix^d)
639 lambda(ix1,2,3)=(lambda(ix1,2,3)+lambda(ix1,3,2))*vc_mus(ix^d)
640 lambda(ix1,3,1)=lambda(ix1,1,3)
641 lambda(ix1,2,3)=lambda(ix1,3,2)
642 divv23=two*third*(lambda(ix1,1,1)+lambda(ix1,2,2)+lambda(ix1,3,3))
643 lambda(ix1,1,1)=(two*lambda(ix1,1,1)-divv23)*vc_mus(ix^d)
644 lambda(ix1,2,2)=(two*lambda(ix1,2,2)-divv23)*vc_mus(ix^d)
645 lambda(ix1,3,3)=(two*lambda(ix1,3,3)-divv23)*vc_mus(ix^d)
646 if(total_energy)
then
647 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
648 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
649 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
651 if(phys_internal_e)
then
652 w(ix^d,e_)=w(ix^d,e_)+&
653 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
654 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
655 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
660 do ix1=ixomin1,ixomax1
662 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
663 two*lambda(ix1,1,1)*invr(ix1))*qdt+w(ix1,mom(1))
664 else if(ndir==2)
then
665 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
666 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1))*qdt+w(ix1,mom(1))
667 w(ix1,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
668 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1))*qdt+w(ix1,mom(2))
670 w(ix1,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
671 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1))*qdt+w(ix1,mom(1))
672 w(ix1,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
673 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1)-lambda(ix1,3,3)*tctan(ix1)*invr(ix1)**2)*qdt+&
675 w(ix1,mom(3))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
676 two*lambda(ix1,1,3)*invr(ix1)+lambda(ix1,2,3)*(invr(ix1)+invr(ix1)**2)*tctan(ix1))*qdt+w(ix1,mom(3))
680 if(total_energy)
then
683 call divvector(vlambda,ixi^l,ixo^l,invr)
684 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)*qdt
692 energy,qsourcesplit,active)
700 integer,
intent(in) :: ixI^L, ixO^L
701 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
702 double precision,
intent(inout) :: w(ixI^S,1:nw)
703 logical,
intent(in) :: energy,qsourcesplit
704 logical,
intent(inout) :: active
706 double precision:: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S),nabla_v(ndir,ndir),vc_mus(ixI^S)
707 double precision :: divv23
709 logical :: total_energy=.false.
711 if(qsourcesplit .eqv.
vc_split)
then
713 if(energy.and..not.phys_internal_e) total_energy=.true.
718 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
719 call mpistop(
"error for viscous source addition, 2 layers needed")
730 {
do ix^db=ixmin^db,ixmax^db\}
731 invr(ix^d)=1.d0/x(ix^d,1)
733 lambda(ix^d,1,1)=(wp(ix1+1,ix2,ix3,
v1_)-wp(ix1-1,ix2,ix3,
v1_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
735 lambda(ix^d,1,2)=(wp(ix1+1,ix2,ix3,
v2_)-wp(ix1-1,ix2,ix3,
v2_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
737 lambda(ix^d,1,3)=(wp(ix1+1,ix2,ix3,
v3_)-wp(ix1-1,ix2,ix3,
v3_))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))
739 lambda(ix^d,2,1)=((wp(ix1,ix2+1,ix3,
v1_)-wp(ix1,ix2-1,ix3,
v1_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))-wp(ix^d,
v2_))*invr(ix^d)
741 lambda(ix^d,2,2)=((wp(ix1,ix2+1,ix3,
v2_)-wp(ix1,ix2-1,ix3,
v2_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))+wp(ix^d,
v1_))*invr(ix^d)
743 lambda(ix^d,2,3)=(wp(ix1,ix2+1,ix3,
v3_)-wp(ix1,ix2-1,ix3,
v3_))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)
745 lambda(ix^d,3,1)=(wp(ix1,ix2,ix3+1,
v1_)-wp(ix1,ix2,ix3-1,
v1_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
747 lambda(ix^d,3,2)=(wp(ix1,ix2,ix3+1,
v2_)-wp(ix1,ix2,ix3-1,
v2_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
749 lambda(ix^d,3,3)=(wp(ix1,ix2,ix3+1,
v3_)-wp(ix1,ix2,ix3-1,
v3_))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))*invr(ix^d)
750 if(phys_internal_e)
then
751 nabla_v(1,1)=lambda(ix^d,1,1)
752 nabla_v(1,2)=lambda(ix^d,1,2)
753 nabla_v(1,3)=lambda(ix^d,1,3)
754 nabla_v(2,1)=lambda(ix^d,2,1)
755 nabla_v(2,2)=lambda(ix^d,2,2)
756 nabla_v(2,3)=lambda(ix^d,2,3)
757 nabla_v(3,1)=lambda(ix^d,3,1)
758 nabla_v(3,2)=lambda(ix^d,3,2)
759 nabla_v(3,3)=lambda(ix^d,3,3)
762 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
763 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*vc_mus(ix^d)
764 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*vc_mus(ix^d)
765 lambda(ix^d,2,1)=lambda(ix^d,1,2)
766 lambda(ix^d,3,1)=lambda(ix^d,1,3)
767 lambda(ix^d,3,2)=lambda(ix^d,2,3)
768 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
769 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
770 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
771 lambda(ix^d,3,3)=(two*lambda(ix^d,3,3)-divv23)*vc_mus(ix^d)
772 if(total_energy)
then
773 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
774 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
775 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
777 if(phys_internal_e)
then
778 w(ix^d,e_)=w(ix^d,e_)+&
779 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
780 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
781 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
785 {
do ix^db=ixomin^db,ixomax^db\}
786 w(ix^d,mom(1))=((lambda(ix1+1,ix2,ix3,1,1)-lambda(ix1-1,ix2,ix3,1,1))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
787 (lambda(ix1,ix2+1,ix3,2,1)-lambda(ix1,ix2-1,ix3,2,1))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
788 (lambda(ix1,ix2,ix3+1,3,1)-lambda(ix1,ix2,ix3-1,3,1))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
789 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
790 w(ix^d,mom(2))=((lambda(ix1+1,ix2,ix3,1,2)-lambda(ix1-1,ix2,ix3,1,2))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
791 (lambda(ix1,ix2+1,ix3,2,2)-lambda(ix1,ix2-1,ix3,2,2))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
792 (lambda(ix1,ix2,ix3+1,3,2)-lambda(ix1,ix2,ix3-1,3,2))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
793 two*lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
794 w(ix^d,mom(3))=((lambda(ix1+1,ix2,ix3,1,3)-lambda(ix1-1,ix2,ix3,1,3))/(x(ix1+1,ix2,ix3,1)-x(ix1-1,ix2,ix3,1))+&
795 (lambda(ix1,ix2+1,ix3,2,3)-lambda(ix1,ix2-1,ix3,2,3))/(x(ix1,ix2+1,ix3,2)-x(ix1,ix2-1,ix3,2))*invr(ix^d)+&
796 (lambda(ix1,ix2,ix3+1,3,3)-lambda(ix1,ix2,ix3-1,3,3))/(x(ix1,ix2,ix3+1,3)-x(ix1,ix2,ix3-1,3))+&
797 lambda(ix^d,1,3)*invr(ix^d))*qdt+w(ix^d,mom(3))
801 {
do ix^db=ixmin^db,ixmax^db\}
802 invr(ix^d)=1.d0/x(ix^d,1)
804 lambda(ix^d,1,1)=(wp(ix1+1,ix2,
v1_)-wp(ix1-1,ix2,
v1_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
806 lambda(ix^d,1,2)=(wp(ix1+1,ix2,
v2_)-wp(ix1-1,ix2,
v2_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
809 lambda(ix^d,2,1)=((wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))-wp(ix^d,
v2_))*invr(ix^d)
811 lambda(ix^d,2,2)=((wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+wp(ix^d,
v1_))*invr(ix^d)
813 lambda(ix^d,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
815 lambda(ix^d,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
817 lambda(ix^d,3,1)=0.d0
819 lambda(ix^d,3,2)=0.d0
821 lambda(ix^d,3,3)=0.d0
825 lambda(ix^d,2,1)=(wp(ix1,ix2+1,
v1_)-wp(ix1,ix2-1,
v1_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
827 lambda(ix^d,2,2)=(wp(ix1,ix2+1,
v2_)-wp(ix1,ix2-1,
v2_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
829 lambda(ix^d,1,3)=(wp(ix1+1,ix2,
v3_)-wp(ix1-1,ix2,
v3_))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))
831 lambda(ix^d,2,3)=(wp(ix1,ix2+1,
v3_)-wp(ix1,ix2-1,
v3_))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)
833 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
835 lambda(ix^d,3,2)=0.d0
837 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)
841 if(phys_internal_e)
then
842 nabla_v(1,1)=lambda(ix^d,1,1)
843 nabla_v(1,2)=lambda(ix^d,1,2)
844 nabla_v(1,3)=lambda(ix^d,1,3)
845 nabla_v(2,1)=lambda(ix^d,2,1)
846 nabla_v(2,2)=lambda(ix^d,2,2)
847 nabla_v(2,3)=lambda(ix^d,2,3)
848 nabla_v(3,1)=lambda(ix^d,3,1)
849 nabla_v(3,2)=lambda(ix^d,3,2)
850 nabla_v(3,3)=lambda(ix^d,3,3)
853 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
854 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*vc_mus(ix^d)
855 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*vc_mus(ix^d)
856 lambda(ix^d,2,1)=lambda(ix^d,1,2)
857 lambda(ix^d,3,1)=lambda(ix^d,1,3)
858 lambda(ix^d,3,2)=lambda(ix^d,2,3)
859 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
860 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
861 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
862 lambda(ix^d,3,3)=(two*lambda(ix^d,3,3)-divv23)*vc_mus(ix^d)
863 if(total_energy)
then
864 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
865 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
866 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
868 if(phys_internal_e)
then
869 w(ix^d,e_)=w(ix^d,e_)+&
870 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
871 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
872 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
875 if(phys_internal_e)
then
876 nabla_v(1,1)=lambda(ix^d,1,1)
877 nabla_v(1,2)=lambda(ix^d,1,2)
878 nabla_v(2,1)=lambda(ix^d,2,1)
879 nabla_v(2,2)=lambda(ix^d,2,2)
882 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
883 lambda(ix^d,2,1)=lambda(ix^d,1,2)
884 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
885 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
886 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
887 if(total_energy)
then
888 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
889 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
891 if(phys_internal_e)
then
892 w(ix^d,e_)=w(ix^d,e_)+&
893 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
894 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
899 {
do ix^db=ixomin^db,ixomax^db\}
902 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
903 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
904 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
905 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
906 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
907 two*lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
909 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
910 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
911 lambda(ix^d,1,1)*invr(ix^d))*qdt+w(ix^d,mom(1))
912 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
913 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
914 lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
918 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
919 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
920 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
921 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
922 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
923 two*lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
924 w(ix^d,mom(3))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
925 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))*invr(ix^d)+&
926 lambda(ix^d,1,3)*invr(ix^d))*qdt+w(ix^d,mom(3))
928 w(ix^d,mom(1))=((lambda(ix1+1,ix2,1,1)-lambda(ix1-1,ix2,1,1))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
929 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
930 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
931 w(ix^d,mom(2))=((lambda(ix1+1,ix2,1,3)-lambda(ix1-1,ix2,1,3))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
932 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
933 two*lambda(ix^d,1,3)*invr(ix^d))*qdt+w(ix^d,mom(2))
934 w(ix^d,mom(3))=((lambda(ix1+1,ix2,1,2)-lambda(ix1-1,ix2,1,2))/(x(ix1+1,ix2,1)-x(ix1-1,ix2,1))+&
935 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
936 lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(3))
942 {
do ix^db=ixmin^db,ixmax^db\}
943 invr(ix^d)=1.d0/x(ix^d,1)
946 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
947 if(phys_internal_e)
then
948 nabla_v(1,1)=lambda(ix^d,1,1)
950 divv23=two*third*lambda(ix^d,1,1)
951 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
952 if(total_energy)
then
953 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)
955 if(phys_internal_e)
then
956 w(ix^d,e_)=w(ix^d,e_)+&
957 qdt*lambda(ix^d,1,1)*nabla_v(1,1)
959 else if(ndir==2)
then
961 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
963 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
966 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
968 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)
971 lambda(ix^d,2,1)=0.d0
973 lambda(ix^d,2,2)=0.d0
975 if(phys_internal_e)
then
976 nabla_v(1,1)=lambda(ix^d,1,1)
977 nabla_v(1,2)=lambda(ix^d,1,2)
978 nabla_v(2,1)=lambda(ix^d,2,1)
979 nabla_v(2,2)=lambda(ix^d,2,2)
982 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
983 lambda(ix^d,2,1)=lambda(ix^d,1,2)
984 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
985 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
986 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
987 if(total_energy)
then
988 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
989 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
991 if(phys_internal_e)
then
992 w(ix^d,e_)=w(ix^d,e_)+&
993 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)&
994 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2))
998 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))
1000 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
1002 lambda(ix^d,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
1005 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
1007 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)
1009 lambda(ix^d,2,3)=0.d0
1011 lambda(ix^d,3,1)=0.d0
1013 lambda(ix^d,3,2)=0.d0
1015 lambda(ix^d,3,3)=0.d0
1018 lambda(ix^d,2,1)=0.d0
1020 lambda(ix^d,2,2)=0.d0
1022 lambda(ix^d,2,3)=0.d0
1024 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
1026 lambda(ix^d,3,2)=0.d0
1028 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)
1030 if(phys_internal_e)
then
1031 nabla_v(1,1)=lambda(ix^d,1,1)
1032 nabla_v(1,2)=lambda(ix^d,1,2)
1033 nabla_v(1,3)=lambda(ix^d,1,3)
1034 nabla_v(2,1)=lambda(ix^d,2,1)
1035 nabla_v(2,2)=lambda(ix^d,2,2)
1036 nabla_v(2,3)=lambda(ix^d,2,3)
1037 nabla_v(3,1)=lambda(ix^d,3,1)
1038 nabla_v(3,2)=lambda(ix^d,3,2)
1039 nabla_v(3,3)=lambda(ix^d,3,3)
1042 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*vc_mus(ix^d)
1043 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*vc_mus(ix^d)
1044 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*vc_mus(ix^d)
1045 lambda(ix^d,2,1)=lambda(ix^d,1,2)
1046 lambda(ix^d,3,1)=lambda(ix^d,1,3)
1047 lambda(ix^d,3,2)=lambda(ix^d,2,3)
1048 divv23=two*third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
1049 lambda(ix^d,1,1)=(two*lambda(ix^d,1,1)-divv23)*vc_mus(ix^d)
1050 lambda(ix^d,2,2)=(two*lambda(ix^d,2,2)-divv23)*vc_mus(ix^d)
1051 lambda(ix^d,3,3)=(two*lambda(ix^d,3,3)-divv23)*vc_mus(ix^d)
1052 if(total_energy)
then
1053 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)+wp(ix^d,
v3_)*lambda(ix^d,3,1)
1054 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)+wp(ix^d,
v3_)*lambda(ix^d,3,2)
1055 vlambda(ix^d,3)=wp(ix^d,
v1_)*lambda(ix^d,1,3)+wp(ix^d,
v2_)*lambda(ix^d,2,3)+wp(ix^d,
v3_)*lambda(ix^d,3,3)
1057 if(phys_internal_e)
then
1058 w(ix^d,e_)=w(ix^d,e_)+&
1059 qdt*(lambda(ix^d,1,1)*nabla_v(1,1)+lambda(ix^d,2,1)*nabla_v(2,1)+lambda(ix^d,3,1)*nabla_v(3,1)&
1060 +lambda(ix^d,1,2)*nabla_v(1,2)+lambda(ix^d,2,2)*nabla_v(2,2)+lambda(ix^d,3,2)*nabla_v(3,2)&
1061 +lambda(ix^d,1,3)*nabla_v(1,3)+lambda(ix^d,2,3)*nabla_v(2,3)+lambda(ix^d,3,3)*nabla_v(3,3))
1066 {
do ix^db=ixomin^db,ixomax^db\}
1068 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))*qdt+w(ix^d,mom(1))
1069 else if(ndir==2)
then
1071 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1072 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
1073 w(ix^d,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1074 two*lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
1076 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1077 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
1081 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1082 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
1083 w(ix^d,mom(2))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1084 two*lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(2))
1085 w(ix^d,mom(3))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
1086 lambda(ix^d,1,3)*invr(ix^d))*qdt+w(ix^d,mom(3))
1088 w(ix^d,mom(1))=((lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
1089 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d))*qdt+w(ix^d,mom(1))
1090 w(ix^d,mom(2))=((lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
1091 two*lambda(ix^d,1,3)*invr(ix^d))*qdt+w(ix^d,mom(2))
1092 w(ix^d,mom(3))=((lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
1093 lambda(ix^d,1,2)*invr(ix^d))*qdt+w(ix^d,mom(3))
1098 if(total_energy)
then
1101 call divvector(vlambda,ixi^l,ixo^l,invr)
1102 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)*qdt