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# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 244 "/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# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 377 "/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# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 311 "/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! GPU parallel region (scalar reductions, maxval/minval)
238# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240! GPU parallel loop over threads (most common GPU macro)
241# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242
243! Required closing for GPU_PARALLEL_LOOP
244# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246! Mark routine for device compilation
247# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249! Declare device-resident data
250# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252! Inner loop within a GPU parallel region
253# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255! Scoped GPU data region
256# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258! Host code with device pointers (for MPI with GPU buffers)
259# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261! Allocate device memory (unscoped)
262# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264! Free device memory
265# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267! Atomic operation on device
268# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270! End atomic capture block
271# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273! Copy data between host and device
274# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275
276! Synchronization barrier
277# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! Import GPU library module (openacc or omp_lib)
280# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Emit code only for AMD compiler
283# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Emit code for non-Cray compilers
286# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Emit code only for Cray compiler
289# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Emit code for non-NVIDIA compilers
292# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296! New line at end of file is required for FYPP
297# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
298
299# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
300
301! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
302! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
303! example see misc/nvidia_uvm/bind.sh. NVIDIA unified memory page placement hint
304# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305
306! Allocate and create GPU device memory
307# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308
309! Free GPU device memory and deallocate
310# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311
312! Cray-specific GPU pointer setup for vector fields
313# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314
315! Cray-specific GPU pointer setup for scalar fields
316# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317
318! Cray-specific GPU pointer setup for acoustic source spatials
319# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320
321# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322
323# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
324! New line at end of file is required for FYPP
325# 7 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp" 2
326
327!> @brief Iterative ghost rasterization (IGR) for sharp immersed boundary treatment
328module m_igr
329
333 use m_mpi_proxy
334 use m_helper
336
337 implicit none
338
341
342 !> @cond
343#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
344 integer, dimension(3) :: nv_uvm_temp_on_gpu
345 real(wp), pointer, contiguous, dimension(:,:,:) :: jac, jac_rhs, jac_old
346 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_host
347 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_rhs_host
348 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_old_host
349#else
350 !> @endcond
351 real(wp), allocatable, target, dimension(:,:,:) :: jac
352 real(wp), allocatable, dimension(:,:,:) :: jac_rhs, jac_old
353
354# 34 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
355#if defined(MFC_OpenACC)
356# 34 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
357!$acc declare create(jac, jac_rhs, jac_old)
358# 34 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
359#elif defined(MFC_OpenMP)
360# 34 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
361!$omp declare target (jac, jac_rhs, jac_old)
362# 34 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
363#endif
364 !> @cond
365#endif
366 !> @endcond
367 type(scalar_field), dimension(1) :: jac_sf
368
369# 39 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
370#if defined(MFC_OpenACC)
371# 39 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
372!$acc declare create(jac_sf)
373# 39 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
374#elif defined(MFC_OpenMP)
375# 39 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
376!$omp declare target (jac_sf)
377# 39 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
378#endif
379
380 real(wp), allocatable, dimension(:,:) :: res_igr
381
382# 42 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
383#if defined(MFC_OpenACC)
384# 42 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
385!$acc declare create(Res_igr)
386# 42 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
387#elif defined(MFC_OpenMP)
388# 42 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
389!$omp declare target (Res_igr)
390# 42 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
391#endif
392
393 real(wp) :: alf_igr
394
395# 45 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
396#if defined(MFC_OpenACC)
397# 45 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
398!$acc declare create(alf_igr)
399# 45 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
400#elif defined(MFC_OpenMP)
401# 45 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
402!$omp declare target (alf_igr)
403# 45 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
404#endif
405
406# 48 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
407 integer :: vidxb, vidxe
408
409# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
410#if defined(MFC_OpenACC)
411# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
412!$acc declare create(vidxb, vidxe)
413# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
414#elif defined(MFC_OpenMP)
415# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
416!$omp declare target (vidxb, vidxe)
417# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
418#endif
419
420 real(wp), allocatable, dimension(:) :: coeff_l, coeff_r
421
422# 52 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
423#if defined(MFC_OpenACC)
424# 52 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
425!$acc declare create(coeff_L, coeff_R)
426# 52 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
427#elif defined(MFC_OpenMP)
428# 52 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
429!$omp declare target (coeff_L, coeff_R)
430# 52 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
431#endif
432# 82 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
433
434 integer(kind=8) :: i, j, k, l, q, r
435
436contains
437
438 !> Initialize the IGR module
440
441 if (viscous) then
442#ifdef MFC_DEBUG
443# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
444 block
445# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
446 use iso_fortran_env, only: output_unit
447# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
448
449# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
450 print *, 'm_igr.fpp:91: ', '@:ALLOCATE(Res_igr(1:2, 1:maxval(Re_size)))'
451# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
452
453# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
454 call flush (output_unit)
455# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
456 end block
457# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
458#endif
459# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
460 allocate (res_igr(1:2, 1:maxval(re_size)))
461# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
462
463# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
464
465# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
466#if defined(MFC_OpenACC)
467# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
468!$acc enter data create(Res_igr)
469# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
470#elif defined(MFC_OpenMP)
471# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
472!$omp target enter data map(always,alloc:Res_igr)
473# 91 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
474#endif
475 do i = 1, 2
476 do j = 1, re_size(i)
477 res_igr(i, j) = fluid_pp(re_idx(i, j))%Re(i)
478 end do
479 end do
480
481# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
482#if defined(MFC_OpenACC)
483# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
484!$acc update device(Res_igr, Re_idx, Re_size)
485# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
486#elif defined(MFC_OpenMP)
487# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
488!$omp target update to(Res_igr, Re_idx, Re_size)
489# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
490#endif
491#ifdef MFC_SIMULATION
492# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
493#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
494# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
495 block
496# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
497 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
498# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
499 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
500# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
501#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
502# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
503 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
504# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
505#else
506# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
507 use cuda_runtime_api
508# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
509#endif
510# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
511 integer :: istat
512# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
513
514# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
515 if (nv_uvm_pref_gpu) then
516# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
517 ! print*, "Moving Res_igr to GPU => ", SHAPE(Res_igr) set preferred location GPU
518# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
519 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetpreferredlocation, 0)
520# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
521 if (istat /= cudasuccess) then
522# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
523 write (*, "('Error code: ',I0, ': ')") istat
524# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
525 ! write(*,*) cudaGetErrorString(istat)
526# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
527 end if
528# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
529 ! set accessed by CPU
530# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
531 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetaccessedby, cudacpudeviceid)
532# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
533 if (istat /= cudasuccess) then
534# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
535 write (*, "('Error code: ',I0, ': ')") istat
536# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
537 ! write(*,*) cudaGetErrorString(istat)
538# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
539 end if
540# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
541 ! prefetch to GPU - physically populate memory pages
542# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
543 istat = cudamemprefetchasync(c_devloc(res_igr), sizeof(res_igr), 0, 0)
544# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
545 if (istat /= cudasuccess) then
546# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
547 write (*, "('Error code: ',I0, ': ')") istat
548# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
549 ! write(*,*) cudaGetErrorString(istat)
550# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
551 end if
552# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
553 end if
554# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
555 end block
556# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
557#endif
558# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
559#endif
560#ifdef MFC_SIMULATION
561# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
562#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
563# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
564 block
565# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
566 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
567# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
568 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
569# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
570#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
571# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
572 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
573# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
574#else
575# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
576 use cuda_runtime_api
577# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
578#endif
579# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
580 integer :: istat
581# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
582
583# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
584 if (nv_uvm_pref_gpu) then
585# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
586 ! print*, "Moving Re_idx to GPU => ", SHAPE(Re_idx) set preferred location GPU
587# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
588 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetpreferredlocation, 0)
589# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
590 if (istat /= cudasuccess) then
591# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
592 write (*, "('Error code: ',I0, ': ')") istat
593# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
594 ! write(*,*) cudaGetErrorString(istat)
595# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
596 end if
597# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
598 ! set accessed by CPU
599# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
600 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetaccessedby, cudacpudeviceid)
601# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
602 if (istat /= cudasuccess) then
603# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
604 write (*, "('Error code: ',I0, ': ')") istat
605# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
606 ! write(*,*) cudaGetErrorString(istat)
607# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
608 end if
609# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
610 ! prefetch to GPU - physically populate memory pages
611# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
612 istat = cudamemprefetchasync(c_devloc(re_idx), sizeof(re_idx), 0, 0)
613# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
614 if (istat /= cudasuccess) then
615# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
616 write (*, "('Error code: ',I0, ': ')") istat
617# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
618 ! write(*,*) cudaGetErrorString(istat)
619# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
620 end if
621# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
622 end if
623# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
624 end block
625# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
626#endif
627# 99 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
628#endif
629 end if
630
631#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
632#ifdef MFC_DEBUG
633# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
634 block
635# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
636 use iso_fortran_env, only: output_unit
637# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
638
639# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
640 print *, 'm_igr.fpp:103: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
641# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
642
643# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
644 call flush (output_unit)
645# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
646 end block
647# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
648#endif
649# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
650 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
651# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
652
653# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
654
655# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
656#if defined(MFC_OpenACC)
657# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
658!$acc enter data create(jac)
659# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
660#elif defined(MFC_OpenMP)
661# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
662!$omp target enter data map(always,alloc:jac)
663# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
664#endif
665#ifdef MFC_DEBUG
666# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
667 block
668# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
669 use iso_fortran_env, only: output_unit
670# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
671
672# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
673 print *, 'm_igr.fpp:104: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
674# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
675
676# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
677 call flush (output_unit)
678# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
679 end block
680# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
681#endif
682# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
683 allocate (jac_rhs(-1:m,-1:n,-1:p))
684# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
685
686# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
687
688# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
689#if defined(MFC_OpenACC)
690# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
691!$acc enter data create(jac_rhs)
692# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
693#elif defined(MFC_OpenMP)
694# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
695!$omp target enter data map(always,alloc:jac_rhs)
696# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
697#endif
698
699 if (igr_iter_solver == 1) then ! Jacobi iteration
700#ifdef MFC_DEBUG
701# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
702 block
703# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
704 use iso_fortran_env, only: output_unit
705# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
706
707# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
708 print *, 'm_igr.fpp:107: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
709# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
710
711# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
712 call flush (output_unit)
713# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
714 end block
715# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
716#endif
717# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
718 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
719# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
720
721# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
722
723# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
724#if defined(MFC_OpenACC)
725# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
726!$acc enter data create(jac_old)
727# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
728#elif defined(MFC_OpenMP)
729# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
730!$omp target enter data map(always,alloc:jac_old)
731# 107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
732#endif
733 end if
734#else
735 ! create map
736 nv_uvm_temp_on_gpu(1:3) = 0
737 nv_uvm_temp_on_gpu(1:nv_uvm_igr_temps_on_gpu) = 1
738
739 if (nv_uvm_temp_on_gpu(1) == 1) then
740#ifdef MFC_DEBUG
741# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
742 block
743# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
744 use iso_fortran_env, only: output_unit
745# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
746
747# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
748 print *, 'm_igr.fpp:115: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
749# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
750
751# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
752 call flush (output_unit)
753# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
754 end block
755# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
756#endif
757# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
758 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
759# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
760
761# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
762
763# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
764#if defined(MFC_OpenACC)
765# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
766!$acc enter data create(jac)
767# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
768#elif defined(MFC_OpenMP)
769# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
770!$omp target enter data map(always,alloc:jac)
771# 115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
772#endif
773#ifdef MFC_SIMULATION
774# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
775#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
776# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
777 block
778# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
779 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
780# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
781 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
782# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
783#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
784# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
785 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
786# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
787#else
788# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
789 use cuda_runtime_api
790# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
791#endif
792# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
793 integer :: istat
794# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
795
796# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
797 if (nv_uvm_pref_gpu) then
798# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
799 ! print*, "Moving jac to GPU => ", SHAPE(jac) set preferred location GPU
800# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
801 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetpreferredlocation, 0)
802# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
803 if (istat /= cudasuccess) then
804# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
805 write (*, "('Error code: ',I0, ': ')") istat
806# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
807 ! write(*,*) cudaGetErrorString(istat)
808# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
809 end if
810# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
811 ! set accessed by CPU
812# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
813 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetaccessedby, cudacpudeviceid)
814# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
815 if (istat /= cudasuccess) then
816# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
817 write (*, "('Error code: ',I0, ': ')") istat
818# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
819 ! write(*,*) cudaGetErrorString(istat)
820# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
821 end if
822# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
823 ! prefetch to GPU - physically populate memory pages
824# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
825 istat = cudamemprefetchasync(c_devloc(jac), sizeof(jac), 0, 0)
826# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
827 if (istat /= cudasuccess) then
828# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
829 write (*, "('Error code: ',I0, ': ')") istat
830# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
831 ! write(*,*) cudaGetErrorString(istat)
832# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
833 end if
834# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
835 end if
836# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
837 end block
838# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
839#endif
840# 116 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
841#endif
842 else
843 allocate (jac_host(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end))
844
845 jac(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end) => jac_host(:,:,:)
846 end if
847
848 if (nv_uvm_temp_on_gpu(2) == 1) then
849#ifdef MFC_DEBUG
850# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
851 block
852# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
853 use iso_fortran_env, only: output_unit
854# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
855
856# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
857 print *, 'm_igr.fpp:124: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
858# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
859
860# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
861 call flush (output_unit)
862# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
863 end block
864# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
865#endif
866# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
867 allocate (jac_rhs(-1:m,-1:n,-1:p))
868# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
869
870# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
871
872# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
873#if defined(MFC_OpenACC)
874# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
875!$acc enter data create(jac_rhs)
876# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
877#elif defined(MFC_OpenMP)
878# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
879!$omp target enter data map(always,alloc:jac_rhs)
880# 124 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
881#endif
882#ifdef MFC_SIMULATION
883# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
884#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
885# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
886 block
887# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
888 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
889# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
890 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
891# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
892#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
893# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
894 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
895# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
896#else
897# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
898 use cuda_runtime_api
899# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
900#endif
901# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
902 integer :: istat
903# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
904
905# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
906 if (nv_uvm_pref_gpu) then
907# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
908 ! print*, "Moving jac_rhs to GPU => ", SHAPE(jac_rhs) set preferred location GPU
909# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
910 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetpreferredlocation, 0)
911# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
912 if (istat /= cudasuccess) then
913# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
914 write (*, "('Error code: ',I0, ': ')") istat
915# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
916 ! write(*,*) cudaGetErrorString(istat)
917# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
918 end if
919# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
920 ! set accessed by CPU
921# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
922 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetaccessedby, cudacpudeviceid)
923# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
924 if (istat /= cudasuccess) then
925# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
926 write (*, "('Error code: ',I0, ': ')") istat
927# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
928 ! write(*,*) cudaGetErrorString(istat)
929# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
930 end if
931# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
932 ! prefetch to GPU - physically populate memory pages
933# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
934 istat = cudamemprefetchasync(c_devloc(jac_rhs), sizeof(jac_rhs), 0, 0)
935# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
936 if (istat /= cudasuccess) then
937# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
938 write (*, "('Error code: ',I0, ': ')") istat
939# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
940 ! write(*,*) cudaGetErrorString(istat)
941# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
942 end if
943# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
944 end if
945# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
946 end block
947# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
948#endif
949# 125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
950#endif
951 else
952 allocate (jac_rhs_host(-1:m,-1:n,-1:p))
953 jac_rhs(-1:m,-1:n,-1:p) => jac_rhs_host(:,:,:)
954 end if
955
956 if (igr_iter_solver == 1) then ! Jacobi iteration
957 if (nv_uvm_temp_on_gpu(3) == 1) then
958#ifdef MFC_DEBUG
959# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
960 block
961# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
962 use iso_fortran_env, only: output_unit
963# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
964
965# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
966 print *, 'm_igr.fpp:133: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
967# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
968
969# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
970 call flush (output_unit)
971# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
972 end block
973# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
974#endif
975# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
976 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
977# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
978
979# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
980
981# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
982#if defined(MFC_OpenACC)
983# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
984!$acc enter data create(jac_old)
985# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
986#elif defined(MFC_OpenMP)
987# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
988!$omp target enter data map(always,alloc:jac_old)
989# 133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
990#endif
991#ifdef MFC_SIMULATION
992# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
993#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
994# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
995 block
996# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
997 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
998# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
999 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
1000# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1001#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
1002# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1003 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
1004# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1005#else
1006# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1007 use cuda_runtime_api
1008# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1009#endif
1010# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1011 integer :: istat
1012# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1013
1014# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1015 if (nv_uvm_pref_gpu) then
1016# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1017 ! print*, "Moving jac_old to GPU => ", SHAPE(jac_old) set preferred location GPU
1018# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1019 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetpreferredlocation, 0)
1020# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1021 if (istat /= cudasuccess) then
1022# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1023 write (*, "('Error code: ',I0, ': ')") istat
1024# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1025 ! write(*,*) cudaGetErrorString(istat)
1026# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1027 end if
1028# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1029 ! set accessed by CPU
1030# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1031 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetaccessedby, cudacpudeviceid)
1032# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1033 if (istat /= cudasuccess) then
1034# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1035 write (*, "('Error code: ',I0, ': ')") istat
1036# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1037 ! write(*,*) cudaGetErrorString(istat)
1038# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1039 end if
1040# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1041 ! prefetch to GPU - physically populate memory pages
1042# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1043 istat = cudamemprefetchasync(c_devloc(jac_old), sizeof(jac_old), 0, 0)
1044# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1045 if (istat /= cudasuccess) then
1046# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1047 write (*, "('Error code: ',I0, ': ')") istat
1048# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1049 ! write(*,*) cudaGetErrorString(istat)
1050# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1051 end if
1052# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1053 end if
1054# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1055 end block
1056# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1057#endif
1058# 134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1059#endif
1060 else
1061 allocate (jac_old_host(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end))
1062
1063 jac_old(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
1064 & idwbuff(3)%beg:idwbuff(3)%end) => jac_old_host(:,:,:)
1065 end if
1066 end if
1067#endif
1068
1069
1070# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1071
1072# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1073#if defined(MFC_OpenACC)
1074# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1075!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1076# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1077#elif defined(MFC_OpenMP)
1078# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1079
1080# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1081
1082# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1083
1084# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1085!$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)
1086# 144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1087#endif
1088 do l = idwbuff(3)%beg, idwbuff(3)%end
1089 do k = idwbuff(2)%beg, idwbuff(2)%end
1090 do j = idwbuff(1)%beg, idwbuff(1)%end
1091 jac(j, k, l) = 0._stp
1092 if (igr_iter_solver == 1) jac_old(j, k, l) = 0._stp
1093 end do
1094 end do
1095 end do
1096
1097# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1098#if defined(MFC_OpenACC)
1099# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1100!$acc end parallel loop
1101# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1102#elif defined(MFC_OpenMP)
1103# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1104
1105# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1106!$omp end target teams loop
1107# 153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1108#endif
1109
1110 if (p == 0) then
1111 alf_igr = alf_factor*max(dx(1), dy(1))**2._wp
1112 else
1113 alf_igr = alf_factor*max(dx(1), dy(1), dz(1))**2._wp
1114 end if
1115
1116# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1117#if defined(MFC_OpenACC)
1118# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1119!$acc update device(alf_igr)
1120# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1121#elif defined(MFC_OpenMP)
1122# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1123!$omp target update to(alf_igr)
1124# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1125#endif
1126
1127# 163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1128 if (igr_order == 3) then
1129 vidxb = -1; vidxe = 2
1130
1131# 165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1132#if defined(MFC_OpenACC)
1133# 165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1134!$acc update device(vidxb, vidxe)
1135# 165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1136#elif defined(MFC_OpenMP)
1137# 165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1138!$omp target update to(vidxb, vidxe)
1139# 165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1140#endif
1141
1142#ifdef MFC_DEBUG
1143# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1144 block
1145# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1146 use iso_fortran_env, only: output_unit
1147# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1148
1149# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1150 print *, 'm_igr.fpp:167: ', '@:ALLOCATE(coeff_L(0:2))'
1151# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1152
1153# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1154 call flush (output_unit)
1155# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1156 end block
1157# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1158#endif
1159# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1160 allocate (coeff_l(0:2))
1161# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1162
1163# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1164
1165# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1166#if defined(MFC_OpenACC)
1167# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1168!$acc enter data create(coeff_L)
1169# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1170#elif defined(MFC_OpenMP)
1171# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1172!$omp target enter data map(always,alloc:coeff_L)
1173# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1174#endif
1175 coeff_l(0) = (2._wp/6._wp)
1176 coeff_l(1) = (5._wp/6._wp)
1177 coeff_l(2) = (-1._wp/6._wp)
1178
1179#ifdef MFC_DEBUG
1180# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1181 block
1182# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1183 use iso_fortran_env, only: output_unit
1184# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1185
1186# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1187 print *, 'm_igr.fpp:172: ', '@:ALLOCATE(coeff_R(-1:1))'
1188# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1189
1190# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1191 call flush (output_unit)
1192# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1193 end block
1194# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1195#endif
1196# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1197 allocate (coeff_r(-1:1))
1198# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1199
1200# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1201
1202# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1203#if defined(MFC_OpenACC)
1204# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1205!$acc enter data create(coeff_R)
1206# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1207#elif defined(MFC_OpenMP)
1208# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1209!$omp target enter data map(always,alloc:coeff_R)
1210# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1211#endif
1212 coeff_r(1) = (2._wp/6._wp)
1213 coeff_r(0) = (5._wp/6._wp)
1214 coeff_r(-1) = (-1._wp/6._wp)
1215 else if (igr_order == 5) then
1216 vidxb = -2; vidxe = 3
1217
1218# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1219#if defined(MFC_OpenACC)
1220# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1221!$acc update device(vidxb, vidxe)
1222# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1223#elif defined(MFC_OpenMP)
1224# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1225!$omp target update to(vidxb, vidxe)
1226# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1227#endif
1228
1229#ifdef MFC_DEBUG
1230# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1231 block
1232# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1233 use iso_fortran_env, only: output_unit
1234# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1235
1236# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1237 print *, 'm_igr.fpp:180: ', '@:ALLOCATE(coeff_L(-1:3))'
1238# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1239
1240# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1241 call flush (output_unit)
1242# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1243 end block
1244# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1245#endif
1246# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1247 allocate (coeff_l(-1:3))
1248# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1249
1250# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1251
1252# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1253#if defined(MFC_OpenACC)
1254# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1255!$acc enter data create(coeff_L)
1256# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1257#elif defined(MFC_OpenMP)
1258# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1259!$omp target enter data map(always,alloc:coeff_L)
1260# 180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1261#endif
1262 coeff_l(-1) = (-3._wp/60._wp)
1263 coeff_l(0) = (27._wp/60._wp)
1264 coeff_l(1) = (47._wp/60._wp)
1265 coeff_l(2) = (-13._wp/60._wp)
1266 coeff_l(3) = (2._wp/60._wp)
1267
1268#ifdef MFC_DEBUG
1269# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1270 block
1271# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1272 use iso_fortran_env, only: output_unit
1273# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1274
1275# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1276 print *, 'm_igr.fpp:187: ', '@:ALLOCATE(coeff_R(-2:2))'
1277# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1278
1279# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1280 call flush (output_unit)
1281# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1282 end block
1283# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1284#endif
1285# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1286 allocate (coeff_r(-2:2))
1287# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1288
1289# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1290
1291# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1292#if defined(MFC_OpenACC)
1293# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1294!$acc enter data create(coeff_R)
1295# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1296#elif defined(MFC_OpenMP)
1297# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1298!$omp target enter data map(always,alloc:coeff_R)
1299# 187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1300#endif
1301 coeff_r(2) = (-3._wp/60._wp)
1302 coeff_r(1) = (27._wp/60._wp)
1303 coeff_r(0) = (47._wp/60._wp)
1304 coeff_r(-1) = (-13._wp/60._wp)
1305 coeff_r(-2) = (2._wp/60._wp)
1306 end if
1307
1308
1309# 195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1310#if defined(MFC_OpenACC)
1311# 195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1312!$acc update device(coeff_L)
1313# 195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1314#elif defined(MFC_OpenMP)
1315# 195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1316!$omp target update to(coeff_L)
1317# 195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1318#endif
1319
1320# 196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1321#if defined(MFC_OpenACC)
1322# 196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1323!$acc update device(coeff_R)
1324# 196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1325#elif defined(MFC_OpenMP)
1326# 196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1327!$omp target update to(coeff_R)
1328# 196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1329#endif
1330# 203 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1331 jac_sf(1)%sf => jac
1332
1333# 204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1334#if defined(MFC_OpenACC)
1335# 204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1336!$acc enter data copyin(jac_sf(1)%sf)
1337# 204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1338#elif defined(MFC_OpenMP)
1339# 204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1340!$omp target enter data map(to:jac_sf(1)%sf)
1341# 204 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1342#endif
1343
1344# 205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1345#if defined(MFC_OpenACC)
1346# 205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1347!$acc enter data attach(jac_sf(1)%sf)
1348# 205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1349#elif defined(MFC_OpenMP)
1350# 205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1351!$omp target enter data map(always,to:jac_sf(1)%sf)
1352# 205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1353#endif
1354
1355 end subroutine s_initialize_igr_module
1356
1357 !> Iteratively solve the implicit gradient reconstruction system
1358 subroutine s_igr_iterative_solve(q_cons_vf, bc_type, t_step)
1359
1360#ifdef _CRAYFTN
1361 ! DIR$ OPTIMIZE (-haggress)
1362#endif
1363 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1364 type(integer_field), dimension(1:num_dims,1:2), intent(in) :: bc_type
1365 integer, intent(in) :: t_step
1366 real(wp) :: rho_rx, rho_ry, rho_rz, rho_lx, rho_ly, rho_lz
1367 real(wp) :: fd_coeff
1368 integer :: num_iters
1369
1370 if (t_step == t_step_start) then
1371 num_iters = num_igr_warm_start_iters
1372 else
1373 num_iters = num_igr_iters
1374 end if
1375
1376 do q = 1, num_iters
1377
1378# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1379
1380# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1381#if defined(MFC_OpenACC)
1382# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1383!$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)
1384# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1385#elif defined(MFC_OpenMP)
1386# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1387
1388# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1389
1390# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1391
1392# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1393!$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)
1394# 229 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1395#endif
1396 do l = 0, p
1397 do k = 0, n
1398 do j = 0, m
1399 rho_lx = 0._wp
1400 rho_rx = 0._wp
1401 rho_ly = 0._wp
1402 rho_ry = 0._wp
1403 rho_lz = 0._wp
1404 rho_rz = 0._wp
1405 fd_coeff = 0._wp
1406
1407
1408# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1409#if defined(MFC_OpenACC)
1410# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1411!$acc loop seq
1412# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1413#elif defined(MFC_OpenMP)
1414# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1415
1416# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1417#endif
1418 do i = 1, num_fluids
1419 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
1420 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
1421 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
1422 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
1423 if (p > 0) then
1424 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
1425 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
1426 end if
1427 fd_coeff = fd_coeff + q_cons_vf(i)%sf(j, k, l)
1428 end do
1429
1430 fd_coeff = 1._wp/fd_coeff + alf_igr*((1._wp/dx(j)**2._wp)*(1._wp/rho_lx + 1._wp/rho_rx) + (1._wp/dy(k) &
1431 & **2._wp)*(1._wp/rho_ly + 1._wp/rho_ry))
1432
1433 if (num_dims == 3) then
1434 fd_coeff = fd_coeff + alf_igr*(1._wp/dz(l)**2._wp)*(1._wp/rho_lz + 1._wp/rho_rz)
1435 end if
1436
1437 if (igr_iter_solver == 1) then ! Jacobi iteration
1438 if (num_dims == 3) then
1439 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac_old(j - 1, k, &
1440 & l)/rho_lx + jac_old(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac_old(j, k - 1, &
1441 & l)/rho_ly + jac_old(j, k + 1, l)/rho_ry) + (1._wp/dz(l)**2._wp)*(jac_old(j, k, &
1442 & l - 1)/rho_lz + jac_old(j, k, l + 1)/rho_rz)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, &
1443 & kind=stp)
1444 else
1445 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(real(jac_old(j - 1, k, l), &
1446 & kind=wp)/rho_lx + real(jac_old(j + 1, k, l), &
1447 & kind=wp)/rho_rx) + (1._wp/dy(k)**2._wp)*(real(jac_old(j, k - 1, l), &
1448 & kind=wp)/rho_ly + real(jac_old(j, k + 1, l), kind=wp)/rho_ry)) + real(jac_rhs(j, k, l), &
1449 & kind=wp)/fd_coeff, kind=stp)
1450 end if
1451 else ! Gauss Seidel iteration
1452 if (num_dims == 3) then
1453 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac(j - 1, k, &
1454 & l)/rho_lx + jac(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac(j, k - 1, &
1455 & l)/rho_ly + jac(j, k + 1, l)/rho_ry) + (1._wp/dz(l)**2._wp)*(jac(j, k, &
1456 & l - 1)/rho_lz + jac(j, k, l + 1)/rho_rz)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, &
1457 & kind=stp)
1458 else
1459 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac(j - 1, k, &
1460 & l)/rho_lx + jac(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac(j, k - 1, &
1461 & l)/rho_ly + jac(j, k + 1, l)/rho_ry)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1462 end if
1463 end if
1464 end do
1465 end do
1466 end do
1467
1468# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1469#if defined(MFC_OpenACC)
1470# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1471!$acc end parallel loop
1472# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1473#elif defined(MFC_OpenMP)
1474# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1475
1476# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1477!$omp end target teams loop
1478# 291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1479#endif
1480
1481 call s_populate_f_igr_buffers(bc_type, jac_sf)
1482
1483 if (igr_iter_solver == 1 .or. dummy) then ! Jacobi iteration
1484
1485# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1486
1487# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1488#if defined(MFC_OpenACC)
1489# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1490!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1491# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1492#elif defined(MFC_OpenMP)
1493# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1494
1495# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1496
1497# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1498
1499# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1500!$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)
1501# 296 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1502#endif
1503 do l = idwbuff(3)%beg, idwbuff(3)%end
1504 do k = idwbuff(2)%beg, idwbuff(2)%end
1505 do j = idwbuff(1)%beg, idwbuff(1)%end
1506 jac_old(j, k, l) = jac(j, k, l)
1507 end do
1508 end do
1509 end do
1510
1511# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1512#if defined(MFC_OpenACC)
1513# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1514!$acc end parallel loop
1515# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1516#elif defined(MFC_OpenMP)
1517# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1518
1519# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1520!$omp end target teams loop
1521# 304 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1522#endif
1523 end if
1524 end do
1525
1526 end subroutine s_igr_iterative_solve
1527
1528 !> Compute the IGR viscous stress contribution in the x-direction and accumulate into the RHS
1529 subroutine s_igr_sigma_x(q_cons_vf, rhs_vf)
1530
1531#ifdef _CRAYFTN
1532 ! DIR$ OPTIMIZE (-haggress)
1533#endif
1534 type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
1535 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1536 real(wp) :: f_l, vel_l, rho_l, f_r, vel_r, rho_r
1537# 320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1538 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_rho_r
1539# 324 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1540
1541
1542# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1543
1544# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1545#if defined(MFC_OpenACC)
1546# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1547!$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)
1548# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1549#elif defined(MFC_OpenMP)
1550# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1551
1552# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1553
1554# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1555
1556# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1557!$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)
1558# 325 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1559#endif
1560 do l = 0, p
1561 do k = 0, n
1562 do j = -1, m
1563 f_l = 0._wp; f_r = 0._wp
1564 vel_l = 0._wp; vel_r = 0._wp
1565 rho_l = 0._wp; rho_r = 0._wp
1566
1567
1568# 333 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1569#if defined(MFC_OpenACC)
1570# 333 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1571!$acc loop seq
1572# 333 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1573#elif defined(MFC_OpenMP)
1574# 333 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1575
1576# 333 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1577#endif
1578 do i = 1, num_fluids
1579 alpha_rho_l(i) = 0._wp
1580 alpha_rho_r(i) = 0._wp
1581 end do
1582
1583
1584# 339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1585#if defined(MFC_OpenACC)
1586# 339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1587!$acc loop seq
1588# 339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1589#elif defined(MFC_OpenMP)
1590# 339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1591
1592# 339 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1593#endif
1594 do q = vidxb + 1, vidxe
1595
1596# 341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1597#if defined(MFC_OpenACC)
1598# 341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1599!$acc loop seq
1600# 341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1601#elif defined(MFC_OpenMP)
1602# 341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1603
1604# 341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1605#endif
1606 do i = 1, num_fluids
1607 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
1608 end do
1609
1610 vel_l = vel_l + coeff_l(q)*q_cons_vf(momxb)%sf(j + q, k, l)
1611 f_l = f_l + coeff_l(q)*jac(j + q, k, l)
1612 end do
1613
1614
1615# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1616#if defined(MFC_OpenACC)
1617# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1618!$acc loop seq
1619# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1620#elif defined(MFC_OpenMP)
1621# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1622
1623# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1624#endif
1625 do q = vidxb, vidxe - 1
1626
1627# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1628#if defined(MFC_OpenACC)
1629# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1630!$acc loop seq
1631# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1632#elif defined(MFC_OpenMP)
1633# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1634
1635# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1636#endif
1637 do i = 1, num_fluids
1638 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
1639 end do
1640
1641 vel_r = vel_r + coeff_r(q)*q_cons_vf(momxb)%sf(j + q, k, l)
1642 f_r = f_r + coeff_r(q)*jac(j + q, k, l)
1643 end do
1644
1645
1646# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1647#if defined(MFC_OpenACC)
1648# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1649!$acc loop seq
1650# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1651#elif defined(MFC_OpenMP)
1652# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1653
1654# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1655#endif
1656 do i = 1, num_fluids
1657 rho_l = rho_l + alpha_rho_l(i)
1658 rho_r = rho_r + alpha_rho_r(i)
1659 end do
1660
1661 vel_l = vel_l/rho_l
1662 vel_r = vel_r/rho_r
1663
1664# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1665
1666# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1667#if defined(MFC_OpenACC)
1668# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1669!$acc atomic update
1670# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1671#elif defined(MFC_OpenMP)
1672# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1673!$omp atomic update
1674# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1675#endif
1676 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
1677 & l) + real(0.5_wp*dt*f_l*(1._wp/dx(j + 1)), kind=stp)
1678
1679# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1680#if defined(MFC_OpenACC)
1681# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1682!$acc atomic update
1683# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1684#elif defined(MFC_OpenMP)
1685# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1686!$omp atomic update
1687# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1688#endif
1689 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
1690 & l) + real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j + 1)), kind=stp)
1691
1692# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1693#if defined(MFC_OpenACC)
1694# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1695!$acc atomic update
1696# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1697#elif defined(MFC_OpenMP)
1698# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1699!$omp atomic update
1700# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1701#endif
1702 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - real(0.5_wp*dt*f_l*(1._wp/dx(j)), kind=stp)
1703
1704# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1705#if defined(MFC_OpenACC)
1706# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1707!$acc atomic update
1708# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1709#elif defined(MFC_OpenMP)
1710# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1711!$omp atomic update
1712# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1713#endif
1714 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j)), &
1715 & kind=stp)
1716# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1717
1718# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1719#if defined(MFC_OpenACC)
1720# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1721!$acc atomic update
1722# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1723#elif defined(MFC_OpenMP)
1724# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1725!$omp atomic update
1726# 371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1727#endif
1728 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
1729 & l) + real(0.5_wp*dt*f_r*(1._wp/dx(j + 1)), kind=stp)
1730
1731# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1732#if defined(MFC_OpenACC)
1733# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1734!$acc atomic update
1735# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1736#elif defined(MFC_OpenMP)
1737# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1738!$omp atomic update
1739# 374 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1740#endif
1741 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
1742 & l) + real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j + 1)), kind=stp)
1743
1744# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1745#if defined(MFC_OpenACC)
1746# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1747!$acc atomic update
1748# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1749#elif defined(MFC_OpenMP)
1750# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1751!$omp atomic update
1752# 377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1753#endif
1754 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, l) - real(0.5_wp*dt*f_r*(1._wp/dx(j)), kind=stp)
1755
1756# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1757#if defined(MFC_OpenACC)
1758# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1759!$acc atomic update
1760# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1761#elif defined(MFC_OpenMP)
1762# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1763!$omp atomic update
1764# 379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1765#endif
1766 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, l) - real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j)), &
1767 & kind=stp)
1768# 383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1769 end do
1770 end do
1771 end do
1772
1773# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1774#if defined(MFC_OpenACC)
1775# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1776!$acc end parallel loop
1777# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1778#elif defined(MFC_OpenMP)
1779# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1780
1781# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1782!$omp end target teams loop
1783# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1784#endif
1785
1786 end subroutine s_igr_sigma_x
1787
1788 !> Evaluate the approximate Riemann solver for the IGR scheme along a given direction
1789 subroutine s_igr_riemann_solver(q_cons_vf, rhs_vf, idir)
1790
1791#ifdef _CRAYFTN
1792 ! DIR$ OPTIMIZE (-haggress)
1793#endif
1794 type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
1795 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1796 integer, intent(in) :: idir
1797 real(wp) :: cfl
1798 real(wp) :: rho_l, gamma_l, pi_inf_l, e_l, mu_l, f_l, pres_l
1799 real(wp) :: rho_r, gamma_r, pi_inf_r, e_r, mu_r, f_r, pres_r
1800 real(wp), dimension(3) :: vflux_l_arr, vflux_r_arr
1801 real(wp), dimension(-1:1) :: rho_sf_small
1802# 405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1803 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_l, alpha_r, alpha_rho_r
1804 real(wp), dimension(3) :: vel_l, vel_r
1805 real(wp), dimension(3, 3) :: dvel
1806 real(wp), dimension(3) :: dvel_small
1807# 415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1808
1809 if (idir == 1) then
1810 if (p == 0) then
1811# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1812
1813# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1814
1815# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1816#if defined(MFC_OpenACC)
1817# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1818!$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)
1819# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1820#elif defined(MFC_OpenMP)
1821# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1822
1823# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1824
1825# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1826
1827# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1828!$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)
1829# 419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1830#endif
1831# 422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1832 do l = 0, p
1833 do k = 0, n
1834 do j = -1, m
1835 vflux_l_arr = 0._wp
1836 vflux_r_arr = 0._wp
1837
1838# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1839
1840# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1841#if defined(MFC_OpenACC)
1842# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1843!$acc loop seq
1844# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1845#elif defined(MFC_OpenMP)
1846# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1847
1848# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1849#endif
1850 do q = vidxb, vidxe
1851 ! x-direction contributions
1852
1853# 438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1854#if defined(MFC_OpenACC)
1855# 438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1856!$acc loop seq
1857# 438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1858#elif defined(MFC_OpenMP)
1859# 438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1860
1861# 438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1862#endif
1863 do i = -1, 1
1864 rho_l = 0._wp
1865
1866# 441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1867#if defined(MFC_OpenACC)
1868# 441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1869!$acc loop seq
1870# 441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1871#elif defined(MFC_OpenMP)
1872# 441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1873
1874# 441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1875#endif
1876 do r = 1, num_fluids
1877 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
1878 end do
1879 rho_sf_small(i) = rho_l
1880 end do
1881
1882 dvel_small(1) = (1/(2._wp*dx(j)))*(1._wp*q_cons_vf(momxb)%sf(j + 1 + q, k, &
1883 & l)/rho_sf_small(1) - 1._wp*q_cons_vf(momxb)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
1884 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 1)%sf(j + 1 + q, k, &
1885 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
1886
1887 if (q == 0) then
1888
1889# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1890#if defined(MFC_OpenACC)
1891# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1892!$acc loop seq
1893# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1894#elif defined(MFC_OpenMP)
1895# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1896
1897# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1898#endif
1899 do i = 1, num_dims
1900 dvel(i, 1) = dvel_small(i)
1901 end do
1902 end if
1903
1904 if (q > vidxb) then
1905 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
1906 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
1907 end if
1908 if (q < vidxe) then
1909 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
1910 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
1911 end if
1912
1913 ! y-direction contributions
1914
1915# 470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1916#if defined(MFC_OpenACC)
1917# 470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1918!$acc loop seq
1919# 470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1920#elif defined(MFC_OpenMP)
1921# 470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1922
1923# 470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1924#endif
1925 do i = -1, 1
1926 rho_l = 0._wp
1927
1928# 473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1929#if defined(MFC_OpenACC)
1930# 473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1931!$acc loop seq
1932# 473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1933#elif defined(MFC_OpenMP)
1934# 473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1935
1936# 473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1937#endif
1938 do r = 1, num_fluids
1939 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
1940 end do
1941 rho_sf_small(i) = rho_l
1942 end do
1943
1944 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb)%sf(j + q, k + 1, &
1945 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
1946 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 1)%sf(j + q, k + 1, &
1947 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
1948
1949 if (q == 0) then
1950
1951# 486 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1952#if defined(MFC_OpenACC)
1953# 486 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1954!$acc loop seq
1955# 486 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1956#elif defined(MFC_OpenMP)
1957# 486 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1958
1959# 486 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1960#endif
1961 do i = 1, num_dims
1962 dvel(i, 2) = dvel_small(i)
1963 end do
1964 end if
1965
1966 if (q > vidxb) then
1967 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
1968 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
1969 end if
1970 if (q < vidxe) then
1971 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
1972 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
1973 end if
1974
1975 if (q == 0) then
1976 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1)) + dvel(1, &
1977 & 1)**2._wp + dvel(2, 2)**2._wp + (dvel(1, 1) + dvel(2, 2))**2._wp), kind=stp)
1978 end if
1979 end do
1980
1981
1982# 507 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1983#if defined(MFC_OpenACC)
1984# 507 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1985!$acc loop seq
1986# 507 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1987#elif defined(MFC_OpenMP)
1988# 507 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1989
1990# 507 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1991#endif
1992 do i = 1, num_fluids
1993 alpha_rho_l(i) = 0._wp
1994 alpha_rho_r(i) = 0._wp
1995 alpha_l(i) = 0._wp
1996 alpha_r(i) = 0._wp
1997 end do
1998
1999# 514 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2000#if defined(MFC_OpenACC)
2001# 514 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2002!$acc loop seq
2003# 514 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2004#elif defined(MFC_OpenMP)
2005# 514 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2006
2007# 514 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2008#endif
2009 do i = 1, num_dims
2010 vel_l(i) = 0._wp
2011 vel_r(i) = 0._wp
2012 end do
2013
2014
2015# 520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2016#if defined(MFC_OpenACC)
2017# 520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2018!$acc loop seq
2019# 520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2020#elif defined(MFC_OpenMP)
2021# 520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2022
2023# 520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2024#endif
2025 do q = vidxb + 1, vidxe
2026
2027# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2028#if defined(MFC_OpenACC)
2029# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2030!$acc loop seq
2031# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2032#elif defined(MFC_OpenMP)
2033# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2034
2035# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2036#endif
2037 do i = 1, num_fluids
2038 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
2039 end do
2040
2041 if (num_fluids > 1) then
2042
2043# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2044#if defined(MFC_OpenACC)
2045# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2046!$acc loop seq
2047# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2048#elif defined(MFC_OpenMP)
2049# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2050
2051# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2052#endif
2053 do i = 1, num_fluids - 1
2054 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
2055 end do
2056 else
2057 alpha_l(1) = 1._wp
2058 end if
2059
2060
2061# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2062#if defined(MFC_OpenACC)
2063# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2064!$acc loop seq
2065# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2066#elif defined(MFC_OpenMP)
2067# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2068
2069# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2070#endif
2071 do i = 1, num_dims
2072 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
2073 end do
2074 end do
2075
2076
2077# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2078#if defined(MFC_OpenACC)
2079# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2080!$acc loop seq
2081# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2082#elif defined(MFC_OpenMP)
2083# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2084
2085# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2086#endif
2087 do q = vidxb, vidxe - 1
2088
2089# 544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2090#if defined(MFC_OpenACC)
2091# 544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2092!$acc loop seq
2093# 544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2094#elif defined(MFC_OpenMP)
2095# 544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2096
2097# 544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2098#endif
2099 do i = 1, num_fluids
2100 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
2101 end do
2102
2103 if (num_fluids > 1) then
2104
2105# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2106#if defined(MFC_OpenACC)
2107# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2108!$acc loop seq
2109# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2110#elif defined(MFC_OpenMP)
2111# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2112
2113# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2114#endif
2115 do i = 1, num_fluids - 1
2116 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
2117 end do
2118 else
2119 alpha_r(1) = 1._wp
2120 end if
2121
2122
2123# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2124#if defined(MFC_OpenACC)
2125# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2126!$acc loop seq
2127# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2128#elif defined(MFC_OpenMP)
2129# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2130
2131# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2132#endif
2133 do i = 1, num_dims
2134 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
2135 end do
2136 end do
2137
2138 if (num_fluids > 1) then
2139 alpha_l(num_fluids) = 1._wp
2140 alpha_r(num_fluids) = 1._wp
2141
2142
2143# 568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2144#if defined(MFC_OpenACC)
2145# 568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2146!$acc loop seq
2147# 568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2148#elif defined(MFC_OpenMP)
2149# 568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2150
2151# 568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2152#endif
2153 do i = 1, num_fluids - 1
2154 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
2155 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
2156 end do
2157 end if
2158
2159 rho_l = 0._wp; rho_r = 0._wp
2160 gamma_l = 0._wp; gamma_r = 0._wp
2161 pi_inf_l = 0._wp; pi_inf_r = 0._wp
2162
2163
2164# 579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2165#if defined(MFC_OpenACC)
2166# 579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2167!$acc loop seq
2168# 579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2169#elif defined(MFC_OpenMP)
2170# 579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2171
2172# 579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2173#endif
2174 do i = 1, num_fluids
2175 rho_l = rho_l + alpha_rho_l(i)
2176 gamma_l = gamma_l + alpha_l(i)*gammas(i)
2177 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
2178
2179 rho_r = rho_r + alpha_rho_r(i)
2180 gamma_r = gamma_r + alpha_r(i)*gammas(i)
2181 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
2182 end do
2183
2184
2185# 590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2186#if defined(MFC_OpenACC)
2187# 590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2188!$acc loop seq
2189# 590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2190#elif defined(MFC_OpenMP)
2191# 590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2192
2193# 590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2194#endif
2195 do i = 1, num_dims
2196 vel_l(i) = vel_l(i)/rho_l
2197 vel_r(i) = vel_r(i)/rho_r
2198 end do
2199
2200 if (viscous) then
2201 mu_l = 0._wp; mu_r = 0._wp
2202
2203# 598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2204#if defined(MFC_OpenACC)
2205# 598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2206!$acc loop seq
2207# 598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2208#elif defined(MFC_OpenMP)
2209# 598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2210
2211# 598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2212#endif
2213 do i = 1, num_fluids
2214 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
2215 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
2216 end do
2217
2218
2219# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2220#if defined(MFC_OpenACC)
2221# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2222!$acc atomic update
2223# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2224#elif defined(MFC_OpenMP)
2225# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2226!$omp atomic update
2227# 604 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2228#endif
2229 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
2230 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2231
2232# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2233#if defined(MFC_OpenACC)
2234# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2235!$acc atomic update
2236# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2237#elif defined(MFC_OpenMP)
2238# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2239!$omp atomic update
2240# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2241#endif
2242 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2243 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
2244
2245
2246# 611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2247#if defined(MFC_OpenACC)
2248# 611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2249!$acc atomic update
2250# 611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2251#elif defined(MFC_OpenMP)
2252# 611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2253!$omp atomic update
2254# 611 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2255#endif
2256 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
2257 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
2258
2259# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2260#if defined(MFC_OpenACC)
2261# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2262!$acc atomic update
2263# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2264#elif defined(MFC_OpenMP)
2265# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2266!$omp atomic update
2267# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2268#endif
2269 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2270 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
2271
2272
2273# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2274#if defined(MFC_OpenACC)
2275# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2276!$acc atomic update
2277# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2278#elif defined(MFC_OpenMP)
2279# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2280!$omp atomic update
2281# 618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2282#endif
2283 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
2284 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2285
2286# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2287#if defined(MFC_OpenACC)
2288# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2289!$acc atomic update
2290# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2291#elif defined(MFC_OpenMP)
2292# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2293!$omp atomic update
2294# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2295#endif
2296 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2297 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
2298
2299
2300# 625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2301#if defined(MFC_OpenACC)
2302# 625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2303!$acc atomic update
2304# 625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2305#elif defined(MFC_OpenMP)
2306# 625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2307!$omp atomic update
2308# 625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2309#endif
2310 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
2311 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
2312
2313# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2314#if defined(MFC_OpenACC)
2315# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2316!$acc atomic update
2317# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2318#elif defined(MFC_OpenMP)
2319# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2320!$omp atomic update
2321# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2322#endif
2323 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2324 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
2325
2326
2327# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2328#if defined(MFC_OpenACC)
2329# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2330!$acc atomic update
2331# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2332#elif defined(MFC_OpenMP)
2333# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2334!$omp atomic update
2335# 632 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2336#endif
2337 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
2338 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2339
2340# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2341#if defined(MFC_OpenACC)
2342# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2343!$acc atomic update
2344# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2345#elif defined(MFC_OpenMP)
2346# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2347!$omp atomic update
2348# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2349#endif
2350 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2351 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
2352
2353
2354# 639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2355#if defined(MFC_OpenACC)
2356# 639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2357!$acc atomic update
2358# 639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2359#elif defined(MFC_OpenMP)
2360# 639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2361!$omp atomic update
2362# 639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2363#endif
2364 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
2365 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
2366
2367# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2368#if defined(MFC_OpenACC)
2369# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2370!$acc atomic update
2371# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2372#elif defined(MFC_OpenMP)
2373# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2374!$omp atomic update
2375# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2376#endif
2377 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2378 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
2379
2380
2381# 646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2382#if defined(MFC_OpenACC)
2383# 646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2384!$acc atomic update
2385# 646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2386#elif defined(MFC_OpenMP)
2387# 646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2388!$omp atomic update
2389# 646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2390#endif
2391 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
2392 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2393
2394# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2395#if defined(MFC_OpenACC)
2396# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2397!$acc atomic update
2398# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2399#elif defined(MFC_OpenMP)
2400# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2401!$omp atomic update
2402# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2403#endif
2404 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2405 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
2406
2407
2408# 653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2409#if defined(MFC_OpenACC)
2410# 653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2411!$acc atomic update
2412# 653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2413#elif defined(MFC_OpenMP)
2414# 653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2415!$omp atomic update
2416# 653 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2417#endif
2418 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
2419 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
2420
2421# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2422#if defined(MFC_OpenACC)
2423# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2424!$acc atomic update
2425# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2426#elif defined(MFC_OpenMP)
2427# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2428!$omp atomic update
2429# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2430#endif
2431 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2432 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
2433 end if
2434
2435 e_l = 0._wp; e_r = 0._wp
2436
2437
2438# 663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2439#if defined(MFC_OpenACC)
2440# 663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2441!$acc loop seq
2442# 663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2443#elif defined(MFC_OpenMP)
2444# 663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2445
2446# 663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2447#endif
2448 do q = vidxb + 1, vidxe
2449 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
2450 end do
2451
2452
2453# 668 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2454#if defined(MFC_OpenACC)
2455# 668 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2456!$acc loop seq
2457# 668 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2458#elif defined(MFC_OpenMP)
2459# 668 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2460
2461# 668 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2462#endif
2463 do q = vidxb, vidxe - 1
2464 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
2465 end do
2466
2467 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, e_r, gamma_r, pi_inf_r, rho_r, &
2468 & vel_r, pres_l, pres_r, cfl)
2469
2470 do i = 1, num_fluids
2471
2472# 677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2473#if defined(MFC_OpenACC)
2474# 677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2475!$acc atomic update
2476# 677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2477#elif defined(MFC_OpenMP)
2478# 677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2479!$omp atomic update
2480# 677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2481#endif
2482 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
2483 & l) + real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
2484 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
2485
2486
2487# 682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2488#if defined(MFC_OpenACC)
2489# 682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2490!$acc atomic update
2491# 682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2492#elif defined(MFC_OpenMP)
2493# 682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2494!$omp atomic update
2495# 682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2496#endif
2497 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
2498 & l) - real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j)) &
2499 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
2500 end do
2501
2502 if (num_fluids > 1) then
2503
2504# 689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2505#if defined(MFC_OpenACC)
2506# 689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2507!$acc loop seq
2508# 689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2509#elif defined(MFC_OpenMP)
2510# 689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2511
2512# 689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2513#endif
2514 do i = 1, num_fluids - 1
2515
2516# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2517#if defined(MFC_OpenACC)
2518# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2519!$acc atomic update
2520# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2521#elif defined(MFC_OpenMP)
2522# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2523!$omp atomic update
2524# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2525#endif
2526 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
2527 & l) + real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
2528 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
2529
2530
2531# 696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2532#if defined(MFC_OpenACC)
2533# 696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2534!$acc atomic update
2535# 696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2536#elif defined(MFC_OpenMP)
2537# 696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2538!$omp atomic update
2539# 696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2540#endif
2541 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
2542 & l) - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, &
2543 & l)*vel_l(1)*(1._wp/dx(j + 1))), kind=stp)
2544
2545
2546# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2547#if defined(MFC_OpenACC)
2548# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2549!$acc atomic update
2550# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2551#elif defined(MFC_OpenMP)
2552# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2553!$omp atomic update
2554# 701 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2555#endif
2556 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
2557 & l) - real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j)) &
2558 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j))), kind=stp)
2559
2560
2561# 706 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2562#if defined(MFC_OpenACC)
2563# 706 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2564!$acc atomic update
2565# 706 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2566#elif defined(MFC_OpenMP)
2567# 706 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2568!$omp atomic update
2569# 706 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2570#endif
2571 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
2572 & l) + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, &
2573 & l)*vel_l(1)*(1._wp/dx(j))), kind=stp)
2574 end do
2575 end if
2576
2577
2578# 713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2579#if defined(MFC_OpenACC)
2580# 713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2581!$acc atomic update
2582# 713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2583#elif defined(MFC_OpenMP)
2584# 713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2585!$omp atomic update
2586# 713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2587#endif
2588 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
2589 & l) + real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j + 1)) &
2590 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
2591
2592
2593# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2594#if defined(MFC_OpenACC)
2595# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2596!$acc atomic update
2597# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2598#elif defined(MFC_OpenMP)
2599# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2600!$omp atomic update
2601# 718 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2602#endif
2603 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
2604 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) &
2605 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
2606
2607
2608# 723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2609#if defined(MFC_OpenACC)
2610# 723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2611!$acc atomic update
2612# 723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2613#elif defined(MFC_OpenMP)
2614# 723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2615!$omp atomic update
2616# 723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2617#endif
2618 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2619 & l) + real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j + 1)) - 0.5_wp*dt*cfl*(e_l) &
2620 & *(1._wp/dx(j + 1))), kind=stp)
2621
2622
2623# 728 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2624#if defined(MFC_OpenACC)
2625# 728 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2626!$acc atomic update
2627# 728 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2628#elif defined(MFC_OpenMP)
2629# 728 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2630!$omp atomic update
2631# 728 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2632#endif
2633 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
2634 & l) - real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j)) &
2635 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
2636
2637
2638# 733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2639#if defined(MFC_OpenACC)
2640# 733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2641!$acc atomic update
2642# 733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2643#elif defined(MFC_OpenMP)
2644# 733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2645!$omp atomic update
2646# 733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2647#endif
2648 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
2649 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) &
2650 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
2651
2652
2653# 738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2654#if defined(MFC_OpenACC)
2655# 738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2656!$acc atomic update
2657# 738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2658#elif defined(MFC_OpenMP)
2659# 738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2660!$omp atomic update
2661# 738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2662#endif
2663 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2664 & l) - real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j)) - 0.5_wp*dt*cfl*(e_l) &
2665 & *(1._wp/dx(j))), kind=stp)
2666
2667
2668# 743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2669#if defined(MFC_OpenACC)
2670# 743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2671!$acc loop seq
2672# 743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2673#elif defined(MFC_OpenMP)
2674# 743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2675
2676# 743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2677#endif
2678 do i = 1, num_fluids
2679
2680# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2681#if defined(MFC_OpenACC)
2682# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2683!$acc atomic update
2684# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2685#elif defined(MFC_OpenMP)
2686# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2687!$omp atomic update
2688# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2689#endif
2690 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
2691 & l) + real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
2692 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
2693
2694
2695# 750 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2696#if defined(MFC_OpenACC)
2697# 750 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2698!$acc atomic update
2699# 750 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2700#elif defined(MFC_OpenMP)
2701# 750 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2702!$omp atomic update
2703# 750 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2704#endif
2705 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
2706 & l) - real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j)) &
2707 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
2708 end do
2709
2710 if (num_fluids > 1) then
2711
2712# 757 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2713#if defined(MFC_OpenACC)
2714# 757 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2715!$acc loop seq
2716# 757 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2717#elif defined(MFC_OpenMP)
2718# 757 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2719
2720# 757 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2721#endif
2722 do i = 1, num_fluids - 1
2723
2724# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2725#if defined(MFC_OpenACC)
2726# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2727!$acc atomic update
2728# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2729#elif defined(MFC_OpenMP)
2730# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2731!$omp atomic update
2732# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2733#endif
2734 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
2735 & l) + real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
2736 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
2737
2738
2739# 764 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2740#if defined(MFC_OpenACC)
2741# 764 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2742!$acc atomic update
2743# 764 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2744#elif defined(MFC_OpenMP)
2745# 764 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2746!$omp atomic update
2747# 764 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2748#endif
2749 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
2750 & l) - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, &
2751 & l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
2752
2753
2754# 769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2755#if defined(MFC_OpenACC)
2756# 769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2757!$acc atomic update
2758# 769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2759#elif defined(MFC_OpenMP)
2760# 769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2761!$omp atomic update
2762# 769 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2763#endif
2764 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
2765 & l) - real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j)) &
2766 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
2767
2768
2769# 774 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2770#if defined(MFC_OpenACC)
2771# 774 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2772!$acc atomic update
2773# 774 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2774#elif defined(MFC_OpenMP)
2775# 774 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2776!$omp atomic update
2777# 774 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2778#endif
2779 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
2780 & l) + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, &
2781 & l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
2782 end do
2783 end if
2784
2785
2786# 781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2787#if defined(MFC_OpenACC)
2788# 781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2789!$acc atomic update
2790# 781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2791#elif defined(MFC_OpenMP)
2792# 781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2793!$omp atomic update
2794# 781 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2795#endif
2796 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
2797 & l) + real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j + 1)) &
2798 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
2799
2800
2801# 786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2802#if defined(MFC_OpenACC)
2803# 786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2804!$acc atomic update
2805# 786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2806#elif defined(MFC_OpenMP)
2807# 786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2808!$omp atomic update
2809# 786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2810#endif
2811 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
2812 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) &
2813 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
2814
2815
2816# 791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2817#if defined(MFC_OpenACC)
2818# 791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2819!$acc atomic update
2820# 791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2821#elif defined(MFC_OpenMP)
2822# 791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2823!$omp atomic update
2824# 791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2825#endif
2826 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
2827 & l) + real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j + 1)) + 0.5_wp*dt*cfl*(e_r) &
2828 & *(1._wp/dx(j + 1))), kind=stp)
2829
2830
2831# 796 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2832#if defined(MFC_OpenACC)
2833# 796 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2834!$acc atomic update
2835# 796 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2836#elif defined(MFC_OpenMP)
2837# 796 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2838!$omp atomic update
2839# 796 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2840#endif
2841 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
2842 & l) - real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j)) &
2843 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
2844
2845
2846# 801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2847#if defined(MFC_OpenACC)
2848# 801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2849!$acc atomic update
2850# 801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2851#elif defined(MFC_OpenMP)
2852# 801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2853!$omp atomic update
2854# 801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2855#endif
2856 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
2857 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) &
2858 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
2859
2860
2861# 806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2862#if defined(MFC_OpenACC)
2863# 806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2864!$acc atomic update
2865# 806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2866#elif defined(MFC_OpenMP)
2867# 806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2868!$omp atomic update
2869# 806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2870#endif
2871 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
2872 & l) - real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j)) + 0.5_wp*dt*cfl*(e_r) &
2873 & *(1._wp/dx(j))), kind=stp)
2874 end do
2875 end do
2876 end do
2877
2878# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2879#if defined(MFC_OpenACC)
2880# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2881!$acc end parallel loop
2882# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2883#elif defined(MFC_OpenMP)
2884# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2885
2886# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2887!$omp end target teams loop
2888# 813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2889#endif
2890# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2891 else
2892# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2893
2894# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2895
2896# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2897#if defined(MFC_OpenACC)
2898# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2899!$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)
2900# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2901#elif defined(MFC_OpenMP)
2902# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2903
2904# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2905
2906# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2907
2908# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2909!$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)
2910# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2911#endif
2912# 820 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2913 do l = 0, p
2914 do k = 0, n
2915 do j = -1, m
2916 vflux_l_arr = 0._wp
2917 vflux_r_arr = 0._wp
2918
2919# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2920
2921# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2922#if defined(MFC_OpenACC)
2923# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2924!$acc loop seq
2925# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2926#elif defined(MFC_OpenMP)
2927# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2928
2929# 833 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2930#endif
2931 do q = vidxb, vidxe
2932 ! x-direction contributions
2933
2934# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2935#if defined(MFC_OpenACC)
2936# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2937!$acc loop seq
2938# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2939#elif defined(MFC_OpenMP)
2940# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2941
2942# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2943#endif
2944 do i = -1, 1
2945 rho_l = 0._wp
2946
2947# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2948#if defined(MFC_OpenACC)
2949# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2950!$acc loop seq
2951# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2952#elif defined(MFC_OpenMP)
2953# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2954
2955# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2956#endif
2957 do r = 1, num_fluids
2958 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
2959 end do
2960 rho_sf_small(i) = rho_l
2961 end do
2962
2963 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb)%sf(j + 1 + q, k, &
2964 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
2965 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 1)%sf(j + 1 + q, k, &
2966 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
2967 dvel_small(3) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 2)%sf(j + 1 + q, k, &
2968 & l)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
2969
2970 if (q == 0) then
2971
2972# 854 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2973#if defined(MFC_OpenACC)
2974# 854 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2975!$acc loop seq
2976# 854 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2977#elif defined(MFC_OpenMP)
2978# 854 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2979
2980# 854 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2981#endif
2982 do i = 1, num_dims
2983 dvel(i, 1) = dvel_small(i)
2984 end do
2985 end if
2986
2987 if (q > vidxb) then
2988 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
2989 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
2990 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
2991 end if
2992 if (q < vidxe) then
2993 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
2994 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
2995 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
2996 end if
2997
2998 ! y-direction contributions
2999
3000# 872 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3001#if defined(MFC_OpenACC)
3002# 872 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3003!$acc loop seq
3004# 872 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3005#elif defined(MFC_OpenMP)
3006# 872 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3007
3008# 872 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3009#endif
3010 do i = -1, 1
3011 rho_l = 0._wp
3012
3013# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3014#if defined(MFC_OpenACC)
3015# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3016!$acc loop seq
3017# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3018#elif defined(MFC_OpenMP)
3019# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3020
3021# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3022#endif
3023 do r = 1, num_fluids
3024 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
3025 end do
3026 rho_sf_small(i) = rho_l
3027 end do
3028
3029 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb)%sf(j + q, k + 1, &
3030 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3031 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 1)%sf(j + q, k + 1, &
3032 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3033 if (q == 0) dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 2)%sf(j + q, k + 1, &
3034 & l)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3035 if (q == 0) then
3036
3037# 889 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3038#if defined(MFC_OpenACC)
3039# 889 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3040!$acc loop seq
3041# 889 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3042#elif defined(MFC_OpenMP)
3043# 889 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3044
3045# 889 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3046#endif
3047 do i = 1, num_dims
3048 dvel(i, 2) = dvel_small(i)
3049 end do
3050 end if
3051
3052 if (q > vidxb) then
3053 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
3054 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
3055 end if
3056 if (q < vidxe) then
3057 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
3058 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
3059 end if
3060
3061 ! z-direction contributions
3062
3063# 905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3064#if defined(MFC_OpenACC)
3065# 905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3066!$acc loop seq
3067# 905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3068#elif defined(MFC_OpenMP)
3069# 905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3070
3071# 905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3072#endif
3073 do i = -1, 1
3074 rho_l = 0._wp
3075
3076# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3077#if defined(MFC_OpenACC)
3078# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3079!$acc loop seq
3080# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3081#elif defined(MFC_OpenMP)
3082# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3083
3084# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3085#endif
3086 do r = 1, num_fluids
3087 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k, l + i)
3088 end do
3089 rho_sf_small(i) = rho_l
3090 end do
3091
3092 dvel_small(1) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb)%sf(j + q, k, &
3093 & l + 1)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3094 if (q == 0) dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 1)%sf(j + q, k, &
3095 & l + 1)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3096 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 2)%sf(j + q, k, &
3097 & l + 1)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3098 if (q == 0) then
3099
3100# 922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3101#if defined(MFC_OpenACC)
3102# 922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3103!$acc loop seq
3104# 922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3105#elif defined(MFC_OpenMP)
3106# 922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3107
3108# 922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3109#endif
3110 do i = 1, num_dims
3111 dvel(i, 3) = dvel_small(i)
3112 end do
3113 end if
3114
3115 if (q > vidxb) then
3116 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(1))
3117 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
3118 end if
3119 if (q < vidxe) then
3120 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(1))
3121 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
3122 end if
3123
3124 if (q == 0) then
3125 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1) + dvel(1, 3)*dvel(3, &
3126 & 1) + dvel(2, 3)*dvel(3, 2)) + dvel(1, 1)**2._wp + dvel(2, 2)**2._wp + dvel(3, &
3127 & 3)**2._wp + (dvel(1, 1) + dvel(2, 2) + dvel(3, 3))**2._wp), kind=stp)
3128 end if
3129 end do
3130
3131
3132# 944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3133#if defined(MFC_OpenACC)
3134# 944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3135!$acc loop seq
3136# 944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3137#elif defined(MFC_OpenMP)
3138# 944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3139
3140# 944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3141#endif
3142 do i = 1, num_fluids
3143 alpha_rho_l(i) = 0._wp
3144 alpha_rho_r(i) = 0._wp
3145 alpha_l(i) = 0._wp
3146 alpha_r(i) = 0._wp
3147 end do
3148
3149# 951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3150#if defined(MFC_OpenACC)
3151# 951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3152!$acc loop seq
3153# 951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3154#elif defined(MFC_OpenMP)
3155# 951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3156
3157# 951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3158#endif
3159 do i = 1, num_dims
3160 vel_l(i) = 0._wp
3161 vel_r(i) = 0._wp
3162 end do
3163
3164
3165# 957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3166#if defined(MFC_OpenACC)
3167# 957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3168!$acc loop seq
3169# 957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3170#elif defined(MFC_OpenMP)
3171# 957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3172
3173# 957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3174#endif
3175 do q = vidxb + 1, vidxe
3176
3177# 959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3178#if defined(MFC_OpenACC)
3179# 959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3180!$acc loop seq
3181# 959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3182#elif defined(MFC_OpenMP)
3183# 959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3184
3185# 959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3186#endif
3187 do i = 1, num_fluids
3188 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
3189 end do
3190
3191 if (num_fluids > 1) then
3192
3193# 965 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3194#if defined(MFC_OpenACC)
3195# 965 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3196!$acc loop seq
3197# 965 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3198#elif defined(MFC_OpenMP)
3199# 965 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3200
3201# 965 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3202#endif
3203 do i = 1, num_fluids - 1
3204 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
3205 end do
3206 else
3207 alpha_l(1) = 1._wp
3208 end if
3209
3210
3211# 973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3212#if defined(MFC_OpenACC)
3213# 973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3214!$acc loop seq
3215# 973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3216#elif defined(MFC_OpenMP)
3217# 973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3218
3219# 973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3220#endif
3221 do i = 1, num_dims
3222 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
3223 end do
3224 end do
3225
3226
3227# 979 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3228#if defined(MFC_OpenACC)
3229# 979 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3230!$acc loop seq
3231# 979 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3232#elif defined(MFC_OpenMP)
3233# 979 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3234
3235# 979 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3236#endif
3237 do q = vidxb, vidxe - 1
3238
3239# 981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3240#if defined(MFC_OpenACC)
3241# 981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3242!$acc loop seq
3243# 981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3244#elif defined(MFC_OpenMP)
3245# 981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3246
3247# 981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3248#endif
3249 do i = 1, num_fluids
3250 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
3251 end do
3252
3253 if (num_fluids > 1) then
3254
3255# 987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3256#if defined(MFC_OpenACC)
3257# 987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3258!$acc loop seq
3259# 987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3260#elif defined(MFC_OpenMP)
3261# 987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3262
3263# 987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3264#endif
3265 do i = 1, num_fluids - 1
3266 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j + q, k, l)
3267 end do
3268 else
3269 alpha_r(1) = 1._wp
3270 end if
3271
3272
3273# 995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3274#if defined(MFC_OpenACC)
3275# 995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3276!$acc loop seq
3277# 995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3278#elif defined(MFC_OpenMP)
3279# 995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3280
3281# 995 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3282#endif
3283 do i = 1, num_dims
3284 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j + q, k, l)
3285 end do
3286 end do
3287
3288 if (num_fluids > 1) then
3289 alpha_l(num_fluids) = 1._wp
3290 alpha_r(num_fluids) = 1._wp
3291
3292
3293# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3294#if defined(MFC_OpenACC)
3295# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3296!$acc loop seq
3297# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3298#elif defined(MFC_OpenMP)
3299# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3300
3301# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3302#endif
3303 do i = 1, num_fluids - 1
3304 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
3305 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
3306 end do
3307 end if
3308
3309 rho_l = 0._wp; rho_r = 0._wp
3310 gamma_l = 0._wp; gamma_r = 0._wp
3311 pi_inf_l = 0._wp; pi_inf_r = 0._wp
3312
3313
3314# 1016 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3315#if defined(MFC_OpenACC)
3316# 1016 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3317!$acc loop seq
3318# 1016 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3319#elif defined(MFC_OpenMP)
3320# 1016 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3321
3322# 1016 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3323#endif
3324 do i = 1, num_fluids
3325 rho_l = rho_l + alpha_rho_l(i)
3326 gamma_l = gamma_l + alpha_l(i)*gammas(i)
3327 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
3328
3329 rho_r = rho_r + alpha_rho_r(i)
3330 gamma_r = gamma_r + alpha_r(i)*gammas(i)
3331 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
3332 end do
3333
3334
3335# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3336#if defined(MFC_OpenACC)
3337# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3338!$acc loop seq
3339# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3340#elif defined(MFC_OpenMP)
3341# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3342
3343# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3344#endif
3345 do i = 1, num_dims
3346 vel_l(i) = vel_l(i)/rho_l
3347 vel_r(i) = vel_r(i)/rho_r
3348 end do
3349
3350 if (viscous) then
3351 mu_l = 0._wp
3352 mu_r = 0._wp
3353
3354# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3355#if defined(MFC_OpenACC)
3356# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3357!$acc loop seq
3358# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3359#elif defined(MFC_OpenMP)
3360# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3361
3362# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3363#endif
3364 do i = 1, num_fluids
3365 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
3366 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
3367 end do
3368
3369
3370# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3371#if defined(MFC_OpenACC)
3372# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3373!$acc atomic update
3374# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3375#elif defined(MFC_OpenMP)
3376# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3377!$omp atomic update
3378# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3379#endif
3380 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
3381 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3382
3383# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3384#if defined(MFC_OpenACC)
3385# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3386!$acc atomic update
3387# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3388#elif defined(MFC_OpenMP)
3389# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3390!$omp atomic update
3391# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3392#endif
3393 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3394 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
3395
3396
3397# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3398#if defined(MFC_OpenACC)
3399# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3400!$acc atomic update
3401# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3402#elif defined(MFC_OpenMP)
3403# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3404!$omp atomic update
3405# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3406#endif
3407 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
3408 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
3409
3410# 1052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3411#if defined(MFC_OpenACC)
3412# 1052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3413!$acc atomic update
3414# 1052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3415#elif defined(MFC_OpenMP)
3416# 1052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3417!$omp atomic update
3418# 1052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3419#endif
3420 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3421 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
3422
3423
3424# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3425#if defined(MFC_OpenACC)
3426# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3427!$acc atomic update
3428# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3429#elif defined(MFC_OpenMP)
3430# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3431!$omp atomic update
3432# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3433#endif
3434 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
3435 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3436
3437# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3438#if defined(MFC_OpenACC)
3439# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3440!$acc atomic update
3441# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3442#elif defined(MFC_OpenMP)
3443# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3444!$omp atomic update
3445# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3446#endif
3447 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3448 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
3449
3450
3451# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3452#if defined(MFC_OpenACC)
3453# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3454!$acc atomic update
3455# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3456#elif defined(MFC_OpenMP)
3457# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3458!$omp atomic update
3459# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3460#endif
3461 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
3462 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
3463
3464# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3465#if defined(MFC_OpenACC)
3466# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3467!$acc atomic update
3468# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3469#elif defined(MFC_OpenMP)
3470# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3471!$omp atomic update
3472# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3473#endif
3474 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3475 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
3476
3477
3478# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3479#if defined(MFC_OpenACC)
3480# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3481!$acc atomic update
3482# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3483#elif defined(MFC_OpenMP)
3484# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3485!$omp atomic update
3486# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3487#endif
3488 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, &
3489 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3490
3491# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3492#if defined(MFC_OpenACC)
3493# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3494!$acc atomic update
3495# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3496#elif defined(MFC_OpenMP)
3497# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3498!$omp atomic update
3499# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3500#endif
3501 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3502 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j + 1)), kind=stp)
3503
3504
3505# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3506#if defined(MFC_OpenACC)
3507# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3508!$acc atomic update
3509# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3510#elif defined(MFC_OpenMP)
3511# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3512!$omp atomic update
3513# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3514#endif
3515 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
3516 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j)), kind=stp)
3517
3518# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3519#if defined(MFC_OpenACC)
3520# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3521!$acc atomic update
3522# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3523#elif defined(MFC_OpenMP)
3524# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3525!$omp atomic update
3526# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3527#endif
3528 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3529 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j)), kind=stp)
3530
3531
3532# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3533#if defined(MFC_OpenACC)
3534# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3535!$acc atomic update
3536# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3537#elif defined(MFC_OpenMP)
3538# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3539!$omp atomic update
3540# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3541#endif
3542 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, &
3543 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3544
3545# 1087 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3546#if defined(MFC_OpenACC)
3547# 1087 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3548!$acc atomic update
3549# 1087 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3550#elif defined(MFC_OpenMP)
3551# 1087 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3552!$omp atomic update
3553# 1087 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3554#endif
3555 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3556 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j + 1)), kind=stp)
3557
3558
3559# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3560#if defined(MFC_OpenACC)
3561# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3562!$acc atomic update
3563# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3564#elif defined(MFC_OpenMP)
3565# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3566!$omp atomic update
3567# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3568#endif
3569 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
3570 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j)), kind=stp)
3571
3572# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3573#if defined(MFC_OpenACC)
3574# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3575!$acc atomic update
3576# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3577#elif defined(MFC_OpenMP)
3578# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3579!$omp atomic update
3580# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3581#endif
3582 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3583 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j)), kind=stp)
3584
3585
3586# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3587#if defined(MFC_OpenACC)
3588# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3589!$acc atomic update
3590# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3591#elif defined(MFC_OpenMP)
3592# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3593!$omp atomic update
3594# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3595#endif
3596 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
3597 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3598
3599# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3600#if defined(MFC_OpenACC)
3601# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3602!$acc atomic update
3603# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3604#elif defined(MFC_OpenMP)
3605# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3606!$omp atomic update
3607# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3608#endif
3609 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3610 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3611
3612
3613# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3614#if defined(MFC_OpenACC)
3615# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3616!$acc atomic update
3617# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3618#elif defined(MFC_OpenMP)
3619# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3620!$omp atomic update
3621# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3622#endif
3623 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
3624 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
3625
3626# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3627#if defined(MFC_OpenACC)
3628# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3629!$acc atomic update
3630# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3631#elif defined(MFC_OpenMP)
3632# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3633!$omp atomic update
3634# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3635#endif
3636 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3637 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
3638
3639
3640# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3641#if defined(MFC_OpenACC)
3642# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3643!$acc atomic update
3644# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3645#elif defined(MFC_OpenMP)
3646# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3647!$omp atomic update
3648# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3649#endif
3650 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
3651 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3652
3653# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3654#if defined(MFC_OpenACC)
3655# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3656!$acc atomic update
3657# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3658#elif defined(MFC_OpenMP)
3659# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3660!$omp atomic update
3661# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3662#endif
3663 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3664 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
3665
3666
3667# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3668#if defined(MFC_OpenACC)
3669# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3670!$acc atomic update
3671# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3672#elif defined(MFC_OpenMP)
3673# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3674!$omp atomic update
3675# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3676#endif
3677 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
3678 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
3679
3680# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3681#if defined(MFC_OpenACC)
3682# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3683!$acc atomic update
3684# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3685#elif defined(MFC_OpenMP)
3686# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3687!$omp atomic update
3688# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3689#endif
3690 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3691 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
3692 end if
3693
3694 e_l = 0._wp; e_r = 0._wp
3695
3696
3697# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3698#if defined(MFC_OpenACC)
3699# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3700!$acc loop seq
3701# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3702#elif defined(MFC_OpenMP)
3703# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3704
3705# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3706#endif
3707 do q = vidxb + 1, vidxe
3708 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
3709 end do
3710
3711
3712# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3713#if defined(MFC_OpenACC)
3714# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3715!$acc loop seq
3716# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3717#elif defined(MFC_OpenMP)
3718# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3719
3720# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3721#endif
3722 do q = vidxb, vidxe - 1
3723 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j + q, k, l)
3724 end do
3725
3726 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, e_r, gamma_r, pi_inf_r, rho_r, &
3727 & vel_r, pres_l, pres_r, cfl)
3728
3729
3730# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3731#if defined(MFC_OpenACC)
3732# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3733!$acc loop seq
3734# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3735#elif defined(MFC_OpenMP)
3736# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3737
3738# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3739#endif
3740 do i = 1, num_fluids
3741
3742# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3743#if defined(MFC_OpenACC)
3744# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3745!$acc atomic update
3746# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3747#elif defined(MFC_OpenMP)
3748# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3749!$omp atomic update
3750# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3751#endif
3752 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
3753 & l) + real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
3754 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
3755
3756
3757# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3758#if defined(MFC_OpenACC)
3759# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3760!$acc atomic update
3761# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3762#elif defined(MFC_OpenMP)
3763# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3764!$omp atomic update
3765# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3766#endif
3767 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
3768 & l) - real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j)) &
3769 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
3770 end do
3771
3772 if (num_fluids > 1) then
3773
3774# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3775#if defined(MFC_OpenACC)
3776# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3777!$acc loop seq
3778# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3779#elif defined(MFC_OpenMP)
3780# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3781
3782# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3783#endif
3784 do i = 1, num_fluids - 1
3785
3786# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3787#if defined(MFC_OpenACC)
3788# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3789!$acc atomic update
3790# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3791#elif defined(MFC_OpenMP)
3792# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3793!$omp atomic update
3794# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3795#endif
3796 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
3797 & l) + real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
3798 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
3799
3800
3801# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3802#if defined(MFC_OpenACC)
3803# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3804!$acc atomic update
3805# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3806#elif defined(MFC_OpenMP)
3807# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3808!$omp atomic update
3809# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3810#endif
3811 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
3812 & l) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, &
3813 & l)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3814
3815
3816# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3817#if defined(MFC_OpenACC)
3818# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3819!$acc atomic update
3820# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3821#elif defined(MFC_OpenMP)
3822# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3823!$omp atomic update
3824# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3825#endif
3826 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
3827 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j)) &
3828 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j)), kind=stp)
3829
3830
3831# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3832#if defined(MFC_OpenACC)
3833# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3834!$acc atomic update
3835# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3836#elif defined(MFC_OpenMP)
3837# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3838!$omp atomic update
3839# 1173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3840#endif
3841 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
3842 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(1)*(1._wp/dx(j)), &
3843 & kind=stp)
3844 end do
3845 end if
3846
3847
3848# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3849#if defined(MFC_OpenACC)
3850# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3851!$acc atomic update
3852# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3853#elif defined(MFC_OpenMP)
3854# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3855!$omp atomic update
3856# 1180 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3857#endif
3858 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
3859 & l) + real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j + 1)) &
3860 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
3861
3862
3863# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3864#if defined(MFC_OpenACC)
3865# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3866!$acc atomic update
3867# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3868#elif defined(MFC_OpenMP)
3869# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3870!$omp atomic update
3871# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3872#endif
3873 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
3874 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) &
3875 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
3876
3877
3878# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3879#if defined(MFC_OpenACC)
3880# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3881!$acc atomic update
3882# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3883#elif defined(MFC_OpenMP)
3884# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3885!$omp atomic update
3886# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3887#endif
3888 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, &
3889 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j + 1)) &
3890 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j + 1))), kind=stp)
3891
3892
3893# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3894#if defined(MFC_OpenACC)
3895# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3896!$acc atomic update
3897# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3898#elif defined(MFC_OpenMP)
3899# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3900!$omp atomic update
3901# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3902#endif
3903 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
3904 & l) + real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j + 1)) - 0.5_wp*dt*cfl*(e_l) &
3905 & *(1._wp/dx(j + 1))), kind=stp)
3906
3907
3908# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3909#if defined(MFC_OpenACC)
3910# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3911!$acc atomic update
3912# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3913#elif defined(MFC_OpenMP)
3914# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3915!$omp atomic update
3916# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3917#endif
3918 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
3919 & l) - real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j)) &
3920 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
3921
3922
3923# 1205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3924#if defined(MFC_OpenACC)
3925# 1205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3926!$acc atomic update
3927# 1205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3928#elif defined(MFC_OpenMP)
3929# 1205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3930!$omp atomic update
3931# 1205 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3932#endif
3933 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
3934 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) &
3935 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
3936
3937
3938# 1210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3939#if defined(MFC_OpenACC)
3940# 1210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3941!$acc atomic update
3942# 1210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3943#elif defined(MFC_OpenMP)
3944# 1210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3945!$omp atomic update
3946# 1210 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3947#endif
3948 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
3949 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j)) &
3950 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j))), kind=stp)
3951
3952
3953# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3954#if defined(MFC_OpenACC)
3955# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3956!$acc atomic update
3957# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3958#elif defined(MFC_OpenMP)
3959# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3960!$omp atomic update
3961# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3962#endif
3963 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
3964 & l) - real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j)) - 0.5_wp*dt*cfl*(e_l) &
3965 & *(1._wp/dx(j))), kind=stp)
3966
3967
3968# 1220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3969#if defined(MFC_OpenACC)
3970# 1220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3971!$acc loop seq
3972# 1220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3973#elif defined(MFC_OpenMP)
3974# 1220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3975
3976# 1220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3977#endif
3978 do i = 1, num_fluids
3979
3980# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3981#if defined(MFC_OpenACC)
3982# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3983!$acc atomic update
3984# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3985#elif defined(MFC_OpenMP)
3986# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3987!$omp atomic update
3988# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3989#endif
3990 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
3991 & l) + real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
3992 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
3993
3994
3995# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3996#if defined(MFC_OpenACC)
3997# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3998!$acc atomic update
3999# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4000#elif defined(MFC_OpenMP)
4001# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4002!$omp atomic update
4003# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4004#endif
4005 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
4006 & l) - real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j)) &
4007 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
4008 end do
4009
4010 if (num_fluids > 1) then
4011
4012# 1234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4013#if defined(MFC_OpenACC)
4014# 1234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4015!$acc loop seq
4016# 1234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4017#elif defined(MFC_OpenMP)
4018# 1234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4019
4020# 1234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4021#endif
4022 do i = 1, num_fluids - 1
4023
4024# 1236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4025#if defined(MFC_OpenACC)
4026# 1236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4027!$acc atomic update
4028# 1236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4029#elif defined(MFC_OpenMP)
4030# 1236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4031!$omp atomic update
4032# 1236 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4033#endif
4034 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
4035 & l) + real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
4036 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
4037
4038
4039# 1241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4040#if defined(MFC_OpenACC)
4041# 1241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4042!$acc atomic update
4043# 1241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4044#elif defined(MFC_OpenMP)
4045# 1241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4046!$omp atomic update
4047# 1241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4048#endif
4049 rhs_vf(advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(advxb + i - 1)%sf(j + 1, k, &
4050 & l) - real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j + 1, k, &
4051 & l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
4052
4053
4054# 1246 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4055#if defined(MFC_OpenACC)
4056# 1246 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4057!$acc atomic update
4058# 1246 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4059#elif defined(MFC_OpenMP)
4060# 1246 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4061!$omp atomic update
4062# 1246 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4063#endif
4064 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
4065 & l) - real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j)) &
4066 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
4067
4068
4069# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4070#if defined(MFC_OpenACC)
4071# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4072!$acc atomic update
4073# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4074#elif defined(MFC_OpenMP)
4075# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4076!$omp atomic update
4077# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4078#endif
4079 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
4080 & l) + real((0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, &
4081 & l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
4082 end do
4083 end if
4084
4085
4086# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4087#if defined(MFC_OpenACC)
4088# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4089!$acc atomic update
4090# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4091#elif defined(MFC_OpenMP)
4092# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4093!$omp atomic update
4094# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4095#endif
4096 rhs_vf(momxb)%sf(j + 1, k, l) = rhs_vf(momxb)%sf(j + 1, k, &
4097 & l) + real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j + 1)) &
4098 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
4099
4100
4101# 1263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4102#if defined(MFC_OpenACC)
4103# 1263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4104!$acc atomic update
4105# 1263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4106#elif defined(MFC_OpenMP)
4107# 1263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4108!$omp atomic update
4109# 1263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4110#endif
4111 rhs_vf(momxb + 1)%sf(j + 1, k, l) = rhs_vf(momxb + 1)%sf(j + 1, k, &
4112 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) &
4113 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
4114
4115
4116# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4117#if defined(MFC_OpenACC)
4118# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4119!$acc atomic update
4120# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4121#elif defined(MFC_OpenMP)
4122# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4123!$omp atomic update
4124# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4125#endif
4126 rhs_vf(momxb + 2)%sf(j + 1, k, l) = rhs_vf(momxb + 2)%sf(j + 1, k, &
4127 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j + 1)) &
4128 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j + 1))), kind=stp)
4129
4130
4131# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4132#if defined(MFC_OpenACC)
4133# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4134!$acc atomic update
4135# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4136#elif defined(MFC_OpenMP)
4137# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4138!$omp atomic update
4139# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4140#endif
4141 rhs_vf(e_idx)%sf(j + 1, k, l) = rhs_vf(e_idx)%sf(j + 1, k, &
4142 & l) + real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j + 1)) + 0.5_wp*dt*cfl*(e_r) &
4143 & *(1._wp/dx(j + 1))), kind=stp)
4144
4145
4146# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4147#if defined(MFC_OpenACC)
4148# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4149!$acc atomic update
4150# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4151#elif defined(MFC_OpenMP)
4152# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4153!$omp atomic update
4154# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4155#endif
4156 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
4157 & l) - real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j)) &
4158 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
4159
4160
4161# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4162#if defined(MFC_OpenACC)
4163# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4164!$acc atomic update
4165# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4166#elif defined(MFC_OpenMP)
4167# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4168!$omp atomic update
4169# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4170#endif
4171 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
4172 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) &
4173 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
4174
4175
4176# 1288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4177#if defined(MFC_OpenACC)
4178# 1288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4179!$acc atomic update
4180# 1288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4181#elif defined(MFC_OpenMP)
4182# 1288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4183!$omp atomic update
4184# 1288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4185#endif
4186 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
4187 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j)) &
4188 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j))), kind=stp)
4189
4190
4191# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4192#if defined(MFC_OpenACC)
4193# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4194!$acc atomic update
4195# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4196#elif defined(MFC_OpenMP)
4197# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4198!$omp atomic update
4199# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4200#endif
4201 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
4202 & l) - real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j)) + 0.5_wp*dt*cfl*(e_r) &
4203 & *(1._wp/dx(j))), kind=stp)
4204 end do
4205 end do
4206 end do
4207
4208# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4209#if defined(MFC_OpenACC)
4210# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4211!$acc end parallel loop
4212# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4213#elif defined(MFC_OpenMP)
4214# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4215
4216# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4217!$omp end target teams loop
4218# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4219#endif
4220# 1302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4221 end if
4222 else if (idir == 2) then
4223 if (p == 0) then
4224# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4225
4226# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4227
4228# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4229#if defined(MFC_OpenACC)
4230# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4231!$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)
4232# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4233#elif defined(MFC_OpenMP)
4234# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4235
4236# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4237
4238# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4239
4240# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4241!$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)
4242# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4243#endif
4244# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4245 do l = 0, p
4246 do k = -1, n
4247 do j = 0, m
4248 if (viscous) then
4249 vflux_l_arr = 0._wp
4250 vflux_r_arr = 0._wp
4251
4252# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4253
4254# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4255#if defined(MFC_OpenACC)
4256# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4257!$acc loop seq
4258# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4259#elif defined(MFC_OpenMP)
4260# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4261
4262# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4263#endif
4264 do q = vidxb, vidxe
4265 ! x-direction contributions
4266
4267# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4268#if defined(MFC_OpenACC)
4269# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4270!$acc loop seq
4271# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4272#elif defined(MFC_OpenMP)
4273# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4274
4275# 1326 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4276#endif
4277 do i = -1, 1
4278 rho_l = 0._wp
4279
4280# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4281#if defined(MFC_OpenACC)
4282# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4283!$acc loop seq
4284# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4285#elif defined(MFC_OpenMP)
4286# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4287
4288# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4289#endif
4290 do r = 1, num_fluids
4291 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
4292 end do
4293 rho_sf_small(i) = rho_l
4294 end do
4295
4296 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb)%sf(j + 1, k + q, &
4297 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
4298 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 1)%sf(j + 1, k + q, &
4299 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j - 1, k + q, l)/rho_sf_small(-1))
4300
4301 if (q > vidxb) then
4302 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
4303 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
4304 end if
4305 if (q < vidxe) then
4306 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
4307 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
4308 end if
4309
4310 ! y-direction contributions
4311
4312# 1351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4313#if defined(MFC_OpenACC)
4314# 1351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4315!$acc loop seq
4316# 1351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4317#elif defined(MFC_OpenMP)
4318# 1351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4319
4320# 1351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4321#endif
4322 do i = -1, 1
4323 rho_l = 0._wp
4324
4325# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4326#if defined(MFC_OpenACC)
4327# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4328!$acc loop seq
4329# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4330#elif defined(MFC_OpenMP)
4331# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4332
4333# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4334#endif
4335 do r = 1, num_fluids
4336 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
4337 end do
4338 rho_sf_small(i) = rho_l
4339 end do
4340
4341 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb)%sf(j, k + 1 + q, &
4342 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
4343 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 1)%sf(j, k + 1 + q, &
4344 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
4345
4346 if (q > vidxb) then
4347 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
4348 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
4349 end if
4350 if (q < vidxe) then
4351 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
4352 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
4353 end if
4354 end do
4355 end if
4356
4357
4358# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4359#if defined(MFC_OpenACC)
4360# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4361!$acc loop seq
4362# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4363#elif defined(MFC_OpenMP)
4364# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4365
4366# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4367#endif
4368 do i = 1, num_fluids
4369 alpha_rho_l(i) = 0._wp
4370 alpha_rho_r(i) = 0._wp
4371 alpha_l(i) = 0._wp
4372 alpha_r(i) = 0._wp
4373 end do
4374
4375# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4376#if defined(MFC_OpenACC)
4377# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4378!$acc loop seq
4379# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4380#elif defined(MFC_OpenMP)
4381# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4382
4383# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4384#endif
4385 do i = 1, num_dims
4386 vel_l(i) = 0._wp
4387 vel_r(i) = 0._wp
4388 end do
4389
4390
4391# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4392#if defined(MFC_OpenACC)
4393# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4394!$acc loop seq
4395# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4396#elif defined(MFC_OpenMP)
4397# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4398
4399# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4400#endif
4401 do q = vidxb + 1, vidxe
4402
4403# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4404#if defined(MFC_OpenACC)
4405# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4406!$acc loop seq
4407# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4408#elif defined(MFC_OpenMP)
4409# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4410
4411# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4412#endif
4413 do i = 1, num_fluids
4414 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
4415 end do
4416
4417 if (num_fluids > 1) then
4418
4419# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4420#if defined(MFC_OpenACC)
4421# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4422!$acc loop seq
4423# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4424#elif defined(MFC_OpenMP)
4425# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4426
4427# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4428#endif
4429 do i = 1, num_fluids - 1
4430 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
4431 end do
4432 else
4433 alpha_l(1) = 1._wp
4434 end if
4435
4436
4437# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4438#if defined(MFC_OpenACC)
4439# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4440!$acc loop seq
4441# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4442#elif defined(MFC_OpenMP)
4443# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4444
4445# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4446#endif
4447 do i = 1, num_dims
4448 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
4449 end do
4450 end do
4451
4452
4453# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4454#if defined(MFC_OpenACC)
4455# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4456!$acc loop seq
4457# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4458#elif defined(MFC_OpenMP)
4459# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4460
4461# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4462#endif
4463 do q = vidxb, vidxe - 1
4464
4465# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4466#if defined(MFC_OpenACC)
4467# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4468!$acc loop seq
4469# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4470#elif defined(MFC_OpenMP)
4471# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4472
4473# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4474#endif
4475 do i = 1, num_fluids
4476 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
4477 end do
4478
4479 if (num_fluids > 1) then
4480
4481# 1420 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4482#if defined(MFC_OpenACC)
4483# 1420 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4484!$acc loop seq
4485# 1420 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4486#elif defined(MFC_OpenMP)
4487# 1420 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4488
4489# 1420 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4490#endif
4491 do i = 1, num_fluids - 1
4492 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
4493 end do
4494 else
4495 alpha_r(1) = 1._wp
4496 end if
4497
4498
4499# 1428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4500#if defined(MFC_OpenACC)
4501# 1428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4502!$acc loop seq
4503# 1428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4504#elif defined(MFC_OpenMP)
4505# 1428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4506
4507# 1428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4508#endif
4509 do i = 1, num_dims
4510 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
4511 end do
4512 end do
4513
4514 if (num_fluids > 1) then
4515 alpha_l(num_fluids) = 1._wp
4516 alpha_r(num_fluids) = 1._wp
4517
4518
4519# 1438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4520#if defined(MFC_OpenACC)
4521# 1438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4522!$acc loop seq
4523# 1438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4524#elif defined(MFC_OpenMP)
4525# 1438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4526
4527# 1438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4528#endif
4529 do i = 1, num_fluids - 1
4530 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
4531 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
4532 end do
4533 end if
4534
4535 rho_l = 0._wp; rho_r = 0._wp
4536 gamma_l = 0._wp; gamma_r = 0._wp
4537 pi_inf_l = 0._wp; pi_inf_r = 0._wp
4538
4539
4540# 1449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4541#if defined(MFC_OpenACC)
4542# 1449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4543!$acc loop seq
4544# 1449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4545#elif defined(MFC_OpenMP)
4546# 1449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4547
4548# 1449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4549#endif
4550 do i = 1, num_fluids
4551 rho_l = rho_l + alpha_rho_l(i)
4552 gamma_l = gamma_l + alpha_l(i)*gammas(i)
4553 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
4554
4555 rho_r = rho_r + alpha_rho_r(i)
4556 gamma_r = gamma_r + alpha_r(i)*gammas(i)
4557 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
4558 end do
4559
4560
4561# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4562#if defined(MFC_OpenACC)
4563# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4564!$acc loop seq
4565# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4566#elif defined(MFC_OpenMP)
4567# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4568
4569# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4570#endif
4571 do i = 1, num_dims
4572 vel_l(i) = vel_l(i)/rho_l
4573 vel_r(i) = vel_r(i)/rho_r
4574 end do
4575
4576 if (viscous) then
4577 mu_l = 0._wp
4578 mu_r = 0._wp
4579
4580# 1469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4581#if defined(MFC_OpenACC)
4582# 1469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4583!$acc loop seq
4584# 1469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4585#elif defined(MFC_OpenMP)
4586# 1469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4587
4588# 1469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4589#endif
4590 do i = 1, num_fluids
4591 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
4592 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
4593 end do
4594
4595
4596# 1475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4597#if defined(MFC_OpenACC)
4598# 1475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4599!$acc atomic update
4600# 1475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4601#elif defined(MFC_OpenMP)
4602# 1475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4603!$omp atomic update
4604# 1475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4605#endif
4606 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
4607 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4608
4609# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4610#if defined(MFC_OpenACC)
4611# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4612!$acc atomic update
4613# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4614#elif defined(MFC_OpenMP)
4615# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4616!$omp atomic update
4617# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4618#endif
4619 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
4620 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
4621
4622
4623# 1482 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4624#if defined(MFC_OpenACC)
4625# 1482 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4626!$acc atomic update
4627# 1482 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4628#elif defined(MFC_OpenMP)
4629# 1482 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4630!$omp atomic update
4631# 1482 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4632#endif
4633 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
4634 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
4635
4636# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4637#if defined(MFC_OpenACC)
4638# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4639!$acc atomic update
4640# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4641#elif defined(MFC_OpenMP)
4642# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4643!$omp atomic update
4644# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4645#endif
4646 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
4647 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
4648
4649
4650# 1489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4651#if defined(MFC_OpenACC)
4652# 1489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4653!$acc atomic update
4654# 1489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4655#elif defined(MFC_OpenMP)
4656# 1489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4657!$omp atomic update
4658# 1489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4659#endif
4660 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
4661 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4662
4663# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4664#if defined(MFC_OpenACC)
4665# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4666!$acc atomic update
4667# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4668#elif defined(MFC_OpenMP)
4669# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4670!$omp atomic update
4671# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4672#endif
4673 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
4674 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
4675
4676
4677# 1496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4678#if defined(MFC_OpenACC)
4679# 1496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4680!$acc atomic update
4681# 1496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4682#elif defined(MFC_OpenMP)
4683# 1496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4684!$omp atomic update
4685# 1496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4686#endif
4687 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
4688 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
4689
4690# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4691#if defined(MFC_OpenACC)
4692# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4693!$acc atomic update
4694# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4695#elif defined(MFC_OpenMP)
4696# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4697!$omp atomic update
4698# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4699#endif
4700 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
4701 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
4702
4703
4704# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4705#if defined(MFC_OpenACC)
4706# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4707!$acc atomic update
4708# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4709#elif defined(MFC_OpenMP)
4710# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4711!$omp atomic update
4712# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4713#endif
4714 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
4715 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4716
4717# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4718#if defined(MFC_OpenACC)
4719# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4720!$acc atomic update
4721# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4722#elif defined(MFC_OpenMP)
4723# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4724!$omp atomic update
4725# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4726#endif
4727 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
4728 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
4729
4730
4731# 1510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4732#if defined(MFC_OpenACC)
4733# 1510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4734!$acc atomic update
4735# 1510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4736#elif defined(MFC_OpenMP)
4737# 1510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4738!$omp atomic update
4739# 1510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4740#endif
4741 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
4742 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
4743
4744# 1513 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4745#if defined(MFC_OpenACC)
4746# 1513 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4747!$acc atomic update
4748# 1513 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4749#elif defined(MFC_OpenMP)
4750# 1513 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4751!$omp atomic update
4752# 1513 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4753#endif
4754 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
4755 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
4756
4757
4758# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4759#if defined(MFC_OpenACC)
4760# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4761!$acc atomic update
4762# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4763#elif defined(MFC_OpenMP)
4764# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4765!$omp atomic update
4766# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4767#endif
4768 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
4769 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4770
4771# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4772#if defined(MFC_OpenACC)
4773# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4774!$acc atomic update
4775# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4776#elif defined(MFC_OpenMP)
4777# 1520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4778!$omp atomic update
4779# 1520 "/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, &
4782 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
4783
4784
4785# 1524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4786#if defined(MFC_OpenACC)
4787# 1524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4788!$acc atomic update
4789# 1524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4790#elif defined(MFC_OpenMP)
4791# 1524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4792!$omp atomic update
4793# 1524 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4794#endif
4795 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
4796 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
4797
4798# 1527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4799#if defined(MFC_OpenACC)
4800# 1527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4801!$acc atomic update
4802# 1527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4803#elif defined(MFC_OpenMP)
4804# 1527 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4805!$omp atomic update
4806# 1527 "/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, &
4809 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
4810 end if
4811
4812 e_l = 0._wp; e_r = 0._wp
4813 f_l = 0._wp; f_r = 0._wp
4814
4815
4816# 1535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4817#if defined(MFC_OpenACC)
4818# 1535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4819!$acc loop seq
4820# 1535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4821#elif defined(MFC_OpenMP)
4822# 1535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4823
4824# 1535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4825#endif
4826 do q = vidxb + 1, vidxe
4827 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
4828 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
4829 end do
4830
4831
4832# 1541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4833#if defined(MFC_OpenACC)
4834# 1541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4835!$acc loop seq
4836# 1541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4837#elif defined(MFC_OpenMP)
4838# 1541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4839
4840# 1541 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4841#endif
4842 do q = vidxb, vidxe - 1
4843 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
4844 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
4845 end do
4846
4847 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, e_r, gamma_r, pi_inf_r, rho_r, &
4848 & vel_r, pres_l, pres_r, cfl)
4849
4850
4851# 1550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4852#if defined(MFC_OpenACC)
4853# 1550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4854!$acc loop seq
4855# 1550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4856#elif defined(MFC_OpenMP)
4857# 1550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4858
4859# 1550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4860#endif
4861 do i = 1, num_fluids
4862
4863# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4864#if defined(MFC_OpenACC)
4865# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4866!$acc atomic update
4867# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4868#elif defined(MFC_OpenMP)
4869# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4870!$omp atomic update
4871# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4872#endif
4873 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
4874 & l) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
4875 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
4876
4877
4878# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4879#if defined(MFC_OpenACC)
4880# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4881!$acc atomic update
4882# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4883#elif defined(MFC_OpenMP)
4884# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4885!$omp atomic update
4886# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4887#endif
4888 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
4889 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k)) &
4890 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
4891 end do
4892
4893 if (num_fluids > 1) then
4894
4895# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4896#if defined(MFC_OpenACC)
4897# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4898!$acc loop seq
4899# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4900#elif defined(MFC_OpenMP)
4901# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4902
4903# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4904#endif
4905 do i = 1, num_fluids - 1
4906
4907# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4908#if defined(MFC_OpenACC)
4909# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4910!$acc atomic update
4911# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4912#elif defined(MFC_OpenMP)
4913# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4914!$omp atomic update
4915# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4916#endif
4917 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
4918 & l) + real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
4919 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
4920
4921
4922# 1571 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4923#if defined(MFC_OpenACC)
4924# 1571 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4925!$acc atomic update
4926# 1571 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4927#elif defined(MFC_OpenMP)
4928# 1571 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4929!$omp atomic update
4930# 1571 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4931#endif
4932 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
4933 & l) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, &
4934 & l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
4935
4936
4937# 1576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4938#if defined(MFC_OpenACC)
4939# 1576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4940!$acc atomic update
4941# 1576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4942#elif defined(MFC_OpenMP)
4943# 1576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4944!$omp atomic update
4945# 1576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4946#endif
4947 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
4948 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k)) &
4949 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
4950
4951
4952# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4953#if defined(MFC_OpenACC)
4954# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4955!$acc atomic update
4956# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4957#elif defined(MFC_OpenMP)
4958# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4959!$omp atomic update
4960# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4961#endif
4962 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
4963 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(2)*(1._wp/dy(k)), &
4964 & kind=stp)
4965 end do
4966 end if
4967
4968
4969# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4970#if defined(MFC_OpenACC)
4971# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4972!$acc atomic update
4973# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4974#elif defined(MFC_OpenMP)
4975# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4976!$omp atomic update
4977# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4978#endif
4979 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
4980 & l) + real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k + 1)) &
4981 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
4982
4983
4984# 1593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4985#if defined(MFC_OpenACC)
4986# 1593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4987!$acc atomic update
4988# 1593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4989#elif defined(MFC_OpenMP)
4990# 1593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4991!$omp atomic update
4992# 1593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4993#endif
4994 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
4995 & l) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) &
4996 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
4997
4998
4999# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5000#if defined(MFC_OpenACC)
5001# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5002!$acc atomic update
5003# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5004#elif defined(MFC_OpenMP)
5005# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5006!$omp atomic update
5007# 1598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5008#endif
5009 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5010 & l) + real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k + 1)) &
5011 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
5012
5013
5014# 1603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5015#if defined(MFC_OpenACC)
5016# 1603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5017!$acc atomic update
5018# 1603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5019#elif defined(MFC_OpenMP)
5020# 1603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5021!$omp atomic update
5022# 1603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5023#endif
5024 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
5025 & l) - real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k)) &
5026 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
5027
5028
5029# 1608 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5030#if defined(MFC_OpenACC)
5031# 1608 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5032!$acc atomic update
5033# 1608 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5034#elif defined(MFC_OpenMP)
5035# 1608 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5036!$omp atomic update
5037# 1608 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5038#endif
5039 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
5040 & l) - real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k)) - 0.5_wp*dt*cfl*(rho_l*vel_l(1) &
5041 & )*(1._wp/dy(k)), kind=stp)
5042
5043
5044# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5045#if defined(MFC_OpenACC)
5046# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5047!$acc atomic update
5048# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5049#elif defined(MFC_OpenMP)
5050# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5051!$omp atomic update
5052# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5053#endif
5054 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5055 & l) - real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k)) - 0.5_wp*dt*cfl*(e_l) &
5056 & *(1._wp/dy(k)), kind=stp)
5057
5058
5059# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5060#if defined(MFC_OpenACC)
5061# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5062!$acc loop seq
5063# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5064#elif defined(MFC_OpenMP)
5065# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5066
5067# 1618 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5068#endif
5069 do i = 1, num_fluids
5070
5071# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5072#if defined(MFC_OpenACC)
5073# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5074!$acc atomic update
5075# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5076#elif defined(MFC_OpenMP)
5077# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5078!$omp atomic update
5079# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5080#endif
5081 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
5082 & l) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
5083 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
5084
5085# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5086#if defined(MFC_OpenACC)
5087# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5088!$acc atomic update
5089# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5090#elif defined(MFC_OpenMP)
5091# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5092!$omp atomic update
5093# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5094#endif
5095 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
5096 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k)) &
5097 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
5098 end do
5099
5100 if (num_fluids > 1) then
5101
5102# 1631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5103#if defined(MFC_OpenACC)
5104# 1631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5105!$acc loop seq
5106# 1631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5107#elif defined(MFC_OpenMP)
5108# 1631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5109
5110# 1631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5111#endif
5112 do i = 1, num_fluids - 1
5113
5114# 1633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5115#if defined(MFC_OpenACC)
5116# 1633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5117!$acc atomic update
5118# 1633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5119#elif defined(MFC_OpenMP)
5120# 1633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5121!$omp atomic update
5122# 1633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5123#endif
5124 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
5125 & l) + real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
5126 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
5127
5128
5129# 1638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5130#if defined(MFC_OpenACC)
5131# 1638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5132!$acc atomic update
5133# 1638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5134#elif defined(MFC_OpenMP)
5135# 1638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5136!$omp atomic update
5137# 1638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5138#endif
5139 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
5140 & l) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, &
5141 & l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
5142
5143
5144# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5145#if defined(MFC_OpenACC)
5146# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5147!$acc atomic update
5148# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5149#elif defined(MFC_OpenMP)
5150# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5151!$omp atomic update
5152# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5153#endif
5154 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
5155 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k)) &
5156 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
5157
5158
5159# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5160#if defined(MFC_OpenACC)
5161# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5162!$acc atomic update
5163# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5164#elif defined(MFC_OpenMP)
5165# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5166!$omp atomic update
5167# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5168#endif
5169 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
5170 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(2)*(1._wp/dy(k)), &
5171 & kind=stp)
5172 end do
5173 end if
5174
5175# 1654 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5176#if defined(MFC_OpenACC)
5177# 1654 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5178!$acc atomic update
5179# 1654 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5180#elif defined(MFC_OpenMP)
5181# 1654 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5182!$omp atomic update
5183# 1654 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5184#endif
5185 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
5186 & l) + real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k + 1)) &
5187 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
5188
5189# 1658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5190#if defined(MFC_OpenACC)
5191# 1658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5192!$acc atomic update
5193# 1658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5194#elif defined(MFC_OpenMP)
5195# 1658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5196!$omp atomic update
5197# 1658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5198#endif
5199 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
5200 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) &
5201 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
5202
5203# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5204#if defined(MFC_OpenACC)
5205# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5206!$acc atomic update
5207# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5208#elif defined(MFC_OpenMP)
5209# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5210!$omp atomic update
5211# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5212#endif
5213 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5214 & l) + real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k + 1)) &
5215 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
5216
5217# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5218#if defined(MFC_OpenACC)
5219# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5220!$acc atomic update
5221# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5222#elif defined(MFC_OpenMP)
5223# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5224!$omp atomic update
5225# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5226#endif
5227 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
5228 & l) - real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k)) &
5229 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
5230
5231# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5232#if defined(MFC_OpenACC)
5233# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5234!$acc atomic update
5235# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5236#elif defined(MFC_OpenMP)
5237# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5238!$omp atomic update
5239# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5240#endif
5241 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
5242 & l) - real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k)) + 0.5_wp*dt*cfl*(rho_r*vel_r(1) &
5243 & )*(1._wp/dy(k)), kind=stp)
5244
5245# 1674 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5246#if defined(MFC_OpenACC)
5247# 1674 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5248!$acc atomic update
5249# 1674 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5250#elif defined(MFC_OpenMP)
5251# 1674 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5252!$omp atomic update
5253# 1674 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5254#endif
5255 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5256 & l) - real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k)) + 0.5_wp*dt*cfl*(e_r) &
5257 & *(1._wp/dy(k)), kind=stp)
5258 end do
5259 end do
5260 end do
5261
5262# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5263#if defined(MFC_OpenACC)
5264# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5265!$acc end parallel loop
5266# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5267#elif defined(MFC_OpenMP)
5268# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5269
5270# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5271!$omp end target teams loop
5272# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5273#endif
5274# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5275 else
5276# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5277
5278# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5279
5280# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5281#if defined(MFC_OpenACC)
5282# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5283!$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)
5284# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5285#elif defined(MFC_OpenMP)
5286# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5287
5288# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5289
5290# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5291
5292# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5293!$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)
5294# 1685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5295#endif
5296# 1688 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5297 do l = 0, p
5298 do k = -1, n
5299 do j = 0, m
5300 if (viscous) then
5301 vflux_l_arr = 0._wp
5302 vflux_r_arr = 0._wp
5303
5304# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5305
5306# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5307#if defined(MFC_OpenACC)
5308# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5309!$acc loop seq
5310# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5311#elif defined(MFC_OpenMP)
5312# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5313
5314# 1702 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5315#endif
5316 do q = vidxb, vidxe
5317 ! x-direction contributions
5318
5319# 1705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5320#if defined(MFC_OpenACC)
5321# 1705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5322!$acc loop seq
5323# 1705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5324#elif defined(MFC_OpenMP)
5325# 1705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5326
5327# 1705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5328#endif
5329 do i = -1, 1
5330 rho_l = 0._wp
5331
5332# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5333#if defined(MFC_OpenACC)
5334# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5335!$acc loop seq
5336# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5337#elif defined(MFC_OpenMP)
5338# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5339
5340# 1708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5341#endif
5342 do r = 1, num_fluids
5343 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
5344 end do
5345 rho_sf_small(i) = rho_l
5346 end do
5347
5348 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb)%sf(j + 1, k + q, &
5349 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
5350 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 1)%sf(j + 1, k + q, &
5351 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j - 1, k + q, l)/rho_sf_small(-1))
5352
5353 if (q > vidxb) then
5354 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
5355 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
5356 end if
5357 if (q < vidxe) then
5358 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
5359 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
5360 end if
5361
5362 ! y-direction contributions
5363
5364# 1730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5365#if defined(MFC_OpenACC)
5366# 1730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5367!$acc loop seq
5368# 1730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5369#elif defined(MFC_OpenMP)
5370# 1730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5371
5372# 1730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5373#endif
5374 do i = -1, 1
5375 rho_l = 0._wp
5376
5377# 1733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5378#if defined(MFC_OpenACC)
5379# 1733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5380!$acc loop seq
5381# 1733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5382#elif defined(MFC_OpenMP)
5383# 1733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5384
5385# 1733 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5386#endif
5387 do r = 1, num_fluids
5388 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
5389 end do
5390 rho_sf_small(i) = rho_l
5391 end do
5392
5393 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb)%sf(j, k + 1 + q, &
5394 & l)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5395 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 1)%sf(j, k + 1 + q, &
5396 & l)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5397 dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 2)%sf(j, k + 1 + q, &
5398 & l)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5399
5400 if (q > vidxb) then
5401 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
5402 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
5403 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
5404 end if
5405 if (q < vidxe) then
5406 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
5407 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
5408 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
5409 end if
5410
5411 ! z-direction contributions
5412
5413# 1759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5414#if defined(MFC_OpenACC)
5415# 1759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5416!$acc loop seq
5417# 1759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5418#elif defined(MFC_OpenMP)
5419# 1759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5420
5421# 1759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5422#endif
5423 do i = -1, 1
5424 rho_l = 0._wp
5425
5426# 1762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5427#if defined(MFC_OpenACC)
5428# 1762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5429!$acc loop seq
5430# 1762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5431#elif defined(MFC_OpenMP)
5432# 1762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5433
5434# 1762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5435#endif
5436 do r = 1, num_fluids
5437 rho_l = rho_l + q_cons_vf(r)%sf(j, k + q, l + i)
5438 end do
5439 rho_sf_small(i) = rho_l
5440 end do
5441
5442 dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 1)%sf(j, k + q, &
5443 & l + 1)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j, k + q, &
5444 & l - 1)/rho_sf_small(-1))
5445 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 2)%sf(j, k + q, &
5446 & l + 1)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j, k + q, &
5447 & l - 1)/rho_sf_small(-1))
5448 if (q > vidxb) then
5449 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
5450 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
5451 end if
5452 if (q < vidxe) then
5453 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
5454 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
5455 end if
5456 end do
5457 end if
5458
5459
5460# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5461#if defined(MFC_OpenACC)
5462# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5463!$acc loop seq
5464# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5465#elif defined(MFC_OpenMP)
5466# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5467
5468# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5469#endif
5470 do i = 1, num_fluids
5471 alpha_rho_l(i) = 0._wp
5472 alpha_rho_r(i) = 0._wp
5473 alpha_l(i) = 0._wp
5474 alpha_r(i) = 0._wp
5475 end do
5476
5477# 1793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5478#if defined(MFC_OpenACC)
5479# 1793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5480!$acc loop seq
5481# 1793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5482#elif defined(MFC_OpenMP)
5483# 1793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5484
5485# 1793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5486#endif
5487 do i = 1, num_dims
5488 vel_l(i) = 0._wp
5489 vel_r(i) = 0._wp
5490 end do
5491
5492
5493# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5494#if defined(MFC_OpenACC)
5495# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5496!$acc loop seq
5497# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5498#elif defined(MFC_OpenMP)
5499# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5500
5501# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5502#endif
5503 do q = vidxb + 1, vidxe
5504
5505# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5506#if defined(MFC_OpenACC)
5507# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5508!$acc loop seq
5509# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5510#elif defined(MFC_OpenMP)
5511# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5512
5513# 1801 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5514#endif
5515 do i = 1, num_fluids
5516 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
5517 end do
5518
5519 if (num_fluids > 1) then
5520
5521# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5522#if defined(MFC_OpenACC)
5523# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5524!$acc loop seq
5525# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5526#elif defined(MFC_OpenMP)
5527# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5528
5529# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5530#endif
5531 do i = 1, num_fluids - 1
5532 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
5533 end do
5534 else
5535 alpha_l(1) = 1._wp
5536 end if
5537
5538
5539# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5540#if defined(MFC_OpenACC)
5541# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5542!$acc loop seq
5543# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5544#elif defined(MFC_OpenMP)
5545# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5546
5547# 1815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5548#endif
5549 do i = 1, num_dims
5550 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
5551 end do
5552 end do
5553
5554
5555# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5556#if defined(MFC_OpenACC)
5557# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5558!$acc loop seq
5559# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5560#elif defined(MFC_OpenMP)
5561# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5562
5563# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5564#endif
5565 do q = vidxb, vidxe - 1
5566
5567# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5568#if defined(MFC_OpenACC)
5569# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5570!$acc loop seq
5571# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5572#elif defined(MFC_OpenMP)
5573# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5574
5575# 1823 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5576#endif
5577 do i = 1, num_fluids
5578 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
5579 end do
5580
5581 if (num_fluids > 1) then
5582
5583# 1829 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5584#if defined(MFC_OpenACC)
5585# 1829 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5586!$acc loop seq
5587# 1829 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5588#elif defined(MFC_OpenMP)
5589# 1829 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5590
5591# 1829 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5592#endif
5593 do i = 1, num_fluids - 1
5594 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k + q, l)
5595 end do
5596 else
5597 alpha_r(1) = 1._wp
5598 end if
5599
5600
5601# 1837 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5602#if defined(MFC_OpenACC)
5603# 1837 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5604!$acc loop seq
5605# 1837 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5606#elif defined(MFC_OpenMP)
5607# 1837 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5608
5609# 1837 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5610#endif
5611 do i = 1, num_dims
5612 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k + q, l)
5613 end do
5614 end do
5615
5616 if (num_fluids > 1) then
5617 alpha_l(num_fluids) = 1._wp
5618 alpha_r(num_fluids) = 1._wp
5619
5620
5621# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5622#if defined(MFC_OpenACC)
5623# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5624!$acc loop seq
5625# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5626#elif defined(MFC_OpenMP)
5627# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5628
5629# 1847 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5630#endif
5631 do i = 1, num_fluids - 1
5632 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
5633 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
5634 end do
5635 end if
5636
5637 rho_l = 0._wp; rho_r = 0._wp
5638 gamma_l = 0._wp; gamma_r = 0._wp
5639 pi_inf_l = 0._wp; pi_inf_r = 0._wp
5640
5641
5642# 1858 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5643#if defined(MFC_OpenACC)
5644# 1858 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5645!$acc loop seq
5646# 1858 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5647#elif defined(MFC_OpenMP)
5648# 1858 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5649
5650# 1858 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5651#endif
5652 do i = 1, num_fluids
5653 rho_l = rho_l + alpha_rho_l(i)
5654 gamma_l = gamma_l + alpha_l(i)*gammas(i)
5655 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
5656
5657 rho_r = rho_r + alpha_rho_r(i)
5658 gamma_r = gamma_r + alpha_r(i)*gammas(i)
5659 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
5660 end do
5661
5662
5663# 1869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5664#if defined(MFC_OpenACC)
5665# 1869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5666!$acc loop seq
5667# 1869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5668#elif defined(MFC_OpenMP)
5669# 1869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5670
5671# 1869 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5672#endif
5673 do i = 1, num_dims
5674 vel_l(i) = vel_l(i)/rho_l
5675 vel_r(i) = vel_r(i)/rho_r
5676 end do
5677
5678 if (viscous) then
5679 mu_l = 0._wp
5680 mu_r = 0._wp
5681
5682# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5683#if defined(MFC_OpenACC)
5684# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5685!$acc loop seq
5686# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5687#elif defined(MFC_OpenMP)
5688# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5689
5690# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5691#endif
5692 do i = 1, num_fluids
5693 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
5694 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
5695 end do
5696
5697
5698# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5699#if defined(MFC_OpenACC)
5700# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5701!$acc atomic update
5702# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5703#elif defined(MFC_OpenMP)
5704# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5705!$omp atomic update
5706# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5707#endif
5708 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
5709 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
5710
5711# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5712#if defined(MFC_OpenACC)
5713# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5714!$acc atomic update
5715# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5716#elif defined(MFC_OpenMP)
5717# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5718!$omp atomic update
5719# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5720#endif
5721 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5722 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
5723
5724
5725# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5726#if defined(MFC_OpenACC)
5727# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5728!$acc atomic update
5729# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5730#elif defined(MFC_OpenMP)
5731# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5732!$omp atomic update
5733# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5734#endif
5735 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
5736 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
5737
5738# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5739#if defined(MFC_OpenACC)
5740# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5741!$acc atomic update
5742# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5743#elif defined(MFC_OpenMP)
5744# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5745!$omp atomic update
5746# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5747#endif
5748 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5749 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
5750
5751
5752# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5753#if defined(MFC_OpenACC)
5754# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5755!$acc atomic update
5756# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5757#elif defined(MFC_OpenMP)
5758# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5759!$omp atomic update
5760# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5761#endif
5762 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
5763 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
5764
5765# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5766#if defined(MFC_OpenACC)
5767# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5768!$acc atomic update
5769# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5770#elif defined(MFC_OpenMP)
5771# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5772!$omp atomic update
5773# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5774#endif
5775 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5776 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
5777
5778
5779# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5780#if defined(MFC_OpenACC)
5781# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5782!$acc atomic update
5783# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5784#elif defined(MFC_OpenMP)
5785# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5786!$omp atomic update
5787# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5788#endif
5789 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
5790 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
5791
5792# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5793#if defined(MFC_OpenACC)
5794# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5795!$acc atomic update
5796# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5797#elif defined(MFC_OpenMP)
5798# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5799!$omp atomic update
5800# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5801#endif
5802 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5803 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
5804
5805
5806# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5807#if defined(MFC_OpenACC)
5808# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5809!$acc atomic update
5810# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5811#elif defined(MFC_OpenMP)
5812# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5813!$omp atomic update
5814# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5815#endif
5816 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, &
5817 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k + 1)), kind=stp)
5818
5819# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5820#if defined(MFC_OpenACC)
5821# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5822!$acc atomic update
5823# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5824#elif defined(MFC_OpenMP)
5825# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5826!$omp atomic update
5827# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5828#endif
5829 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5830 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k + 1)), kind=stp)
5831
5832
5833# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5834#if defined(MFC_OpenACC)
5835# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5836!$acc atomic update
5837# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5838#elif defined(MFC_OpenMP)
5839# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5840!$omp atomic update
5841# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5842#endif
5843 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
5844 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k)), kind=stp)
5845
5846# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5847#if defined(MFC_OpenACC)
5848# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5849!$acc atomic update
5850# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5851#elif defined(MFC_OpenMP)
5852# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5853!$omp atomic update
5854# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5855#endif
5856 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5857 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k)), kind=stp)
5858
5859
5860# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5861#if defined(MFC_OpenACC)
5862# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5863!$acc atomic update
5864# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5865#elif defined(MFC_OpenMP)
5866# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5867!$omp atomic update
5868# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5869#endif
5870 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, &
5871 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k + 1)), kind=stp)
5872
5873# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5874#if defined(MFC_OpenACC)
5875# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5876!$acc atomic update
5877# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5878#elif defined(MFC_OpenMP)
5879# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5880!$omp atomic update
5881# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5882#endif
5883 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5884 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k + 1)), kind=stp)
5885
5886
5887# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5888#if defined(MFC_OpenACC)
5889# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5890!$acc atomic update
5891# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5892#elif defined(MFC_OpenMP)
5893# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5894!$omp atomic update
5895# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5896#endif
5897 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
5898 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k)), kind=stp)
5899
5900# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5901#if defined(MFC_OpenACC)
5902# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5903!$acc atomic update
5904# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5905#elif defined(MFC_OpenMP)
5906# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5907!$omp atomic update
5908# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5909#endif
5910 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5911 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k)), kind=stp)
5912
5913
5914# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5915#if defined(MFC_OpenACC)
5916# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5917!$acc atomic update
5918# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5919#elif defined(MFC_OpenMP)
5920# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5921!$omp atomic update
5922# 1940 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5923#endif
5924 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
5925 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
5926
5927# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5928#if defined(MFC_OpenACC)
5929# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5930!$acc atomic update
5931# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5932#elif defined(MFC_OpenMP)
5933# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5934!$omp atomic update
5935# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5936#endif
5937 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5938 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
5939
5940
5941# 1947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5942#if defined(MFC_OpenACC)
5943# 1947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5944!$acc atomic update
5945# 1947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5946#elif defined(MFC_OpenMP)
5947# 1947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5948!$omp atomic update
5949# 1947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5950#endif
5951 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
5952 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
5953
5954# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5955#if defined(MFC_OpenACC)
5956# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5957!$acc atomic update
5958# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5959#elif defined(MFC_OpenMP)
5960# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5961!$omp atomic update
5962# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5963#endif
5964 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
5965 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
5966
5967
5968# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5969#if defined(MFC_OpenACC)
5970# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5971!$acc atomic update
5972# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5973#elif defined(MFC_OpenMP)
5974# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5975!$omp atomic update
5976# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5977#endif
5978 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
5979 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
5980
5981# 1957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5982#if defined(MFC_OpenACC)
5983# 1957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5984!$acc atomic update
5985# 1957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5986#elif defined(MFC_OpenMP)
5987# 1957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5988!$omp atomic update
5989# 1957 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5990#endif
5991 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
5992 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
5993
5994
5995# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5996#if defined(MFC_OpenACC)
5997# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5998!$acc atomic update
5999# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6000#elif defined(MFC_OpenMP)
6001# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6002!$omp atomic update
6003# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6004#endif
6005 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
6006 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
6007
6008# 1964 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6009#if defined(MFC_OpenACC)
6010# 1964 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6011!$acc atomic update
6012# 1964 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6013#elif defined(MFC_OpenMP)
6014# 1964 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6015!$omp atomic update
6016# 1964 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6017#endif
6018 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
6019 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
6020 end if
6021
6022 e_l = 0._wp; e_r = 0._wp
6023 f_l = 0._wp; f_r = 0._wp
6024
6025
6026# 1972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6027#if defined(MFC_OpenACC)
6028# 1972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6029!$acc loop seq
6030# 1972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6031#elif defined(MFC_OpenMP)
6032# 1972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6033
6034# 1972 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6035#endif
6036 do q = vidxb + 1, vidxe
6037 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
6038 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
6039 end do
6040
6041
6042# 1978 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6043#if defined(MFC_OpenACC)
6044# 1978 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6045!$acc loop seq
6046# 1978 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6047#elif defined(MFC_OpenMP)
6048# 1978 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6049
6050# 1978 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6051#endif
6052 do q = vidxb, vidxe - 1
6053 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k + q, l)
6054 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
6055 end do
6056
6057 call s_get_derived_states(e_l, gamma_l, pi_inf_l, rho_l, vel_l, e_r, gamma_r, pi_inf_r, rho_r, &
6058 & vel_r, pres_l, pres_r, cfl)
6059
6060
6061# 1987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6062#if defined(MFC_OpenACC)
6063# 1987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6064!$acc loop seq
6065# 1987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6066#elif defined(MFC_OpenMP)
6067# 1987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6068
6069# 1987 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6070#endif
6071 do i = 1, num_fluids
6072
6073# 1989 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6074#if defined(MFC_OpenACC)
6075# 1989 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6076!$acc atomic update
6077# 1989 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6078#elif defined(MFC_OpenMP)
6079# 1989 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6080!$omp atomic update
6081# 1989 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6082#endif
6083 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
6084 & l) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
6085 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
6086
6087
6088# 1994 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6089#if defined(MFC_OpenACC)
6090# 1994 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6091!$acc atomic update
6092# 1994 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6093#elif defined(MFC_OpenMP)
6094# 1994 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6095!$omp atomic update
6096# 1994 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6097#endif
6098 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
6099 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k)) &
6100 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
6101 end do
6102
6103 if (num_fluids > 1) then
6104
6105# 2001 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6106#if defined(MFC_OpenACC)
6107# 2001 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6108!$acc loop seq
6109# 2001 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6110#elif defined(MFC_OpenMP)
6111# 2001 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6112
6113# 2001 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6114#endif
6115 do i = 1, num_fluids - 1
6116
6117# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6118#if defined(MFC_OpenACC)
6119# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6120!$acc atomic update
6121# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6122#elif defined(MFC_OpenMP)
6123# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6124!$omp atomic update
6125# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6126#endif
6127 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
6128 & l) + real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
6129 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
6130
6131
6132# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6133#if defined(MFC_OpenACC)
6134# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6135!$acc atomic update
6136# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6137#elif defined(MFC_OpenMP)
6138# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6139!$omp atomic update
6140# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6141#endif
6142 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
6143 & l) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, &
6144 & l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
6145
6146
6147# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6148#if defined(MFC_OpenACC)
6149# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6150!$acc atomic update
6151# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6152#elif defined(MFC_OpenMP)
6153# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6154!$omp atomic update
6155# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6156#endif
6157 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
6158 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k)) &
6159 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
6160
6161
6162# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6163#if defined(MFC_OpenACC)
6164# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6165!$acc atomic update
6166# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6167#elif defined(MFC_OpenMP)
6168# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6169!$omp atomic update
6170# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6171#endif
6172 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
6173 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(2)*(1._wp/dy(k)), &
6174 & kind=stp)
6175 end do
6176 end if
6177
6178
6179# 2025 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6180#if defined(MFC_OpenACC)
6181# 2025 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6182!$acc atomic update
6183# 2025 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6184#elif defined(MFC_OpenMP)
6185# 2025 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6186!$omp atomic update
6187# 2025 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6188#endif
6189 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
6190 & l) + real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k + 1)) &
6191 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
6192
6193
6194# 2030 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6195#if defined(MFC_OpenACC)
6196# 2030 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6197!$acc atomic update
6198# 2030 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6199#elif defined(MFC_OpenMP)
6200# 2030 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6201!$omp atomic update
6202# 2030 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6203#endif
6204 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
6205 & l) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) &
6206 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
6207
6208
6209# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6210#if defined(MFC_OpenACC)
6211# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6212!$acc atomic update
6213# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6214#elif defined(MFC_OpenMP)
6215# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6216!$omp atomic update
6217# 2035 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6218#endif
6219 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, &
6220 & l) + real(0.5_wp*dt*rho_l*vel_l(3)*vel_l(2)*(1._wp/dy(k + 1)) &
6221 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dy(k + 1)), kind=stp)
6222
6223
6224# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6225#if defined(MFC_OpenACC)
6226# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6227!$acc atomic update
6228# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6229#elif defined(MFC_OpenMP)
6230# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6231!$omp atomic update
6232# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6233#endif
6234 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
6235 & l) + real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k + 1)) &
6236 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
6237
6238
6239# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6240#if defined(MFC_OpenACC)
6241# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6242!$acc atomic update
6243# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6244#elif defined(MFC_OpenMP)
6245# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6246!$omp atomic update
6247# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6248#endif
6249 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
6250 & l) - real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k)) &
6251 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
6252
6253
6254# 2050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6255#if defined(MFC_OpenACC)
6256# 2050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6257!$acc atomic update
6258# 2050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6259#elif defined(MFC_OpenMP)
6260# 2050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6261!$omp atomic update
6262# 2050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6263#endif
6264 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
6265 & l) - real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k)) - 0.5_wp*dt*cfl*(rho_l*vel_l(1) &
6266 & )*(1._wp/dy(k)), kind=stp)
6267
6268
6269# 2055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6270#if defined(MFC_OpenACC)
6271# 2055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6272!$acc atomic update
6273# 2055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6274#elif defined(MFC_OpenMP)
6275# 2055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6276!$omp atomic update
6277# 2055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6278#endif
6279 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
6280 & l) - real(0.5_wp*dt*rho_l*vel_l(3)*vel_l(2)*(1._wp/dy(k)) - 0.5_wp*dt*cfl*(rho_l*vel_l(3) &
6281 & )*(1._wp/dy(k)), kind=stp)
6282
6283
6284# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6285#if defined(MFC_OpenACC)
6286# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6287!$acc atomic update
6288# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6289#elif defined(MFC_OpenMP)
6290# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6291!$omp atomic update
6292# 2060 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6293#endif
6294 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
6295 & l) - real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k)) - 0.5_wp*dt*cfl*(e_l) &
6296 & *(1._wp/dy(k)), kind=stp)
6297
6298
6299# 2065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6300#if defined(MFC_OpenACC)
6301# 2065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6302!$acc loop seq
6303# 2065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6304#elif defined(MFC_OpenMP)
6305# 2065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6306
6307# 2065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6308#endif
6309 do i = 1, num_fluids
6310
6311# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6312#if defined(MFC_OpenACC)
6313# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6314!$acc atomic update
6315# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6316#elif defined(MFC_OpenMP)
6317# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6318!$omp atomic update
6319# 2067 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6320#endif
6321 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
6322 & l) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
6323 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
6324
6325
6326# 2072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6327#if defined(MFC_OpenACC)
6328# 2072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6329!$acc atomic update
6330# 2072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6331#elif defined(MFC_OpenMP)
6332# 2072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6333!$omp atomic update
6334# 2072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6335#endif
6336 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
6337 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k)) &
6338 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
6339 end do
6340
6341 if (num_fluids > 1) then
6342
6343# 2079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6344#if defined(MFC_OpenACC)
6345# 2079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6346!$acc loop seq
6347# 2079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6348#elif defined(MFC_OpenMP)
6349# 2079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6350
6351# 2079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6352#endif
6353 do i = 1, num_fluids - 1
6354
6355# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6356#if defined(MFC_OpenACC)
6357# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6358!$acc atomic update
6359# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6360#elif defined(MFC_OpenMP)
6361# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6362!$omp atomic update
6363# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6364#endif
6365 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
6366 & l) + real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
6367 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
6368
6369
6370# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6371#if defined(MFC_OpenACC)
6372# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6373!$acc atomic update
6374# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6375#elif defined(MFC_OpenMP)
6376# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6377!$omp atomic update
6378# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6379#endif
6380 rhs_vf(advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(advxb + i - 1)%sf(j, k + 1, &
6381 & l) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k + 1, &
6382 & l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
6383
6384
6385# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6386#if defined(MFC_OpenACC)
6387# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6388!$acc atomic update
6389# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6390#elif defined(MFC_OpenMP)
6391# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6392!$omp atomic update
6393# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6394#endif
6395 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
6396 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k)) &
6397 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
6398
6399
6400# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6401#if defined(MFC_OpenACC)
6402# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6403!$acc atomic update
6404# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6405#elif defined(MFC_OpenMP)
6406# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6407!$omp atomic update
6408# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6409#endif
6410 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
6411 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(2)*(1._wp/dy(k)), &
6412 & kind=stp)
6413 end do
6414 end if
6415
6416
6417# 2103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6418#if defined(MFC_OpenACC)
6419# 2103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6420!$acc atomic update
6421# 2103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6422#elif defined(MFC_OpenMP)
6423# 2103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6424!$omp atomic update
6425# 2103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6426#endif
6427 rhs_vf(momxb + 1)%sf(j, k + 1, l) = rhs_vf(momxb + 1)%sf(j, k + 1, &
6428 & l) + real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k + 1)) &
6429 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
6430
6431
6432# 2108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6433#if defined(MFC_OpenACC)
6434# 2108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6435!$acc atomic update
6436# 2108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6437#elif defined(MFC_OpenMP)
6438# 2108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6439!$omp atomic update
6440# 2108 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6441#endif
6442 rhs_vf(momxb)%sf(j, k + 1, l) = rhs_vf(momxb)%sf(j, k + 1, &
6443 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) &
6444 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
6445
6446
6447# 2113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6448#if defined(MFC_OpenACC)
6449# 2113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6450!$acc atomic update
6451# 2113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6452#elif defined(MFC_OpenMP)
6453# 2113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6454!$omp atomic update
6455# 2113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6456#endif
6457 rhs_vf(momxb + 2)%sf(j, k + 1, l) = rhs_vf(momxb + 2)%sf(j, k + 1, &
6458 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dy(k + 1)) &
6459 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dy(k + 1)), kind=stp)
6460
6461
6462# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6463#if defined(MFC_OpenACC)
6464# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6465!$acc atomic update
6466# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6467#elif defined(MFC_OpenMP)
6468# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6469!$omp atomic update
6470# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6471#endif
6472 rhs_vf(e_idx)%sf(j, k + 1, l) = rhs_vf(e_idx)%sf(j, k + 1, &
6473 & l) + real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k + 1)) &
6474 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
6475
6476
6477# 2123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6478#if defined(MFC_OpenACC)
6479# 2123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6480!$acc atomic update
6481# 2123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6482#elif defined(MFC_OpenMP)
6483# 2123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6484!$omp atomic update
6485# 2123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6486#endif
6487 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
6488 & l) - real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k)) &
6489 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
6490
6491
6492# 2128 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6493#if defined(MFC_OpenACC)
6494# 2128 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6495!$acc atomic update
6496# 2128 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6497#elif defined(MFC_OpenMP)
6498# 2128 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6499!$omp atomic update
6500# 2128 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6501#endif
6502 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
6503 & l) - real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k)) + 0.5_wp*dt*cfl*(rho_r*vel_r(1) &
6504 & )*(1._wp/dy(k)), kind=stp)
6505
6506
6507# 2133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6508#if defined(MFC_OpenACC)
6509# 2133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6510!$acc atomic update
6511# 2133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6512#elif defined(MFC_OpenMP)
6513# 2133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6514!$omp atomic update
6515# 2133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6516#endif
6517 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
6518 & l) - real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dy(k)) + 0.5_wp*dt*cfl*(rho_r*vel_r(3) &
6519 & )*(1._wp/dy(k)), kind=stp)
6520
6521
6522# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6523#if defined(MFC_OpenACC)
6524# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6525!$acc atomic update
6526# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6527#elif defined(MFC_OpenMP)
6528# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6529!$omp atomic update
6530# 2138 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6531#endif
6532 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
6533 & l) - real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k)) + 0.5_wp*dt*cfl*(e_r) &
6534 & *(1._wp/dy(k)), kind=stp)
6535 end do
6536 end do
6537 end do
6538
6539# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6540#if defined(MFC_OpenACC)
6541# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6542!$acc end parallel loop
6543# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6544#elif defined(MFC_OpenMP)
6545# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6546
6547# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6548!$omp end target teams loop
6549# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6550#endif
6551# 2147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6552 end if
6553 else if (idir == 3) then
6554# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6555
6556# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6557
6558# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6559#if defined(MFC_OpenACC)
6560# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6561!$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)
6562# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6563#elif defined(MFC_OpenMP)
6564# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6565
6566# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6567
6568# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6569
6570# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6571!$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)
6572# 2150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6573#endif
6574# 2153 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6575 do l = -1, p
6576 do k = 0, n
6577 do j = 0, m
6578 if (viscous) then
6579 vflux_l_arr = 0._wp
6580 vflux_r_arr = 0._wp
6581
6582# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6583
6584# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6585#if defined(MFC_OpenACC)
6586# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6587!$acc loop seq
6588# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6589#elif defined(MFC_OpenMP)
6590# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6591
6592# 2167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6593#endif
6594 do q = vidxb, vidxe
6595 ! x-direction contributions
6596
6597# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6598#if defined(MFC_OpenACC)
6599# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6600!$acc loop seq
6601# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6602#elif defined(MFC_OpenMP)
6603# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6604
6605# 2170 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6606#endif
6607 do i = -1, 1
6608 rho_l = 0._wp
6609
6610# 2173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6611#if defined(MFC_OpenACC)
6612# 2173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6613!$acc loop seq
6614# 2173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6615#elif defined(MFC_OpenMP)
6616# 2173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6617
6618# 2173 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6619#endif
6620 do r = 1, num_fluids
6621 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k, l + q)
6622 end do
6623 rho_sf_small(i) = rho_l
6624 end do
6625
6626 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb)%sf(j + 1, k, &
6627 & l + q)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j - 1, k, l + q)/rho_sf_small(-1))
6628 dvel_small(3) = (1/(2._wp*dx(j)))*(q_cons_vf(momxb + 2)%sf(j + 1, k, &
6629 & l + q)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j - 1, k, l + q)/rho_sf_small(-1))
6630
6631 if (q > vidxb) then
6632 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(3))
6633 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
6634 end if
6635 if (q < vidxe) then
6636 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(3))
6637 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
6638 end if
6639
6640 ! y-direction contributions
6641
6642# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6643#if defined(MFC_OpenACC)
6644# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6645!$acc loop seq
6646# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6647#elif defined(MFC_OpenMP)
6648# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6649
6650# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6651#endif
6652 do i = -1, 1
6653 rho_l = 0._wp
6654
6655# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6656#if defined(MFC_OpenACC)
6657# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6658!$acc loop seq
6659# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6660#elif defined(MFC_OpenMP)
6661# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6662
6663# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6664#endif
6665 do r = 1, num_fluids
6666 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i, l + q)
6667 end do
6668 rho_sf_small(i) = rho_l
6669 end do
6670
6671 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 1)%sf(j, k + 1, &
6672 & l + q)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j, k - 1, l + q)/rho_sf_small(-1))
6673 dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(momxb + 2)%sf(j, k + 1, &
6674 & l + q)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j, k - 1, l + q)/rho_sf_small(-1))
6675
6676 if (q > vidxb) then
6677 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
6678 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
6679 end if
6680 if (q < vidxe) then
6681 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
6682 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
6683 end if
6684
6685 ! z-direction contributions
6686
6687# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6688#if defined(MFC_OpenACC)
6689# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6690!$acc loop seq
6691# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6692#elif defined(MFC_OpenMP)
6693# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6694
6695# 2220 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6696#endif
6697 do i = -1, 1
6698 rho_l = 0._wp
6699
6700# 2223 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6701#if defined(MFC_OpenACC)
6702# 2223 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6703!$acc loop seq
6704# 2223 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6705#elif defined(MFC_OpenMP)
6706# 2223 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6707
6708# 2223 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6709#endif
6710 do r = 1, num_fluids
6711 rho_l = rho_l + q_cons_vf(r)%sf(j, k, l + i + q)
6712 end do
6713 rho_sf_small(i) = rho_l
6714 end do
6715 dvel_small(1) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb)%sf(j, k, &
6716 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(momxb)%sf(j, k, l - 1 + q)/rho_sf_small(-1))
6717 dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 1)%sf(j, k, &
6718 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(momxb + 1)%sf(j, k, &
6719 & l - 1 + q)/rho_sf_small(-1))
6720 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(momxb + 2)%sf(j, k, &
6721 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(momxb + 2)%sf(j, k, &
6722 & l - 1 + q)/rho_sf_small(-1))
6723 if (q > vidxb) then
6724 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
6725 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
6726 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(3))/3._wp
6727 end if
6728 if (q < vidxe) then
6729 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
6730 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
6731 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(3))/3._wp
6732 end if
6733 end do
6734 end if
6735
6736
6737# 2250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6738#if defined(MFC_OpenACC)
6739# 2250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6740!$acc loop seq
6741# 2250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6742#elif defined(MFC_OpenMP)
6743# 2250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6744
6745# 2250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6746#endif
6747 do i = 1, num_fluids
6748 alpha_rho_l(i) = 0._wp
6749 alpha_rho_r(i) = 0._wp
6750 alpha_l(i) = 0._wp
6751 alpha_r(i) = 0._wp
6752 end do
6753
6754
6755# 2258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6756#if defined(MFC_OpenACC)
6757# 2258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6758!$acc loop seq
6759# 2258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6760#elif defined(MFC_OpenMP)
6761# 2258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6762
6763# 2258 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6764#endif
6765 do i = 1, num_dims
6766 vel_l(i) = 0._wp
6767 vel_r(i) = 0._wp
6768 end do
6769
6770
6771# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6772#if defined(MFC_OpenACC)
6773# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6774!$acc loop seq
6775# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6776#elif defined(MFC_OpenMP)
6777# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6778
6779# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6780#endif
6781 do q = vidxb + 1, vidxe
6782
6783# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6784#if defined(MFC_OpenACC)
6785# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6786!$acc loop seq
6787# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6788#elif defined(MFC_OpenMP)
6789# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6790
6791# 2266 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6792#endif
6793 do i = 1, num_fluids
6794 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k, l + q)
6795 end do
6796
6797 if (num_fluids > 1) then
6798
6799# 2272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6800#if defined(MFC_OpenACC)
6801# 2272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6802!$acc loop seq
6803# 2272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6804#elif defined(MFC_OpenMP)
6805# 2272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6806
6807# 2272 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6808#endif
6809 do i = 1, num_fluids - 1
6810 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(e_idx + i)%sf(j, k, l + q)
6811 end do
6812 else
6813 alpha_l(1) = 1._wp
6814 end if
6815
6816
6817# 2280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6818#if defined(MFC_OpenACC)
6819# 2280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6820!$acc loop seq
6821# 2280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6822#elif defined(MFC_OpenMP)
6823# 2280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6824
6825# 2280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6826#endif
6827 do i = 1, num_dims
6828 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(momxb + i - 1)%sf(j, k, l + q)
6829 end do
6830 end do
6831
6832
6833# 2286 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6834#if defined(MFC_OpenACC)
6835# 2286 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6836!$acc loop seq
6837# 2286 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6838#elif defined(MFC_OpenMP)
6839# 2286 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6840
6841# 2286 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6842#endif
6843 do q = vidxb, vidxe - 1
6844
6845# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6846#if defined(MFC_OpenACC)
6847# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6848!$acc loop seq
6849# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6850#elif defined(MFC_OpenMP)
6851# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6852
6853# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6854#endif
6855 do i = 1, num_fluids
6856 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k, l + q)
6857 end do
6858
6859 if (num_fluids > 1) then
6860
6861# 2294 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6862#if defined(MFC_OpenACC)
6863# 2294 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6864!$acc loop seq
6865# 2294 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6866#elif defined(MFC_OpenMP)
6867# 2294 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6868
6869# 2294 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6870#endif
6871 do i = 1, num_fluids - 1
6872 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(e_idx + i)%sf(j, k, l + q)
6873 end do
6874 else
6875 alpha_r(1) = 1._wp
6876 end if
6877
6878
6879# 2302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6880#if defined(MFC_OpenACC)
6881# 2302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6882!$acc loop seq
6883# 2302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6884#elif defined(MFC_OpenMP)
6885# 2302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6886
6887# 2302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6888#endif
6889 do i = 1, num_dims
6890 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(momxb + i - 1)%sf(j, k, l + q)
6891 end do
6892 end do
6893
6894 if (num_fluids > 1) then
6895 alpha_l(num_fluids) = 1._wp
6896 alpha_r(num_fluids) = 1._wp
6897
6898
6899# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6900#if defined(MFC_OpenACC)
6901# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6902!$acc loop seq
6903# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6904#elif defined(MFC_OpenMP)
6905# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6906
6907# 2312 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6908#endif
6909 do i = 1, num_fluids - 1
6910 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
6911 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
6912 end do
6913 end if
6914
6915 rho_l = 0._wp; rho_r = 0._wp
6916 gamma_l = 0._wp; gamma_r = 0._wp
6917 pi_inf_l = 0._wp; pi_inf_r = 0._wp
6918
6919
6920# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6921#if defined(MFC_OpenACC)
6922# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6923!$acc loop seq
6924# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6925#elif defined(MFC_OpenMP)
6926# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6927
6928# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6929#endif
6930 do i = 1, num_fluids
6931 rho_l = rho_l + alpha_rho_l(i)
6932 gamma_l = gamma_l + alpha_l(i)*gammas(i)
6933 pi_inf_l = pi_inf_l + alpha_l(i)*pi_infs(i)
6934
6935 rho_r = rho_r + alpha_rho_r(i)
6936 gamma_r = gamma_r + alpha_r(i)*gammas(i)
6937 pi_inf_r = pi_inf_r + alpha_r(i)*pi_infs(i)
6938 end do
6939
6940
6941# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6942#if defined(MFC_OpenACC)
6943# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6944!$acc loop seq
6945# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6946#elif defined(MFC_OpenMP)
6947# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6948
6949# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6950#endif
6951 do i = 1, num_dims
6952 vel_l(i) = vel_l(i)/rho_l
6953 vel_r(i) = vel_r(i)/rho_r
6954 end do
6955
6956 if (viscous) then
6957 mu_l = 0._wp
6958 mu_r = 0._wp
6959
6960# 2343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6961#if defined(MFC_OpenACC)
6962# 2343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6963!$acc loop seq
6964# 2343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6965#elif defined(MFC_OpenMP)
6966# 2343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6967
6968# 2343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6969#endif
6970 do i = 1, num_fluids
6971 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
6972 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
6973 end do
6974
6975
6976# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6977#if defined(MFC_OpenACC)
6978# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6979!$acc atomic update
6980# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6981#elif defined(MFC_OpenMP)
6982# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6983!$omp atomic update
6984# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6985#endif
6986 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, &
6987 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l + 1)), kind=stp)
6988
6989# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6990#if defined(MFC_OpenACC)
6991# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6992!$acc atomic update
6993# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6994#elif defined(MFC_OpenMP)
6995# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6996!$omp atomic update
6997# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6998#endif
6999 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7000 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l + 1)), kind=stp)
7001
7002
7003# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7004#if defined(MFC_OpenACC)
7005# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7006!$acc atomic update
7007# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7008#elif defined(MFC_OpenMP)
7009# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7010!$omp atomic update
7011# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7012#endif
7013 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
7014 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l)), kind=stp)
7015
7016# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7017#if defined(MFC_OpenACC)
7018# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7019!$acc atomic update
7020# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7021#elif defined(MFC_OpenMP)
7022# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7023!$omp atomic update
7024# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7025#endif
7026 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7027 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l)), kind=stp)
7028
7029
7030# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7031#if defined(MFC_OpenACC)
7032# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7033!$acc atomic update
7034# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7035#elif defined(MFC_OpenMP)
7036# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7037!$omp atomic update
7038# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7039#endif
7040 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, &
7041 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l + 1)), kind=stp)
7042
7043# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7044#if defined(MFC_OpenACC)
7045# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7046!$acc atomic update
7047# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7048#elif defined(MFC_OpenMP)
7049# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7050!$omp atomic update
7051# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7052#endif
7053 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7054 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l + 1)), kind=stp)
7055
7056
7057# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7058#if defined(MFC_OpenACC)
7059# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7060!$acc atomic update
7061# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7062#elif defined(MFC_OpenMP)
7063# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7064!$omp atomic update
7065# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7066#endif
7067 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
7068 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l)), kind=stp)
7069
7070# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7071#if defined(MFC_OpenACC)
7072# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7073!$acc atomic update
7074# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7075#elif defined(MFC_OpenMP)
7076# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7077!$omp atomic update
7078# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7079#endif
7080 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7081 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l)), kind=stp)
7082
7083
7084# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7085#if defined(MFC_OpenACC)
7086# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7087!$acc atomic update
7088# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7089#elif defined(MFC_OpenMP)
7090# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7091!$omp atomic update
7092# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7093#endif
7094 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, &
7095 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7096
7097# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7098#if defined(MFC_OpenACC)
7099# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7100!$acc atomic update
7101# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7102#elif defined(MFC_OpenMP)
7103# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7104!$omp atomic update
7105# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7106#endif
7107 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7108 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l + 1)), kind=stp)
7109
7110
7111# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7112#if defined(MFC_OpenACC)
7113# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7114!$acc atomic update
7115# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7116#elif defined(MFC_OpenMP)
7117# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7118!$omp atomic update
7119# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7120#endif
7121 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
7122 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l)), kind=stp)
7123
7124# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7125#if defined(MFC_OpenACC)
7126# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7127!$acc atomic update
7128# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7129#elif defined(MFC_OpenMP)
7130# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7131!$omp atomic update
7132# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7133#endif
7134 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7135 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l)), kind=stp)
7136
7137
7138# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7139#if defined(MFC_OpenACC)
7140# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7141!$acc atomic update
7142# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7143#elif defined(MFC_OpenMP)
7144# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7145!$omp atomic update
7146# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7147#endif
7148 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, &
7149 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7150
7151# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7152#if defined(MFC_OpenACC)
7153# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7154!$acc atomic update
7155# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7156#elif defined(MFC_OpenMP)
7157# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7158!$omp atomic update
7159# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7160#endif
7161 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7162 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l + 1)), kind=stp)
7163
7164
7165# 2398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7166#if defined(MFC_OpenACC)
7167# 2398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7168!$acc atomic update
7169# 2398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7170#elif defined(MFC_OpenMP)
7171# 2398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7172!$omp atomic update
7173# 2398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7174#endif
7175 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
7176 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l)), kind=stp)
7177
7178# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7179#if defined(MFC_OpenACC)
7180# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7181!$acc atomic update
7182# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7183#elif defined(MFC_OpenMP)
7184# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7185!$omp atomic update
7186# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7187#endif
7188 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7189 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l)), kind=stp)
7190
7191
7192# 2405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7193#if defined(MFC_OpenACC)
7194# 2405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7195!$acc atomic update
7196# 2405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7197#elif defined(MFC_OpenMP)
7198# 2405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7199!$omp atomic update
7200# 2405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7201#endif
7202 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, &
7203 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7204
7205# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7206#if defined(MFC_OpenACC)
7207# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7208!$acc atomic update
7209# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7210#elif defined(MFC_OpenMP)
7211# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7212!$omp atomic update
7213# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7214#endif
7215 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7216 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7217
7218
7219# 2412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7220#if defined(MFC_OpenACC)
7221# 2412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7222!$acc atomic update
7223# 2412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7224#elif defined(MFC_OpenMP)
7225# 2412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7226!$omp atomic update
7227# 2412 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7228#endif
7229 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
7230 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l)), kind=stp)
7231
7232# 2415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7233#if defined(MFC_OpenACC)
7234# 2415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7235!$acc atomic update
7236# 2415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7237#elif defined(MFC_OpenMP)
7238# 2415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7239!$omp atomic update
7240# 2415 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7241#endif
7242 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7243 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l)), kind=stp)
7244
7245
7246# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7247#if defined(MFC_OpenACC)
7248# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7249!$acc atomic update
7250# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7251#elif defined(MFC_OpenMP)
7252# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7253!$omp atomic update
7254# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7255#endif
7256 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, &
7257 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7258
7259# 2422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7260#if defined(MFC_OpenACC)
7261# 2422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7262!$acc atomic update
7263# 2422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7264#elif defined(MFC_OpenMP)
7265# 2422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7266!$omp atomic update
7267# 2422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7268#endif
7269 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7270 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
7271
7272
7273# 2426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7274#if defined(MFC_OpenACC)
7275# 2426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7276!$acc atomic update
7277# 2426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7278#elif defined(MFC_OpenMP)
7279# 2426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7280!$omp atomic update
7281# 2426 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7282#endif
7283 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
7284 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l)), kind=stp)
7285
7286# 2429 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7287#if defined(MFC_OpenACC)
7288# 2429 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7289!$acc atomic update
7290# 2429 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7291#elif defined(MFC_OpenMP)
7292# 2429 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7293!$omp atomic update
7294# 2429 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7295#endif
7296 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7297 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l)), kind=stp)
7298 end if
7299
7300 e_l = 0._wp; e_r = 0._wp
7301 f_l = 0._wp; f_r = 0._wp
7302
7303
7304# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7305#if defined(MFC_OpenACC)
7306# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7307!$acc loop seq
7308# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7309#elif defined(MFC_OpenMP)
7310# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7311
7312# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7313#endif
7314 do q = vidxb + 1, vidxe
7315 e_l = e_l + coeff_l(q)*q_cons_vf(e_idx)%sf(j, k, l + q)
7316 f_l = f_l + coeff_l(q)*jac(j, k, l + q)
7317 end do
7318
7319
7320# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7321#if defined(MFC_OpenACC)
7322# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7323!$acc loop seq
7324# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7325#elif defined(MFC_OpenMP)
7326# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7327
7328# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7329#endif
7330 do q = vidxb, vidxe - 1
7331 e_r = e_r + coeff_r(q)*q_cons_vf(e_idx)%sf(j, k, l + q)
7332 f_r = f_r + coeff_r(q)*jac(j, k, l + q)
7333 end do
7334
7335 call 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, &
7336 & pres_l, pres_r, cfl)
7337
7338
7339# 2452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7340#if defined(MFC_OpenACC)
7341# 2452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7342!$acc loop seq
7343# 2452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7344#elif defined(MFC_OpenMP)
7345# 2452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7346
7347# 2452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7348#endif
7349 do i = 1, num_fluids
7350
7351# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7352#if defined(MFC_OpenACC)
7353# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7354!$acc atomic update
7355# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7356#elif defined(MFC_OpenMP)
7357# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7358!$omp atomic update
7359# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7360#endif
7361 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, &
7362 & l + 1) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(3))*(1._wp/dz(l + 1)) &
7363 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l + 1)), kind=stp)
7364
7365
7366# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7367#if defined(MFC_OpenACC)
7368# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7369!$acc atomic update
7370# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7371#elif defined(MFC_OpenMP)
7372# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7373!$omp atomic update
7374# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7375#endif
7376 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
7377 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(3))*(1._wp/dz(l)) &
7378 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l)), kind=stp)
7379 end do
7380
7381 if (num_fluids > 1) then
7382
7383# 2466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7384#if defined(MFC_OpenACC)
7385# 2466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7386!$acc loop seq
7387# 2466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7388#elif defined(MFC_OpenMP)
7389# 2466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7390
7391# 2466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7392#endif
7393 do i = 1, num_fluids - 1
7394
7395# 2468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7396#if defined(MFC_OpenACC)
7397# 2468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7398!$acc atomic update
7399# 2468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7400#elif defined(MFC_OpenMP)
7401# 2468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7402!$omp atomic update
7403# 2468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7404#endif
7405 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, &
7406 & l + 1) + real(0.5_wp*dt*(alpha_l(i)*vel_l(3))*(1._wp/dz(l + 1)) &
7407 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dz(l + 1)), kind=stp)
7408
7409
7410# 2473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7411#if defined(MFC_OpenACC)
7412# 2473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7413!$acc atomic update
7414# 2473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7415#elif defined(MFC_OpenMP)
7416# 2473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7417!$omp atomic update
7418# 2473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7419#endif
7420 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, &
7421 & l + 1) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, &
7422 & l + 1)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7423
7424
7425# 2478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7426#if defined(MFC_OpenACC)
7427# 2478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7428!$acc atomic update
7429# 2478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7430#elif defined(MFC_OpenMP)
7431# 2478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7432!$omp atomic update
7433# 2478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7434#endif
7435 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
7436 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(3))*(1._wp/dz(l)) - 0.5_wp*dt*cfl*(alpha_l(i)) &
7437 & *(1._wp/dz(l)), kind=stp)
7438
7439
7440# 2483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7441#if defined(MFC_OpenACC)
7442# 2483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7443!$acc atomic update
7444# 2483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7445#elif defined(MFC_OpenMP)
7446# 2483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7447!$omp atomic update
7448# 2483 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7449#endif
7450 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
7451 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_l(3)*(1._wp/dz(l)), &
7452 & kind=stp)
7453 end do
7454 end if
7455
7456
7457# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7458#if defined(MFC_OpenACC)
7459# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7460!$acc atomic update
7461# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7462#elif defined(MFC_OpenMP)
7463# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7464!$omp atomic update
7465# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7466#endif
7467 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, &
7468 & l + 1) + real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + pres_l + f_l)*(1._wp/dz(l + 1)) &
7469 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l + 1)), kind=stp)
7470
7471
7472# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7473#if defined(MFC_OpenACC)
7474# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7475!$acc atomic update
7476# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7477#elif defined(MFC_OpenMP)
7478# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7479!$omp atomic update
7480# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7481#endif
7482 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, &
7483 & l + 1) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dz(l + 1)) &
7484 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dz(l + 1)), kind=stp)
7485
7486
7487# 2500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7488#if defined(MFC_OpenACC)
7489# 2500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7490!$acc atomic update
7491# 2500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7492#elif defined(MFC_OpenMP)
7493# 2500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7494!$omp atomic update
7495# 2500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7496#endif
7497 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, &
7498 & l + 1) + real(0.5_wp*dt*rho_l*vel_l(2)*vel_l(3)*(1._wp/dz(l + 1)) &
7499 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dz(l + 1)), kind=stp)
7500
7501
7502# 2505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7503#if defined(MFC_OpenACC)
7504# 2505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7505!$acc atomic update
7506# 2505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7507#elif defined(MFC_OpenMP)
7508# 2505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7509!$omp atomic update
7510# 2505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7511#endif
7512 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7513 & l + 1) + real(0.5_wp*dt*(vel_l(3)*(e_l + pres_l + f_l))*(1._wp/dz(l + 1)) &
7514 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dz(l + 1)), kind=stp)
7515
7516
7517# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7518#if defined(MFC_OpenACC)
7519# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7520!$acc atomic update
7521# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7522#elif defined(MFC_OpenMP)
7523# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7524!$omp atomic update
7525# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7526#endif
7527 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
7528 & l) - real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + pres_l + f_l)*(1._wp/dz(l)) &
7529 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l)), kind=stp)
7530
7531
7532# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7533#if defined(MFC_OpenACC)
7534# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7535!$acc atomic update
7536# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7537#elif defined(MFC_OpenMP)
7538# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7539!$omp atomic update
7540# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7541#endif
7542 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
7543 & l) - real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dz(l)) - 0.5_wp*dt*cfl*(rho_l*vel_l(1)) &
7544 & *(1._wp/dz(l)), kind=stp)
7545
7546
7547# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7548#if defined(MFC_OpenACC)
7549# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7550!$acc atomic update
7551# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7552#elif defined(MFC_OpenMP)
7553# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7554!$omp atomic update
7555# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7556#endif
7557 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
7558 & l) - real(0.5_wp*dt*rho_l*vel_l(2)*vel_l(3)*(1._wp/dz(l)) - 0.5_wp*dt*cfl*(rho_l*vel_l(2)) &
7559 & *(1._wp/dz(l)), kind=stp)
7560
7561
7562# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7563#if defined(MFC_OpenACC)
7564# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7565!$acc atomic update
7566# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7567#elif defined(MFC_OpenMP)
7568# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7569!$omp atomic update
7570# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7571#endif
7572 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7573 & l) - real(0.5_wp*dt*(vel_l(3)*(e_l + pres_l + f_l))*(1._wp/dz(l)) - 0.5_wp*dt*cfl*(e_l) &
7574 & *(1._wp/dz(l)), kind=stp)
7575
7576
7577# 2530 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7578#if defined(MFC_OpenACC)
7579# 2530 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7580!$acc loop seq
7581# 2530 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7582#elif defined(MFC_OpenMP)
7583# 2530 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7584
7585# 2530 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7586#endif
7587 do i = 1, num_fluids
7588
7589# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7590#if defined(MFC_OpenACC)
7591# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7592!$acc atomic update
7593# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7594#elif defined(MFC_OpenMP)
7595# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7596!$omp atomic update
7597# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7598#endif
7599 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, &
7600 & l + 1) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(3))*(1._wp/dz(l + 1)) &
7601 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l + 1)), kind=stp)
7602
7603
7604# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7605#if defined(MFC_OpenACC)
7606# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7607!$acc atomic update
7608# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7609#elif defined(MFC_OpenMP)
7610# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7611!$omp atomic update
7612# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7613#endif
7614 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
7615 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(3))*(1._wp/dz(l)) &
7616 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l)), kind=stp)
7617 end do
7618
7619 if (num_fluids > 1) then
7620
7621# 2544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7622#if defined(MFC_OpenACC)
7623# 2544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7624!$acc loop seq
7625# 2544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7626#elif defined(MFC_OpenMP)
7627# 2544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7628
7629# 2544 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7630#endif
7631 do i = 1, num_fluids - 1
7632
7633# 2546 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7634#if defined(MFC_OpenACC)
7635# 2546 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7636!$acc atomic update
7637# 2546 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7638#elif defined(MFC_OpenMP)
7639# 2546 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7640!$omp atomic update
7641# 2546 "/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, &
7644 & l + 1) + real(0.5_wp*dt*(alpha_r(i)*vel_r(3))*(1._wp/dz(l + 1)) &
7645 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dz(l + 1)), kind=stp)
7646
7647
7648# 2551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7649#if defined(MFC_OpenACC)
7650# 2551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7651!$acc atomic update
7652# 2551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7653#elif defined(MFC_OpenMP)
7654# 2551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7655!$omp atomic update
7656# 2551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7657#endif
7658 rhs_vf(advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(advxb + i - 1)%sf(j, k, &
7659 & l + 1) - real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, &
7660 & l + 1)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
7661
7662
7663# 2556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7664#if defined(MFC_OpenACC)
7665# 2556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7666!$acc atomic update
7667# 2556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7668#elif defined(MFC_OpenMP)
7669# 2556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7670!$omp atomic update
7671# 2556 "/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, &
7674 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(3))*(1._wp/dz(l)) + 0.5_wp*dt*cfl*(alpha_r(i)) &
7675 & *(1._wp/dz(l)), kind=stp)
7676
7677
7678# 2561 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7679#if defined(MFC_OpenACC)
7680# 2561 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7681!$acc atomic update
7682# 2561 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7683#elif defined(MFC_OpenMP)
7684# 2561 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7685!$omp atomic update
7686# 2561 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7687#endif
7688 rhs_vf(advxb + i - 1)%sf(j, k, l) = rhs_vf(advxb + i - 1)%sf(j, k, &
7689 & l) + real(0.5_wp*dt*q_cons_vf(advxb + i - 1)%sf(j, k, l)*vel_r(3)*(1._wp/dz(l)), &
7690 & kind=stp)
7691 end do
7692 end if
7693
7694
7695# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7696#if defined(MFC_OpenACC)
7697# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7698!$acc atomic update
7699# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7700#elif defined(MFC_OpenMP)
7701# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7702!$omp atomic update
7703# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7704#endif
7705 rhs_vf(momxb + 2)%sf(j, k, l + 1) = rhs_vf(momxb + 2)%sf(j, k, &
7706 & l + 1) + real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + pres_r + f_r)*(1._wp/dz(l + 1)) &
7707 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l + 1)), kind=stp)
7708
7709
7710# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7711#if defined(MFC_OpenACC)
7712# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7713!$acc atomic update
7714# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7715#elif defined(MFC_OpenMP)
7716# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7717!$omp atomic update
7718# 2573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7719#endif
7720 rhs_vf(momxb)%sf(j, k, l + 1) = rhs_vf(momxb)%sf(j, k, &
7721 & l + 1) + real(0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dz(l + 1)) &
7722 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dz(l + 1)), kind=stp)
7723
7724
7725# 2578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7726#if defined(MFC_OpenACC)
7727# 2578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7728!$acc atomic update
7729# 2578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7730#elif defined(MFC_OpenMP)
7731# 2578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7732!$omp atomic update
7733# 2578 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7734#endif
7735 rhs_vf(momxb + 1)%sf(j, k, l + 1) = rhs_vf(momxb + 1)%sf(j, k, &
7736 & l + 1) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dz(l + 1)) &
7737 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dz(l + 1)), kind=stp)
7738
7739
7740# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7741#if defined(MFC_OpenACC)
7742# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7743!$acc atomic update
7744# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7745#elif defined(MFC_OpenMP)
7746# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7747!$omp atomic update
7748# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7749#endif
7750 rhs_vf(e_idx)%sf(j, k, l + 1) = rhs_vf(e_idx)%sf(j, k, &
7751 & l + 1) + real(0.5_wp*dt*(vel_r(3)*(e_r + pres_r + f_r))*(1._wp/dz(l + 1)) &
7752 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dz(l + 1)), kind=stp)
7753
7754
7755# 2588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7756#if defined(MFC_OpenACC)
7757# 2588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7758!$acc atomic update
7759# 2588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7760#elif defined(MFC_OpenMP)
7761# 2588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7762!$omp atomic update
7763# 2588 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7764#endif
7765 rhs_vf(momxb + 2)%sf(j, k, l) = rhs_vf(momxb + 2)%sf(j, k, &
7766 & l) - real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + pres_r + f_r)*(1._wp/dz(l)) &
7767 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l)), kind=stp)
7768
7769
7770# 2593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7771#if defined(MFC_OpenACC)
7772# 2593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7773!$acc atomic update
7774# 2593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7775#elif defined(MFC_OpenMP)
7776# 2593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7777!$omp atomic update
7778# 2593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7779#endif
7780 rhs_vf(momxb)%sf(j, k, l) = rhs_vf(momxb)%sf(j, k, &
7781 & l) - real(0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dz(l)) + 0.5_wp*dt*cfl*(rho_r*vel_r(1)) &
7782 & *(1._wp/dz(l)), kind=stp)
7783
7784
7785# 2598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7786#if defined(MFC_OpenACC)
7787# 2598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7788!$acc atomic update
7789# 2598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7790#elif defined(MFC_OpenMP)
7791# 2598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7792!$omp atomic update
7793# 2598 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7794#endif
7795 rhs_vf(momxb + 1)%sf(j, k, l) = rhs_vf(momxb + 1)%sf(j, k, &
7796 & l) - real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dz(l)) + 0.5_wp*dt*cfl*(rho_r*vel_r(2)) &
7797 & *(1._wp/dz(l)), kind=stp)
7798
7799
7800# 2603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7801#if defined(MFC_OpenACC)
7802# 2603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7803!$acc atomic update
7804# 2603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7805#elif defined(MFC_OpenMP)
7806# 2603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7807!$omp atomic update
7808# 2603 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7809#endif
7810 rhs_vf(e_idx)%sf(j, k, l) = rhs_vf(e_idx)%sf(j, k, &
7811 & l) - real(0.5_wp*dt*(vel_r(3)*(e_r + pres_r + f_r))*(1._wp/dz(l)) + 0.5_wp*dt*cfl*(e_r) &
7812 & *(1._wp/dz(l)), kind=stp)
7813 end do
7814 end do
7815 end do
7816
7817# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7818#if defined(MFC_OpenACC)
7819# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7820!$acc end parallel loop
7821# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7822#elif defined(MFC_OpenMP)
7823# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7824
7825# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7826!$omp end target teams loop
7827# 2610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7828#endif
7829# 2612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7830 end if
7831
7832 end subroutine s_igr_riemann_solver
7833
7834 !> Compute pressure and maximum wavespeed from left and right reconstructed states
7835 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)
7836
7837
7838# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7839#if MFC_OpenACC
7840# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7841!$acc routine seq
7842# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7843#elif MFC_OpenMP
7844# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7845
7846# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7847
7848# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7849!$omp declare target device_type(any)
7850# 2619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7851#endif
7852
7853 real(wp), intent(in) :: E_L, gamma_L, pi_inf_L, rho_L
7854 real(wp), intent(in) :: E_R, gamma_R, pi_inf_R, rho_R
7855 real(wp), dimension(num_dims), intent(in) :: vel_L, vel_R
7856 real(wp), intent(out) :: pres_L, pres_R, cfl
7857 real(wp) :: a_L, a_R
7858
7859 if (num_dims == 2) then
7860 pres_l = (e_l - pi_inf_l - 0.5_wp*rho_l*(vel_l(1)**2._wp + vel_l(2)**2._wp))/gamma_l
7861 pres_r = (e_r - pi_inf_r - 0.5_wp*rho_r*(vel_r(1)**2._wp + vel_r(2)**2._wp))/gamma_r
7862
7863 if (igr_pres_lim) then
7864 pres_l = max(pres_l, 0._wp)
7865 pres_r = max(pres_r, 0._wp)
7866 end if
7867
7868 a_l = sqrt((pres_l*(1._wp/gamma_l + 1._wp) + pi_inf_l/gamma_l)/rho_l)
7869 a_r = sqrt((pres_r*(1._wp/gamma_r + 1._wp) + pi_inf_r/gamma_r)/rho_r)
7870
7871 cfl = max(sqrt(vel_l(1)**2._wp + vel_l(2)**2._wp), sqrt(vel_r(1)**2._wp + vel_r(2)**2._wp)) + max(a_l, a_r)
7872 else if (num_dims == 3) then
7873# 2642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7874 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
7875 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
7876
7877 if (igr_pres_lim) then
7878 pres_l = max(pres_l, 0._wp)
7879 pres_r = max(pres_r, 0._wp)
7880 end if
7881
7882 a_l = sqrt((pres_l*(1._wp/gamma_l + 1._wp) + pi_inf_l/gamma_l)/rho_l)
7883 a_r = sqrt((pres_r*(1._wp/gamma_r + 1._wp) + pi_inf_r/gamma_r)/rho_r)
7884
7885 cfl = max(sqrt(vel_l(1)**2._wp + vel_l(2)**2._wp + vel_l(3)**2._wp), &
7886 & sqrt(vel_r(1)**2._wp + vel_r(2)**2._wp + vel_r(3)**2._wp)) + max(a_l, a_r)
7887# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7888 end if
7889
7890 end subroutine s_get_derived_states
7891
7892 !> Accumulate the IGR numerical flux divergence into the RHS along the specified direction
7893 subroutine s_igr_flux_add(q_cons_vf, rhs_vf, flux_vf, idir)
7894
7895 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf, flux_vf, rhs_vf
7896 integer, intent(in) :: idir
7897
7898 if (idir == 1) then
7899
7900# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7901
7902# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7903#if defined(MFC_OpenACC)
7904# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7905!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
7906# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7907#elif defined(MFC_OpenMP)
7908# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7909
7910# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7911
7912# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7913
7914# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7915!$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)
7916# 2667 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7917#endif
7918 do i = 1, sys_size
7919 do l = 0, p
7920 do k = 0, n
7921 do j = 0, m
7922 rhs_vf(i)%sf(j, k, l) = 1._wp/dx(j)*(flux_vf(i)%sf(j - 1, k, l) - flux_vf(i)%sf(j, k, l))
7923 end do
7924 end do
7925 end do
7926 end do
7927
7928# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7929#if defined(MFC_OpenACC)
7930# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7931!$acc end parallel loop
7932# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7933#elif defined(MFC_OpenMP)
7934# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7935
7936# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7937!$omp end target teams loop
7938# 2677 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7939#endif
7940 else if (idir == 2) then
7941
7942# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7943
7944# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7945#if defined(MFC_OpenACC)
7946# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7947!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
7948# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7949#elif defined(MFC_OpenMP)
7950# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7951
7952# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7953
7954# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7955
7956# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7957!$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)
7958# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7959#endif
7960 do i = 1, sys_size
7961 do l = 0, p
7962 do k = 0, n
7963 do j = 0, m
7964 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) + 1._wp/dy(k)*(flux_vf(i)%sf(j, k - 1, &
7965 & l) - flux_vf(i)%sf(j, k, l))
7966 end do
7967 end do
7968 end do
7969 end do
7970
7971# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7972#if defined(MFC_OpenACC)
7973# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7974!$acc end parallel loop
7975# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7976#elif defined(MFC_OpenMP)
7977# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7978
7979# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7980!$omp end target teams loop
7981# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7982#endif
7983 else if (idir == 3) then
7984
7985# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7986
7987# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7988#if defined(MFC_OpenACC)
7989# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7990!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
7991# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7992#elif defined(MFC_OpenMP)
7993# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7994
7995# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7996
7997# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7998
7999# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8000!$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)
8001# 2692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8002#endif
8003 do i = 1, sys_size
8004 do l = 0, p
8005 do k = 0, n
8006 do j = 0, m
8007 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) + 1._wp/dz(l)*(flux_vf(i)%sf(j, k, &
8008 & l - 1) - flux_vf(i)%sf(j, k, l))
8009 end do
8010 end do
8011 end do
8012 end do
8013
8014# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8015#if defined(MFC_OpenACC)
8016# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8017!$acc end parallel loop
8018# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8019#elif defined(MFC_OpenMP)
8020# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8021
8022# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8023!$omp end target teams loop
8024# 2703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8025#endif
8026 end if
8027
8028 end subroutine s_igr_flux_add
8029
8030 !> Finalize the IGR module
8032
8033 if (viscous) then
8034#ifdef MFC_DEBUG
8035# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8036 block
8037# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8038 use iso_fortran_env, only: output_unit
8039# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8040
8041# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8042 print *, 'm_igr.fpp:2712: ', '@:DEALLOCATE(Res_igr)'
8043# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8044
8045# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8046 call flush (output_unit)
8047# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8048 end block
8049# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8050#endif
8051# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8052
8053# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8054#if defined(MFC_OpenACC)
8055# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8056!$acc exit data delete(Res_igr)
8057# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8058#elif defined(MFC_OpenMP)
8059# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8060!$omp target exit data map(release:Res_igr)
8061# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8062#endif
8063# 2712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8064 deallocate (res_igr)
8065 end if
8066
8067#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
8068#ifdef MFC_DEBUG
8069# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8070 block
8071# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8072 use iso_fortran_env, only: output_unit
8073# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8074
8075# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8076 print *, 'm_igr.fpp:2716: ', '@:DEALLOCATE(jac, jac_rhs)'
8077# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8078
8079# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8080 call flush (output_unit)
8081# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8082 end block
8083# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8084#endif
8085# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8086
8087# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8088#if defined(MFC_OpenACC)
8089# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8090!$acc exit data delete(jac, jac_rhs)
8091# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8092#elif defined(MFC_OpenMP)
8093# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8094!$omp target exit data map(release:jac, jac_rhs)
8095# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8096#endif
8097# 2716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8098 deallocate (jac, jac_rhs)
8099
8100 if (igr_iter_solver == 1) then ! Jacobi iteration
8101#ifdef MFC_DEBUG
8102# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8103 block
8104# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8105 use iso_fortran_env, only: output_unit
8106# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8107
8108# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8109 print *, 'm_igr.fpp:2719: ', '@:DEALLOCATE(jac_old)'
8110# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8111
8112# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8113 call flush (output_unit)
8114# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8115 end block
8116# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8117#endif
8118# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8119
8120# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8121#if defined(MFC_OpenACC)
8122# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8123!$acc exit data delete(jac_old)
8124# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8125#elif defined(MFC_OpenMP)
8126# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8127!$omp target exit data map(release:jac_old)
8128# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8129#endif
8130# 2719 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8131 deallocate (jac_old)
8132 end if
8133#else
8134 if (nv_uvm_temp_on_gpu(1) == 1) then
8135#ifdef MFC_DEBUG
8136# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8137 block
8138# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8139 use iso_fortran_env, only: output_unit
8140# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8141
8142# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8143 print *, 'm_igr.fpp:2723: ', '@:DEALLOCATE(jac)'
8144# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8145
8146# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8147 call flush (output_unit)
8148# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8149 end block
8150# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8151#endif
8152# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8153
8154# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8155#if defined(MFC_OpenACC)
8156# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8157!$acc exit data delete(jac)
8158# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8159#elif defined(MFC_OpenMP)
8160# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8161!$omp target exit data map(release:jac)
8162# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8163#endif
8164# 2723 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8165 deallocate (jac)
8166 else
8167 nullify (jac)
8168 deallocate (jac_host)
8169 end if
8170
8171 if (nv_uvm_temp_on_gpu(2) == 1) then
8172#ifdef MFC_DEBUG
8173# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8174 block
8175# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8176 use iso_fortran_env, only: output_unit
8177# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8178
8179# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8180 print *, 'm_igr.fpp:2730: ', '@:DEALLOCATE(jac_rhs)'
8181# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8182
8183# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8184 call flush (output_unit)
8185# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8186 end block
8187# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8188#endif
8189# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8190
8191# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8192#if defined(MFC_OpenACC)
8193# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8194!$acc exit data delete(jac_rhs)
8195# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8196#elif defined(MFC_OpenMP)
8197# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8198!$omp target exit data map(release:jac_rhs)
8199# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8200#endif
8201# 2730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8202 deallocate (jac_rhs)
8203 else
8204 nullify (jac_rhs)
8205 deallocate (jac_rhs_host)
8206 end if
8207
8208 if (igr_iter_solver == 1) then ! Jacobi iteration
8209 if (nv_uvm_temp_on_gpu(3) == 1) then
8210#ifdef MFC_DEBUG
8211# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8212 block
8213# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8214 use iso_fortran_env, only: output_unit
8215# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8216
8217# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8218 print *, 'm_igr.fpp:2738: ', '@:DEALLOCATE(jac_old)'
8219# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8220
8221# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8222 call flush (output_unit)
8223# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8224 end block
8225# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8226#endif
8227# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8228
8229# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8230#if defined(MFC_OpenACC)
8231# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8232!$acc exit data delete(jac_old)
8233# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8234#elif defined(MFC_OpenMP)
8235# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8236!$omp target exit data map(release:jac_old)
8237# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8238#endif
8239# 2738 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8240 deallocate (jac_old)
8241 else
8242 nullify (jac_old)
8243 deallocate (jac_old_host)
8244 end if
8245 end if
8246#endif
8247
8248# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8249#ifdef MFC_DEBUG
8250# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8251 block
8252# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8253 use iso_fortran_env, only: output_unit
8254# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8255
8256# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8257 print *, 'm_igr.fpp:2747: ', '@:DEALLOCATE(coeff_L, coeff_R)'
8258# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8259
8260# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8261 call flush (output_unit)
8262# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8263 end block
8264# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8265#endif
8266# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8267
8268# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8269#if defined(MFC_OpenACC)
8270# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8271!$acc exit data delete(coeff_L, coeff_R)
8272# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8273#elif defined(MFC_OpenMP)
8274# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8275!$omp target exit data map(release:coeff_L, coeff_R)
8276# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8277#endif
8278# 2747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8279 deallocate (coeff_l, coeff_r)
8280# 2749 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8281
8282 end subroutine s_finalize_igr_module
8283
8284end 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
integer, dimension(:,:), allocatable re_idx
logical viscous
Viscous effects.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Stiffened gas EOS parameters and Reynolds numbers per fluid.
logical nv_uvm_pref_gpu
Enable explicit gpu memory hints (default FALSE).
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()
Initialize the IGR module.
real(wp), dimension(:,:,:), allocatable jac_rhs
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)
Accumulate the IGR numerical flux divergence into the RHS along the specified direction.
real(wp), dimension(:,:), allocatable res_igr
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)
Compute the IGR viscous stress contribution in the x-direction and accumulate into the RHS.
integer vidxb
integer(kind=8) r
integer(kind=8) k
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)
Compute pressure and maximum wavespeed from left and right reconstructed states.
subroutine, public s_finalize_igr_module()
Finalize the IGR module.
real(wp), dimension(:,:,:), allocatable jac_old
real(wp), dimension(:), allocatable coeff_r
subroutine, public s_igr_riemann_solver(q_cons_vf, rhs_vf, idir)
Evaluate the approximate Riemann solver for the IGR scheme along a given direction.
real(wp), dimension(:,:,:), allocatable, target jac
real(wp) alf_igr
subroutine, public s_igr_iterative_solve(q_cons_vf, bc_type, t_step)
Iteratively solve the implicit gradient reconstruction system.
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).