subroutine in1eu(qi,mxi,lbi,ubi,q,mx,lb,ub, &
lbr,ubr,shaper,meqn,nc,t)
! ==========================================================
!
! # Computes conserved quantities from primitives for
! # Euler equations. The inverse to flgout2eu.f.
!
! ---- share variables
USE method_parms
implicit none
!
integer meqn, mx, mxi
double precision t, q(meqn,mx), qi(mxi)
!
integer lb(1), ub(1), lbi(1), ubi(1), lbr(1), ubr(1), shaper(1), &
mresult, stride, imin(1), imax(1), i, getindx, d, nc
!
stride = (ub(1) - lb(1))/(mx-1)
do d = 1, 1
imin(d) = max(lb(d), lbr(d))
imax(d) = min(ub(d), ubr(d))
if (mod(imin(d)-lb(d),stride) .ne. 0) then
imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride)
endif
imin(d) = getindx(imin(d), lb(d), stride)
if (mod(imax(d)-lb(d),stride) .ne. 0) then
imax(d) = imax(d) - mod(imax(d)-lb(d),stride)
endif
imax(d) = getindx(imax(d), lb(d), stride)
enddo
do i = imin(1), imax(1)
! Density
if (nc.eq.1) q(1,i) = qi(i)
! Velocity u
if (nc.eq.2) then
q(2,i) = q(1,i)*qi(i)
q(3,i) = 0.0d0
q(4,i) = 0.0d0
endif
! Total energy density
if (nc.eq.3) q(5,i) = qi(i)
! Temperature
if (nc.eq.4) q(nvars+1,i) = qi(i)
! Scalars
IF (nc.ge.(nvars-nscal+2) .and. nc.le.(nvars+1)) &
q(nc-1,i) = q(1,i)*qi(i)
enddo
return
end subroutine in1eu
subroutine in2eu(qi,mxi,myi,lbi,ubi,q,mx,my,lb,ub, &
lbr,ubr,shaper,meqn,nc,t)
! ==========================================================
!
! # Computes conserved quantities from primitives for
! # Euler equations. The inverse to flgout2eu.f.
!
! ---- share variables
USE method_parms
implicit none
!
integer meqn, mx, my, mxi, myi
double precision t, q(meqn,mx,my), qi(mxi,myi)
!
integer lb(2), ub(2), lbi(2), ubi(2), lbr(2), ubr(2), shaper(2), &
mresult, stride, imin(2), imax(2), i, j, getindx, d, nc
!
stride = (ub(1) - lb(1))/(mx-1)
do d = 1, 2
imin(d) = max(lb(d), lbr(d))
imax(d) = min(ub(d), ubr(d))
if (mod(imin(d)-lb(d),stride) .ne. 0) then
imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride)
endif
imin(d) = getindx(imin(d), lb(d), stride)
if (mod(imax(d)-lb(d),stride) .ne. 0) then
imax(d) = imax(d) - mod(imax(d)-lb(d),stride)
endif
imax(d) = getindx(imax(d), lb(d), stride)
enddo
do i = imin(1), imax(1)
do j = imin(2), imax(2)
! Density
if (nc.eq.1) q(1,i,j) = qi(i,j)
! Velocity u
if (nc.eq.2) q(2,i,j) = q(1,i,j)*qi(i,j)
! Velocity v
if (nc.eq.3) then
q(3,i,j) = q(1,i,j)*qi(i,j)
q(4,i,j) = 0.0d0
endif
! Total energy density
if (nc.eq.4) q(5,i,j) = qi(i,j)
! Temperature
if (nc.eq.5) q(nvars+1,i,j) = qi(i,j)
! Scalars
IF (nc.ge.(nvars-nscal+3) .and. nc.le.(nvars+2) ) &
q(nc-2,i,j) = q(1,i,j)*qi(i,j)
enddo
enddo
return
end subroutine in2eu
subroutine in3eu(qi,mxi,myi,mzi,lbi,ubi,q,mx,my,mz,lb,ub, &
lbr,ubr,shaper,meqn,nc,t)
! ==========================================================
!
! # Computes conserved quantities from primitives for
! # Euler equations. The inverse to flgout2eu.f.
!
! ---- share variables
USE method_parms
implicit none
include 'cles.i'
!
integer meqn, mx, my, mz,mxi, myi,mzi
double precision t, q(meqn,mx,my,mz), qi(mxi,myi,mz)
!
integer lb(3), ub(3), lbi(3), ubi(3), lbr(3), ubr(3), shaper(3), &
mresult, stride, imin(3), imax(3), i, j, k, getindx, d, nc
!
stride = (ub(1) - lb(1))/(mx-1)
do d = 1, 3
imin(d) = max(lb(d), lbr(d))
imax(d) = min(ub(d), ubr(d))
if (mod(imin(d)-lb(d),stride) .ne. 0) then
imin(d) = imin(d) + stride - mod(imin(d)-lb(d),stride)
endif
imin(d) = getindx(imin(d), lb(d), stride)
if (mod(imax(d)-lb(d),stride) .ne. 0) then
imax(d) = imax(d) - mod(imax(d)-lb(d),stride)
endif
imax(d) = getindx(imax(d), lb(d), stride)
enddo
do i = imin(1), imax(1)
do j = imin(2), imax(2)
do k = imin(3), imax(3)
! Density
if (nc.eq.1) q(1,i,j,k) = qi(i,j,k)
! Velocity u
if (nc.eq.2) q(2,i,j,k) = q(1,i,j,k)*qi(i,j,k)
! Velocity v
if (nc.eq.3) q(3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
! Velocity w
if (nc.eq.4) q(4,i,j,k) = q(1,i,j,k)*qi(i,j,k)
! Total energy density
if (nc.eq.5) q(5,i,j,k) = qi(i,j,k)
! Temperature
if (nc.eq.6) q(nvars+1,i,j,k) = qi(i,j,k)
! Scalars
IF (nc.ge.(nvars-nscal+4) .and. nc.le.(nvars+3) ) &
q(nc-3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
IF (nc.eq.(nvars+5) .and. useLES .eq. CLES_TRUE) &
q(nvars+3,i,j,k) = q(1,i,j,k)*qi(i,j,k)
enddo
enddo
enddo
return
end subroutine in3eu