Skip to content

Commit d053365

Browse files
Successfully wrapped in function
1 parent d4ba8ea commit d053365

File tree

1 file changed

+56
-45
lines changed

1 file changed

+56
-45
lines changed

src/simulation/m_time_steppers.fpp

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -357,51 +357,27 @@ contains
357357

358358
end subroutine s_initialize_time_steppers_module
359359

360-
subroutine s_evolve_q_pb_mv(index1, index2, scaler1, scaler2, scaler3, scaler4) !! TODO :: Get a better name for this
360+
subroutine s_evolve_q(index, scaler1, scaler2, scaler3) !! TODO :: Get a better name for this
361361

362-
integer, intent(in) :: index1, index2 !! TODO :: I have no idea what index is meant to represent. Rename this.
363-
real(wp), intent(in) :: scaler1, scaler2, scaler3, scaler4
364-
integer :: i, j, k, l, q
362+
integer, intent(in) :: index !! TODO :: I have no idea what index is meant to represent. Rename this.
363+
real(wp), intent(in) :: scaler1, scaler2, scaler3
364+
integer :: i, j, k, l
365365

366366
!$acc parallel loop collapse(4) gang vector default(present)
367367
do i = 1, sys_size
368368
do l = 0, p
369369
do k = 0, n
370370
do j = 0, m
371-
q_cons_ts(index1)%vf(i)%sf(j, k, l) = &
371+
q_cons_ts(index)%vf(i)%sf(j, k, l) = &
372372
(scaler1 * q_cons_ts(1)%vf(i)%sf(j, k, l) &
373-
+ scaler2 * q_cons_ts(index2)%vf(i)%sf(j, k, l) &
374-
+ scaler3 * dt * rhs_vf(i)%sf(j, k, l)) / scaler4
373+
+ scaler2 * q_cons_ts(2)%vf(i)%sf(j, k, l) &
374+
+ scaler3 * dt * rhs_vf(i)%sf(j, k, l)) / (scaler1 + scaler2)
375375
end do
376376
end do
377377
end do
378378
end do
379379

380-
!Evolve pb and mv for non-polytropic qbmm
381-
!! TODO :: It really feels like this loop should be separated from the above loop. Consider making two different subroutines
382-
if (qbmm .and. (.not. polytropic)) then
383-
!$acc parallel loop collapse(5) gang vector default(present)
384-
do i = 1, nb
385-
do l = 0, p
386-
do k = 0, n
387-
do j = 0, m
388-
do q = 1, nnode
389-
pb_ts(index1)%sf(j, k, l, q, i) = &
390-
(scaler1 * pb_ts(1)%sf(j, k, l, q, i) &
391-
+ scaler2 * pb_ts(index2)%sf(j, k, l, q, i) &
392-
+ scaler3 * dt * rhs_pb(j, k, l, q, i)) / scaler4
393-
mv_ts(index1)%sf(j, k, l, q, i) = &
394-
(scaler1 * mv_ts(1)%sf(j, k, l, q, i) &
395-
+ scaler2 * mv_ts(index2)%sf(j, k, l, q, i) &
396-
+ scaler3 * dt * rhs_mv(j, k, l, q, i)) / scaler4
397-
end do
398-
end do
399-
end do
400-
end do
401-
end do
402-
end if
403-
404-
end subroutine s_evolve_q_pb_mv
380+
end subroutine s_evolve_q
405381

406382
!> 1st order TVD RK time-stepping algorithm
407383
!! @param t_step Current time step
@@ -444,7 +420,53 @@ contains
444420
call s_update_lagrange_tdv_rk(stage=1)
445421
end if
446422

447-
call s_evolve_q_pb_mv(1, 1, 1._wp, 1._wp, 1._wp, 1._wp)
423+
!$acc parallel loop collapse(4) gang vector default(present)
424+
do i = 1, sys_size
425+
do l = 0, p
426+
do k = 0, n
427+
do j = 0, m
428+
q_cons_ts(1)%vf(i)%sf(j, k, l) = &
429+
q_cons_ts(1)%vf(i)%sf(j, k, l) &
430+
+ dt*rhs_vf(i)%sf(j, k, l)
431+
end do
432+
end do
433+
end do
434+
end do
435+
436+
!Evolve pb and mv for non-polytropic qbmm
437+
if (qbmm .and. (.not. polytropic)) then
438+
!$acc parallel loop collapse(5) gang vector default(present)
439+
do i = 1, nb
440+
do l = 0, p
441+
do k = 0, n
442+
do j = 0, m
443+
do q = 1, nnode
444+
pb_ts(1)%sf(j, k, l, q, i) = &
445+
pb_ts(1)%sf(j, k, l, q, i) &
446+
+ dt*rhs_pb(j, k, l, q, i)
447+
end do
448+
end do
449+
end do
450+
end do
451+
end do
452+
end if
453+
454+
if (qbmm .and. (.not. polytropic)) then
455+
!$acc parallel loop collapse(5) gang vector default(present)
456+
do i = 1, nb
457+
do l = 0, p
458+
do k = 0, n
459+
do j = 0, m
460+
do q = 1, nnode
461+
mv_ts(1)%sf(j, k, l, q, i) = &
462+
mv_ts(1)%sf(j, k, l, q, i) &
463+
+ dt*rhs_mv(j, k, l, q, i)
464+
end do
465+
end do
466+
end do
467+
end do
468+
end do
469+
end if
448470

449471

450472
if (bodyForces) call s_apply_bodyforces(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, dt)
@@ -692,18 +714,7 @@ contains
692714
call s_update_lagrange_tdv_rk(stage=1)
693715
end if
694716

695-
!$acc parallel loop collapse(4) gang vector default(present)
696-
do i = 1, sys_size
697-
do l = 0, p
698-
do k = 0, n
699-
do j = 0, m
700-
q_cons_ts(2)%vf(i)%sf(j, k, l) = &
701-
q_cons_ts(1)%vf(i)%sf(j, k, l) &
702-
+ dt*rhs_vf(i)%sf(j, k, l)
703-
end do
704-
end do
705-
end do
706-
end do
717+
call s_evolve_q(2, 1.0_wp, 0.0_wp, 1.0_wp)
707718

708719
!Evolve pb and mv for non-polytropic qbmm
709720
if (qbmm .and. (.not. polytropic)) then

0 commit comments

Comments
 (0)