MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_igr.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2!>
3!! @file
4!! @brief Contains module m_igr
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
7! This file exists so that Fypp can be run without generating case.fpp files for
8! each target. This is useful when generating documentation, for example. This
9! should also let MFC be built with CMake directly, without invoking mfc.sh.
10
11! For pre-process.
12# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
13
14! For moving immersed boundaries in simulation
15# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43! New line at end of file is required for FYPP
44# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
45# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
46# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
47# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70! New line at end of file is required for FYPP
71# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
72
73# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78
79# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80
81# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82
83# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149! New line at end of file is required for FYPP
150# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
151# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
152# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
153# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158
159# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162
163# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164
165# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166
167# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176! New line at end of file is required for FYPP
177# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
178
179# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180
181# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182
183# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184
185# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186
187# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234! New line at end of file is required for FYPP
235# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
236
237# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238
239# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240
241# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242
243# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244
245# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246
247# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250
251# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252
253# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256
257# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258
259# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262
263# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264
265# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268
269# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
270
271# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275! New line at end of file is required for FYPP
276# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
277
278# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279
280! Caution:
281! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
282! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
283! For an example see misc/nvidia_uvm/bind.sh.
284# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285
286# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287
288# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289
290# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
291
292# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293
294# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
295
296# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
297
298# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299! New line at end of file is required for FYPP
300# 7 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp" 2
301
302!> @brief Iterative ghost rasterization (IGR) for sharp immersed boundary treatment
303module m_igr
304
305 use m_derived_types !< definitions of the derived types
306
308
310
311 use m_mpi_proxy
312
313 use m_helper
314
316
317 implicit none
318
319 private; public :: s_initialize_igr_module, &
325
326!> @cond
327#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
328 integer, dimension(3) :: nv_uvm_temp_on_gpu
329 real(wp), pointer, contiguous, dimension(:, :, :) :: jac, jac_rhs, jac_old
330 real(wp), allocatable, dimension(:, :, :), pinned, target :: jac_host
331 real(wp), allocatable, dimension(:, :, :), pinned, target :: jac_rhs_host
332 real(wp), allocatable, dimension(:, :, :), pinned, target :: jac_old_host
333#else
334!> @endcond
335 real(wp), allocatable, target, dimension(:, :, :) :: jac
336 real(wp), allocatable, dimension(:, :, :) :: jac_rhs, jac_old
337
338# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
339#if defined(MFC_OpenACC)
340# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
341!$acc declare create(jac, jac_rhs, jac_old)
342# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
343#elif defined(MFC_OpenMP)
344# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
345!$omp declare target (jac, jac_rhs, jac_old)
346# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
347#endif
348!> @cond
349#endif
350!> @endcond
351 type(scalar_field), dimension(1) :: jac_sf
352
353# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
354#if defined(MFC_OpenACC)
355# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
356!$acc declare create(jac_sf)
357# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
358#elif defined(MFC_OpenMP)
359# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
360!$omp declare target (jac_sf)
361# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
362#endif
363
364 real(wp), allocatable, dimension(:, :) :: res_igr
365
366# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
367#if defined(MFC_OpenACC)
368# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
369!$acc declare create(Res_igr)
370# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
371#elif defined(MFC_OpenMP)
372# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
373!$omp declare target (Res_igr)
374# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
375#endif
376
377 real(wp) :: alf_igr
378
379# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
380#if defined(MFC_OpenACC)
381# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
382!$acc declare create(alf_igr)
383# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
384#elif defined(MFC_OpenMP)
385# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
386!$omp declare target (alf_igr)
387# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
388#endif
389
390# 57 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
391 integer :: vidxb, vidxe
392
393# 58 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
394#if defined(MFC_OpenACC)
395# 58 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
396!$acc declare create(vidxb, vidxe)
397# 58 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
398#elif defined(MFC_OpenMP)
399# 58 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
400!$omp declare target (vidxb, vidxe)
401# 58 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
402#endif
403
404 real(wp), allocatable, dimension(:) :: coeff_l, coeff_r
405
406# 61 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
407#if defined(MFC_OpenACC)
408# 61 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
409!$acc declare create(coeff_L, coeff_R)
410# 61 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
411#elif defined(MFC_OpenMP)
412# 61 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
413!$omp declare target (coeff_L, coeff_R)
414# 61 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
415#endif
416# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
417
418 integer(kind=8) :: i, j, k, l, q, r
419
420contains
421
422 !> @brief Allocates and initializes arrays, coefficients, and GPU data structures for the implicit gradient reconstruction module.
424
425 if (viscous) then
426#ifdef MFC_DEBUG
427# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
428 block
429# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
430 use iso_fortran_env, only: output_unit
431# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
432
433# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
434 print *, 'm_igr.fpp:142: ', '@:ALLOCATE(Res_igr(1:2, 1:maxval(Re_size)))'
435# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
436
437# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
438 call flush (output_unit)
439# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
440 end block
441# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
442#endif
443# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
444 allocate (res_igr(1:2, 1:maxval(re_size)))
445# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
446
447# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
448
449# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
450#if defined(MFC_OpenACC)
451# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
452!$acc enter data create(Res_igr)
453# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
454#elif defined(MFC_OpenMP)
455# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
456!$omp target enter data map(always,alloc:Res_igr)
457# 142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
458#endif
459 do i = 1, 2
460 do j = 1, re_size(i)
461 res_igr(i, j) = fluid_pp(re_idx(i, j))%Re(i)
462 end do
463 end do
464
465# 148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
466#if defined(MFC_OpenACC)
467# 148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
468!$acc update device(Res_igr, Re_idx, Re_size)
469# 148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
470#elif defined(MFC_OpenMP)
471# 148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
472!$omp target update to(Res_igr, Re_idx, Re_size)
473# 148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
474#endif
475#ifdef MFC_SIMULATION
476# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
477#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
478# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
479 block
480# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
481! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
482# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
483! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
484# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
485! The cudafor functionality has not changed. But for new users, or users who have needed to
486# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
487! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
488# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
489! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
490# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
491! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
492# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
493#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
494# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
495 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
496# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
497#else
498# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
499 use cuda_runtime_api
500# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
501#endif
502# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
503 integer :: istat
504# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
505
506# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
507 if (nv_uvm_pref_gpu) then
508# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
509 !print*, "Moving Res_igr to GPU => ", SHAPE(Res_igr)
510# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
511 ! set preferred location GPU
512# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
513 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetpreferredlocation, 0)
514# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
515 if (istat /= cudasuccess) then
516# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
517 write (*, "('Error code: ',I0, ': ')") istat
518# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
519 !write(*,*) cudaGetErrorString(istat)
520# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
521 end if
522# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
523 ! set accessed by CPU
524# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
525 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetaccessedby, cudacpudeviceid)
526# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
527 if (istat /= cudasuccess) then
528# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
529 write (*, "('Error code: ',I0, ': ')") istat
530# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
531 !write(*,*) cudaGetErrorString(istat)
532# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
533 end if
534# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
535 ! prefetch to GPU - physically populate memory pages
536# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
537 istat = cudamemprefetchasync(c_devloc(res_igr), sizeof(res_igr), 0, 0)
538# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
539 if (istat /= cudasuccess) then
540# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
541 write (*, "('Error code: ',I0, ': ')") istat
542# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
543 !write(*,*) cudaGetErrorString(istat)
544# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
545 end if
546# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
547 end if
548# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
549 end block
550# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
551#endif
552# 149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
553#endif
554#ifdef MFC_SIMULATION
555# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
556#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
557# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
558 block
559# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
560! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
561# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
562! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
563# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
564! The cudafor functionality has not changed. But for new users, or users who have needed to
565# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
566! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
567# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
568! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
569# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
570! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
571# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
572#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
573# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
574 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
575# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
576#else
577# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
578 use cuda_runtime_api
579# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
580#endif
581# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
582 integer :: istat
583# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
584
585# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
586 if (nv_uvm_pref_gpu) then
587# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
588 !print*, "Moving Re_idx to GPU => ", SHAPE(Re_idx)
589# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
590 ! set preferred location GPU
591# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
592 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetpreferredlocation, 0)
593# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
594 if (istat /= cudasuccess) then
595# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
596 write (*, "('Error code: ',I0, ': ')") istat
597# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
598 !write(*,*) cudaGetErrorString(istat)
599# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
600 end if
601# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
602 ! set accessed by CPU
603# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
604 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetaccessedby, cudacpudeviceid)
605# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
606 if (istat /= cudasuccess) then
607# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
608 write (*, "('Error code: ',I0, ': ')") istat
609# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
610 !write(*,*) cudaGetErrorString(istat)
611# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
612 end if
613# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
614 ! prefetch to GPU - physically populate memory pages
615# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
616 istat = cudamemprefetchasync(c_devloc(re_idx), sizeof(re_idx), 0, 0)
617# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
618 if (istat /= cudasuccess) then
619# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
620 write (*, "('Error code: ',I0, ': ')") istat
621# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
622 !write(*,*) cudaGetErrorString(istat)
623# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
624 end if
625# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
626 end if
627# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
628 end block
629# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
630#endif
631# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
632#endif
633 end if
634
635#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
636#ifdef MFC_DEBUG
637# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
638 block
639# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
640 use iso_fortran_env, only: output_unit
641# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
642
643# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
644 print *, 'm_igr.fpp:154: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
645# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
646
647# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
648 call flush (output_unit)
649# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
650 end block
651# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
652#endif
653# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
654 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
655# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
656
657# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
658
659# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
660#if defined(MFC_OpenACC)
661# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
662!$acc enter data create(jac)
663# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
664#elif defined(MFC_OpenMP)
665# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
666!$omp target enter data map(always,alloc:jac)
667# 154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
668#endif
669# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
670#ifdef MFC_DEBUG
671# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
672 block
673# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
674 use iso_fortran_env, only: output_unit
675# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
676
677# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
678 print *, 'm_igr.fpp:157: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
679# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
680
681# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
682 call flush (output_unit)
683# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
684 end block
685# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
686#endif
687# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
688 allocate (jac_rhs(-1:m,-1:n,-1:p))
689# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
690
691# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
692
693# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
694#if defined(MFC_OpenACC)
695# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
696!$acc enter data create(jac_rhs)
697# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
698#elif defined(MFC_OpenMP)
699# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
700!$omp target enter data map(always,alloc:jac_rhs)
701# 157 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
702#endif
703
704 if (igr_iter_solver == 1) then ! Jacobi iteration
705#ifdef MFC_DEBUG
706# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
707 block
708# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
709 use iso_fortran_env, only: output_unit
710# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
711
712# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
713 print *, 'm_igr.fpp:160: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
714# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
715
716# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
717 call flush (output_unit)
718# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
719 end block
720# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
721#endif
722# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
723 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
724# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
725
726# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
727
728# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
729#if defined(MFC_OpenACC)
730# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
731!$acc enter data create(jac_old)
732# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
733#elif defined(MFC_OpenMP)
734# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
735!$omp target enter data map(always,alloc:jac_old)
736# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
737#endif
738# 163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
739 end if
740#else
741 ! create map
742 nv_uvm_temp_on_gpu(1:3) = 0
743 nv_uvm_temp_on_gpu(1:nv_uvm_igr_temps_on_gpu) = 1
744
745 if (nv_uvm_temp_on_gpu(1) == 1) then
746#ifdef MFC_DEBUG
747# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
748 block
749# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
750 use iso_fortran_env, only: output_unit
751# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
752
753# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
754 print *, 'm_igr.fpp:170: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
755# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
756
757# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
758 call flush (output_unit)
759# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
760 end block
761# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
762#endif
763# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
764 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
765# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
766
767# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
768
769# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
770#if defined(MFC_OpenACC)
771# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
772!$acc enter data create(jac)
773# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
774#elif defined(MFC_OpenMP)
775# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
776!$omp target enter data map(always,alloc:jac)
777# 170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
778#endif
779# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
780#ifdef MFC_SIMULATION
781# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
782#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
783# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
784 block
785# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
786! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
787# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
788! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
789# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
790! The cudafor functionality has not changed. But for new users, or users who have needed to
791# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
792! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
793# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
794! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
795# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
796! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
797# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
798#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
799# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
800 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
801# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
802#else
803# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
804 use cuda_runtime_api
805# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
806#endif
807# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
808 integer :: istat
809# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
810
811# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
812 if (nv_uvm_pref_gpu) then
813# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
814 !print*, "Moving jac to GPU => ", SHAPE(jac)
815# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
816 ! set preferred location GPU
817# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
818 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetpreferredlocation, 0)
819# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
820 if (istat /= cudasuccess) then
821# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
822 write (*, "('Error code: ',I0, ': ')") istat
823# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
824 !write(*,*) cudaGetErrorString(istat)
825# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
826 end if
827# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
828 ! set accessed by CPU
829# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
830 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetaccessedby, cudacpudeviceid)
831# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
832 if (istat /= cudasuccess) then
833# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
834 write (*, "('Error code: ',I0, ': ')") istat
835# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
836 !write(*,*) cudaGetErrorString(istat)
837# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
838 end if
839# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
840 ! prefetch to GPU - physically populate memory pages
841# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
842 istat = cudamemprefetchasync(c_devloc(jac), sizeof(jac), 0, 0)
843# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
844 if (istat /= cudasuccess) then
845# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
846 write (*, "('Error code: ',I0, ': ')") istat
847# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
848 !write(*,*) cudaGetErrorString(istat)
849# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
850 end if
851# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
852 end if
853# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
854 end block
855# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
856#endif
857# 173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
858#endif
859 else
860 allocate (jac_host(idwbuff(1)%beg:idwbuff(1)%end, &
861 idwbuff(2)%beg:idwbuff(2)%end, &
862 idwbuff(3)%beg:idwbuff(3)%end))
863
864 jac(idwbuff(1)%beg:idwbuff(1)%end, &
865 idwbuff(2)%beg:idwbuff(2)%end, &
866 idwbuff(3)%beg:idwbuff(3)%end) => jac_host(:, :, :)
867 end if
868
869 if (nv_uvm_temp_on_gpu(2) == 1) then
870#ifdef MFC_DEBUG
871# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
872 block
873# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
874 use iso_fortran_env, only: output_unit
875# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
876
877# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
878 print *, 'm_igr.fpp:185: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
879# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
880
881# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
882 call flush (output_unit)
883# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
884 end block
885# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
886#endif
887# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
888 allocate (jac_rhs(-1:m,-1:n,-1:p))
889# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
890
891# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
892
893# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
894#if defined(MFC_OpenACC)
895# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
896!$acc enter data create(jac_rhs)
897# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
898#elif defined(MFC_OpenMP)
899# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
900!$omp target enter data map(always,alloc:jac_rhs)
901# 185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
902#endif
903#ifdef MFC_SIMULATION
904# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
905#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
906# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
907 block
908# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
909! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
910# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
911! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
912# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
913! The cudafor functionality has not changed. But for new users, or users who have needed to
914# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
915! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
916# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
917! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
918# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
919! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
920# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
921#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
922# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
923 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
924# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
925#else
926# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
927 use cuda_runtime_api
928# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
929#endif
930# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
931 integer :: istat
932# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
933
934# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
935 if (nv_uvm_pref_gpu) then
936# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
937 !print*, "Moving jac_rhs to GPU => ", SHAPE(jac_rhs)
938# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
939 ! set preferred location GPU
940# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
941 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetpreferredlocation, 0)
942# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
943 if (istat /= cudasuccess) then
944# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
945 write (*, "('Error code: ',I0, ': ')") istat
946# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
947 !write(*,*) cudaGetErrorString(istat)
948# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
949 end if
950# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
951 ! set accessed by CPU
952# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
953 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetaccessedby, cudacpudeviceid)
954# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
955 if (istat /= cudasuccess) then
956# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
957 write (*, "('Error code: ',I0, ': ')") istat
958# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
959 !write(*,*) cudaGetErrorString(istat)
960# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
961 end if
962# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
963 ! prefetch to GPU - physically populate memory pages
964# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
965 istat = cudamemprefetchasync(c_devloc(jac_rhs), sizeof(jac_rhs), 0, 0)
966# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
967 if (istat /= cudasuccess) then
968# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
969 write (*, "('Error code: ',I0, ': ')") istat
970# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
971 !write(*,*) cudaGetErrorString(istat)
972# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
973 end if
974# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
975 end if
976# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
977 end block
978# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
979#endif
980# 186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
981#endif
982 else
983 allocate (jac_rhs_host(-1:m, -1:n, -1:p))
984 jac_rhs(-1:m, -1:n, -1:p) => jac_rhs_host(:, :, :)
985 end if
986
987 if (igr_iter_solver == 1) then ! Jacobi iteration
988 if (nv_uvm_temp_on_gpu(3) == 1) then
989#ifdef MFC_DEBUG
990# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
991 block
992# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
993 use iso_fortran_env, only: output_unit
994# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
995
996# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
997 print *, 'm_igr.fpp:194: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
998# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
999
1000# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1001 call flush (output_unit)
1002# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1003 end block
1004# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1005#endif
1006# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1007 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1008# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1009
1010# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1011
1012# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1013#if defined(MFC_OpenACC)
1014# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1015!$acc enter data create(jac_old)
1016# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1017#elif defined(MFC_OpenMP)
1018# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1019!$omp target enter data map(always,alloc:jac_old)
1020# 194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1021#endif
1022# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1023#ifdef MFC_SIMULATION
1024# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1025#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
1026# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1027 block
1028# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1029! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
1030# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1031! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
1032# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1033! The cudafor functionality has not changed. But for new users, or users who have needed to
1034# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1035! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
1036# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1037! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
1038# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1039! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
1040# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1041#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
1042# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1043 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
1044# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1045#else
1046# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1047 use cuda_runtime_api
1048# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1049#endif
1050# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1051 integer :: istat
1052# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1053
1054# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1055 if (nv_uvm_pref_gpu) then
1056# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1057 !print*, "Moving jac_old to GPU => ", SHAPE(jac_old)
1058# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1059 ! set preferred location GPU
1060# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1061 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetpreferredlocation, 0)
1062# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1063 if (istat /= cudasuccess) then
1064# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1065 write (*, "('Error code: ',I0, ': ')") istat
1066# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1067 !write(*,*) cudaGetErrorString(istat)
1068# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1069 end if
1070# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1071 ! set accessed by CPU
1072# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1073 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetaccessedby, cudacpudeviceid)
1074# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1075 if (istat /= cudasuccess) then
1076# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1077 write (*, "('Error code: ',I0, ': ')") istat
1078# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1079 !write(*,*) cudaGetErrorString(istat)
1080# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1081 end if
1082# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1083 ! prefetch to GPU - physically populate memory pages
1084# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1085 istat = cudamemprefetchasync(c_devloc(jac_old), sizeof(jac_old), 0, 0)
1086# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1087 if (istat /= cudasuccess) then
1088# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1089 write (*, "('Error code: ',I0, ': ')") istat
1090# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1091 !write(*,*) cudaGetErrorString(istat)
1092# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1093 end if
1094# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1095 end if
1096# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1097 end block
1098# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1099#endif
1100# 197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1101#endif
1102 else
1103 allocate (jac_old_host(idwbuff(1)%beg:idwbuff(1)%end, &
1104 idwbuff(2)%beg:idwbuff(2)%end, &
1105 idwbuff(3)%beg:idwbuff(3)%end))
1106
1107 jac_old(idwbuff(1)%beg:idwbuff(1)%end, &
1108 idwbuff(2)%beg:idwbuff(2)%end, &
1109 idwbuff(3)%beg:idwbuff(3)%end) => jac_old_host(:, :, :)
1110 end if
1111 end if
1112#endif
1113
1114
1115# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1116
1117# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1118#if defined(MFC_OpenACC)
1119# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1120!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1121# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1122#elif defined(MFC_OpenMP)
1123# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1124
1125# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1126
1127# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1128
1129# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1130!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
1131# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1132#endif
1133# 210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1134
1135 do l = idwbuff(3)%beg, idwbuff(3)%end
1136 do k = idwbuff(2)%beg, idwbuff(2)%end
1137 do j = idwbuff(1)%beg, idwbuff(1)%end
1138 jac(j, k, l) = 0._stp
1139 if (igr_iter_solver == 1) jac_old(j, k, l) = 0._stp
1140 end do
1141 end do
1142 end do
1143
1144# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1145
1146# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1147#if defined(MFC_OpenACC)
1148# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1149!$acc end parallel loop
1150# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1151#elif defined(MFC_OpenMP)
1152# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1153
1154# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1155
1156# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1157!$omp end target teams loop
1158# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1159#endif
1160# 219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1161
1162
1163 if (p == 0) then
1164 alf_igr = alf_factor*max(dx(1), dy(1))**2._wp
1165 else
1166 alf_igr = alf_factor*max(dx(1), dy(1), dz(1))**2._wp
1167 end if
1168
1169# 226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1170#if defined(MFC_OpenACC)
1171# 226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1172!$acc update device(alf_igr)
1173# 226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1174#elif defined(MFC_OpenMP)
1175# 226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1176!$omp target update to(alf_igr)
1177# 226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1178#endif
1179
1180# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1181 if (igr_order == 3) then
1182 vidxb = -1; vidxe = 2;
1183
1184# 231 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1185#if defined(MFC_OpenACC)
1186# 231 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1187!$acc update device(vidxb, vidxe)
1188# 231 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1189#elif defined(MFC_OpenMP)
1190# 231 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1191!$omp target update to(vidxb, vidxe)
1192# 231 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1193#endif
1194
1195#ifdef MFC_DEBUG
1196# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1197 block
1198# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1199 use iso_fortran_env, only: output_unit
1200# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1201
1202# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1203 print *, 'm_igr.fpp:233: ', '@:ALLOCATE(coeff_L(0:2))'
1204# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1205
1206# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1207 call flush (output_unit)
1208# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1209 end block
1210# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1211#endif
1212# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1213 allocate (coeff_l(0:2))
1214# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1215
1216# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1217
1218# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1219#if defined(MFC_OpenACC)
1220# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1221!$acc enter data create(coeff_L)
1222# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1223#elif defined(MFC_OpenMP)
1224# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1225!$omp target enter data map(always,alloc:coeff_L)
1226# 233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1227#endif
1228 coeff_l(0) = (2._wp/6._wp)
1229 coeff_l(1) = (5._wp/6._wp)
1230 coeff_l(2) = (-1._wp/6._wp)
1231
1232#ifdef MFC_DEBUG
1233# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1234 block
1235# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1236 use iso_fortran_env, only: output_unit
1237# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1238
1239# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1240 print *, 'm_igr.fpp:238: ', '@:ALLOCATE(coeff_R(-1:1))'
1241# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1242
1243# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1244 call flush (output_unit)
1245# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1246 end block
1247# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1248#endif
1249# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1250 allocate (coeff_r(-1:1))
1251# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1252
1253# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1254
1255# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1256#if defined(MFC_OpenACC)
1257# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1258!$acc enter data create(coeff_R)
1259# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1260#elif defined(MFC_OpenMP)
1261# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1262!$omp target enter data map(always,alloc:coeff_R)
1263# 238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1264#endif
1265 coeff_r(1) = (2._wp/6._wp)
1266 coeff_r(0) = (5._wp/6._wp)
1267 coeff_r(-1) = (-1._wp/6._wp)
1268
1269 elseif (igr_order == 5) then
1270 vidxb = -2; vidxe = 3;
1271
1272# 245 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1273#if defined(MFC_OpenACC)
1274# 245 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1275!$acc update device(vidxb, vidxe)
1276# 245 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1277#elif defined(MFC_OpenMP)
1278# 245 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1279!$omp target update to(vidxb, vidxe)
1280# 245 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1281#endif
1282
1283#ifdef MFC_DEBUG
1284# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1285 block
1286# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1287 use iso_fortran_env, only: output_unit
1288# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1289
1290# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1291 print *, 'm_igr.fpp:247: ', '@:ALLOCATE(coeff_L(-1:3))'
1292# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1293
1294# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1295 call flush (output_unit)
1296# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1297 end block
1298# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1299#endif
1300# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1301 allocate (coeff_l(-1:3))
1302# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1303
1304# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1305
1306# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1307#if defined(MFC_OpenACC)
1308# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1309!$acc enter data create(coeff_L)
1310# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1311#elif defined(MFC_OpenMP)
1312# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1313!$omp target enter data map(always,alloc:coeff_L)
1314# 247 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1315#endif
1316 coeff_l(-1) = (-3._wp/60._wp)
1317 coeff_l(0) = (27._wp/60._wp)
1318 coeff_l(1) = (47._wp/60._wp)
1319 coeff_l(2) = (-13._wp/60._wp)
1320 coeff_l(3) = (2._wp/60._wp)
1321
1322#ifdef MFC_DEBUG
1323# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1324 block
1325# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1326 use iso_fortran_env, only: output_unit
1327# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1328
1329# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1330 print *, 'm_igr.fpp:254: ', '@:ALLOCATE(coeff_R(-2:2))'
1331# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1332
1333# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1334 call flush (output_unit)
1335# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1336 end block
1337# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1338#endif
1339# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1340 allocate (coeff_r(-2:2))
1341# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1342
1343# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1344
1345# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1346#if defined(MFC_OpenACC)
1347# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1348!$acc enter data create(coeff_R)
1349# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1350#elif defined(MFC_OpenMP)
1351# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1352!$omp target enter data map(always,alloc:coeff_R)
1353# 254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1354#endif
1355 coeff_r(2) = (-3._wp/60._wp)
1356 coeff_r(1) = (27._wp/60._wp)
1357 coeff_r(0) = (47._wp/60._wp)
1358 coeff_r(-1) = (-13._wp/60._wp)
1359 coeff_r(-2) = (2._wp/60._wp)
1360 end if
1361
1362
1363# 262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1364#if defined(MFC_OpenACC)
1365# 262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1366!$acc update device(coeff_L)
1367# 262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1368#elif defined(MFC_OpenMP)
1369# 262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1370!$omp target update to(coeff_L)
1371# 262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1372#endif
1373
1374# 263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1375#if defined(MFC_OpenACC)
1376# 263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1377!$acc update device(coeff_R)
1378# 263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1379#elif defined(MFC_OpenMP)
1380# 263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1381!$omp target update to(coeff_R)
1382# 263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1383#endif
1384# 270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1385 jac_sf(1)%sf => jac
1386
1387# 271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1388#if defined(MFC_OpenACC)
1389# 271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1390!$acc enter data copyin(jac_sf(1)%sf)
1391# 271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1392#elif defined(MFC_OpenMP)
1393# 271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1394!$omp target enter data map(to:jac_sf(1)%sf)
1395# 271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1396#endif
1397
1398# 272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1399#if defined(MFC_OpenACC)
1400# 272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1401!$acc enter data attach(jac_sf(1)%sf)
1402# 272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1403#elif defined(MFC_OpenMP)
1404# 272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1405!$omp target enter data map(always,to:jac_sf(1)%sf)
1406# 272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1407#endif
1408
1409 end subroutine s_initialize_igr_module
1410
1411 !> @brief Iteratively solves the implicit gradient reconstruction system using Jacobi or Gauss-Seidel relaxation.
1412 subroutine s_igr_iterative_solve(q_cons_vf, bc_type, t_step)
1413#ifdef _CRAYFTN
1414 !DIR$ OPTIMIZE (-haggress)
1415#endif
1416 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1417 type(integer_field), dimension(1:num_dims, 1:2), intent(in) :: bc_type
1418 integer, intent(in) :: t_step
1419
1420 real(wp) :: rho_rx, rho_ry, rho_rz, rho_lx, rho_ly, rho_lz
1421 real(wp) :: fd_coeff
1422 integer :: num_iters
1423
1424 if (t_step == t_step_start) then
1425 num_iters = num_igr_warm_start_iters
1426 else
1427 num_iters = num_igr_iters
1428 end if
1429
1430 do q = 1, num_iters
1431
1432# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1433
1434# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1435#if defined(MFC_OpenACC)
1436# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1437!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_lx, rho_rx, rho_ly, rho_ry, rho_lz, rho_rz, fd_coeff)
1438# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1439#elif defined(MFC_OpenMP)
1440# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1441
1442# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1443
1444# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1445
1446# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1447!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_lx, rho_rx, rho_ly, rho_ry, rho_lz, rho_rz, fd_coeff)
1448# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1449#endif
1450# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1451
1452 do l = 0, p
1453 do k = 0, n
1454 do j = 0, m
1455 rho_lx = 0._wp
1456 rho_rx = 0._wp
1457 rho_ly = 0._wp
1458 rho_ry = 0._wp
1459 rho_lz = 0._wp
1460 rho_rz = 0._wp
1461 fd_coeff = 0._wp
1462
1463
1464# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1465#if defined(MFC_OpenACC)
1466# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1467!$acc loop seq
1468# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1469#elif defined(MFC_OpenMP)
1470# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1471
1472# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1473#endif
1474 do i = 1, num_fluids
1475 rho_lx = rho_lx + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j - 1, k, l), kind=wp)/2._wp
1476 rho_rx = rho_rx + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j + 1, k, l), kind=wp)/2._wp
1477 rho_ly = rho_ly + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j, k - 1, l), kind=wp)/2._wp
1478 rho_ry = rho_ry + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j, k + 1, l), kind=wp)/2._wp
1479 if (p > 0) then
1480 rho_lz = rho_lz + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j, k, l - 1), kind=wp)/2._wp
1481 rho_rz = rho_rz + real(q_cons_vf(i)%sf(j, k, l) + q_cons_vf(i)%sf(j, k, l + 1), kind=wp)/2._wp
1482 end if
1483 fd_coeff = fd_coeff + q_cons_vf(i)%sf(j, k, l)
1484 end do
1485
1486 fd_coeff = 1._wp/fd_coeff + alf_igr* &
1487 ((1._wp/dx(j)**2._wp)*(1._wp/rho_lx + 1._wp/rho_rx) + &
1488 (1._wp/dy(k)**2._wp)*(1._wp/rho_ly + 1._wp/rho_ry))
1489
1490 if (num_dims == 3) then
1491 fd_coeff = fd_coeff + alf_igr*(1._wp/dz(l)**2._wp)*(1._wp/rho_lz + 1._wp/rho_rz)
1492 end if
1493
1494 if (igr_iter_solver == 1) then ! Jacobi iteration
1495 if (num_dims == 3) then
1496 jac(j, k, l) = real((alf_igr/fd_coeff)* &
1497 ((1._wp/dx(j)**2._wp)*(jac_old(j - 1, k, l)/rho_lx + jac_old(j + 1, k, l)/rho_rx) + &
1498 (1._wp/dy(k)**2._wp)*(jac_old(j, k - 1, l)/rho_ly + jac_old(j, k + 1, l)/rho_ry) + &
1499 (1._wp/dz(l)**2._wp)*(jac_old(j, k, l - 1)/rho_lz + jac_old(j, k, l + 1)/rho_rz)) + &
1500 real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1501 else
1502 jac(j, k, l) = real((alf_igr/fd_coeff)* &
1503 ((1._wp/dx(j)**2._wp)*(real(jac_old(j - 1, k, l), kind=wp)/rho_lx + real(jac_old(j + 1, k, l), kind=wp)/rho_rx) + &
1504 (1._wp/dy(k)**2._wp)*(real(jac_old(j, k - 1, l), kind=wp)/rho_ly + real(jac_old(j, k + 1, l), kind=wp)/rho_ry)) + &
1505 real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1506 end if
1507 else ! Gauss Seidel iteration
1508 if (num_dims == 3) then
1509 jac(j, k, l) = real((alf_igr/fd_coeff)* &
1510 ((1._wp/dx(j)**2._wp)*(jac(j - 1, k, l)/rho_lx + jac(j + 1, k, l)/rho_rx) + &
1511 (1._wp/dy(k)**2._wp)*(jac(j, k - 1, l)/rho_ly + jac(j, k + 1, l)/rho_ry) + &
1512 (1._wp/dz(l)**2._wp)*(jac(j, k, l - 1)/rho_lz + jac(j, k, l + 1)/rho_rz)) + &
1513 real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1514 else
1515 jac(j, k, l) = real((alf_igr/fd_coeff)* &
1516 ((1._wp/dx(j)**2._wp)*(jac(j - 1, k, l)/rho_lx + jac(j + 1, k, l)/rho_rx) + &
1517 (1._wp/dy(k)**2._wp)*(jac(j, k - 1, l)/rho_ly + jac(j, k + 1, l)/rho_ry)) + &
1518 real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1519 end if
1520 end if
1521 end do
1522 end do
1523 end do
1524
1525# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1526
1527# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1528#if defined(MFC_OpenACC)
1529# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1530!$acc end parallel loop
1531# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1532#elif defined(MFC_OpenMP)
1533# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1534
1535# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1536
1537# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1538!$omp end target teams loop
1539# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1540#endif
1541# 359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1542
1543
1544 call s_populate_f_igr_buffers(bc_type, jac_sf)
1545
1546 if (igr_iter_solver == 1 .or. dummy) then ! Jacobi iteration
1547
1548# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1549
1550# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1551#if defined(MFC_OpenACC)
1552# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1553!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1554# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1555#elif defined(MFC_OpenMP)
1556# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1557
1558# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1559
1560# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1561
1562# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1563!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
1564# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1565#endif
1566# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1567
1568 do l = idwbuff(3)%beg, idwbuff(3)%end
1569 do k = idwbuff(2)%beg, idwbuff(2)%end
1570 do j = idwbuff(1)%beg, idwbuff(1)%end
1571 jac_old(j, k, l) = jac(j, k, l)
1572 end do
1573 end do
1574 end do
1575
1576# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1577
1578# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1579#if defined(MFC_OpenACC)
1580# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1581!$acc end parallel loop
1582# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1583#elif defined(MFC_OpenMP)
1584# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1585
1586# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1587
1588# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1589!$omp end target teams loop
1590# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1591#endif
1592# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1593
1594 end if
1595 end do
1596
1597 end subroutine s_igr_iterative_solve
1598
1599 !> @brief Computes the IGR viscous stress contribution in the x-direction and accumulates it into the RHS.
1600 subroutine s_igr_sigma_x(q_cons_vf, rhs_vf)
1601#ifdef _CRAYFTN
1602 !DIR$ OPTIMIZE (-haggress)
1603#endif
1604 type(scalar_field), &
1605 dimension(sys_size), &
1606 intent(inout) :: rhs_vf
1607 type(scalar_field), &
1608 dimension(sys_size), &
1609 intent(inout) :: q_cons_vf
1610
1611 real(wp) :: f_l, vel_l, rho_l, f_r, vel_r, rho_r
1612# 392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1613 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_rho_r
1614# 396 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1615
1616
1617# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1618
1619# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1620#if defined(MFC_OpenACC)
1621# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1622!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, F_L, vel_L, alpha_rho_L, F_R, vel_R, alpha_rho_R, rho_L, rho_R)
1623# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1624#elif defined(MFC_OpenMP)
1625# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1626
1627# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1628
1629# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1630
1631# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1632!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, F_L, vel_L, alpha_rho_L, F_R, vel_R, alpha_rho_R, rho_L, rho_R)
1633# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1634#endif
1635# 397 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1636
1637 do l = 0, p
1638 do k = 0, n
1639 do j = -1, m
1640
1641 f_l = 0._wp; f_r = 0._wp
1642 vel_l = 0._wp; vel_r = 0._wp
1643 rho_l = 0._wp; rho_r = 0._wp
1644
1645
1646# 406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1647#if defined(MFC_OpenACC)
1648# 406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1649!$acc loop seq
1650# 406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1651#elif defined(MFC_OpenMP)
1652# 406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1653
1654# 406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1655#endif
1656 do i = 1, num_fluids
1657 alpha_rho_l(i) = 0._wp
1658 alpha_rho_r(i) = 0._wp
1659 end do
1660
1661
1662# 412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1663#if defined(MFC_OpenACC)
1664# 412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1665!$acc loop seq
1666# 412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1667#elif defined(MFC_OpenMP)
1668# 412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1669
1670# 412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1671#endif
1672 do q = vidxb + 1, vidxe
1673
1674# 414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1675#if defined(MFC_OpenACC)
1676# 414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1677!$acc loop seq
1678# 414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1679#elif defined(MFC_OpenMP)
1680# 414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1681
1682# 414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1683#endif
1684 do i = 1, num_fluids
1685 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
1686 end do
1687
1688 vel_l = vel_l + coeff_l(q)*q_cons_vf(momxb)%sf(j + q, k, l)
1689 f_l = f_l + coeff_l(q)*jac(j + q, k, l)
1690 end do
1691
1692
1693# 423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1694#if defined(MFC_OpenACC)
1695# 423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1696!$acc loop seq
1697# 423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1698#elif defined(MFC_OpenMP)
1699# 423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1700
1701# 423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1702#endif
1703 do q = vidxb, vidxe - 1
1704
1705# 425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1706#if defined(MFC_OpenACC)
1707# 425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1708!$acc loop seq
1709# 425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1710#elif defined(MFC_OpenMP)
1711# 425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1712
1713# 425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1714#endif
1715 do i = 1, num_fluids
1716 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
1717 end do
1718
1719 vel_r = vel_r + coeff_r(q)*q_cons_vf(momxb)%sf(j + q, k, l)
1720 f_r = f_r + coeff_r(q)*jac(j + q, k, l)
1721 end do
1722
1723
1724# 434 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1725#if defined(MFC_OpenACC)
1726# 434 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1727!$acc loop seq
1728# 434 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1729#elif defined(MFC_OpenMP)
1730# 434 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1731
1732# 434 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1733#endif
1734 do i = 1, num_fluids
1735 rho_l = rho_l + alpha_rho_l(i)
1736 rho_r = rho_r + alpha_rho_r(i)
1737 end do
1738
1739 vel_l = vel_l/rho_l
1740 vel_r = vel_r/rho_r
1741
1742# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1743
1744# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1745#if defined(MFC_OpenACC)
1746# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1747!$acc atomic update
1748# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1749#elif defined(MFC_OpenMP)
1750# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1751!$omp atomic update
1752# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1753#endif
1754 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
1755 real(0.5_wp*dt*f_l*(1._wp/dx(j + 1)), kind=stp)
1756
1757# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1758#if defined(MFC_OpenACC)
1759# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1760!$acc atomic update
1761# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1762#elif defined(MFC_OpenMP)
1763# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1764!$omp atomic update
1765# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1766#endif
1767 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
1768 real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j + 1)), kind=stp)
1769
1770# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1771#if defined(MFC_OpenACC)
1772# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1773!$acc atomic update
1774# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1775#elif defined(MFC_OpenMP)
1776# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1777!$omp atomic update
1778# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1779#endif
1780 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
1781 real(0.5_wp*dt*f_l*(1._wp/dx(j)), kind=stp)
1782
1783# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1784#if defined(MFC_OpenACC)
1785# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1786!$acc atomic update
1787# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1788#elif defined(MFC_OpenMP)
1789# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1790!$omp atomic update
1791# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1792#endif
1793 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
1794 real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j)), kind=stp)
1795# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1796
1797# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1798#if defined(MFC_OpenACC)
1799# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1800!$acc atomic update
1801# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1802#elif defined(MFC_OpenMP)
1803# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1804!$omp atomic update
1805# 444 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1806#endif
1807 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
1808 real(0.5_wp*dt*f_r*(1._wp/dx(j + 1)), kind=stp)
1809
1810# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1811#if defined(MFC_OpenACC)
1812# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1813!$acc atomic update
1814# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1815#elif defined(MFC_OpenMP)
1816# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1817!$omp atomic update
1818# 447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1819#endif
1820 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
1821 real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j + 1)), kind=stp)
1822
1823# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1824#if defined(MFC_OpenACC)
1825# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1826!$acc atomic update
1827# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1828#elif defined(MFC_OpenMP)
1829# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1830!$omp atomic update
1831# 450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1832#endif
1833 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
1834 real(0.5_wp*dt*f_r*(1._wp/dx(j)), kind=stp)
1835
1836# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1837#if defined(MFC_OpenACC)
1838# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1839!$acc atomic update
1840# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1841#elif defined(MFC_OpenMP)
1842# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1843!$omp atomic update
1844# 453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1845#endif
1846 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
1847 real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j)), kind=stp)
1848# 457 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1849 end do
1850 end do
1851 end do
1852
1853# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1854
1855# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1856#if defined(MFC_OpenACC)
1857# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1858!$acc end parallel loop
1859# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1860#elif defined(MFC_OpenMP)
1861# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1862
1863# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1864
1865# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1866!$omp end target teams loop
1867# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1868#endif
1869# 460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1870
1871
1872 end subroutine s_igr_sigma_x
1873
1874 !> @brief Evaluates the approximate Riemann solver for the IGR scheme along a given coordinate direction.
1875 subroutine s_igr_riemann_solver(q_cons_vf, rhs_vf, idir)
1876#ifdef _CRAYFTN
1877 !DIR$ OPTIMIZE (-haggress)
1878#endif
1879 type(scalar_field), &
1880 dimension(sys_size), &
1881 intent(inout) :: rhs_vf
1882 type(scalar_field), &
1883 dimension(sys_size), &
1884 intent(inout) :: q_cons_vf
1885 integer, intent(in) :: idir
1886
1887 real(wp) :: cfl
1888 real(wp) :: rho_l, gamma_l, pi_inf_l, e_l, mu_l, f_l, pres_l
1889 real(wp) :: rho_r, gamma_r, pi_inf_r, e_r, mu_r, f_r, pres_r
1890 real(wp), dimension(3) :: vflux_l_arr, vflux_r_arr
1891 real(wp), dimension(-1:1) :: rho_sf_small
1892# 483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1893 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_l, alpha_r, alpha_rho_r
1894 real(wp), dimension(3) :: vel_l, vel_r
1895 real(wp), dimension(3, 3) :: dvel
1896 real(wp), dimension(3) :: dvel_small
1897# 493 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1898
1899 if (idir == 1) then
1900 if (p == 0) then
1901# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1902
1903# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1904
1905# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1906#if defined(MFC_OpenACC)
1907# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1908!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
1909# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1910#elif defined(MFC_OpenMP)
1911# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1912
1913# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1914
1915# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1916
1917# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1918!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
1919# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1920#endif
1921# 497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1922
1923 do l = 0, p
1924 do k = 0, n
1925 do j = -1, m
1926
1927 vflux_l_arr = 0._wp
1928 vflux_r_arr = 0._wp
1929
1930# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1931
1932# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1933#if defined(MFC_OpenACC)
1934# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1935!$acc loop seq
1936# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1937#elif defined(MFC_OpenMP)
1938# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1939
1940# 512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1941#endif
1942 do q = vidxb, vidxe
1943 !x-direction contributions
1944
1945# 515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1946#if defined(MFC_OpenACC)
1947# 515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1948!$acc loop seq
1949# 515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1950#elif defined(MFC_OpenMP)
1951# 515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1952
1953# 515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1954#endif
1955 do i = -1, 1
1956 rho_l = 0._wp
1957
1958# 518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1959#if defined(MFC_OpenACC)
1960# 518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1961!$acc loop seq
1962# 518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1963#elif defined(MFC_OpenMP)
1964# 518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1965
1966# 518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1967#endif
1968 do r = 1, num_fluids
1969 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
1970 end do
1971 rho_sf_small(i) = rho_l
1972 end do
1973
1974 dvel_small(1) = (1/(2._wp*dx(j)))*( &
1975 1._wp*q_cons_vf(momxb)%sf(j + 1 + q, k, l)/rho_sf_small(1) - &
1976 1._wp*q_cons_vf(momxb)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
1977 dvel_small(2) = (1/(2._wp*dx(j)))*( &
1978 q_cons_vf(momxb + 1)%sf(j + 1 + q, k, l)/rho_sf_small(1) - &
1979 q_cons_vf(momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
1980
1981 if (q == 0) then
1982
1983# 533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1984#if defined(MFC_OpenACC)
1985# 533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1986!$acc loop seq
1987# 533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1988#elif defined(MFC_OpenMP)
1989# 533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1990
1991# 533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1992#endif
1993 do i = 1, num_dims
1994 dvel(i, 1) = dvel_small(i)
1995 end do
1996 end if
1997
1998 if (q > vidxb) then
1999 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
2000 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
2001 end if
2002 if (q < vidxe) then
2003 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
2004 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
2005 end if
2006
2007 !y-direction contributions
2008
2009# 549 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2010#if defined(MFC_OpenACC)
2011# 549 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2012!$acc loop seq
2013# 549 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2014#elif defined(MFC_OpenMP)
2015# 549 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2016
2017# 549 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2018#endif
2019 do i = -1, 1
2020 rho_l = 0._wp
2021
2022# 552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2023#if defined(MFC_OpenACC)
2024# 552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2025!$acc loop seq
2026# 552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2027#elif defined(MFC_OpenMP)
2028# 552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2029
2030# 552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2031#endif
2032 do r = 1, num_fluids
2033 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
2034 end do
2035 rho_sf_small(i) = rho_l
2036 end do
2037
2038 dvel_small(1) = (1/(2._wp*dy(k)))*( &
2039 q_cons_vf(momxb)%sf(j + q, k + 1, l)/rho_sf_small(1) - &
2040 q_cons_vf(momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
2041 dvel_small(2) = (1/(2._wp*dy(k)))*( &
2042 q_cons_vf(momxb + 1)%sf(j + q, k + 1, l)/rho_sf_small(1) - &
2043 q_cons_vf(momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
2044
2045 if (q == 0) then
2046
2047# 567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2048#if defined(MFC_OpenACC)
2049# 567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2050!$acc loop seq
2051# 567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2052#elif defined(MFC_OpenMP)
2053# 567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2054
2055# 567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2056#endif
2057 do i = 1, num_dims
2058 dvel(i, 2) = dvel_small(i)
2059 end do
2060 end if
2061
2062 if (q > vidxb) then
2063 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
2064 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
2065 end if
2066 if (q < vidxe) then
2067 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
2068 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
2069 end if
2070
2071 if (q == 0) then
2072 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1)) &
2073 + dvel(1, 1)**2._wp + dvel(2, 2)**2._wp &
2074 + (dvel(1, 1) + dvel(2, 2))**2._wp), kind=stp)
2075 end if
2076 end do
2077
2078
2079# 589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2080#if defined(MFC_OpenACC)
2081# 589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2082!$acc loop seq
2083# 589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2084#elif defined(MFC_OpenMP)
2085# 589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2086
2087# 589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2088#endif
2089 do i = 1, num_fluids
2090 alpha_rho_l(i) = 0._wp
2091 alpha_rho_r(i) = 0._wp
2092 alpha_l(i) = 0._wp
2093 alpha_r(i) = 0._wp
2094 end do
2095
2096# 596 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2097#if defined(MFC_OpenACC)
2098# 596 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2099!$acc loop seq
2100# 596 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2101#elif defined(MFC_OpenMP)
2102# 596 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2103
2104# 596 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2105#endif
2106 do i = 1, num_dims
2107 vel_l(i) = 0._wp
2108 vel_r(i) = 0._wp
2109 end do
2110
2111
2112# 602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2113#if defined(MFC_OpenACC)
2114# 602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2115!$acc loop seq
2116# 602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2117#elif defined(MFC_OpenMP)
2118# 602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2119
2120# 602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2121#endif
2122 do q = vidxb + 1, vidxe
2123
2124# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2125#if defined(MFC_OpenACC)
2126# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2127!$acc loop seq
2128# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2129#elif defined(MFC_OpenMP)
2130# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2131
2132# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2133#endif
2134 do i = 1, num_fluids
2135 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
2136 end do
2137
2138 if (num_fluids > 1) then
2139
2140# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2141#if defined(MFC_OpenACC)
2142# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2143!$acc loop seq
2144# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2145#elif defined(MFC_OpenMP)
2146# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2147
2148# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2149#endif
2150 do i = 1, num_fluids - 1
2151 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
2152 end do
2153 else
2154 alpha_l(1) = 1._wp
2155 end if
2156
2157
2158# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2159#if defined(MFC_OpenACC)
2160# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2161!$acc loop seq
2162# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2163#elif defined(MFC_OpenMP)
2164# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2165
2166# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2167#endif
2168 do i = 1, num_dims
2169 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
2170 end do
2171 end do
2172
2173
2174# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2175#if defined(MFC_OpenACC)
2176# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2177!$acc loop seq
2178# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2179#elif defined(MFC_OpenMP)
2180# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2181
2182# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2183#endif
2184 do q = vidxb, vidxe - 1
2185
2186# 626 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2187#if defined(MFC_OpenACC)
2188# 626 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2189!$acc loop seq
2190# 626 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2191#elif defined(MFC_OpenMP)
2192# 626 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2193
2194# 626 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2195#endif
2196 do i = 1, num_fluids
2197 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
2198 end do
2199
2200 if (num_fluids > 1) then
2201
2202# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2203#if defined(MFC_OpenACC)
2204# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2205!$acc loop seq
2206# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2207#elif defined(MFC_OpenMP)
2208# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2209
2210# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2211#endif
2212 do i = 1, num_fluids - 1
2213 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
2214 end do
2215 else
2216 alpha_r(1) = 1._wp
2217 end if
2218
2219
2220# 640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2221#if defined(MFC_OpenACC)
2222# 640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2223!$acc loop seq
2224# 640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2225#elif defined(MFC_OpenMP)
2226# 640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2227
2228# 640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2229#endif
2230 do i = 1, num_dims
2231 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
2232 end do
2233 end do
2234
2235 if (num_fluids > 1) then
2236
2237 alpha_l(num_fluids) = 1._wp
2238 alpha_r(num_fluids) = 1._wp
2239
2240
2241# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2242#if defined(MFC_OpenACC)
2243# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2244!$acc loop seq
2245# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2246#elif defined(MFC_OpenMP)
2247# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2248
2249# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2250#endif
2251 do i = 1, num_fluids - 1
2252 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
2253 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
2254 end do
2255 end if
2256
2257 rho_l = 0._wp; rho_r = 0._wp
2258 gamma_l = 0._wp; gamma_r = 0._wp
2259 pi_inf_l = 0._wp; pi_inf_r = 0._wp
2260
2261
2262# 662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2263#if defined(MFC_OpenACC)
2264# 662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2265!$acc loop seq
2266# 662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2267#elif defined(MFC_OpenMP)
2268# 662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2269
2270# 662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2271#endif
2272 do i = 1, num_fluids
2273 rho_l = rho_l + alpha_rho_l(i)
2274 gamma_l = gamma_l + alpha_l(i)*gammas(i)
2275 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
2276
2277 rho_r = rho_r + alpha_rho_r(i)
2278 gamma_r = gamma_r + alpha_r(i)*gammas(i)
2279 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
2280 end do
2281
2282
2283# 673 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2284#if defined(MFC_OpenACC)
2285# 673 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2286!$acc loop seq
2287# 673 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2288#elif defined(MFC_OpenMP)
2289# 673 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2290
2291# 673 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2292#endif
2293 do i = 1, num_dims
2294 vel_l(i) = vel_l(i)/rho_l
2295 vel_r(i) = vel_r(i)/rho_r
2296 end do
2297
2298 if (viscous) then
2299 mu_l = 0._wp; mu_r = 0._wp
2300
2301# 681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2302#if defined(MFC_OpenACC)
2303# 681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2304!$acc loop seq
2305# 681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2306#elif defined(MFC_OpenMP)
2307# 681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2308
2309# 681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2310#endif
2311 do i = 1, num_fluids
2312 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
2313 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
2314 end do
2315
2316
2317# 687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2318#if defined(MFC_OpenACC)
2319# 687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2320!$acc atomic update
2321# 687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2322#elif defined(MFC_OpenMP)
2323# 687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2324!$omp atomic update
2325# 687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2326#endif
2327 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) - &
2328 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2329
2330# 690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2331#if defined(MFC_OpenACC)
2332# 690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2333!$acc atomic update
2334# 690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2335#elif defined(MFC_OpenMP)
2336# 690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2337!$omp atomic update
2338# 690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2339#endif
2340 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
2341 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
2342
2343
2344# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2345#if defined(MFC_OpenACC)
2346# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2347!$acc atomic update
2348# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2349#elif defined(MFC_OpenMP)
2350# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2351!$omp atomic update
2352# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2353#endif
2354 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
2355 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
2356
2357# 697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2358#if defined(MFC_OpenACC)
2359# 697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2360!$acc atomic update
2361# 697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2362#elif defined(MFC_OpenMP)
2363# 697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2364!$omp atomic update
2365# 697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2366#endif
2367 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
2368 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
2369
2370
2371# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2372#if defined(MFC_OpenACC)
2373# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2374!$acc atomic update
2375# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2376#elif defined(MFC_OpenMP)
2377# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2378!$omp atomic update
2379# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2380#endif
2381 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) - &
2382 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2383
2384# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2385#if defined(MFC_OpenACC)
2386# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2387!$acc atomic update
2388# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2389#elif defined(MFC_OpenMP)
2390# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2391!$omp atomic update
2392# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2393#endif
2394 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
2395 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
2396
2397
2398# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2399#if defined(MFC_OpenACC)
2400# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2401!$acc atomic update
2402# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2403#elif defined(MFC_OpenMP)
2404# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2405!$omp atomic update
2406# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2407#endif
2408 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
2409 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
2410
2411# 711 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2412#if defined(MFC_OpenACC)
2413# 711 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2414!$acc atomic update
2415# 711 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2416#elif defined(MFC_OpenMP)
2417# 711 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2418!$omp atomic update
2419# 711 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2420#endif
2421 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
2422 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
2423
2424
2425# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2426#if defined(MFC_OpenACC)
2427# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2428!$acc atomic update
2429# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2430#elif defined(MFC_OpenMP)
2431# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2432!$omp atomic update
2433# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2434#endif
2435 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) - &
2436 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2437
2438# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2439#if defined(MFC_OpenACC)
2440# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2441!$acc atomic update
2442# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2443#elif defined(MFC_OpenMP)
2444# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2445!$omp atomic update
2446# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2447#endif
2448 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
2449 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
2450
2451
2452# 722 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2453#if defined(MFC_OpenACC)
2454# 722 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2455!$acc atomic update
2456# 722 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2457#elif defined(MFC_OpenMP)
2458# 722 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2459!$omp atomic update
2460# 722 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2461#endif
2462 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
2463 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
2464
2465# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2466#if defined(MFC_OpenACC)
2467# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2468!$acc atomic update
2469# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2470#elif defined(MFC_OpenMP)
2471# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2472!$omp atomic update
2473# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2474#endif
2475 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
2476 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
2477
2478
2479# 729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2480#if defined(MFC_OpenACC)
2481# 729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2482!$acc atomic update
2483# 729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2484#elif defined(MFC_OpenMP)
2485# 729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2486!$omp atomic update
2487# 729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2488#endif
2489 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) - &
2490 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2491
2492# 732 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2493#if defined(MFC_OpenACC)
2494# 732 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2495!$acc atomic update
2496# 732 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2497#elif defined(MFC_OpenMP)
2498# 732 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2499!$omp atomic update
2500# 732 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2501#endif
2502 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
2503 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
2504
2505
2506# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2507#if defined(MFC_OpenACC)
2508# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2509!$acc atomic update
2510# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2511#elif defined(MFC_OpenMP)
2512# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2513!$omp atomic update
2514# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2515#endif
2516 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
2517 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
2518
2519# 739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2520#if defined(MFC_OpenACC)
2521# 739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2522!$acc atomic update
2523# 739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2524#elif defined(MFC_OpenMP)
2525# 739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2526!$omp atomic update
2527# 739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2528#endif
2529 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
2530 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
2531 end if
2532
2533 e_l = 0._wp; e_r = 0._wp
2534
2535
2536# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2537#if defined(MFC_OpenACC)
2538# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2539!$acc loop seq
2540# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2541#elif defined(MFC_OpenMP)
2542# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2543
2544# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2545#endif
2546 do q = vidxb + 1, vidxe
2547 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
2548 end do
2549
2550
2551# 751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2552#if defined(MFC_OpenACC)
2553# 751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2554!$acc loop seq
2555# 751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2556#elif defined(MFC_OpenMP)
2557# 751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2558
2559# 751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2560#endif
2561 do q = vidxb, vidxe - 1
2562 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
2563 end do
2564
2565 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, &
2566 e_r, gamma_r, pi_inf_r, rho_r, vel_r, &
2567 pres_l, pres_r, cfl)
2568
2569 do i = 1, num_fluids
2570
2571# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2572#if defined(MFC_OpenACC)
2573# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2574!$acc atomic update
2575# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2576#elif defined(MFC_OpenMP)
2577# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2578!$omp atomic update
2579# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2580#endif
2581 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, l) + &
2582 real((0.5_wp*dt*(alpha_rho_l(i)* &
2583 vel_l(1))*(1._wp/dx(j + 1)) - &
2584 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
2585
2586
2587# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2588#if defined(MFC_OpenACC)
2589# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2590!$acc atomic update
2591# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2592#elif defined(MFC_OpenMP)
2593# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2594!$omp atomic update
2595# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2596#endif
2597 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
2598 real((0.5_wp*dt*(alpha_rho_l(i)* &
2599 vel_l(1))*(1._wp/dx(j)) - &
2600 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
2601 end do
2602
2603 if (num_fluids > 1) then
2604
2605# 775 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2606#if defined(MFC_OpenACC)
2607# 775 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2608!$acc loop seq
2609# 775 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2610#elif defined(MFC_OpenMP)
2611# 775 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2612
2613# 775 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2614#endif
2615 do i = 1, num_fluids - 1
2616
2617# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2618#if defined(MFC_OpenACC)
2619# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2620!$acc atomic update
2621# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2622#elif defined(MFC_OpenMP)
2623# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2624!$omp atomic update
2625# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2626#endif
2627 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) + &
2628 real((0.5_wp*dt*(alpha_l(i)* &
2629 vel_l(1))*(1._wp/dx(j + 1)) - &
2630 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
2631
2632
2633# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2634#if defined(MFC_OpenACC)
2635# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2636!$acc atomic update
2637# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2638#elif defined(MFC_OpenMP)
2639# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2640!$omp atomic update
2641# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2642#endif
2643 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) &
2644 - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, l)*vel_l(1)*(1._wp/dx(j + 1))), kind=stp)
2645
2646
2647# 787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2648#if defined(MFC_OpenACC)
2649# 787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2650!$acc atomic update
2651# 787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2652#elif defined(MFC_OpenMP)
2653# 787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2654!$omp atomic update
2655# 787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2656#endif
2657 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
2658 real((0.5_wp*dt*(alpha_l(i)* &
2659 vel_l(1))*(1._wp/dx(j)) - &
2660 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j))), kind=stp)
2661
2662
2663# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2664#if defined(MFC_OpenACC)
2665# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2666!$acc atomic update
2667# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2668#elif defined(MFC_OpenMP)
2669# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2670!$omp atomic update
2671# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2672#endif
2673 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
2674 + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(1)*(1._wp/dx(j))), kind=stp)
2675 end do
2676 end if
2677
2678
2679# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2680#if defined(MFC_OpenACC)
2681# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2682!$acc atomic update
2683# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2684#elif defined(MFC_OpenMP)
2685# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2686!$omp atomic update
2687# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2688#endif
2689 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
2690 real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + &
2691 pres_l)*(1._wp/dx(j + 1)) - &
2692 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
2693
2694
2695# 805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2696#if defined(MFC_OpenACC)
2697# 805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2698!$acc atomic update
2699# 805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2700#elif defined(MFC_OpenMP)
2701# 805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2702!$omp atomic update
2703# 805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2704#endif
2705 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) + &
2706 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) - &
2707 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
2708
2709
2710# 810 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2711#if defined(MFC_OpenACC)
2712# 810 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2713!$acc atomic update
2714# 810 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2715#elif defined(MFC_OpenMP)
2716# 810 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2717!$omp atomic update
2718# 810 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2719#endif
2720 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
2721 real((0.5_wp*dt*(vel_l(1)*(e_l + &
2722 pres_l))*(1._wp/dx(j + 1)) - &
2723 0.5_wp*dt*cfl*(e_l)*(1._wp/dx(j + 1))), kind=stp)
2724
2725
2726# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2727#if defined(MFC_OpenACC)
2728# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2729!$acc atomic update
2730# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2731#elif defined(MFC_OpenMP)
2732# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2733!$omp atomic update
2734# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2735#endif
2736 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
2737 real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + &
2738 pres_l)*(1._wp/dx(j)) - &
2739 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
2740
2741
2742# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2743#if defined(MFC_OpenACC)
2744# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2745!$acc atomic update
2746# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2747#elif defined(MFC_OpenMP)
2748# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2749!$omp atomic update
2750# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2751#endif
2752 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
2753 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) - &
2754 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
2755
2756
2757# 827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2758#if defined(MFC_OpenACC)
2759# 827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2760!$acc atomic update
2761# 827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2762#elif defined(MFC_OpenMP)
2763# 827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2764!$omp atomic update
2765# 827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2766#endif
2767 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
2768 real((0.5_wp*dt*(vel_l(1)*(e_l + &
2769 pres_l))*(1._wp/dx(j)) - &
2770 0.5_wp*dt*cfl*(e_l)*(1._wp/dx(j))), kind=stp)
2771
2772
2773# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2774#if defined(MFC_OpenACC)
2775# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2776!$acc loop seq
2777# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2778#elif defined(MFC_OpenMP)
2779# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2780
2781# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2782#endif
2783 do i = 1, num_fluids
2784
2785# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2786#if defined(MFC_OpenACC)
2787# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2788!$acc atomic update
2789# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2790#elif defined(MFC_OpenMP)
2791# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2792!$omp atomic update
2793# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2794#endif
2795 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, l) + &
2796 real((0.5_wp*dt*(alpha_rho_r(i)* &
2797 vel_r(1))*(1._wp/dx(j + 1)) + &
2798 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
2799
2800
2801# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2802#if defined(MFC_OpenACC)
2803# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2804!$acc atomic update
2805# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2806#elif defined(MFC_OpenMP)
2807# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2808!$omp atomic update
2809# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2810#endif
2811 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
2812 real((0.5_wp*dt*(alpha_rho_r(i)* &
2813 vel_r(1))*(1._wp/dx(j)) + &
2814 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
2815 end do
2816
2817 if (num_fluids > 1) then
2818
2819# 849 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2820#if defined(MFC_OpenACC)
2821# 849 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2822!$acc loop seq
2823# 849 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2824#elif defined(MFC_OpenMP)
2825# 849 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2826
2827# 849 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2828#endif
2829 do i = 1, num_fluids - 1
2830
2831# 851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2832#if defined(MFC_OpenACC)
2833# 851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2834!$acc atomic update
2835# 851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2836#elif defined(MFC_OpenMP)
2837# 851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2838!$omp atomic update
2839# 851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2840#endif
2841 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) + &
2842 real((0.5_wp*dt*(alpha_r(i)* &
2843 vel_r(1))*(1._wp/dx(j + 1)) + &
2844 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
2845
2846
2847# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2848#if defined(MFC_OpenACC)
2849# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2850!$acc atomic update
2851# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2852#elif defined(MFC_OpenMP)
2853# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2854!$omp atomic update
2855# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2856#endif
2857 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) &
2858 - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
2859
2860
2861# 861 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2862#if defined(MFC_OpenACC)
2863# 861 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2864!$acc atomic update
2865# 861 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2866#elif defined(MFC_OpenMP)
2867# 861 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2868!$omp atomic update
2869# 861 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2870#endif
2871 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
2872 real((0.5_wp*dt*(alpha_r(i)* &
2873 vel_r(1))*(1._wp/dx(j)) + &
2874 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
2875
2876
2877# 867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2878#if defined(MFC_OpenACC)
2879# 867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2880!$acc atomic update
2881# 867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2882#elif defined(MFC_OpenMP)
2883# 867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2884!$omp atomic update
2885# 867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2886#endif
2887 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
2888 + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
2889 end do
2890 end if
2891
2892
2893# 873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2894#if defined(MFC_OpenACC)
2895# 873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2896!$acc atomic update
2897# 873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2898#elif defined(MFC_OpenMP)
2899# 873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2900!$omp atomic update
2901# 873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2902#endif
2903 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
2904 real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + &
2905 pres_r)*(1._wp/dx(j + 1)) + &
2906 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
2907
2908
2909# 879 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2910#if defined(MFC_OpenACC)
2911# 879 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2912!$acc atomic update
2913# 879 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2914#elif defined(MFC_OpenMP)
2915# 879 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2916!$omp atomic update
2917# 879 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2918#endif
2919 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) + &
2920 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) + &
2921 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
2922
2923
2924# 884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2925#if defined(MFC_OpenACC)
2926# 884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2927!$acc atomic update
2928# 884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2929#elif defined(MFC_OpenMP)
2930# 884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2931!$omp atomic update
2932# 884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2933#endif
2934 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
2935 real((0.5_wp*dt*(vel_r(1)*(e_r + &
2936 pres_r))*(1._wp/dx(j + 1)) + &
2937 0.5_wp*dt*cfl*(e_r)*(1._wp/dx(j + 1))), kind=stp)
2938
2939
2940# 890 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2941#if defined(MFC_OpenACC)
2942# 890 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2943!$acc atomic update
2944# 890 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2945#elif defined(MFC_OpenMP)
2946# 890 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2947!$omp atomic update
2948# 890 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2949#endif
2950 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
2951 real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + &
2952 pres_r)*(1._wp/dx(j)) + &
2953 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
2954
2955
2956# 896 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2957#if defined(MFC_OpenACC)
2958# 896 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2959!$acc atomic update
2960# 896 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2961#elif defined(MFC_OpenMP)
2962# 896 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2963!$omp atomic update
2964# 896 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2965#endif
2966 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
2967 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) + &
2968 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
2969
2970
2971# 901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2972#if defined(MFC_OpenACC)
2973# 901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2974!$acc atomic update
2975# 901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2976#elif defined(MFC_OpenMP)
2977# 901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2978!$omp atomic update
2979# 901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2980#endif
2981 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
2982 real((0.5_wp*dt*(vel_r(1)*(e_r + &
2983 pres_r))*(1._wp/dx(j)) + &
2984 0.5_wp*dt*cfl*(e_r)*(1._wp/dx(j))), kind=stp)
2985
2986 end do
2987 end do
2988 end do
2989
2990# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2991
2992# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2993#if defined(MFC_OpenACC)
2994# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2995!$acc end parallel loop
2996# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2997#elif defined(MFC_OpenMP)
2998# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2999
3000# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3001
3002# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3003!$omp end target teams loop
3004# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3005#endif
3006# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3007
3008# 912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3009 else
3010# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3011
3012# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3013
3014# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3015#if defined(MFC_OpenACC)
3016# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3017!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
3018# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3019#elif defined(MFC_OpenMP)
3020# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3021
3022# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3023
3024# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3025
3026# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3027!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
3028# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3029#endif
3030# 914 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3031
3032 do l = 0, p
3033 do k = 0, n
3034 do j = -1, m
3035
3036 vflux_l_arr = 0._wp
3037 vflux_r_arr = 0._wp
3038
3039# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3040
3041# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3042#if defined(MFC_OpenACC)
3043# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3044!$acc loop seq
3045# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3046#elif defined(MFC_OpenMP)
3047# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3048
3049# 929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3050#endif
3051 do q = vidxb, vidxe
3052
3053 !x-direction contributions
3054
3055# 933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3056#if defined(MFC_OpenACC)
3057# 933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3058!$acc loop seq
3059# 933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3060#elif defined(MFC_OpenMP)
3061# 933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3062
3063# 933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3064#endif
3065 do i = -1, 1
3066 rho_l = 0._wp
3067
3068# 936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3069#if defined(MFC_OpenACC)
3070# 936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3071!$acc loop seq
3072# 936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3073#elif defined(MFC_OpenMP)
3074# 936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3075
3076# 936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3077#endif
3078 do r = 1, num_fluids
3079 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
3080 end do
3081 rho_sf_small(i) = rho_l
3082 end do
3083
3084 dvel_small(1) = (1/(2._wp*dx(j)))*( &
3085 q_cons_vf(momxb)%sf(j + 1 + q, k, l)/rho_sf_small(1) - &
3086 q_cons_vf(momxb)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3087 dvel_small(2) = (1/(2._wp*dx(j)))*( &
3088 q_cons_vf(momxb + 1)%sf(j + 1 + q, k, l)/rho_sf_small(1) - &
3089 q_cons_vf(momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3090 dvel_small(3) = (1/(2._wp*dx(j)))*( &
3091 q_cons_vf(momxb + 2)%sf(j + 1 + q, k, l)/rho_sf_small(1) - &
3092 q_cons_vf(momxb + 2)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3093
3094 if (q == 0) then
3095
3096# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3097#if defined(MFC_OpenACC)
3098# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3099!$acc loop seq
3100# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3101#elif defined(MFC_OpenMP)
3102# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3103
3104# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3105#endif
3106 do i = 1, num_dims
3107 dvel(i, 1) = dvel_small(i)
3108 end do
3109 end if
3110
3111 if (q > vidxb) then
3112 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
3113 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
3114 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
3115 end if
3116 if (q < vidxe) then
3117 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
3118 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
3119 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
3120 end if
3121
3122 !y-direction contributions
3123
3124# 972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3125#if defined(MFC_OpenACC)
3126# 972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3127!$acc loop seq
3128# 972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3129#elif defined(MFC_OpenMP)
3130# 972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3131
3132# 972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3133#endif
3134 do i = -1, 1
3135 rho_l = 0._wp
3136
3137# 975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3138#if defined(MFC_OpenACC)
3139# 975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3140!$acc loop seq
3141# 975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3142#elif defined(MFC_OpenMP)
3143# 975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3144
3145# 975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3146#endif
3147 do r = 1, num_fluids
3148 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
3149 end do
3150 rho_sf_small(i) = rho_l
3151 end do
3152
3153 dvel_small(1) = (1/(2._wp*dy(k)))*( &
3154 q_cons_vf(momxb)%sf(j + q, k + 1, l)/rho_sf_small(1) - &
3155 q_cons_vf(momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3156 dvel_small(2) = (1/(2._wp*dy(k)))*( &
3157 q_cons_vf(momxb + 1)%sf(j + q, k + 1, l)/rho_sf_small(1) - &
3158 q_cons_vf(momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3159 if (q == 0) dvel_small(3) = (1/(2._wp*dy(k)))*( &
3160 q_cons_vf(momxb + 2)%sf(j + q, k + 1, l)/rho_sf_small(1) - &
3161 q_cons_vf(momxb + 2)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3162 if (q == 0) then
3163
3164# 992 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3165#if defined(MFC_OpenACC)
3166# 992 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3167!$acc loop seq
3168# 992 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3169#elif defined(MFC_OpenMP)
3170# 992 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3171
3172# 992 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3173#endif
3174 do i = 1, num_dims
3175 dvel(i, 2) = dvel_small(i)
3176 end do
3177 end if
3178
3179 if (q > vidxb) then
3180 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
3181 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
3182 end if
3183 if (q < vidxe) then
3184 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
3185 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
3186 end if
3187
3188 !z-direction contributions
3189
3190# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3191#if defined(MFC_OpenACC)
3192# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3193!$acc loop seq
3194# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3195#elif defined(MFC_OpenMP)
3196# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3197
3198# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3199#endif
3200 do i = -1, 1
3201 rho_l = 0._wp
3202
3203# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3204#if defined(MFC_OpenACC)
3205# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3206!$acc loop seq
3207# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3208#elif defined(MFC_OpenMP)
3209# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3210
3211# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3212#endif
3213 do r = 1, num_fluids
3214 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k, l + i)
3215 end do
3216 rho_sf_small(i) = rho_l
3217 end do
3218
3219 dvel_small(1) = (1/(2._wp*dz(l)))*( &
3220 q_cons_vf(momxb)%sf(j + q, k, l + 1)/rho_sf_small(1) - &
3221 q_cons_vf(momxb)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3222 if (q == 0) dvel_small(2) = (1/(2._wp*dz(l)))*( &
3223 q_cons_vf(momxb + 1)%sf(j + q, k, l + 1)/rho_sf_small(1) - &
3224 q_cons_vf(momxb + 1)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3225 dvel_small(3) = (1/(2._wp*dz(l)))*( &
3226 q_cons_vf(momxb + 2)%sf(j + q, k, l + 1)/rho_sf_small(1) - &
3227 q_cons_vf(momxb + 2)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3228 if (q == 0) then
3229
3230# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3231#if defined(MFC_OpenACC)
3232# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3233!$acc loop seq
3234# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3235#elif defined(MFC_OpenMP)
3236# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3237
3238# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3239#endif
3240 do i = 1, num_dims
3241 dvel(i, 3) = dvel_small(i)
3242 end do
3243 end if
3244
3245 if (q > vidxb) then
3246 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(1))
3247 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
3248 end if
3249 if (q < vidxe) then
3250 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(1))
3251 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
3252 end if
3253
3254 if (q == 0) then
3255 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1) &
3256 + dvel(1, 3)*dvel(3, 1) &
3257 + dvel(2, 3)*dvel(3, 2)) &
3258 + dvel(1, 1)**2._wp + dvel(2, 2)**2._wp &
3259 + dvel(3, 3)**2._wp &
3260 + (dvel(1, 1) + dvel(2, 2) + dvel(3, 3))**2._wp), kind=stp)
3261 end if
3262 end do
3263
3264
3265# 1053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3266#if defined(MFC_OpenACC)
3267# 1053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3268!$acc loop seq
3269# 1053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3270#elif defined(MFC_OpenMP)
3271# 1053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3272
3273# 1053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3274#endif
3275 do i = 1, num_fluids
3276 alpha_rho_l(i) = 0._wp
3277 alpha_rho_r(i) = 0._wp
3278 alpha_l(i) = 0._wp
3279 alpha_r(i) = 0._wp
3280 end do
3281
3282# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3283#if defined(MFC_OpenACC)
3284# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3285!$acc loop seq
3286# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3287#elif defined(MFC_OpenMP)
3288# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3289
3290# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3291#endif
3292 do i = 1, num_dims
3293 vel_l(i) = 0._wp
3294 vel_r(i) = 0._wp
3295 end do
3296
3297
3298# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3299#if defined(MFC_OpenACC)
3300# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3301!$acc loop seq
3302# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3303#elif defined(MFC_OpenMP)
3304# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3305
3306# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3307#endif
3308 do q = vidxb + 1, vidxe
3309
3310# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3311#if defined(MFC_OpenACC)
3312# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3313!$acc loop seq
3314# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3315#elif defined(MFC_OpenMP)
3316# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3317
3318# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3319#endif
3320 do i = 1, num_fluids
3321 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
3322 end do
3323
3324 if (num_fluids > 1) then
3325
3326# 1074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3327#if defined(MFC_OpenACC)
3328# 1074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3329!$acc loop seq
3330# 1074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3331#elif defined(MFC_OpenMP)
3332# 1074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3333
3334# 1074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3335#endif
3336 do i = 1, num_fluids - 1
3337 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
3338 end do
3339 else
3340 alpha_l(1) = 1._wp
3341 end if
3342
3343
3344# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3345#if defined(MFC_OpenACC)
3346# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3347!$acc loop seq
3348# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3349#elif defined(MFC_OpenMP)
3350# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3351
3352# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3353#endif
3354 do i = 1, num_dims
3355 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
3356 end do
3357 end do
3358
3359
3360# 1088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3361#if defined(MFC_OpenACC)
3362# 1088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3363!$acc loop seq
3364# 1088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3365#elif defined(MFC_OpenMP)
3366# 1088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3367
3368# 1088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3369#endif
3370 do q = vidxb, vidxe - 1
3371
3372# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3373#if defined(MFC_OpenACC)
3374# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3375!$acc loop seq
3376# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3377#elif defined(MFC_OpenMP)
3378# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3379
3380# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3381#endif
3382 do i = 1, num_fluids
3383 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
3384 end do
3385
3386 if (num_fluids > 1) then
3387
3388# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3389#if defined(MFC_OpenACC)
3390# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3391!$acc loop seq
3392# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3393#elif defined(MFC_OpenMP)
3394# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3395
3396# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3397#endif
3398 do i = 1, num_fluids - 1
3399 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
3400 end do
3401 else
3402 alpha_r(1) = 1._wp
3403 end if
3404
3405
3406# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3407#if defined(MFC_OpenACC)
3408# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3409!$acc loop seq
3410# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3411#elif defined(MFC_OpenMP)
3412# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3413
3414# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3415#endif
3416 do i = 1, num_dims
3417 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
3418 end do
3419 end do
3420
3421 if (num_fluids > 1) then
3422
3423 alpha_l(num_fluids) = 1._wp
3424 alpha_r(num_fluids) = 1._wp
3425
3426
3427# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3428#if defined(MFC_OpenACC)
3429# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3430!$acc loop seq
3431# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3432#elif defined(MFC_OpenMP)
3433# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3434
3435# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3436#endif
3437 do i = 1, num_fluids - 1
3438 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
3439 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
3440 end do
3441 end if
3442
3443 rho_l = 0._wp; rho_r = 0._wp
3444 gamma_l = 0._wp; gamma_r = 0._wp
3445 pi_inf_l = 0._wp; pi_inf_r = 0._wp
3446
3447
3448# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3449#if defined(MFC_OpenACC)
3450# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3451!$acc loop seq
3452# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3453#elif defined(MFC_OpenMP)
3454# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3455
3456# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3457#endif
3458 do i = 1, num_fluids
3459 rho_l = rho_l + alpha_rho_l(i)
3460 gamma_l = gamma_l + alpha_l(i)*gammas(i)
3461 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
3462
3463 rho_r = rho_r + alpha_rho_r(i)
3464 gamma_r = gamma_r + alpha_r(i)*gammas(i)
3465 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
3466 end do
3467
3468
3469# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3470#if defined(MFC_OpenACC)
3471# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3472!$acc loop seq
3473# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3474#elif defined(MFC_OpenMP)
3475# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3476
3477# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3478#endif
3479 do i = 1, num_dims
3480 vel_l(i) = vel_l(i)/rho_l
3481 vel_r(i) = vel_r(i)/rho_r
3482 end do
3483
3484 if (viscous) then
3485 mu_l = 0._wp
3486 mu_r = 0._wp
3487
3488# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3489#if defined(MFC_OpenACC)
3490# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3491!$acc loop seq
3492# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3493#elif defined(MFC_OpenMP)
3494# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3495
3496# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3497#endif
3498 do i = 1, num_fluids
3499 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
3500 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
3501 end do
3502
3503
3504# 1152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3505#if defined(MFC_OpenACC)
3506# 1152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3507!$acc atomic update
3508# 1152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3509#elif defined(MFC_OpenMP)
3510# 1152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3511!$omp atomic update
3512# 1152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3513#endif
3514 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) - &
3515 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3516
3517# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3518#if defined(MFC_OpenACC)
3519# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3520!$acc atomic update
3521# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3522#elif defined(MFC_OpenMP)
3523# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3524!$omp atomic update
3525# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3526#endif
3527 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3528 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
3529
3530
3531# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3532#if defined(MFC_OpenACC)
3533# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3534!$acc atomic update
3535# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3536#elif defined(MFC_OpenMP)
3537# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3538!$omp atomic update
3539# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3540#endif
3541 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
3542 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
3543
3544# 1162 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3545#if defined(MFC_OpenACC)
3546# 1162 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3547!$acc atomic update
3548# 1162 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3549#elif defined(MFC_OpenMP)
3550# 1162 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3551!$omp atomic update
3552# 1162 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3553#endif
3554 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3555 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
3556
3557
3558# 1166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3559#if defined(MFC_OpenACC)
3560# 1166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3561!$acc atomic update
3562# 1166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3563#elif defined(MFC_OpenMP)
3564# 1166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3565!$omp atomic update
3566# 1166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3567#endif
3568 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) - &
3569 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3570
3571# 1169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3572#if defined(MFC_OpenACC)
3573# 1169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3574!$acc atomic update
3575# 1169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3576#elif defined(MFC_OpenMP)
3577# 1169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3578!$omp atomic update
3579# 1169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3580#endif
3581 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3582 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
3583
3584
3585# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3586#if defined(MFC_OpenACC)
3587# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3588!$acc atomic update
3589# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3590#elif defined(MFC_OpenMP)
3591# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3592!$omp atomic update
3593# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3594#endif
3595 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
3596 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
3597
3598# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3599#if defined(MFC_OpenACC)
3600# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3601!$acc atomic update
3602# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3603#elif defined(MFC_OpenMP)
3604# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3605!$omp atomic update
3606# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3607#endif
3608 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3609 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
3610
3611
3612# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3613#if defined(MFC_OpenACC)
3614# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3615!$acc atomic update
3616# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3617#elif defined(MFC_OpenMP)
3618# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3619!$omp atomic update
3620# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3621#endif
3622 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, l) - &
3623 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3624
3625# 1183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3626#if defined(MFC_OpenACC)
3627# 1183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3628!$acc atomic update
3629# 1183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3630#elif defined(MFC_OpenMP)
3631# 1183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3632!$omp atomic update
3633# 1183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3634#endif
3635 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3636 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j + 1)), kind=stp)
3637
3638
3639# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3640#if defined(MFC_OpenACC)
3641# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3642!$acc atomic update
3643# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3644#elif defined(MFC_OpenMP)
3645# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3646!$omp atomic update
3647# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3648#endif
3649 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
3650 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j)), kind=stp)
3651
3652# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3653#if defined(MFC_OpenACC)
3654# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3655!$acc atomic update
3656# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3657#elif defined(MFC_OpenMP)
3658# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3659!$omp atomic update
3660# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3661#endif
3662 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3663 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j)), kind=stp)
3664
3665
3666# 1194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3667#if defined(MFC_OpenACC)
3668# 1194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3669!$acc atomic update
3670# 1194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3671#elif defined(MFC_OpenMP)
3672# 1194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3673!$omp atomic update
3674# 1194 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3675#endif
3676 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, l) - &
3677 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3678
3679# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3680#if defined(MFC_OpenACC)
3681# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3682!$acc atomic update
3683# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3684#elif defined(MFC_OpenMP)
3685# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3686!$omp atomic update
3687# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3688#endif
3689 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3690 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j + 1)), kind=stp)
3691
3692
3693# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3694#if defined(MFC_OpenACC)
3695# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3696!$acc atomic update
3697# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3698#elif defined(MFC_OpenMP)
3699# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3700!$omp atomic update
3701# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3702#endif
3703 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
3704 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j)), kind=stp)
3705
3706# 1204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3707#if defined(MFC_OpenACC)
3708# 1204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3709!$acc atomic update
3710# 1204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3711#elif defined(MFC_OpenMP)
3712# 1204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3713!$omp atomic update
3714# 1204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3715#endif
3716 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3717 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j)), kind=stp)
3718
3719
3720# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3721#if defined(MFC_OpenACC)
3722# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3723!$acc atomic update
3724# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3725#elif defined(MFC_OpenMP)
3726# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3727!$omp atomic update
3728# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3729#endif
3730 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) - &
3731 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3732
3733# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3734#if defined(MFC_OpenACC)
3735# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3736!$acc atomic update
3737# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3738#elif defined(MFC_OpenMP)
3739# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3740!$omp atomic update
3741# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3742#endif
3743 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3744 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3745
3746
3747# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3748#if defined(MFC_OpenACC)
3749# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3750!$acc atomic update
3751# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3752#elif defined(MFC_OpenMP)
3753# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3754!$omp atomic update
3755# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3756#endif
3757 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
3758 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
3759
3760# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3761#if defined(MFC_OpenACC)
3762# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3763!$acc atomic update
3764# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3765#elif defined(MFC_OpenMP)
3766# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3767!$omp atomic update
3768# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3769#endif
3770 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3771 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
3772
3773
3774# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3775#if defined(MFC_OpenACC)
3776# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3777!$acc atomic update
3778# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3779#elif defined(MFC_OpenMP)
3780# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3781!$omp atomic update
3782# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3783#endif
3784 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) - &
3785 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3786
3787# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3788#if defined(MFC_OpenACC)
3789# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3790!$acc atomic update
3791# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3792#elif defined(MFC_OpenMP)
3793# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3794!$omp atomic update
3795# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3796#endif
3797 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) - &
3798 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
3799
3800
3801# 1229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3802#if defined(MFC_OpenACC)
3803# 1229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3804!$acc atomic update
3805# 1229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3806#elif defined(MFC_OpenMP)
3807# 1229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3808!$omp atomic update
3809# 1229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3810#endif
3811 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
3812 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
3813
3814# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3815#if defined(MFC_OpenACC)
3816# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3817!$acc atomic update
3818# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3819#elif defined(MFC_OpenMP)
3820# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3821!$omp atomic update
3822# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3823#endif
3824 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
3825 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
3826 end if
3827
3828 e_l = 0._wp; e_r = 0._wp
3829
3830
3831# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3832#if defined(MFC_OpenACC)
3833# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3834!$acc loop seq
3835# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3836#elif defined(MFC_OpenMP)
3837# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3838
3839# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3840#endif
3841 do q = vidxb + 1, vidxe
3842 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
3843 end do
3844
3845
3846# 1244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3847#if defined(MFC_OpenACC)
3848# 1244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3849!$acc loop seq
3850# 1244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3851#elif defined(MFC_OpenMP)
3852# 1244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3853
3854# 1244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3855#endif
3856 do q = vidxb, vidxe - 1
3857 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
3858 end do
3859
3860 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, &
3861 e_r, gamma_r, pi_inf_r, rho_r, vel_r, &
3862 pres_l, pres_r, cfl)
3863
3864
3865# 1253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3866#if defined(MFC_OpenACC)
3867# 1253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3868!$acc loop seq
3869# 1253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3870#elif defined(MFC_OpenMP)
3871# 1253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3872
3873# 1253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3874#endif
3875 do i = 1, num_fluids
3876
3877# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3878#if defined(MFC_OpenACC)
3879# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3880!$acc atomic update
3881# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3882#elif defined(MFC_OpenMP)
3883# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3884!$omp atomic update
3885# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3886#endif
3887 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, l) + &
3888 real((0.5_wp*dt*(alpha_rho_l(i)* &
3889 vel_l(1))*(1._wp/dx(j + 1)) - &
3890 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
3891
3892
3893# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3894#if defined(MFC_OpenACC)
3895# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3896!$acc atomic update
3897# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3898#elif defined(MFC_OpenMP)
3899# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3900!$omp atomic update
3901# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3902#endif
3903 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
3904 real((0.5_wp*dt*(alpha_rho_l(i)* &
3905 vel_l(1))*(1._wp/dx(j)) - &
3906 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
3907 end do
3908
3909 if (num_fluids > 1) then
3910
3911# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3912#if defined(MFC_OpenACC)
3913# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3914!$acc loop seq
3915# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3916#elif defined(MFC_OpenMP)
3917# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3918
3919# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3920#endif
3921 do i = 1, num_fluids - 1
3922
3923# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3924#if defined(MFC_OpenACC)
3925# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3926!$acc atomic update
3927# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3928#elif defined(MFC_OpenMP)
3929# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3930!$omp atomic update
3931# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3932#endif
3933 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) + &
3934 real((0.5_wp*dt*(alpha_l(i)* &
3935 vel_l(1))*(1._wp/dx(j + 1)) - &
3936 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
3937
3938
3939# 1277 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3940#if defined(MFC_OpenACC)
3941# 1277 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3942!$acc atomic update
3943# 1277 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3944#elif defined(MFC_OpenMP)
3945# 1277 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3946!$omp atomic update
3947# 1277 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3948#endif
3949 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) &
3950 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, l)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3951
3952
3953# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3954#if defined(MFC_OpenACC)
3955# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3956!$acc atomic update
3957# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3958#elif defined(MFC_OpenMP)
3959# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3960!$omp atomic update
3961# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3962#endif
3963 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
3964 real(0.5_wp*dt*(alpha_l(i)* &
3965 vel_l(1))*(1._wp/dx(j)) - &
3966 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j)), kind=stp)
3967
3968
3969# 1287 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3970#if defined(MFC_OpenACC)
3971# 1287 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3972!$acc atomic update
3973# 1287 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3974#elif defined(MFC_OpenMP)
3975# 1287 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3976!$omp atomic update
3977# 1287 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3978#endif
3979 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
3980 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(1)*(1._wp/dx(j)), kind=stp)
3981 end do
3982 end if
3983
3984
3985# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3986#if defined(MFC_OpenACC)
3987# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3988!$acc atomic update
3989# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3990#elif defined(MFC_OpenMP)
3991# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3992!$omp atomic update
3993# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3994#endif
3995 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
3996 real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + &
3997 pres_l)*(1._wp/dx(j + 1)) - &
3998 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
3999
4000
4001# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4002#if defined(MFC_OpenACC)
4003# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4004!$acc atomic update
4005# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4006#elif defined(MFC_OpenMP)
4007# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4008!$omp atomic update
4009# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4010#endif
4011 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) + &
4012 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) - &
4013 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
4014
4015
4016# 1304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4017#if defined(MFC_OpenACC)
4018# 1304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4019!$acc atomic update
4020# 1304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4021#elif defined(MFC_OpenMP)
4022# 1304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4023!$omp atomic update
4024# 1304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4025#endif
4026 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, l) + &
4027 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j + 1)) - &
4028 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j + 1))), kind=stp)
4029
4030
4031# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4032#if defined(MFC_OpenACC)
4033# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4034!$acc atomic update
4035# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4036#elif defined(MFC_OpenMP)
4037# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4038!$omp atomic update
4039# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4040#endif
4041 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
4042 real((0.5_wp*dt*(vel_l(1)*(e_l + &
4043 pres_l))*(1._wp/dx(j + 1)) - &
4044 0.5_wp*dt*cfl*(e_l)*(1._wp/dx(j + 1))), kind=stp)
4045
4046
4047# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4048#if defined(MFC_OpenACC)
4049# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4050!$acc atomic update
4051# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4052#elif defined(MFC_OpenMP)
4053# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4054!$omp atomic update
4055# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4056#endif
4057 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
4058 real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + &
4059 pres_l)*(1._wp/dx(j)) - &
4060 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
4061
4062
4063# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4064#if defined(MFC_OpenACC)
4065# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4066!$acc atomic update
4067# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4068#elif defined(MFC_OpenMP)
4069# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4070!$omp atomic update
4071# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4072#endif
4073 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
4074 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) - &
4075 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
4076
4077
4078# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4079#if defined(MFC_OpenACC)
4080# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4081!$acc atomic update
4082# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4083#elif defined(MFC_OpenMP)
4084# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4085!$omp atomic update
4086# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4087#endif
4088 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
4089 real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j)) - &
4090 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j))), kind=stp)
4091
4092
4093# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4094#if defined(MFC_OpenACC)
4095# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4096!$acc atomic update
4097# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4098#elif defined(MFC_OpenMP)
4099# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4100!$omp atomic update
4101# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4102#endif
4103 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
4104 real((0.5_wp*dt*(vel_l(1)*(e_l + &
4105 pres_l))*(1._wp/dx(j)) - &
4106 0.5_wp*dt*cfl*(e_l)*(1._wp/dx(j))), kind=stp)
4107
4108
4109# 1337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4110#if defined(MFC_OpenACC)
4111# 1337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4112!$acc loop seq
4113# 1337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4114#elif defined(MFC_OpenMP)
4115# 1337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4116
4117# 1337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4118#endif
4119 do i = 1, num_fluids
4120
4121# 1339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4122#if defined(MFC_OpenACC)
4123# 1339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4124!$acc atomic update
4125# 1339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4126#elif defined(MFC_OpenMP)
4127# 1339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4128!$omp atomic update
4129# 1339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4130#endif
4131 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, l) + &
4132 real((0.5_wp*dt*(alpha_rho_r(i)* &
4133 vel_r(1))*(1._wp/dx(j + 1)) + &
4134 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
4135
4136
4137# 1345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4138#if defined(MFC_OpenACC)
4139# 1345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4140!$acc atomic update
4141# 1345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4142#elif defined(MFC_OpenMP)
4143# 1345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4144!$omp atomic update
4145# 1345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4146#endif
4147 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
4148 real((0.5_wp*dt*(alpha_rho_r(i)* &
4149 vel_r(1))*(1._wp/dx(j)) + &
4150 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
4151 end do
4152
4153 if (num_fluids > 1) then
4154
4155# 1353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4156#if defined(MFC_OpenACC)
4157# 1353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4158!$acc loop seq
4159# 1353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4160#elif defined(MFC_OpenMP)
4161# 1353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4162
4163# 1353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4164#endif
4165 do i = 1, num_fluids - 1
4166
4167# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4168#if defined(MFC_OpenACC)
4169# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4170!$acc atomic update
4171# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4172#elif defined(MFC_OpenMP)
4173# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4174!$omp atomic update
4175# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4176#endif
4177 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) + &
4178 real((0.5_wp*dt*(alpha_r(i)* &
4179 vel_r(1))*(1._wp/dx(j + 1)) + &
4180 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
4181
4182
4183# 1361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4184#if defined(MFC_OpenACC)
4185# 1361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4186!$acc atomic update
4187# 1361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4188#elif defined(MFC_OpenMP)
4189# 1361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4190!$omp atomic update
4191# 1361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4192#endif
4193 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, l) &
4194 - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
4195
4196
4197# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4198#if defined(MFC_OpenACC)
4199# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4200!$acc atomic update
4201# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4202#elif defined(MFC_OpenMP)
4203# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4204!$omp atomic update
4205# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4206#endif
4207 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
4208 real((0.5_wp*dt*(alpha_r(i)* &
4209 vel_r(1))*(1._wp/dx(j)) + &
4210 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
4211
4212
4213# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4214#if defined(MFC_OpenACC)
4215# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4216!$acc atomic update
4217# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4218#elif defined(MFC_OpenMP)
4219# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4220!$omp atomic update
4221# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4222#endif
4223 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
4224 + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
4225 end do
4226 end if
4227
4228
4229# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4230#if defined(MFC_OpenACC)
4231# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4232!$acc atomic update
4233# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4234#elif defined(MFC_OpenMP)
4235# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4236!$omp atomic update
4237# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4238#endif
4239 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, l) + &
4240 real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + &
4241 pres_r)*(1._wp/dx(j + 1)) + &
4242 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
4243
4244
4245# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4246#if defined(MFC_OpenACC)
4247# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4248!$acc atomic update
4249# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4250#elif defined(MFC_OpenMP)
4251# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4252!$omp atomic update
4253# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4254#endif
4255 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, l) + &
4256 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) + &
4257 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
4258
4259
4260# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4261#if defined(MFC_OpenACC)
4262# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4263!$acc atomic update
4264# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4265#elif defined(MFC_OpenMP)
4266# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4267!$omp atomic update
4268# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4269#endif
4270 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, l) + &
4271 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j + 1)) + &
4272 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j + 1))), kind=stp)
4273
4274
4275# 1393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4276#if defined(MFC_OpenACC)
4277# 1393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4278!$acc atomic update
4279# 1393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4280#elif defined(MFC_OpenMP)
4281# 1393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4282!$omp atomic update
4283# 1393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4284#endif
4285 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, l) + &
4286 real((0.5_wp*dt*(vel_r(1)*(e_r + &
4287 pres_r))*(1._wp/dx(j + 1)) + &
4288 0.5_wp*dt*cfl*(e_r)*(1._wp/dx(j + 1))), kind=stp)
4289
4290
4291# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4292#if defined(MFC_OpenACC)
4293# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4294!$acc atomic update
4295# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4296#elif defined(MFC_OpenMP)
4297# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4298!$omp atomic update
4299# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4300#endif
4301 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
4302 real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + &
4303 pres_r)*(1._wp/dx(j)) + &
4304 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
4305
4306
4307# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4308#if defined(MFC_OpenACC)
4309# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4310!$acc atomic update
4311# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4312#elif defined(MFC_OpenMP)
4313# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4314!$omp atomic update
4315# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4316#endif
4317 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
4318 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) + &
4319 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
4320
4321
4322# 1410 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4323#if defined(MFC_OpenACC)
4324# 1410 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4325!$acc atomic update
4326# 1410 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4327#elif defined(MFC_OpenMP)
4328# 1410 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4329!$omp atomic update
4330# 1410 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4331#endif
4332 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
4333 real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j)) + &
4334 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j))), kind=stp)
4335
4336
4337# 1415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4338#if defined(MFC_OpenACC)
4339# 1415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4340!$acc atomic update
4341# 1415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4342#elif defined(MFC_OpenMP)
4343# 1415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4344!$omp atomic update
4345# 1415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4346#endif
4347 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
4348 real((0.5_wp*dt*(vel_r(1)*(e_r + &
4349 pres_r))*(1._wp/dx(j)) + &
4350 0.5_wp*dt*cfl*(e_r)*(1._wp/dx(j))), kind=stp)
4351
4352 end do
4353 end do
4354 end do
4355
4356# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4357
4358# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4359#if defined(MFC_OpenACC)
4360# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4361!$acc end parallel loop
4362# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4363#elif defined(MFC_OpenMP)
4364# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4365
4366# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4367
4368# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4369!$omp end target teams loop
4370# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4371#endif
4372# 1424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4373
4374# 1426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4375 end if
4376 else if (idir == 2) then
4377 if (p == 0) then
4378# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4379
4380# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4381
4382# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4383#if defined(MFC_OpenACC)
4384# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4385!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
4386# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4387#elif defined(MFC_OpenMP)
4388# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4389
4390# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4391
4392# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4393
4394# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4395!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
4396# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4397#endif
4398# 1430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4399
4400 do l = 0, p
4401 do k = -1, n
4402 do j = 0, m
4403
4404 if (viscous) then
4405 vflux_l_arr = 0._wp
4406 vflux_r_arr = 0._wp
4407
4408# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4409
4410# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4411#if defined(MFC_OpenACC)
4412# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4413!$acc loop seq
4414# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4415#elif defined(MFC_OpenMP)
4416# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4417
4418# 1446 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4419#endif
4420 do q = vidxb, vidxe
4421
4422 !x-direction contributions
4423
4424# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4425#if defined(MFC_OpenACC)
4426# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4427!$acc loop seq
4428# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4429#elif defined(MFC_OpenMP)
4430# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4431
4432# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4433#endif
4434 do i = -1, 1
4435 rho_l = 0._wp
4436
4437# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4438#if defined(MFC_OpenACC)
4439# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4440!$acc loop seq
4441# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4442#elif defined(MFC_OpenMP)
4443# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4444
4445# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4446#endif
4447 do r = 1, num_fluids
4448 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
4449 end do
4450 rho_sf_small(i) = rho_l
4451 end do
4452
4453 dvel_small(1) = (1/(2._wp*dx(j)))*( &
4454 q_cons_vf(momxb)%sf(j + 1, k + q, l)/rho_sf_small(1) - &
4455 q_cons_vf(momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
4456 dvel_small(2) = (1/(2._wp*dx(j)))*( &
4457 q_cons_vf(momxb + 1)%sf(j + 1, k + q, l)/rho_sf_small(1) - &
4458 q_cons_vf(momxb + 1)%sf(j - 1, k + q, l)/rho_sf_small(-1))
4459
4460 if (q > vidxb) then
4461 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
4462 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
4463 end if
4464 if (q < vidxe) then
4465 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
4466 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
4467 end if
4468
4469 !y-direction contributions
4470
4471# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4472#if defined(MFC_OpenACC)
4473# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4474!$acc loop seq
4475# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4476#elif defined(MFC_OpenMP)
4477# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4478
4479# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4480#endif
4481 do i = -1, 1
4482 rho_l = 0._wp
4483
4484# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4485#if defined(MFC_OpenACC)
4486# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4487!$acc loop seq
4488# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4489#elif defined(MFC_OpenMP)
4490# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4491
4492# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4493#endif
4494 do r = 1, num_fluids
4495 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
4496 end do
4497 rho_sf_small(i) = rho_l
4498 end do
4499
4500 dvel_small(1) = (1/(2._wp*dy(k)))*( &
4501 q_cons_vf(momxb)%sf(j, k + 1 + q, l)/rho_sf_small(1) - &
4502 q_cons_vf(momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
4503 dvel_small(2) = (1/(2._wp*dy(k)))*( &
4504 q_cons_vf(momxb + 1)%sf(j, k + 1 + q, l)/rho_sf_small(1) - &
4505 q_cons_vf(momxb + 1)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
4506
4507 if (q > vidxb) then
4508 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
4509 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
4510 end if
4511 if (q < vidxe) then
4512 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
4513 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
4514 end if
4515 end do
4516 end if
4517
4518
4519# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4520#if defined(MFC_OpenACC)
4521# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4522!$acc loop seq
4523# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4524#elif defined(MFC_OpenMP)
4525# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4526
4527# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4528#endif
4529 do i = 1, num_fluids
4530 alpha_rho_l(i) = 0._wp
4531 alpha_rho_r(i) = 0._wp
4532 alpha_l(i) = 0._wp
4533 alpha_r(i) = 0._wp
4534 end do
4535
4536# 1512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4537#if defined(MFC_OpenACC)
4538# 1512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4539!$acc loop seq
4540# 1512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4541#elif defined(MFC_OpenMP)
4542# 1512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4543
4544# 1512 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4545#endif
4546 do i = 1, num_dims
4547 vel_l(i) = 0._wp
4548 vel_r(i) = 0._wp
4549 end do
4550
4551
4552# 1518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4553#if defined(MFC_OpenACC)
4554# 1518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4555!$acc loop seq
4556# 1518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4557#elif defined(MFC_OpenMP)
4558# 1518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4559
4560# 1518 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4561#endif
4562 do q = vidxb + 1, vidxe
4563
4564# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4565#if defined(MFC_OpenACC)
4566# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4567!$acc loop seq
4568# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4569#elif defined(MFC_OpenMP)
4570# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4571
4572# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4573#endif
4574 do i = 1, num_fluids
4575 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
4576 end do
4577
4578 if (num_fluids > 1) then
4579
4580# 1526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4581#if defined(MFC_OpenACC)
4582# 1526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4583!$acc loop seq
4584# 1526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4585#elif defined(MFC_OpenMP)
4586# 1526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4587
4588# 1526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4589#endif
4590 do i = 1, num_fluids - 1
4591 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
4592 end do
4593 else
4594 alpha_l(1) = 1._wp
4595 end if
4596
4597
4598# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4599#if defined(MFC_OpenACC)
4600# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4601!$acc loop seq
4602# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4603#elif defined(MFC_OpenMP)
4604# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4605
4606# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4607#endif
4608 do i = 1, num_dims
4609 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
4610 end do
4611 end do
4612
4613
4614# 1540 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4615#if defined(MFC_OpenACC)
4616# 1540 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4617!$acc loop seq
4618# 1540 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4619#elif defined(MFC_OpenMP)
4620# 1540 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4621
4622# 1540 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4623#endif
4624 do q = vidxb, vidxe - 1
4625
4626# 1542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4627#if defined(MFC_OpenACC)
4628# 1542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4629!$acc loop seq
4630# 1542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4631#elif defined(MFC_OpenMP)
4632# 1542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4633
4634# 1542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4635#endif
4636 do i = 1, num_fluids
4637 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
4638 end do
4639
4640 if (num_fluids > 1) then
4641
4642# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4643#if defined(MFC_OpenACC)
4644# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4645!$acc loop seq
4646# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4647#elif defined(MFC_OpenMP)
4648# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4649
4650# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4651#endif
4652 do i = 1, num_fluids - 1
4653 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
4654 end do
4655 else
4656 alpha_r(1) = 1._wp
4657 end if
4658
4659
4660# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4661#if defined(MFC_OpenACC)
4662# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4663!$acc loop seq
4664# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4665#elif defined(MFC_OpenMP)
4666# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4667
4668# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4669#endif
4670 do i = 1, num_dims
4671 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
4672 end do
4673 end do
4674
4675 if (num_fluids > 1) then
4676
4677 alpha_l(num_fluids) = 1._wp
4678 alpha_r(num_fluids) = 1._wp
4679
4680
4681# 1567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4682#if defined(MFC_OpenACC)
4683# 1567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4684!$acc loop seq
4685# 1567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4686#elif defined(MFC_OpenMP)
4687# 1567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4688
4689# 1567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4690#endif
4691 do i = 1, num_fluids - 1
4692 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
4693 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
4694 end do
4695 end if
4696
4697 rho_l = 0._wp; rho_r = 0._wp
4698 gamma_l = 0._wp; gamma_r = 0._wp
4699 pi_inf_l = 0._wp; pi_inf_r = 0._wp
4700
4701
4702# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4703#if defined(MFC_OpenACC)
4704# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4705!$acc loop seq
4706# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4707#elif defined(MFC_OpenMP)
4708# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4709
4710# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4711#endif
4712 do i = 1, num_fluids
4713 rho_l = rho_l + alpha_rho_l(i)
4714 gamma_l = gamma_l + alpha_l(i)*gammas(i)
4715 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
4716
4717 rho_r = rho_r + alpha_rho_r(i)
4718 gamma_r = gamma_r + alpha_r(i)*gammas(i)
4719 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
4720 end do
4721
4722
4723# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4724#if defined(MFC_OpenACC)
4725# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4726!$acc loop seq
4727# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4728#elif defined(MFC_OpenMP)
4729# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4730
4731# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4732#endif
4733 do i = 1, num_dims
4734 vel_l(i) = vel_l(i)/rho_l
4735 vel_r(i) = vel_r(i)/rho_r
4736 end do
4737
4738 if (viscous) then
4739 mu_l = 0._wp
4740 mu_r = 0._wp
4741
4742# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4743#if defined(MFC_OpenACC)
4744# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4745!$acc loop seq
4746# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4747#elif defined(MFC_OpenMP)
4748# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4749
4750# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4751#endif
4752 do i = 1, num_fluids
4753 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
4754 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
4755 end do
4756
4757
4758# 1604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4759#if defined(MFC_OpenACC)
4760# 1604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4761!$acc atomic update
4762# 1604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4763#elif defined(MFC_OpenMP)
4764# 1604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4765!$omp atomic update
4766# 1604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4767#endif
4768 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) - &
4769 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4770
4771# 1607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4772#if defined(MFC_OpenACC)
4773# 1607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4774!$acc atomic update
4775# 1607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4776#elif defined(MFC_OpenMP)
4777# 1607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4778!$omp atomic update
4779# 1607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4780#endif
4781 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
4782 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
4783
4784
4785# 1611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4786#if defined(MFC_OpenACC)
4787# 1611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4788!$acc atomic update
4789# 1611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4790#elif defined(MFC_OpenMP)
4791# 1611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4792!$omp atomic update
4793# 1611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4794#endif
4795 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
4796 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
4797
4798# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4799#if defined(MFC_OpenACC)
4800# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4801!$acc atomic update
4802# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4803#elif defined(MFC_OpenMP)
4804# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4805!$omp atomic update
4806# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4807#endif
4808 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
4809 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
4810
4811
4812# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4813#if defined(MFC_OpenACC)
4814# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4815!$acc atomic update
4816# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4817#elif defined(MFC_OpenMP)
4818# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4819!$omp atomic update
4820# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4821#endif
4822 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) - &
4823 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4824
4825# 1621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4826#if defined(MFC_OpenACC)
4827# 1621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4828!$acc atomic update
4829# 1621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4830#elif defined(MFC_OpenMP)
4831# 1621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4832!$omp atomic update
4833# 1621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4834#endif
4835 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
4836 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
4837
4838
4839# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4840#if defined(MFC_OpenACC)
4841# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4842!$acc atomic update
4843# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4844#elif defined(MFC_OpenMP)
4845# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4846!$omp atomic update
4847# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4848#endif
4849 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
4850 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
4851
4852# 1628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4853#if defined(MFC_OpenACC)
4854# 1628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4855!$acc atomic update
4856# 1628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4857#elif defined(MFC_OpenMP)
4858# 1628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4859!$omp atomic update
4860# 1628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4861#endif
4862 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
4863 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
4864
4865
4866# 1632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4867#if defined(MFC_OpenACC)
4868# 1632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4869!$acc atomic update
4870# 1632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4871#elif defined(MFC_OpenMP)
4872# 1632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4873!$omp atomic update
4874# 1632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4875#endif
4876 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) - &
4877 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4878
4879# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4880#if defined(MFC_OpenACC)
4881# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4882!$acc atomic update
4883# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4884#elif defined(MFC_OpenMP)
4885# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4886!$omp atomic update
4887# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4888#endif
4889 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
4890 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
4891
4892
4893# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4894#if defined(MFC_OpenACC)
4895# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4896!$acc atomic update
4897# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4898#elif defined(MFC_OpenMP)
4899# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4900!$omp atomic update
4901# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4902#endif
4903 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
4904 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
4905
4906# 1642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4907#if defined(MFC_OpenACC)
4908# 1642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4909!$acc atomic update
4910# 1642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4911#elif defined(MFC_OpenMP)
4912# 1642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4913!$omp atomic update
4914# 1642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4915#endif
4916 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
4917 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
4918
4919
4920# 1646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4921#if defined(MFC_OpenACC)
4922# 1646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4923!$acc atomic update
4924# 1646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4925#elif defined(MFC_OpenMP)
4926# 1646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4927!$omp atomic update
4928# 1646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4929#endif
4930 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) - &
4931 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4932
4933# 1649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4934#if defined(MFC_OpenACC)
4935# 1649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4936!$acc atomic update
4937# 1649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4938#elif defined(MFC_OpenMP)
4939# 1649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4940!$omp atomic update
4941# 1649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4942#endif
4943 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
4944 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
4945
4946
4947# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4948#if defined(MFC_OpenACC)
4949# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4950!$acc atomic update
4951# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4952#elif defined(MFC_OpenMP)
4953# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4954!$omp atomic update
4955# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4956#endif
4957 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
4958 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
4959
4960# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4961#if defined(MFC_OpenACC)
4962# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4963!$acc atomic update
4964# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4965#elif defined(MFC_OpenMP)
4966# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4967!$omp atomic update
4968# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4969#endif
4970 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
4971 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
4972 end if
4973
4974 e_l = 0._wp; e_r = 0._wp
4975 f_l = 0._wp; f_r = 0._wp
4976
4977
4978# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4979#if defined(MFC_OpenACC)
4980# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4981!$acc loop seq
4982# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4983#elif defined(MFC_OpenMP)
4984# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4985
4986# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4987#endif
4988 do q = vidxb + 1, vidxe
4989 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
4990 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
4991 end do
4992
4993
4994# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4995#if defined(MFC_OpenACC)
4996# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4997!$acc loop seq
4998# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4999#elif defined(MFC_OpenMP)
5000# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5001
5002# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5003#endif
5004 do q = vidxb, vidxe - 1
5005 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
5006 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
5007 end do
5008
5009 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, &
5010 e_r, gamma_r, pi_inf_r, rho_r, vel_r, &
5011 pres_l, pres_r, cfl)
5012
5013
5014# 1680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5015#if defined(MFC_OpenACC)
5016# 1680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5017!$acc loop seq
5018# 1680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5019#elif defined(MFC_OpenMP)
5020# 1680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5021
5022# 1680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5023#endif
5024 do i = 1, num_fluids
5025
5026# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5027#if defined(MFC_OpenACC)
5028# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5029!$acc atomic update
5030# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5031#elif defined(MFC_OpenMP)
5032# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5033!$omp atomic update
5034# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5035#endif
5036 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, l) + &
5037 real(0.5_wp*dt*(alpha_rho_l(i)* &
5038 vel_l(2))*(1._wp/dy(k + 1)) - &
5039 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
5040
5041
5042# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5043#if defined(MFC_OpenACC)
5044# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5045!$acc atomic update
5046# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5047#elif defined(MFC_OpenMP)
5048# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5049!$omp atomic update
5050# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5051#endif
5052 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
5053 real(0.5_wp*dt*(alpha_rho_l(i)* &
5054 vel_l(2))*(1._wp/dy(k)) - &
5055 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
5056 end do
5057
5058 if (num_fluids > 1) then
5059
5060# 1696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5061#if defined(MFC_OpenACC)
5062# 1696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5063!$acc loop seq
5064# 1696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5065#elif defined(MFC_OpenMP)
5066# 1696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5067
5068# 1696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5069#endif
5070 do i = 1, num_fluids - 1
5071
5072# 1698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5073#if defined(MFC_OpenACC)
5074# 1698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5075!$acc atomic update
5076# 1698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5077#elif defined(MFC_OpenMP)
5078# 1698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5079!$omp atomic update
5080# 1698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5081#endif
5082 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) + &
5083 real(0.5_wp*dt*(alpha_l(i)* &
5084 vel_l(2))*(1._wp/dy(k + 1)) - &
5085 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
5086
5087
5088# 1704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5089#if defined(MFC_OpenACC)
5090# 1704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5091!$acc atomic update
5092# 1704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5093#elif defined(MFC_OpenMP)
5094# 1704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5095!$omp atomic update
5096# 1704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5097#endif
5098 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) &
5099 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
5100
5101
5102# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5103#if defined(MFC_OpenACC)
5104# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5105!$acc atomic update
5106# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5107#elif defined(MFC_OpenMP)
5108# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5109!$omp atomic update
5110# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5111#endif
5112 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
5113 real(0.5_wp*dt*(alpha_l(i)* &
5114 vel_l(2))*(1._wp/dy(k)) - &
5115 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
5116
5117
5118# 1714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5119#if defined(MFC_OpenACC)
5120# 1714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5121!$acc atomic update
5122# 1714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5123#elif defined(MFC_OpenMP)
5124# 1714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5125!$omp atomic update
5126# 1714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5127#endif
5128 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
5129 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(2)*(1._wp/dy(k)), kind=stp)
5130 end do
5131 end if
5132
5133
5134# 1720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5135#if defined(MFC_OpenACC)
5136# 1720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5137!$acc atomic update
5138# 1720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5139#elif defined(MFC_OpenMP)
5140# 1720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5141!$omp atomic update
5142# 1720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5143#endif
5144 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) + &
5145 real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + &
5146 pres_l + f_l)*(1._wp/dy(k + 1)) - &
5147 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
5148
5149
5150# 1726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5151#if defined(MFC_OpenACC)
5152# 1726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5153!$acc atomic update
5154# 1726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5155#elif defined(MFC_OpenMP)
5156# 1726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5157!$omp atomic update
5158# 1726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5159#endif
5160 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) + &
5161 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) - &
5162 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
5163
5164
5165# 1731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5166#if defined(MFC_OpenACC)
5167# 1731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5168!$acc atomic update
5169# 1731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5170#elif defined(MFC_OpenMP)
5171# 1731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5172!$omp atomic update
5173# 1731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5174#endif
5175 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) + &
5176 real(0.5_wp*dt*(vel_l(2)*(e_l + &
5177 pres_l + f_l))*(1._wp/dy(k + 1)) - &
5178 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
5179
5180
5181# 1737 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5182#if defined(MFC_OpenACC)
5183# 1737 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5184!$acc atomic update
5185# 1737 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5186#elif defined(MFC_OpenMP)
5187# 1737 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5188!$omp atomic update
5189# 1737 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5190#endif
5191 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
5192 real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + &
5193 pres_l + f_l)*(1._wp/dy(k)) - &
5194 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
5195
5196
5197# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5198#if defined(MFC_OpenACC)
5199# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5200!$acc atomic update
5201# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5202#elif defined(MFC_OpenMP)
5203# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5204!$omp atomic update
5205# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5206#endif
5207 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
5208 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k)) - &
5209 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k)), kind=stp)
5210
5211
5212# 1748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5213#if defined(MFC_OpenACC)
5214# 1748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5215!$acc atomic update
5216# 1748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5217#elif defined(MFC_OpenMP)
5218# 1748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5219!$omp atomic update
5220# 1748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5221#endif
5222 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
5223 real(0.5_wp*dt*(vel_l(2)*(e_l + &
5224 pres_l + f_l))*(1._wp/dy(k)) - &
5225 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k)), kind=stp)
5226
5227
5228# 1754 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5229#if defined(MFC_OpenACC)
5230# 1754 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5231!$acc loop seq
5232# 1754 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5233#elif defined(MFC_OpenMP)
5234# 1754 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5235
5236# 1754 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5237#endif
5238 do i = 1, num_fluids
5239
5240# 1756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5241#if defined(MFC_OpenACC)
5242# 1756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5243!$acc atomic update
5244# 1756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5245#elif defined(MFC_OpenMP)
5246# 1756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5247!$omp atomic update
5248# 1756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5249#endif
5250 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, l) + &
5251 real(0.5_wp*dt*(alpha_rho_r(i)* &
5252 vel_r(2))*(1._wp/dy(k + 1)) + &
5253 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
5254
5255# 1761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5256#if defined(MFC_OpenACC)
5257# 1761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5258!$acc atomic update
5259# 1761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5260#elif defined(MFC_OpenMP)
5261# 1761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5262!$omp atomic update
5263# 1761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5264#endif
5265 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
5266 real(0.5_wp*dt*(alpha_rho_r(i)* &
5267 vel_r(2))*(1._wp/dy(k)) + &
5268 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
5269 end do
5270
5271 if (num_fluids > 1) then
5272
5273# 1769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5274#if defined(MFC_OpenACC)
5275# 1769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5276!$acc loop seq
5277# 1769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5278#elif defined(MFC_OpenMP)
5279# 1769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5280
5281# 1769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5282#endif
5283 do i = 1, num_fluids - 1
5284
5285# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5286#if defined(MFC_OpenACC)
5287# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5288!$acc atomic update
5289# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5290#elif defined(MFC_OpenMP)
5291# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5292!$omp atomic update
5293# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5294#endif
5295 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) + &
5296 real(0.5_wp*dt*(alpha_r(i)* &
5297 vel_r(2))*(1._wp/dy(k + 1)) + &
5298 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
5299
5300
5301# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5302#if defined(MFC_OpenACC)
5303# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5304!$acc atomic update
5305# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5306#elif defined(MFC_OpenMP)
5307# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5308!$omp atomic update
5309# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5310#endif
5311 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) &
5312 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
5313
5314
5315# 1781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5316#if defined(MFC_OpenACC)
5317# 1781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5318!$acc atomic update
5319# 1781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5320#elif defined(MFC_OpenMP)
5321# 1781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5322!$omp atomic update
5323# 1781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5324#endif
5325 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
5326 real(0.5_wp*dt*(alpha_r(i)* &
5327 vel_r(2))*(1._wp/dy(k)) + &
5328 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
5329
5330
5331# 1787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5332#if defined(MFC_OpenACC)
5333# 1787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5334!$acc atomic update
5335# 1787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5336#elif defined(MFC_OpenMP)
5337# 1787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5338!$omp atomic update
5339# 1787 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5340#endif
5341 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
5342 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(2)*(1._wp/dy(k)), kind=stp)
5343 end do
5344 end if
5345
5346# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5347#if defined(MFC_OpenACC)
5348# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5349!$acc atomic update
5350# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5351#elif defined(MFC_OpenMP)
5352# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5353!$omp atomic update
5354# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5355#endif
5356 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) + &
5357 real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + &
5358 pres_r + f_r)*(1._wp/dy(k + 1)) + &
5359 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
5360
5361# 1797 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5362#if defined(MFC_OpenACC)
5363# 1797 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5364!$acc atomic update
5365# 1797 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5366#elif defined(MFC_OpenMP)
5367# 1797 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5368!$omp atomic update
5369# 1797 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5370#endif
5371 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) + &
5372 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) + &
5373 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
5374
5375# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5376#if defined(MFC_OpenACC)
5377# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5378!$acc atomic update
5379# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5380#elif defined(MFC_OpenMP)
5381# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5382!$omp atomic update
5383# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5384#endif
5385 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) + &
5386 real(0.5_wp*dt*(vel_r(2)*(e_r + &
5387 pres_r + f_r))*(1._wp/dy(k + 1)) + &
5388 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
5389
5390# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5391#if defined(MFC_OpenACC)
5392# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5393!$acc atomic update
5394# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5395#elif defined(MFC_OpenMP)
5396# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5397!$omp atomic update
5398# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5399#endif
5400 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
5401 real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + &
5402 pres_r + f_r)*(1._wp/dy(k)) + &
5403 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
5404
5405# 1811 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5406#if defined(MFC_OpenACC)
5407# 1811 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5408!$acc atomic update
5409# 1811 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5410#elif defined(MFC_OpenMP)
5411# 1811 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5412!$omp atomic update
5413# 1811 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5414#endif
5415 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
5416 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k)) + &
5417 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k)), kind=stp)
5418
5419# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5420#if defined(MFC_OpenACC)
5421# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5422!$acc atomic update
5423# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5424#elif defined(MFC_OpenMP)
5425# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5426!$omp atomic update
5427# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5428#endif
5429 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
5430 real(0.5_wp*dt*(vel_r(2)*(e_r + &
5431 pres_r + f_r))*(1._wp/dy(k)) + &
5432 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k)), kind=stp)
5433 end do
5434 end do
5435 end do
5436
5437# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5438
5439# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5440#if defined(MFC_OpenACC)
5441# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5442!$acc end parallel loop
5443# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5444#elif defined(MFC_OpenMP)
5445# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5446
5447# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5448
5449# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5450!$omp end target teams loop
5451# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5452#endif
5453# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5454
5455# 1825 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5456 else
5457# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5458
5459# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5460
5461# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5462#if defined(MFC_OpenACC)
5463# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5464!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
5465# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5466#elif defined(MFC_OpenMP)
5467# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5468
5469# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5470
5471# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5472
5473# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5474!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
5475# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5476#endif
5477# 1827 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5478
5479 do l = 0, p
5480 do k = -1, n
5481 do j = 0, m
5482
5483 if (viscous) then
5484 vflux_l_arr = 0._wp
5485 vflux_r_arr = 0._wp
5486
5487# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5488
5489# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5490#if defined(MFC_OpenACC)
5491# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5492!$acc loop seq
5493# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5494#elif defined(MFC_OpenMP)
5495# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5496
5497# 1843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5498#endif
5499 do q = vidxb, vidxe
5500
5501 !x-direction contributions
5502
5503# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5504#if defined(MFC_OpenACC)
5505# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5506!$acc loop seq
5507# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5508#elif defined(MFC_OpenMP)
5509# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5510
5511# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5512#endif
5513 do i = -1, 1
5514 rho_l = 0._wp
5515
5516# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5517#if defined(MFC_OpenACC)
5518# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5519!$acc loop seq
5520# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5521#elif defined(MFC_OpenMP)
5522# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5523
5524# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5525#endif
5526 do r = 1, num_fluids
5527 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
5528 end do
5529 rho_sf_small(i) = rho_l
5530 end do
5531
5532 dvel_small(1) = (1/(2._wp*dx(j)))*( &
5533 q_cons_vf(momxb)%sf(j + 1, k + q, l)/rho_sf_small(1) - &
5534 q_cons_vf(momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
5535 dvel_small(2) = (1/(2._wp*dx(j)))*( &
5536 q_cons_vf(momxb + 1)%sf(j + 1, k + q, l)/rho_sf_small(1) - &
5537 q_cons_vf(momxb + 1)%sf(j - 1, k + q, l)/rho_sf_small(-1))
5538
5539 if (q > vidxb) then
5540 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
5541 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
5542 end if
5543 if (q < vidxe) then
5544 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
5545 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
5546 end if
5547
5548 !y-direction contributions
5549
5550# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5551#if defined(MFC_OpenACC)
5552# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5553!$acc loop seq
5554# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5555#elif defined(MFC_OpenMP)
5556# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5557
5558# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5559#endif
5560 do i = -1, 1
5561 rho_l = 0._wp
5562
5563# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5564#if defined(MFC_OpenACC)
5565# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5566!$acc loop seq
5567# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5568#elif defined(MFC_OpenMP)
5569# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5570
5571# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5572#endif
5573 do r = 1, num_fluids
5574 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
5575 end do
5576 rho_sf_small(i) = rho_l
5577 end do
5578
5579 dvel_small(1) = (1/(2._wp*dy(k)))*( &
5580 q_cons_vf(momxb)%sf(j, k + 1 + q, l)/rho_sf_small(1) - &
5581 q_cons_vf(momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5582 dvel_small(2) = (1/(2._wp*dy(k)))*( &
5583 q_cons_vf(momxb + 1)%sf(j, k + 1 + q, l)/rho_sf_small(1) - &
5584 q_cons_vf(momxb + 1)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5585 dvel_small(3) = (1/(2._wp*dy(k)))*( &
5586 q_cons_vf(momxb + 2)%sf(j, k + 1 + q, l)/rho_sf_small(1) - &
5587 q_cons_vf(momxb + 2)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5588
5589 if (q > vidxb) then
5590 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
5591 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
5592 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
5593 end if
5594 if (q < vidxe) then
5595 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
5596 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
5597 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
5598 end if
5599
5600 !z-direction contributions
5601
5602# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5603#if defined(MFC_OpenACC)
5604# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5605!$acc loop seq
5606# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5607#elif defined(MFC_OpenMP)
5608# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5609
5610# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5611#endif
5612 do i = -1, 1
5613 rho_l = 0._wp
5614
5615# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5616#if defined(MFC_OpenACC)
5617# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5618!$acc loop seq
5619# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5620#elif defined(MFC_OpenMP)
5621# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5622
5623# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5624#endif
5625 do r = 1, num_fluids
5626 rho_l = rho_l + q_cons_vf(r)%sf(j, k + q, l + i)
5627 end do
5628 rho_sf_small(i) = rho_l
5629 end do
5630
5631 dvel_small(2) = (1/(2._wp*dz(l)))*( &
5632 q_cons_vf(momxb + 1)%sf(j, k + q, l + 1)/rho_sf_small(1) - &
5633 q_cons_vf(momxb + 1)%sf(j, k + q, l - 1)/rho_sf_small(-1))
5634 dvel_small(3) = (1/(2._wp*dz(l)))*( &
5635 q_cons_vf(momxb + 2)%sf(j, k + q, l + 1)/rho_sf_small(1) - &
5636 q_cons_vf(momxb + 2)%sf(j, k + q, l - 1)/rho_sf_small(-1))
5637 if (q > vidxb) then
5638 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
5639 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
5640 end if
5641 if (q < vidxe) then
5642 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
5643 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
5644 end if
5645 end do
5646 end if
5647
5648
5649# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5650#if defined(MFC_OpenACC)
5651# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5652!$acc loop seq
5653# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5654#elif defined(MFC_OpenMP)
5655# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5656
5657# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5658#endif
5659 do i = 1, num_fluids
5660 alpha_rho_l(i) = 0._wp
5661 alpha_rho_r(i) = 0._wp
5662 alpha_l(i) = 0._wp
5663 alpha_r(i) = 0._wp
5664 end do
5665
5666# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5667#if defined(MFC_OpenACC)
5668# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5669!$acc loop seq
5670# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5671#elif defined(MFC_OpenMP)
5672# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5673
5674# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5675#endif
5676 do i = 1, num_dims
5677 vel_l(i) = 0._wp
5678 vel_r(i) = 0._wp
5679 end do
5680
5681
5682# 1946 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5683#if defined(MFC_OpenACC)
5684# 1946 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5685!$acc loop seq
5686# 1946 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5687#elif defined(MFC_OpenMP)
5688# 1946 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5689
5690# 1946 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5691#endif
5692 do q = vidxb + 1, vidxe
5693
5694# 1948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5695#if defined(MFC_OpenACC)
5696# 1948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5697!$acc loop seq
5698# 1948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5699#elif defined(MFC_OpenMP)
5700# 1948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5701
5702# 1948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5703#endif
5704 do i = 1, num_fluids
5705 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
5706 end do
5707
5708 if (num_fluids > 1) then
5709
5710# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5711#if defined(MFC_OpenACC)
5712# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5713!$acc loop seq
5714# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5715#elif defined(MFC_OpenMP)
5716# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5717
5718# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5719#endif
5720 do i = 1, num_fluids - 1
5721 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
5722 end do
5723 else
5724 alpha_l(1) = 1._wp
5725 end if
5726
5727
5728# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5729#if defined(MFC_OpenACC)
5730# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5731!$acc loop seq
5732# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5733#elif defined(MFC_OpenMP)
5734# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5735
5736# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5737#endif
5738 do i = 1, num_dims
5739 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
5740 end do
5741 end do
5742
5743
5744# 1968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5745#if defined(MFC_OpenACC)
5746# 1968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5747!$acc loop seq
5748# 1968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5749#elif defined(MFC_OpenMP)
5750# 1968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5751
5752# 1968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5753#endif
5754 do q = vidxb, vidxe - 1
5755
5756# 1970 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5757#if defined(MFC_OpenACC)
5758# 1970 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5759!$acc loop seq
5760# 1970 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5761#elif defined(MFC_OpenMP)
5762# 1970 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5763
5764# 1970 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5765#endif
5766 do i = 1, num_fluids
5767 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
5768 end do
5769
5770 if (num_fluids > 1) then
5771
5772# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5773#if defined(MFC_OpenACC)
5774# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5775!$acc loop seq
5776# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5777#elif defined(MFC_OpenMP)
5778# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5779
5780# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5781#endif
5782 do i = 1, num_fluids - 1
5783 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
5784 end do
5785 else
5786 alpha_r(1) = 1._wp
5787 end if
5788
5789
5790# 1984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5791#if defined(MFC_OpenACC)
5792# 1984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5793!$acc loop seq
5794# 1984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5795#elif defined(MFC_OpenMP)
5796# 1984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5797
5798# 1984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5799#endif
5800 do i = 1, num_dims
5801 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
5802 end do
5803 end do
5804
5805 if (num_fluids > 1) then
5806
5807 alpha_l(num_fluids) = 1._wp
5808 alpha_r(num_fluids) = 1._wp
5809
5810
5811# 1995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5812#if defined(MFC_OpenACC)
5813# 1995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5814!$acc loop seq
5815# 1995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5816#elif defined(MFC_OpenMP)
5817# 1995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5818
5819# 1995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5820#endif
5821 do i = 1, num_fluids - 1
5822 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
5823 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
5824 end do
5825 end if
5826
5827 rho_l = 0._wp; rho_r = 0._wp
5828 gamma_l = 0._wp; gamma_r = 0._wp
5829 pi_inf_l = 0._wp; pi_inf_r = 0._wp
5830
5831
5832# 2006 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5833#if defined(MFC_OpenACC)
5834# 2006 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5835!$acc loop seq
5836# 2006 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5837#elif defined(MFC_OpenMP)
5838# 2006 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5839
5840# 2006 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5841#endif
5842 do i = 1, num_fluids
5843 rho_l = rho_l + alpha_rho_l(i)
5844 gamma_l = gamma_l + alpha_l(i)*gammas(i)
5845 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
5846
5847 rho_r = rho_r + alpha_rho_r(i)
5848 gamma_r = gamma_r + alpha_r(i)*gammas(i)
5849 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
5850 end do
5851
5852
5853# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5854#if defined(MFC_OpenACC)
5855# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5856!$acc loop seq
5857# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5858#elif defined(MFC_OpenMP)
5859# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5860
5861# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5862#endif
5863 do i = 1, num_dims
5864 vel_l(i) = vel_l(i)/rho_l
5865 vel_r(i) = vel_r(i)/rho_r
5866 end do
5867
5868 if (viscous) then
5869 mu_l = 0._wp
5870 mu_r = 0._wp
5871
5872# 2026 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5873#if defined(MFC_OpenACC)
5874# 2026 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5875!$acc loop seq
5876# 2026 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5877#elif defined(MFC_OpenMP)
5878# 2026 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5879
5880# 2026 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5881#endif
5882 do i = 1, num_fluids
5883 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
5884 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
5885 end do
5886
5887
5888# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5889#if defined(MFC_OpenACC)
5890# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5891!$acc atomic update
5892# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5893#elif defined(MFC_OpenMP)
5894# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5895!$omp atomic update
5896# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5897#endif
5898 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) - &
5899 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
5900
5901# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5902#if defined(MFC_OpenACC)
5903# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5904!$acc atomic update
5905# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5906#elif defined(MFC_OpenMP)
5907# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5908!$omp atomic update
5909# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5910#endif
5911 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
5912 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
5913
5914
5915# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5916#if defined(MFC_OpenACC)
5917# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5918!$acc atomic update
5919# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5920#elif defined(MFC_OpenMP)
5921# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5922!$omp atomic update
5923# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5924#endif
5925 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
5926 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
5927
5928# 2042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5929#if defined(MFC_OpenACC)
5930# 2042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5931!$acc atomic update
5932# 2042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5933#elif defined(MFC_OpenMP)
5934# 2042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5935!$omp atomic update
5936# 2042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5937#endif
5938 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
5939 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
5940
5941
5942# 2046 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5943#if defined(MFC_OpenACC)
5944# 2046 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5945!$acc atomic update
5946# 2046 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5947#elif defined(MFC_OpenMP)
5948# 2046 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5949!$omp atomic update
5950# 2046 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5951#endif
5952 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) - &
5953 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
5954
5955# 2049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5956#if defined(MFC_OpenACC)
5957# 2049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5958!$acc atomic update
5959# 2049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5960#elif defined(MFC_OpenMP)
5961# 2049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5962!$omp atomic update
5963# 2049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5964#endif
5965 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
5966 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
5967
5968
5969# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5970#if defined(MFC_OpenACC)
5971# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5972!$acc atomic update
5973# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5974#elif defined(MFC_OpenMP)
5975# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5976!$omp atomic update
5977# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5978#endif
5979 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
5980 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
5981
5982# 2056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5983#if defined(MFC_OpenACC)
5984# 2056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5985!$acc atomic update
5986# 2056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5987#elif defined(MFC_OpenMP)
5988# 2056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5989!$omp atomic update
5990# 2056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5991#endif
5992 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
5993 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
5994
5995
5996# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5997#if defined(MFC_OpenACC)
5998# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5999!$acc atomic update
6000# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6001#elif defined(MFC_OpenMP)
6002# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6003!$omp atomic update
6004# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6005#endif
6006 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, l) - &
6007 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k + 1)), kind=stp)
6008
6009# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6010#if defined(MFC_OpenACC)
6011# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6012!$acc atomic update
6013# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6014#elif defined(MFC_OpenMP)
6015# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6016!$omp atomic update
6017# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6018#endif
6019 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
6020 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k + 1)), kind=stp)
6021
6022
6023# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6024#if defined(MFC_OpenACC)
6025# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6026!$acc atomic update
6027# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6028#elif defined(MFC_OpenMP)
6029# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6030!$omp atomic update
6031# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6032#endif
6033 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
6034 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k)), kind=stp)
6035
6036# 2070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6037#if defined(MFC_OpenACC)
6038# 2070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6039!$acc atomic update
6040# 2070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6041#elif defined(MFC_OpenMP)
6042# 2070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6043!$omp atomic update
6044# 2070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6045#endif
6046 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
6047 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k)), kind=stp)
6048
6049
6050# 2074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6051#if defined(MFC_OpenACC)
6052# 2074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6053!$acc atomic update
6054# 2074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6055#elif defined(MFC_OpenMP)
6056# 2074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6057!$omp atomic update
6058# 2074 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6059#endif
6060 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, l) - &
6061 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k + 1)), kind=stp)
6062
6063# 2077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6064#if defined(MFC_OpenACC)
6065# 2077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6066!$acc atomic update
6067# 2077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6068#elif defined(MFC_OpenMP)
6069# 2077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6070!$omp atomic update
6071# 2077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6072#endif
6073 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
6074 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k + 1)), kind=stp)
6075
6076
6077# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6078#if defined(MFC_OpenACC)
6079# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6080!$acc atomic update
6081# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6082#elif defined(MFC_OpenMP)
6083# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6084!$omp atomic update
6085# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6086#endif
6087 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
6088 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k)), kind=stp)
6089
6090# 2084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6091#if defined(MFC_OpenACC)
6092# 2084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6093!$acc atomic update
6094# 2084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6095#elif defined(MFC_OpenMP)
6096# 2084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6097!$omp atomic update
6098# 2084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6099#endif
6100 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
6101 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k)), kind=stp)
6102
6103
6104# 2088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6105#if defined(MFC_OpenACC)
6106# 2088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6107!$acc atomic update
6108# 2088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6109#elif defined(MFC_OpenMP)
6110# 2088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6111!$omp atomic update
6112# 2088 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6113#endif
6114 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) - &
6115 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
6116
6117# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6118#if defined(MFC_OpenACC)
6119# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6120!$acc atomic update
6121# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6122#elif defined(MFC_OpenMP)
6123# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6124!$omp atomic update
6125# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6126#endif
6127 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
6128 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
6129
6130
6131# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6132#if defined(MFC_OpenACC)
6133# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6134!$acc atomic update
6135# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6136#elif defined(MFC_OpenMP)
6137# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6138!$omp atomic update
6139# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6140#endif
6141 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
6142 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
6143
6144# 2098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6145#if defined(MFC_OpenACC)
6146# 2098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6147!$acc atomic update
6148# 2098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6149#elif defined(MFC_OpenMP)
6150# 2098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6151!$omp atomic update
6152# 2098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6153#endif
6154 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
6155 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
6156
6157
6158# 2102 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6159#if defined(MFC_OpenACC)
6160# 2102 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6161!$acc atomic update
6162# 2102 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6163#elif defined(MFC_OpenMP)
6164# 2102 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6165!$omp atomic update
6166# 2102 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6167#endif
6168 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) - &
6169 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
6170
6171# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6172#if defined(MFC_OpenACC)
6173# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6174!$acc atomic update
6175# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6176#elif defined(MFC_OpenMP)
6177# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6178!$omp atomic update
6179# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6180#endif
6181 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) - &
6182 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
6183
6184
6185# 2109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6186#if defined(MFC_OpenACC)
6187# 2109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6188!$acc atomic update
6189# 2109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6190#elif defined(MFC_OpenMP)
6191# 2109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6192!$omp atomic update
6193# 2109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6194#endif
6195 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
6196 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
6197
6198# 2112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6199#if defined(MFC_OpenACC)
6200# 2112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6201!$acc atomic update
6202# 2112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6203#elif defined(MFC_OpenMP)
6204# 2112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6205!$omp atomic update
6206# 2112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6207#endif
6208 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
6209 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
6210 end if
6211
6212 e_l = 0._wp; e_r = 0._wp
6213 f_l = 0._wp; f_r = 0._wp
6214
6215
6216# 2120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6217#if defined(MFC_OpenACC)
6218# 2120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6219!$acc loop seq
6220# 2120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6221#elif defined(MFC_OpenMP)
6222# 2120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6223
6224# 2120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6225#endif
6226 do q = vidxb + 1, vidxe
6227 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
6228 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
6229 end do
6230
6231
6232# 2126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6233#if defined(MFC_OpenACC)
6234# 2126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6235!$acc loop seq
6236# 2126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6237#elif defined(MFC_OpenMP)
6238# 2126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6239
6240# 2126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6241#endif
6242 do q = vidxb, vidxe - 1
6243 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
6244 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
6245 end do
6246
6247 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, &
6248 e_r, gamma_r, pi_inf_r, rho_r, vel_r, &
6249 pres_l, pres_r, cfl)
6250
6251
6252# 2136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6253#if defined(MFC_OpenACC)
6254# 2136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6255!$acc loop seq
6256# 2136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6257#elif defined(MFC_OpenMP)
6258# 2136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6259
6260# 2136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6261#endif
6262 do i = 1, num_fluids
6263
6264# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6265#if defined(MFC_OpenACC)
6266# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6267!$acc atomic update
6268# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6269#elif defined(MFC_OpenMP)
6270# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6271!$omp atomic update
6272# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6273#endif
6274 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, l) + &
6275 real(0.5_wp*dt*(alpha_rho_l(i)* &
6276 vel_l(2))*(1._wp/dy(k + 1)) - &
6277 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
6278
6279
6280# 2144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6281#if defined(MFC_OpenACC)
6282# 2144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6283!$acc atomic update
6284# 2144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6285#elif defined(MFC_OpenMP)
6286# 2144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6287!$omp atomic update
6288# 2144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6289#endif
6290 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
6291 real(0.5_wp*dt*(alpha_rho_l(i)* &
6292 vel_l(2))*(1._wp/dy(k)) - &
6293 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
6294 end do
6295
6296 if (num_fluids > 1) then
6297
6298# 2152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6299#if defined(MFC_OpenACC)
6300# 2152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6301!$acc loop seq
6302# 2152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6303#elif defined(MFC_OpenMP)
6304# 2152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6305
6306# 2152 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6307#endif
6308 do i = 1, num_fluids - 1
6309
6310# 2154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6311#if defined(MFC_OpenACC)
6312# 2154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6313!$acc atomic update
6314# 2154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6315#elif defined(MFC_OpenMP)
6316# 2154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6317!$omp atomic update
6318# 2154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6319#endif
6320 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) + &
6321 real(0.5_wp*dt*(alpha_l(i)* &
6322 vel_l(2))*(1._wp/dy(k + 1)) - &
6323 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
6324
6325
6326# 2160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6327#if defined(MFC_OpenACC)
6328# 2160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6329!$acc atomic update
6330# 2160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6331#elif defined(MFC_OpenMP)
6332# 2160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6333!$omp atomic update
6334# 2160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6335#endif
6336 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) &
6337 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
6338
6339
6340# 2164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6341#if defined(MFC_OpenACC)
6342# 2164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6343!$acc atomic update
6344# 2164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6345#elif defined(MFC_OpenMP)
6346# 2164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6347!$omp atomic update
6348# 2164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6349#endif
6350 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
6351 real(0.5_wp*dt*(alpha_l(i)* &
6352 vel_l(2))*(1._wp/dy(k)) - &
6353 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
6354
6355
6356# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6357#if defined(MFC_OpenACC)
6358# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6359!$acc atomic update
6360# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6361#elif defined(MFC_OpenMP)
6362# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6363!$omp atomic update
6364# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6365#endif
6366 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
6367 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(2)*(1._wp/dy(k)), kind=stp)
6368 end do
6369 end if
6370
6371
6372# 2176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6373#if defined(MFC_OpenACC)
6374# 2176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6375!$acc atomic update
6376# 2176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6377#elif defined(MFC_OpenMP)
6378# 2176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6379!$omp atomic update
6380# 2176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6381#endif
6382 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) + &
6383 real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + &
6384 pres_l + f_l)*(1._wp/dy(k + 1)) - &
6385 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
6386
6387
6388# 2182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6389#if defined(MFC_OpenACC)
6390# 2182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6391!$acc atomic update
6392# 2182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6393#elif defined(MFC_OpenMP)
6394# 2182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6395!$omp atomic update
6396# 2182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6397#endif
6398 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) + &
6399 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) - &
6400 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
6401
6402
6403# 2187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6404#if defined(MFC_OpenACC)
6405# 2187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6406!$acc atomic update
6407# 2187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6408#elif defined(MFC_OpenMP)
6409# 2187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6410!$omp atomic update
6411# 2187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6412#endif
6413 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, l) + &
6414 real(0.5_wp*dt*rho_l*vel_l(3)*vel_l(2)*(1._wp/dy(k + 1)) - &
6415 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dy(k + 1)), kind=stp)
6416
6417
6418# 2192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6419#if defined(MFC_OpenACC)
6420# 2192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6421!$acc atomic update
6422# 2192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6423#elif defined(MFC_OpenMP)
6424# 2192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6425!$omp atomic update
6426# 2192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6427#endif
6428 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) + &
6429 real(0.5_wp*dt*(vel_l(2)*(e_l + &
6430 pres_l + f_l))*(1._wp/dy(k + 1)) - &
6431 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
6432
6433
6434# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6435#if defined(MFC_OpenACC)
6436# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6437!$acc atomic update
6438# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6439#elif defined(MFC_OpenMP)
6440# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6441!$omp atomic update
6442# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6443#endif
6444 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
6445 real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + &
6446 pres_l + f_l)*(1._wp/dy(k)) - &
6447 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
6448
6449
6450# 2204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6451#if defined(MFC_OpenACC)
6452# 2204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6453!$acc atomic update
6454# 2204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6455#elif defined(MFC_OpenMP)
6456# 2204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6457!$omp atomic update
6458# 2204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6459#endif
6460 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
6461 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k)) - &
6462 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k)), kind=stp)
6463
6464
6465# 2209 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6466#if defined(MFC_OpenACC)
6467# 2209 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6468!$acc atomic update
6469# 2209 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6470#elif defined(MFC_OpenMP)
6471# 2209 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6472!$omp atomic update
6473# 2209 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6474#endif
6475 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
6476 real(0.5_wp*dt*rho_l*vel_l(3)*vel_l(2)*(1._wp/dy(k)) - &
6477 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dy(k)), kind=stp)
6478
6479
6480# 2214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6481#if defined(MFC_OpenACC)
6482# 2214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6483!$acc atomic update
6484# 2214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6485#elif defined(MFC_OpenMP)
6486# 2214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6487!$omp atomic update
6488# 2214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6489#endif
6490 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
6491 real(0.5_wp*dt*(vel_l(2)*(e_l + &
6492 pres_l + f_l))*(1._wp/dy(k)) - &
6493 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k)), kind=stp)
6494
6495
6496# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6497#if defined(MFC_OpenACC)
6498# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6499!$acc loop seq
6500# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6501#elif defined(MFC_OpenMP)
6502# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6503
6504# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6505#endif
6506 do i = 1, num_fluids
6507
6508# 2222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6509#if defined(MFC_OpenACC)
6510# 2222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6511!$acc atomic update
6512# 2222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6513#elif defined(MFC_OpenMP)
6514# 2222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6515!$omp atomic update
6516# 2222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6517#endif
6518 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, l) + &
6519 real(0.5_wp*dt*(alpha_rho_r(i)* &
6520 vel_r(2))*(1._wp/dy(k + 1)) + &
6521 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
6522
6523
6524# 2228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6525#if defined(MFC_OpenACC)
6526# 2228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6527!$acc atomic update
6528# 2228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6529#elif defined(MFC_OpenMP)
6530# 2228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6531!$omp atomic update
6532# 2228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6533#endif
6534 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
6535 real(0.5_wp*dt*(alpha_rho_r(i)* &
6536 vel_r(2))*(1._wp/dy(k)) + &
6537 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
6538 end do
6539
6540 if (num_fluids > 1) then
6541
6542# 2236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6543#if defined(MFC_OpenACC)
6544# 2236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6545!$acc loop seq
6546# 2236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6547#elif defined(MFC_OpenMP)
6548# 2236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6549
6550# 2236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6551#endif
6552 do i = 1, num_fluids - 1
6553
6554# 2238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6555#if defined(MFC_OpenACC)
6556# 2238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6557!$acc atomic update
6558# 2238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6559#elif defined(MFC_OpenMP)
6560# 2238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6561!$omp atomic update
6562# 2238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6563#endif
6564 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) + &
6565 real(0.5_wp*dt*(alpha_r(i)* &
6566 vel_r(2))*(1._wp/dy(k + 1)) + &
6567 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
6568
6569
6570# 2244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6571#if defined(MFC_OpenACC)
6572# 2244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6573!$acc atomic update
6574# 2244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6575#elif defined(MFC_OpenMP)
6576# 2244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6577!$omp atomic update
6578# 2244 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6579#endif
6580 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, l) &
6581 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
6582
6583
6584# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6585#if defined(MFC_OpenACC)
6586# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6587!$acc atomic update
6588# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6589#elif defined(MFC_OpenMP)
6590# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6591!$omp atomic update
6592# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6593#endif
6594 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
6595 real(0.5_wp*dt*(alpha_r(i)* &
6596 vel_r(2))*(1._wp/dy(k)) + &
6597 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
6598
6599
6600# 2254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6601#if defined(MFC_OpenACC)
6602# 2254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6603!$acc atomic update
6604# 2254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6605#elif defined(MFC_OpenMP)
6606# 2254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6607!$omp atomic update
6608# 2254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6609#endif
6610 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
6611 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(2)*(1._wp/dy(k)), kind=stp)
6612 end do
6613 end if
6614
6615
6616# 2260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6617#if defined(MFC_OpenACC)
6618# 2260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6619!$acc atomic update
6620# 2260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6621#elif defined(MFC_OpenMP)
6622# 2260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6623!$omp atomic update
6624# 2260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6625#endif
6626 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, l) + &
6627 real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + &
6628 pres_r + f_r)*(1._wp/dy(k + 1)) + &
6629 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
6630
6631
6632# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6633#if defined(MFC_OpenACC)
6634# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6635!$acc atomic update
6636# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6637#elif defined(MFC_OpenMP)
6638# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6639!$omp atomic update
6640# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6641#endif
6642 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, l) + &
6643 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) + &
6644 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
6645
6646
6647# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6648#if defined(MFC_OpenACC)
6649# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6650!$acc atomic update
6651# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6652#elif defined(MFC_OpenMP)
6653# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6654!$omp atomic update
6655# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6656#endif
6657 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, l) + &
6658 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dy(k + 1)) + &
6659 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dy(k + 1)), kind=stp)
6660
6661
6662# 2276 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6663#if defined(MFC_OpenACC)
6664# 2276 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6665!$acc atomic update
6666# 2276 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6667#elif defined(MFC_OpenMP)
6668# 2276 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6669!$omp atomic update
6670# 2276 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6671#endif
6672 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, l) + &
6673 real(0.5_wp*dt*(vel_r(2)*(e_r + &
6674 pres_r + f_r))*(1._wp/dy(k + 1)) + &
6675 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
6676
6677
6678# 2282 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6679#if defined(MFC_OpenACC)
6680# 2282 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6681!$acc atomic update
6682# 2282 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6683#elif defined(MFC_OpenMP)
6684# 2282 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6685!$omp atomic update
6686# 2282 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6687#endif
6688 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
6689 real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + &
6690 pres_r + f_r)*(1._wp/dy(k)) + &
6691 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
6692
6693
6694# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6695#if defined(MFC_OpenACC)
6696# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6697!$acc atomic update
6698# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6699#elif defined(MFC_OpenMP)
6700# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6701!$omp atomic update
6702# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6703#endif
6704 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
6705 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k)) + &
6706 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k)), kind=stp)
6707
6708
6709# 2293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6710#if defined(MFC_OpenACC)
6711# 2293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6712!$acc atomic update
6713# 2293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6714#elif defined(MFC_OpenMP)
6715# 2293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6716!$omp atomic update
6717# 2293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6718#endif
6719 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
6720 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dy(k)) + &
6721 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dy(k)), kind=stp)
6722
6723
6724# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6725#if defined(MFC_OpenACC)
6726# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6727!$acc atomic update
6728# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6729#elif defined(MFC_OpenMP)
6730# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6731!$omp atomic update
6732# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6733#endif
6734 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
6735 real(0.5_wp*dt*(vel_r(2)*(e_r + &
6736 pres_r + f_r))*(1._wp/dy(k)) + &
6737 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k)), kind=stp)
6738
6739 end do
6740 end do
6741 end do
6742
6743# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6744
6745# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6746#if defined(MFC_OpenACC)
6747# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6748!$acc end parallel loop
6749# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6750#elif defined(MFC_OpenMP)
6751# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6752
6753# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6754
6755# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6756!$omp end target teams loop
6757# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6758#endif
6759# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6760
6761# 2309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6762 end if
6763 elseif (idir == 3) then
6764# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6765
6766# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6767
6768# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6769#if defined(MFC_OpenACC)
6770# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6771!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
6772# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6773#elif defined(MFC_OpenMP)
6774# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6775
6776# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6777
6778# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6779
6780# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6781!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, alpha_rho_L, alpha_rho_R, F_L, F_R, E_L, E_R, cfl, dvel_small, rho_sf_small, vflux_L_arr, vflux_R_arr)
6782# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6783#endif
6784# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6785
6786 do l = -1, p
6787 do k = 0, n
6788 do j = 0, m
6789
6790 if (viscous) then
6791 vflux_l_arr = 0._wp
6792 vflux_r_arr = 0._wp
6793
6794# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6795
6796# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6797#if defined(MFC_OpenACC)
6798# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6799!$acc loop seq
6800# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6801#elif defined(MFC_OpenMP)
6802# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6803
6804# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6805#endif
6806 do q = vidxb, vidxe
6807
6808 !x-direction contributions
6809
6810# 2332 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6811#if defined(MFC_OpenACC)
6812# 2332 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6813!$acc loop seq
6814# 2332 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6815#elif defined(MFC_OpenMP)
6816# 2332 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6817
6818# 2332 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6819#endif
6820 do i = -1, 1
6821 rho_l = 0._wp
6822
6823# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6824#if defined(MFC_OpenACC)
6825# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6826!$acc loop seq
6827# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6828#elif defined(MFC_OpenMP)
6829# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6830
6831# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6832#endif
6833 do r = 1, num_fluids
6834 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k, l + q)
6835 end do
6836 rho_sf_small(i) = rho_l
6837 end do
6838
6839 dvel_small(1) = (1/(2._wp*dx(j)))*( &
6840 q_cons_vf(momxb)%sf(j + 1, k, l + q)/rho_sf_small(1) - &
6841 q_cons_vf(momxb)%sf(j - 1, k, l + q)/rho_sf_small(-1))
6842 dvel_small(3) = (1/(2._wp*dx(j)))*( &
6843 q_cons_vf(momxb + 2)%sf(j + 1, k, l + q)/rho_sf_small(1) - &
6844 q_cons_vf(momxb + 2)%sf(j - 1, k, l + q)/rho_sf_small(-1))
6845
6846 if (q > vidxb) then
6847 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(3))
6848 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
6849 end if
6850 if (q < vidxe) then
6851 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(3))
6852 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
6853 end if
6854
6855 !y-direction contributions
6856
6857# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6858#if defined(MFC_OpenACC)
6859# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6860!$acc loop seq
6861# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6862#elif defined(MFC_OpenMP)
6863# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6864
6865# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6866#endif
6867 do i = -1, 1
6868 rho_l = 0._wp
6869
6870# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6871#if defined(MFC_OpenACC)
6872# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6873!$acc loop seq
6874# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6875#elif defined(MFC_OpenMP)
6876# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6877
6878# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6879#endif
6880 do r = 1, num_fluids
6881 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i, l + q)
6882 end do
6883 rho_sf_small(i) = rho_l
6884 end do
6885
6886 dvel_small(2) = (1/(2._wp*dy(k)))*( &
6887 q_cons_vf(momxb + 1)%sf(j, k + 1, l + q)/rho_sf_small(1) - &
6888 q_cons_vf(momxb + 1)%sf(j, k - 1, l + q)/rho_sf_small(-1))
6889 dvel_small(3) = (1/(2._wp*dy(k)))*( &
6890 q_cons_vf(momxb + 2)%sf(j, k + 1, l + q)/rho_sf_small(1) - &
6891 q_cons_vf(momxb + 2)%sf(j, k - 1, l + q)/rho_sf_small(-1))
6892
6893 if (q > vidxb) then
6894 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
6895 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
6896 end if
6897 if (q < vidxe) then
6898 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
6899 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
6900 end if
6901
6902 !z-direction contributions
6903
6904# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6905#if defined(MFC_OpenACC)
6906# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6907!$acc loop seq
6908# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6909#elif defined(MFC_OpenMP)
6910# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6911
6912# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6913#endif
6914 do i = -1, 1
6915 rho_l = 0._wp
6916
6917# 2389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6918#if defined(MFC_OpenACC)
6919# 2389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6920!$acc loop seq
6921# 2389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6922#elif defined(MFC_OpenMP)
6923# 2389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6924
6925# 2389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6926#endif
6927 do r = 1, num_fluids
6928 rho_l = rho_l + q_cons_vf(r)%sf(j, k, l + i + q)
6929 end do
6930 rho_sf_small(i) = rho_l
6931 end do
6932 dvel_small(1) = (1/(2._wp*dz(l)))*( &
6933 q_cons_vf(momxb)%sf(j, k, l + 1 + q)/rho_sf_small(1) - &
6934 q_cons_vf(momxb)%sf(j, k, l - 1 + q)/rho_sf_small(-1))
6935 dvel_small(2) = (1/(2._wp*dz(l)))*( &
6936 q_cons_vf(momxb + 1)%sf(j, k, l + 1 + q)/rho_sf_small(1) - &
6937 q_cons_vf(momxb + 1)%sf(j, k, l - 1 + q)/rho_sf_small(-1))
6938 dvel_small(3) = (1/(2._wp*dz(l)))*( &
6939 q_cons_vf(momxb + 2)%sf(j, k, l + 1 + q)/rho_sf_small(1) - &
6940 q_cons_vf(momxb + 2)%sf(j, k, l - 1 + q)/rho_sf_small(-1))
6941 if (q > vidxb) then
6942 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
6943 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
6944 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(3))/3._wp
6945 end if
6946 if (q < vidxe) then
6947 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
6948 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
6949 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(3))/3._wp
6950 end if
6951 end do
6952 end if
6953
6954
6955# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6956#if defined(MFC_OpenACC)
6957# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6958!$acc loop seq
6959# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6960#elif defined(MFC_OpenMP)
6961# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6962
6963# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6964#endif
6965 do i = 1, num_fluids
6966 alpha_rho_l(i) = 0._wp
6967 alpha_rho_r(i) = 0._wp
6968 alpha_l(i) = 0._wp
6969 alpha_r(i) = 0._wp
6970 end do
6971
6972
6973# 2425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6974#if defined(MFC_OpenACC)
6975# 2425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6976!$acc loop seq
6977# 2425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6978#elif defined(MFC_OpenMP)
6979# 2425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6980
6981# 2425 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6982#endif
6983 do i = 1, num_dims
6984 vel_l(i) = 0._wp
6985 vel_r(i) = 0._wp
6986 end do
6987
6988
6989# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6990#if defined(MFC_OpenACC)
6991# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6992!$acc loop seq
6993# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6994#elif defined(MFC_OpenMP)
6995# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6996
6997# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6998#endif
6999 do q = vidxb + 1, vidxe
7000
7001# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7002#if defined(MFC_OpenACC)
7003# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7004!$acc loop seq
7005# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7006#elif defined(MFC_OpenMP)
7007# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7008
7009# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7010#endif
7011 do i = 1, num_fluids
7012 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k, l + q)
7013 end do
7014
7015 if (num_fluids > 1) then
7016
7017# 2439 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7018#if defined(MFC_OpenACC)
7019# 2439 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7020!$acc loop seq
7021# 2439 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7022#elif defined(MFC_OpenMP)
7023# 2439 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7024
7025# 2439 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7026#endif
7027 do i = 1, num_fluids - 1
7028 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k, l + q)
7029 end do
7030 else
7031 alpha_l(1) = 1._wp
7032 end if
7033
7034
7035# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7036#if defined(MFC_OpenACC)
7037# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7038!$acc loop seq
7039# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7040#elif defined(MFC_OpenMP)
7041# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7042
7043# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7044#endif
7045 do i = 1, num_dims
7046 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k, l + q)
7047 end do
7048 end do
7049
7050
7051# 2453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7052#if defined(MFC_OpenACC)
7053# 2453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7054!$acc loop seq
7055# 2453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7056#elif defined(MFC_OpenMP)
7057# 2453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7058
7059# 2453 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7060#endif
7061 do q = vidxb, vidxe - 1
7062
7063# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7064#if defined(MFC_OpenACC)
7065# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7066!$acc loop seq
7067# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7068#elif defined(MFC_OpenMP)
7069# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7070
7071# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7072#endif
7073 do i = 1, num_fluids
7074 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k, l + q)
7075 end do
7076
7077 if (num_fluids > 1) then
7078
7079# 2461 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7080#if defined(MFC_OpenACC)
7081# 2461 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7082!$acc loop seq
7083# 2461 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7084#elif defined(MFC_OpenMP)
7085# 2461 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7086
7087# 2461 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7088#endif
7089 do i = 1, num_fluids - 1
7090 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k, l + q)
7091 end do
7092 else
7093 alpha_r(1) = 1._wp
7094 end if
7095
7096
7097# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7098#if defined(MFC_OpenACC)
7099# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7100!$acc loop seq
7101# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7102#elif defined(MFC_OpenMP)
7103# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7104
7105# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7106#endif
7107 do i = 1, num_dims
7108 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k, l + q)
7109 end do
7110 end do
7111
7112 if (num_fluids > 1) then
7113
7114 alpha_l(num_fluids) = 1._wp
7115 alpha_r(num_fluids) = 1._wp
7116
7117
7118# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7119#if defined(MFC_OpenACC)
7120# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7121!$acc loop seq
7122# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7123#elif defined(MFC_OpenMP)
7124# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7125
7126# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7127#endif
7128 do i = 1, num_fluids - 1
7129 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
7130 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
7131 end do
7132 end if
7133
7134 rho_l = 0._wp; rho_r = 0._wp
7135 gamma_l = 0._wp; gamma_r = 0._wp
7136 pi_inf_l = 0._wp; pi_inf_r = 0._wp
7137
7138
7139# 2491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7140#if defined(MFC_OpenACC)
7141# 2491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7142!$acc loop seq
7143# 2491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7144#elif defined(MFC_OpenMP)
7145# 2491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7146
7147# 2491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7148#endif
7149 do i = 1, num_fluids
7150 rho_l = rho_l + alpha_rho_l(i)
7151 gamma_l = gamma_l + alpha_l(i)*gammas(i)
7152 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
7153
7154 rho_r = rho_r + alpha_rho_r(i)
7155 gamma_r = gamma_r + alpha_r(i)*gammas(i)
7156 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
7157 end do
7158
7159
7160# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7161#if defined(MFC_OpenACC)
7162# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7163!$acc loop seq
7164# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7165#elif defined(MFC_OpenMP)
7166# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7167
7168# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7169#endif
7170 do i = 1, num_dims
7171 vel_l(i) = vel_l(i)/rho_l
7172 vel_r(i) = vel_r(i)/rho_r
7173 end do
7174
7175 if (viscous) then
7176 mu_l = 0._wp
7177 mu_r = 0._wp
7178
7179# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7180#if defined(MFC_OpenACC)
7181# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7182!$acc loop seq
7183# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7184#elif defined(MFC_OpenMP)
7185# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7186
7187# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7188#endif
7189 do i = 1, num_fluids
7190 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
7191 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
7192 end do
7193
7194
7195# 2517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7196#if defined(MFC_OpenACC)
7197# 2517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7198!$acc atomic update
7199# 2517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7200#elif defined(MFC_OpenMP)
7201# 2517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7202!$omp atomic update
7203# 2517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7204#endif
7205 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, l + 1) - &
7206 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l + 1)), kind=stp)
7207
7208# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7209#if defined(MFC_OpenACC)
7210# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7211!$acc atomic update
7212# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7213#elif defined(MFC_OpenMP)
7214# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7215!$omp atomic update
7216# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7217#endif
7218 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7219 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l + 1)), kind=stp)
7220
7221
7222# 2524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7223#if defined(MFC_OpenACC)
7224# 2524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7225!$acc atomic update
7226# 2524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7227#elif defined(MFC_OpenMP)
7228# 2524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7229!$omp atomic update
7230# 2524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7231#endif
7232 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
7233 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l)), kind=stp)
7234
7235# 2527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7236#if defined(MFC_OpenACC)
7237# 2527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7238!$acc atomic update
7239# 2527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7240#elif defined(MFC_OpenMP)
7241# 2527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7242!$omp atomic update
7243# 2527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7244#endif
7245 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7246 real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l)), kind=stp)
7247
7248
7249# 2531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7250#if defined(MFC_OpenACC)
7251# 2531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7252!$acc atomic update
7253# 2531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7254#elif defined(MFC_OpenMP)
7255# 2531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7256!$omp atomic update
7257# 2531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7258#endif
7259 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, l + 1) - &
7260 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l + 1)), kind=stp)
7261
7262# 2534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7263#if defined(MFC_OpenACC)
7264# 2534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7265!$acc atomic update
7266# 2534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7267#elif defined(MFC_OpenMP)
7268# 2534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7269!$omp atomic update
7270# 2534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7271#endif
7272 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7273 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l + 1)), kind=stp)
7274
7275
7276# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7277#if defined(MFC_OpenACC)
7278# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7279!$acc atomic update
7280# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7281#elif defined(MFC_OpenMP)
7282# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7283!$omp atomic update
7284# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7285#endif
7286 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) + &
7287 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l)), kind=stp)
7288
7289# 2541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7290#if defined(MFC_OpenACC)
7291# 2541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7292!$acc atomic update
7293# 2541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7294#elif defined(MFC_OpenMP)
7295# 2541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7296!$omp atomic update
7297# 2541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7298#endif
7299 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7300 real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l)), kind=stp)
7301
7302
7303# 2545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7304#if defined(MFC_OpenACC)
7305# 2545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7306!$acc atomic update
7307# 2545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7308#elif defined(MFC_OpenMP)
7309# 2545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7310!$omp atomic update
7311# 2545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7312#endif
7313 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, l + 1) - &
7314 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7315
7316# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7317#if defined(MFC_OpenACC)
7318# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7319!$acc atomic update
7320# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7321#elif defined(MFC_OpenMP)
7322# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7323!$omp atomic update
7324# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7325#endif
7326 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7327 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l + 1)), kind=stp)
7328
7329
7330# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7331#if defined(MFC_OpenACC)
7332# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7333!$acc atomic update
7334# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7335#elif defined(MFC_OpenMP)
7336# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7337!$omp atomic update
7338# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7339#endif
7340 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
7341 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l)), kind=stp)
7342
7343# 2555 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7344#if defined(MFC_OpenACC)
7345# 2555 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7346!$acc atomic update
7347# 2555 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7348#elif defined(MFC_OpenMP)
7349# 2555 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7350!$omp atomic update
7351# 2555 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7352#endif
7353 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7354 real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l)), kind=stp)
7355
7356
7357# 2559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7358#if defined(MFC_OpenACC)
7359# 2559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7360!$acc atomic update
7361# 2559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7362#elif defined(MFC_OpenMP)
7363# 2559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7364!$omp atomic update
7365# 2559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7366#endif
7367 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, l + 1) - &
7368 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7369
7370# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7371#if defined(MFC_OpenACC)
7372# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7373!$acc atomic update
7374# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7375#elif defined(MFC_OpenMP)
7376# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7377!$omp atomic update
7378# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7379#endif
7380 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7381 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l + 1)), kind=stp)
7382
7383
7384# 2566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7385#if defined(MFC_OpenACC)
7386# 2566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7387!$acc atomic update
7388# 2566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7389#elif defined(MFC_OpenMP)
7390# 2566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7391!$omp atomic update
7392# 2566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7393#endif
7394 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) + &
7395 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l)), kind=stp)
7396
7397# 2569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7398#if defined(MFC_OpenACC)
7399# 2569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7400!$acc atomic update
7401# 2569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7402#elif defined(MFC_OpenMP)
7403# 2569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7404!$omp atomic update
7405# 2569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7406#endif
7407 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7408 real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l)), kind=stp)
7409
7410
7411# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7412#if defined(MFC_OpenACC)
7413# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7414!$acc atomic update
7415# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7416#elif defined(MFC_OpenMP)
7417# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7418!$omp atomic update
7419# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7420#endif
7421 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, l + 1) - &
7422 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7423
7424# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7425#if defined(MFC_OpenACC)
7426# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7427!$acc atomic update
7428# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7429#elif defined(MFC_OpenMP)
7430# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7431!$omp atomic update
7432# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7433#endif
7434 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7435 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7436
7437
7438# 2580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7439#if defined(MFC_OpenACC)
7440# 2580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7441!$acc atomic update
7442# 2580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7443#elif defined(MFC_OpenMP)
7444# 2580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7445!$omp atomic update
7446# 2580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7447#endif
7448 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
7449 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l)), kind=stp)
7450
7451# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7452#if defined(MFC_OpenACC)
7453# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7454!$acc atomic update
7455# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7456#elif defined(MFC_OpenMP)
7457# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7458!$omp atomic update
7459# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7460#endif
7461 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7462 real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l)), kind=stp)
7463
7464
7465# 2587 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7466#if defined(MFC_OpenACC)
7467# 2587 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7468!$acc atomic update
7469# 2587 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7470#elif defined(MFC_OpenMP)
7471# 2587 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7472!$omp atomic update
7473# 2587 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7474#endif
7475 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, l + 1) - &
7476 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7477
7478# 2590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7479#if defined(MFC_OpenACC)
7480# 2590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7481!$acc atomic update
7482# 2590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7483#elif defined(MFC_OpenMP)
7484# 2590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7485!$omp atomic update
7486# 2590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7487#endif
7488 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) - &
7489 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
7490
7491
7492# 2594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7493#if defined(MFC_OpenACC)
7494# 2594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7495!$acc atomic update
7496# 2594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7497#elif defined(MFC_OpenMP)
7498# 2594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7499!$omp atomic update
7500# 2594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7501#endif
7502 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) + &
7503 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l)), kind=stp)
7504
7505# 2597 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7506#if defined(MFC_OpenACC)
7507# 2597 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7508!$acc atomic update
7509# 2597 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7510#elif defined(MFC_OpenMP)
7511# 2597 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7512!$omp atomic update
7513# 2597 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7514#endif
7515 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) + &
7516 real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l)), kind=stp)
7517 end if
7518
7519 e_l = 0._wp; e_r = 0._wp
7520 f_l = 0._wp; f_r = 0._wp
7521
7522
7523# 2605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7524#if defined(MFC_OpenACC)
7525# 2605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7526!$acc loop seq
7527# 2605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7528#elif defined(MFC_OpenMP)
7529# 2605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7530
7531# 2605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7532#endif
7533 do q = vidxb + 1, vidxe
7534 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k, l + q)
7535 f_l = f_l + coeff_l(q)*jac(j, k, l + q)
7536 end do
7537
7538
7539# 2611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7540#if defined(MFC_OpenACC)
7541# 2611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7542!$acc loop seq
7543# 2611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7544#elif defined(MFC_OpenMP)
7545# 2611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7546
7547# 2611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7548#endif
7549 do q = vidxb, vidxe - 1
7550 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k, l + q)
7551 f_r = f_r + coeff_r(q)*jac(j, k, l + q)
7552 end do
7553
7554 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, &
7555 e_r, gamma_r, pi_inf_r, rho_r, vel_r, &
7556 pres_l, pres_r, cfl)
7557
7558
7559# 2621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7560#if defined(MFC_OpenACC)
7561# 2621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7562!$acc loop seq
7563# 2621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7564#elif defined(MFC_OpenMP)
7565# 2621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7566
7567# 2621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7568#endif
7569 do i = 1, num_fluids
7570
7571# 2623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7572#if defined(MFC_OpenACC)
7573# 2623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7574!$acc atomic update
7575# 2623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7576#elif defined(MFC_OpenMP)
7577# 2623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7578!$omp atomic update
7579# 2623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7580#endif
7581 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, l + 1) + &
7582 real(0.5_wp*dt*(alpha_rho_l(i)* &
7583 vel_l(3))*(1._wp/dz(l + 1)) - &
7584 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l + 1)), kind=stp)
7585
7586
7587# 2629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7588#if defined(MFC_OpenACC)
7589# 2629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7590!$acc atomic update
7591# 2629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7592#elif defined(MFC_OpenMP)
7593# 2629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7594!$omp atomic update
7595# 2629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7596#endif
7597 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
7598 real(0.5_wp*dt*(alpha_rho_l(i)* &
7599 vel_l(3))*(1._wp/dz(l)) - &
7600 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l)), kind=stp)
7601 end do
7602
7603 if (num_fluids > 1) then
7604
7605# 2637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7606#if defined(MFC_OpenACC)
7607# 2637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7608!$acc loop seq
7609# 2637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7610#elif defined(MFC_OpenMP)
7611# 2637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7612
7613# 2637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7614#endif
7615 do i = 1, num_fluids - 1
7616
7617# 2639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7618#if defined(MFC_OpenACC)
7619# 2639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7620!$acc atomic update
7621# 2639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7622#elif defined(MFC_OpenMP)
7623# 2639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7624!$omp atomic update
7625# 2639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7626#endif
7627 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, l + 1) + &
7628 real(0.5_wp*dt*(alpha_l(i)* &
7629 vel_l(3))*(1._wp/dz(l + 1)) - &
7630 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dz(l + 1)), kind=stp)
7631
7632
7633# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7634#if defined(MFC_OpenACC)
7635# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7636!$acc atomic update
7637# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7638#elif defined(MFC_OpenMP)
7639# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7640!$omp atomic update
7641# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7642#endif
7643 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, l + 1) &
7644 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l + 1)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7645
7646
7647# 2649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7648#if defined(MFC_OpenACC)
7649# 2649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7650!$acc atomic update
7651# 2649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7652#elif defined(MFC_OpenMP)
7653# 2649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7654!$omp atomic update
7655# 2649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7656#endif
7657 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
7658 real(0.5_wp*dt*(alpha_l(i)* &
7659 vel_l(3))*(1._wp/dz(l)) - &
7660 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dz(l)), kind=stp)
7661
7662
7663# 2655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7664#if defined(MFC_OpenACC)
7665# 2655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7666!$acc atomic update
7667# 2655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7668#elif defined(MFC_OpenMP)
7669# 2655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7670!$omp atomic update
7671# 2655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7672#endif
7673 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
7674 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(3)*(1._wp/dz(l)), kind=stp)
7675 end do
7676 end if
7677
7678
7679# 2661 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7680#if defined(MFC_OpenACC)
7681# 2661 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7682!$acc atomic update
7683# 2661 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7684#elif defined(MFC_OpenMP)
7685# 2661 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7686!$omp atomic update
7687# 2661 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7688#endif
7689 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, l + 1) + &
7690 real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + &
7691 pres_l + f_l)*(1._wp/dz(l + 1)) - &
7692 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l + 1)), kind=stp)
7693
7694
7695# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7696#if defined(MFC_OpenACC)
7697# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7698!$acc atomic update
7699# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7700#elif defined(MFC_OpenMP)
7701# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7702!$omp atomic update
7703# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7704#endif
7705 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, l + 1) + &
7706 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dz(l + 1)) - &
7707 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dz(l + 1)), kind=stp)
7708
7709
7710# 2672 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7711#if defined(MFC_OpenACC)
7712# 2672 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7713!$acc atomic update
7714# 2672 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7715#elif defined(MFC_OpenMP)
7716# 2672 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7717!$omp atomic update
7718# 2672 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7719#endif
7720 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, l + 1) + &
7721 real(0.5_wp*dt*rho_l*vel_l(2)*vel_l(3)*(1._wp/dz(l + 1)) - &
7722 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dz(l + 1)), kind=stp)
7723
7724
7725# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7726#if defined(MFC_OpenACC)
7727# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7728!$acc atomic update
7729# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7730#elif defined(MFC_OpenMP)
7731# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7732!$omp atomic update
7733# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7734#endif
7735 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) + &
7736 real(0.5_wp*dt*(vel_l(3)*(e_l + &
7737 pres_l + f_l))*(1._wp/dz(l + 1)) - &
7738 0.5_wp*dt*cfl*(e_l)*(1._wp/dz(l + 1)), kind=stp)
7739
7740
7741# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7742#if defined(MFC_OpenACC)
7743# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7744!$acc atomic update
7745# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7746#elif defined(MFC_OpenMP)
7747# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7748!$omp atomic update
7749# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7750#endif
7751 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
7752 real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + &
7753 pres_l + f_l)*(1._wp/dz(l)) - &
7754 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l)), kind=stp)
7755
7756
7757# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7758#if defined(MFC_OpenACC)
7759# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7760!$acc atomic update
7761# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7762#elif defined(MFC_OpenMP)
7763# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7764!$omp atomic update
7765# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7766#endif
7767 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
7768 real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dz(l)) - &
7769 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dz(l)), kind=stp)
7770
7771
7772# 2694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7773#if defined(MFC_OpenACC)
7774# 2694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7775!$acc atomic update
7776# 2694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7777#elif defined(MFC_OpenMP)
7778# 2694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7779!$omp atomic update
7780# 2694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7781#endif
7782 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
7783 real(0.5_wp*dt*rho_l*vel_l(2)*vel_l(3)*(1._wp/dz(l)) - &
7784 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dz(l)), kind=stp)
7785
7786
7787# 2699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7788#if defined(MFC_OpenACC)
7789# 2699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7790!$acc atomic update
7791# 2699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7792#elif defined(MFC_OpenMP)
7793# 2699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7794!$omp atomic update
7795# 2699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7796#endif
7797 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
7798 real(0.5_wp*dt*(vel_l(3)*(e_l + &
7799 pres_l + f_l))*(1._wp/dz(l)) - &
7800 0.5_wp*dt*cfl*(e_l)*(1._wp/dz(l)), kind=stp)
7801
7802
7803# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7804#if defined(MFC_OpenACC)
7805# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7806!$acc loop seq
7807# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7808#elif defined(MFC_OpenMP)
7809# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7810
7811# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7812#endif
7813 do i = 1, num_fluids
7814
7815# 2707 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7816#if defined(MFC_OpenACC)
7817# 2707 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7818!$acc atomic update
7819# 2707 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7820#elif defined(MFC_OpenMP)
7821# 2707 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7822!$omp atomic update
7823# 2707 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7824#endif
7825 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, l + 1) + &
7826 real(0.5_wp*dt*(alpha_rho_r(i)* &
7827 vel_r(3))*(1._wp/dz(l + 1)) + &
7828 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l + 1)), kind=stp)
7829
7830
7831# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7832#if defined(MFC_OpenACC)
7833# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7834!$acc atomic update
7835# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7836#elif defined(MFC_OpenMP)
7837# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7838!$omp atomic update
7839# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7840#endif
7841 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) - &
7842 real(0.5_wp*dt*(alpha_rho_r(i)* &
7843 vel_r(3))*(1._wp/dz(l)) + &
7844 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l)), kind=stp)
7845 end do
7846
7847 if (num_fluids > 1) then
7848
7849# 2721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7850#if defined(MFC_OpenACC)
7851# 2721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7852!$acc loop seq
7853# 2721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7854#elif defined(MFC_OpenMP)
7855# 2721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7856
7857# 2721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7858#endif
7859 do i = 1, num_fluids - 1
7860
7861# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7862#if defined(MFC_OpenACC)
7863# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7864!$acc atomic update
7865# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7866#elif defined(MFC_OpenMP)
7867# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7868!$omp atomic update
7869# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7870#endif
7871 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, l + 1) + &
7872 real(0.5_wp*dt*(alpha_r(i)* &
7873 vel_r(3))*(1._wp/dz(l + 1)) + &
7874 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dz(l + 1)), kind=stp)
7875
7876
7877# 2729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7878#if defined(MFC_OpenACC)
7879# 2729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7880!$acc atomic update
7881# 2729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7882#elif defined(MFC_OpenMP)
7883# 2729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7884!$omp atomic update
7885# 2729 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7886#endif
7887 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, l + 1) &
7888 - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l + 1)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
7889
7890
7891# 2733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7892#if defined(MFC_OpenACC)
7893# 2733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7894!$acc atomic update
7895# 2733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7896#elif defined(MFC_OpenMP)
7897# 2733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7898!$omp atomic update
7899# 2733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7900#endif
7901 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) - &
7902 real(0.5_wp*dt*(alpha_r(i)* &
7903 vel_r(3))*(1._wp/dz(l)) + &
7904 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dz(l)), kind=stp)
7905
7906
7907# 2739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7908#if defined(MFC_OpenACC)
7909# 2739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7910!$acc atomic update
7911# 2739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7912#elif defined(MFC_OpenMP)
7913# 2739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7914!$omp atomic update
7915# 2739 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7916#endif
7917 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, l) &
7918 + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(3)*(1._wp/dz(l)), kind=stp)
7919 end do
7920 end if
7921
7922
7923# 2745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7924#if defined(MFC_OpenACC)
7925# 2745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7926!$acc atomic update
7927# 2745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7928#elif defined(MFC_OpenMP)
7929# 2745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7930!$omp atomic update
7931# 2745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7932#endif
7933 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, l + 1) + &
7934 real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + &
7935 pres_r + f_r)*(1._wp/dz(l + 1)) + &
7936 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l + 1)), kind=stp)
7937
7938
7939# 2751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7940#if defined(MFC_OpenACC)
7941# 2751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7942!$acc atomic update
7943# 2751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7944#elif defined(MFC_OpenMP)
7945# 2751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7946!$omp atomic update
7947# 2751 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7948#endif
7949 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, l + 1) + &
7950 real(0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dz(l + 1)) + &
7951 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dz(l + 1)), kind=stp)
7952
7953
7954# 2756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7955#if defined(MFC_OpenACC)
7956# 2756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7957!$acc atomic update
7958# 2756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7959#elif defined(MFC_OpenMP)
7960# 2756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7961!$omp atomic update
7962# 2756 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7963#endif
7964 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, l + 1) + &
7965 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dz(l + 1)) + &
7966 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dz(l + 1)), kind=stp)
7967
7968
7969# 2761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7970#if defined(MFC_OpenACC)
7971# 2761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7972!$acc atomic update
7973# 2761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7974#elif defined(MFC_OpenMP)
7975# 2761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7976!$omp atomic update
7977# 2761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7978#endif
7979 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, l + 1) + &
7980 real(0.5_wp*dt*(vel_r(3)*(e_r + &
7981 pres_r + f_r))*(1._wp/dz(l + 1)) + &
7982 0.5_wp*dt*cfl*(e_r)*(1._wp/dz(l + 1)), kind=stp)
7983
7984
7985# 2767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7986#if defined(MFC_OpenACC)
7987# 2767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7988!$acc atomic update
7989# 2767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7990#elif defined(MFC_OpenMP)
7991# 2767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7992!$omp atomic update
7993# 2767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7994#endif
7995 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, l) - &
7996 real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + &
7997 pres_r + f_r)*(1._wp/dz(l)) + &
7998 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l)), kind=stp)
7999
8000
8001# 2773 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8002#if defined(MFC_OpenACC)
8003# 2773 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8004!$acc atomic update
8005# 2773 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8006#elif defined(MFC_OpenMP)
8007# 2773 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8008!$omp atomic update
8009# 2773 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8010#endif
8011 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - &
8012 real(0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dz(l)) + &
8013 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dz(l)), kind=stp)
8014
8015
8016# 2778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8017#if defined(MFC_OpenACC)
8018# 2778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8019!$acc atomic update
8020# 2778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8021#elif defined(MFC_OpenMP)
8022# 2778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8023!$omp atomic update
8024# 2778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8025#endif
8026 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, l) - &
8027 real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dz(l)) + &
8028 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dz(l)), kind=stp)
8029
8030
8031# 2783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8032#if defined(MFC_OpenACC)
8033# 2783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8034!$acc atomic update
8035# 2783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8036#elif defined(MFC_OpenMP)
8037# 2783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8038!$omp atomic update
8039# 2783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8040#endif
8041 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - &
8042 real(0.5_wp*dt*(vel_r(3)*(e_r + &
8043 pres_r + f_r))*(1._wp/dz(l)) + &
8044 0.5_wp*dt*cfl*(e_r)*(1._wp/dz(l)), kind=stp)
8045
8046 end do
8047 end do
8048 end do
8049
8050# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8051
8052# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8053#if defined(MFC_OpenACC)
8054# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8055!$acc end parallel loop
8056# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8057#elif defined(MFC_OpenMP)
8058# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8059
8060# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8061
8062# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8063!$omp end target teams loop
8064# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8065#endif
8066# 2792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8067
8068# 2794 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8069 end if
8070
8071 end subroutine s_igr_riemann_solver
8072
8073 !> @brief Computes pressure and maximum wavespeed from left and right reconstructed states for the IGR Riemann solver.
8074 subroutine s_get_derived_states(E_L, gamma_L, pi_inf_L, rho_L, vel_L, &
8075 E_R, gamma_R, pi_inf_R, rho_R, vel_R, &
8076 pres_L, pres_R, cfl)
8077
8078# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8079#if MFC_OpenACC
8080# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8081!$acc routine seq
8082# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8083#elif MFC_OpenMP
8084# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8085
8086# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8087
8088# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8089!$omp declare target device_type(any)
8090# 2802 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8091#endif
8092
8093 real(wp), intent(in) :: E_L, gamma_L, pi_inf_L, rho_L
8094 real(wp), intent(in) :: E_R, gamma_R, pi_inf_R, rho_R
8095 real(wp), dimension(num_dims), intent(in) :: vel_L, vel_R
8096 real(wp), intent(out) :: pres_L, pres_R, cfl
8097
8098 real(wp) :: a_L, a_R
8099
8100 if (num_dims == 2) then
8101 pres_l = (e_l - pi_inf_l - 0.5_wp*rho_l*(vel_l(1)**2._wp + vel_l(2)**2._wp))/gamma_l
8102 pres_r = (e_r - pi_inf_r - 0.5_wp*rho_r*(vel_r(1)**2._wp + vel_r(2)**2._wp))/gamma_r
8103
8104 if (igr_pres_lim) then
8105 pres_l = max(pres_l, 0._wp)
8106 pres_r = max(pres_r, 0._wp)
8107 end if
8108
8109 a_l = sqrt((pres_l*(1._wp/gamma_l + 1._wp) + pi_inf_l/gamma_l)/rho_l)
8110 a_r = sqrt((pres_r*(1._wp/gamma_r + 1._wp) + pi_inf_r/gamma_r)/rho_r)
8111
8112 cfl = max(sqrt(vel_l(1)**2._wp + vel_l(2)**2._wp), &
8113 sqrt(vel_r(1)**2._wp + vel_r(2)**2._wp)) + &
8114 max(a_l, a_r)
8115 elseif (num_dims == 3) then
8116# 2828 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8117 pres_l = (e_l - pi_inf_l - 0.5_wp*rho_l*(vel_l(1)**2._wp + vel_l(2)**2._wp + vel_l(3)**2._wp))/gamma_l
8118 pres_r = (e_r - pi_inf_r - 0.5_wp*rho_r*(vel_r(1)**2._wp + vel_r(2)**2._wp + vel_r(3)**2._wp))/gamma_r
8119
8120 if (igr_pres_lim) then
8121 pres_l = max(pres_l, 0._wp)
8122 pres_r = max(pres_r, 0._wp)
8123 end if
8124
8125 a_l = sqrt((pres_l*(1._wp/gamma_l + 1._wp) + pi_inf_l/gamma_l)/rho_l)
8126 a_r = sqrt((pres_r*(1._wp/gamma_r + 1._wp) + pi_inf_r/gamma_r)/rho_r)
8127
8128 cfl = max(sqrt(vel_l(1)**2._wp + vel_l(2)**2._wp + vel_l(3)**2._wp), &
8129 sqrt(vel_r(1)**2._wp + vel_r(2)**2._wp + vel_r(3)**2._wp)) + &
8130 max(a_l, a_r)
8131# 2843 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8132 end if
8133
8134 end subroutine s_get_derived_states
8135
8136 !> @brief Accumulates the IGR numerical flux divergence into the right-hand side along the specified coordinate direction.
8137 subroutine s_igr_flux_add(q_cons_vf, rhs_vf, flux_vf, idir)
8138
8139 type(scalar_field), &
8140 dimension(sys_size), &
8141 intent(inout) :: q_cons_vf, flux_vf, rhs_vf
8142
8143 integer, intent(in) :: idir
8144
8145 if (idir == 1) then
8146
8147# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8148
8149# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8150#if defined(MFC_OpenACC)
8151# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8152!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8153# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8154#elif defined(MFC_OpenMP)
8155# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8156
8157# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8158
8159# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8160
8161# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8162!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, l)
8163# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8164#endif
8165# 2857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8166
8167 do i = 1, sys_size
8168 do l = 0, p
8169 do k = 0, n
8170 do j = 0, m
8171 rhs_vf(i)%sf(j, k, l) = 1._wp/dx(j)* &
8172 (flux_vf(i)%sf(j - 1, k, l) &
8173 - flux_vf(i)%sf(j, k, l))
8174 end do
8175 end do
8176 end do
8177 end do
8178
8179# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8180
8181# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8182#if defined(MFC_OpenACC)
8183# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8184!$acc end parallel loop
8185# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8186#elif defined(MFC_OpenMP)
8187# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8188
8189# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8190
8191# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8192!$omp end target teams loop
8193# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8194#endif
8195# 2869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8196
8197 elseif (idir == 2) then
8198
8199# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8200
8201# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8202#if defined(MFC_OpenACC)
8203# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8204!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8205# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8206#elif defined(MFC_OpenMP)
8207# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8208
8209# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8210
8211# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8212
8213# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8214!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, l)
8215# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8216#endif
8217# 2871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8218
8219 do i = 1, sys_size
8220 do l = 0, p
8221 do k = 0, n
8222 do j = 0, m
8223 rhs_vf(i)%sf(j, k, l) = &
8224 rhs_vf(i)%sf(j, k, l) + 1._wp/dy(k)* &
8225 (flux_vf(i)%sf(j, k - 1, l) &
8226 - flux_vf(i)%sf(j, k, l))
8227 end do
8228 end do
8229 end do
8230 end do
8231
8232# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8233
8234# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8235#if defined(MFC_OpenACC)
8236# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8237!$acc end parallel loop
8238# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8239#elif defined(MFC_OpenMP)
8240# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8241
8242# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8243
8244# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8245!$omp end target teams loop
8246# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8247#endif
8248# 2884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8249
8250 elseif (idir == 3) then
8251
8252# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8253
8254# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8255#if defined(MFC_OpenACC)
8256# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8257!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8258# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8259#elif defined(MFC_OpenMP)
8260# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8261
8262# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8263
8264# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8265
8266# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8267!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, l)
8268# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8269#endif
8270# 2886 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8271
8272 do i = 1, sys_size
8273 do l = 0, p
8274 do k = 0, n
8275 do j = 0, m
8276 rhs_vf(i)%sf(j, k, l) = &
8277 rhs_vf(i)%sf(j, k, l) + 1._wp/dz(l)* &
8278 (flux_vf(i)%sf(j, k, l - 1) &
8279 - flux_vf(i)%sf(j, k, l))
8280 end do
8281 end do
8282 end do
8283 end do
8284
8285# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8286
8287# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8288#if defined(MFC_OpenACC)
8289# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8290!$acc end parallel loop
8291# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8292#elif defined(MFC_OpenMP)
8293# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8294
8295# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8296
8297# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8298!$omp end target teams loop
8299# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8300#endif
8301# 2899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8302
8303 end if
8304
8305 end subroutine s_igr_flux_add
8306
8307 !> @brief Deallocates all arrays and GPU resources allocated by the IGR module.
8309
8310 if (viscous) then
8311#ifdef MFC_DEBUG
8312# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8313 block
8314# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8315 use iso_fortran_env, only: output_unit
8316# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8317
8318# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8319 print *, 'm_igr.fpp:2908: ', '@:DEALLOCATE(Res_igr)'
8320# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8321
8322# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8323 call flush (output_unit)
8324# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8325 end block
8326# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8327#endif
8328# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8329
8330# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8331#if defined(MFC_OpenACC)
8332# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8333!$acc exit data delete(Res_igr)
8334# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8335#elif defined(MFC_OpenMP)
8336# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8337!$omp target exit data map(release:Res_igr)
8338# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8339#endif
8340# 2908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8341 deallocate (res_igr)
8342 end if
8343
8344#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
8345#ifdef MFC_DEBUG
8346# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8347 block
8348# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8349 use iso_fortran_env, only: output_unit
8350# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8351
8352# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8353 print *, 'm_igr.fpp:2912: ', '@:DEALLOCATE(jac, jac_rhs)'
8354# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8355
8356# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8357 call flush (output_unit)
8358# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8359 end block
8360# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8361#endif
8362# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8363
8364# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8365#if defined(MFC_OpenACC)
8366# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8367!$acc exit data delete(jac, jac_rhs)
8368# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8369#elif defined(MFC_OpenMP)
8370# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8371!$omp target exit data map(release:jac, jac_rhs)
8372# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8373#endif
8374# 2912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8375 deallocate (jac, jac_rhs)
8376
8377 if (igr_iter_solver == 1) then ! Jacobi iteration
8378#ifdef MFC_DEBUG
8379# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8380 block
8381# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8382 use iso_fortran_env, only: output_unit
8383# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8384
8385# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8386 print *, 'm_igr.fpp:2915: ', '@:DEALLOCATE(jac_old)'
8387# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8388
8389# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8390 call flush (output_unit)
8391# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8392 end block
8393# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8394#endif
8395# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8396
8397# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8398#if defined(MFC_OpenACC)
8399# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8400!$acc exit data delete(jac_old)
8401# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8402#elif defined(MFC_OpenMP)
8403# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8404!$omp target exit data map(release:jac_old)
8405# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8406#endif
8407# 2915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8408 deallocate (jac_old)
8409 end if
8410#else
8411 if (nv_uvm_temp_on_gpu(1) == 1) then
8412#ifdef MFC_DEBUG
8413# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8414 block
8415# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8416 use iso_fortran_env, only: output_unit
8417# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8418
8419# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8420 print *, 'm_igr.fpp:2919: ', '@:DEALLOCATE(jac)'
8421# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8422
8423# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8424 call flush (output_unit)
8425# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8426 end block
8427# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8428#endif
8429# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8430
8431# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8432#if defined(MFC_OpenACC)
8433# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8434!$acc exit data delete(jac)
8435# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8436#elif defined(MFC_OpenMP)
8437# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8438!$omp target exit data map(release:jac)
8439# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8440#endif
8441# 2919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8442 deallocate (jac)
8443 else
8444 nullify (jac)
8445 deallocate (jac_host)
8446 end if
8447
8448 if (nv_uvm_temp_on_gpu(2) == 1) then
8449#ifdef MFC_DEBUG
8450# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8451 block
8452# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8453 use iso_fortran_env, only: output_unit
8454# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8455
8456# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8457 print *, 'm_igr.fpp:2926: ', '@:DEALLOCATE(jac_rhs)'
8458# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8459
8460# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8461 call flush (output_unit)
8462# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8463 end block
8464# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8465#endif
8466# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8467
8468# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8469#if defined(MFC_OpenACC)
8470# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8471!$acc exit data delete(jac_rhs)
8472# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8473#elif defined(MFC_OpenMP)
8474# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8475!$omp target exit data map(release:jac_rhs)
8476# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8477#endif
8478# 2926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8479 deallocate (jac_rhs)
8480 else
8481 nullify (jac_rhs)
8482 deallocate (jac_rhs_host)
8483 end if
8484
8485 if (igr_iter_solver == 1) then ! Jacobi iteration
8486 if (nv_uvm_temp_on_gpu(3) == 1) then
8487#ifdef MFC_DEBUG
8488# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8489 block
8490# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8491 use iso_fortran_env, only: output_unit
8492# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8493
8494# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8495 print *, 'm_igr.fpp:2934: ', '@:DEALLOCATE(jac_old)'
8496# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8497
8498# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8499 call flush (output_unit)
8500# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8501 end block
8502# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8503#endif
8504# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8505
8506# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8507#if defined(MFC_OpenACC)
8508# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8509!$acc exit data delete(jac_old)
8510# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8511#elif defined(MFC_OpenMP)
8512# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8513!$omp target exit data map(release:jac_old)
8514# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8515#endif
8516# 2934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8517 deallocate (jac_old)
8518 else
8519 nullify (jac_old)
8520 deallocate (jac_old_host)
8521 end if
8522 end if
8523#endif
8524
8525# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8526#ifdef MFC_DEBUG
8527# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8528 block
8529# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8530 use iso_fortran_env, only: output_unit
8531# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8532
8533# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8534 print *, 'm_igr.fpp:2943: ', '@:DEALLOCATE(coeff_L, coeff_R)'
8535# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8536
8537# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8538 call flush (output_unit)
8539# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8540 end block
8541# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8542#endif
8543# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8544
8545# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8546#if defined(MFC_OpenACC)
8547# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8548!$acc exit data delete(coeff_L, coeff_R)
8549# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8550#elif defined(MFC_OpenMP)
8551# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8552!$omp target exit data map(release:coeff_L, coeff_R)
8553# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8554#endif
8555# 2943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8556 deallocate (coeff_l, coeff_r)
8557# 2945 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8558
8559 end subroutine s_finalize_igr_module
8560
8561end module m_igr
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer, dimension(2) re_size
logical viscous
Viscous effects.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Database of the physical parameters of each of the fluids that is present in the flow....
integer, dimension(:, :), allocatable re_idx
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
Iterative ghost rasterization (IGR) for sharp immersed boundary treatment.
integer vidxe
subroutine, public s_initialize_igr_module()
Allocates and initializes arrays, coefficients, and GPU data structures for the implicit gradient rec...
integer(kind=8) q
integer(kind=8) j
real(wp), dimension(:), allocatable coeff_l
subroutine, public s_igr_flux_add(q_cons_vf, rhs_vf, flux_vf, idir)
Accumulates the IGR numerical flux divergence into the right-hand side along the specified coordinate...
integer(kind=8) i
integer(kind=8) l
type(scalar_field), dimension(1) jac_sf
subroutine, public s_igr_sigma_x(q_cons_vf, rhs_vf)
Computes the IGR viscous stress contribution in the x-direction and accumulates it into the RHS.
integer vidxb
real(wp), dimension(:, :, :), allocatable jac_rhs
integer(kind=8) r
integer(kind=8) k
real(wp), dimension(:, :, :), allocatable, target jac
subroutine s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, e_r, gamma_r, pi_inf_r, rho_r, vel_r, pres_l, pres_r, cfl)
Computes pressure and maximum wavespeed from left and right reconstructed states for the IGR Riemann ...
subroutine, public s_finalize_igr_module()
Deallocates all arrays and GPU resources allocated by the IGR module.
real(wp), dimension(:), allocatable coeff_r
subroutine, public s_igr_riemann_solver(q_cons_vf, rhs_vf, idir)
Evaluates the approximate Riemann solver for the IGR scheme along a given coordinate direction.
real(wp) alf_igr
subroutine, public s_igr_iterative_solve(q_cons_vf, bc_type, t_step)
Iteratively solves the implicit gradient reconstruction system using Jacobi or Gauss-Seidel relaxatio...
real(wp), dimension(:, :), allocatable res_igr
real(wp), dimension(:, :, :), allocatable jac_old
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Derived type annexing a scalar field (SF).