107 pressure => null(), &
140 TYPE(
dict_typ),
POINTER :: config, IO
142 INTEGER :: err,next_idx
143 CHARACTER(LEN=64) :: info_str
149 this%VNUM = this%VDIM + 2
152 CALL getattr(config,
"gamma", this%gamma, 1.4)
155 ALLOCATE(this%pvarname(this%VNUM),this%cvarname(this%VNUM),this%bccsound, &
159 CALL this%Error(
"InitPhysics_euler",
"Unable to allocate memory.")
165 this%pvarname(this%DENSITY) =
"density"
166 this%cvarname(this%DENSITY) =
"density"
169 IF (this%VDIM.GE.2)
THEN
176 IF (this%VDIM.EQ.3)
THEN
183 this%PRESSURE = this%VNUM
184 this%ENERGY = this%VNUM
185 this%pvarname(this%PRESSURE) =
"pressure"
186 this%cvarname(this%ENERGY) =
"energy"
191 IF (btest(mesh%VECTOR_COMPONENTS,0))
THEN
192 this%pvarname(next_idx) =
"xvelocity"
193 this%cvarname(next_idx) =
"xmomentum"
194 next_idx = next_idx + 1
196 IF (btest(mesh%VECTOR_COMPONENTS,1))
THEN
197 this%pvarname(next_idx) =
"yvelocity"
198 this%cvarname(next_idx) =
"ymomentum"
199 next_idx = next_idx + 1
201 IF (btest(mesh%VECTOR_COMPONENTS,2))
THEN
202 this%pvarname(next_idx) =
"zvelocity"
203 this%cvarname(next_idx) =
"zmomentum"
214 this%supports_absorbing = .true.
215 this%supports_farfield = .true.
217 CALL this%SetOutput(mesh,config,io)
220 WRITE(info_str,
'("spec. heat ratio: ",F4.2)') this%gamma
221 CALL this%Info(repeat(
" ",12) // trim(info_str))
230 INTEGER,
OPTIONAL,
INTENT(IN) :: flavour,num
232 IF (
ASSOCIATED(new_sv))
THEN
235 CALL this%Warning(
"physics_euler::new_statevector",
"new statevector already associated")
249 SELECT TYPE(c => cvar)
251 SELECT TYPE(p => pvar)
255 SELECT CASE(
this%VDIM)
257 CALL cons2prim(
this%gamma,c%density%data1d(:),c%momentum%data2d(:,1), &
258 c%energy%data1d(:),p%density%data1d(:), &
259 p%velocity%data2d(:,1),p%pressure%data1d(:))
261 CALL cons2prim(
this%gamma,c%density%data1d(:),c%momentum%data2d(:,1), &
262 c%momentum%data2d(:,2),c%energy%data1d(:), &
263 p%density%data1d(:),p%velocity%data2d(:,1), &
264 p%velocity%data2d(:,2),p%pressure%data1d(:))
266 CALL cons2prim(
this%gamma,c%density%data1d(:),c%momentum%data2d(:,1), &
267 c%momentum%data2d(:,2),c%momentum%data2d(:,3), &
268 c%energy%data1d(:),p%density%data1d(:), &
269 p%velocity%data2d(:,1),p%velocity%data2d(:,2),&
270 p%velocity%data2d(:,3),p%pressure%data1d(:))
272 p%fargo_transformation_applied = c%fargo_transformation_applied
285 INTEGER,
INTENT(IN) :: i1,i2,j1,j2,k1,k2
288 SELECT TYPE(c => cvar)
290 SELECT TYPE(p => pvar)
293 SELECT CASE (c%density%RANK)
296 SELECT CASE(
this%VDIM)
298 CALL cons2prim(
this%gamma,c%density%data3d(i1:i2,j1:j2,k1:k2), &
299 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
300 c%energy%data3d(i1:i2,j1:j2,k1:k2), &
301 p%density%data3d(i1:i2,j1:j2,k1:k2), &
302 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
303 p%pressure%data3d(i1:i2,j1:j2,k1:k2))
305 CALL cons2prim(
this%gamma,c%density%data3d(i1:i2,j1:j2,k1:k2), &
306 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
307 c%momentum%data4d(i1:i2,j1:j2,k1:k2,2), &
308 c%energy%data3d(i1:i2,j1:j2,k1:k2), &
309 p%density%data3d(i1:i2,j1:j2,k1:k2), &
310 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
311 p%velocity%data4d(i1:i2,j1:j2,k1:k2,2), &
312 p%pressure%data3d(i1:i2,j1:j2,k1:k2))
314 CALL cons2prim(
this%gamma,c%density%data3d(i1:i2,j1:j2,k1:k2), &
315 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
316 c%momentum%data4d(i1:i2,j1:j2,k1:k2,2), &
317 c%momentum%data4d(i1:i2,j1:j2,k1:k2,3), &
318 c%energy%data3d(i1:i2,j1:j2,k1:k2), &
319 p%density%data3d(i1:i2,j1:j2,k1:k2), &
320 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
321 p%velocity%data4d(i1:i2,j1:j2,k1:k2,2),&
322 p%velocity%data4d(i1:i2,j1:j2,k1:k2,3), &
323 p%pressure%data3d(i1:i2,j1:j2,k1:k2))
327 SELECT CASE(
this%VDIM)
329 CALL cons2prim(
this%gamma,c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
330 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
331 c%energy%data4d(i1:i2,j1:j2,k1:k2,:), &
332 p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
333 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
334 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:))
336 CALL cons2prim(
this%gamma,c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
337 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
338 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,2), &
339 c%energy%data4d(i1:i2,j1:j2,k1:k2,:), &
340 p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
341 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
342 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,2), &
343 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:))
345 CALL cons2prim(
this%gamma,c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
346 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
347 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,2), &
348 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,3), &
349 c%energy%data4d(i1:i2,j1:j2,k1:k2,:), &
350 p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
351 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
352 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,2),&
353 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,3), &
354 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:))
373 SELECT TYPE(p => pvar)
375 SELECT TYPE(c => cvar)
379 SELECT CASE(
this%VDIM)
381 CALL prim2cons(
this%gamma,p%density%data1d(:),p%velocity%data2d(:,1), &
382 p%pressure%data1d(:),c%density%data1d(:), &
383 c%momentum%data2d(:,1),c%energy%data1d(:))
385 CALL prim2cons(
this%gamma,p%density%data1d(:),p%velocity%data2d(:,1), &
386 p%velocity%data2d(:,2),p%pressure%data1d(:), &
387 c%density%data1d(:),c%momentum%data2d(:,1), &
388 c%momentum%data2d(:,2),c%energy%data1d(:))
390 CALL prim2cons(
this%gamma,p%density%data1d(:),p%velocity%data2d(:,1), &
391 p%velocity%data2d(:,2),p%velocity%data2d(:,3), &
392 p%pressure%data1d(:),c%density%data1d(:), &
393 c%momentum%data2d(:,1),c%momentum%data2d(:,2), &
394 c%momentum%data2d(:,3),c%energy%data1d(:))
396 c%fargo_transformation_applied = p%fargo_transformation_applied
409 INTEGER,
INTENT(IN) :: i1,i2,j1,j2,k1,k2
412 SELECT TYPE(p => pvar)
414 SELECT TYPE(c => cvar)
417 SELECT CASE (p%density%RANK)
420 SELECT CASE(
this%VDIM)
422 CALL prim2cons(
this%gamma,p%density%data3d(i1:i2,j1:j2,k1:k2), &
423 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
424 p%pressure%data3d(i1:i2,j1:j2,k1:k2), &
425 c%density%data3d(i1:i2,j1:j2,k1:k2), &
426 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
427 c%energy%data3d(i1:i2,j1:j2,k1:k2))
429 CALL prim2cons(
this%gamma,p%density%data3d(i1:i2,j1:j2,k1:k2), &
430 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
431 p%velocity%data4d(i1:i2,j1:j2,k1:k2,2), &
432 p%pressure%data3d(i1:i2,j1:j2,k1:k2), &
433 c%density%data3d(i1:i2,j1:j2,k1:k2), &
434 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
435 c%momentum%data4d(i1:i2,j1:j2,k1:k2,2), &
436 c%energy%data3d(i1:i2,j1:j2,k1:k2))
438 CALL prim2cons(
this%gamma,p%density%data3d(i1:i2,j1:j2,k1:k2), &
439 p%velocity%data4d(i1:i2,j1:j2,k1:k2,1), &
440 p%velocity%data4d(i1:i2,j1:j2,k1:k2,2), &
441 p%velocity%data4d(i1:i2,j1:j2,k1:k2,3), &
442 p%pressure%data3d(i1:i2,j1:j2,k1:k2), &
443 c%density%data3d(i1:i2,j1:j2,k1:k2), &
444 c%momentum%data4d(i1:i2,j1:j2,k1:k2,1), &
445 c%momentum%data4d(i1:i2,j1:j2,k1:k2,2), &
446 c%momentum%data4d(i1:i2,j1:j2,k1:k2,3), &
447 c%energy%data3d(i1:i2,j1:j2,k1:k2))
451 SELECT CASE(
this%VDIM)
453 CALL prim2cons(
this%gamma,p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
454 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
455 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:), &
456 c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
457 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
458 c%energy%data4d(i1:i2,j1:j2,k1:k2,:))
460 CALL prim2cons(
this%gamma,p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
461 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
462 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,2), &
463 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:), &
464 c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
465 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
466 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,2), &
467 c%energy%data4d(i1:i2,j1:j2,k1:k2,:))
469 CALL prim2cons(
this%gamma,p%density%data4d(i1:i2,j1:j2,k1:k2,:), &
470 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,1), &
471 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,2), &
472 p%velocity%data5d(i1:i2,j1:j2,k1:k2,:,3), &
473 p%pressure%data4d(i1:i2,j1:j2,k1:k2,:), &
474 c%density%data4d(i1:i2,j1:j2,k1:k2,:), &
475 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,1), &
476 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,2), &
477 c%momentum%data5d(i1:i2,j1:j2,k1:k2,:,3), &
478 c%energy%data4d(i1:i2,j1:j2,k1:k2,:))
492 PURE SUBROUTINE calcfluxesx(this,Mesh,nmin,nmax,prim,cons,xfluxes)
497 INTEGER,
INTENT(IN) :: nmin,nmax
500 SELECT TYPE(p => prim)
502 SELECT TYPE(c => cons)
504 SELECT TYPE(f => xfluxes)
506 SELECT CASE(
this%VDIM)
508 CALL setflux(p%density%data2d(:,nmin:nmax), &
509 p%velocity%data3d(:,nmin:nmax,1), &
510 p%pressure%data2d(:,nmin:nmax), &
511 c%momentum%data3d(:,nmin:nmax,1), &
512 c%energy%data2d(:,nmin:nmax), &
513 f%density%data2d(:,nmin:nmax), &
514 f%momentum%data3d(:,nmin:nmax,1), &
515 f%energy%data2d(:,nmin:nmax))
517 CALL setflux(p%density%data2d(:,nmin:nmax), &
518 p%velocity%data3d(:,nmin:nmax,1), &
519 p%pressure%data2d(:,nmin:nmax), &
520 c%momentum%data3d(:,nmin:nmax,1), &
521 c%momentum%data3d(:,nmin:nmax,2), &
522 c%energy%data2d(:,nmin:nmax), &
523 f%density%data2d(:,nmin:nmax), &
524 f%momentum%data3d(:,nmin:nmax,1), &
525 f%momentum%data3d(:,nmin:nmax,2), &
526 f%energy%data2d(:,nmin:nmax))
528 CALL setflux(p%density%data2d(:,nmin:nmax), &
529 p%velocity%data3d(:,nmin:nmax,1), &
530 p%pressure%data2d(:,nmin:nmax), &
531 c%momentum%data3d(:,nmin:nmax,1), &
532 c%momentum%data3d(:,nmin:nmax,2), &
533 c%momentum%data3d(:,nmin:nmax,3), &
534 c%energy%data2d(:,nmin:nmax), &
535 f%density%data2d(:,nmin:nmax), &
536 f%momentum%data3d(:,nmin:nmax,1), &
537 f%momentum%data3d(:,nmin:nmax,2), &
538 f%momentum%data3d(:,nmin:nmax,3), &
539 f%energy%data2d(:,nmin:nmax))
548 PURE SUBROUTINE calcfluxesy(this,Mesh,nmin,nmax,prim,cons,yfluxes)
553 INTEGER,
INTENT(IN) :: nmin,nmax
556 SELECT TYPE(p => prim)
558 SELECT TYPE(c => cons)
560 SELECT TYPE(f => yfluxes)
562 SELECT CASE(
this%VDIM)
564 CALL setflux(p%density%data2d(:,nmin:nmax), &
565 p%velocity%data3d(:,nmin:nmax,1), &
566 p%pressure%data2d(:,nmin:nmax), &
567 c%momentum%data3d(:,nmin:nmax,1), &
568 c%energy%data2d(:,nmin:nmax), &
569 f%density%data2d(:,nmin:nmax), &
570 f%momentum%data3d(:,nmin:nmax,1), &
571 f%energy%data2d(:,nmin:nmax))
573 CALL setflux(p%density%data2d(:,nmin:nmax), &
574 p%velocity%data3d(:,nmin:nmax,2), &
575 p%pressure%data2d(:,nmin:nmax), &
576 c%momentum%data3d(:,nmin:nmax,2), &
577 c%momentum%data3d(:,nmin:nmax,1), &
578 c%energy%data2d(:,nmin:nmax), &
579 f%density%data2d(:,nmin:nmax), &
580 f%momentum%data3d(:,nmin:nmax,2), &
581 f%momentum%data3d(:,nmin:nmax,1), &
582 f%energy%data2d(:,nmin:nmax))
584 CALL setflux(p%density%data2d(:,nmin:nmax), &
585 p%velocity%data3d(:,nmin:nmax,2), &
586 p%pressure%data2d(:,nmin:nmax), &
587 c%momentum%data3d(:,nmin:nmax,2), &
588 c%momentum%data3d(:,nmin:nmax,1), &
589 c%momentum%data3d(:,nmin:nmax,3), &
590 c%energy%data2d(:,nmin:nmax), &
591 f%density%data2d(:,nmin:nmax), &
592 f%momentum%data3d(:,nmin:nmax,2), &
593 f%momentum%data3d(:,nmin:nmax,1), &
594 f%momentum%data3d(:,nmin:nmax,3), &
595 f%energy%data2d(:,nmin:nmax))
604 PURE SUBROUTINE calcfluxesz(this,Mesh,nmin,nmax,prim,cons,zfluxes)
609 INTEGER,
INTENT(IN) :: nmin,nmax
612 SELECT TYPE(p => prim)
614 SELECT TYPE(c => cons)
616 SELECT TYPE(f => zfluxes)
618 SELECT CASE(
this%VDIM)
620 CALL setflux(p%density%data2d(:,nmin:nmax), &
621 p%velocity%data3d(:,nmin:nmax,1), &
622 p%pressure%data2d(:,nmin:nmax), &
623 c%momentum%data3d(:,nmin:nmax,1), &
624 c%energy%data2d(:,nmin:nmax), &
625 f%density%data2d(:,nmin:nmax), &
626 f%momentum%data3d(:,nmin:nmax,1), &
627 f%energy%data2d(:,nmin:nmax))
629 CALL setflux(p%density%data2d(:,nmin:nmax), &
630 p%velocity%data3d(:,nmin:nmax,2), &
631 p%pressure%data2d(:,nmin:nmax), &
632 c%momentum%data3d(:,nmin:nmax,2), &
633 c%momentum%data3d(:,nmin:nmax,1), &
634 c%energy%data2d(:,nmin:nmax), &
635 f%density%data2d(:,nmin:nmax), &
636 f%momentum%data3d(:,nmin:nmax,2), &
637 f%momentum%data3d(:,nmin:nmax,1), &
638 f%energy%data2d(:,nmin:nmax))
640 CALL setflux(p%density%data2d(:,nmin:nmax), &
641 p%velocity%data3d(:,nmin:nmax,3), &
642 p%pressure%data2d(:,nmin:nmax), &
643 c%momentum%data3d(:,nmin:nmax,3), &
644 c%momentum%data3d(:,nmin:nmax,1), &
645 c%momentum%data3d(:,nmin:nmax,2), &
646 c%energy%data2d(:,nmin:nmax), &
647 f%density%data2d(:,nmin:nmax), &
648 f%momentum%data3d(:,nmin:nmax,3), &
649 f%momentum%data3d(:,nmin:nmax,1), &
650 f%momentum%data3d(:,nmin:nmax,2), &
651 f%energy%data2d(:,nmin:nmax))
748 INTEGER,
INTENT(IN) :: i1,i2
750 REAL,
DIMENSION(Mesh%JMIN:Mesh%JMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM), &
751 INTENT(OUT) :: lambda,xvar
755 SELECT TYPE(p => pvar)
759 SELECT CASE(
this%VDIM)
763 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
764 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
765 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
766 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
767 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
768 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3))
773 p%density%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
774 p%density%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
775 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
776 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
777 p%pressure%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
778 p%pressure%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
779 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
780 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
781 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
782 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
783 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3))
787 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
788 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
789 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
790 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
791 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
792 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
793 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4))
798 p%density%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
799 p%density%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
800 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
801 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
802 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
803 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
804 p%pressure%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
805 p%pressure%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
806 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
807 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
808 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
809 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
810 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
811 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4))
815 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
816 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
817 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
818 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
819 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
820 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
821 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
822 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5))
827 p%density%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
828 p%density%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
829 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
830 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
831 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
832 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
833 p%velocity%data4d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
834 p%velocity%data4d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
835 p%pressure%data3d(il,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
836 p%pressure%data3d(ir,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
837 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
838 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5), &
839 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
840 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
841 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
842 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
843 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5))
853 INTEGER,
INTENT(IN) :: j1,j2
855 REAL,
DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM), &
856 INTENT(OUT) :: lambda,xvar
858 INTEGER :: jl,jr,vn,vt
860 SELECT TYPE(p => pvar)
864 SELECT CASE(
this%VDIM)
868 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
869 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,2), &
870 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
871 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
872 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
873 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3))
878 p%density%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
879 p%density%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
880 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,1), &
881 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,1), &
882 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
883 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
884 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
885 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
886 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
887 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
888 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3))
891 SELECT CASE(mesh%VECTOR_COMPONENTS)
904 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
905 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,vn), &
906 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
907 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
908 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
909 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
910 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4))
915 p%density%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
916 p%density%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
917 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,vn), &
918 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,vn), &
919 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,vt), &
920 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,vt), &
921 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
922 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
923 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
924 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
925 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
926 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
927 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
928 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4))
932 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
933 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,2), &
934 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
935 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
936 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
937 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
938 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
939 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5))
944 p%density%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
945 p%density%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
946 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,2), &
947 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,2), &
948 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,1), &
949 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,1), &
950 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX,3), &
951 p%velocity%data4d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX,3), &
952 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jl,mesh%KMIN:mesh%KMAX), &
953 p%pressure%data3d(mesh%IMIN:mesh%IMAX,jr,mesh%KMIN:mesh%KMAX), &
954 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
955 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5), &
956 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
957 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
958 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
959 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
960 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5))
971 INTEGER,
INTENT(IN) :: k1,k2
973 REAL,
DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%JMIN:Mesh%JMAX,this%VNUM), &
974 INTENT(OUT) :: lambda,xvar
978 SELECT TYPE(p => pvar)
982 SELECT CASE(
this%VDIM)
986 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
987 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,3), &
988 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
989 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
990 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
991 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3))
996 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
997 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
998 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,1), &
999 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,1), &
1000 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
1001 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
1002 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1003 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1004 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1005 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1006 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3))
1010 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1011 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,3), &
1012 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1013 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1014 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1015 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1016 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4))
1021 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
1022 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
1023 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,2), &
1024 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,2), &
1025 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,1), &
1026 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,1), &
1027 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
1028 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
1029 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1030 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1031 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1032 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1033 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1034 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4))
1038 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1039 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,3), &
1040 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1041 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1042 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1043 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1044 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1045 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5))
1050 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
1051 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
1052 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,3), &
1053 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,3), &
1054 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,1), &
1055 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,1), &
1056 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl,2), &
1057 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr,2), &
1058 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kl), &
1059 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,kr), &
1060 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1061 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5), &
1062 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1063 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1064 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1065 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1066 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5))
1077 INTEGER,
INTENT(IN) :: i1,i2
1078 REAL,
DIMENSION(Mesh%JMIN:Mesh%JMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM), &
1082 SELECT TYPE(p => pvar)
1084 SELECT CASE(
this%VDIM)
1087 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1088 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1089 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1090 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1091 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1092 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1093 p%density%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1094 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1095 p%pressure%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1098 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1099 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1100 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1101 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1102 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1103 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1104 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1105 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1106 p%density%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1107 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1108 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1109 p%pressure%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1112 p%density%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1113 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1114 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1115 p%velocity%data4d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1116 p%pressure%data3d(i1,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1117 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1118 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1119 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1120 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1121 xvar(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5), &
1122 p%density%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1123 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1124 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1125 p%velocity%data4d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1126 p%pressure%data3d(i2,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1136 INTEGER,
INTENT(IN) :: j1,j2
1137 REAL,
DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM), &
1143 SELECT TYPE(p => pvar)
1145 SELECT CASE(
this%VDIM)
1148 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1149 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,1), &
1150 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1151 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1152 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1153 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1154 p%density%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX), &
1155 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,1), &
1156 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX))
1159 SELECT CASE(mesh%VECTOR_COMPONENTS)
1171 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1172 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,vn), &
1173 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,vt), &
1174 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1175 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1176 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1177 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1178 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1179 p%density%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX), &
1180 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,vn), &
1181 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,vt), &
1182 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX))
1185 p%density%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1186 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,2), &
1187 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,1), &
1188 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX,3), &
1189 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j1,mesh%KMIN:mesh%KMAX), &
1190 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1191 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1192 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1193 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1194 xvar(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5), &
1195 p%density%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX), &
1196 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,2), &
1197 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,1), &
1198 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX,3), &
1199 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j2,mesh%KMIN:mesh%KMAX))
1209 INTEGER,
INTENT(IN) :: k1,k2
1210 REAL,
DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%JMIN:Mesh%JMAX,this%VNUM), &
1214 SELECT TYPE(p => pvar)
1216 SELECT CASE(
this%VDIM)
1219 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1220 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,1), &
1221 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1222 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1223 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1224 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1225 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2), &
1226 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,1), &
1227 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2))
1230 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1231 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,2), &
1232 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,1), &
1233 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1234 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1235 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1236 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1237 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1238 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2), &
1239 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,2), &
1240 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,1), &
1241 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2))
1244 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1245 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,3), &
1246 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,1), &
1247 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1,2), &
1248 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k1), &
1249 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1250 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1251 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1252 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1253 xvar(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5), &
1254 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2), &
1255 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,3), &
1256 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,1), &
1257 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2,2), &
1258 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k2))
1271 INTEGER,
INTENT(IN) :: i
1273 REAL,
INTENT(OUT), &
1274 DIMENSION(Mesh%JMIN:Mesh%JMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1276 REAL,
INTENT(OUT), &
1277 DIMENSION(Mesh%JMIN:Mesh%JMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1280 SELECT TYPE(p => pvar)
1282 SELECT CASE(
this%VDIM)
1285 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1286 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1287 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX),&
1288 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1289 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1290 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3))
1293 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1294 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1295 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1296 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1297 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1298 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1299 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1300 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1301 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3))
1304 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1305 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1306 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX),&
1307 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1308 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1309 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1310 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4))
1313 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1314 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1315 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1316 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1317 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1318 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1319 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1320 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1321 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1322 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1323 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1324 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4))
1328 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1329 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1330 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX),&
1331 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1332 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1333 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1334 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1335 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5))
1338 p%density%data3d( i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1339 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1340 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1341 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1342 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1343 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1344 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1345 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1346 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1347 lambda(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5), &
1348 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1349 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1350 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1351 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1352 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5))
1365 INTEGER,
INTENT(IN) :: j
1367 REAL,
INTENT(OUT), &
1368 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1370 REAL,
INTENT(OUT), &
1371 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1374 SELECT TYPE(p => pvar)
1376 SELECT CASE(
this%VDIM)
1380 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1381 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1382 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX),&
1383 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1384 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1385 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3))
1388 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1389 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1390 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1391 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1392 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1393 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1394 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1395 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1396 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3))
1400 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1401 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1402 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX),&
1403 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1404 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1405 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1406 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4))
1409 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1410 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1411 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1412 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1413 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1414 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1415 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1416 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1417 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1418 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1419 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1420 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4))
1424 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1425 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1426 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX),&
1427 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1428 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1429 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1430 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1431 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5))
1434 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1435 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1436 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,3), &
1437 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1438 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1439 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1440 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1441 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1442 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1443 lambda(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5), &
1444 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1445 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1446 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1447 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1448 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5))
1461 INTEGER,
INTENT(IN) :: k
1463 REAL,
INTENT(OUT), &
1464 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%JMIN:Mesh%JMAX,this%VNUM) &
1466 REAL,
INTENT(OUT), &
1467 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%JMIN:Mesh%JMAX,this%VNUM) &
1470 SELECT TYPE(p => pvar)
1472 SELECT CASE(
this%VDIM)
1476 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1477 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1478 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k),&
1479 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1480 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1481 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3))
1484 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1485 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1486 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1487 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1488 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1489 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1490 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1491 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1492 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3))
1496 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1497 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,2), &
1498 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k),&
1499 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1500 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1501 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1502 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4))
1505 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1506 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,2), &
1507 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1508 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1509 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1510 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1511 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1512 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1513 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1514 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1515 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1516 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4))
1521 p%density%data3d( mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1522 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,3), &
1523 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k),&
1524 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1525 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1526 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1527 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1528 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5))
1532 p%density%data3d( mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1533 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,3), &
1534 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1535 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,2), &
1536 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1537 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1538 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1539 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1540 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1541 lambda(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5), &
1542 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1543 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1544 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1545 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1546 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5))
1560 INTEGER,
INTENT(IN) :: i
1562 DIMENSION(Mesh%JMIN:Mesh%JMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1566 SELECT TYPE(p => pvar)
1568 SELECT CASE(
this%VDIM)
1571 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1572 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1573 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1574 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1575 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1576 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1579 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1580 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1581 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1582 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1583 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1584 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1585 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1586 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1589 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1590 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1591 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1592 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,4), &
1593 rinv(mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,5), &
1594 p%density%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX), &
1595 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,1), &
1596 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,2), &
1597 p%velocity%data4d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX,3), &
1598 p%pressure%data3d(i,mesh%JMIN:mesh%JMAX,mesh%KMIN:mesh%KMAX))
1611 INTEGER,
INTENT(IN) :: j
1613 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%KMIN:Mesh%KMAX,this%VNUM) &
1617 SELECT TYPE(p => pvar)
1619 SELECT CASE(
this%VDIM)
1622 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1623 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1624 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1625 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1626 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1627 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX))
1630 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1631 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1632 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1633 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1634 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1635 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1636 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1637 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX))
1640 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,1), &
1641 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,2), &
1642 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,3), &
1643 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,4), &
1644 rinv(mesh%IMIN:mesh%IMAX,mesh%KMIN:mesh%KMAX,5), &
1645 p%density%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX), &
1646 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,2), &
1647 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,3), &
1648 p%velocity%data4d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX,1), &
1649 p%pressure%data3d(mesh%IMIN:mesh%IMAX,j,mesh%KMIN:mesh%KMAX))
1662 INTEGER,
INTENT(IN) :: k
1664 DIMENSION(Mesh%IMIN:Mesh%IMAX,Mesh%JMIN:Mesh%JMAX,this%VNUM) &
1668 SELECT TYPE(p => pvar)
1670 SELECT CASE(
this%VDIM)
1673 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1674 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1675 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1676 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1677 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1678 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k))
1681 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1682 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1683 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1684 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1685 p%density%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1686 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,2), &
1687 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1688 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k))
1691 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,1), &
1692 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,2), &
1693 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,3), &
1694 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,4), &
1695 rinv(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,5), &
1696 p%density%data3d( mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k), &
1697 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,3), &
1698 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,1), &
1699 p%velocity%data4d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k,2), &
1700 p%pressure%data3d(mesh%IMIN:mesh%IMAX,mesh%JMIN:mesh%JMAX,k))
1715 SELECT TYPE(mgeo => mesh%geometry)
1716 TYPE IS(geometry_cartesian)
1720 SELECT TYPE(p => pvar)
1722 SELECT TYPE(c => cvar)
1724 SELECT TYPE(s => sterm)
1727 s%density%data1d(:) = 0.0
1728 s%energy%data1d(:) = 0.0
1729 SELECT CASE(mesh%VECTOR_COMPONENTS)
1733 mesh%cxyx%data2d(:,2),mesh%cxzx%data2d(:,2), &
1734 mesh%cyxy%data2d(:,2),mesh%czxz%data2d(:,2), &
1735 p%velocity%data2d(:,1),0.0,0.0, &
1736 p%pressure%data1d(:), &
1741 mesh%cxyx%data2d(:,2),mesh%cyxy%data2d(:,2), &
1742 mesh%cyzy%data2d(:,2),mesh%czyz%data2d(:,2), &
1743 0.0,p%velocity%data2d(:,1),0.0, &
1744 p%pressure%data1d(:), &
1749 mesh%cxzx%data2d(:,2),mesh%cyzy%data2d(:,2), &
1750 mesh%czxz%data2d(:,2),mesh%czyz%data2d(:,2), &
1751 0.0,0.0,p%velocity%data2d(:,1), &
1752 p%pressure%data1d(:), &
1758 mesh%cxyx%data2d(:,2),mesh%cxzx%data2d(:,2), &
1759 mesh%cyxy%data2d(:,2),mesh%czxz%data2d(:,2), &
1760 p%velocity%data2d(:,1),p%velocity%data2d(:,2),0.0, &
1761 p%pressure%data1d(:), &
1762 c%momentum%data2d(:,2),0.0)
1765 mesh%cxyx%data2d(:,2),mesh%cyxy%data2d(:,2), &
1766 mesh%cyzy%data2d(:,2),mesh%czyz%data2d(:,2), &
1767 p%velocity%data2d(:,1),p%velocity%data2d(:,2),0.0, &
1768 p%pressure%data1d(:), &
1769 c%momentum%data2d(:,1),0.0)
1774 mesh%cxyx%data2d(:,2),mesh%cxzx%data2d(:,2), &
1775 mesh%cyxy%data2d(:,2),mesh%czxz%data2d(:,2), &
1776 p%velocity%data2d(:,1),0.0,p%velocity%data2d(:,2), &
1777 p%pressure%data1d(:), &
1778 0.0,c%momentum%data2d(:,2))
1781 mesh%cxzx%data2d(:,2),mesh%cyzy%data2d(:,2), &
1782 mesh%czxz%data2d(:,2),mesh%czyz%data2d(:,2), &
1783 p%velocity%data2d(:,1),0.0,p%velocity%data2d(:,2), &
1784 p%pressure%data1d(:), &
1785 c%momentum%data2d(:,1),0.0)
1790 mesh%cxyx%data2d(:,2),mesh%cyxy%data2d(:,2), &
1791 mesh%cyzy%data2d(:,2),mesh%czyz%data2d(:,2), &
1792 0.0,p%velocity%data2d(:,1),p%velocity%data2d(:,2), &
1793 p%pressure%data1d(:), &
1794 0.0,c%momentum%data2d(:,2))
1797 mesh%cxzx%data2d(:,2),mesh%cyzy%data2d(:,2), &
1798 mesh%czxz%data2d(:,2),mesh%czyz%data2d(:,2), &
1799 0.0,p%velocity%data2d(:,1),p%velocity%data2d(:,2), &
1800 p%pressure%data1d(:), &
1801 0.0,c%momentum%data2d(:,1))
1805 mesh%cxyx%data2d(:,2),mesh%cxzx%data2d(:,2), &
1806 mesh%cyxy%data2d(:,2),mesh%czxz%data2d(:,2), &
1807 p%velocity%data2d(:,1),p%velocity%data2d(:,2), &
1808 p%velocity%data2d(:,3),p%pressure%data1d(:), &
1809 c%momentum%data2d(:,2),c%momentum%data2d(:,3))
1812 mesh%cxyx%data2d(:,2),mesh%cyxy%data2d(:,2), &
1813 mesh%cyzy%data2d(:,2),mesh%czyz%data2d(:,2), &
1814 p%velocity%data2d(:,1),p%velocity%data2d(:,2), &
1815 p%velocity%data2d(:,3),p%pressure%data1d(:), &
1816 c%momentum%data2d(:,1),c%momentum%data2d(:,3))
1819 mesh%cxzx%data2d(:,2),mesh%cyzy%data2d(:,2), &
1820 mesh%czxz%data2d(:,2),mesh%czyz%data2d(:,2), &
1821 p%velocity%data2d(:,1),p%velocity%data2d(:,2), &
1822 p%velocity%data2d(:,3),p%pressure%data1d(:), &
1823 c%momentum%data2d(:,1),c%momentum%data2d(:,2))
1826 s%momentum%data1d(:) = 0.0
1832 IF (mesh%INUM.GT.1)
THEN
1833 sterm%data4d(mesh%IGMIN:mesh%IMIN+mesh%IM1,:,:,:) = 0.0
1834 sterm%data4d(mesh%IMAX+mesh%IP1:mesh%IGMAX,:,:,:) = 0.0
1836 IF (mesh%JNUM.GT.1)
THEN
1837 sterm%data4d(:,mesh%JGMIN:mesh%JMIN+mesh%JM1,:,:) = 0.0
1838 sterm%data4d(:,mesh%JMAX+mesh%JP1:mesh%JGMAX,:,:) = 0.0
1840 IF (mesh%KNUM.GT.1)
THEN
1842 sterm%data3d(:,mesh%KGMIN:mesh%KMIN+mesh%KM1,:) = 0.0
1843 sterm%data3d(:,mesh%KMAX+mesh%KP1:mesh%KGMAX,:) = 0.0
1858 CALL this%physics_eulerisotherm%ExternalSources(accel,pvar,cvar,sterm)
1859 SELECT TYPE(p => pvar)
1861 SELECT TYPE(c => cvar)
1863 SELECT TYPE(s => sterm)
1865 SELECT CASE(this%VDIM)
1867 DO m=1,
SIZE(s%energy%data1d)
1868 s%energy%data1d(m) = c%momentum%data2d(m,1) * accel%data2d(m,1)
1871 DO m=1,
SIZE(s%energy%data1d)
1872 s%energy%data1d(m) = c%momentum%data2d(m,1) * accel%data2d(m,1) &
1873 + c%momentum%data2d(m,2) * accel%data2d(m,2)
1876 DO m=1,
SIZE(s%energy%data1d)
1877 s%energy%data1d(m) = c%momentum%data2d(m,1) * accel%data2d(m,1) &
1878 + c%momentum%data2d(m,2) * accel%data2d(m,2) &
1879 + c%momentum%data2d(m,3) * accel%data2d(m,3)
1894 DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%JGMIN:Mesh%JGMAX,Mesh%KGMIN:Mesh%KGMAX) &
1895 :: btxx,btxy,btxz,btyy,btyz,btzz
1897 CALL this%physics_eulerisotherm%ViscositySources(mesh,pvar,btxx,btxy,btxz,btyy,btyz,btzz,sterm)
1898 SELECT TYPE(p => pvar)
1900 SELECT TYPE(s => sterm)
1902 SELECT CASE(this%VDIM)
1909 this%tmp(:,:,:) = p%velocity%data4d(:,:,:,1)*btxx(:,:,:) &
1910 + p%velocity%data4d(:,:,:,2)*btxy(:,:,:)
1913 this%tmp1(:,:,:) = p%velocity%data4d(:,:,:,1)*btxy(:,:,:) &
1914 + p%velocity%data4d(:,:,:,2)*btyy(:,:,:)
1917 CALL mesh%Divergence(this%tmp(:,:,:),this%tmp1(:,:,:), &
1918 s%energy%data3d(:,:,:))
1921 this%tmp(:,:,:) = p%velocity%data4d(:,:,:,1)*btxx(:,:,:) &
1922 + p%velocity%data4d(:,:,:,2)*btxy(:,:,:) &
1923 + p%velocity%data4d(:,:,:,3)*btxz(:,:,:)
1926 this%tmp1(:,:,:) = p%velocity%data4d(:,:,:,1)*btxy(:,:,:) &
1927 + p%velocity%data4d(:,:,:,2)*btyy(:,:,:) &
1928 + p%velocity%data4d(:,:,:,3)*btyz(:,:,:)
1931 this%tmp2(:,:,:) = p%velocity%data4d(:,:,:,1)*btxz(:,:,:) &
1932 + p%velocity%data4d(:,:,:,2)*btyz(:,:,:) &
1933 + p%velocity%data4d(:,:,:,3)*btzz(:,:,:)
1935 CALL mesh%Divergence(this%tmp(:,:,:),this%tmp1(:,:,:),this%tmp2(:,:,:), &
1936 s%energy%data3d(:,:,:))
1960 REAL,
DIMENSION(Mesh%JGMIN:Mesh%JGMAX,Mesh%KGMIN:Mesh%KGMAX), &
1966 SELECT TYPE(p => pvar)
1968 SELECT TYPE(c => cvar)
1970 IF (c%fargo_transformation_applied)
THEN
1971 IF (.NOT.p%fargo_transformation_applied)
RETURN
1972 DO k=mesh%KGMIN,mesh%KGMAX
1973 DO j=mesh%JGMIN,mesh%JGMAX
1974 DO i=mesh%IGMIN,mesh%IGMAX
1977 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
1978 + w(j,k)*(c%momentum%data4d(i,j,k,1) &
1979 + 0.5*c%density%data3d(i,j,k)*w(j,k))
1980 p%velocity%data4d(i,j,k,1) = p%velocity%data4d(i,j,k,1) + w(j,k)
1981 c%momentum%data4d(i,j,k,1) = c%momentum%data4d(i,j,k,1) &
1982 + c%density%data3d(i,j,k)*w(j,k)
1986 c%fargo_transformation_applied = .false.
1987 p%fargo_transformation_applied = .false.
2008 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%KGMIN:Mesh%KGMAX), &
2012 INTEGER :: i,j,k,v_idx
2014 SELECT TYPE(p => pvar)
2016 SELECT TYPE(c => cvar)
2018 IF (c%fargo_transformation_applied)
THEN
2019 IF (.NOT.p%fargo_transformation_applied)
RETURN
2021 IF (btest(mesh%VECTOR_COMPONENTS,0))
THEN
2028 DO k=mesh%KGMIN,mesh%KGMAX
2029 DO j=mesh%JGMIN,mesh%JGMAX
2030 DO i=mesh%IGMIN,mesh%IGMAX
2033 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
2034 + w(i,k)*(c%momentum%data4d(i,j,k,v_idx) &
2035 + 0.5*c%density%data3d(i,j,k)*w(i,k))
2036 p%velocity%data4d(i,j,k,v_idx) = p%velocity%data4d(i,j,k,v_idx) + w(i,k)
2037 c%momentum%data4d(i,j,k,v_idx) = c%momentum%data4d(i,j,k,v_idx) &
2038 + c%density%data3d(i,j,k)*w(i,k)
2042 c%fargo_transformation_applied = .false.
2043 p%fargo_transformation_applied = .false.
2064 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%JGMIN:Mesh%JGMAX), &
2070 SELECT TYPE(p => pvar)
2072 SELECT TYPE(c => cvar)
2074 IF (c%fargo_transformation_applied)
THEN
2075 IF (.NOT.p%fargo_transformation_applied)
RETURN
2076 DO k=mesh%KGMIN,mesh%KGMAX
2077 DO j=mesh%JGMIN,mesh%JGMAX
2078 DO i=mesh%IGMIN,mesh%IGMAX
2081 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
2082 + w(i,j)*(c%momentum%data4d(i,j,k,
this%VDIM) &
2083 + 0.5*c%density%data3d(i,j,k)*w(i,j))
2084 p%velocity%data4d(i,j,k,
this%VDIM) = p%velocity%data4d(i,j,k,
this%VDIM) + w(i,j)
2085 c%momentum%data4d(i,j,k,
this%VDIM) = c%momentum%data4d(i,j,k,
this%VDIM) &
2086 + c%density%data3d(i,j,k)*w(i,j)
2090 c%fargo_transformation_applied = .false.
2091 p%fargo_transformation_applied = .false.
2114 REAL,
DIMENSION(Mesh%JGMIN:Mesh%JGMAX,Mesh%KGMIN:Mesh%KGMAX), &
2120 SELECT TYPE(p => pvar)
2122 SELECT TYPE(c => cvar)
2124 IF (.NOT.c%fargo_transformation_applied)
THEN
2125 IF (p%fargo_transformation_applied)
RETURN
2126 DO k=mesh%KGMIN,mesh%KGMAX
2127 DO j=mesh%JGMIN,mesh%JGMAX
2128 DO i=mesh%IGMIN,mesh%IGMAX
2131 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
2132 - w(j,k)*(c%momentum%data4d(i,j,k,1) &
2133 - 0.5*c%density%data3d(i,j,k)*w(j,k))
2134 p%velocity%data4d(i,j,k,1) = p%velocity%data4d(i,j,k,1) - w(j,k)
2135 c%momentum%data4d(i,j,k,1) = c%momentum%data4d(i,j,k,1) &
2136 - c%density%data3d(i,j,k)*w(j,k)
2140 c%fargo_transformation_applied = .true.
2141 p%fargo_transformation_applied = .true.
2164 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%KGMIN:Mesh%KGMAX), &
2168 INTEGER :: i,j,k,v_idx
2170 SELECT TYPE(p => pvar)
2172 SELECT TYPE(c => cvar)
2174 IF (.NOT.c%fargo_transformation_applied)
THEN
2175 IF (p%fargo_transformation_applied)
RETURN
2177 IF (btest(mesh%VECTOR_COMPONENTS,0))
THEN
2184 DO k=mesh%KGMIN,mesh%KGMAX
2185 DO j=mesh%JGMIN,mesh%JGMAX
2186 DO i=mesh%IGMIN,mesh%IGMAX
2189 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
2190 - w(i,k)*(c%momentum%data4d(i,j,k,v_idx) &
2191 - 0.5*c%density%data3d(i,j,k)*w(i,k))
2192 p%velocity%data4d(i,j,k,v_idx) = p%velocity%data4d(i,j,k,v_idx) - w(i,k)
2193 c%momentum%data4d(i,j,k,v_idx) = c%momentum%data4d(i,j,k,v_idx) &
2194 - c%density%data3d(i,j,k)*w(i,k)
2198 c%fargo_transformation_applied = .true.
2199 p%fargo_transformation_applied = .true.
2222 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%JGMIN:Mesh%JGMAX), &
2228 SELECT TYPE(p => pvar)
2230 SELECT TYPE(c => cvar)
2232 IF (.NOT.c%fargo_transformation_applied)
THEN
2233 IF (p%fargo_transformation_applied)
RETURN
2234 DO k=mesh%KGMIN,mesh%KGMAX
2235 DO j=mesh%JGMIN,mesh%JGMAX
2236 DO i=mesh%IGMIN,mesh%IGMAX
2239 c%energy%data3d(i,j,k) = c%energy%data3d(i,j,k) &
2240 - w(i,j)*(c%momentum%data4d(i,j,k,
this%VDIM) &
2241 - 0.5*c%density%data3d(i,j,k)*w(i,j))
2242 p%velocity%data4d(i,j,k,
this%VDIM) = p%velocity%data4d(i,j,k,
this%VDIM) - w(i,j)
2243 c%momentum%data4d(i,j,k,
this%VDIM) = c%momentum%data4d(i,j,k,
this%VDIM) &
2244 - c%density%data3d(i,j,k)*w(i,j)
2248 c%fargo_transformation_applied = .true.
2249 p%fargo_transformation_applied = .true.
2272 REAL,
DIMENSION(Mesh%JGMIN:Mesh%JGMAX,Mesh%KGMIN:Mesh%KGMAX),
INTENT(IN) :: w
2277 SELECT TYPE(c => cvar)
2279 SELECT TYPE(p => pvar)
2281 SELECT TYPE(s => sterm)
2284 SELECT CASE(mesh%VECTOR_COMPONENTS)
2287 DO k=mesh%KMIN,mesh%KMAX
2288 DO j=mesh%JMIN,mesh%JMAX
2289 DO i=mesh%IMIN,mesh%IMAX
2290 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,2) * 0.5 * (w(j+1,k)-w(j-1,k)) &
2291 / mesh%dly%data3d(i,j,k)
2293 s%momentum%data4d(i,j,k,1) = s%momentum%data4d(i,j,k,1) -
this%tmp(i,j,k)
2296 mesh%cxyx%data4d(i,j,k,2),mesh%cxzx%data4d(i,j,k,2), &
2297 mesh%cyxy%data4d(i,j,k,2),mesh%czxz%data4d(i,j,k,2), &
2298 p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2),0.0, &
2299 0.0,c%momentum%data4d(i,j,k,2),0.0)
2301 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2302 - p%velocity%data4d(i,j,k,1)*
this%tmp(i,j,k)
2308 DO k=mesh%KMIN,mesh%KMAX
2309 DO j=mesh%JMIN,mesh%JMAX
2310 DO i=mesh%IMIN,mesh%IMAX
2311 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,2) * 0.5 * (w(j,k+1)-w(j,k-1)) &
2312 / mesh%dlz%data3d(i,j,k)
2314 s%momentum%data4d(i,j,k,1) = s%momentum%data4d(i,j,k,1) -
this%tmp(i,j,k)
2317 mesh%cxyx%data4d(i,j,k,2),mesh%cxzx%data4d(i,j,k,2), &
2318 mesh%cyxy%data4d(i,j,k,2),mesh%czxz%data4d(i,j,k,2), &
2319 p%velocity%data4d(i,j,k,1),0.0,p%velocity%data4d(i,j,k,2), &
2320 0.0,0.0,c%momentum%data4d(i,j,k,2))
2322 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2323 - p%velocity%data4d(i,j,k,1)*
this%tmp(i,j,k)
2329 DO k=mesh%KMIN,mesh%KMAX
2330 DO j=mesh%JMIN,mesh%JMAX
2331 DO i=mesh%IMIN,mesh%IMAX
2332 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,2) * 0.5 * (w(j+1,k)-w(j-1,k)) / mesh%dly%data3d(i,j,k) &
2333 + c%momentum%data4d(i,j,k,3) * 0.5 * (w(j,k+1)-w(j,k-1)) / mesh%dlz%data3d(i,j,k)
2335 s%momentum%data4d(i,j,k,1) = s%momentum%data4d(i,j,k,1) -
this%tmp(i,j,k)
2338 mesh%cxyx%data4d(i,j,k,2),mesh%cxzx%data4d(i,j,k,2), &
2339 mesh%cyxy%data4d(i,j,k,2),mesh%czxz%data4d(i,j,k,2), &
2340 p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2), &
2341 p%velocity%data4d(i,j,k,3), &
2342 0.0,c%momentum%data4d(i,j,k,2),c%momentum%data4d(i,j,k,3))
2344 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2345 - p%velocity%data4d(i,j,k,1)*
this%tmp(i,j,k)
2373 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%KGMIN:Mesh%KGMAX),
INTENT(IN) :: w
2378 SELECT TYPE(c => cvar)
2380 SELECT TYPE(p => pvar)
2382 SELECT TYPE(s => sterm)
2384 SELECT CASE(mesh%VECTOR_COMPONENTS)
2387 DO k=mesh%KMIN,mesh%KMAX
2388 DO j=mesh%JMIN,mesh%JMAX
2389 DO i=mesh%IMIN,mesh%IMAX
2390 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,1) * 0.5 * (w(i+1,k)-w(i-1,k)) &
2391 / mesh%dlx%data3d(i,j,k)
2393 s%momentum%data4d(i,j,k,2) = s%momentum%data4d(i,j,k,2) -
this%tmp(i,j,k)
2396 mesh%cxyx%data4d(i,j,k,2),mesh%cyxy%data4d(i,j,k,2), &
2397 mesh%cyzy%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2398 p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2),0.0, &
2399 0.0,c%momentum%data4d(i,j,k,1),0.0)
2401 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2402 - p%velocity%data4d(i,j,k,2)*
this%tmp(i,j,k)
2408 DO k=mesh%KMIN,mesh%KMAX
2409 DO j=mesh%JMIN,mesh%JMAX
2410 DO i=mesh%IMIN,mesh%IMAX
2411 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,2) * 0.5 * (w(i,k+1)-w(i,k-1)) &
2412 / mesh%dlz%data3d(i,j,k)
2414 s%momentum%data4d(i,j,k,1) = s%momentum%data4d(i,j,k,1) -
this%tmp(i,j,k)
2417 mesh%cxyx%data4d(i,j,k,2),mesh%cyxy%data4d(i,j,k,2), &
2418 mesh%cyzy%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2419 0.0,p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2), &
2420 0.0,0.0,c%momentum%data4d(i,j,k,2))
2422 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2423 - p%velocity%data4d(i,j,k,1)*
this%tmp(i,j,k)
2429 DO k=mesh%KMIN,mesh%KMAX
2430 DO j=mesh%JMIN,mesh%JMAX
2431 DO i=mesh%IMIN,mesh%IMAX
2432 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,1) * 0.5 * (w(i+1,k)-w(i-1,k)) / mesh%dlx%data3d(i,j,k) &
2433 + c%momentum%data4d(i,j,k,3) * 0.5 * (w(j,k+1)-w(j,k-1)) / mesh%dlz%data3d(i,j,k)
2435 s%momentum%data4d(i,j,k,2) = s%momentum%data4d(i,j,k,2) -
this%tmp(i,j,k)
2438 mesh%cxyx%data4d(i,j,k,2),mesh%cyxy%data4d(i,j,k,2), &
2439 mesh%cyzy%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2440 p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2), &
2441 p%velocity%data4d(i,j,k,3),0.0, &
2442 c%momentum%data4d(i,j,k,1),c%momentum%data4d(i,j,k,3))
2444 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2445 - p%velocity%data4d(i,j,k,2)*
this%tmp(i,j,k)
2473 REAL,
DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%JGMIN:Mesh%JGMAX),
INTENT(IN) :: w
2478 SELECT TYPE(c => cvar)
2480 SELECT TYPE(p => pvar)
2482 SELECT TYPE(s => sterm)
2484 SELECT CASE(mesh%VECTOR_COMPONENTS)
2487 DO k=mesh%KMIN,mesh%KMAX
2488 DO j=mesh%JMIN,mesh%JMAX
2489 DO i=mesh%IMIN,mesh%IMAX
2490 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,1) * 0.5 * (w(i+1,j)-w(i-1,j)) / mesh%dlx%data3d(i,j,k)
2492 s%momentum%data4d(i,j,k,2) = s%momentum%data4d(i,j,k,2) -
this%tmp(i,j,k)
2495 mesh%cxzx%data4d(i,j,k,2),mesh%cyzy%data4d(i,j,k,2), &
2496 mesh%czxz%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2497 p%velocity%data4d(i,j,k,1),0.0,p%velocity%data4d(i,j,k,2), &
2498 0.0,c%momentum%data4d(i,j,k,1),0.0)
2500 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2501 - p%velocity%data4d(i,j,k,2)*
this%tmp(i,j,k)
2507 DO k=mesh%KMIN,mesh%KMAX
2508 DO j=mesh%JMIN,mesh%JMAX
2509 DO i=mesh%IMIN,mesh%IMAX
2510 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,1) * 0.5 * (w(i,j+1)-w(i,j-1)) / mesh%dly%data3d(i,j,k)
2512 s%momentum%data4d(i,j,k,2) = s%momentum%data4d(i,j,k,2) -
this%tmp(i,j,k)
2515 mesh%cxzx%data4d(i,j,k,2),mesh%cyzy%data4d(i,j,k,2), &
2516 mesh%czxz%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2517 0.0,p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2), &
2518 0.0,0.0,c%momentum%data4d(i,j,k,1))
2520 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2521 - p%velocity%data4d(i,j,k,2)*
this%tmp(i,j,k)
2527 DO k=mesh%KMIN,mesh%KMAX
2528 DO j=mesh%JMIN,mesh%JMAX
2529 DO i=mesh%IMIN,mesh%IMAX
2530 this%tmp(i,j,k) = c%momentum%data4d(i,j,k,1) * 0.5 * (w(i+1,j)-w(i-1,j)) / mesh%dlx%data3d(i,j,k) &
2531 + c%momentum%data4d(i,j,k,2) * 0.5 * (w(j,j+1)-w(j,j-1)) / mesh%dly%data3d(i,j,k)
2533 s%momentum%data4d(i,j,k,3) = s%momentum%data4d(i,j,k,3) -
this%tmp(i,j,k)
2536 mesh%cxzx%data4d(i,j,k,2),mesh%cyzy%data4d(i,j,k,2), &
2537 mesh%czxz%data4d(i,j,k,2),mesh%czyz%data4d(i,j,k,2), &
2538 p%velocity%data4d(i,j,k,1),p%velocity%data4d(i,j,k,2), &
2539 p%velocity%data4d(i,j,k,3), &
2540 0.0,c%momentum%data4d(i,j,k,1),c%momentum%data4d(i,j,k,2))
2542 s%energy%data3d(i,j,k) = s%energy%data3d(i,j,k) &
2543 - p%velocity%data4d(i,j,k,3)*
this%tmp(i,j,k)
2563 IF (pvar%density%RANK.EQ.0)
THEN
2564 DO concurrent(i=1:
SIZE(
this%bccsound%data1d))
2566 pvar%density%data1d(i),pvar%pressure%data1d(i))
2569 DO concurrent(i=1:
SIZE(
this%fcsound%data1d))
2571 pvar%density%data1d(i),pvar%pressure%data1d(i))
2582 CALL this%physics_eulerisotherm%Finalize()
2597 INTEGER,
OPTIONAL,
INTENT(IN) :: flavour,num
2600 LOGICAL :: success = .false.
2606 ALLOCATE(new_sv%pressure,stat=err)
2608 IF (
PRESENT(num))
THEN
2613 success = new_sv%AppendMArray(new_sv%pressure)
2614 SELECT CASE(new_sv%flavour)
2616 new_sv%energy => null()
2618 new_sv%energy => new_sv%pressure
2619 new_sv%pressure => null()
2622 print *,
"ERROR in physics_euler::CreateStateVector: unknown flavour"
2627 CALL physics%Error(
"physics_euler::CreateStateVector", &
2628 "state vector initialization failed")
2639 print *,
"DEBUG INFO in physics_euler::AssignMArray_0: assigning 2 state vectors"
2641 CALL this%statevector_eulerisotherm%AssignMArray_0(ma)
2642 IF (
SIZE(this%data1d).LE.0)
RETURN
2643 SELECT TYPE(src => ma)
2646 print *,
"DEBUG INFO in physics_euler::AssignMArray_0: restoring pressure/energy pointers"
2648 SELECT CASE(this%flavour)
2651 this%pressure => this%GetItem(this%NextItem(this%NextItem(this%FirstItem())))
2652 this%energy => null()
2655 this%energy => this%GetItem(this%NextItem(this%NextItem(this%FirstItem())))
2656 this%pressure => null()
2672 print *,
"DEBUG INFO in physics_euler::Finalize: cleanup statevector"
2674 NULLIFY(this%pressure,this%energy)
2685 REAL,
INTENT(IN) :: gamma,density,pressure
2688 cs = sqrt(max(2.0*tiny(cs),gamma*pressure/density))
2693 ELEMENTAL SUBROUTINE setroeaverages(gamma,rhoL,rhoR,ul,uR,vL,vR,pL,pR,eL,eR,u,cs)
2696 REAL,
INTENT(IN) :: gamma,rhol,rhor,ul,ur,vl,vr,pl,pr,el,er
2697 REAL,
INTENT(OUT) :: u,cs
2699 REAL :: sqrtrhol,sqrtrhor,invsqrtrho,v,hl,hr,h
2701 sqrtrhol = sqrt(rhol)
2702 sqrtrhor = sqrt(rhor)
2704 invsqrtrho = 1./ (sqrtrhol + sqrtrhor)
2706 u = (sqrtrhol*ul + sqrtrhor*ur) * invsqrtrho
2707 v = (sqrtrhol*vl + sqrtrhor*vr) * invsqrtrho
2709 hl = (el + pl) / rhol
2710 hr = (er + pr) / rhor
2711 h = (sqrtrhol * hl + sqrtrhor * hr) * invsqrtrho
2713 cs = sqrt((gamma-1.)*(h-0.5*(u**2+v**2)))
2720 REAL,
INTENT(IN) :: cs,v
2721 REAL,
INTENT(OUT) :: minwav,maxwav
2724 minwav = min(0.,v-cs)
2725 maxwav = max(0.,v+cs)
2732 REAL,
INTENT(IN) :: gamma,rho,v,p
2733 REAL,
INTENT(OUT) :: l1,l2,l3
2749 REAL,
INTENT(IN) :: gamma,rho,v,p
2750 REAL,
INTENT(OUT) :: l1,l2,l3,l4
2760 REAL,
INTENT(IN) :: gamma,rho,v,p
2761 REAL,
INTENT(OUT) :: l1,l2,l3,l4,l5
2770 pL,pR,eL,eR,amin,amax,rho,mu,mv,e,a)
2773 REAL,
INTENT(IN) :: rhol,rhor,ul,ur,vl,vr,pl,pr,el,er,amin,amax
2774 REAL,
INTENT(OUT) :: rho,mu,mv,e,a
2778 ql = rhol * (ul-amin)
2779 qr = rhor * (ur-amax)
2781 a = (pr - pl + qr*ur - ql*ul) / (qr - ql)
2785 rho = ql / (a - amin)
2788 e = rho * (el/rhol + (a - ul) * (a - pl/ql))
2791 rho = qr / (a - amax)
2794 e = rho * (er/rhor + (a - ur) * (a - pr/qr))
2803 REAL,
INTENT(IN) :: gamma,rho1,rho2,u1,u2,p1,p2,l1,l3
2804 REAL,
INTENT(OUT) :: xvar1,xvar2,xvar3
2806 REAL :: gammadu_cs,dlnp
2810 gammadu_cs = 2*gamma*(u2-u1) / (l3-l1)
2812 xvar1 = dlnp - gammadu_cs
2813 xvar2 = dlnp - gamma * log(rho2/rho1)
2814 xvar3 = dlnp + gammadu_cs
2818 ELEMENTAL SUBROUTINE setcharvars2d(gamma,rho1,rho2,u1,u2,v1,v2,P1,P2,l1,l4, &
2819 xvar1,xvar2,xvar3,xvar4)
2822 REAL,
INTENT(IN) :: gamma,rho1,rho2,u1,u2,v1,v2,p1,p2,l1,l4
2823 REAL,
INTENT(OUT) :: xvar1,xvar2,xvar3,xvar4
2825 CALL setcharvars1d(gamma,rho1,rho2,u1,u2,p1,p2,l1,l4,xvar1,xvar2,xvar4)
2830 ELEMENTAL SUBROUTINE setcharvars3d(gamma,rho1,rho2,u1,u2,v1,v2,w1,w2,P1,P2, &
2831 l1,l5,xvar1,xvar2,xvar3,xvar4,xvar5)
2834 REAL,
INTENT(IN) :: gamma,rho1,rho2,u1,u2,v1,v2,w1,w2,p1,p2,l1,l5
2835 REAL,
INTENT(OUT) :: xvar1,xvar2,xvar3,xvar4,xvar5
2837 CALL setcharvars2d(gamma,rho1,rho2,u1,u2,v1,v2,p1,p2,l1,l5,xvar1,xvar2,xvar3,xvar5)
2844 xvar2,xvar3,rho2,u2,P2)
2847 INTEGER,
INTENT(IN) :: delta
2848 REAL,
INTENT(IN) :: gamma,rho1,u1,p1,xvar1,xvar2,xvar3
2849 REAL,
INTENT(OUT) :: rho2,u2,p2
2853 dlnp = 0.5*(xvar3+xvar1)
2855 rho2 = rho1 * exp(delta/gamma*(dlnp-xvar2))
2856 p2 = p1 * exp(delta*dlnp)
2860 u2 = u1 + 0.5*delta*cs/gamma * (xvar3-xvar1)
2866 xvar2,xvar3,xvar4,rho2,u2,v2,P2)
2869 INTEGER,
INTENT(IN) :: delta
2870 REAL,
INTENT(IN) :: gamma,rho1,u1,v1,p1,xvar1,xvar2,xvar3,xvar4
2871 REAL,
INTENT(OUT) :: rho2,u2,v2,p2
2873 CALL setboundarydata1d(delta,gamma,rho1,u1,p1,xvar1,xvar2,xvar4,rho2,u2,p2)
2874 v2 = v1 + delta*xvar3
2880 xvar2,xvar3,xvar4,xvar5,rho2,u2,v2,w2,P2)
2883 INTEGER,
INTENT(IN) :: delta
2884 REAL,
INTENT(IN) :: gamma,rho1,u1,v1,w1,p1,xvar1,xvar2,xvar3,xvar4,xvar5
2885 REAL,
INTENT(OUT) :: rho2,u2,v2,w2,p2
2887 CALL setboundarydata2d(delta,gamma,rho1,u1,v1,p1,xvar1,xvar2,xvar3,xvar5,rho2,u2,v2,p2)
2888 w2 = w1 + delta*xvar4
2896 REAL,
INTENT(IN) :: gamma,rho,vx,p,l1,l2,l3
2897 REAL,
INTENT(OUT) :: rminus,rs,rplus
2903 rplus = vx + 2./(gamma-1.0) * cs
2905 rminus = vx - 2./(gamma-1.0) * cs
2914 l1,l2,l3,l4,Rminus,Rs,Rvt,Rplus)
2917 REAL,
INTENT(IN) :: gamma,rho,vx,vy,p,l1,l2,l3,l4
2918 REAL,
INTENT(OUT) :: rminus,rs,rvt,rplus
2931 l1,l2,l3,l4,l5,Rminus,Rs,Rvt,Rwt,Rplus)
2934 REAL,
INTENT(IN) :: gamma,rho,vx,vy,vz,p,l1,l2,l3,l4,l5
2935 REAL,
INTENT(OUT) :: rminus,rs,rvt,rwt,rplus
2939 CALL prim2riemann2d(gamma,rho,vx,vy,p,l1,l2,l3,l5,rminus,rs,rvt,rplus)
2948 REAL,
INTENT(IN) :: gamma,rminus,rs,rplus
2949 REAL,
INTENT(OUT) :: rho,vx,p
2954 vx = 0.5*(rplus+rminus)
2956 cs2gam = (0.25*(gamma-1.0)*(rplus-rminus))**2 / gamma
2958 rho = (cs2gam/rs)**(1./(gamma-1.0))
2969 REAL,
INTENT(IN) :: gamma,rminus,rs,rvt,rplus
2970 REAL,
INTENT(OUT) :: rho,vx,vy,p
2987 REAL,
INTENT(IN) :: gamma,rminus,rs,rvt,rwt,rplus
2988 REAL,
INTENT(OUT) :: rho,vx,vy,vz,p
3002 REAL,
INTENT(IN) :: rho,u,p,mu,e
3003 REAL,
INTENT(OUT) :: f1,f2,f3
3014 REAL,
INTENT(IN) :: rho,u,p,mu,mv,e
3015 REAL,
INTENT(OUT) :: f1,f2,f3,f4
3022 ELEMENTAL SUBROUTINE setflux3d(rho,u,P,mu,mv,mw,E,f1,f2,f3,f4,f5)
3025 REAL,
INTENT(IN) :: rho,u,p,mu,mv,mw,e
3026 REAL,
INTENT(OUT) :: f1,f2,f3,f4,f5
3028 CALL setflux2d(rho,u,p,mu,mv,e,f1,f2,f3,f5)
3036 REAL,
INTENT(IN) :: gamma,rho_in,mu,e
3037 REAL,
INTENT(OUT) :: rho_out,u,p
3044 p = (gamma-1.)*(e - 0.5 * inv_rho * mu*mu)
3051 REAL,
INTENT(IN) :: gamma,rho_in,mu,mv,e
3052 REAL,
INTENT(OUT) :: rho_out,u,v,p
3060 p = (gamma-1.)*(e - 0.5 * inv_rho * (mu*mu + mv*mv))
3064 ELEMENTAL SUBROUTINE cons2prim3d(gamma,rho_in,mu,mv,mw,E,rho_out,u,v,w,P)
3067 REAL,
INTENT(IN) :: gamma,rho_in,mu,mv,mw,e
3068 REAL,
INTENT(OUT) :: rho_out,u,v,w,p
3077 p = (gamma-1.)*(e - 0.5 * inv_rho * (mu*mu + mv*mv + mw*mw))
3084 REAL,
INTENT(IN) :: gamma,rho_in,u,p
3085 REAL,
INTENT(OUT) :: rho_out,mu,e
3089 e = p/(gamma-1.) + 0.5 * rho_in * u*u
3096 REAL,
INTENT(IN) :: gamma,rho_in,u,v,p
3097 REAL,
INTENT(OUT) :: rho_out,mu,mv,e
3102 e = p/(gamma-1.) + 0.5 * rho_in * (u*u + v*v)
3106 ELEMENTAL SUBROUTINE prim2cons3d(gamma,rho_in,u,v,w,P,rho_out,mu,mv,mw,E)
3109 REAL,
INTENT(IN) :: gamma,rho_in,u,v,w,p
3110 REAL,
INTENT(OUT) :: rho_out,mu,mv,mw,e
3116 e = p/(gamma-1.) + 0.5 * rho_in * (u*u + v*v + w*w)
3131 REAL,
INTENT(IN) :: cxyx,cxzx,cyxy,czxz,vx,vy,vz,p,my,mz
3142 REAL,
INTENT(IN) :: cxyx,cyxy,cyzy,czyz,vx,vy,vz,p,mx,mz
3153 REAL,
INTENT(IN) :: cxzx,cyzy,czxz,czyz,vx,vy,vz,p,mx,my
Dictionary for generic data types.
type(logging_base), save this
constructor for geometry class
real, save nan_default_real
NaN real constant.
subroutine finalize(this)
Destructor of logging_base class.
base class for mesh arrays
subroutine assignmarray_0(this, ma)
assigns one mesh array to another mesh array
derived class for compound of mesh arrays
integer, parameter vector_y
integer, parameter vector_z
integer, parameter vector_x
flags to check which vector components are enabled
integer, parameter, public euler
physics module for 1D,2D and 3D non-isothermal Euler equations
elemental subroutine setflux1d(rho, u, P, mu, E, f1, f2, f3)
set mass, 1D momentum and energy flux for transport along the 1st dimension
elemental subroutine cons2prim2d(gamma, rho_in, mu, mv, E, rho_out, u, v, P)
Convert from 2D conservative to primitive variables.
elemental subroutine setflux3d(rho, u, P, mu, mv, mw, E, f1, f2, f3, f4, f5)
set mass, 3D momentum and energy flux for transport along the 1st dimension
pure subroutine calculateboundarydatax(this, Mesh, i1, i2, xvar, pvar)
extrapolate pvar using characteristic pseudo variables (absorbing boundaries)
pure subroutine convert2primitive_all(this, cvar, pvar)
Converts conservative to primitive variables on the whole mesh.
elemental subroutine setcharvars3d(gamma, rho1, rho2, u1, u2, v1, v2, w1, w2, P1, P2, l1, l5, xvar1, xvar2, xvar3, xvar4, xvar5)
compute characteristic variables for 3D transport
elemental subroutine cons2prim1d(gamma, rho_in, mu, E, rho_out, u, P)
Convert from 1D conservative to primitive variables.
pure subroutine calcfluxesz(this, Mesh, nmin, nmax, prim, cons, zfluxes)
Calculate Fluxes in z-direction.
pure subroutine calculatecharsystemy(this, Mesh, j1, j2, pvar, lambda, xvar)
pure subroutine updatesoundspeed(this, pvar)
pure subroutine addfargosourcesx(this, Mesh, w, pvar, cvar, sterm)
sources terms for fargo advection along x-direction
elemental subroutine setwavespeeds(cs, v, minwav, maxwav)
set minimal and maximal wave speeds
elemental subroutine prim2cons3d(gamma, rho_in, u, v, w, P, rho_out, mu, mv, mw, E)
Convert from 3D primitive to conservative variables.
pure subroutine subtractbackgroundvelocityz(this, Mesh, w, pvar, cvar)
Substracts a background velocity field for fargo routines.
pure subroutine calculateprim2riemanny(this, Mesh, j, pvar, lambda, Rinv)
Conversion from primitive to riemann invariants for farfield boundaries.
pure subroutine addfargosourcesz(this, Mesh, w, pvar, cvar, sterm)
sources terms for fargo advection along z-direction
pure subroutine calculateboundarydatay(this, Mesh, j1, j2, xvar, pvar)
pure subroutine geometricalsources(this, Mesh, pvar, cvar, sterm)
Calculates geometrical sources.
elemental subroutine prim2cons2d(gamma, rho_in, u, v, P, rho_out, mu, mv, E)
Convert from 2D primitive to conservative variables.
elemental subroutine setflux2d(rho, u, P, mu, mv, E, f1, f2, f3, f4)
set mass, 2D momentum and energy flux for transport along the 1st dimension
pure subroutine addbackgroundvelocityz(this, Mesh, w, pvar, cvar)
Adds a background velocity field for fargo routines.
character(len=32), parameter problem_name
elemental real function getgeometricalsourcex(cxyx, cxzx, cyxy, czxz, vx, vy, vz, P, my, mz)
geometrical momentum source terms P is the either isothermal pressure rho*cs**2 or the real pressure.
elemental real function getgeometricalsourcey(cxyx, cyxy, cyzy, czyz, vx, vy, vz, P, mx, mz)
y-momentum geometrical source term
pure subroutine addbackgroundvelocityy(this, Mesh, w, pvar, cvar)
Adds a background velocity field for fargo routines.
elemental subroutine riemann2prim1d(gamma, Rminus, Rs, Rplus, rho, vx, p)
elemental real function getsoundspeed(gamma, density, pressure)
pure subroutine calcfluxesy(this, Mesh, nmin, nmax, prim, cons, yfluxes)
Calculate Fluxes in y-direction.
pure subroutine calculateriemann2primy(this, Mesh, j, Rinv, pvar)
Convert Riemann invariants to primitives for farfield boundaries.
elemental subroutine setcharvars1d(gamma, rho1, rho2, u1, u2, P1, P2, l1, l3, xvar1, xvar2, xvar3)
compute characteristic variables for 1D transport
elemental subroutine riemann2prim3d(gamma, Rminus, Rs, Rvt, Rwt, Rplus, rho, vx, vy, vz, p)
subroutine finalize_statevector(this)
actual destructor of the statevector_eulerisotherm type
elemental subroutine seteigenvalues3d(gamma, rho, v, P, l1, l2, l3, l4, l5)
set all eigenvalues for 3D transport (used in absorbing boundary conditions)
pure subroutine calculateriemann2primx(this, Mesh, i, Rinv, pvar)
Convert Riemann invariants to primitives for farfield boundaries.
pure subroutine subtractbackgroundvelocityy(this, Mesh, w, pvar, cvar)
Substracts a background velocity field for fargo routines.
subroutine initphysics(this, Mesh, config, IO)
constructor of physics_euler class
pure subroutine calculateprim2riemannx(this, Mesh, i, pvar, lambda, Rinv)
Conversion from primitive to riemann invariants for farfield boundaries.
elemental subroutine prim2riemann3d(gamma, rho, vx, vy, vz, p, l1, l2, l3, l4, l5, Rminus, Rs, Rvt, Rwt, Rplus)
pure subroutine calcfluxesx(this, Mesh, nmin, nmax, prim, cons, xfluxes)
Calculate Fluxes in x-direction.
elemental subroutine setcharvars2d(gamma, rho1, rho2, u1, u2, v1, v2, P1, P2, l1, l4, xvar1, xvar2, xvar3, xvar4)
compute characteristic variables for 2D transport
pure subroutine calculateriemann2primz(this, Mesh, k, Rinv, pvar)
Convert Riemann invariants to primitives for farfield boundaries.
pure subroutine calculateprim2riemannz(this, Mesh, k, pvar, lambda, Rinv)
Conversion from primitive to riemann invariants for farfield boundaries.
pure subroutine convert2conservative_all(this, pvar, cvar)
Converts primitive to conservative variables on the whole mesh.
subroutine viscositysources(this, Mesh, pvar, btxx, btxy, btxz, btyy, btyz, btzz, sterm)
elemental subroutine riemann2prim2d(gamma, Rminus, Rs, Rvt, Rplus, rho, vx, vy, p)
elemental subroutine prim2cons1d(gamma, rho_in, u, P, rho_out, mu, E)
Convert from 1D primitive to conservative variables.
elemental subroutine setboundarydata3d(delta, gamma, rho1, u1, v1, w1, P1, xvar1, xvar2, xvar3, xvar4, xvar5, rho2, u2, v2, w2, P2)
extrapolate primitive variables using characteristic pseudo pevariables 2D transport
elemental subroutine cons2prim3d(gamma, rho_in, mu, mv, mw, E, rho_out, u, v, w, P)
Convert from 3D conservative to primitive variables.
elemental real function getgeometricalsourcez(cxzx, cyzy, czxz, czyz, vx, vy, vz, P, mx, my)
z-momentum geometrical source term
pure subroutine convert2primitive_subset(this, i1, i2, j1, j2, k1, k2, cvar, pvar)
Converts conservative to primitive variables on a subset of the data.
elemental subroutine prim2riemann2d(gamma, rho, vx, vy, p, l1, l2, l3, l4, Rminus, Rs, Rvt, Rplus)
elemental subroutine seteigenvalues1d(gamma, rho, v, P, l1, l2, l3)
set all eigenvalues for 1D transport (used in absorbing boundary conditions)
pure subroutine addfargosourcesy(this, Mesh, w, pvar, cvar, sterm)
sources terms for fargo advection along y-direction
subroutine externalsources(this, accel, pvar, cvar, sterm)
compute momentum and energy sources given an external force
pure subroutine addbackgroundvelocityx(this, Mesh, w, pvar, cvar)
Adds a background velocity field for fargo routines.
pure subroutine convert2conservative_subset(this, i1, i2, j1, j2, k1, k2, pvar, cvar)
Converts primitive to conservative variables on a subset of the data.
pure subroutine subtractbackgroundvelocityx(this, Mesh, w, pvar, cvar)
Substracts a background velocity field for fargo routines.
pure subroutine calculateboundarydataz(this, Mesh, k1, k2, xvar, pvar)
type(statevector_euler) function createstatevector(Physics, flavour, num)
Constructor of statevector_euler.
elemental subroutine seteigenvalues2d(gamma, rho, v, P, l1, l2, l3, l4)
set all eigenvalues for 2D transport (used in absorbing boundary conditions)
elemental subroutine setintermediatestate(rhoL, rhoR, uL, uR, vl, vR, pL, pR, eL, eR, amin, amax, rho, mu, mv, e, a)
elemental subroutine setboundarydata1d(delta, gamma, rho1, u1, P1, xvar1, xvar2, xvar3, rho2, u2, P2)
extrapolate primitive variables using characteristic pseudo pevariables 1D transport
elemental subroutine setroeaverages(gamma, rhoL, rhoR, ul, uR, vL, vR, pL, pR, eL, eR, u, cs)
elemental subroutine prim2riemann1d(gamma, rho, vx, p, l1, l2, l3, Rminus, Rs, Rplus)
elemental subroutine setboundarydata2d(delta, gamma, rho1, u1, v1, P1, xvar1, xvar2, xvar3, xvar4, rho2, u2, v2, P2)
extrapolate primitive variables using characteristic pseudo pevariables 2D transport
pure subroutine calculatecharsystemx(this, Mesh, i1, i2, pvar, lambda, xvar)
pure subroutine calculatecharsystemz(this, Mesh, k1, k2, pvar, lambda, xvar)
physics module for 1D,2D and 3D isothermal Euler equations