30 integer(kind=inttype) :: discr
31 integer(kind=inttype) :: i, j, k, l
33 integer(kind=inttype) :: iale, jale, kale, lale, male
34 real(kind=realtype),
parameter :: k1=1.05_realtype
37 real(kind=realtype),
parameter :: k2=0.6_realtype
39 real(kind=realtype),
parameter :: m0=0.2_realtype
40 real(kind=realtype),
parameter :: alpha=0_realtype
41 real(kind=realtype),
parameter :: delta=0_realtype
44 real(kind=realtype),
parameter :: cpres=4.18_realtype
45 real(kind=realtype),
parameter :: temp=297.15_realtype
49 real(kind=realtype) :: k3, h, velxrho, velyrho, velzrho, sos, hinf
50 real(kind=realtype) :: resm, a11, a12, a13, a14, a15, a21, a22, a23&
51 & , a24, a25, a31, a32, a33, a34, a35
52 real(kind=realtype) :: a41, a42, a43, a44, a45, a51, a52, a53, a54, &
53 & a55, b11, b12, b13, b14, b15
54 real(kind=realtype) :: b21, b22, b23, b24, b25, b31, b32, b33, b34, &
56 real(kind=realtype) :: b41, b42, b43, b44, b45, b51, b52, b53, b54, &
58 real(kind=realtype) :: rhohdash, betamr2
59 real(kind=realtype) :: g, q
60 real(kind=realtype) :: b1, b2, b3, b4, b5
61 real(kind=realtype) :: dwo(
nwf)
68 real(kind=realtype) :: x1
71 real(kind=realtype) :: abs0
72 real(realtype) :: max1
73 real(realtype) :: max2
134 if (
rfil .ge. 0.)
then
140 if (abs0 .gt. thresholdreal)
then
170 sos = sqrt(
gamma(i, j, k)*
p(i, j, k)/
w(i, j, k, irho))
179 velxrho =
w(i, j, k, ivx)
180 velyrho =
w(i, j, k, ivy)
181 velzrho =
w(i, j, k, ivz)
182 q = velxrho**2 + velyrho**2 + velzrho**2
201 k3 = k1*(1+(1-k1*m0**2)*resm**2/(k1*m0**4))
202 if (k3*(velxrho**2+velyrho**2+velzrho**2) .lt. k2*(
winf(ivx)&
203 & **2+
winf(ivy)**2+
winf(ivz)**2))
then
206 x1 = k3*(velxrho**2+velyrho**2+velzrho**2)
208 if (x1 .gt. sos**2)
then
216 a11 = betamr2*(1/sos**4)
220 a15 = (-betamr2)/sos**4
221 a21 = one*velxrho/sos**2
222 a22 = one*
w(i, j, k, irho)
225 a25 = one*(-velxrho)/sos**2
226 a31 = one*velyrho/sos**2
228 a33 = one*
w(i, j, k, irho)
230 a35 = one*(-velyrho)/sos**2
231 a41 = one*velzrho/sos**2
234 a44 = one*
w(i, j, k, irho)
235 a45 = zero + one*(-velzrho)/sos**2
237 a51 = one*(1/(
gamma(i, j, k)-1)+resm**2/2)
238 a52 = one*
w(i, j, k, irho)*velxrho
239 a53 = one*
w(i, j, k, irho)*velyrho
240 a54 = one*
w(i, j, k, irho)*velzrho
241 a55 = one*((-(resm**2))/2)
242 b11 = a11*(
gamma(i, j, k)-1)*q/2 + a12*(-velxrho)/
w(i, j, k&
243 & , irho) + a13*(-velyrho)/
w(i, j, k, irho) + a14*(-velzrho)&
244 & /
w(i, j, k, irho) + a15*((
gamma(i, j, k)-1)*q/2-sos**2)
245 b12 = a11*(1-
gamma(i, j, k))*velxrho + a12*1/
w(i, j, k, irho&
246 & ) + a15*(1-
gamma(i, j, k))*velxrho
247 b13 = a11*(1-
gamma(i, j, k))*velyrho + a13/
w(i, j, k, irho) &
248 & + a15*(1-
gamma(i, j, k))*velyrho
249 b14 = a11*(1-
gamma(i, j, k))*velzrho + a14/
w(i, j, k, irho) &
250 & + a15*(1-
gamma(i, j, k))*velzrho
251 b15 = a11*(
gamma(i, j, k)-1) + a15*(
gamma(i, j, k)-1)
252 b21 = a21*(
gamma(i, j, k)-1)*q/2 + a22*(-velxrho)/
w(i, j, k&
253 & , irho) + a23*(-velyrho)/
w(i, j, k, irho) + a24*(-velzrho)&
254 & /
w(i, j, k, irho) + a25*((
gamma(i, j, k)-1)*q/2-sos**2)
255 b22 = a21*(1-
gamma(i, j, k))*velxrho + a22/
w(i, j, k, irho) &
256 & + a25*(1-
gamma(i, j, k))*velxrho
257 b23 = a21*(1-
gamma(i, j, k))*velyrho + a23*1/
w(i, j, k, irho&
258 & ) + a25*(1-
gamma(i, j, k))*velyrho
259 b24 = a21*(1-
gamma(i, j, k))*velzrho + a24*1/
w(i, j, k, irho&
260 & ) + a25*(1-
gamma(i, j, k))*velzrho
261 b25 = a21*(
gamma(i, j, k)-1) + a25*(
gamma(i, j, k)-1)
262 b31 = a31*(
gamma(i, j, k)-1)*q/2 + a32*(-velxrho)/
w(i, j, k&
263 & , irho) + a33*(-velyrho)/
w(i, j, k, irho) + a34*(-velzrho)&
264 & /
w(i, j, k, irho) + a35*((
gamma(i, j, k)-1)*q/2-sos**2)
265 b32 = a31*(1-
gamma(i, j, k))*velxrho + a32/
w(i, j, k, irho) &
266 & + a35*(1-
gamma(i, j, k))*velxrho
267 b33 = a31*(1-
gamma(i, j, k))*velyrho + a33*1/
w(i, j, k, irho&
268 & ) + a35*(1-
gamma(i, j, k))*velyrho
269 b34 = a31*(1-
gamma(i, j, k))*velzrho + a34*1/
w(i, j, k, irho&
270 & ) + a35*(1-
gamma(i, j, k))*velzrho
271 b35 = a31*(
gamma(i, j, k)-1) + a35*(
gamma(i, j, k)-1)
272 b41 = a41*(
gamma(i, j, k)-1)*q/2 + a42*(-velxrho)/
w(i, j, k&
273 & , irho) + a43*(-velyrho)/
w(i, j, k, irho) + a44*(-velzrho)&
274 & /
w(i, j, k, irho) + a45*((
gamma(i, j, k)-1)*q/2-sos**2)
275 b42 = a41*(1-
gamma(i, j, k))*velxrho + a42/
w(i, j, k, irho) &
276 & + a45*(1-
gamma(i, j, k))*velxrho
277 b43 = a41*(1-
gamma(i, j, k))*velyrho + a43*1/
w(i, j, k, irho&
278 & ) + a45*(1-
gamma(i, j, k))*velyrho
279 b44 = a41*(1-
gamma(i, j, k))*velzrho + a44*1/
w(i, j, k, irho&
280 & ) + a45*(1-
gamma(i, j, k))*velzrho
281 b45 = a41*(
gamma(i, j, k)-1) + a45*(
gamma(i, j, k)-1)
282 b51 = a51*(
gamma(i, j, k)-1)*q/2 + a52*(-velxrho)/
w(i, j, k&
283 & , irho) + a53*(-velyrho)/
w(i, j, k, irho) + a54*(-velzrho)&
284 & /
w(i, j, k, irho) + a55*((
gamma(i, j, k)-1)*q/2-sos**2)
285 b52 = a51*(1-
gamma(i, j, k))*velxrho + a52/
w(i, j, k, irho) &
286 & + a55*(1-
gamma(i, j, k))*velxrho
287 b53 = a51*(1-
gamma(i, j, k))*velyrho + a53*1/
w(i, j, k, irho&
288 & ) + a55*(1-
gamma(i, j, k))*velyrho
289 b54 = a51*(1-
gamma(i, j, k))*velzrho + a54*1/
w(i, j, k, irho&
290 & ) + a55*(1-
gamma(i, j, k))*velzrho
291 b55 = a51*(
gamma(i, j, k)-1) + a55*(
gamma(i, j, k)-1)
294 x2 = real(
iblank(i, j, k), realtype)
295 if (x2 .lt. zero)
then
300 dwo(l) = (
dw(i, j, k, l)+
fw(i, j, k, l))*max1
302 dw(i, j, k, 1) = b11*dwo(1) + b12*dwo(2) + b13*dwo(3) + b14*&
303 & dwo(4) + b15*dwo(5)
304 dw(i, j, k, 2) = b21*dwo(1) + b22*dwo(2) + b23*dwo(3) + b24*&
305 & dwo(4) + b25*dwo(5)
306 dw(i, j, k, 3) = b31*dwo(1) + b32*dwo(2) + b33*dwo(3) + b34*&
307 & dwo(4) + b35*dwo(5)
308 dw(i, j, k, 4) = b41*dwo(1) + b42*dwo(2) + b43*dwo(3) + b44*&
309 & dwo(4) + b45*dwo(5)
310 dw(i, j, k, 5) = b51*dwo(1) + b52*dwo(2) + b53*dwo(3) + b54*&
311 & dwo(4) + b55*dwo(5)
323 x3 = real(
iblank(i, j, k), realtype)
324 if (x3 .lt. zero)
then
329 dw(i, j, k, l) = (
dw(i, j, k, l)+
fw(i, j, k, l))*max2
353 integer(kind=inttype),
intent(in) :: nn, iregion
354 logical,
intent(in) :: res
355 real(kind=realtype),
intent(inout) :: plocal
357 integer(kind=inttype) :: i, j, k, ii, istart, iend
358 real(kind=realtype) :: ftmp(3), vx, vy, vz, f_fact(3), q_fact, qtmp&
359 & , redim, factor, ostart, oend
360 real(kind=realtype) :: vxd, vyd, vzd
383 & iregion)%volume/
pref
395 ftmp =
vol(i, j, k)*f_fact
398 vxd = -(ftmp(1)*
dwd(i, j, k,
irhoe))
399 vyd = -(ftmp(2)*
dwd(i, j, k,
irhoe))
400 vzd = -(ftmp(3)*
dwd(i, j, k,
irhoe))
425 integer(kind=inttype),
intent(in) :: nn, iregion
426 logical,
intent(in) :: res
427 real(kind=realtype),
intent(inout) :: plocal
429 integer(kind=inttype) :: i, j, k, ii, istart, iend
430 real(kind=realtype) :: ftmp(3), vx, vy, vz, f_fact(3), q_fact, qtmp&
431 & , redim, factor, ostart, oend
448 & iregion)%volume/
pref
462 ftmp =
vol(i, j, k)*f_fact
467 qtmp =
vol(i, j, k)*q_fact
473 & vy - ftmp(3)*vz - qtmp
476 plocal = plocal + (vx*ftmp(1)+vy*ftmp(2)+vz*ftmp(3))*redim
504 integer(kind=inttype),
intent(in) :: varstart, varend, nn, sps
508 integer(kind=inttype) :: mm, ll, ii, jj, i, j, k, l, m
509 real(kind=realtype) :: oneoverdt, tmp
510 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww, wsp, wsp1
511 real(kind=realtype),
dimension(:, :, :),
pointer :: volsp
514 if (varend .ge. varstart)
then
521 call pushcontrol2b(1)
523 call pushcontrol2b(0)
526 call pushcontrol2b(2)
528 do l=varend,varstart,-1
531 dwd(i, j,
kb, l) = 0.0_8
532 dwd(i, j,
ke, l) = 0.0_8
533 dwd(i, j, 1, l) = 0.0_8
534 dwd(i, j, 0, l) = 0.0_8
539 dwd(i,
jb, k, l) = 0.0_8
540 dwd(i,
je, k, l) = 0.0_8
541 dwd(i, 1, k, l) = 0.0_8
542 dwd(i, 0, k, l) = 0.0_8
547 dwd(
ib, j, k, l) = 0.0_8
548 dwd(
ie, j, k, l) = 0.0_8
549 dwd(1, j, k, l) = 0.0_8
550 dwd(0, j, k, l) = 0.0_8
554 call popcontrol2b(branch)
555 if (branch .eq. 0)
then
556 do l=varend,varstart,-1
560 dwd(i, j, k, l) = 0.0_8
565 else if (branch .eq. 1)
then
566 do l=varend,varstart,-1
570 dwd(i, j, k, l) = 0.0_8
597 integer(kind=inttype),
intent(in) :: varstart, varend, nn, sps
601 integer(kind=inttype) :: mm, ll, ii, jj, i, j, k, l, m
602 real(kind=realtype) :: oneoverdt, tmp
603 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww, wsp, wsp1
604 real(kind=realtype),
dimension(:, :, :),
pointer :: volsp
606 if (varend .lt. varstart)
then
621 dw(i, j, k, l) = zero
633 dw(i, j, k, l) =
wr(i, j, k, l)
645 dw(0, j, k, l) = zero
646 dw(1, j, k, l) = zero
647 dw(
ie, j, k, l) = zero
648 dw(
ib, j, k, l) = zero
653 dw(i, 0, k, l) = zero
654 dw(i, 1, k, l) = zero
655 dw(i,
je, k, l) = zero
656 dw(i,
jb, k, l) = zero
661 dw(i, j, 0, l) = zero
662 dw(i, j, 1, l) = zero
663 dw(i, j,
ke, l) = zero
664 dw(i, j,
kb, l) = zero
type(actuatorregiontype), dimension(nactuatorregionsmax), target actuatorregions
real(kind=realtype), dimension(:, :, :), pointer gamma
real(kind=realtype), dimension(:, :, :, :), pointer wd
real(kind=realtype), dimension(:, :, :, :), pointer wr
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
integer(kind=inttype), dimension(:, :, :), pointer iblank
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :, :), pointer fw
real(kind=realtype), dimension(:, :, :, :), pointer dwd
real(kind=realtype), parameter zero
integer(kind=inttype), dimension(32) myintstack
integer(kind=inttype) myintptr
real(kind=realtype), parameter one
subroutine allnodalgradients()
subroutine computespeedofsoundsquared()
integer(kind=inttype) nwf
real(kind=realtype), dimension(:), allocatable winf
subroutine invisciddissfluxscalar()
subroutine inviscidcentralflux()
subroutine viscousfluxapprox()
subroutine invisciddissfluxscalarapprox()
subroutine invisciddissfluxmatrix()
subroutine inviscidupwindflux(finegrid)
subroutine invisciddissfluxmatrixapprox()
integer(kind=inttype) currentlevel
integer(kind=inttype) groundlevel
integer(kind=inttype) rkstage
real(kind=realtype) ordersconverged
subroutine initres_block_fast_b(varstart, varend, nn, sps)
subroutine sourceterms_block(nn, res, iregion, plocal)
subroutine sourceterms_block_fast_b(nn, res, iregion, plocal)
subroutine initres_block(varstart, varend, nn, sps)
subroutine residual_block()