Skip to content

Commit 9f72081

Browse files
Small commit adding an additional scaler in case there was a precision issue for the intel compiler. I also have split out the loops in the subroutine to test if trying to block those together is causing an issue
1 parent 50904ff commit 9f72081

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/simulation/m_time_steppers.fpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -357,10 +357,10 @@ contains
357357

358358
end subroutine s_initialize_time_steppers_module
359359

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

362362
integer, intent(in) :: index !! TODO :: Rename this
363-
real(wp), intent(in) :: scaler1, scaler2, scaler3 !! TODO :: Rename these too
363+
real(wp), intent(in) :: scaler1, scaler2, scaler3, scaler4 !! TODO :: Rename these too
364364
integer :: i, j, k, l, q
365365

366366
!$acc parallel loop collapse(4) gang vector default(present)
@@ -371,7 +371,7 @@ contains
371371
q_cons_ts(index)%vf(i)%sf(j, k, l) = &
372372
(scaler1*q_cons_ts(1)%vf(i)%sf(j, k, l) &
373373
+ scaler2*q_cons_ts(2)%vf(i)%sf(j, k, l) &
374-
+ scaler3*dt*rhs_vf(i)%sf(j, k, l))/(scaler1 + scaler2) !! TODO :: scaler1 + scaler2 should be called a normalization constant
374+
+ scaler3*dt*rhs_vf(i)%sf(j, k, l))/scaler4 !! TODO :: scaler1 + scaler2 should be called a normalization constant
375375
end do
376376
end do
377377
end do
@@ -388,7 +388,7 @@ contains
388388
pb_ts(index)%sf(j, k, l, q, i) = &
389389
(scaler1*pb_ts(1)%sf(j, k, l, q, i) &
390390
+ scaler2*pb_ts(2)%sf(j, k, l, q, i) &
391-
+ scaler3*dt*rhs_pb(j, k, l, q, i))/(scaler1 + scaler2)
391+
+ scaler3*dt*rhs_pb(j, k, l, q, i))/scaler4
392392
end do
393393
end do
394394
end do
@@ -404,7 +404,7 @@ contains
404404
mv_ts(index)%sf(j, k, l, q, i) = &
405405
(scaler1*mv_ts(1)%sf(j, k, l, q, i) &
406406
+ scaler2*mv_ts(2)%sf(j, k, l, q, i) &
407-
+ scaler3*dt*rhs_mv(j, k, l, q, i))/(scaler1 + scaler2)
407+
+ scaler3*dt*rhs_mv(j, k, l, q, i))/scaler4
408408
end do
409409
end do
410410
end do
@@ -479,6 +479,7 @@ contains
479479
pb_ts(1)%sf(j, k, l, q, i) = &
480480
pb_ts(1)%sf(j, k, l, q, i) &
481481
+ dt*rhs_pb(j, k, l, q, i)
482+
482483
mv_ts(1)%sf(j, k, l, q, i) = &
483484
mv_ts(1)%sf(j, k, l, q, i) &
484485
+ dt*rhs_mv(j, k, l, q, i)
@@ -546,7 +547,7 @@ contains
546547
call s_update_lagrange_tdv_rk(stage=1)
547548
end if
548549

549-
call s_evolve_q_pb_mv(2, 1.0_wp, 0.0_wp, 1.0_wp)
550+
call s_evolve_q_pb_mv(2, 1.0_wp, 0.0_wp, 1.0_wp, 1.0_wp)
550551

551552
if (bodyForces) call s_apply_bodyforces(q_cons_ts(2)%vf, q_prim_vf, rhs_vf, dt)
552553

@@ -575,7 +576,7 @@ contains
575576
call s_update_lagrange_tdv_rk(stage=2)
576577
end if
577578

578-
call s_evolve_q_pb_mv(1, 1.0_wp, 1.0_wp, 1.0_wp)
579+
call s_evolve_q_pb_mv(1, 1.0_wp, 1.0_wp, 1.0_wp, 2.0_wp)
579580

580581
if (bodyForces) call s_apply_bodyforces(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, 2._wp*dt/3._wp)
581582

@@ -640,7 +641,7 @@ contains
640641
call s_update_lagrange_tdv_rk(stage=1)
641642
end if
642643

643-
call s_evolve_q_pb_mv(2, 1.0_wp, 0.0_wp, 1.0_wp)
644+
call s_evolve_q_pb_mv(2, 1.0_wp, 0.0_wp, 1.0_wp, 1.0_wp)
644645

645646
if (bodyForces) call s_apply_bodyforces(q_cons_ts(2)%vf, q_prim_vf, rhs_vf, dt)
646647

@@ -669,7 +670,7 @@ contains
669670
call s_update_lagrange_tdv_rk(stage=2)
670671
end if
671672

672-
call s_evolve_q_pb_mv(2, 3.0_wp, 1.0_wp, 1.0_wp)
673+
call s_evolve_q_pb_mv(2, 3.0_wp, 1.0_wp, 1.0_wp, 4.0_wp)
673674

674675
if (bodyForces) call s_apply_bodyforces(q_cons_ts(2)%vf, q_prim_vf, rhs_vf, dt/4._wp)
675676

@@ -697,7 +698,7 @@ contains
697698
call s_update_lagrange_tdv_rk(stage=3)
698699
end if
699700

700-
call s_evolve_q_pb_mv(1, 1.0_wp, 2.0_wp, 2.0_wp)
701+
call s_evolve_q_pb_mv(1, 1.0_wp, 2.0_wp, 2.0_wp, 3.0_wp)
701702

702703
if (bodyForces) call s_apply_bodyforces(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, 2._wp*dt/3._wp)
703704

0 commit comments

Comments
 (0)