@@ -195,8 +195,12 @@ contains
195195 do l = 1 , sys_size
196196 @:ALLOCATE(flux_n(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
197197 & idwbuff(3 )%beg:idwbuff(3 )%end))
198- @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
199- & idwbuff(3 )%beg:idwbuff(3 )%end))
198+ if (igr) then
199+ @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(1 :1 , 1 :1 , 1 :1 ))
200+ else
201+ @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
202+ & idwbuff(3 )%beg:idwbuff(3 )%end))
203+ end if
200204 end do
201205
202206 if ((viscous .or. surface_tension) .or. igr) then
@@ -228,8 +232,12 @@ contains
228232 end if
229233 else
230234 do l = 1 , sys_size
231- @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
232- & idwbuff(3 )%beg:idwbuff(3 )%end))
235+ if (igr) then
236+ @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(1 :1 , 1 :1 , 1 :1 ))
237+ else
238+ @:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
239+ & idwbuff(3 )%beg:idwbuff(3 )%end))
240+ end if
233241 end do
234242 end if
235243
@@ -271,10 +279,15 @@ contains
271279 @:ALLOCATE(qL_prim(i)%vf(1 :sys_size))
272280 @:ALLOCATE(qR_prim(i)%vf(1 :sys_size))
273281 do l = eqn_idx%mom%beg, eqn_idx%mom%end
274- @:ALLOCATE(qL_prim(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
275- & idwbuff(3 )%beg:idwbuff(3 )%end))
276- @:ALLOCATE(qR_prim(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
277- & idwbuff(3 )%beg:idwbuff(3 )%end))
282+ if (igr) then
283+ @:ALLOCATE(qL_prim(i)%vf(l)%sf(1 :1 , 1 :1 , 1 :1 ))
284+ @:ALLOCATE(qR_prim(i)%vf(l)%sf(1 :1 , 1 :1 , 1 :1 ))
285+ else
286+ @:ALLOCATE(qL_prim(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
287+ & idwbuff(3 )%beg:idwbuff(3 )%end))
288+ @:ALLOCATE(qR_prim(i)%vf(l)%sf(idwbuff(1 )%beg:idwbuff(1 )%end, idwbuff(2 )%beg:idwbuff(2 )%end, &
289+ & idwbuff(3 )%beg:idwbuff(3 )%end))
290+ end if
278291 end do
279292 @:ACC_SETUP_VFs(qL_prim(i), qR_prim(i))
280293 end do
@@ -409,19 +422,21 @@ contains
409422 end do
410423 end if
411424
412- $:GPU_PARALLEL_LOOP(private= ' [i, j, k, l, id]' , collapse= 4 )
413- do id = 1 , num_dims
414- do i = 1 , sys_size
415- do l = idwbuff(3 )%beg, idwbuff(3 )%end
416- do k = idwbuff(2 )%beg, idwbuff(2 )%end
417- do j = idwbuff(1 )%beg, idwbuff(1 )%end
418- flux_gsrc_n(id)%vf(i)%sf(j, k, l) = 0._wp
425+ if (.not. igr) then
426+ $:GPU_PARALLEL_LOOP(private= ' [i, j, k, l, id]' , collapse= 4 )
427+ do id = 1 , num_dims
428+ do i = 1 , sys_size
429+ do l = idwbuff(3 )%beg, idwbuff(3 )%end
430+ do k = idwbuff(2 )%beg, idwbuff(2 )%end
431+ do j = idwbuff(1 )%beg, idwbuff(1 )%end
432+ flux_gsrc_n(id)%vf(i)%sf(j, k, l) = 0._wp
433+ end do
419434 end do
420435 end do
421436 end do
422437 end do
423- end do
424- $:END_GPU_PARALLEL_LOOP()
438+ $:END_GPU_PARALLEL_LOOP()
439+ end if
425440 ! end if
426441
427442 if (qbmm) then
@@ -695,7 +710,9 @@ contains
695710
696711 ! Match legacy IGR alpha-flux/source semantics before shared RHS accumulation.
697712 if (igr) then
713+ call nvtxStartRange("IGR-CORRECT-LF-FLUXES")
698714 call s_igr_correct_lf_fluxes(qR_rsx_vf, qL_rsx_vf, flux_n(id)%vf, flux_src_n(id)%vf, id)
715+ call nvtxEndRange
699716 end if
700717
701718 ! Additional physics and source terms RHS addition for advection source
0 commit comments