101 energy,qsourcesplit,active)
108 integer,
intent(in) :: ixI^L, ixO^L
109 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
110 double precision,
intent(inout) :: w(ixI^S,1:nw)
111 logical,
intent(in) :: energy,qsourcesplit
112 logical,
intent(inout) :: active
114 double precision:: lambda(ixI^S,ndir,ndir),tmp(ixI^S),vlambda(ixI^S,ndir),qdtmu,divv23
119 if(qsourcesplit .eqv.
vc_split)
then
126 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
127 call mpistop(
"error for viscous source addition, 2 layers needed")
132 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
133 call mpistop(
"error for viscous source addition"//&
134 "requested fourth order gradients: 4 layers needed")
139 {
do ix^db=ixmin^db,ixmax^db\}
141 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))*two*qdtmu
143 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))
145 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))
147 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))
149 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))*two*qdtmu
151 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))
153 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))
155 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))
157 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))*two*qdtmu
159 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
160 lambda(ix^d,2,1)=lambda(ix^d,1,2)
161 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*qdtmu
162 lambda(ix^d,3,1)=lambda(ix^d,1,3)
163 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*qdtmu
164 lambda(ix^d,3,2)=lambda(ix^d,2,3)
165 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
166 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
167 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
168 lambda(ix^d,3,3)=lambda(ix^d,3,3)-divv23
170 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)
171 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)
172 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)
176 {
do ix^db=ixomin^db,ixomax^db\}
177 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))+&
178 (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))+&
179 (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))+w(ix^d,mom(1))
180 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))+&
181 (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))+&
182 (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))+w(ix^d,mom(2))
183 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))+&
184 (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))+&
185 (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))+w(ix^d,mom(3))
189 {
do ix^db=ixmin^db,ixmax^db\}
191 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))*two*qdtmu
193 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))
195 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))
197 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))*two*qdtmu
199 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
200 lambda(ix^d,2,1)=lambda(ix^d,1,2)
201 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
202 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
203 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
206 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))*qdtmu
208 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))*qdtmu
209 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
210 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
211 lambda(ix1,ix2,3,3)=-divv23
213 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)
214 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)
215 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)
218 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
219 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
223 {
do ix^db=ixomin^db,ixomax^db\}
224 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))+&
225 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+w(ix^d,mom(1))
226 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))+&
227 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+w(ix^d,mom(2))
229 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))+&
230 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+w(ix1,ix2,mom(3))
237 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))*two*qdtmu
239 divv23=third*lambda(ix1,1,1)
240 lambda(ix1,1,1)=lambda(ix1,1,1)-divv23
243 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu
245 lambda(ix1,2,1)=lambda(ix1,1,2)
246 lambda(ix1,2,2)=-divv23
248 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
249 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
251 else if(ndir==3)
then
253 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu
255 lambda(ix1,2,1)=lambda(ix1,1,2)
256 lambda(ix1,2,2)=-divv23
258 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))*qdtmu
259 lambda(ix1,3,1)=lambda(ix1,1,3)
260 lambda(ix1,3,3)=-divv23
262 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
263 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
264 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
267 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
271 do ix1=ixomin1,ixomax1
273 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(1))
274 else if(ndir==2)
then
275 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(1))
276 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(2))
278 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(1))
279 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(2))
280 w(ix1,mom(3))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+w(ix1,mom(3))
287 call divvector(vlambda,ixi^l,ixo^l,tmp)
288 w(ixo^s,e_)=w(ixo^s,e_)+tmp(ixo^s)
295 energy,qsourcesplit,active)
302 integer,
intent(in) :: ixI^L, ixO^L
303 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
304 double precision,
intent(inout) :: w(ixI^S,1:nw)
305 logical,
intent(in) :: energy,qsourcesplit
306 logical,
intent(inout) :: active
308 double precision :: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S),tctan(ixI^S),invrsin(ixI^S)
309 double precision :: qdtmu,tsin,tcos,divv23
314 if(qsourcesplit .eqv.
vc_split)
then
321 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
322 call mpistop(
"error for viscous source addition, 2 layers needed")
327 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
328 call mpistop(
"error for viscous source addition"//&
329 "requested fourth order gradients: 4 layers needed")
337 {
do ix^db=ixmin^db,ixmax^db\}
338 invr(ix^d)=1.d0/x(ix^d,1)
341 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))*two*qdtmu
343 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))
345 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))
347 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)
349 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)*&
352 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)
354 invrsin(ix^d)=invr(ix^d)/tsin
355 tctan(ix^d)=tcos/tsin
357 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)
359 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)
361 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+&
362 wp(ix^d,
v2_)*tcos)*invrsin(ix^d)*two*qdtmu
364 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
365 lambda(ix^d,2,1)=lambda(ix^d,1,2)
366 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*qdtmu
367 lambda(ix^d,3,1)=lambda(ix^d,1,3)
368 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*qdtmu
369 lambda(ix^d,3,2)=lambda(ix^d,2,3)
370 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
371 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
372 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
373 lambda(ix^d,3,3)=lambda(ix^d,3,3)-divv23
375 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)
376 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)
377 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)
381 {
do ix^db=ixomin^db,ixomax^db\}
382 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))+&
383 (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)+&
384 (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)+&
385 two*lambda(ix^d,1,1)*invr(ix^d)+lambda(ix^d,2,1)*invr(ix^d)*tctan(ix^d)+w(ix^d,mom(1))
386 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))+&
387 (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)+&
388 (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)+&
389 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+&
391 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))+&
392 (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)+&
393 (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)+&
394 two*lambda(ix^d,1,3)*invr(ix^d)+lambda(ix^d,2,3)*(invr(ix^d)+invr(ix^d)**2)*tctan(ix^d)+w(ix^d,mom(3))
398 {
do ix^db=ixmin^db,ixmax^db\}
399 invr(ix1,ix2)=1.d0/x(ix1,ix2,1)
401 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))*two*qdtmu
403 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))
405 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)
407 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)*&
410 lambda(ix1,ix2,1,2)=(lambda(ix1,ix2,1,2)+lambda(ix1,ix2,2,1))*qdtmu
411 lambda(ix1,ix2,2,1)=lambda(ix1,ix2,1,2)
412 divv23=third*(lambda(ix1,ix2,1,1)+lambda(ix1,ix2,2,2))
413 tcos=dcos(x(ix1,ix2,2))
414 tsin=dsin(x(ix1,ix2,2))
415 tctan(ix1,ix2)=tcos/tsin
417 lambda(ix1,ix2,1,1)=lambda(ix1,ix2,1,1)-divv23
418 lambda(ix1,ix2,2,2)=lambda(ix1,ix2,2,2)-divv23
420 vlambda(ix1,ix2,1)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,1)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,1)
421 vlambda(ix1,ix2,2)=wp(ix1,ix2,
v1_)*lambda(ix1,ix2,1,2)+wp(ix1,ix2,
v2_)*lambda(ix1,ix2,2,2)
424 invrsin(ix1,ix2)=invr(ix1,ix2)/tsin
426 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))
428 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)
430 lambda(ix1,ix2,3,1)=-wp(ix1,ix2,
v3_)*tsin*invrsin(ix1,ix2)
432 lambda(ix1,ix2,3,2)=-wp(ix1,ix2,
v3_)*tcos*invrsin(ix1,ix2)
434 lambda(ix1,ix2,3,3)=(wp(ix1,ix2,
v1_)*tsin+wp(ix1,ix2,
v2_)*tcos)*invrsin(ix1,ix2)*two*qdtmu
435 lambda(ix1,ix2,1,3)=(lambda(ix1,ix2,1,3)+lambda(ix1,ix2,3,1))*qdtmu
436 lambda(ix1,ix2,3,1)=lambda(ix1,ix2,1,3)
437 lambda(ix1,ix2,2,3)=(lambda(ix1,ix2,2,3)+lambda(ix1,ix2,3,2))*qdtmu
438 lambda(ix1,ix2,3,2)=lambda(ix1,ix2,2,3)
439 lambda(ix1,ix2,1,1)=lambda(ix1,ix2,1,1)-divv23
440 lambda(ix1,ix2,2,2)=lambda(ix1,ix2,2,2)-divv23
441 lambda(ix1,ix2,3,3)=-divv23
443 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)
444 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)
445 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)
450 {
do ix^db=ixomin^db,ixomax^db\}
452 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))+&
453 (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)+&
454 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2)+w(ix1,ix2,mom(1))
455 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))+&
456 (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)+&
457 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2)+w(ix1,ix2,mom(2))
459 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))+&
460 (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)+&
461 two*lambda(ix1,ix2,1,1)*invr(ix1,ix2)+lambda(ix1,ix2,2,1)*invr(ix1,ix2)*tctan(ix1,ix2)+w(ix1,ix2,mom(1))
462 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))+&
463 (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)+&
464 two*lambda(ix1,ix2,1,2)*invr(ix1,ix2)+lambda(ix1,ix2,2,2)*invr(ix1,ix2)*tctan(ix1,ix2)-&
465 lambda(ix1,ix2,3,3)*tctan(ix1,ix2)*invr(ix1,ix2)**2+w(ix1,ix2,mom(2))
466 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))+&
467 (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)+&
468 two*lambda(ix1,ix2,1,3)*invr(ix1,ix2)+lambda(ix1,ix2,2,3)*(invr(ix1,ix2)+invr(ix1,ix2)**2)*tctan(ix1,ix2)+w(ix1,ix2,mom(3))
474 invr(ix1)=1.d0/x(ix1,1)
476 lambda(ix1,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))*two*qdtmu
478 divv23=third*lambda(ix1,1,1)
479 lambda(ix1,1,1)=lambda(ix1,1,1)-divv23
482 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)
484 else if(ndir==2)
then
486 lambda(ix1,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
487 lambda(ix1,1,2)=lambda(ix1,1,2)*qdtmu
488 lambda(ix1,2,1)=lambda(ix1,1,2)
489 lambda(ix1,2,2)=-divv23
491 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)
492 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)
498 invrsin(ix1)=invr(ix1)/tsin
500 lambda(ix1,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
502 lambda(ix1,3,1)=-wp(ix1,
v3_)*tsin*invrsin(ix1)
504 lambda(ix1,3,2)=-wp(ix1,
v3_)*tcos*invrsin(ix1)
506 lambda(ix1,3,3)=(wp(ix1,
v1_)*tsin+wp(ix1,
v2_)*tcos)*invrsin(ix1)*two*qdtmu
507 lambda(ix1,1,3)=(lambda(ix1,1,3)+lambda(ix1,3,1))*qdtmu
508 lambda(ix1,3,1)=lambda(ix1,1,3)
509 lambda(ix1,3,2)=lambda(ix1,3,2)*qdtmu
510 lambda(ix1,2,3)=lambda(ix1,3,2)
511 lambda(ix1,3,3)=lambda(ix1,3,3)-divv23
513 vlambda(ix1,1)=wp(ix1,
v1_)*lambda(ix1,1,1)+wp(ix1,
v2_)*lambda(ix1,2,1)+wp(ix1,
v3_)*lambda(ix1,3,1)
514 vlambda(ix1,2)=wp(ix1,
v1_)*lambda(ix1,1,2)+wp(ix1,
v2_)*lambda(ix1,2,2)+wp(ix1,
v3_)*lambda(ix1,3,2)
515 vlambda(ix1,3)=wp(ix1,
v1_)*lambda(ix1,1,3)+wp(ix1,
v2_)*lambda(ix1,2,3)+wp(ix1,
v3_)*lambda(ix1,3,3)
520 do ix1=ixomin1,ixomax1
522 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
523 two*lambda(ix1,1,1)*invr(ix1)+w(ix1,mom(1))
524 else if(ndir==2)
then
525 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
526 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1)+w(ix1,mom(1))
527 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
528 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1)+w(ix1,mom(2))
530 w(ix1,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
531 two*lambda(ix1,1,1)*invr(ix1)+lambda(ix1,2,1)*invr(ix1)*tctan(ix1)+w(ix1,mom(1))
532 w(ix1,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
533 two*lambda(ix1,1,2)*invr(ix1)+lambda(ix1,2,2)*invr(ix1)*tctan(ix1)-lambda(ix1,3,3)*tctan(ix1)*invr(ix1)**2+&
535 w(ix1,mom(3))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
536 two*lambda(ix1,1,3)*invr(ix1)+lambda(ix1,2,3)*(invr(ix1)+invr(ix1)**2)*tctan(ix1)+w(ix1,mom(3))
543 call divvector(vlambda,ixi^l,ixo^l,invr)
544 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)
552 energy,qsourcesplit,active)
559 integer,
intent(in) :: ixI^L, ixO^L
560 double precision,
intent(in) :: qdt, x(ixI^S,1:ndim), wCT(ixI^S,1:nw), wp(ixI^S,1:nw)
561 double precision,
intent(inout) :: w(ixI^S,1:nw)
562 logical,
intent(in) :: energy,qsourcesplit
563 logical,
intent(inout) :: active
565 double precision:: lambda(ixI^S,ndir,ndir),vlambda(ixI^S,ndir),invr(ixI^S)
566 double precision :: qdtmu,divv23
571 if(qsourcesplit .eqv.
vc_split)
then
578 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
579 call mpistop(
"error for viscous source addition, 2 layers needed")
584 if({ iximin^d>ixmin^d .or. iximax^d<ixmax^d|.or.})&
585 call mpistop(
"error for viscous source addition"//&
586 "requested fourth order gradients: 4 layers needed")
594 {
do ix^db=ixmin^db,ixmax^db\}
595 invr(ix^d)=1.d0/x(ix^d,1)
597 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))*two*qdtmu
599 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))
601 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))
603 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)
605 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)*&
608 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)
610 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)
612 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)
614 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)*two*qdtmu
616 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
617 lambda(ix^d,2,1)=lambda(ix^d,1,2)
618 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*qdtmu
619 lambda(ix^d,3,1)=lambda(ix^d,1,3)
620 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*qdtmu
621 lambda(ix^d,3,2)=lambda(ix^d,2,3)
622 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
623 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
624 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
625 lambda(ix^d,3,3)=lambda(ix^d,3,3)-divv23
627 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)
628 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)
629 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)
633 {
do ix^db=ixomin^db,ixomax^db\}
634 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))+&
635 (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)+&
636 (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))+&
637 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
638 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))+&
639 (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)+&
640 (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))+&
641 two*lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
642 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))+&
643 (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)+&
644 (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))+&
645 lambda(ix^d,1,3)*invr(ix^d)+w(ix^d,mom(3))
649 {
do ix^db=ixmin^db,ixmax^db\}
650 invr(ix^d)=1.d0/x(ix^d,1)
652 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))*two*qdtmu
654 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))
657 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)
659 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)*&
663 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)
665 lambda(ix^d,3,1)=0.d0
667 lambda(ix^d,3,2)=0.d0
669 lambda(ix^d,3,3)=0.d0
673 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)
675 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)*two*qdtmu
678 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)
680 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
682 lambda(ix^d,3,2)=0.d0
684 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)
688 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
689 lambda(ix^d,2,1)=lambda(ix^d,1,2)
690 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
691 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
692 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
695 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))
696 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*qdtmu
697 lambda(ix^d,3,1)=lambda(ix^d,1,3)
698 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*qdtmu
699 lambda(ix^d,3,2)=lambda(ix^d,2,3)
700 lambda(ix^d,3,3)=lambda(ix^d,3,3)-divv23
702 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)
703 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)
704 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)
707 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
708 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
712 {
do ix^db=ixomin^db,ixomax^db\}
715 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))+&
716 (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)+&
717 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
718 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))+&
719 (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)+&
720 two*lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
722 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))+&
723 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
724 lambda(ix^d,1,1)*invr(ix^d)+w(ix^d,mom(1))
725 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))+&
726 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
727 lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
731 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))+&
732 (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)+&
733 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
734 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))+&
735 (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)+&
736 two*lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
737 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))+&
738 (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)+&
739 lambda(ix^d,1,3)*invr(ix^d)+w(ix^d,mom(3))
741 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))+&
742 (lambda(ix1,ix2+1,2,1)-lambda(ix1,ix2-1,2,1))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
743 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
744 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))+&
745 (lambda(ix1,ix2+1,2,3)-lambda(ix1,ix2-1,2,3))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
746 two*lambda(ix^d,1,3)*invr(ix^d)+w(ix^d,mom(2))
747 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))+&
748 (lambda(ix1,ix2+1,2,2)-lambda(ix1,ix2-1,2,2))/(x(ix1,ix2+1,2)-x(ix1,ix2-1,2))+&
749 lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(3))
755 {
do ix^db=ixmin^db,ixmax^db\}
756 invr(ix^d)=1.d0/x(ix^d,1)
759 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))*two*qdtmu
760 divv23=third*lambda(ix^d,1,1)
761 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
763 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)
765 else if(ndir==2)
then
767 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))*two*qdtmu
769 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
772 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
774 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)*two*qdtmu
777 lambda(ix^d,2,1)=0.d0
779 lambda(ix^d,2,2)=0.d0
782 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
783 lambda(ix^d,2,1)=lambda(ix^d,1,2)
784 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2))
785 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
786 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
788 vlambda(ix^d,1)=wp(ix^d,
v1_)*lambda(ix^d,1,1)+wp(ix^d,
v2_)*lambda(ix^d,2,1)
789 vlambda(ix^d,2)=wp(ix^d,
v1_)*lambda(ix^d,1,2)+wp(ix^d,
v2_)*lambda(ix^d,2,2)
793 lambda(ix^d,1,1)=(wp(ix1+1,
v1_)-wp(ix1-1,
v1_))/(x(ix1+1,1)-x(ix1-1,1))*two*qdtmu
795 lambda(ix^d,1,2)=(wp(ix1+1,
v2_)-wp(ix1-1,
v2_))/(x(ix1+1,1)-x(ix1-1,1))
797 lambda(ix^d,1,3)=(wp(ix1+1,
v3_)-wp(ix1-1,
v3_))/(x(ix1+1,1)-x(ix1-1,1))
800 lambda(ix^d,2,1)=-wp(ix^d,
v2_)*invr(ix^d)
802 lambda(ix^d,2,2)=+wp(ix^d,
v1_)*invr(ix^d)*two*qdtmu
804 lambda(ix^d,2,3)=0.d0
806 lambda(ix^d,3,1)=0.d0
808 lambda(ix^d,3,2)=0.d0
810 lambda(ix^d,3,3)=0.d0
813 lambda(ix^d,2,1)=0.d0
815 lambda(ix^d,2,2)=0.d0
817 lambda(ix^d,2,3)=0.d0
819 lambda(ix^d,3,1)=-wp(ix^d,
v3_)*invr(ix^d)
821 lambda(ix^d,3,2)=0.d0
823 lambda(ix^d,3,3)=wp(ix^d,
v1_)*invr(ix^d)*two*qdtmu
826 lambda(ix^d,1,2)=(lambda(ix^d,1,2)+lambda(ix^d,2,1))*qdtmu
827 lambda(ix^d,2,1)=lambda(ix^d,1,2)
828 lambda(ix^d,1,3)=(lambda(ix^d,1,3)+lambda(ix^d,3,1))*qdtmu
829 lambda(ix^d,3,1)=lambda(ix^d,1,3)
830 lambda(ix^d,2,3)=(lambda(ix^d,2,3)+lambda(ix^d,3,2))*qdtmu
831 lambda(ix^d,3,2)=lambda(ix^d,2,3)
832 divv23=third*(lambda(ix^d,1,1)+lambda(ix^d,2,2)+lambda(ix^d,3,3))
833 lambda(ix^d,1,1)=lambda(ix^d,1,1)-divv23
834 lambda(ix^d,2,2)=lambda(ix^d,2,2)-divv23
835 lambda(ix^d,3,3)=lambda(ix^d,3,3)-divv23
837 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)
838 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)
839 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)
844 {
do ix^db=ixomin^db,ixomax^db\}
846 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+w(ix^d,mom(1))
847 else if(ndir==2)
then
849 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
850 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
851 w(ix^d,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
852 two*lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
854 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
855 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
859 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
860 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
861 w(ix^d,mom(2))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
862 two*lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(2))
863 w(ix^d,mom(3))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
864 lambda(ix^d,1,3)*invr(ix^d)+w(ix^d,mom(3))
866 w(ix^d,mom(1))=(lambda(ix1+1,1,1)-lambda(ix1-1,1,1))/(x(ix1+1,1)-x(ix1-1,1))+&
867 (lambda(ix^d,1,1)-lambda(ix^d,2,2))*invr(ix^d)+w(ix^d,mom(1))
868 w(ix^d,mom(2))=(lambda(ix1+1,1,3)-lambda(ix1-1,1,3))/(x(ix1+1,1)-x(ix1-1,1))+&
869 two*lambda(ix^d,1,3)*invr(ix^d)+w(ix^d,mom(2))
870 w(ix^d,mom(3))=(lambda(ix1+1,1,2)-lambda(ix1-1,1,2))/(x(ix1+1,1)-x(ix1-1,1))+&
871 lambda(ix^d,1,2)*invr(ix^d)+w(ix^d,mom(3))
879 call divvector(vlambda,ixi^l,ixo^l,invr)
880 w(ixo^s,e_)=w(ixo^s,e_)+invr(ixo^s)