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# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
13
14! For moving immersed boundaries in simulation
15# 12 "/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# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
32! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
33! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
34# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
35# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
36# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
37
38# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40
41# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42
43# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44
45# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46
47# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48
49# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50
51# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56! New line at end of file is required for FYPP
57# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
58# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
59# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
60# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65
66# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69
70# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
72! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
73! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
74# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
76# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
77
78# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80
81# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82
83# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84
85# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86
87# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
88
89# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
90
91# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
92
93# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
94
95# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
96! New line at end of file is required for FYPP
97# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
98
99# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138
139# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151
152# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153
154# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155
156# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157
158# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159
160# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161
162# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163
164# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165
166# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
167
168# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
169
170# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
171
172# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
173
174# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
175! New line at end of file is required for FYPP
176# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
177# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
178# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
179# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184
185# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
186# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
188
189# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
191! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
192! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
193# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
194# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
195# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
196
197# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
198# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
199
200# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201
202# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203
204# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205
206# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
207
208# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
209
210# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
211
212# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
213
214# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
215! New line at end of file is required for FYPP
216# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
217
218# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223
224# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225
226# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227
228# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229
230# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231
232# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233
234# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235
236# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237
238# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239
240# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241
242# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243
244# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245
246# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247
248# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249
250# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251
252# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253
254# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255
256# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257
258# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259
260# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261
262# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263
264# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
265
266# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
267
268# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
269
270# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
271
272# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
273! New line at end of file is required for FYPP
274# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
275
276! GPU parallel region (scalar reductions, maxval/minval)
277# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! GPU parallel loop over threads (most common GPU macro)
280# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Required closing for GPU_PARALLEL_LOOP
283# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Mark routine for device compilation
286# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Declare device-resident data
289# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Inner loop within a GPU parallel region
292# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294! Scoped GPU data region
295# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296
297! Host code with device pointers (for MPI with GPU buffers)
298# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299
300! Allocate device memory (unscoped)
301# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302
303! Free device memory
304# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305
306! Atomic operation on device
307# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308
309! End atomic capture block
310# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311
312! Copy data between host and device
313# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314
315! Synchronization barrier
316# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
317
318! Import GPU library module (openacc or omp_lib)
319# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
320
321! Emit code only for AMD compiler
322# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323
324! Emit code for non-Cray compilers
325# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
326
327! Emit code only for Cray compiler
328# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
329
330! Emit code for non-NVIDIA compilers
331# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
332
333# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
334# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
335! New line at end of file is required for FYPP
336# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
337
338# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
339
340! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
341! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
342! example see misc/nvidia_uvm/bind.sh.
343# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344
345! Allocate and create GPU device memory
346# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
347
348! Free GPU device memory and deallocate
349# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
350
351! Cray-specific GPU pointer setup for vector fields
352# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
353
354! Cray-specific GPU pointer setup for scalar fields
355# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
356
357! Cray-specific GPU pointer setup for acoustic source spatials
358# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
359
360# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
361
362# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
363! New line at end of file is required for FYPP
364# 7 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp" 2
365
366!> @brief Iterative ghost rasterization (IGR) for sharp immersed boundary treatment
367module m_igr
368
372 use m_eos
373 use m_mpi_proxy
374 use m_helper
376
377 implicit none
378
381
382 !> @cond
383#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
384 integer, dimension(3) :: nv_uvm_temp_on_gpu
385 real(wp), pointer, contiguous, dimension(:,:,:) :: jac, jac_rhs, jac_old
386 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_host
387 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_rhs_host
388 real(wp), allocatable, dimension(:,:,:), pinned, target :: jac_old_host
389#else
390 !> @endcond
391 real(wp), allocatable, target, dimension(:,:,:) :: jac
392 real(wp), allocatable, dimension(:,:,:) :: jac_rhs, jac_old
393
394# 35 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
395#if defined(MFC_OpenACC)
396# 35 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
397!$acc declare create(jac, jac_rhs, jac_old)
398# 35 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
399#elif defined(MFC_OpenMP)
400# 35 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
401!$omp declare target (jac, jac_rhs, jac_old)
402# 35 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
403#endif
404# 36 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
405 !> @cond
406#endif
407 !> @endcond
408 type(scalar_field), dimension(1) :: jac_sf
409
410# 40 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
411#if defined(MFC_OpenACC)
412# 40 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
413!$acc declare create(jac_sf)
414# 40 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
415#elif defined(MFC_OpenMP)
416# 40 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
417!$omp declare target (jac_sf)
418# 40 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
419#endif
420# 41 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
421
422 real(wp), allocatable, dimension(:,:) :: res_igr
423
424# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
425#if defined(MFC_OpenACC)
426# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
427!$acc declare create(Res_igr)
428# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
429#elif defined(MFC_OpenMP)
430# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
431!$omp declare target (Res_igr)
432# 43 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
433#endif
434# 44 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
435
436 real(wp) :: alf_igr
437
438# 46 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
439#if defined(MFC_OpenACC)
440# 46 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
441!$acc declare create(alf_igr)
442# 46 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
443#elif defined(MFC_OpenMP)
444# 46 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
445!$omp declare target (alf_igr)
446# 46 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
447#endif
448# 47 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
449
450# 49 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
451 integer :: vidxb, vidxe
452
453# 50 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
454#if defined(MFC_OpenACC)
455# 50 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
456!$acc declare create(vidxb, vidxe)
457# 50 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
458#elif defined(MFC_OpenMP)
459# 50 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
460!$omp declare target (vidxb, vidxe)
461# 50 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
462#endif
463# 51 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
464
465 real(wp), allocatable, dimension(:) :: coeff_l, coeff_r
466
467# 53 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
468#if defined(MFC_OpenACC)
469# 53 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
470!$acc declare create(coeff_L, coeff_R)
471# 53 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
472#elif defined(MFC_OpenMP)
473# 53 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
474!$omp declare target (coeff_L, coeff_R)
475# 53 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
476#endif
477# 54 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
478# 83 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
479
480 integer(kind=8) :: i, j, k, l, q, r
481
482 ! Scalar copies of eqn_idx fields used in GPU atomics. nvfortran OpenMP does not support derived-type member indexing on the LHS
483 ! of atomic updates; plain integers work.
485
486# 89 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
487#if defined(MFC_OpenACC)
488# 89 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
489!$acc declare create(igr_momxb, igr_E_idx, igr_advxb)
490# 89 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
491#elif defined(MFC_OpenMP)
492# 89 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
493!$omp declare target (igr_momxb, igr_E_idx, igr_advxb)
494# 89 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
495#endif
496# 90 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
497
498contains
499
500 !> Initialize the IGR module
502
503 if (viscous) then
504#ifdef MFC_DEBUG
505# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
506 block
507# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
508 use iso_fortran_env, only: output_unit
509# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
510
511# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
512 print *, 'm_igr.fpp:97: ', '@:ALLOCATE(Res_igr(1:2, 1:maxval(Re_size)))'
513# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
514
515# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
516 call flush (output_unit)
517# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
518 end block
519# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
520#endif
521# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
522 allocate (res_igr(1:2, 1:maxval(re_size)))
523# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
524
525# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
526
527# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
528#if defined(MFC_OpenACC)
529# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
530!$acc enter data create(Res_igr)
531# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
532#elif defined(MFC_OpenMP)
533# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
534!$omp target enter data map(always,alloc:Res_igr)
535# 97 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
536#endif
537# 98 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
538 do i = 1, 2
539 do j = 1, re_size(i)
540 res_igr(i, j) = fluid_pp(re_idx(i, j))%Re(i)
541 end do
542 end do
543
544# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
545#if defined(MFC_OpenACC)
546# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
547!$acc update device(Res_igr, Re_idx, Re_size)
548# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
549#elif defined(MFC_OpenMP)
550# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
551!$omp target update to(Res_igr, Re_idx, Re_size)
552# 103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
553#endif
554# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
555#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
556# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
557 block
558# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
559 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
560# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
561 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
562# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
563#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
564# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
565 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
566# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
567#else
568# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
569 use cuda_runtime_api
570# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
571#endif
572# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
573 integer :: istat
574# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
575
576# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
577 if (nv_uvm_pref_gpu) then
578# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
579 ! set preferred location GPU
580# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
581 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetpreferredlocation, 0)
582# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
583 if (istat /= cudasuccess) then
584# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
585 write (*, "('Error code: ',I0, ': ')") istat
586# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
587 end if
588# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
589 ! set accessed by CPU
590# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
591 istat = cudamemadvise(c_devloc(res_igr), sizeof(res_igr), cudamemadvisesetaccessedby, cudacpudeviceid)
592# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
593 if (istat /= cudasuccess) then
594# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
595 write (*, "('Error code: ',I0, ': ')") istat
596# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
597 end if
598# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
599 ! prefetch to GPU - physically populate memory pages
600# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
601 istat = cudamemprefetchasync(c_devloc(res_igr), sizeof(res_igr), 0, 0)
602# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
603 if (istat /= cudasuccess) then
604# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
605 write (*, "('Error code: ',I0, ': ')") istat
606# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
607 end if
608# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
609 end if
610# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
611 end block
612# 104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
613#endif
614# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
615#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
616# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
617 block
618# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
619 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
620# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
621 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
622# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
623#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
624# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
625 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
626# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
627#else
628# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
629 use cuda_runtime_api
630# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
631#endif
632# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
633 integer :: istat
634# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
635
636# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
637 if (nv_uvm_pref_gpu) then
638# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
639 ! set preferred location GPU
640# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
641 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetpreferredlocation, 0)
642# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
643 if (istat /= cudasuccess) then
644# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
645 write (*, "('Error code: ',I0, ': ')") istat
646# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
647 end if
648# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
649 ! set accessed by CPU
650# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
651 istat = cudamemadvise(c_devloc(re_idx), sizeof(re_idx), cudamemadvisesetaccessedby, cudacpudeviceid)
652# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
653 if (istat /= cudasuccess) then
654# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
655 write (*, "('Error code: ',I0, ': ')") istat
656# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
657 end if
658# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
659 ! prefetch to GPU - physically populate memory pages
660# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
661 istat = cudamemprefetchasync(c_devloc(re_idx), sizeof(re_idx), 0, 0)
662# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
663 if (istat /= cudasuccess) then
664# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
665 write (*, "('Error code: ',I0, ': ')") istat
666# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
667 end if
668# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
669 end if
670# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
671 end block
672# 105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
673#endif
674# 106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
675 end if
676
677#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
678#ifdef MFC_DEBUG
679# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
680 block
681# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
682 use iso_fortran_env, only: output_unit
683# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
684
685# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
686 print *, 'm_igr.fpp:109: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
687# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
688
689# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
690 call flush (output_unit)
691# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
692 end block
693# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
694#endif
695# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
696 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
697# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
698
699# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
700
701# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
702#if defined(MFC_OpenACC)
703# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
704!$acc enter data create(jac)
705# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
706#elif defined(MFC_OpenMP)
707# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
708!$omp target enter data map(always,alloc:jac)
709# 109 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
710#endif
711# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
712#ifdef MFC_DEBUG
713# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
714 block
715# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
716 use iso_fortran_env, only: output_unit
717# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
718
719# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
720 print *, 'm_igr.fpp:110: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
721# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
722
723# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
724 call flush (output_unit)
725# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
726 end block
727# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
728#endif
729# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
730 allocate (jac_rhs(-1:m,-1:n,-1:p))
731# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
732
733# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
734
735# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
736#if defined(MFC_OpenACC)
737# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
738!$acc enter data create(jac_rhs)
739# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
740#elif defined(MFC_OpenMP)
741# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
742!$omp target enter data map(always,alloc:jac_rhs)
743# 110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
744#endif
745# 111 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
746
747 if (igr_iter_solver == 1) then ! Jacobi iteration
748#ifdef MFC_DEBUG
749# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
750 block
751# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
752 use iso_fortran_env, only: output_unit
753# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
754
755# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
756 print *, 'm_igr.fpp:113: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
757# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
758
759# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
760 call flush (output_unit)
761# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
762 end block
763# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
764#endif
765# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
766 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
767# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
768
769# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
770
771# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
772#if defined(MFC_OpenACC)
773# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
774!$acc enter data create(jac_old)
775# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
776#elif defined(MFC_OpenMP)
777# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
778!$omp target enter data map(always,alloc:jac_old)
779# 113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
780#endif
781# 114 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
782 end if
783#else
784 ! create map
785 nv_uvm_temp_on_gpu(1:3) = 0
786 nv_uvm_temp_on_gpu(1:nv_uvm_igr_temps_on_gpu) = 1
787
788 if (nv_uvm_temp_on_gpu(1) == 1) then
789#ifdef MFC_DEBUG
790# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
791 block
792# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
793 use iso_fortran_env, only: output_unit
794# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
795
796# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
797 print *, 'm_igr.fpp:121: ', '@:ALLOCATE(jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
798# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
799
800# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
801 call flush (output_unit)
802# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
803 end block
804# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
805#endif
806# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
807 allocate (jac(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
808# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
809
810# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
811
812# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
813#if defined(MFC_OpenACC)
814# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
815!$acc enter data create(jac)
816# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
817#elif defined(MFC_OpenMP)
818# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
819!$omp target enter data map(always,alloc:jac)
820# 121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
821#endif
822# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
823#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
824# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
825 block
826# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
827 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
828# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
829 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
830# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
831#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
832# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
833 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
834# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
835#else
836# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
837 use cuda_runtime_api
838# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
839#endif
840# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
841 integer :: istat
842# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
843
844# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
845 if (nv_uvm_pref_gpu) then
846# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
847 ! set preferred location GPU
848# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
849 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetpreferredlocation, 0)
850# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
851 if (istat /= cudasuccess) then
852# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
853 write (*, "('Error code: ',I0, ': ')") istat
854# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
855 end if
856# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
857 ! set accessed by CPU
858# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
859 istat = cudamemadvise(c_devloc(jac), sizeof(jac), cudamemadvisesetaccessedby, cudacpudeviceid)
860# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
861 if (istat /= cudasuccess) then
862# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
863 write (*, "('Error code: ',I0, ': ')") istat
864# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
865 end if
866# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
867 ! prefetch to GPU - physically populate memory pages
868# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
869 istat = cudamemprefetchasync(c_devloc(jac), sizeof(jac), 0, 0)
870# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
871 if (istat /= cudasuccess) then
872# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
873 write (*, "('Error code: ',I0, ': ')") istat
874# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
875 end if
876# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
877 end if
878# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
879 end block
880# 122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
881#endif
882# 123 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
883 else
884 allocate (jac_host(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end))
885
886 jac(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end) => jac_host(:,:,:)
887 end if
888
889 if (nv_uvm_temp_on_gpu(2) == 1) then
890#ifdef MFC_DEBUG
891# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
892 block
893# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
894 use iso_fortran_env, only: output_unit
895# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
896
897# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
898 print *, 'm_igr.fpp:130: ', '@:ALLOCATE(jac_rhs(-1:m,-1:n,-1:p))'
899# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
900
901# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
902 call flush (output_unit)
903# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
904 end block
905# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
906#endif
907# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
908 allocate (jac_rhs(-1:m,-1:n,-1:p))
909# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
910
911# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
912
913# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
914#if defined(MFC_OpenACC)
915# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
916!$acc enter data create(jac_rhs)
917# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
918#elif defined(MFC_OpenMP)
919# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
920!$omp target enter data map(always,alloc:jac_rhs)
921# 130 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
922#endif
923# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
924#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
925# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
926 block
927# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
928 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
929# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
930 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
931# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
932#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
933# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
934 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
935# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
936#else
937# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
938 use cuda_runtime_api
939# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
940#endif
941# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
942 integer :: istat
943# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
944
945# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
946 if (nv_uvm_pref_gpu) then
947# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
948 ! set preferred location GPU
949# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
950 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetpreferredlocation, 0)
951# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
952 if (istat /= cudasuccess) then
953# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
954 write (*, "('Error code: ',I0, ': ')") istat
955# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
956 end if
957# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
958 ! set accessed by CPU
959# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
960 istat = cudamemadvise(c_devloc(jac_rhs), sizeof(jac_rhs), cudamemadvisesetaccessedby, cudacpudeviceid)
961# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
962 if (istat /= cudasuccess) then
963# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
964 write (*, "('Error code: ',I0, ': ')") istat
965# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
966 end if
967# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
968 ! prefetch to GPU - physically populate memory pages
969# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
970 istat = cudamemprefetchasync(c_devloc(jac_rhs), sizeof(jac_rhs), 0, 0)
971# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
972 if (istat /= cudasuccess) then
973# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
974 write (*, "('Error code: ',I0, ': ')") istat
975# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
976 end if
977# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
978 end if
979# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
980 end block
981# 131 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
982#endif
983# 132 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
984 else
985 allocate (jac_rhs_host(-1:m,-1:n,-1:p))
986 jac_rhs(-1:m,-1:n,-1:p) => jac_rhs_host(:,:,:)
987 end if
988
989 if (igr_iter_solver == 1) then ! Jacobi iteration
990 if (nv_uvm_temp_on_gpu(3) == 1) then
991#ifdef MFC_DEBUG
992# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
993 block
994# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
995 use iso_fortran_env, only: output_unit
996# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
997
998# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
999 print *, 'm_igr.fpp:139: ', '@:ALLOCATE(jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1000# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1001
1002# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1003 call flush (output_unit)
1004# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1005 end block
1006# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1007#endif
1008# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1009 allocate (jac_old(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1010# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1011
1012# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1013
1014# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1015#if defined(MFC_OpenACC)
1016# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1017!$acc enter data create(jac_old)
1018# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1019#elif defined(MFC_OpenMP)
1020# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1021!$omp target enter data map(always,alloc:jac_old)
1022# 139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1023#endif
1024# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1025#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
1026# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1027 block
1028# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1029 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
1030# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1031 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
1032# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1033#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
1034# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1035 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
1036# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1037#else
1038# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1039 use cuda_runtime_api
1040# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1041#endif
1042# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1043 integer :: istat
1044# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1045
1046# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1047 if (nv_uvm_pref_gpu) then
1048# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1049 ! set preferred location GPU
1050# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1051 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetpreferredlocation, 0)
1052# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1053 if (istat /= cudasuccess) then
1054# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1055 write (*, "('Error code: ',I0, ': ')") istat
1056# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1057 end if
1058# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1059 ! set accessed by CPU
1060# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1061 istat = cudamemadvise(c_devloc(jac_old), sizeof(jac_old), cudamemadvisesetaccessedby, cudacpudeviceid)
1062# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1063 if (istat /= cudasuccess) then
1064# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1065 write (*, "('Error code: ',I0, ': ')") istat
1066# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1067 end if
1068# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1069 ! prefetch to GPU - physically populate memory pages
1070# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1071 istat = cudamemprefetchasync(c_devloc(jac_old), sizeof(jac_old), 0, 0)
1072# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1073 if (istat /= cudasuccess) then
1074# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1075 write (*, "('Error code: ',I0, ': ')") istat
1076# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1077 end if
1078# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1079 end if
1080# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1081 end block
1082# 140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1083#endif
1084# 141 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1085 else
1086 allocate (jac_old_host(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end,idwbuff(3)%beg:idwbuff(3)%end))
1087
1088 jac_old(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
1089 & idwbuff(3)%beg:idwbuff(3)%end) => jac_old_host(:,:,:)
1090 end if
1091 end if
1092#endif
1093
1094
1095# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1096
1097# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1098#if defined(MFC_OpenACC)
1099# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1100!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1101# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1102#elif defined(MFC_OpenMP)
1103# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1104
1105# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1106
1107# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1108
1109# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1110!$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)
1111# 150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1112#endif
1113# 151 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1114 do l = idwbuff(3)%beg, idwbuff(3)%end
1115 do k = idwbuff(2)%beg, idwbuff(2)%end
1116 do j = idwbuff(1)%beg, idwbuff(1)%end
1117 jac(j, k, l) = 0._stp
1118 if (igr_iter_solver == 1) jac_old(j, k, l) = 0._stp
1119 end do
1120 end do
1121 end do
1122
1123# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1124#if defined(MFC_OpenACC)
1125# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1126!$acc end parallel loop
1127# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1128#elif defined(MFC_OpenMP)
1129# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1130
1131# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1132!$omp end target teams loop
1133# 159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1134#endif
1135# 160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1136
1137 if (p == 0) then
1138 alf_igr = alf_factor*max(dx(1), dy(1))**2._wp
1139 else
1140 alf_igr = alf_factor*max(dx(1), dy(1), dz(1))**2._wp
1141 end if
1142
1143# 166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1144#if defined(MFC_OpenACC)
1145# 166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1146!$acc update device(alf_igr)
1147# 166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1148#elif defined(MFC_OpenMP)
1149# 166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1150!$omp target update to(alf_igr)
1151# 166 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1152#endif
1153# 167 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1154
1155 igr_momxb = eqn_idx%mom%beg
1156 igr_e_idx = eqn_idx%E
1157 igr_advxb = eqn_idx%adv%beg
1158
1159# 171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1160#if defined(MFC_OpenACC)
1161# 171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1162!$acc update device(igr_momxb, igr_E_idx, igr_advxb)
1163# 171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1164#elif defined(MFC_OpenMP)
1165# 171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1166!$omp target update to(igr_momxb, igr_E_idx, igr_advxb)
1167# 171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1168#endif
1169# 172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1170
1171# 174 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1172 if (igr_order == 3) then
1173 vidxb = -1; vidxe = 2
1174
1175# 176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1176#if defined(MFC_OpenACC)
1177# 176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1178!$acc update device(vidxb, vidxe)
1179# 176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1180#elif defined(MFC_OpenMP)
1181# 176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1182!$omp target update to(vidxb, vidxe)
1183# 176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1184#endif
1185# 177 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1186
1187#ifdef MFC_DEBUG
1188# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1189 block
1190# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1191 use iso_fortran_env, only: output_unit
1192# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1193
1194# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1195 print *, 'm_igr.fpp:178: ', '@:ALLOCATE(coeff_L(0:2))'
1196# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1197
1198# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1199 call flush (output_unit)
1200# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1201 end block
1202# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1203#endif
1204# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1205 allocate (coeff_l(0:2))
1206# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1207
1208# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1209
1210# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1211#if defined(MFC_OpenACC)
1212# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1213!$acc enter data create(coeff_L)
1214# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1215#elif defined(MFC_OpenMP)
1216# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1217!$omp target enter data map(always,alloc:coeff_L)
1218# 178 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1219#endif
1220# 179 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1221 coeff_l(0) = (2._wp/6._wp)
1222 coeff_l(1) = (5._wp/6._wp)
1223 coeff_l(2) = (-1._wp/6._wp)
1224
1225#ifdef MFC_DEBUG
1226# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1227 block
1228# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1229 use iso_fortran_env, only: output_unit
1230# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1231
1232# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1233 print *, 'm_igr.fpp:183: ', '@:ALLOCATE(coeff_R(-1:1))'
1234# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1235
1236# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1237 call flush (output_unit)
1238# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1239 end block
1240# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1241#endif
1242# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1243 allocate (coeff_r(-1:1))
1244# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1245
1246# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1247
1248# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1249#if defined(MFC_OpenACC)
1250# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1251!$acc enter data create(coeff_R)
1252# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1253#elif defined(MFC_OpenMP)
1254# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1255!$omp target enter data map(always,alloc:coeff_R)
1256# 183 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1257#endif
1258# 184 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1259 coeff_r(1) = (2._wp/6._wp)
1260 coeff_r(0) = (5._wp/6._wp)
1261 coeff_r(-1) = (-1._wp/6._wp)
1262 else if (igr_order == 5) then
1263 vidxb = -2; vidxe = 3
1264
1265# 189 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1266#if defined(MFC_OpenACC)
1267# 189 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1268!$acc update device(vidxb, vidxe)
1269# 189 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1270#elif defined(MFC_OpenMP)
1271# 189 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1272!$omp target update to(vidxb, vidxe)
1273# 189 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1274#endif
1275# 190 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1276
1277#ifdef MFC_DEBUG
1278# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1279 block
1280# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1281 use iso_fortran_env, only: output_unit
1282# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1283
1284# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1285 print *, 'm_igr.fpp:191: ', '@:ALLOCATE(coeff_L(-1:3))'
1286# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1287
1288# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1289 call flush (output_unit)
1290# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1291 end block
1292# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1293#endif
1294# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1295 allocate (coeff_l(-1:3))
1296# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1297
1298# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1299
1300# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1301#if defined(MFC_OpenACC)
1302# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1303!$acc enter data create(coeff_L)
1304# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1305#elif defined(MFC_OpenMP)
1306# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1307!$omp target enter data map(always,alloc:coeff_L)
1308# 191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1309#endif
1310# 192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1311 coeff_l(-1) = (-3._wp/60._wp)
1312 coeff_l(0) = (27._wp/60._wp)
1313 coeff_l(1) = (47._wp/60._wp)
1314 coeff_l(2) = (-13._wp/60._wp)
1315 coeff_l(3) = (2._wp/60._wp)
1316
1317#ifdef MFC_DEBUG
1318# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1319 block
1320# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1321 use iso_fortran_env, only: output_unit
1322# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1323
1324# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1325 print *, 'm_igr.fpp:198: ', '@:ALLOCATE(coeff_R(-2:2))'
1326# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1327
1328# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1329 call flush (output_unit)
1330# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1331 end block
1332# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1333#endif
1334# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1335 allocate (coeff_r(-2:2))
1336# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1337
1338# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1339
1340# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1341#if defined(MFC_OpenACC)
1342# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1343!$acc enter data create(coeff_R)
1344# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1345#elif defined(MFC_OpenMP)
1346# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1347!$omp target enter data map(always,alloc:coeff_R)
1348# 198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1349#endif
1350# 199 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1351 coeff_r(2) = (-3._wp/60._wp)
1352 coeff_r(1) = (27._wp/60._wp)
1353 coeff_r(0) = (47._wp/60._wp)
1354 coeff_r(-1) = (-13._wp/60._wp)
1355 coeff_r(-2) = (2._wp/60._wp)
1356 end if
1357
1358
1359# 206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1360#if defined(MFC_OpenACC)
1361# 206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1362!$acc update device(coeff_L)
1363# 206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1364#elif defined(MFC_OpenMP)
1365# 206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1366!$omp target update to(coeff_L)
1367# 206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1368#endif
1369# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1370
1371# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1372#if defined(MFC_OpenACC)
1373# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1374!$acc update device(coeff_R)
1375# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1376#elif defined(MFC_OpenMP)
1377# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1378!$omp target update to(coeff_R)
1379# 207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1380#endif
1381# 208 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1382# 214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1383 jac_sf(1)%sf => jac
1384
1385# 215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1386#if defined(MFC_OpenACC)
1387# 215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1388!$acc enter data copyin(jac_sf(1)%sf)
1389# 215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1390#elif defined(MFC_OpenMP)
1391# 215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1392!$omp target enter data map(to:jac_sf(1)%sf)
1393# 215 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1394#endif
1395# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1396
1397# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1398#if defined(MFC_OpenACC)
1399# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1400!$acc enter data attach(jac_sf(1)%sf)
1401# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1402#elif defined(MFC_OpenMP)
1403# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1404!$omp target enter data map(always,to:jac_sf(1)%sf)
1405# 216 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1406#endif
1407# 217 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1408
1409 end subroutine s_initialize_igr_module
1410
1411 !> Iteratively solve the implicit gradient reconstruction system
1412 subroutine s_igr_iterative_solve(q_cons_vf, bc_type, t_step)
1413
1414#ifdef _CRAYFTN
1415 ! DIR$ OPTIMIZE (-haggress)
1416#endif
1417 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1418 type(integer_field), dimension(1:num_dims,1:2), intent(in) :: bc_type
1419 integer, intent(in) :: t_step
1420 real(wp) :: rho_rx, rho_ry, rho_rz, rho_lx, rho_ly, rho_lz
1421 real(wp) :: fd_coeff
1422 integer :: num_iters
1423
1424 if (t_step == t_step_start) then
1425 num_iters = num_igr_warm_start_iters
1426 else
1427 num_iters = num_igr_iters
1428 end if
1429
1430 do q = 1, num_iters
1431
1432# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1433
1434# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1435#if defined(MFC_OpenACC)
1436# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1437!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_lx, rho_rx, rho_ly, rho_ry, rho_lz, rho_rz, fd_coeff)
1438# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1439#elif defined(MFC_OpenMP)
1440# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1441
1442# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1443
1444# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1445
1446# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1447!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) &
1448# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1449!$omp& private(j, k, l, rho_lx, rho_rx, rho_ly, rho_ry, rho_lz, rho_rz, fd_coeff)
1450# 240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1451#endif
1452# 241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1453 do l = 0, p
1454 do k = 0, n
1455 do j = 0, m
1456 rho_lx = 0._wp
1457 rho_rx = 0._wp
1458 rho_ly = 0._wp
1459 rho_ry = 0._wp
1460 rho_lz = 0._wp
1461 rho_rz = 0._wp
1462 fd_coeff = 0._wp
1463
1464
1465# 252 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1466#if defined(MFC_OpenACC)
1467# 252 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1468!$acc loop seq
1469# 252 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1470#elif defined(MFC_OpenMP)
1471# 252 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1472
1473# 252 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1474#endif
1475# 253 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1476 do i = 1, num_fluids
1477 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
1478 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
1479 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
1480 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
1481 if (p > 0) then
1482 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
1483 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
1484 end if
1485 fd_coeff = fd_coeff + q_cons_vf(i)%sf(j, k, l)
1486 end do
1487
1488 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) &
1489 & **2._wp)*(1._wp/rho_ly + 1._wp/rho_ry))
1490
1491 if (num_dims == 3) then
1492 fd_coeff = fd_coeff + alf_igr*(1._wp/dz(l)**2._wp)*(1._wp/rho_lz + 1._wp/rho_rz)
1493 end if
1494
1495 if (igr_iter_solver == 1) then ! Jacobi iteration
1496 if (num_dims == 3) then
1497 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac_old(j - 1, k, &
1498 & l)/rho_lx + jac_old(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac_old(j, k - 1, &
1499 & l)/rho_ly + jac_old(j, k + 1, l)/rho_ry) + (1._wp/dz(l)**2._wp)*(jac_old(j, k, &
1500 & l - 1)/rho_lz + jac_old(j, k, l + 1)/rho_rz)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, &
1501 & kind=stp)
1502 else
1503 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(real(jac_old(j - 1, k, l), &
1504 & kind=wp)/rho_lx + real(jac_old(j + 1, k, l), &
1505 & kind=wp)/rho_rx) + (1._wp/dy(k)**2._wp)*(real(jac_old(j, k - 1, l), &
1506 & kind=wp)/rho_ly + real(jac_old(j, k + 1, l), kind=wp)/rho_ry)) + real(jac_rhs(j, k, l), &
1507 & kind=wp)/fd_coeff, kind=stp)
1508 end if
1509 else ! Gauss Seidel iteration
1510 if (num_dims == 3) then
1511 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac(j - 1, k, &
1512 & l)/rho_lx + jac(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac(j, k - 1, &
1513 & l)/rho_ly + jac(j, k + 1, l)/rho_ry) + (1._wp/dz(l)**2._wp)*(jac(j, k, &
1514 & l - 1)/rho_lz + jac(j, k, l + 1)/rho_rz)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, &
1515 & kind=stp)
1516 else
1517 jac(j, k, l) = real((alf_igr/fd_coeff)*((1._wp/dx(j)**2._wp)*(jac(j - 1, k, &
1518 & l)/rho_lx + jac(j + 1, k, l)/rho_rx) + (1._wp/dy(k)**2._wp)*(jac(j, k - 1, &
1519 & l)/rho_ly + jac(j, k + 1, l)/rho_ry)) + real(jac_rhs(j, k, l), kind=wp)/fd_coeff, kind=stp)
1520 end if
1521 end if
1522 end do
1523 end do
1524 end do
1525
1526# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1527#if defined(MFC_OpenACC)
1528# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1529!$acc end parallel loop
1530# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1531#elif defined(MFC_OpenMP)
1532# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1533
1534# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1535!$omp end target teams loop
1536# 302 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1537#endif
1538# 303 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1539
1540 call s_populate_f_igr_buffers(bc_type, jac_sf)
1541
1542 if (igr_iter_solver == 1) then ! Jacobi iteration
1543
1544# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1545
1546# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1547#if defined(MFC_OpenACC)
1548# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1549!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1550# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1551#elif defined(MFC_OpenMP)
1552# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1553
1554# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1555
1556# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1557
1558# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1559!$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)
1560# 307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1561#endif
1562# 308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1563 do l = idwbuff(3)%beg, idwbuff(3)%end
1564 do k = idwbuff(2)%beg, idwbuff(2)%end
1565 do j = idwbuff(1)%beg, idwbuff(1)%end
1566 jac_old(j, k, l) = jac(j, k, l)
1567 end do
1568 end do
1569 end do
1570
1571# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1572#if defined(MFC_OpenACC)
1573# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1574!$acc end parallel loop
1575# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1576#elif defined(MFC_OpenMP)
1577# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1578
1579# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1580!$omp end target teams loop
1581# 315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1582#endif
1583# 316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1584 end if
1585 end do
1586
1587 end subroutine s_igr_iterative_solve
1588
1589 !> Compute the IGR viscous stress contribution in the x-direction and accumulate into the RHS
1590 subroutine s_igr_sigma_x(q_cons_vf, rhs_vf)
1591
1592#ifdef _CRAYFTN
1593 ! DIR$ OPTIMIZE (-haggress)
1594#endif
1595 type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
1596 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1597 real(wp) :: f_l, vel_l, rho_l, f_r, vel_r, rho_r
1598# 331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1599 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_rho_r
1600# 335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1601
1602
1603# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1604
1605# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1606#if defined(MFC_OpenACC)
1607# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1608!$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)
1609# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1610#elif defined(MFC_OpenMP)
1611# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1612
1613# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1614
1615# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1616
1617# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1618!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) &
1619# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1620!$omp& private(j, k, l, F_L, vel_L, alpha_rho_L, F_R, vel_R, alpha_rho_R, rho_L, rho_R)
1621# 336 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1622#endif
1623# 337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1624 do l = 0, p
1625 do k = 0, n
1626 do j = -1, m
1627 f_l = 0._wp; f_r = 0._wp
1628 vel_l = 0._wp; vel_r = 0._wp
1629 rho_l = 0._wp; rho_r = 0._wp
1630
1631
1632# 344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1633#if defined(MFC_OpenACC)
1634# 344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1635!$acc loop seq
1636# 344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1637#elif defined(MFC_OpenMP)
1638# 344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1639
1640# 344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1641#endif
1642# 345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1643 do i = 1, num_fluids
1644 alpha_rho_l(i) = 0._wp
1645 alpha_rho_r(i) = 0._wp
1646 end do
1647
1648
1649# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1650#if defined(MFC_OpenACC)
1651# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1652!$acc loop seq
1653# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1654#elif defined(MFC_OpenMP)
1655# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1656
1657# 350 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1658#endif
1659# 351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1660 do q = vidxb + 1, vidxe
1661
1662# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1663#if defined(MFC_OpenACC)
1664# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1665!$acc loop seq
1666# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1667#elif defined(MFC_OpenMP)
1668# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1669
1670# 352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1671#endif
1672# 353 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1673 do i = 1, num_fluids
1674 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
1675 end do
1676
1677 vel_l = vel_l + coeff_l(q)*q_cons_vf(igr_momxb)%sf(j + q, k, l)
1678 f_l = f_l + coeff_l(q)*jac(j + q, k, l)
1679 end do
1680
1681
1682# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1683#if defined(MFC_OpenACC)
1684# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1685!$acc loop seq
1686# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1687#elif defined(MFC_OpenMP)
1688# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1689
1690# 361 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1691#endif
1692# 362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1693 do q = vidxb, vidxe - 1
1694
1695# 363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1696#if defined(MFC_OpenACC)
1697# 363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1698!$acc loop seq
1699# 363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1700#elif defined(MFC_OpenMP)
1701# 363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1702
1703# 363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1704#endif
1705# 364 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1706 do i = 1, num_fluids
1707 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
1708 end do
1709
1710 vel_r = vel_r + coeff_r(q)*q_cons_vf(igr_momxb)%sf(j + q, k, l)
1711 f_r = f_r + coeff_r(q)*jac(j + q, k, l)
1712 end do
1713
1714
1715# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1716#if defined(MFC_OpenACC)
1717# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1718!$acc loop seq
1719# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1720#elif defined(MFC_OpenMP)
1721# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1722
1723# 372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1724#endif
1725# 373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1726 do i = 1, num_fluids
1727 rho_l = rho_l + alpha_rho_l(i)
1728 rho_r = rho_r + alpha_rho_r(i)
1729 end do
1730
1731 vel_l = vel_l/rho_l
1732 vel_r = vel_r/rho_r
1733
1734# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1735
1736# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1737#if defined(MFC_OpenACC)
1738# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1739!$acc atomic update
1740# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1741#elif defined(MFC_OpenMP)
1742# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1743!$omp atomic update
1744# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1745#endif
1746# 383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1747 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
1748 & l) + real(0.5_wp*dt*f_l*(1._wp/dx(j + 1)), kind=stp)
1749# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1750
1751# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1752#if defined(MFC_OpenACC)
1753# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1754!$acc atomic update
1755# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1756#elif defined(MFC_OpenMP)
1757# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1758!$omp atomic update
1759# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1760#endif
1761# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1762 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
1763 & l) + real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j + 1)), kind=stp)
1764# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1765
1766# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1767#if defined(MFC_OpenACC)
1768# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1769!$acc atomic update
1770# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1771#elif defined(MFC_OpenMP)
1772# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1773!$omp atomic update
1774# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1775#endif
1776# 389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1777 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, l) - real(0.5_wp*dt*f_l*(1._wp/dx(j)), &
1778# 390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1779 & kind=stp)
1780
1781# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1782#if defined(MFC_OpenACC)
1783# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1784!$acc atomic update
1785# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1786#elif defined(MFC_OpenMP)
1787# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1788!$omp atomic update
1789# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1790#endif
1791# 392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1792 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
1793 & l) - real(0.5_wp*dt*vel_l*f_l*(1._wp/dx(j)), kind=stp)
1794# 394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1795# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1796
1797# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1798#if defined(MFC_OpenACC)
1799# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1800!$acc atomic update
1801# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1802#elif defined(MFC_OpenMP)
1803# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1804!$omp atomic update
1805# 382 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1806#endif
1807# 383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1808 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
1809 & l) + real(0.5_wp*dt*f_r*(1._wp/dx(j + 1)), kind=stp)
1810# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1811
1812# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1813#if defined(MFC_OpenACC)
1814# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1815!$acc atomic update
1816# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1817#elif defined(MFC_OpenMP)
1818# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1819!$omp atomic update
1820# 385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1821#endif
1822# 386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1823 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
1824 & l) + real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j + 1)), kind=stp)
1825# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1826
1827# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1828#if defined(MFC_OpenACC)
1829# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1830!$acc atomic update
1831# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1832#elif defined(MFC_OpenMP)
1833# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1834!$omp atomic update
1835# 388 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1836#endif
1837# 389 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1838 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, l) - real(0.5_wp*dt*f_r*(1._wp/dx(j)), &
1839# 390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1840 & kind=stp)
1841
1842# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1843#if defined(MFC_OpenACC)
1844# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1845!$acc atomic update
1846# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1847#elif defined(MFC_OpenMP)
1848# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1849!$omp atomic update
1850# 391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1851#endif
1852# 392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1853 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
1854 & l) - real(0.5_wp*dt*vel_r*f_r*(1._wp/dx(j)), kind=stp)
1855# 394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1856# 395 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1857 end do
1858 end do
1859 end do
1860
1861# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1862#if defined(MFC_OpenACC)
1863# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1864!$acc end parallel loop
1865# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1866#elif defined(MFC_OpenMP)
1867# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1868
1869# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1870!$omp end target teams loop
1871# 398 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1872#endif
1873# 399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1874
1875 end subroutine s_igr_sigma_x
1876
1877 !> Evaluate the approximate Riemann solver for the IGR scheme along a given direction
1878 subroutine s_igr_riemann_solver(q_cons_vf, rhs_vf, idir)
1879
1880#ifdef _CRAYFTN
1881 ! DIR$ OPTIMIZE (-haggress)
1882#endif
1883 type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
1884 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1885 integer, intent(in) :: idir
1886 real(wp) :: cfl
1887 real(wp) :: rho_l, gamma_l, pi_inf_l, e_l, mu_l, f_l, pres_l
1888 real(wp) :: qv_igr !< discarded; IGR carries no heat of formation
1889 real(wp) :: rho_r, gamma_r, pi_inf_r, e_r, mu_r, f_r, pres_r
1890 real(wp), dimension(3) :: vflux_l_arr, vflux_r_arr
1891 real(wp), dimension(-1:1) :: rho_sf_small
1892# 418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1893 real(wp), dimension(num_fluids_max) :: alpha_rho_l, alpha_l, alpha_r, alpha_rho_r
1894 real(wp), dimension(3) :: vel_l, vel_r
1895 real(wp), dimension(3, 3) :: dvel
1896 real(wp), dimension(3) :: dvel_small
1897# 428 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1898
1899 if (idir == 1) then
1900 if (p == 0) then
1901# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1902
1903# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1904
1905# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1906#if defined(MFC_OpenACC)
1907# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1908!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, rho_L, rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, &
1909# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1910!$acc& 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)
1911# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1912#elif defined(MFC_OpenMP)
1913# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1914
1915# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1916
1917# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1918
1919# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1920!$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, &
1921# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1922!$omp& rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, 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, &
1923# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1924!$omp& rho_sf_small, vflux_L_arr, vflux_R_arr)
1925# 432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1926#endif
1927# 435 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1928 do l = 0, p
1929 do k = 0, n
1930 do j = -1, m
1931 vflux_l_arr = 0._wp
1932 vflux_r_arr = 0._wp
1933
1934# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1935
1936# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1937#if defined(MFC_OpenACC)
1938# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1939!$acc loop seq
1940# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1941#elif defined(MFC_OpenMP)
1942# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1943
1944# 448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1945#endif
1946# 449 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1947 do q = vidxb, vidxe
1948 ! x-direction contributions
1949
1950# 451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1951#if defined(MFC_OpenACC)
1952# 451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1953!$acc loop seq
1954# 451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1955#elif defined(MFC_OpenMP)
1956# 451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1957
1958# 451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1959#endif
1960# 452 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1961 do i = -1, 1
1962 rho_l = 0._wp
1963
1964# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1965#if defined(MFC_OpenACC)
1966# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1967!$acc loop seq
1968# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1969#elif defined(MFC_OpenMP)
1970# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1971
1972# 454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1973#endif
1974# 455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1975 do r = 1, num_fluids
1976 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
1977 end do
1978 rho_sf_small(i) = rho_l
1979 end do
1980
1981 dvel_small(1) = (1/(2._wp*dx(j)))*(1._wp*q_cons_vf(igr_momxb)%sf(j + 1 + q, k, &
1982 & l)/rho_sf_small(1) - 1._wp*q_cons_vf(igr_momxb)%sf(j - 1 + q, k, &
1983 & l)/rho_sf_small(-1))
1984 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 1)%sf(j + 1 + q, k, &
1985 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
1986
1987 if (q == 0) then
1988
1989# 468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1990#if defined(MFC_OpenACC)
1991# 468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1992!$acc loop seq
1993# 468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1994#elif defined(MFC_OpenMP)
1995# 468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1996
1997# 468 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
1998#endif
1999# 469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2000 do i = 1, num_dims
2001 dvel(i, 1) = dvel_small(i)
2002 end do
2003 end if
2004
2005 if (q > vidxb) then
2006 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
2007 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
2008 end if
2009 if (q < vidxe) then
2010 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
2011 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
2012 end if
2013
2014 ! y-direction contributions
2015
2016# 484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2017#if defined(MFC_OpenACC)
2018# 484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2019!$acc loop seq
2020# 484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2021#elif defined(MFC_OpenMP)
2022# 484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2023
2024# 484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2025#endif
2026# 485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2027 do i = -1, 1
2028 rho_l = 0._wp
2029
2030# 487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2031#if defined(MFC_OpenACC)
2032# 487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2033!$acc loop seq
2034# 487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2035#elif defined(MFC_OpenMP)
2036# 487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2037
2038# 487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2039#endif
2040# 488 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2041 do r = 1, num_fluids
2042 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
2043 end do
2044 rho_sf_small(i) = rho_l
2045 end do
2046
2047 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb)%sf(j + q, k + 1, &
2048 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
2049 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 1)%sf(j + q, k + 1, &
2050 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
2051
2052 if (q == 0) then
2053
2054# 500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2055#if defined(MFC_OpenACC)
2056# 500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2057!$acc loop seq
2058# 500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2059#elif defined(MFC_OpenMP)
2060# 500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2061
2062# 500 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2063#endif
2064# 501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2065 do i = 1, num_dims
2066 dvel(i, 2) = dvel_small(i)
2067 end do
2068 end if
2069
2070 if (q > vidxb) then
2071 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
2072 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
2073 end if
2074 if (q < vidxe) then
2075 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
2076 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
2077 end if
2078
2079 if (q == 0) then
2080 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1)) + dvel(1, &
2081 & 1)**2._wp + dvel(2, 2)**2._wp + (dvel(1, 1) + dvel(2, 2))**2._wp), kind=stp)
2082 end if
2083 end do
2084
2085
2086# 521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2087#if defined(MFC_OpenACC)
2088# 521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2089!$acc loop seq
2090# 521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2091#elif defined(MFC_OpenMP)
2092# 521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2093
2094# 521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2095#endif
2096# 522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2097 do i = 1, num_fluids
2098 alpha_rho_l(i) = 0._wp
2099 alpha_rho_r(i) = 0._wp
2100 alpha_l(i) = 0._wp
2101 alpha_r(i) = 0._wp
2102 end do
2103
2104# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2105#if defined(MFC_OpenACC)
2106# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2107!$acc loop seq
2108# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2109#elif defined(MFC_OpenMP)
2110# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2111
2112# 528 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2113#endif
2114# 529 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2115 do i = 1, num_dims
2116 vel_l(i) = 0._wp
2117 vel_r(i) = 0._wp
2118 end do
2119
2120
2121# 534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2122#if defined(MFC_OpenACC)
2123# 534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2124!$acc loop seq
2125# 534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2126#elif defined(MFC_OpenMP)
2127# 534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2128
2129# 534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2130#endif
2131# 535 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2132 do q = vidxb + 1, vidxe
2133
2134# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2135#if defined(MFC_OpenACC)
2136# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2137!$acc loop seq
2138# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2139#elif defined(MFC_OpenMP)
2140# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2141
2142# 536 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2143#endif
2144# 537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2145 do i = 1, num_fluids
2146 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
2147 end do
2148
2149 if (num_fluids > 1) then
2150
2151# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2152#if defined(MFC_OpenACC)
2153# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2154!$acc loop seq
2155# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2156#elif defined(MFC_OpenMP)
2157# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2158
2159# 542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2160#endif
2161# 543 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2162 do i = 1, num_fluids - 1
2163 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(igr_e_idx + i)%sf(j + q, k, l)
2164 end do
2165 else
2166 alpha_l(1) = 1._wp
2167 end if
2168
2169
2170# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2171#if defined(MFC_OpenACC)
2172# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2173!$acc loop seq
2174# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2175#elif defined(MFC_OpenMP)
2176# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2177
2178# 550 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2179#endif
2180# 551 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2181 do i = 1, num_dims
2182 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(igr_momxb + i - 1)%sf(j + q, k, l)
2183 end do
2184 end do
2185
2186
2187# 556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2188#if defined(MFC_OpenACC)
2189# 556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2190!$acc loop seq
2191# 556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2192#elif defined(MFC_OpenMP)
2193# 556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2194
2195# 556 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2196#endif
2197# 557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2198 do q = vidxb, vidxe - 1
2199
2200# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2201#if defined(MFC_OpenACC)
2202# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2203!$acc loop seq
2204# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2205#elif defined(MFC_OpenMP)
2206# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2207
2208# 558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2209#endif
2210# 559 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2211 do i = 1, num_fluids
2212 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
2213 end do
2214
2215 if (num_fluids > 1) then
2216
2217# 564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2218#if defined(MFC_OpenACC)
2219# 564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2220!$acc loop seq
2221# 564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2222#elif defined(MFC_OpenMP)
2223# 564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2224
2225# 564 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2226#endif
2227# 565 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2228 do i = 1, num_fluids - 1
2229 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(igr_e_idx + i)%sf(j + q, k, l)
2230 end do
2231 else
2232 alpha_r(1) = 1._wp
2233 end if
2234
2235
2236# 572 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2237#if defined(MFC_OpenACC)
2238# 572 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2239!$acc loop seq
2240# 572 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2241#elif defined(MFC_OpenMP)
2242# 572 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2243
2244# 572 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2245#endif
2246# 573 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2247 do i = 1, num_dims
2248 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(igr_momxb + i - 1)%sf(j + q, k, l)
2249 end do
2250 end do
2251
2252 if (num_fluids > 1) then
2253 alpha_l(num_fluids) = 1._wp
2254 alpha_r(num_fluids) = 1._wp
2255
2256
2257# 582 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2258#if defined(MFC_OpenACC)
2259# 582 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2260!$acc loop seq
2261# 582 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2262#elif defined(MFC_OpenMP)
2263# 582 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2264
2265# 582 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2266#endif
2267# 583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2268 do i = 1, num_fluids - 1
2269 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
2270 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
2271 end do
2272 end if
2273
2274 call s_compute_mixture_coefficients(alpha_rho_l, alpha_l, rho_l, gamma_l, pi_inf_l, qv_igr)
2275 call s_compute_mixture_coefficients(alpha_rho_r, alpha_r, rho_r, gamma_r, pi_inf_r, qv_igr)
2276
2277
2278# 592 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2279#if defined(MFC_OpenACC)
2280# 592 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2281!$acc loop seq
2282# 592 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2283#elif defined(MFC_OpenMP)
2284# 592 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2285
2286# 592 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2287#endif
2288# 593 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2289 do i = 1, num_dims
2290 vel_l(i) = vel_l(i)/rho_l
2291 vel_r(i) = vel_r(i)/rho_r
2292 end do
2293
2294 if (viscous) then
2295 mu_l = 0._wp; mu_r = 0._wp
2296
2297# 600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2298#if defined(MFC_OpenACC)
2299# 600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2300!$acc loop seq
2301# 600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2302#elif defined(MFC_OpenMP)
2303# 600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2304
2305# 600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2306#endif
2307# 601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2308 do i = 1, num_fluids
2309 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
2310 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
2311 end do
2312
2313
2314# 606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2315#if defined(MFC_OpenACC)
2316# 606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2317!$acc atomic update
2318# 606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2319#elif defined(MFC_OpenMP)
2320# 606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2321!$omp atomic update
2322# 606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2323#endif
2324# 607 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2325 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
2326 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2327
2328# 609 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2329#if defined(MFC_OpenACC)
2330# 609 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2331!$acc atomic update
2332# 609 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2333#elif defined(MFC_OpenMP)
2334# 609 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2335!$omp atomic update
2336# 609 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2337#endif
2338# 610 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2339 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2340 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
2341
2342
2343# 613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2344#if defined(MFC_OpenACC)
2345# 613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2346!$acc atomic update
2347# 613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2348#elif defined(MFC_OpenMP)
2349# 613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2350!$omp atomic update
2351# 613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2352#endif
2353# 614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2354 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
2355 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
2356
2357# 616 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2358#if defined(MFC_OpenACC)
2359# 616 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2360!$acc atomic update
2361# 616 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2362#elif defined(MFC_OpenMP)
2363# 616 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2364!$omp atomic update
2365# 616 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2366#endif
2367# 617 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2368 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
2369 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
2370
2371
2372# 620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2373#if defined(MFC_OpenACC)
2374# 620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2375!$acc atomic update
2376# 620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2377#elif defined(MFC_OpenMP)
2378# 620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2379!$omp atomic update
2380# 620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2381#endif
2382# 621 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2383 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
2384 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
2385
2386# 623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2387#if defined(MFC_OpenACC)
2388# 623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2389!$acc atomic update
2390# 623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2391#elif defined(MFC_OpenMP)
2392# 623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2393!$omp atomic update
2394# 623 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2395#endif
2396# 624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2397 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2398 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
2399
2400
2401# 627 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2402#if defined(MFC_OpenACC)
2403# 627 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2404!$acc atomic update
2405# 627 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2406#elif defined(MFC_OpenMP)
2407# 627 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2408!$omp atomic update
2409# 627 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2410#endif
2411# 628 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2412 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
2413 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
2414
2415# 630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2416#if defined(MFC_OpenACC)
2417# 630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2418!$acc atomic update
2419# 630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2420#elif defined(MFC_OpenMP)
2421# 630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2422!$omp atomic update
2423# 630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2424#endif
2425# 631 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2426 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
2427 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
2428
2429
2430# 634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2431#if defined(MFC_OpenACC)
2432# 634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2433!$acc atomic update
2434# 634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2435#elif defined(MFC_OpenMP)
2436# 634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2437!$omp atomic update
2438# 634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2439#endif
2440# 635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2441 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
2442 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2443
2444# 637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2445#if defined(MFC_OpenACC)
2446# 637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2447!$acc atomic update
2448# 637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2449#elif defined(MFC_OpenMP)
2450# 637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2451!$omp atomic update
2452# 637 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2453#endif
2454# 638 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2455 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2456 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
2457
2458
2459# 641 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2460#if defined(MFC_OpenACC)
2461# 641 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2462!$acc atomic update
2463# 641 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2464#elif defined(MFC_OpenMP)
2465# 641 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2466!$omp atomic update
2467# 641 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2468#endif
2469# 642 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2470 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
2471 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
2472
2473# 644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2474#if defined(MFC_OpenACC)
2475# 644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2476!$acc atomic update
2477# 644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2478#elif defined(MFC_OpenMP)
2479# 644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2480!$omp atomic update
2481# 644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2482#endif
2483# 645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2484 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
2485 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
2486
2487
2488# 648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2489#if defined(MFC_OpenACC)
2490# 648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2491!$acc atomic update
2492# 648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2493#elif defined(MFC_OpenMP)
2494# 648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2495!$omp atomic update
2496# 648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2497#endif
2498# 649 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2499 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
2500 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
2501
2502# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2503#if defined(MFC_OpenACC)
2504# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2505!$acc atomic update
2506# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2507#elif defined(MFC_OpenMP)
2508# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2509!$omp atomic update
2510# 651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2511#endif
2512# 652 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2513 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2514 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
2515
2516
2517# 655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2518#if defined(MFC_OpenACC)
2519# 655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2520!$acc atomic update
2521# 655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2522#elif defined(MFC_OpenMP)
2523# 655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2524!$omp atomic update
2525# 655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2526#endif
2527# 656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2528 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
2529 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
2530
2531# 658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2532#if defined(MFC_OpenACC)
2533# 658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2534!$acc atomic update
2535# 658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2536#elif defined(MFC_OpenMP)
2537# 658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2538!$omp atomic update
2539# 658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2540#endif
2541# 659 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2542 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
2543 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
2544 end if
2545
2546 e_l = 0._wp; e_r = 0._wp
2547
2548
2549# 665 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2550#if defined(MFC_OpenACC)
2551# 665 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2552!$acc loop seq
2553# 665 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2554#elif defined(MFC_OpenMP)
2555# 665 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2556
2557# 665 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2558#endif
2559# 666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2560 do q = vidxb + 1, vidxe
2561 e_l = e_l + coeff_l(q)*q_cons_vf(igr_e_idx)%sf(j + q, k, l)
2562 end do
2563
2564
2565# 670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2566#if defined(MFC_OpenACC)
2567# 670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2568!$acc loop seq
2569# 670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2570#elif defined(MFC_OpenMP)
2571# 670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2572
2573# 670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2574#endif
2575# 671 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2576 do q = vidxb, vidxe - 1
2577 e_r = e_r + coeff_r(q)*q_cons_vf(igr_e_idx)%sf(j + q, k, l)
2578 end do
2579
2580 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, &
2581 & vel_r, pres_l, pres_r, cfl)
2582
2583 do i = 1, num_fluids
2584
2585# 679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2586#if defined(MFC_OpenACC)
2587# 679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2588!$acc atomic update
2589# 679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2590#elif defined(MFC_OpenMP)
2591# 679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2592!$omp atomic update
2593# 679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2594#endif
2595# 680 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2596 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
2597 & l) + real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
2598 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
2599
2600
2601# 684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2602#if defined(MFC_OpenACC)
2603# 684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2604!$acc atomic update
2605# 684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2606#elif defined(MFC_OpenMP)
2607# 684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2608!$omp atomic update
2609# 684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2610#endif
2611# 685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2612 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
2613 & l) - real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j)) &
2614 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
2615 end do
2616
2617 if (num_fluids > 1) then
2618
2619# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2620#if defined(MFC_OpenACC)
2621# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2622!$acc loop seq
2623# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2624#elif defined(MFC_OpenMP)
2625# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2626
2627# 691 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2628#endif
2629# 692 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2630 do i = 1, num_fluids - 1
2631
2632# 693 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2633#if defined(MFC_OpenACC)
2634# 693 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2635!$acc atomic update
2636# 693 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2637#elif defined(MFC_OpenMP)
2638# 693 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2639!$omp atomic update
2640# 693 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2641#endif
2642# 694 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2643 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2644 & l) + real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
2645 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
2646
2647
2648# 698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2649#if defined(MFC_OpenACC)
2650# 698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2651!$acc atomic update
2652# 698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2653#elif defined(MFC_OpenMP)
2654# 698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2655!$omp atomic update
2656# 698 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2657#endif
2658# 699 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2659 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2660 & l) - real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2661 & l)*vel_l(1)*(1._wp/dx(j + 1))), kind=stp)
2662
2663
2664# 703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2665#if defined(MFC_OpenACC)
2666# 703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2667!$acc atomic update
2668# 703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2669#elif defined(MFC_OpenMP)
2670# 703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2671!$omp atomic update
2672# 703 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2673#endif
2674# 704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2675 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
2676 & l) - real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j)) &
2677 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j))), kind=stp)
2678
2679
2680# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2681#if defined(MFC_OpenACC)
2682# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2683!$acc atomic update
2684# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2685#elif defined(MFC_OpenMP)
2686# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2687!$omp atomic update
2688# 708 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2689#endif
2690# 709 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2691 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
2692 & l) + real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
2693 & l)*vel_l(1)*(1._wp/dx(j))), kind=stp)
2694 end do
2695 end if
2696
2697
2698# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2699#if defined(MFC_OpenACC)
2700# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2701!$acc atomic update
2702# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2703#elif defined(MFC_OpenMP)
2704# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2705!$omp atomic update
2706# 715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2707#endif
2708# 716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2709 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
2710 & l) + real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j + 1)) &
2711 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
2712
2713
2714# 720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2715#if defined(MFC_OpenACC)
2716# 720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2717!$acc atomic update
2718# 720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2719#elif defined(MFC_OpenMP)
2720# 720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2721!$omp atomic update
2722# 720 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2723#endif
2724# 721 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2725 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
2726 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) &
2727 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
2728
2729
2730# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2731#if defined(MFC_OpenACC)
2732# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2733!$acc atomic update
2734# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2735#elif defined(MFC_OpenMP)
2736# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2737!$omp atomic update
2738# 725 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2739#endif
2740# 726 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2741 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2742 & 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) &
2743 & *(1._wp/dx(j + 1))), kind=stp)
2744
2745
2746# 730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2747#if defined(MFC_OpenACC)
2748# 730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2749!$acc atomic update
2750# 730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2751#elif defined(MFC_OpenMP)
2752# 730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2753!$omp atomic update
2754# 730 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2755#endif
2756# 731 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2757 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
2758 & l) - real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j)) &
2759 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
2760
2761
2762# 735 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2763#if defined(MFC_OpenACC)
2764# 735 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2765!$acc atomic update
2766# 735 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2767#elif defined(MFC_OpenMP)
2768# 735 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2769!$omp atomic update
2770# 735 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2771#endif
2772# 736 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2773 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
2774 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) &
2775 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
2776
2777
2778# 740 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2779#if defined(MFC_OpenACC)
2780# 740 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2781!$acc atomic update
2782# 740 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2783#elif defined(MFC_OpenMP)
2784# 740 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2785!$omp atomic update
2786# 740 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2787#endif
2788# 741 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2789 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
2790 & l) - real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j)) - 0.5_wp*dt*cfl*(e_l) &
2791 & *(1._wp/dx(j))), kind=stp)
2792
2793
2794# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2795#if defined(MFC_OpenACC)
2796# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2797!$acc loop seq
2798# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2799#elif defined(MFC_OpenMP)
2800# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2801
2802# 745 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2803#endif
2804# 746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2805 do i = 1, num_fluids
2806
2807# 747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2808#if defined(MFC_OpenACC)
2809# 747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2810!$acc atomic update
2811# 747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2812#elif defined(MFC_OpenMP)
2813# 747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2814!$omp atomic update
2815# 747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2816#endif
2817# 748 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2818 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
2819 & l) + real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
2820 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
2821
2822
2823# 752 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2824#if defined(MFC_OpenACC)
2825# 752 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2826!$acc atomic update
2827# 752 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2828#elif defined(MFC_OpenMP)
2829# 752 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2830!$omp atomic update
2831# 752 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2832#endif
2833# 753 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2834 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
2835 & l) - real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j)) &
2836 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
2837 end do
2838
2839 if (num_fluids > 1) then
2840
2841# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2842#if defined(MFC_OpenACC)
2843# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2844!$acc loop seq
2845# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2846#elif defined(MFC_OpenMP)
2847# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2848
2849# 759 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2850#endif
2851# 760 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2852 do i = 1, num_fluids - 1
2853
2854# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2855#if defined(MFC_OpenACC)
2856# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2857!$acc atomic update
2858# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2859#elif defined(MFC_OpenMP)
2860# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2861!$omp atomic update
2862# 761 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2863#endif
2864# 762 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2865 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2866 & l) + real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
2867 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
2868
2869
2870# 766 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2871#if defined(MFC_OpenACC)
2872# 766 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2873!$acc atomic update
2874# 766 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2875#elif defined(MFC_OpenMP)
2876# 766 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2877!$omp atomic update
2878# 766 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2879#endif
2880# 767 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2881 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2882 & l) - real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j + 1, k, &
2883 & l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
2884
2885
2886# 771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2887#if defined(MFC_OpenACC)
2888# 771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2889!$acc atomic update
2890# 771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2891#elif defined(MFC_OpenMP)
2892# 771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2893!$omp atomic update
2894# 771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2895#endif
2896# 772 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2897 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
2898 & l) - real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j)) &
2899 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
2900
2901
2902# 776 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2903#if defined(MFC_OpenACC)
2904# 776 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2905!$acc atomic update
2906# 776 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2907#elif defined(MFC_OpenMP)
2908# 776 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2909!$omp atomic update
2910# 776 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2911#endif
2912# 777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2913 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
2914 & l) + real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
2915 & l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
2916 end do
2917 end if
2918
2919
2920# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2921#if defined(MFC_OpenACC)
2922# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2923!$acc atomic update
2924# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2925#elif defined(MFC_OpenMP)
2926# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2927!$omp atomic update
2928# 783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2929#endif
2930# 784 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2931 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
2932 & l) + real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j + 1)) &
2933 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
2934
2935
2936# 788 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2937#if defined(MFC_OpenACC)
2938# 788 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2939!$acc atomic update
2940# 788 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2941#elif defined(MFC_OpenMP)
2942# 788 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2943!$omp atomic update
2944# 788 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2945#endif
2946# 789 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2947 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
2948 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) &
2949 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
2950
2951
2952# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2953#if defined(MFC_OpenACC)
2954# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2955!$acc atomic update
2956# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2957#elif defined(MFC_OpenMP)
2958# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2959!$omp atomic update
2960# 793 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2961#endif
2962# 794 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2963 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
2964 & 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) &
2965 & *(1._wp/dx(j + 1))), kind=stp)
2966
2967
2968# 798 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2969#if defined(MFC_OpenACC)
2970# 798 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2971!$acc atomic update
2972# 798 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2973#elif defined(MFC_OpenMP)
2974# 798 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2975!$omp atomic update
2976# 798 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2977#endif
2978# 799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2979 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
2980 & l) - real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j)) &
2981 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
2982
2983
2984# 803 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2985#if defined(MFC_OpenACC)
2986# 803 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2987!$acc atomic update
2988# 803 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2989#elif defined(MFC_OpenMP)
2990# 803 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2991!$omp atomic update
2992# 803 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2993#endif
2994# 804 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
2995 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
2996 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) &
2997 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
2998
2999
3000# 808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3001#if defined(MFC_OpenACC)
3002# 808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3003!$acc atomic update
3004# 808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3005#elif defined(MFC_OpenMP)
3006# 808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3007!$omp atomic update
3008# 808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3009#endif
3010# 809 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3011 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3012 & l) - real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j)) + 0.5_wp*dt*cfl*(e_r) &
3013 & *(1._wp/dx(j))), kind=stp)
3014 end do
3015 end do
3016 end do
3017
3018# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3019#if defined(MFC_OpenACC)
3020# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3021!$acc end parallel loop
3022# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3023#elif defined(MFC_OpenMP)
3024# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3025
3026# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3027!$omp end target teams loop
3028# 815 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3029#endif
3030# 816 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3031# 817 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3032 else
3033# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3034
3035# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3036
3037# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3038#if defined(MFC_OpenACC)
3039# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3040!$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, qv_igr, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, &
3041# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3042!$acc& 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)
3043# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3044#elif defined(MFC_OpenMP)
3045# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3046
3047# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3048
3049# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3050
3051# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3052!$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, &
3053# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3054!$omp& rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, 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, &
3055# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3056!$omp& rho_sf_small, vflux_L_arr, vflux_R_arr)
3057# 819 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3058#endif
3059# 822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3060 do l = 0, p
3061 do k = 0, n
3062 do j = -1, m
3063 vflux_l_arr = 0._wp
3064 vflux_r_arr = 0._wp
3065
3066# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3067
3068# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3069#if defined(MFC_OpenACC)
3070# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3071!$acc loop seq
3072# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3073#elif defined(MFC_OpenMP)
3074# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3075
3076# 835 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3077#endif
3078# 836 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3079 do q = vidxb, vidxe
3080 ! x-direction contributions
3081
3082# 838 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3083#if defined(MFC_OpenACC)
3084# 838 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3085!$acc loop seq
3086# 838 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3087#elif defined(MFC_OpenMP)
3088# 838 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3089
3090# 838 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3091#endif
3092# 839 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3093 do i = -1, 1
3094 rho_l = 0._wp
3095
3096# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3097#if defined(MFC_OpenACC)
3098# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3099!$acc loop seq
3100# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3101#elif defined(MFC_OpenMP)
3102# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3103
3104# 841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3105#endif
3106# 842 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3107 do r = 1, num_fluids
3108 rho_l = rho_l + q_cons_vf(r)%sf(j + i + q, k, l)
3109 end do
3110 rho_sf_small(i) = rho_l
3111 end do
3112
3113 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb)%sf(j + 1 + q, k, &
3114 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3115 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 1)%sf(j + 1 + q, k, &
3116 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3117 dvel_small(3) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 2)%sf(j + 1 + q, k, &
3118 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j - 1 + q, k, l)/rho_sf_small(-1))
3119
3120 if (q == 0) then
3121
3122# 856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3123#if defined(MFC_OpenACC)
3124# 856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3125!$acc loop seq
3126# 856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3127#elif defined(MFC_OpenMP)
3128# 856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3129
3130# 856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3131#endif
3132# 857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3133 do i = 1, num_dims
3134 dvel(i, 1) = dvel_small(i)
3135 end do
3136 end if
3137
3138 if (q > vidxb) then
3139 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
3140 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
3141 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(1))/3._wp
3142 end if
3143 if (q < vidxe) then
3144 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
3145 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
3146 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(1))/3._wp
3147 end if
3148
3149 ! y-direction contributions
3150
3151# 874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3152#if defined(MFC_OpenACC)
3153# 874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3154!$acc loop seq
3155# 874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3156#elif defined(MFC_OpenMP)
3157# 874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3158
3159# 874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3160#endif
3161# 875 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3162 do i = -1, 1
3163 rho_l = 0._wp
3164
3165# 877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3166#if defined(MFC_OpenACC)
3167# 877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3168!$acc loop seq
3169# 877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3170#elif defined(MFC_OpenMP)
3171# 877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3172
3173# 877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3174#endif
3175# 878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3176 do r = 1, num_fluids
3177 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k + i, l)
3178 end do
3179 rho_sf_small(i) = rho_l
3180 end do
3181
3182 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb)%sf(j + q, k + 1, &
3183 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3184 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 1)%sf(j + q, k + 1, &
3185 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3186 if (q == 0) dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 2)%sf(j + q, k + 1, &
3187 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j + q, k - 1, l)/rho_sf_small(-1))
3188 if (q == 0) then
3189
3190# 891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3191#if defined(MFC_OpenACC)
3192# 891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3193!$acc loop seq
3194# 891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3195#elif defined(MFC_OpenMP)
3196# 891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3197
3198# 891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3199#endif
3200# 892 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3201 do i = 1, num_dims
3202 dvel(i, 2) = dvel_small(i)
3203 end do
3204 end if
3205
3206 if (q > vidxb) then
3207 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
3208 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
3209 end if
3210 if (q < vidxe) then
3211 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
3212 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
3213 end if
3214
3215 ! z-direction contributions
3216
3217# 907 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3218#if defined(MFC_OpenACC)
3219# 907 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3220!$acc loop seq
3221# 907 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3222#elif defined(MFC_OpenMP)
3223# 907 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3224
3225# 907 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3226#endif
3227# 908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3228 do i = -1, 1
3229 rho_l = 0._wp
3230
3231# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3232#if defined(MFC_OpenACC)
3233# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3234!$acc loop seq
3235# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3236#elif defined(MFC_OpenMP)
3237# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3238
3239# 910 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3240#endif
3241# 911 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3242 do r = 1, num_fluids
3243 rho_l = rho_l + q_cons_vf(r)%sf(j + q, k, l + i)
3244 end do
3245 rho_sf_small(i) = rho_l
3246 end do
3247
3248 dvel_small(1) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb)%sf(j + q, k, &
3249 & l + 1)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3250 if (q == 0) dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 1)%sf(j + q, k, &
3251 & l + 1)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j + q, k, l - 1)/rho_sf_small(-1))
3252 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 2)%sf(j + q, k, &
3253 & l + 1)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j + q, k, &
3254 & l - 1)/rho_sf_small(-1))
3255 if (q == 0) then
3256
3257# 925 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3258#if defined(MFC_OpenACC)
3259# 925 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3260!$acc loop seq
3261# 925 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3262#elif defined(MFC_OpenMP)
3263# 925 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3264
3265# 925 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3266#endif
3267# 926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3268 do i = 1, num_dims
3269 dvel(i, 3) = dvel_small(i)
3270 end do
3271 end if
3272
3273 if (q > vidxb) then
3274 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(1))
3275 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
3276 end if
3277 if (q < vidxe) then
3278 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(1))
3279 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
3280 end if
3281
3282 if (q == 0) then
3283 jac_rhs(j, k, l) = real(alf_igr*(2._wp*(dvel(1, 2)*dvel(2, 1) + dvel(1, 3)*dvel(3, &
3284 & 1) + dvel(2, 3)*dvel(3, 2)) + dvel(1, 1)**2._wp + dvel(2, 2)**2._wp + dvel(3, &
3285 & 3)**2._wp + (dvel(1, 1) + dvel(2, 2) + dvel(3, 3))**2._wp), kind=stp)
3286 end if
3287 end do
3288
3289
3290# 947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3291#if defined(MFC_OpenACC)
3292# 947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3293!$acc loop seq
3294# 947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3295#elif defined(MFC_OpenMP)
3296# 947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3297
3298# 947 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3299#endif
3300# 948 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3301 do i = 1, num_fluids
3302 alpha_rho_l(i) = 0._wp
3303 alpha_rho_r(i) = 0._wp
3304 alpha_l(i) = 0._wp
3305 alpha_r(i) = 0._wp
3306 end do
3307
3308# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3309#if defined(MFC_OpenACC)
3310# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3311!$acc loop seq
3312# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3313#elif defined(MFC_OpenMP)
3314# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3315
3316# 954 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3317#endif
3318# 955 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3319 do i = 1, num_dims
3320 vel_l(i) = 0._wp
3321 vel_r(i) = 0._wp
3322 end do
3323
3324
3325# 960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3326#if defined(MFC_OpenACC)
3327# 960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3328!$acc loop seq
3329# 960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3330#elif defined(MFC_OpenMP)
3331# 960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3332
3333# 960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3334#endif
3335# 961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3336 do q = vidxb + 1, vidxe
3337
3338# 962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3339#if defined(MFC_OpenACC)
3340# 962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3341!$acc loop seq
3342# 962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3343#elif defined(MFC_OpenMP)
3344# 962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3345
3346# 962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3347#endif
3348# 963 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3349 do i = 1, num_fluids
3350 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j + q, k, l)
3351 end do
3352
3353 if (num_fluids > 1) then
3354
3355# 968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3356#if defined(MFC_OpenACC)
3357# 968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3358!$acc loop seq
3359# 968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3360#elif defined(MFC_OpenMP)
3361# 968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3362
3363# 968 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3364#endif
3365# 969 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3366 do i = 1, num_fluids - 1
3367 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(igr_e_idx + i)%sf(j + q, k, l)
3368 end do
3369 else
3370 alpha_l(1) = 1._wp
3371 end if
3372
3373
3374# 976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3375#if defined(MFC_OpenACC)
3376# 976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3377!$acc loop seq
3378# 976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3379#elif defined(MFC_OpenMP)
3380# 976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3381
3382# 976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3383#endif
3384# 977 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3385 do i = 1, num_dims
3386 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(igr_momxb + i - 1)%sf(j + q, k, l)
3387 end do
3388 end do
3389
3390
3391# 982 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3392#if defined(MFC_OpenACC)
3393# 982 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3394!$acc loop seq
3395# 982 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3396#elif defined(MFC_OpenMP)
3397# 982 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3398
3399# 982 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3400#endif
3401# 983 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3402 do q = vidxb, vidxe - 1
3403
3404# 984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3405#if defined(MFC_OpenACC)
3406# 984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3407!$acc loop seq
3408# 984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3409#elif defined(MFC_OpenMP)
3410# 984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3411
3412# 984 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3413#endif
3414# 985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3415 do i = 1, num_fluids
3416 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j + q, k, l)
3417 end do
3418
3419 if (num_fluids > 1) then
3420
3421# 990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3422#if defined(MFC_OpenACC)
3423# 990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3424!$acc loop seq
3425# 990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3426#elif defined(MFC_OpenMP)
3427# 990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3428
3429# 990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3430#endif
3431# 991 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3432 do i = 1, num_fluids - 1
3433 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(igr_e_idx + i)%sf(j + q, k, l)
3434 end do
3435 else
3436 alpha_r(1) = 1._wp
3437 end if
3438
3439
3440# 998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3441#if defined(MFC_OpenACC)
3442# 998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3443!$acc loop seq
3444# 998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3445#elif defined(MFC_OpenMP)
3446# 998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3447
3448# 998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3449#endif
3450# 999 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3451 do i = 1, num_dims
3452 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(igr_momxb + i - 1)%sf(j + q, k, l)
3453 end do
3454 end do
3455
3456 if (num_fluids > 1) then
3457 alpha_l(num_fluids) = 1._wp
3458 alpha_r(num_fluids) = 1._wp
3459
3460
3461# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3462#if defined(MFC_OpenACC)
3463# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3464!$acc loop seq
3465# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3466#elif defined(MFC_OpenMP)
3467# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3468
3469# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3470#endif
3471# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3472 do i = 1, num_fluids - 1
3473 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
3474 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
3475 end do
3476 end if
3477
3478 call s_compute_mixture_coefficients(alpha_rho_l, alpha_l, rho_l, gamma_l, pi_inf_l, qv_igr)
3479 call s_compute_mixture_coefficients(alpha_rho_r, alpha_r, rho_r, gamma_r, pi_inf_r, qv_igr)
3480
3481
3482# 1018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3483#if defined(MFC_OpenACC)
3484# 1018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3485!$acc loop seq
3486# 1018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3487#elif defined(MFC_OpenMP)
3488# 1018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3489
3490# 1018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3491#endif
3492# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3493 do i = 1, num_dims
3494 vel_l(i) = vel_l(i)/rho_l
3495 vel_r(i) = vel_r(i)/rho_r
3496 end do
3497
3498 if (viscous) then
3499 mu_l = 0._wp
3500 mu_r = 0._wp
3501
3502# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3503#if defined(MFC_OpenACC)
3504# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3505!$acc loop seq
3506# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3507#elif defined(MFC_OpenMP)
3508# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3509
3510# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3511#endif
3512# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3513 do i = 1, num_fluids
3514 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
3515 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
3516 end do
3517
3518
3519# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3520#if defined(MFC_OpenACC)
3521# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3522!$acc atomic update
3523# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3524#elif defined(MFC_OpenMP)
3525# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3526!$omp atomic update
3527# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3528#endif
3529# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3530 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
3531 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3532
3533# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3534#if defined(MFC_OpenACC)
3535# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3536!$acc atomic update
3537# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3538#elif defined(MFC_OpenMP)
3539# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3540!$omp atomic update
3541# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3542#endif
3543# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3544 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3545 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j + 1)), kind=stp)
3546
3547
3548# 1040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3549#if defined(MFC_OpenACC)
3550# 1040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3551!$acc atomic update
3552# 1040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3553#elif defined(MFC_OpenMP)
3554# 1040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3555!$omp atomic update
3556# 1040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3557#endif
3558# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3559 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
3560 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dx(j)), kind=stp)
3561
3562# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3563#if defined(MFC_OpenACC)
3564# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3565!$acc atomic update
3566# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3567#elif defined(MFC_OpenMP)
3568# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3569!$omp atomic update
3570# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3571#endif
3572# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3573 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3574 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(2)*(1._wp/dx(j)), kind=stp)
3575
3576
3577# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3578#if defined(MFC_OpenACC)
3579# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3580!$acc atomic update
3581# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3582#elif defined(MFC_OpenMP)
3583# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3584!$omp atomic update
3585# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3586#endif
3587# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3588 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
3589 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j + 1)), kind=stp)
3590
3591# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3592#if defined(MFC_OpenACC)
3593# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3594!$acc atomic update
3595# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3596#elif defined(MFC_OpenMP)
3597# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3598!$omp atomic update
3599# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3600#endif
3601# 1051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3602 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3603 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j + 1)), kind=stp)
3604
3605
3606# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3607#if defined(MFC_OpenACC)
3608# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3609!$acc atomic update
3610# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3611#elif defined(MFC_OpenMP)
3612# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3613!$omp atomic update
3614# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3615#endif
3616# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3617 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
3618 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dx(j)), kind=stp)
3619
3620# 1057 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3621#if defined(MFC_OpenACC)
3622# 1057 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3623!$acc atomic update
3624# 1057 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3625#elif defined(MFC_OpenMP)
3626# 1057 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3627!$omp atomic update
3628# 1057 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3629#endif
3630# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3631 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3632 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(2)*(1._wp/dx(j)), kind=stp)
3633
3634
3635# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3636#if defined(MFC_OpenACC)
3637# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3638!$acc atomic update
3639# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3640#elif defined(MFC_OpenMP)
3641# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3642!$omp atomic update
3643# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3644#endif
3645# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3646 rhs_vf(igr_momxb + 2)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 2)%sf(j + 1, k, &
3647 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3648
3649# 1064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3650#if defined(MFC_OpenACC)
3651# 1064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3652!$acc atomic update
3653# 1064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3654#elif defined(MFC_OpenMP)
3655# 1064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3656!$omp atomic update
3657# 1064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3658#endif
3659# 1065 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3660 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3661 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j + 1)), kind=stp)
3662
3663
3664# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3665#if defined(MFC_OpenACC)
3666# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3667!$acc atomic update
3668# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3669#elif defined(MFC_OpenMP)
3670# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3671!$omp atomic update
3672# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3673#endif
3674# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3675 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
3676 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dx(j)), kind=stp)
3677
3678# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3679#if defined(MFC_OpenACC)
3680# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3681!$acc atomic update
3682# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3683#elif defined(MFC_OpenMP)
3684# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3685!$omp atomic update
3686# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3687#endif
3688# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3689 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3690 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dx(j)), kind=stp)
3691
3692
3693# 1075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3694#if defined(MFC_OpenACC)
3695# 1075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3696!$acc atomic update
3697# 1075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3698#elif defined(MFC_OpenMP)
3699# 1075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3700!$omp atomic update
3701# 1075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3702#endif
3703# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3704 rhs_vf(igr_momxb + 2)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 2)%sf(j + 1, k, &
3705 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j + 1)), kind=stp)
3706
3707# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3708#if defined(MFC_OpenACC)
3709# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3710!$acc atomic update
3711# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3712#elif defined(MFC_OpenMP)
3713# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3714!$omp atomic update
3715# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3716#endif
3717# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3718 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3719 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j + 1)), kind=stp)
3720
3721
3722# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3723#if defined(MFC_OpenACC)
3724# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3725!$acc atomic update
3726# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3727#elif defined(MFC_OpenMP)
3728# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3729!$omp atomic update
3730# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3731#endif
3732# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3733 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
3734 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dx(j)), kind=stp)
3735
3736# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3737#if defined(MFC_OpenACC)
3738# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3739!$acc atomic update
3740# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3741#elif defined(MFC_OpenMP)
3742# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3743!$omp atomic update
3744# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3745#endif
3746# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3747 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3748 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dx(j)), kind=stp)
3749
3750
3751# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3752#if defined(MFC_OpenACC)
3753# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3754!$acc atomic update
3755# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3756#elif defined(MFC_OpenMP)
3757# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3758!$omp atomic update
3759# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3760#endif
3761# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3762 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
3763 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3764
3765# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3766#if defined(MFC_OpenACC)
3767# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3768!$acc atomic update
3769# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3770#elif defined(MFC_OpenMP)
3771# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3772!$omp atomic update
3773# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3774#endif
3775# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3776 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3777 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3778
3779
3780# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3781#if defined(MFC_OpenACC)
3782# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3783!$acc atomic update
3784# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3785#elif defined(MFC_OpenMP)
3786# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3787!$omp atomic update
3788# 1096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3789#endif
3790# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3791 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
3792 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dx(j)), kind=stp)
3793
3794# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3795#if defined(MFC_OpenACC)
3796# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3797!$acc atomic update
3798# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3799#elif defined(MFC_OpenMP)
3800# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3801!$omp atomic update
3802# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3803#endif
3804# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3805 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3806 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(1)*(1._wp/dx(j)), kind=stp)
3807
3808
3809# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3810#if defined(MFC_OpenACC)
3811# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3812!$acc atomic update
3813# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3814#elif defined(MFC_OpenMP)
3815# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3816!$omp atomic update
3817# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3818#endif
3819# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3820 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
3821 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j + 1)), kind=stp)
3822
3823# 1106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3824#if defined(MFC_OpenACC)
3825# 1106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3826!$acc atomic update
3827# 1106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3828#elif defined(MFC_OpenMP)
3829# 1106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3830!$omp atomic update
3831# 1106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3832#endif
3833# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3834 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
3835 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j + 1)), kind=stp)
3836
3837
3838# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3839#if defined(MFC_OpenACC)
3840# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3841!$acc atomic update
3842# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3843#elif defined(MFC_OpenMP)
3844# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3845!$omp atomic update
3846# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3847#endif
3848# 1111 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3849 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
3850 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dx(j)), kind=stp)
3851
3852# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3853#if defined(MFC_OpenACC)
3854# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3855!$acc atomic update
3856# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3857#elif defined(MFC_OpenMP)
3858# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3859!$omp atomic update
3860# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3861#endif
3862# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3863 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
3864 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(1)*(1._wp/dx(j)), kind=stp)
3865 end if
3866
3867 e_l = 0._wp; e_r = 0._wp
3868
3869
3870# 1120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3871#if defined(MFC_OpenACC)
3872# 1120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3873!$acc loop seq
3874# 1120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3875#elif defined(MFC_OpenMP)
3876# 1120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3877
3878# 1120 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3879#endif
3880# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3881 do q = vidxb + 1, vidxe
3882 e_l = e_l + coeff_l(q)*q_cons_vf(igr_e_idx)%sf(j + q, k, l)
3883 end do
3884
3885
3886# 1125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3887#if defined(MFC_OpenACC)
3888# 1125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3889!$acc loop seq
3890# 1125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3891#elif defined(MFC_OpenMP)
3892# 1125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3893
3894# 1125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3895#endif
3896# 1126 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3897 do q = vidxb, vidxe - 1
3898 e_r = e_r + coeff_r(q)*q_cons_vf(igr_e_idx)%sf(j + q, k, l)
3899 end do
3900
3901 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, &
3902 & vel_r, pres_l, pres_r, cfl)
3903
3904
3905# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3906#if defined(MFC_OpenACC)
3907# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3908!$acc loop seq
3909# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3910#elif defined(MFC_OpenMP)
3911# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3912
3913# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3914#endif
3915# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3916 do i = 1, num_fluids
3917
3918# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3919#if defined(MFC_OpenACC)
3920# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3921!$acc atomic update
3922# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3923#elif defined(MFC_OpenMP)
3924# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3925!$omp atomic update
3926# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3927#endif
3928# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3929 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
3930 & l) + real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
3931 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j + 1))), kind=stp)
3932
3933
3934# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3935#if defined(MFC_OpenACC)
3936# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3937!$acc atomic update
3938# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3939#elif defined(MFC_OpenMP)
3940# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3941!$omp atomic update
3942# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3943#endif
3944# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3945 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
3946 & l) - real((0.5_wp*dt*(alpha_rho_l(i)*vel_l(1))*(1._wp/dx(j)) &
3947 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dx(j))), kind=stp)
3948 end do
3949
3950 if (num_fluids > 1) then
3951
3952# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3953#if defined(MFC_OpenACC)
3954# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3955!$acc loop seq
3956# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3957#elif defined(MFC_OpenMP)
3958# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3959
3960# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3961#endif
3962# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3963 do i = 1, num_fluids - 1
3964
3965# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3966#if defined(MFC_OpenACC)
3967# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3968!$acc atomic update
3969# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3970#elif defined(MFC_OpenMP)
3971# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3972!$omp atomic update
3973# 1149 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3974#endif
3975# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3976 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
3977 & l) + real((0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j + 1)) &
3978 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j + 1))), kind=stp)
3979
3980
3981# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3982#if defined(MFC_OpenACC)
3983# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3984!$acc atomic update
3985# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3986#elif defined(MFC_OpenMP)
3987# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3988!$omp atomic update
3989# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3990#endif
3991# 1155 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3992 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
3993 & l) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j + 1, k, &
3994 & l)*vel_l(1)*(1._wp/dx(j + 1)), kind=stp)
3995
3996
3997# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
3998#if defined(MFC_OpenACC)
3999# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4000!$acc atomic update
4001# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4002#elif defined(MFC_OpenMP)
4003# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4004!$omp atomic update
4005# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4006#endif
4007# 1160 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4008 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
4009 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(1))*(1._wp/dx(j)) &
4010 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dx(j)), kind=stp)
4011
4012
4013# 1164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4014#if defined(MFC_OpenACC)
4015# 1164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4016!$acc atomic update
4017# 1164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4018#elif defined(MFC_OpenMP)
4019# 1164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4020!$omp atomic update
4021# 1164 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4022#endif
4023# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4024 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
4025 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
4026 & l)*vel_l(1)*(1._wp/dx(j)), kind=stp)
4027 end do
4028 end if
4029
4030
4031# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4032#if defined(MFC_OpenACC)
4033# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4034!$acc atomic update
4035# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4036#elif defined(MFC_OpenMP)
4037# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4038!$omp atomic update
4039# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4040#endif
4041# 1172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4042 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
4043 & l) + real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j + 1)) &
4044 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j + 1))), kind=stp)
4045
4046
4047# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4048#if defined(MFC_OpenACC)
4049# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4050!$acc atomic update
4051# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4052#elif defined(MFC_OpenMP)
4053# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4054!$omp atomic update
4055# 1176 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4056#endif
4057# 1177 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4058 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
4059 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j + 1)) &
4060 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j + 1))), kind=stp)
4061
4062
4063# 1181 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4064#if defined(MFC_OpenACC)
4065# 1181 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4066!$acc atomic update
4067# 1181 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4068#elif defined(MFC_OpenMP)
4069# 1181 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4070!$omp atomic update
4071# 1181 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4072#endif
4073# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4074 rhs_vf(igr_momxb + 2)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 2)%sf(j + 1, k, &
4075 & l) + real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j + 1)) &
4076 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j + 1))), kind=stp)
4077
4078
4079# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4080#if defined(MFC_OpenACC)
4081# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4082!$acc atomic update
4083# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4084#elif defined(MFC_OpenMP)
4085# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4086!$omp atomic update
4087# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4088#endif
4089# 1187 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4090 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
4091 & 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) &
4092 & *(1._wp/dx(j + 1))), kind=stp)
4093
4094
4095# 1191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4096#if defined(MFC_OpenACC)
4097# 1191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4098!$acc atomic update
4099# 1191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4100#elif defined(MFC_OpenMP)
4101# 1191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4102!$omp atomic update
4103# 1191 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4104#endif
4105# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4106 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
4107 & l) - real((0.5_wp*dt*(rho_l*(vel_l(1))**2.0 + pres_l)*(1._wp/dx(j)) &
4108 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dx(j))), kind=stp)
4109
4110
4111# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4112#if defined(MFC_OpenACC)
4113# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4114!$acc atomic update
4115# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4116#elif defined(MFC_OpenMP)
4117# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4118!$omp atomic update
4119# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4120#endif
4121# 1197 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4122 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
4123 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dx(j)) &
4124 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dx(j))), kind=stp)
4125
4126
4127# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4128#if defined(MFC_OpenACC)
4129# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4130!$acc atomic update
4131# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4132#elif defined(MFC_OpenMP)
4133# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4134!$omp atomic update
4135# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4136#endif
4137# 1202 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4138 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
4139 & l) - real((0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dx(j)) &
4140 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dx(j))), kind=stp)
4141
4142
4143# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4144#if defined(MFC_OpenACC)
4145# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4146!$acc atomic update
4147# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4148#elif defined(MFC_OpenMP)
4149# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4150!$omp atomic update
4151# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4152#endif
4153# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4154 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
4155 & l) - real((0.5_wp*dt*(vel_l(1)*(e_l + pres_l))*(1._wp/dx(j)) - 0.5_wp*dt*cfl*(e_l) &
4156 & *(1._wp/dx(j))), kind=stp)
4157
4158
4159# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4160#if defined(MFC_OpenACC)
4161# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4162!$acc loop seq
4163# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4164#elif defined(MFC_OpenMP)
4165# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4166
4167# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4168#endif
4169# 1212 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4170 do i = 1, num_fluids
4171
4172# 1213 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4173#if defined(MFC_OpenACC)
4174# 1213 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4175!$acc atomic update
4176# 1213 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4177#elif defined(MFC_OpenMP)
4178# 1213 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4179!$omp atomic update
4180# 1213 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4181#endif
4182# 1214 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4183 rhs_vf(i)%sf(j + 1, k, l) = rhs_vf(i)%sf(j + 1, k, &
4184 & l) + real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
4185 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j + 1))), kind=stp)
4186
4187
4188# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4189#if defined(MFC_OpenACC)
4190# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4191!$acc atomic update
4192# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4193#elif defined(MFC_OpenMP)
4194# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4195!$omp atomic update
4196# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4197#endif
4198# 1219 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4199 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
4200 & l) - real((0.5_wp*dt*(alpha_rho_r(i)*vel_r(1))*(1._wp/dx(j)) &
4201 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dx(j))), kind=stp)
4202 end do
4203
4204 if (num_fluids > 1) then
4205
4206# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4207#if defined(MFC_OpenACC)
4208# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4209!$acc loop seq
4210# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4211#elif defined(MFC_OpenMP)
4212# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4213
4214# 1225 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4215#endif
4216# 1226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4217 do i = 1, num_fluids - 1
4218
4219# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4220#if defined(MFC_OpenACC)
4221# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4222!$acc atomic update
4223# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4224#elif defined(MFC_OpenMP)
4225# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4226!$omp atomic update
4227# 1227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4228#endif
4229# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4230 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
4231 & l) + real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j + 1)) &
4232 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j + 1))), kind=stp)
4233
4234
4235# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4236#if defined(MFC_OpenACC)
4237# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4238!$acc atomic update
4239# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4240#elif defined(MFC_OpenMP)
4241# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4242!$omp atomic update
4243# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4244#endif
4245# 1233 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4246 rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j + 1, k, &
4247 & l) - real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j + 1, k, &
4248 & l)*vel_r(1)*(1._wp/dx(j + 1))), kind=stp)
4249
4250
4251# 1237 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4252#if defined(MFC_OpenACC)
4253# 1237 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4254!$acc atomic update
4255# 1237 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4256#elif defined(MFC_OpenMP)
4257# 1237 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4258!$omp atomic update
4259# 1237 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4260#endif
4261# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4262 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
4263 & l) - real((0.5_wp*dt*(alpha_r(i)*vel_r(1))*(1._wp/dx(j)) &
4264 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dx(j))), kind=stp)
4265
4266
4267# 1242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4268#if defined(MFC_OpenACC)
4269# 1242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4270!$acc atomic update
4271# 1242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4272#elif defined(MFC_OpenMP)
4273# 1242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4274!$omp atomic update
4275# 1242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4276#endif
4277# 1243 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4278 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
4279 & l) + real((0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
4280 & l)*vel_r(1)*(1._wp/dx(j))), kind=stp)
4281 end do
4282 end if
4283
4284
4285# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4286#if defined(MFC_OpenACC)
4287# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4288!$acc atomic update
4289# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4290#elif defined(MFC_OpenMP)
4291# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4292!$omp atomic update
4293# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4294#endif
4295# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4296 rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
4297 & l) + real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j + 1)) &
4298 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j + 1))), kind=stp)
4299
4300
4301# 1254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4302#if defined(MFC_OpenACC)
4303# 1254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4304!$acc atomic update
4305# 1254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4306#elif defined(MFC_OpenMP)
4307# 1254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4308!$omp atomic update
4309# 1254 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4310#endif
4311# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4312 rhs_vf(igr_momxb + 1)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 1)%sf(j + 1, k, &
4313 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j + 1)) &
4314 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j + 1))), kind=stp)
4315
4316
4317# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4318#if defined(MFC_OpenACC)
4319# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4320!$acc atomic update
4321# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4322#elif defined(MFC_OpenMP)
4323# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4324!$omp atomic update
4325# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4326#endif
4327# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4328 rhs_vf(igr_momxb + 2)%sf(j + 1, k, l) = rhs_vf(igr_momxb + 2)%sf(j + 1, k, &
4329 & l) + real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j + 1)) &
4330 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j + 1))), kind=stp)
4331
4332
4333# 1264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4334#if defined(MFC_OpenACC)
4335# 1264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4336!$acc atomic update
4337# 1264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4338#elif defined(MFC_OpenMP)
4339# 1264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4340!$omp atomic update
4341# 1264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4342#endif
4343# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4344 rhs_vf(igr_e_idx)%sf(j + 1, k, l) = rhs_vf(igr_e_idx)%sf(j + 1, k, &
4345 & 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) &
4346 & *(1._wp/dx(j + 1))), kind=stp)
4347
4348
4349# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4350#if defined(MFC_OpenACC)
4351# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4352!$acc atomic update
4353# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4354#elif defined(MFC_OpenMP)
4355# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4356!$omp atomic update
4357# 1269 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4358#endif
4359# 1270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4360 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
4361 & l) - real((0.5_wp*dt*(rho_r*(vel_r(1))**2.0 + pres_r)*(1._wp/dx(j)) &
4362 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dx(j))), kind=stp)
4363
4364
4365# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4366#if defined(MFC_OpenACC)
4367# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4368!$acc atomic update
4369# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4370#elif defined(MFC_OpenMP)
4371# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4372!$omp atomic update
4373# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4374#endif
4375# 1275 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4376 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
4377 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(2)*(1._wp/dx(j)) &
4378 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dx(j))), kind=stp)
4379
4380
4381# 1279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4382#if defined(MFC_OpenACC)
4383# 1279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4384!$acc atomic update
4385# 1279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4386#elif defined(MFC_OpenMP)
4387# 1279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4388!$omp atomic update
4389# 1279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4390#endif
4391# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4392 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
4393 & l) - real((0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dx(j)) &
4394 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dx(j))), kind=stp)
4395
4396
4397# 1284 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4398#if defined(MFC_OpenACC)
4399# 1284 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4400!$acc atomic update
4401# 1284 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4402#elif defined(MFC_OpenMP)
4403# 1284 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4404!$omp atomic update
4405# 1284 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4406#endif
4407# 1285 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4408 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
4409 & l) - real((0.5_wp*dt*(vel_r(1)*(e_r + pres_r))*(1._wp/dx(j)) + 0.5_wp*dt*cfl*(e_r) &
4410 & *(1._wp/dx(j))), kind=stp)
4411 end do
4412 end do
4413 end do
4414
4415# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4416#if defined(MFC_OpenACC)
4417# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4418!$acc end parallel loop
4419# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4420#elif defined(MFC_OpenMP)
4421# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4422
4423# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4424!$omp end target teams loop
4425# 1291 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4426#endif
4427# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4428# 1293 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4429 end if
4430 else if (idir == 2) then
4431 if (p == 0) then
4432# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4433
4434# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4435
4436# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4437#if defined(MFC_OpenACC)
4438# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4439!$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, qv_igr, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, &
4440# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4441!$acc& 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)
4442# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4443#elif defined(MFC_OpenMP)
4444# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4445
4446# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4447
4448# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4449
4450# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4451!$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, &
4452# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4453!$omp& rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, 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, &
4454# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4455!$omp& vflux_L_arr, vflux_R_arr)
4456# 1297 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4457#endif
4458# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4459 do l = 0, p
4460 do k = -1, n
4461 do j = 0, m
4462 if (viscous) then
4463 vflux_l_arr = 0._wp
4464 vflux_r_arr = 0._wp
4465
4466# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4467
4468# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4469#if defined(MFC_OpenACC)
4470# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4471!$acc loop seq
4472# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4473#elif defined(MFC_OpenMP)
4474# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4475
4476# 1314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4477#endif
4478# 1315 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4479 do q = vidxb, vidxe
4480 ! x-direction contributions
4481
4482# 1317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4483#if defined(MFC_OpenACC)
4484# 1317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4485!$acc loop seq
4486# 1317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4487#elif defined(MFC_OpenMP)
4488# 1317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4489
4490# 1317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4491#endif
4492# 1318 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4493 do i = -1, 1
4494 rho_l = 0._wp
4495
4496# 1320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4497#if defined(MFC_OpenACC)
4498# 1320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4499!$acc loop seq
4500# 1320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4501#elif defined(MFC_OpenMP)
4502# 1320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4503
4504# 1320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4505#endif
4506# 1321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4507 do r = 1, num_fluids
4508 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
4509 end do
4510 rho_sf_small(i) = rho_l
4511 end do
4512
4513 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb)%sf(j + 1, k + q, &
4514 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
4515 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 1)%sf(j + 1, k + q, &
4516 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j - 1, k + q, &
4517 & l)/rho_sf_small(-1))
4518
4519 if (q > vidxb) then
4520 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
4521 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
4522 end if
4523 if (q < vidxe) then
4524 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
4525 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
4526 end if
4527
4528 ! y-direction contributions
4529
4530# 1343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4531#if defined(MFC_OpenACC)
4532# 1343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4533!$acc loop seq
4534# 1343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4535#elif defined(MFC_OpenMP)
4536# 1343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4537
4538# 1343 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4539#endif
4540# 1344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4541 do i = -1, 1
4542 rho_l = 0._wp
4543
4544# 1346 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4545#if defined(MFC_OpenACC)
4546# 1346 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4547!$acc loop seq
4548# 1346 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4549#elif defined(MFC_OpenMP)
4550# 1346 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4551
4552# 1346 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4553#endif
4554# 1347 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4555 do r = 1, num_fluids
4556 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
4557 end do
4558 rho_sf_small(i) = rho_l
4559 end do
4560
4561 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb)%sf(j, k + 1 + q, &
4562 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
4563 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 1)%sf(j, k + 1 + q, &
4564 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j, k - 1 + q, &
4565 & l)/rho_sf_small(-1))
4566
4567 if (q > vidxb) then
4568 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
4569 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
4570 end if
4571 if (q < vidxe) then
4572 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
4573 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
4574 end if
4575 end do
4576 end if
4577
4578
4579# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4580#if defined(MFC_OpenACC)
4581# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4582!$acc loop seq
4583# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4584#elif defined(MFC_OpenMP)
4585# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4586
4587# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4588#endif
4589# 1371 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4590 do i = 1, num_fluids
4591 alpha_rho_l(i) = 0._wp
4592 alpha_rho_r(i) = 0._wp
4593 alpha_l(i) = 0._wp
4594 alpha_r(i) = 0._wp
4595 end do
4596
4597# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4598#if defined(MFC_OpenACC)
4599# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4600!$acc loop seq
4601# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4602#elif defined(MFC_OpenMP)
4603# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4604
4605# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4606#endif
4607# 1378 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4608 do i = 1, num_dims
4609 vel_l(i) = 0._wp
4610 vel_r(i) = 0._wp
4611 end do
4612
4613
4614# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4615#if defined(MFC_OpenACC)
4616# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4617!$acc loop seq
4618# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4619#elif defined(MFC_OpenMP)
4620# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4621
4622# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4623#endif
4624# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4625 do q = vidxb + 1, vidxe
4626
4627# 1385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4628#if defined(MFC_OpenACC)
4629# 1385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4630!$acc loop seq
4631# 1385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4632#elif defined(MFC_OpenMP)
4633# 1385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4634
4635# 1385 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4636#endif
4637# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4638 do i = 1, num_fluids
4639 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
4640 end do
4641
4642 if (num_fluids > 1) then
4643
4644# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4645#if defined(MFC_OpenACC)
4646# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4647!$acc loop seq
4648# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4649#elif defined(MFC_OpenMP)
4650# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4651
4652# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4653#endif
4654# 1392 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4655 do i = 1, num_fluids - 1
4656 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(igr_e_idx + i)%sf(j, k + q, l)
4657 end do
4658 else
4659 alpha_l(1) = 1._wp
4660 end if
4661
4662
4663# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4664#if defined(MFC_OpenACC)
4665# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4666!$acc loop seq
4667# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4668#elif defined(MFC_OpenMP)
4669# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4670
4671# 1399 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4672#endif
4673# 1400 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4674 do i = 1, num_dims
4675 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k + q, l)
4676 end do
4677 end do
4678
4679
4680# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4681#if defined(MFC_OpenACC)
4682# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4683!$acc loop seq
4684# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4685#elif defined(MFC_OpenMP)
4686# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4687
4688# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4689#endif
4690# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4691 do q = vidxb, vidxe - 1
4692
4693# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4694#if defined(MFC_OpenACC)
4695# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4696!$acc loop seq
4697# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4698#elif defined(MFC_OpenMP)
4699# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4700
4701# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4702#endif
4703# 1408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4704 do i = 1, num_fluids
4705 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
4706 end do
4707
4708 if (num_fluids > 1) then
4709
4710# 1413 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4711#if defined(MFC_OpenACC)
4712# 1413 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4713!$acc loop seq
4714# 1413 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4715#elif defined(MFC_OpenMP)
4716# 1413 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4717
4718# 1413 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4719#endif
4720# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4721 do i = 1, num_fluids - 1
4722 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(igr_e_idx + i)%sf(j, k + q, l)
4723 end do
4724 else
4725 alpha_r(1) = 1._wp
4726 end if
4727
4728
4729# 1421 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4730#if defined(MFC_OpenACC)
4731# 1421 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4732!$acc loop seq
4733# 1421 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4734#elif defined(MFC_OpenMP)
4735# 1421 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4736
4737# 1421 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4738#endif
4739# 1422 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4740 do i = 1, num_dims
4741 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k + q, l)
4742 end do
4743 end do
4744
4745 if (num_fluids > 1) then
4746 alpha_l(num_fluids) = 1._wp
4747 alpha_r(num_fluids) = 1._wp
4748
4749
4750# 1431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4751#if defined(MFC_OpenACC)
4752# 1431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4753!$acc loop seq
4754# 1431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4755#elif defined(MFC_OpenMP)
4756# 1431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4757
4758# 1431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4759#endif
4760# 1432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4761 do i = 1, num_fluids - 1
4762 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
4763 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
4764 end do
4765 end if
4766
4767 call s_compute_mixture_coefficients(alpha_rho_l, alpha_l, rho_l, gamma_l, pi_inf_l, qv_igr)
4768 call s_compute_mixture_coefficients(alpha_rho_r, alpha_r, rho_r, gamma_r, pi_inf_r, qv_igr)
4769
4770
4771# 1441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4772#if defined(MFC_OpenACC)
4773# 1441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4774!$acc loop seq
4775# 1441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4776#elif defined(MFC_OpenMP)
4777# 1441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4778
4779# 1441 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4780#endif
4781# 1442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4782 do i = 1, num_dims
4783 vel_l(i) = vel_l(i)/rho_l
4784 vel_r(i) = vel_r(i)/rho_r
4785 end do
4786
4787 if (viscous) then
4788 mu_l = 0._wp
4789 mu_r = 0._wp
4790
4791# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4792#if defined(MFC_OpenACC)
4793# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4794!$acc loop seq
4795# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4796#elif defined(MFC_OpenMP)
4797# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4798
4799# 1450 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4800#endif
4801# 1451 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4802 do i = 1, num_fluids
4803 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
4804 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
4805 end do
4806
4807
4808# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4809#if defined(MFC_OpenACC)
4810# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4811!$acc atomic update
4812# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4813#elif defined(MFC_OpenMP)
4814# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4815!$omp atomic update
4816# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4817#endif
4818# 1457 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4819 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
4820 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4821
4822# 1459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4823#if defined(MFC_OpenACC)
4824# 1459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4825!$acc atomic update
4826# 1459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4827#elif defined(MFC_OpenMP)
4828# 1459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4829!$omp atomic update
4830# 1459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4831#endif
4832# 1460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4833 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
4834 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
4835
4836
4837# 1463 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4838#if defined(MFC_OpenACC)
4839# 1463 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4840!$acc atomic update
4841# 1463 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4842#elif defined(MFC_OpenMP)
4843# 1463 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4844!$omp atomic update
4845# 1463 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4846#endif
4847# 1464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4848 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
4849 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
4850
4851# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4852#if defined(MFC_OpenACC)
4853# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4854!$acc atomic update
4855# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4856#elif defined(MFC_OpenMP)
4857# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4858!$omp atomic update
4859# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4860#endif
4861# 1467 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4862 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
4863 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
4864
4865
4866# 1470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4867#if defined(MFC_OpenACC)
4868# 1470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4869!$acc atomic update
4870# 1470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4871#elif defined(MFC_OpenMP)
4872# 1470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4873!$omp atomic update
4874# 1470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4875#endif
4876# 1471 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4877 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
4878 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
4879
4880# 1473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4881#if defined(MFC_OpenACC)
4882# 1473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4883!$acc atomic update
4884# 1473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4885#elif defined(MFC_OpenMP)
4886# 1473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4887!$omp atomic update
4888# 1473 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4889#endif
4890# 1474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4891 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
4892 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
4893
4894
4895# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4896#if defined(MFC_OpenACC)
4897# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4898!$acc atomic update
4899# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4900#elif defined(MFC_OpenMP)
4901# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4902!$omp atomic update
4903# 1477 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4904#endif
4905# 1478 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4906 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
4907 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
4908
4909# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4910#if defined(MFC_OpenACC)
4911# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4912!$acc atomic update
4913# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4914#elif defined(MFC_OpenMP)
4915# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4916!$omp atomic update
4917# 1480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4918#endif
4919# 1481 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4920 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
4921 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
4922
4923
4924# 1484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4925#if defined(MFC_OpenACC)
4926# 1484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4927!$acc atomic update
4928# 1484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4929#elif defined(MFC_OpenMP)
4930# 1484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4931!$omp atomic update
4932# 1484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4933#endif
4934# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4935 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
4936 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4937
4938# 1487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4939#if defined(MFC_OpenACC)
4940# 1487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4941!$acc atomic update
4942# 1487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4943#elif defined(MFC_OpenMP)
4944# 1487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4945!$omp atomic update
4946# 1487 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4947#endif
4948# 1488 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4949 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
4950 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
4951
4952
4953# 1491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4954#if defined(MFC_OpenACC)
4955# 1491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4956!$acc atomic update
4957# 1491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4958#elif defined(MFC_OpenMP)
4959# 1491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4960!$omp atomic update
4961# 1491 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4962#endif
4963# 1492 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4964 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
4965 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
4966
4967# 1494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4968#if defined(MFC_OpenACC)
4969# 1494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4970!$acc atomic update
4971# 1494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4972#elif defined(MFC_OpenMP)
4973# 1494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4974!$omp atomic update
4975# 1494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4976#endif
4977# 1495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4978 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
4979 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
4980
4981
4982# 1498 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4983#if defined(MFC_OpenACC)
4984# 1498 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4985!$acc atomic update
4986# 1498 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4987#elif defined(MFC_OpenMP)
4988# 1498 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4989!$omp atomic update
4990# 1498 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4991#endif
4992# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4993 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
4994 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
4995
4996# 1501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4997#if defined(MFC_OpenACC)
4998# 1501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
4999!$acc atomic update
5000# 1501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5001#elif defined(MFC_OpenMP)
5002# 1501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5003!$omp atomic update
5004# 1501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5005#endif
5006# 1502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5007 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
5008 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
5009
5010
5011# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5012#if defined(MFC_OpenACC)
5013# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5014!$acc atomic update
5015# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5016#elif defined(MFC_OpenMP)
5017# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5018!$omp atomic update
5019# 1505 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5020#endif
5021# 1506 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5022 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
5023 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
5024
5025# 1508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5026#if defined(MFC_OpenACC)
5027# 1508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5028!$acc atomic update
5029# 1508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5030#elif defined(MFC_OpenMP)
5031# 1508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5032!$omp atomic update
5033# 1508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5034#endif
5035# 1509 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5036 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
5037 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
5038 end if
5039
5040 e_l = 0._wp; e_r = 0._wp
5041 f_l = 0._wp; f_r = 0._wp
5042
5043
5044# 1516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5045#if defined(MFC_OpenACC)
5046# 1516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5047!$acc loop seq
5048# 1516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5049#elif defined(MFC_OpenMP)
5050# 1516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5051
5052# 1516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5053#endif
5054# 1517 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5055 do q = vidxb + 1, vidxe
5056 e_l = e_l + coeff_l(q)*q_cons_vf(igr_e_idx)%sf(j, k + q, l)
5057 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
5058 end do
5059
5060
5061# 1522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5062#if defined(MFC_OpenACC)
5063# 1522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5064!$acc loop seq
5065# 1522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5066#elif defined(MFC_OpenMP)
5067# 1522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5068
5069# 1522 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5070#endif
5071# 1523 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5072 do q = vidxb, vidxe - 1
5073 e_r = e_r + coeff_r(q)*q_cons_vf(igr_e_idx)%sf(j, k + q, l)
5074 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
5075 end do
5076
5077 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, &
5078 & vel_r, pres_l, pres_r, cfl)
5079
5080
5081# 1531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5082#if defined(MFC_OpenACC)
5083# 1531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5084!$acc loop seq
5085# 1531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5086#elif defined(MFC_OpenMP)
5087# 1531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5088
5089# 1531 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5090#endif
5091# 1532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5092 do i = 1, num_fluids
5093
5094# 1533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5095#if defined(MFC_OpenACC)
5096# 1533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5097!$acc atomic update
5098# 1533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5099#elif defined(MFC_OpenMP)
5100# 1533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5101!$omp atomic update
5102# 1533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5103#endif
5104# 1534 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5105 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
5106 & l) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
5107 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
5108
5109
5110# 1538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5111#if defined(MFC_OpenACC)
5112# 1538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5113!$acc atomic update
5114# 1538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5115#elif defined(MFC_OpenMP)
5116# 1538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5117!$omp atomic update
5118# 1538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5119#endif
5120# 1539 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5121 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
5122 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k)) &
5123 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
5124 end do
5125
5126 if (num_fluids > 1) then
5127
5128# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5129#if defined(MFC_OpenACC)
5130# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5131!$acc loop seq
5132# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5133#elif defined(MFC_OpenMP)
5134# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5135
5136# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5137#endif
5138# 1546 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5139 do i = 1, num_fluids - 1
5140
5141# 1547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5142#if defined(MFC_OpenACC)
5143# 1547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5144!$acc atomic update
5145# 1547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5146#elif defined(MFC_OpenMP)
5147# 1547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5148!$omp atomic update
5149# 1547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5150#endif
5151# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5152 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5153 & l) + real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
5154 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
5155
5156
5157# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5158#if defined(MFC_OpenACC)
5159# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5160!$acc atomic update
5161# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5162#elif defined(MFC_OpenMP)
5163# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5164!$omp atomic update
5165# 1552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5166#endif
5167# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5168 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5169 & l) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5170 & l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
5171
5172
5173# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5174#if defined(MFC_OpenACC)
5175# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5176!$acc atomic update
5177# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5178#elif defined(MFC_OpenMP)
5179# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5180!$omp atomic update
5181# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5182#endif
5183# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5184 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
5185 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k)) &
5186 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
5187
5188
5189# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5190#if defined(MFC_OpenACC)
5191# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5192!$acc atomic update
5193# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5194#elif defined(MFC_OpenMP)
5195# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5196!$omp atomic update
5197# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5198#endif
5199# 1563 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5200 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
5201 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
5202 & l)*vel_l(2)*(1._wp/dy(k)), kind=stp)
5203 end do
5204 end if
5205
5206
5207# 1569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5208#if defined(MFC_OpenACC)
5209# 1569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5210!$acc atomic update
5211# 1569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5212#elif defined(MFC_OpenMP)
5213# 1569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5214!$omp atomic update
5215# 1569 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5216#endif
5217# 1570 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5218 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
5219 & l) + real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k + 1)) &
5220 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
5221
5222
5223# 1574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5224#if defined(MFC_OpenACC)
5225# 1574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5226!$acc atomic update
5227# 1574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5228#elif defined(MFC_OpenMP)
5229# 1574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5230!$omp atomic update
5231# 1574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5232#endif
5233# 1575 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5234 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
5235 & l) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) &
5236 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
5237
5238
5239# 1579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5240#if defined(MFC_OpenACC)
5241# 1579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5242!$acc atomic update
5243# 1579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5244#elif defined(MFC_OpenMP)
5245# 1579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5246!$omp atomic update
5247# 1579 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5248#endif
5249# 1580 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5250 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
5251 & l) + real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k + 1)) &
5252 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
5253
5254
5255# 1584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5256#if defined(MFC_OpenACC)
5257# 1584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5258!$acc atomic update
5259# 1584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5260#elif defined(MFC_OpenMP)
5261# 1584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5262!$omp atomic update
5263# 1584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5264#endif
5265# 1585 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5266 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
5267 & l) - real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k)) &
5268 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
5269
5270
5271# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5272#if defined(MFC_OpenACC)
5273# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5274!$acc atomic update
5275# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5276#elif defined(MFC_OpenMP)
5277# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5278!$omp atomic update
5279# 1589 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5280#endif
5281# 1590 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5282 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
5283 & 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) &
5284 & )*(1._wp/dy(k)), kind=stp)
5285
5286
5287# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5288#if defined(MFC_OpenACC)
5289# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5290!$acc atomic update
5291# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5292#elif defined(MFC_OpenMP)
5293# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5294!$omp atomic update
5295# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5296#endif
5297# 1595 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5298 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
5299 & 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) &
5300 & *(1._wp/dy(k)), kind=stp)
5301
5302
5303# 1599 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5304#if defined(MFC_OpenACC)
5305# 1599 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5306!$acc loop seq
5307# 1599 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5308#elif defined(MFC_OpenMP)
5309# 1599 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5310
5311# 1599 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5312#endif
5313# 1600 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5314 do i = 1, num_fluids
5315
5316# 1601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5317#if defined(MFC_OpenACC)
5318# 1601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5319!$acc atomic update
5320# 1601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5321#elif defined(MFC_OpenMP)
5322# 1601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5323!$omp atomic update
5324# 1601 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5325#endif
5326# 1602 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5327 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
5328 & l) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
5329 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
5330
5331# 1605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5332#if defined(MFC_OpenACC)
5333# 1605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5334!$acc atomic update
5335# 1605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5336#elif defined(MFC_OpenMP)
5337# 1605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5338!$omp atomic update
5339# 1605 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5340#endif
5341# 1606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5342 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
5343 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k)) &
5344 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
5345 end do
5346
5347 if (num_fluids > 1) then
5348
5349# 1612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5350#if defined(MFC_OpenACC)
5351# 1612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5352!$acc loop seq
5353# 1612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5354#elif defined(MFC_OpenMP)
5355# 1612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5356
5357# 1612 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5358#endif
5359# 1613 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5360 do i = 1, num_fluids - 1
5361
5362# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5363#if defined(MFC_OpenACC)
5364# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5365!$acc atomic update
5366# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5367#elif defined(MFC_OpenMP)
5368# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5369!$omp atomic update
5370# 1614 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5371#endif
5372# 1615 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5373 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5374 & l) + real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
5375 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
5376
5377
5378# 1619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5379#if defined(MFC_OpenACC)
5380# 1619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5381!$acc atomic update
5382# 1619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5383#elif defined(MFC_OpenMP)
5384# 1619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5385!$omp atomic update
5386# 1619 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5387#endif
5388# 1620 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5389 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5390 & l) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k + 1, &
5391 & l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
5392
5393
5394# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5395#if defined(MFC_OpenACC)
5396# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5397!$acc atomic update
5398# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5399#elif defined(MFC_OpenMP)
5400# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5401!$omp atomic update
5402# 1624 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5403#endif
5404# 1625 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5405 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
5406 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k)) &
5407 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
5408
5409
5410# 1629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5411#if defined(MFC_OpenACC)
5412# 1629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5413!$acc atomic update
5414# 1629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5415#elif defined(MFC_OpenMP)
5416# 1629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5417!$omp atomic update
5418# 1629 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5419#endif
5420# 1630 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5421 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
5422 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
5423 & l)*vel_r(2)*(1._wp/dy(k)), kind=stp)
5424 end do
5425 end if
5426
5427# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5428#if defined(MFC_OpenACC)
5429# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5430!$acc atomic update
5431# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5432#elif defined(MFC_OpenMP)
5433# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5434!$omp atomic update
5435# 1635 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5436#endif
5437# 1636 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5438 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
5439 & l) + real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k + 1)) &
5440 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
5441
5442# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5443#if defined(MFC_OpenACC)
5444# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5445!$acc atomic update
5446# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5447#elif defined(MFC_OpenMP)
5448# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5449!$omp atomic update
5450# 1639 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5451#endif
5452# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5453 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
5454 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) &
5455 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
5456
5457# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5458#if defined(MFC_OpenACC)
5459# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5460!$acc atomic update
5461# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5462#elif defined(MFC_OpenMP)
5463# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5464!$omp atomic update
5465# 1643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5466#endif
5467# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5468 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
5469 & l) + real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k + 1)) &
5470 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
5471
5472# 1647 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5473#if defined(MFC_OpenACC)
5474# 1647 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5475!$acc atomic update
5476# 1647 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5477#elif defined(MFC_OpenMP)
5478# 1647 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5479!$omp atomic update
5480# 1647 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5481#endif
5482# 1648 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5483 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
5484 & l) - real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k)) &
5485 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
5486
5487# 1651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5488#if defined(MFC_OpenACC)
5489# 1651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5490!$acc atomic update
5491# 1651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5492#elif defined(MFC_OpenMP)
5493# 1651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5494!$omp atomic update
5495# 1651 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5496#endif
5497# 1652 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5498 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
5499 & 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) &
5500 & )*(1._wp/dy(k)), kind=stp)
5501
5502# 1655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5503#if defined(MFC_OpenACC)
5504# 1655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5505!$acc atomic update
5506# 1655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5507#elif defined(MFC_OpenMP)
5508# 1655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5509!$omp atomic update
5510# 1655 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5511#endif
5512# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5513 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
5514 & 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) &
5515 & *(1._wp/dy(k)), kind=stp)
5516 end do
5517 end do
5518 end do
5519
5520# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5521#if defined(MFC_OpenACC)
5522# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5523!$acc end parallel loop
5524# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5525#elif defined(MFC_OpenMP)
5526# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5527
5528# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5529!$omp end target teams loop
5530# 1662 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5531#endif
5532# 1663 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5533# 1664 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5534 else
5535# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5536
5537# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5538
5539# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5540#if defined(MFC_OpenACC)
5541# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5542!$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, qv_igr, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, &
5543# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5544!$acc& 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)
5545# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5546#elif defined(MFC_OpenMP)
5547# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5548
5549# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5550
5551# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5552
5553# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5554!$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, &
5555# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5556!$omp& rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, 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, &
5557# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5558!$omp& vflux_L_arr, vflux_R_arr)
5559# 1666 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5560#endif
5561# 1669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5562 do l = 0, p
5563 do k = -1, n
5564 do j = 0, m
5565 if (viscous) then
5566 vflux_l_arr = 0._wp
5567 vflux_r_arr = 0._wp
5568
5569# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5570
5571# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5572#if defined(MFC_OpenACC)
5573# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5574!$acc loop seq
5575# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5576#elif defined(MFC_OpenMP)
5577# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5578
5579# 1683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5580#endif
5581# 1684 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5582 do q = vidxb, vidxe
5583 ! x-direction contributions
5584
5585# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5586#if defined(MFC_OpenACC)
5587# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5588!$acc loop seq
5589# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5590#elif defined(MFC_OpenMP)
5591# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5592
5593# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5594#endif
5595# 1687 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5596 do i = -1, 1
5597 rho_l = 0._wp
5598
5599# 1689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5600#if defined(MFC_OpenACC)
5601# 1689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5602!$acc loop seq
5603# 1689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5604#elif defined(MFC_OpenMP)
5605# 1689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5606
5607# 1689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5608#endif
5609# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5610 do r = 1, num_fluids
5611 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k + q, l)
5612 end do
5613 rho_sf_small(i) = rho_l
5614 end do
5615
5616 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb)%sf(j + 1, k + q, &
5617 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j - 1, k + q, l)/rho_sf_small(-1))
5618 dvel_small(2) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 1)%sf(j + 1, k + q, &
5619 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j - 1, k + q, &
5620 & l)/rho_sf_small(-1))
5621
5622 if (q > vidxb) then
5623 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(2))
5624 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
5625 end if
5626 if (q < vidxe) then
5627 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(2))
5628 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
5629 end if
5630
5631 ! y-direction contributions
5632
5633# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5634#if defined(MFC_OpenACC)
5635# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5636!$acc loop seq
5637# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5638#elif defined(MFC_OpenMP)
5639# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5640
5641# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5642#endif
5643# 1713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5644 do i = -1, 1
5645 rho_l = 0._wp
5646
5647# 1715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5648#if defined(MFC_OpenACC)
5649# 1715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5650!$acc loop seq
5651# 1715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5652#elif defined(MFC_OpenMP)
5653# 1715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5654
5655# 1715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5656#endif
5657# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5658 do r = 1, num_fluids
5659 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i + q, l)
5660 end do
5661 rho_sf_small(i) = rho_l
5662 end do
5663
5664 dvel_small(1) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb)%sf(j, k + 1 + q, &
5665 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j, k - 1 + q, l)/rho_sf_small(-1))
5666 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 1)%sf(j, k + 1 + q, &
5667 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j, k - 1 + q, &
5668 & l)/rho_sf_small(-1))
5669 dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 2)%sf(j, k + 1 + q, &
5670 & l)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j, k - 1 + q, &
5671 & l)/rho_sf_small(-1))
5672
5673 if (q > vidxb) then
5674 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
5675 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
5676 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(2))/3._wp
5677 end if
5678 if (q < vidxe) then
5679 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
5680 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
5681 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(2))/3._wp
5682 end if
5683
5684 ! z-direction contributions
5685
5686# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5687#if defined(MFC_OpenACC)
5688# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5689!$acc loop seq
5690# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5691#elif defined(MFC_OpenMP)
5692# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5693
5694# 1743 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5695#endif
5696# 1744 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5697 do i = -1, 1
5698 rho_l = 0._wp
5699
5700# 1746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5701#if defined(MFC_OpenACC)
5702# 1746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5703!$acc loop seq
5704# 1746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5705#elif defined(MFC_OpenMP)
5706# 1746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5707
5708# 1746 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5709#endif
5710# 1747 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5711 do r = 1, num_fluids
5712 rho_l = rho_l + q_cons_vf(r)%sf(j, k + q, l + i)
5713 end do
5714 rho_sf_small(i) = rho_l
5715 end do
5716
5717 dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 1)%sf(j, k + q, &
5718 & l + 1)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j, k + q, &
5719 & l - 1)/rho_sf_small(-1))
5720 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 2)%sf(j, k + q, &
5721 & l + 1)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j, k + q, &
5722 & l - 1)/rho_sf_small(-1))
5723 if (q > vidxb) then
5724 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
5725 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(3))/3._wp
5726 end if
5727 if (q < vidxe) then
5728 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
5729 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(3))/3._wp
5730 end if
5731 end do
5732 end if
5733
5734
5735# 1770 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5736#if defined(MFC_OpenACC)
5737# 1770 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5738!$acc loop seq
5739# 1770 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5740#elif defined(MFC_OpenMP)
5741# 1770 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5742
5743# 1770 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5744#endif
5745# 1771 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5746 do i = 1, num_fluids
5747 alpha_rho_l(i) = 0._wp
5748 alpha_rho_r(i) = 0._wp
5749 alpha_l(i) = 0._wp
5750 alpha_r(i) = 0._wp
5751 end do
5752
5753# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5754#if defined(MFC_OpenACC)
5755# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5756!$acc loop seq
5757# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5758#elif defined(MFC_OpenMP)
5759# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5760
5761# 1777 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5762#endif
5763# 1778 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5764 do i = 1, num_dims
5765 vel_l(i) = 0._wp
5766 vel_r(i) = 0._wp
5767 end do
5768
5769
5770# 1783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5771#if defined(MFC_OpenACC)
5772# 1783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5773!$acc loop seq
5774# 1783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5775#elif defined(MFC_OpenMP)
5776# 1783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5777
5778# 1783 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5779#endif
5780# 1784 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5781 do q = vidxb + 1, vidxe
5782
5783# 1785 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5784#if defined(MFC_OpenACC)
5785# 1785 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5786!$acc loop seq
5787# 1785 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5788#elif defined(MFC_OpenMP)
5789# 1785 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5790
5791# 1785 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5792#endif
5793# 1786 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5794 do i = 1, num_fluids
5795 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k + q, l)
5796 end do
5797
5798 if (num_fluids > 1) then
5799
5800# 1791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5801#if defined(MFC_OpenACC)
5802# 1791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5803!$acc loop seq
5804# 1791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5805#elif defined(MFC_OpenMP)
5806# 1791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5807
5808# 1791 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5809#endif
5810# 1792 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5811 do i = 1, num_fluids - 1
5812 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(igr_e_idx + i)%sf(j, k + q, l)
5813 end do
5814 else
5815 alpha_l(1) = 1._wp
5816 end if
5817
5818
5819# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5820#if defined(MFC_OpenACC)
5821# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5822!$acc loop seq
5823# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5824#elif defined(MFC_OpenMP)
5825# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5826
5827# 1799 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5828#endif
5829# 1800 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5830 do i = 1, num_dims
5831 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k + q, l)
5832 end do
5833 end do
5834
5835
5836# 1805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5837#if defined(MFC_OpenACC)
5838# 1805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5839!$acc loop seq
5840# 1805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5841#elif defined(MFC_OpenMP)
5842# 1805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5843
5844# 1805 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5845#endif
5846# 1806 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5847 do q = vidxb, vidxe - 1
5848
5849# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5850#if defined(MFC_OpenACC)
5851# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5852!$acc loop seq
5853# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5854#elif defined(MFC_OpenMP)
5855# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5856
5857# 1807 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5858#endif
5859# 1808 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5860 do i = 1, num_fluids
5861 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k + q, l)
5862 end do
5863
5864 if (num_fluids > 1) then
5865
5866# 1813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5867#if defined(MFC_OpenACC)
5868# 1813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5869!$acc loop seq
5870# 1813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5871#elif defined(MFC_OpenMP)
5872# 1813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5873
5874# 1813 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5875#endif
5876# 1814 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5877 do i = 1, num_fluids - 1
5878 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(igr_e_idx + i)%sf(j, k + q, l)
5879 end do
5880 else
5881 alpha_r(1) = 1._wp
5882 end if
5883
5884
5885# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5886#if defined(MFC_OpenACC)
5887# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5888!$acc loop seq
5889# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5890#elif defined(MFC_OpenMP)
5891# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5892
5893# 1821 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5894#endif
5895# 1822 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5896 do i = 1, num_dims
5897 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k + q, l)
5898 end do
5899 end do
5900
5901 if (num_fluids > 1) then
5902 alpha_l(num_fluids) = 1._wp
5903 alpha_r(num_fluids) = 1._wp
5904
5905
5906# 1831 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5907#if defined(MFC_OpenACC)
5908# 1831 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5909!$acc loop seq
5910# 1831 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5911#elif defined(MFC_OpenMP)
5912# 1831 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5913
5914# 1831 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5915#endif
5916# 1832 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5917 do i = 1, num_fluids - 1
5918 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
5919 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
5920 end do
5921 end if
5922
5923 call s_compute_mixture_coefficients(alpha_rho_l, alpha_l, rho_l, gamma_l, pi_inf_l, qv_igr)
5924 call s_compute_mixture_coefficients(alpha_rho_r, alpha_r, rho_r, gamma_r, pi_inf_r, qv_igr)
5925
5926
5927# 1841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5928#if defined(MFC_OpenACC)
5929# 1841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5930!$acc loop seq
5931# 1841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5932#elif defined(MFC_OpenMP)
5933# 1841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5934
5935# 1841 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5936#endif
5937# 1842 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5938 do i = 1, num_dims
5939 vel_l(i) = vel_l(i)/rho_l
5940 vel_r(i) = vel_r(i)/rho_r
5941 end do
5942
5943 if (viscous) then
5944 mu_l = 0._wp
5945 mu_r = 0._wp
5946
5947# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5948#if defined(MFC_OpenACC)
5949# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5950!$acc loop seq
5951# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5952#elif defined(MFC_OpenMP)
5953# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5954
5955# 1850 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5956#endif
5957# 1851 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5958 do i = 1, num_fluids
5959 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
5960 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
5961 end do
5962
5963
5964# 1856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5965#if defined(MFC_OpenACC)
5966# 1856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5967!$acc atomic update
5968# 1856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5969#elif defined(MFC_OpenMP)
5970# 1856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5971!$omp atomic update
5972# 1856 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5973#endif
5974# 1857 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5975 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
5976 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k + 1)), kind=stp)
5977
5978# 1859 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5979#if defined(MFC_OpenACC)
5980# 1859 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5981!$acc atomic update
5982# 1859 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5983#elif defined(MFC_OpenMP)
5984# 1859 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5985!$omp atomic update
5986# 1859 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5987#endif
5988# 1860 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5989 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
5990 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k + 1)), kind=stp)
5991
5992
5993# 1863 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5994#if defined(MFC_OpenACC)
5995# 1863 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5996!$acc atomic update
5997# 1863 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
5998#elif defined(MFC_OpenMP)
5999# 1863 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6000!$omp atomic update
6001# 1863 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6002#endif
6003# 1864 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6004 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
6005 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dy(k)), kind=stp)
6006
6007# 1866 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6008#if defined(MFC_OpenACC)
6009# 1866 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6010!$acc atomic update
6011# 1866 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6012#elif defined(MFC_OpenMP)
6013# 1866 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6014!$omp atomic update
6015# 1866 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6016#endif
6017# 1867 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6018 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6019 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dy(k)), kind=stp)
6020
6021
6022# 1870 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6023#if defined(MFC_OpenACC)
6024# 1870 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6025!$acc atomic update
6026# 1870 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6027#elif defined(MFC_OpenMP)
6028# 1870 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6029!$omp atomic update
6030# 1870 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6031#endif
6032# 1871 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6033 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
6034 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k + 1)), kind=stp)
6035
6036# 1873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6037#if defined(MFC_OpenACC)
6038# 1873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6039!$acc atomic update
6040# 1873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6041#elif defined(MFC_OpenMP)
6042# 1873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6043!$omp atomic update
6044# 1873 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6045#endif
6046# 1874 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6047 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6048 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k + 1)), kind=stp)
6049
6050
6051# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6052#if defined(MFC_OpenACC)
6053# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6054!$acc atomic update
6055# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6056#elif defined(MFC_OpenMP)
6057# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6058!$omp atomic update
6059# 1877 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6060#endif
6061# 1878 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6062 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
6063 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dy(k)), kind=stp)
6064
6065# 1880 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6066#if defined(MFC_OpenACC)
6067# 1880 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6068!$acc atomic update
6069# 1880 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6070#elif defined(MFC_OpenMP)
6071# 1880 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6072!$omp atomic update
6073# 1880 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6074#endif
6075# 1881 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6076 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6077 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dy(k)), kind=stp)
6078
6079
6080# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6081#if defined(MFC_OpenACC)
6082# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6083!$acc atomic update
6084# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6085#elif defined(MFC_OpenMP)
6086# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6087!$omp atomic update
6088# 1884 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6089#endif
6090# 1885 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6091 rhs_vf(igr_momxb + 2)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 2)%sf(j, k + 1, &
6092 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k + 1)), kind=stp)
6093
6094# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6095#if defined(MFC_OpenACC)
6096# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6097!$acc atomic update
6098# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6099#elif defined(MFC_OpenMP)
6100# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6101!$omp atomic update
6102# 1887 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6103#endif
6104# 1888 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6105 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6106 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k + 1)), kind=stp)
6107
6108
6109# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6110#if defined(MFC_OpenACC)
6111# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6112!$acc atomic update
6113# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6114#elif defined(MFC_OpenMP)
6115# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6116!$omp atomic update
6117# 1891 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6118#endif
6119# 1892 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6120 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
6121 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dy(k)), kind=stp)
6122
6123# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6124#if defined(MFC_OpenACC)
6125# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6126!$acc atomic update
6127# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6128#elif defined(MFC_OpenMP)
6129# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6130!$omp atomic update
6131# 1894 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6132#endif
6133# 1895 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6134 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6135 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(3)*(1._wp/dy(k)), kind=stp)
6136
6137
6138# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6139#if defined(MFC_OpenACC)
6140# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6141!$acc atomic update
6142# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6143#elif defined(MFC_OpenMP)
6144# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6145!$omp atomic update
6146# 1898 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6147#endif
6148# 1899 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6149 rhs_vf(igr_momxb + 2)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 2)%sf(j, k + 1, &
6150 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k + 1)), kind=stp)
6151
6152# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6153#if defined(MFC_OpenACC)
6154# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6155!$acc atomic update
6156# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6157#elif defined(MFC_OpenMP)
6158# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6159!$omp atomic update
6160# 1901 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6161#endif
6162# 1902 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6163 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6164 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k + 1)), kind=stp)
6165
6166
6167# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6168#if defined(MFC_OpenACC)
6169# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6170!$acc atomic update
6171# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6172#elif defined(MFC_OpenMP)
6173# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6174!$omp atomic update
6175# 1905 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6176#endif
6177# 1906 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6178 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
6179 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dy(k)), kind=stp)
6180
6181# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6182#if defined(MFC_OpenACC)
6183# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6184!$acc atomic update
6185# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6186#elif defined(MFC_OpenMP)
6187# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6188!$omp atomic update
6189# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6190#endif
6191# 1909 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6192 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6193 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(3)*(1._wp/dy(k)), kind=stp)
6194
6195
6196# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6197#if defined(MFC_OpenACC)
6198# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6199!$acc atomic update
6200# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6201#elif defined(MFC_OpenMP)
6202# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6203!$omp atomic update
6204# 1912 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6205#endif
6206# 1913 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6207 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
6208 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k + 1)), kind=stp)
6209
6210# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6211#if defined(MFC_OpenACC)
6212# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6213!$acc atomic update
6214# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6215#elif defined(MFC_OpenMP)
6216# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6217!$omp atomic update
6218# 1915 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6219#endif
6220# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6221 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6222 & l) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
6223
6224
6225# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6226#if defined(MFC_OpenACC)
6227# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6228!$acc atomic update
6229# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6230#elif defined(MFC_OpenMP)
6231# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6232!$omp atomic update
6233# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6234#endif
6235# 1920 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6236 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
6237 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dy(k)), kind=stp)
6238
6239# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6240#if defined(MFC_OpenACC)
6241# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6242!$acc atomic update
6243# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6244#elif defined(MFC_OpenMP)
6245# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6246!$omp atomic update
6247# 1922 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6248#endif
6249# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6250 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6251 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(2)*(1._wp/dy(k)), kind=stp)
6252
6253
6254# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6255#if defined(MFC_OpenACC)
6256# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6257!$acc atomic update
6258# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6259#elif defined(MFC_OpenMP)
6260# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6261!$omp atomic update
6262# 1926 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6263#endif
6264# 1927 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6265 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
6266 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k + 1)), kind=stp)
6267
6268# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6269#if defined(MFC_OpenACC)
6270# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6271!$acc atomic update
6272# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6273#elif defined(MFC_OpenMP)
6274# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6275!$omp atomic update
6276# 1929 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6277#endif
6278# 1930 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6279 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6280 & l) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
6281
6282
6283# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6284#if defined(MFC_OpenACC)
6285# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6286!$acc atomic update
6287# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6288#elif defined(MFC_OpenMP)
6289# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6290!$omp atomic update
6291# 1933 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6292#endif
6293# 1934 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6294 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
6295 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dy(k)), kind=stp)
6296
6297# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6298#if defined(MFC_OpenACC)
6299# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6300!$acc atomic update
6301# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6302#elif defined(MFC_OpenMP)
6303# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6304!$omp atomic update
6305# 1936 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6306#endif
6307# 1937 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6308 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6309 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(2)*(1._wp/dy(k)), kind=stp)
6310 end if
6311
6312 e_l = 0._wp; e_r = 0._wp
6313 f_l = 0._wp; f_r = 0._wp
6314
6315
6316# 1944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6317#if defined(MFC_OpenACC)
6318# 1944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6319!$acc loop seq
6320# 1944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6321#elif defined(MFC_OpenMP)
6322# 1944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6323
6324# 1944 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6325#endif
6326# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6327 do q = vidxb + 1, vidxe
6328 e_l = e_l + coeff_l(q)*q_cons_vf(igr_e_idx)%sf(j, k + q, l)
6329 f_l = f_l + coeff_l(q)*jac(j, k + q, l)
6330 end do
6331
6332
6333# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6334#if defined(MFC_OpenACC)
6335# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6336!$acc loop seq
6337# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6338#elif defined(MFC_OpenMP)
6339# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6340
6341# 1950 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6342#endif
6343# 1951 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6344 do q = vidxb, vidxe - 1
6345 e_r = e_r + coeff_r(q)*q_cons_vf(igr_e_idx)%sf(j, k + q, l)
6346 f_r = f_r + coeff_r(q)*jac(j, k + q, l)
6347 end do
6348
6349 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, &
6350 & vel_r, pres_l, pres_r, cfl)
6351
6352
6353# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6354#if defined(MFC_OpenACC)
6355# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6356!$acc loop seq
6357# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6358#elif defined(MFC_OpenMP)
6359# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6360
6361# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6362#endif
6363# 1960 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6364 do i = 1, num_fluids
6365
6366# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6367#if defined(MFC_OpenACC)
6368# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6369!$acc atomic update
6370# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6371#elif defined(MFC_OpenMP)
6372# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6373!$omp atomic update
6374# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6375#endif
6376# 1962 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6377 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
6378 & l) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
6379 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k + 1)), kind=stp)
6380
6381
6382# 1966 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6383#if defined(MFC_OpenACC)
6384# 1966 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6385!$acc atomic update
6386# 1966 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6387#elif defined(MFC_OpenMP)
6388# 1966 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6389!$omp atomic update
6390# 1966 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6391#endif
6392# 1967 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6393 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
6394 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(2))*(1._wp/dy(k)) &
6395 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dy(k)), kind=stp)
6396 end do
6397
6398 if (num_fluids > 1) then
6399
6400# 1973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6401#if defined(MFC_OpenACC)
6402# 1973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6403!$acc loop seq
6404# 1973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6405#elif defined(MFC_OpenMP)
6406# 1973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6407
6408# 1973 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6409#endif
6410# 1974 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6411 do i = 1, num_fluids - 1
6412
6413# 1975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6414#if defined(MFC_OpenACC)
6415# 1975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6416!$acc atomic update
6417# 1975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6418#elif defined(MFC_OpenMP)
6419# 1975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6420!$omp atomic update
6421# 1975 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6422#endif
6423# 1976 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6424 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6425 & l) + real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k + 1)) &
6426 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k + 1)), kind=stp)
6427
6428
6429# 1980 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6430#if defined(MFC_OpenACC)
6431# 1980 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6432!$acc atomic update
6433# 1980 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6434#elif defined(MFC_OpenMP)
6435# 1980 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6436!$omp atomic update
6437# 1980 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6438#endif
6439# 1981 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6440 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6441 & l) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6442 & l)*vel_l(2)*(1._wp/dy(k + 1)), kind=stp)
6443
6444
6445# 1985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6446#if defined(MFC_OpenACC)
6447# 1985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6448!$acc atomic update
6449# 1985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6450#elif defined(MFC_OpenMP)
6451# 1985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6452!$omp atomic update
6453# 1985 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6454#endif
6455# 1986 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6456 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
6457 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(2))*(1._wp/dy(k)) &
6458 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dy(k)), kind=stp)
6459
6460
6461# 1990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6462#if defined(MFC_OpenACC)
6463# 1990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6464!$acc atomic update
6465# 1990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6466#elif defined(MFC_OpenMP)
6467# 1990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6468!$omp atomic update
6469# 1990 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6470#endif
6471# 1991 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6472 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
6473 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
6474 & l)*vel_l(2)*(1._wp/dy(k)), kind=stp)
6475 end do
6476 end if
6477
6478
6479# 1997 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6480#if defined(MFC_OpenACC)
6481# 1997 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6482!$acc atomic update
6483# 1997 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6484#elif defined(MFC_OpenMP)
6485# 1997 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6486!$omp atomic update
6487# 1997 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6488#endif
6489# 1998 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6490 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
6491 & l) + real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k + 1)) &
6492 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k + 1)), kind=stp)
6493
6494
6495# 2002 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6496#if defined(MFC_OpenACC)
6497# 2002 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6498!$acc atomic update
6499# 2002 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6500#elif defined(MFC_OpenMP)
6501# 2002 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6502!$omp atomic update
6503# 2002 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6504#endif
6505# 2003 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6506 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
6507 & l) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(2)*(1._wp/dy(k + 1)) &
6508 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dy(k + 1)), kind=stp)
6509
6510
6511# 2007 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6512#if defined(MFC_OpenACC)
6513# 2007 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6514!$acc atomic update
6515# 2007 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6516#elif defined(MFC_OpenMP)
6517# 2007 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6518!$omp atomic update
6519# 2007 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6520#endif
6521# 2008 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6522 rhs_vf(igr_momxb + 2)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 2)%sf(j, k + 1, &
6523 & l) + real(0.5_wp*dt*rho_l*vel_l(3)*vel_l(2)*(1._wp/dy(k + 1)) &
6524 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dy(k + 1)), kind=stp)
6525
6526
6527# 2012 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6528#if defined(MFC_OpenACC)
6529# 2012 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6530!$acc atomic update
6531# 2012 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6532#elif defined(MFC_OpenMP)
6533# 2012 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6534!$omp atomic update
6535# 2012 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6536#endif
6537# 2013 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6538 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6539 & l) + real(0.5_wp*dt*(vel_l(2)*(e_l + pres_l + f_l))*(1._wp/dy(k + 1)) &
6540 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dy(k + 1)), kind=stp)
6541
6542
6543# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6544#if defined(MFC_OpenACC)
6545# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6546!$acc atomic update
6547# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6548#elif defined(MFC_OpenMP)
6549# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6550!$omp atomic update
6551# 2017 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6552#endif
6553# 2018 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6554 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
6555 & l) - real(0.5_wp*dt*(rho_l*(vel_l(2))**2.0 + pres_l + f_l)*(1._wp/dy(k)) &
6556 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dy(k)), kind=stp)
6557
6558
6559# 2022 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6560#if defined(MFC_OpenACC)
6561# 2022 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6562!$acc atomic update
6563# 2022 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6564#elif defined(MFC_OpenMP)
6565# 2022 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6566!$omp atomic update
6567# 2022 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6568#endif
6569# 2023 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6570 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
6571 & 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) &
6572 & )*(1._wp/dy(k)), kind=stp)
6573
6574
6575# 2027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6576#if defined(MFC_OpenACC)
6577# 2027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6578!$acc atomic update
6579# 2027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6580#elif defined(MFC_OpenMP)
6581# 2027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6582!$omp atomic update
6583# 2027 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6584#endif
6585# 2028 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6586 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
6587 & 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) &
6588 & )*(1._wp/dy(k)), kind=stp)
6589
6590
6591# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6592#if defined(MFC_OpenACC)
6593# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6594!$acc atomic update
6595# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6596#elif defined(MFC_OpenMP)
6597# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6598!$omp atomic update
6599# 2032 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6600#endif
6601# 2033 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6602 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6603 & 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) &
6604 & *(1._wp/dy(k)), kind=stp)
6605
6606
6607# 2037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6608#if defined(MFC_OpenACC)
6609# 2037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6610!$acc loop seq
6611# 2037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6612#elif defined(MFC_OpenMP)
6613# 2037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6614
6615# 2037 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6616#endif
6617# 2038 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6618 do i = 1, num_fluids
6619
6620# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6621#if defined(MFC_OpenACC)
6622# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6623!$acc atomic update
6624# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6625#elif defined(MFC_OpenMP)
6626# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6627!$omp atomic update
6628# 2039 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6629#endif
6630# 2040 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6631 rhs_vf(i)%sf(j, k + 1, l) = rhs_vf(i)%sf(j, k + 1, &
6632 & l) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
6633 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k + 1)), kind=stp)
6634
6635
6636# 2044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6637#if defined(MFC_OpenACC)
6638# 2044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6639!$acc atomic update
6640# 2044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6641#elif defined(MFC_OpenMP)
6642# 2044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6643!$omp atomic update
6644# 2044 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6645#endif
6646# 2045 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6647 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
6648 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(2))*(1._wp/dy(k)) &
6649 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dy(k)), kind=stp)
6650 end do
6651
6652 if (num_fluids > 1) then
6653
6654# 2051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6655#if defined(MFC_OpenACC)
6656# 2051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6657!$acc loop seq
6658# 2051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6659#elif defined(MFC_OpenMP)
6660# 2051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6661
6662# 2051 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6663#endif
6664# 2052 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6665 do i = 1, num_fluids - 1
6666
6667# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6668#if defined(MFC_OpenACC)
6669# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6670!$acc atomic update
6671# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6672#elif defined(MFC_OpenMP)
6673# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6674!$omp atomic update
6675# 2053 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6676#endif
6677# 2054 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6678 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6679 & l) + real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k + 1)) &
6680 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k + 1)), kind=stp)
6681
6682
6683# 2058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6684#if defined(MFC_OpenACC)
6685# 2058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6686!$acc atomic update
6687# 2058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6688#elif defined(MFC_OpenMP)
6689# 2058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6690!$omp atomic update
6691# 2058 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6692#endif
6693# 2059 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6694 rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6695 & l) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k + 1, &
6696 & l)*vel_r(2)*(1._wp/dy(k + 1)), kind=stp)
6697
6698
6699# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6700#if defined(MFC_OpenACC)
6701# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6702!$acc atomic update
6703# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6704#elif defined(MFC_OpenMP)
6705# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6706!$omp atomic update
6707# 2063 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6708#endif
6709# 2064 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6710 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
6711 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(2))*(1._wp/dy(k)) &
6712 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dy(k)), kind=stp)
6713
6714
6715# 2068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6716#if defined(MFC_OpenACC)
6717# 2068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6718!$acc atomic update
6719# 2068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6720#elif defined(MFC_OpenMP)
6721# 2068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6722!$omp atomic update
6723# 2068 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6724#endif
6725# 2069 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6726 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
6727 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
6728 & l)*vel_r(2)*(1._wp/dy(k)), kind=stp)
6729 end do
6730 end if
6731
6732
6733# 2075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6734#if defined(MFC_OpenACC)
6735# 2075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6736!$acc atomic update
6737# 2075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6738#elif defined(MFC_OpenMP)
6739# 2075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6740!$omp atomic update
6741# 2075 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6742#endif
6743# 2076 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6744 rhs_vf(igr_momxb + 1)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 1)%sf(j, k + 1, &
6745 & l) + real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k + 1)) &
6746 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k + 1)), kind=stp)
6747
6748
6749# 2080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6750#if defined(MFC_OpenACC)
6751# 2080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6752!$acc atomic update
6753# 2080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6754#elif defined(MFC_OpenMP)
6755# 2080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6756!$omp atomic update
6757# 2080 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6758#endif
6759# 2081 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6760 rhs_vf(igr_momxb)%sf(j, k + 1, l) = rhs_vf(igr_momxb)%sf(j, k + 1, &
6761 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(1)*(1._wp/dy(k + 1)) &
6762 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dy(k + 1)), kind=stp)
6763
6764
6765# 2085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6766#if defined(MFC_OpenACC)
6767# 2085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6768!$acc atomic update
6769# 2085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6770#elif defined(MFC_OpenMP)
6771# 2085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6772!$omp atomic update
6773# 2085 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6774#endif
6775# 2086 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6776 rhs_vf(igr_momxb + 2)%sf(j, k + 1, l) = rhs_vf(igr_momxb + 2)%sf(j, k + 1, &
6777 & l) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dy(k + 1)) &
6778 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dy(k + 1)), kind=stp)
6779
6780
6781# 2090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6782#if defined(MFC_OpenACC)
6783# 2090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6784!$acc atomic update
6785# 2090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6786#elif defined(MFC_OpenMP)
6787# 2090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6788!$omp atomic update
6789# 2090 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6790#endif
6791# 2091 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6792 rhs_vf(igr_e_idx)%sf(j, k + 1, l) = rhs_vf(igr_e_idx)%sf(j, k + 1, &
6793 & l) + real(0.5_wp*dt*(vel_r(2)*(e_r + pres_r + f_r))*(1._wp/dy(k + 1)) &
6794 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dy(k + 1)), kind=stp)
6795
6796
6797# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6798#if defined(MFC_OpenACC)
6799# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6800!$acc atomic update
6801# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6802#elif defined(MFC_OpenMP)
6803# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6804!$omp atomic update
6805# 2095 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6806#endif
6807# 2096 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6808 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
6809 & l) - real(0.5_wp*dt*(rho_r*(vel_r(2))**2.0 + pres_r + f_r)*(1._wp/dy(k)) &
6810 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dy(k)), kind=stp)
6811
6812
6813# 2100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6814#if defined(MFC_OpenACC)
6815# 2100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6816!$acc atomic update
6817# 2100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6818#elif defined(MFC_OpenMP)
6819# 2100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6820!$omp atomic update
6821# 2100 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6822#endif
6823# 2101 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6824 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
6825 & 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) &
6826 & )*(1._wp/dy(k)), kind=stp)
6827
6828
6829# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6830#if defined(MFC_OpenACC)
6831# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6832!$acc atomic update
6833# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6834#elif defined(MFC_OpenMP)
6835# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6836!$omp atomic update
6837# 2105 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6838#endif
6839# 2106 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6840 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
6841 & 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) &
6842 & )*(1._wp/dy(k)), kind=stp)
6843
6844
6845# 2110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6846#if defined(MFC_OpenACC)
6847# 2110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6848!$acc atomic update
6849# 2110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6850#elif defined(MFC_OpenMP)
6851# 2110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6852!$omp atomic update
6853# 2110 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6854#endif
6855# 2111 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6856 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
6857 & 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) &
6858 & *(1._wp/dy(k)), kind=stp)
6859 end do
6860 end do
6861 end do
6862
6863# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6864#if defined(MFC_OpenACC)
6865# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6866!$acc end parallel loop
6867# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6868#elif defined(MFC_OpenMP)
6869# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6870
6871# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6872!$omp end target teams loop
6873# 2117 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6874#endif
6875# 2118 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6876# 2119 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6877 end if
6878 else if (idir == 3) then
6879# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6880
6881# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6882
6883# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6884#if defined(MFC_OpenACC)
6885# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6886!$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, qv_igr, mu_L, mu_R, vel_L, vel_R, pres_L, pres_R, alpha_L, alpha_R, &
6887# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6888!$acc& 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)
6889# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6890#elif defined(MFC_OpenMP)
6891# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6892
6893# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6894
6895# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6896
6897# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6898!$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, &
6899# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6900!$omp& rho_R, gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_igr, 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, &
6901# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6902!$omp& vflux_L_arr, vflux_R_arr)
6903# 2122 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6904#endif
6905# 2125 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6906 do l = -1, p
6907 do k = 0, n
6908 do j = 0, m
6909 if (viscous) then
6910 vflux_l_arr = 0._wp
6911 vflux_r_arr = 0._wp
6912
6913# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6914
6915# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6916#if defined(MFC_OpenACC)
6917# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6918!$acc loop seq
6919# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6920#elif defined(MFC_OpenMP)
6921# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6922
6923# 2139 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6924#endif
6925# 2140 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6926 do q = vidxb, vidxe
6927 ! x-direction contributions
6928
6929# 2142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6930#if defined(MFC_OpenACC)
6931# 2142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6932!$acc loop seq
6933# 2142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6934#elif defined(MFC_OpenMP)
6935# 2142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6936
6937# 2142 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6938#endif
6939# 2143 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6940 do i = -1, 1
6941 rho_l = 0._wp
6942
6943# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6944#if defined(MFC_OpenACC)
6945# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6946!$acc loop seq
6947# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6948#elif defined(MFC_OpenMP)
6949# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6950
6951# 2145 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6952#endif
6953# 2146 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6954 do r = 1, num_fluids
6955 rho_l = rho_l + q_cons_vf(r)%sf(j + i, k, l + q)
6956 end do
6957 rho_sf_small(i) = rho_l
6958 end do
6959
6960 dvel_small(1) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb)%sf(j + 1, k, &
6961 & l + q)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j - 1, k, l + q)/rho_sf_small(-1))
6962 dvel_small(3) = (1/(2._wp*dx(j)))*(q_cons_vf(igr_momxb + 2)%sf(j + 1, k, &
6963 & l + q)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j - 1, k, &
6964 & l + q)/rho_sf_small(-1))
6965
6966 if (q > vidxb) then
6967 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(3))
6968 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(1))/3._wp
6969 end if
6970 if (q < vidxe) then
6971 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(3))
6972 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(1))/3._wp
6973 end if
6974
6975 ! y-direction contributions
6976
6977# 2168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6978#if defined(MFC_OpenACC)
6979# 2168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6980!$acc loop seq
6981# 2168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6982#elif defined(MFC_OpenMP)
6983# 2168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6984
6985# 2168 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6986#endif
6987# 2169 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6988 do i = -1, 1
6989 rho_l = 0._wp
6990
6991# 2171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6992#if defined(MFC_OpenACC)
6993# 2171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6994!$acc loop seq
6995# 2171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6996#elif defined(MFC_OpenMP)
6997# 2171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
6998
6999# 2171 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7000#endif
7001# 2172 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7002 do r = 1, num_fluids
7003 rho_l = rho_l + q_cons_vf(r)%sf(j, k + i, l + q)
7004 end do
7005 rho_sf_small(i) = rho_l
7006 end do
7007
7008 dvel_small(2) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 1)%sf(j, k + 1, &
7009 & l + q)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j, k - 1, &
7010 & l + q)/rho_sf_small(-1))
7011 dvel_small(3) = (1/(2._wp*dy(k)))*(q_cons_vf(igr_momxb + 2)%sf(j, k + 1, &
7012 & l + q)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j, k - 1, &
7013 & l + q)/rho_sf_small(-1))
7014
7015 if (q > vidxb) then
7016 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(3))
7017 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(-2._wp*dvel_small(2))/3._wp
7018 end if
7019 if (q < vidxe) then
7020 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(3))
7021 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(-2._wp*dvel_small(2))/3._wp
7022 end if
7023
7024 ! z-direction contributions
7025
7026# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7027#if defined(MFC_OpenACC)
7028# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7029!$acc loop seq
7030# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7031#elif defined(MFC_OpenMP)
7032# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7033
7034# 2195 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7035#endif
7036# 2196 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7037 do i = -1, 1
7038 rho_l = 0._wp
7039
7040# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7041#if defined(MFC_OpenACC)
7042# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7043!$acc loop seq
7044# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7045#elif defined(MFC_OpenMP)
7046# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7047
7048# 2198 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7049#endif
7050# 2199 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7051 do r = 1, num_fluids
7052 rho_l = rho_l + q_cons_vf(r)%sf(j, k, l + i + q)
7053 end do
7054 rho_sf_small(i) = rho_l
7055 end do
7056 dvel_small(1) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb)%sf(j, k, &
7057 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(igr_momxb)%sf(j, k, &
7058 & l - 1 + q)/rho_sf_small(-1))
7059 dvel_small(2) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 1)%sf(j, k, &
7060 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(igr_momxb + 1)%sf(j, k, &
7061 & l - 1 + q)/rho_sf_small(-1))
7062 dvel_small(3) = (1/(2._wp*dz(l)))*(q_cons_vf(igr_momxb + 2)%sf(j, k, &
7063 & l + 1 + q)/rho_sf_small(1) - q_cons_vf(igr_momxb + 2)%sf(j, k, &
7064 & l - 1 + q)/rho_sf_small(-1))
7065 if (q > vidxb) then
7066 vflux_l_arr(1) = vflux_l_arr(1) + coeff_l(q)*(dvel_small(1))
7067 vflux_l_arr(2) = vflux_l_arr(2) + coeff_l(q)*(dvel_small(2))
7068 vflux_l_arr(3) = vflux_l_arr(3) + coeff_l(q)*(4._wp*dvel_small(3))/3._wp
7069 end if
7070 if (q < vidxe) then
7071 vflux_r_arr(1) = vflux_r_arr(1) + coeff_r(q)*(dvel_small(1))
7072 vflux_r_arr(2) = vflux_r_arr(2) + coeff_r(q)*(dvel_small(2))
7073 vflux_r_arr(3) = vflux_r_arr(3) + coeff_r(q)*(4._wp*dvel_small(3))/3._wp
7074 end if
7075 end do
7076 end if
7077
7078
7079# 2226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7080#if defined(MFC_OpenACC)
7081# 2226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7082!$acc loop seq
7083# 2226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7084#elif defined(MFC_OpenMP)
7085# 2226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7086
7087# 2226 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7088#endif
7089# 2227 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7090 do i = 1, num_fluids
7091 alpha_rho_l(i) = 0._wp
7092 alpha_rho_r(i) = 0._wp
7093 alpha_l(i) = 0._wp
7094 alpha_r(i) = 0._wp
7095 end do
7096
7097
7098# 2234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7099#if defined(MFC_OpenACC)
7100# 2234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7101!$acc loop seq
7102# 2234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7103#elif defined(MFC_OpenMP)
7104# 2234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7105
7106# 2234 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7107#endif
7108# 2235 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7109 do i = 1, num_dims
7110 vel_l(i) = 0._wp
7111 vel_r(i) = 0._wp
7112 end do
7113
7114
7115# 2240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7116#if defined(MFC_OpenACC)
7117# 2240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7118!$acc loop seq
7119# 2240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7120#elif defined(MFC_OpenMP)
7121# 2240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7122
7123# 2240 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7124#endif
7125# 2241 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7126 do q = vidxb + 1, vidxe
7127
7128# 2242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7129#if defined(MFC_OpenACC)
7130# 2242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7131!$acc loop seq
7132# 2242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7133#elif defined(MFC_OpenMP)
7134# 2242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7135
7136# 2242 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7137#endif
7138# 2243 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7139 do i = 1, num_fluids
7140 alpha_rho_l(i) = alpha_rho_l(i) + coeff_l(q)*q_cons_vf(i)%sf(j, k, l + q)
7141 end do
7142
7143 if (num_fluids > 1) then
7144
7145# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7146#if defined(MFC_OpenACC)
7147# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7148!$acc loop seq
7149# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7150#elif defined(MFC_OpenMP)
7151# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7152
7153# 2248 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7154#endif
7155# 2249 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7156 do i = 1, num_fluids - 1
7157 alpha_l(i) = alpha_l(i) + coeff_l(q)*q_cons_vf(igr_e_idx + i)%sf(j, k, l + q)
7158 end do
7159 else
7160 alpha_l(1) = 1._wp
7161 end if
7162
7163
7164# 2256 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7165#if defined(MFC_OpenACC)
7166# 2256 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7167!$acc loop seq
7168# 2256 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7169#elif defined(MFC_OpenMP)
7170# 2256 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7171
7172# 2256 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7173#endif
7174# 2257 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7175 do i = 1, num_dims
7176 vel_l(i) = vel_l(i) + coeff_l(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k, l + q)
7177 end do
7178 end do
7179
7180
7181# 2262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7182#if defined(MFC_OpenACC)
7183# 2262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7184!$acc loop seq
7185# 2262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7186#elif defined(MFC_OpenMP)
7187# 2262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7188
7189# 2262 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7190#endif
7191# 2263 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7192 do q = vidxb, vidxe - 1
7193
7194# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7195#if defined(MFC_OpenACC)
7196# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7197!$acc loop seq
7198# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7199#elif defined(MFC_OpenMP)
7200# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7201
7202# 2264 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7203#endif
7204# 2265 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7205 do i = 1, num_fluids
7206 alpha_rho_r(i) = alpha_rho_r(i) + coeff_r(q)*q_cons_vf(i)%sf(j, k, l + q)
7207 end do
7208
7209 if (num_fluids > 1) then
7210
7211# 2270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7212#if defined(MFC_OpenACC)
7213# 2270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7214!$acc loop seq
7215# 2270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7216#elif defined(MFC_OpenMP)
7217# 2270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7218
7219# 2270 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7220#endif
7221# 2271 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7222 do i = 1, num_fluids - 1
7223 alpha_r(i) = alpha_r(i) + coeff_r(q)*q_cons_vf(igr_e_idx + i)%sf(j, k, l + q)
7224 end do
7225 else
7226 alpha_r(1) = 1._wp
7227 end if
7228
7229
7230# 2278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7231#if defined(MFC_OpenACC)
7232# 2278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7233!$acc loop seq
7234# 2278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7235#elif defined(MFC_OpenMP)
7236# 2278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7237
7238# 2278 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7239#endif
7240# 2279 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7241 do i = 1, num_dims
7242 vel_r(i) = vel_r(i) + coeff_r(q)*q_cons_vf(igr_momxb + i - 1)%sf(j, k, l + q)
7243 end do
7244 end do
7245
7246 if (num_fluids > 1) then
7247 alpha_l(num_fluids) = 1._wp
7248 alpha_r(num_fluids) = 1._wp
7249
7250
7251# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7252#if defined(MFC_OpenACC)
7253# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7254!$acc loop seq
7255# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7256#elif defined(MFC_OpenMP)
7257# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7258
7259# 2288 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7260#endif
7261# 2289 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7262 do i = 1, num_fluids - 1
7263 alpha_l(num_fluids) = alpha_l(num_fluids) - alpha_l(i)
7264 alpha_r(num_fluids) = alpha_r(num_fluids) - alpha_r(i)
7265 end do
7266 end if
7267
7268 call s_compute_mixture_coefficients(alpha_rho_l, alpha_l, rho_l, gamma_l, pi_inf_l, qv_igr)
7269 call s_compute_mixture_coefficients(alpha_rho_r, alpha_r, rho_r, gamma_r, pi_inf_r, qv_igr)
7270
7271
7272# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7273#if defined(MFC_OpenACC)
7274# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7275!$acc loop seq
7276# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7277#elif defined(MFC_OpenMP)
7278# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7279
7280# 2298 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7281#endif
7282# 2299 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7283 do i = 1, num_dims
7284 vel_l(i) = vel_l(i)/rho_l
7285 vel_r(i) = vel_r(i)/rho_r
7286 end do
7287
7288 if (viscous) then
7289 mu_l = 0._wp
7290 mu_r = 0._wp
7291
7292# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7293#if defined(MFC_OpenACC)
7294# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7295!$acc loop seq
7296# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7297#elif defined(MFC_OpenMP)
7298# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7299
7300# 2307 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7301#endif
7302# 2308 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7303 do i = 1, num_fluids
7304 mu_l = alpha_l(i)/res_igr(1, i) + mu_l
7305 mu_r = alpha_r(i)/res_igr(1, i) + mu_r
7306 end do
7307
7308
7309# 2313 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7310#if defined(MFC_OpenACC)
7311# 2313 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7312!$acc atomic update
7313# 2313 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7314#elif defined(MFC_OpenMP)
7315# 2313 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7316!$omp atomic update
7317# 2313 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7318#endif
7319# 2314 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7320 rhs_vf(igr_momxb)%sf(j, k, l + 1) = rhs_vf(igr_momxb)%sf(j, k, &
7321 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l + 1)), kind=stp)
7322
7323# 2316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7324#if defined(MFC_OpenACC)
7325# 2316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7326!$acc atomic update
7327# 2316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7328#elif defined(MFC_OpenMP)
7329# 2316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7330!$omp atomic update
7331# 2316 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7332#endif
7333# 2317 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7334 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7335 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l + 1)), kind=stp)
7336
7337
7338# 2320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7339#if defined(MFC_OpenACC)
7340# 2320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7341!$acc atomic update
7342# 2320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7343#elif defined(MFC_OpenMP)
7344# 2320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7345!$omp atomic update
7346# 2320 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7347#endif
7348# 2321 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7349 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
7350 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*(1._wp/dz(l)), kind=stp)
7351
7352# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7353#if defined(MFC_OpenACC)
7354# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7355!$acc atomic update
7356# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7357#elif defined(MFC_OpenMP)
7358# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7359!$omp atomic update
7360# 2323 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7361#endif
7362# 2324 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7363 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7364 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(1)*vel_l(1)*(1._wp/dz(l)), kind=stp)
7365
7366
7367# 2327 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7368#if defined(MFC_OpenACC)
7369# 2327 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7370!$acc atomic update
7371# 2327 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7372#elif defined(MFC_OpenMP)
7373# 2327 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7374!$omp atomic update
7375# 2327 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7376#endif
7377# 2328 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7378 rhs_vf(igr_momxb)%sf(j, k, l + 1) = rhs_vf(igr_momxb)%sf(j, k, &
7379 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l + 1)), kind=stp)
7380
7381# 2330 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7382#if defined(MFC_OpenACC)
7383# 2330 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7384!$acc atomic update
7385# 2330 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7386#elif defined(MFC_OpenMP)
7387# 2330 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7388!$omp atomic update
7389# 2330 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7390#endif
7391# 2331 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7392 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7393 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l + 1)), kind=stp)
7394
7395
7396# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7397#if defined(MFC_OpenACC)
7398# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7399!$acc atomic update
7400# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7401#elif defined(MFC_OpenMP)
7402# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7403!$omp atomic update
7404# 2334 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7405#endif
7406# 2335 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7407 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
7408 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*(1._wp/dz(l)), kind=stp)
7409
7410# 2337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7411#if defined(MFC_OpenACC)
7412# 2337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7413!$acc atomic update
7414# 2337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7415#elif defined(MFC_OpenMP)
7416# 2337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7417!$omp atomic update
7418# 2337 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7419#endif
7420# 2338 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7421 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7422 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(1)*vel_r(1)*(1._wp/dz(l)), kind=stp)
7423
7424
7425# 2341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7426#if defined(MFC_OpenACC)
7427# 2341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7428!$acc atomic update
7429# 2341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7430#elif defined(MFC_OpenMP)
7431# 2341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7432!$omp atomic update
7433# 2341 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7434#endif
7435# 2342 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7436 rhs_vf(igr_momxb + 1)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7437 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7438
7439# 2344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7440#if defined(MFC_OpenACC)
7441# 2344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7442!$acc atomic update
7443# 2344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7444#elif defined(MFC_OpenMP)
7445# 2344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7446!$omp atomic update
7447# 2344 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7448#endif
7449# 2345 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7450 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7451 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l + 1)), kind=stp)
7452
7453
7454# 2348 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7455#if defined(MFC_OpenACC)
7456# 2348 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7457!$acc atomic update
7458# 2348 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7459#elif defined(MFC_OpenMP)
7460# 2348 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7461!$omp atomic update
7462# 2348 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7463#endif
7464# 2349 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7465 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7466 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*(1._wp/dz(l)), kind=stp)
7467
7468# 2351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7469#if defined(MFC_OpenACC)
7470# 2351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7471!$acc atomic update
7472# 2351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7473#elif defined(MFC_OpenMP)
7474# 2351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7475!$omp atomic update
7476# 2351 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7477#endif
7478# 2352 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7479 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7480 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(2)*vel_l(2)*(1._wp/dz(l)), kind=stp)
7481
7482
7483# 2355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7484#if defined(MFC_OpenACC)
7485# 2355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7486!$acc atomic update
7487# 2355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7488#elif defined(MFC_OpenMP)
7489# 2355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7490!$omp atomic update
7491# 2355 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7492#endif
7493# 2356 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7494 rhs_vf(igr_momxb + 1)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7495 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l + 1)), kind=stp)
7496
7497# 2358 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7498#if defined(MFC_OpenACC)
7499# 2358 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7500!$acc atomic update
7501# 2358 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7502#elif defined(MFC_OpenMP)
7503# 2358 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7504!$omp atomic update
7505# 2358 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7506#endif
7507# 2359 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7508 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7509 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l + 1)), kind=stp)
7510
7511
7512# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7513#if defined(MFC_OpenACC)
7514# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7515!$acc atomic update
7516# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7517#elif defined(MFC_OpenMP)
7518# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7519!$omp atomic update
7520# 2362 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7521#endif
7522# 2363 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7523 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7524 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*(1._wp/dz(l)), kind=stp)
7525
7526# 2365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7527#if defined(MFC_OpenACC)
7528# 2365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7529!$acc atomic update
7530# 2365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7531#elif defined(MFC_OpenMP)
7532# 2365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7533!$omp atomic update
7534# 2365 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7535#endif
7536# 2366 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7537 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7538 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(2)*vel_r(2)*(1._wp/dz(l)), kind=stp)
7539
7540
7541# 2369 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7542#if defined(MFC_OpenACC)
7543# 2369 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7544!$acc atomic update
7545# 2369 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7546#elif defined(MFC_OpenMP)
7547# 2369 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7548!$omp atomic update
7549# 2369 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7550#endif
7551# 2370 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7552 rhs_vf(igr_momxb + 2)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7553 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7554
7555# 2372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7556#if defined(MFC_OpenACC)
7557# 2372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7558!$acc atomic update
7559# 2372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7560#elif defined(MFC_OpenMP)
7561# 2372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7562!$omp atomic update
7563# 2372 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7564#endif
7565# 2373 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7566 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7567 & l + 1) - real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7568
7569
7570# 2376 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7571#if defined(MFC_OpenACC)
7572# 2376 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7573!$acc atomic update
7574# 2376 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7575#elif defined(MFC_OpenMP)
7576# 2376 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7577!$omp atomic update
7578# 2376 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7579#endif
7580# 2377 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7581 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7582 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*(1._wp/dz(l)), kind=stp)
7583
7584# 2379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7585#if defined(MFC_OpenACC)
7586# 2379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7587!$acc atomic update
7588# 2379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7589#elif defined(MFC_OpenMP)
7590# 2379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7591!$omp atomic update
7592# 2379 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7593#endif
7594# 2380 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7595 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7596 & l) + real(0.5_wp*dt*mu_l*vflux_l_arr(3)*vel_l(3)*(1._wp/dz(l)), kind=stp)
7597
7598
7599# 2383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7600#if defined(MFC_OpenACC)
7601# 2383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7602!$acc atomic update
7603# 2383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7604#elif defined(MFC_OpenMP)
7605# 2383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7606!$omp atomic update
7607# 2383 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7608#endif
7609# 2384 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7610 rhs_vf(igr_momxb + 2)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7611 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l + 1)), kind=stp)
7612
7613# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7614#if defined(MFC_OpenACC)
7615# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7616!$acc atomic update
7617# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7618#elif defined(MFC_OpenMP)
7619# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7620!$omp atomic update
7621# 2386 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7622#endif
7623# 2387 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7624 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7625 & l + 1) - real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
7626
7627
7628# 2390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7629#if defined(MFC_OpenACC)
7630# 2390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7631!$acc atomic update
7632# 2390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7633#elif defined(MFC_OpenMP)
7634# 2390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7635!$omp atomic update
7636# 2390 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7637#endif
7638# 2391 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7639 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7640 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*(1._wp/dz(l)), kind=stp)
7641
7642# 2393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7643#if defined(MFC_OpenACC)
7644# 2393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7645!$acc atomic update
7646# 2393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7647#elif defined(MFC_OpenMP)
7648# 2393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7649!$omp atomic update
7650# 2393 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7651#endif
7652# 2394 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7653 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7654 & l) + real(0.5_wp*dt*mu_r*vflux_r_arr(3)*vel_r(3)*(1._wp/dz(l)), kind=stp)
7655 end if
7656
7657 e_l = 0._wp; e_r = 0._wp
7658 f_l = 0._wp; f_r = 0._wp
7659
7660
7661# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7662#if defined(MFC_OpenACC)
7663# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7664!$acc loop seq
7665# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7666#elif defined(MFC_OpenMP)
7667# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7668
7669# 2401 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7670#endif
7671# 2402 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7672 do q = vidxb + 1, vidxe
7673 e_l = e_l + coeff_l(q)*q_cons_vf(igr_e_idx)%sf(j, k, l + q)
7674 f_l = f_l + coeff_l(q)*jac(j, k, l + q)
7675 end do
7676
7677
7678# 2407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7679#if defined(MFC_OpenACC)
7680# 2407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7681!$acc loop seq
7682# 2407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7683#elif defined(MFC_OpenMP)
7684# 2407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7685
7686# 2407 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7687#endif
7688# 2408 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7689 do q = vidxb, vidxe - 1
7690 e_r = e_r + coeff_r(q)*q_cons_vf(igr_e_idx)%sf(j, k, l + q)
7691 f_r = f_r + coeff_r(q)*jac(j, k, l + q)
7692 end do
7693
7694 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, &
7695 & pres_l, pres_r, cfl)
7696
7697
7698# 2416 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7699#if defined(MFC_OpenACC)
7700# 2416 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7701!$acc loop seq
7702# 2416 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7703#elif defined(MFC_OpenMP)
7704# 2416 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7705
7706# 2416 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7707#endif
7708# 2417 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7709 do i = 1, num_fluids
7710
7711# 2418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7712#if defined(MFC_OpenACC)
7713# 2418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7714!$acc atomic update
7715# 2418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7716#elif defined(MFC_OpenMP)
7717# 2418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7718!$omp atomic update
7719# 2418 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7720#endif
7721# 2419 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7722 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, &
7723 & l + 1) + real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(3))*(1._wp/dz(l + 1)) &
7724 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l + 1)), kind=stp)
7725
7726
7727# 2423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7728#if defined(MFC_OpenACC)
7729# 2423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7730!$acc atomic update
7731# 2423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7732#elif defined(MFC_OpenMP)
7733# 2423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7734!$omp atomic update
7735# 2423 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7736#endif
7737# 2424 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7738 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
7739 & l) - real(0.5_wp*dt*(alpha_rho_l(i)*vel_l(3))*(1._wp/dz(l)) &
7740 & - 0.5_wp*dt*cfl*(alpha_rho_l(i))*(1._wp/dz(l)), kind=stp)
7741 end do
7742
7743 if (num_fluids > 1) then
7744
7745# 2430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7746#if defined(MFC_OpenACC)
7747# 2430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7748!$acc loop seq
7749# 2430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7750#elif defined(MFC_OpenMP)
7751# 2430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7752
7753# 2430 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7754#endif
7755# 2431 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7756 do i = 1, num_fluids - 1
7757
7758# 2432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7759#if defined(MFC_OpenACC)
7760# 2432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7761!$acc atomic update
7762# 2432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7763#elif defined(MFC_OpenMP)
7764# 2432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7765!$omp atomic update
7766# 2432 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7767#endif
7768# 2433 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7769 rhs_vf(igr_advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
7770 & l + 1) + real(0.5_wp*dt*(alpha_l(i)*vel_l(3))*(1._wp/dz(l + 1)) &
7771 & - 0.5_wp*dt*cfl*(alpha_l(i))*(1._wp/dz(l + 1)), kind=stp)
7772
7773
7774# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7775#if defined(MFC_OpenACC)
7776# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7777!$acc atomic update
7778# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7779#elif defined(MFC_OpenMP)
7780# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7781!$omp atomic update
7782# 2437 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7783#endif
7784# 2438 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7785 rhs_vf(igr_advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
7786 & l + 1) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
7787 & l + 1)*vel_l(3)*(1._wp/dz(l + 1)), kind=stp)
7788
7789
7790# 2442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7791#if defined(MFC_OpenACC)
7792# 2442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7793!$acc atomic update
7794# 2442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7795#elif defined(MFC_OpenMP)
7796# 2442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7797!$omp atomic update
7798# 2442 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7799#endif
7800# 2443 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7801 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
7802 & l) - real(0.5_wp*dt*(alpha_l(i)*vel_l(3))*(1._wp/dz(l)) - 0.5_wp*dt*cfl*(alpha_l(i)) &
7803 & *(1._wp/dz(l)), kind=stp)
7804
7805
7806# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7807#if defined(MFC_OpenACC)
7808# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7809!$acc atomic update
7810# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7811#elif defined(MFC_OpenMP)
7812# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7813!$omp atomic update
7814# 2447 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7815#endif
7816# 2448 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7817 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
7818 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, l)*vel_l(3)*(1._wp/dz(l)), &
7819 & kind=stp)
7820 end do
7821 end if
7822
7823
7824# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7825#if defined(MFC_OpenACC)
7826# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7827!$acc atomic update
7828# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7829#elif defined(MFC_OpenMP)
7830# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7831!$omp atomic update
7832# 2454 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7833#endif
7834# 2455 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7835 rhs_vf(igr_momxb + 2)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7836 & l + 1) + real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + pres_l + f_l)*(1._wp/dz(l + 1)) &
7837 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l + 1)), kind=stp)
7838
7839
7840# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7841#if defined(MFC_OpenACC)
7842# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7843!$acc atomic update
7844# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7845#elif defined(MFC_OpenMP)
7846# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7847!$omp atomic update
7848# 2459 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7849#endif
7850# 2460 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7851 rhs_vf(igr_momxb)%sf(j, k, l + 1) = rhs_vf(igr_momxb)%sf(j, k, &
7852 & l + 1) + real(0.5_wp*dt*rho_l*vel_l(1)*vel_l(3)*(1._wp/dz(l + 1)) &
7853 & - 0.5_wp*dt*cfl*(rho_l*vel_l(1))*(1._wp/dz(l + 1)), kind=stp)
7854
7855
7856# 2464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7857#if defined(MFC_OpenACC)
7858# 2464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7859!$acc atomic update
7860# 2464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7861#elif defined(MFC_OpenMP)
7862# 2464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7863!$omp atomic update
7864# 2464 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7865#endif
7866# 2465 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7867 rhs_vf(igr_momxb + 1)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7868 & l + 1) + real(0.5_wp*dt*rho_l*vel_l(2)*vel_l(3)*(1._wp/dz(l + 1)) &
7869 & - 0.5_wp*dt*cfl*(rho_l*vel_l(2))*(1._wp/dz(l + 1)), kind=stp)
7870
7871
7872# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7873#if defined(MFC_OpenACC)
7874# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7875!$acc atomic update
7876# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7877#elif defined(MFC_OpenMP)
7878# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7879!$omp atomic update
7880# 2469 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7881#endif
7882# 2470 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7883 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
7884 & l + 1) + real(0.5_wp*dt*(vel_l(3)*(e_l + pres_l + f_l))*(1._wp/dz(l + 1)) &
7885 & - 0.5_wp*dt*cfl*(e_l)*(1._wp/dz(l + 1)), kind=stp)
7886
7887
7888# 2474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7889#if defined(MFC_OpenACC)
7890# 2474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7891!$acc atomic update
7892# 2474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7893#elif defined(MFC_OpenMP)
7894# 2474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7895!$omp atomic update
7896# 2474 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7897#endif
7898# 2475 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7899 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
7900 & l) - real(0.5_wp*dt*(rho_l*(vel_l(3))**2.0 + pres_l + f_l)*(1._wp/dz(l)) &
7901 & - 0.5_wp*dt*cfl*(rho_l*vel_l(3))*(1._wp/dz(l)), kind=stp)
7902
7903
7904# 2479 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7905#if defined(MFC_OpenACC)
7906# 2479 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7907!$acc atomic update
7908# 2479 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7909#elif defined(MFC_OpenMP)
7910# 2479 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7911!$omp atomic update
7912# 2479 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7913#endif
7914# 2480 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7915 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
7916 & 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)) &
7917 & *(1._wp/dz(l)), kind=stp)
7918
7919
7920# 2484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7921#if defined(MFC_OpenACC)
7922# 2484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7923!$acc atomic update
7924# 2484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7925#elif defined(MFC_OpenMP)
7926# 2484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7927!$omp atomic update
7928# 2484 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7929#endif
7930# 2485 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7931 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
7932 & 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)) &
7933 & *(1._wp/dz(l)), kind=stp)
7934
7935
7936# 2489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7937#if defined(MFC_OpenACC)
7938# 2489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7939!$acc atomic update
7940# 2489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7941#elif defined(MFC_OpenMP)
7942# 2489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7943!$omp atomic update
7944# 2489 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7945#endif
7946# 2490 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7947 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
7948 & 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) &
7949 & *(1._wp/dz(l)), kind=stp)
7950
7951
7952# 2494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7953#if defined(MFC_OpenACC)
7954# 2494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7955!$acc loop seq
7956# 2494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7957#elif defined(MFC_OpenMP)
7958# 2494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7959
7960# 2494 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7961#endif
7962# 2495 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7963 do i = 1, num_fluids
7964
7965# 2496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7966#if defined(MFC_OpenACC)
7967# 2496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7968!$acc atomic update
7969# 2496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7970#elif defined(MFC_OpenMP)
7971# 2496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7972!$omp atomic update
7973# 2496 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7974#endif
7975# 2497 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7976 rhs_vf(i)%sf(j, k, l + 1) = rhs_vf(i)%sf(j, k, &
7977 & l + 1) + real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(3))*(1._wp/dz(l + 1)) &
7978 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l + 1)), kind=stp)
7979
7980
7981# 2501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7982#if defined(MFC_OpenACC)
7983# 2501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7984!$acc atomic update
7985# 2501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7986#elif defined(MFC_OpenMP)
7987# 2501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7988!$omp atomic update
7989# 2501 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7990#endif
7991# 2502 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
7992 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, &
7993 & l) - real(0.5_wp*dt*(alpha_rho_r(i)*vel_r(3))*(1._wp/dz(l)) &
7994 & + 0.5_wp*dt*cfl*(alpha_rho_r(i))*(1._wp/dz(l)), kind=stp)
7995 end do
7996
7997 if (num_fluids > 1) then
7998
7999# 2508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8000#if defined(MFC_OpenACC)
8001# 2508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8002!$acc loop seq
8003# 2508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8004#elif defined(MFC_OpenMP)
8005# 2508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8006
8007# 2508 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8008#endif
8009# 2509 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8010 do i = 1, num_fluids - 1
8011
8012# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8013#if defined(MFC_OpenACC)
8014# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8015!$acc atomic update
8016# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8017#elif defined(MFC_OpenMP)
8018# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8019!$omp atomic update
8020# 2510 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8021#endif
8022# 2511 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8023 rhs_vf(igr_advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
8024 & l + 1) + real(0.5_wp*dt*(alpha_r(i)*vel_r(3))*(1._wp/dz(l + 1)) &
8025 & + 0.5_wp*dt*cfl*(alpha_r(i))*(1._wp/dz(l + 1)), kind=stp)
8026
8027
8028# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8029#if defined(MFC_OpenACC)
8030# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8031!$acc atomic update
8032# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8033#elif defined(MFC_OpenMP)
8034# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8035!$omp atomic update
8036# 2515 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8037#endif
8038# 2516 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8039 rhs_vf(igr_advxb + i - 1)%sf(j, k, l + 1) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
8040 & l + 1) - real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, &
8041 & l + 1)*vel_r(3)*(1._wp/dz(l + 1)), kind=stp)
8042
8043
8044# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8045#if defined(MFC_OpenACC)
8046# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8047!$acc atomic update
8048# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8049#elif defined(MFC_OpenMP)
8050# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8051!$omp atomic update
8052# 2520 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8053#endif
8054# 2521 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8055 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
8056 & l) - real(0.5_wp*dt*(alpha_r(i)*vel_r(3))*(1._wp/dz(l)) + 0.5_wp*dt*cfl*(alpha_r(i)) &
8057 & *(1._wp/dz(l)), kind=stp)
8058
8059
8060# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8061#if defined(MFC_OpenACC)
8062# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8063!$acc atomic update
8064# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8065#elif defined(MFC_OpenMP)
8066# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8067!$omp atomic update
8068# 2525 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8069#endif
8070# 2526 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8071 rhs_vf(igr_advxb + i - 1)%sf(j, k, l) = rhs_vf(igr_advxb + i - 1)%sf(j, k, &
8072 & l) + real(0.5_wp*dt*q_cons_vf(igr_advxb + i - 1)%sf(j, k, l)*vel_r(3)*(1._wp/dz(l)), &
8073 & kind=stp)
8074 end do
8075 end if
8076
8077
8078# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8079#if defined(MFC_OpenACC)
8080# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8081!$acc atomic update
8082# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8083#elif defined(MFC_OpenMP)
8084# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8085!$omp atomic update
8086# 2532 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8087#endif
8088# 2533 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8089 rhs_vf(igr_momxb + 2)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 2)%sf(j, k, &
8090 & l + 1) + real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + pres_r + f_r)*(1._wp/dz(l + 1)) &
8091 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l + 1)), kind=stp)
8092
8093
8094# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8095#if defined(MFC_OpenACC)
8096# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8097!$acc atomic update
8098# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8099#elif defined(MFC_OpenMP)
8100# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8101!$omp atomic update
8102# 2537 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8103#endif
8104# 2538 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8105 rhs_vf(igr_momxb)%sf(j, k, l + 1) = rhs_vf(igr_momxb)%sf(j, k, &
8106 & l + 1) + real(0.5_wp*dt*rho_r*vel_r(1)*vel_r(3)*(1._wp/dz(l + 1)) &
8107 & + 0.5_wp*dt*cfl*(rho_r*vel_r(1))*(1._wp/dz(l + 1)), kind=stp)
8108
8109
8110# 2542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8111#if defined(MFC_OpenACC)
8112# 2542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8113!$acc atomic update
8114# 2542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8115#elif defined(MFC_OpenMP)
8116# 2542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8117!$omp atomic update
8118# 2542 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8119#endif
8120# 2543 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8121 rhs_vf(igr_momxb + 1)%sf(j, k, l + 1) = rhs_vf(igr_momxb + 1)%sf(j, k, &
8122 & l + 1) + real(0.5_wp*dt*rho_r*vel_r(2)*vel_r(3)*(1._wp/dz(l + 1)) &
8123 & + 0.5_wp*dt*cfl*(rho_r*vel_r(2))*(1._wp/dz(l + 1)), kind=stp)
8124
8125
8126# 2547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8127#if defined(MFC_OpenACC)
8128# 2547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8129!$acc atomic update
8130# 2547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8131#elif defined(MFC_OpenMP)
8132# 2547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8133!$omp atomic update
8134# 2547 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8135#endif
8136# 2548 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8137 rhs_vf(igr_e_idx)%sf(j, k, l + 1) = rhs_vf(igr_e_idx)%sf(j, k, &
8138 & l + 1) + real(0.5_wp*dt*(vel_r(3)*(e_r + pres_r + f_r))*(1._wp/dz(l + 1)) &
8139 & + 0.5_wp*dt*cfl*(e_r)*(1._wp/dz(l + 1)), kind=stp)
8140
8141
8142# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8143#if defined(MFC_OpenACC)
8144# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8145!$acc atomic update
8146# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8147#elif defined(MFC_OpenMP)
8148# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8149!$omp atomic update
8150# 2552 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8151#endif
8152# 2553 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8153 rhs_vf(igr_momxb + 2)%sf(j, k, l) = rhs_vf(igr_momxb + 2)%sf(j, k, &
8154 & l) - real(0.5_wp*dt*(rho_r*(vel_r(3))**2.0 + pres_r + f_r)*(1._wp/dz(l)) &
8155 & + 0.5_wp*dt*cfl*(rho_r*vel_r(3))*(1._wp/dz(l)), kind=stp)
8156
8157
8158# 2557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8159#if defined(MFC_OpenACC)
8160# 2557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8161!$acc atomic update
8162# 2557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8163#elif defined(MFC_OpenMP)
8164# 2557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8165!$omp atomic update
8166# 2557 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8167#endif
8168# 2558 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8169 rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
8170 & 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)) &
8171 & *(1._wp/dz(l)), kind=stp)
8172
8173
8174# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8175#if defined(MFC_OpenACC)
8176# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8177!$acc atomic update
8178# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8179#elif defined(MFC_OpenMP)
8180# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8181!$omp atomic update
8182# 2562 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8183#endif
8184# 2563 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8185 rhs_vf(igr_momxb + 1)%sf(j, k, l) = rhs_vf(igr_momxb + 1)%sf(j, k, &
8186 & 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)) &
8187 & *(1._wp/dz(l)), kind=stp)
8188
8189
8190# 2567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8191#if defined(MFC_OpenACC)
8192# 2567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8193!$acc atomic update
8194# 2567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8195#elif defined(MFC_OpenMP)
8196# 2567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8197!$omp atomic update
8198# 2567 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8199#endif
8200# 2568 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8201 rhs_vf(igr_e_idx)%sf(j, k, l) = rhs_vf(igr_e_idx)%sf(j, k, &
8202 & 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) &
8203 & *(1._wp/dz(l)), kind=stp)
8204 end do
8205 end do
8206 end do
8207
8208# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8209#if defined(MFC_OpenACC)
8210# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8211!$acc end parallel loop
8212# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8213#elif defined(MFC_OpenMP)
8214# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8215
8216# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8217!$omp end target teams loop
8218# 2574 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8219#endif
8220# 2575 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8221# 2576 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8222 end if
8223
8224 end subroutine s_igr_riemann_solver
8225
8226 !> Compute pressure and maximum wavespeed from left and right reconstructed states
8227 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)
8228
8229
8230# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8231#if MFC_OpenACC
8232# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8233!$acc routine seq
8234# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8235#elif MFC_OpenMP
8236# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8237
8238# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8239
8240# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8241!$omp declare target device_type(any)
8242# 2583 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8243#endif
8244# 2584 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8245
8246 real(wp), intent(in) :: E_L, gamma_L, pi_inf_L, rho_L
8247 real(wp), intent(in) :: E_R, gamma_R, pi_inf_R, rho_R
8248 real(wp), dimension(num_dims), intent(in) :: vel_L, vel_R
8249 real(wp), intent(out) :: pres_L, pres_R, cfl
8250 real(wp) :: a_L, a_R
8251
8252 if (num_dims == 2) then
8253 pres_l = f_pressure(e_l - 0.5_wp*rho_l*(vel_l(1)**2._wp + vel_l(2)**2._wp), gamma_l, pi_inf_l, 0._wp)
8254 pres_r = f_pressure(e_r - 0.5_wp*rho_r*(vel_r(1)**2._wp + vel_r(2)**2._wp), gamma_r, pi_inf_r, 0._wp)
8255
8256 if (igr_pres_lim) then
8257 pres_l = max(pres_l, 0._wp)
8258 pres_r = max(pres_r, 0._wp)
8259 end if
8260
8261 a_l = sqrt(f_bulk_modulus(pres_l, gamma_l, pi_inf_l)/rho_l)
8262 a_r = sqrt(f_bulk_modulus(pres_r, gamma_r, pi_inf_r)/rho_r)
8263
8264 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)
8265 else if (num_dims == 3) then
8266# 2606 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8267 pres_l = f_pressure(e_l - 0.5_wp*rho_l*(vel_l(1)**2._wp + vel_l(2)**2._wp + vel_l(3)**2._wp), gamma_l, pi_inf_l, &
8268 & 0._wp)
8269 pres_r = f_pressure(e_r - 0.5_wp*rho_r*(vel_r(1)**2._wp + vel_r(2)**2._wp + vel_r(3)**2._wp), gamma_r, pi_inf_r, &
8270 & 0._wp)
8271
8272 if (igr_pres_lim) then
8273 pres_l = max(pres_l, 0._wp)
8274 pres_r = max(pres_r, 0._wp)
8275 end if
8276
8277 a_l = sqrt(f_bulk_modulus(pres_l, gamma_l, pi_inf_l)/rho_l)
8278 a_r = sqrt(f_bulk_modulus(pres_r, gamma_r, pi_inf_r)/rho_r)
8279
8280 cfl = max(sqrt(vel_l(1)**2._wp + vel_l(2)**2._wp + vel_l(3)**2._wp), &
8281 & sqrt(vel_r(1)**2._wp + vel_r(2)**2._wp + vel_r(3)**2._wp)) + max(a_l, a_r)
8282# 2622 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8283 end if
8284
8285 end subroutine s_get_derived_states
8286
8287 !> Accumulate the IGR numerical flux divergence into the RHS along the specified direction
8288 subroutine s_igr_flux_add(q_cons_vf, rhs_vf, flux_vf, idir)
8289
8290 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf, flux_vf, rhs_vf
8291 integer, intent(in) :: idir
8292
8293 if (idir == 1) then
8294
8295# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8296
8297# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8298#if defined(MFC_OpenACC)
8299# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8300!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8301# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8302#elif defined(MFC_OpenMP)
8303# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8304
8305# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8306
8307# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8308
8309# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8310!$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)
8311# 2633 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8312#endif
8313# 2634 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8314 do i = 1, sys_size
8315 do l = 0, p
8316 do k = 0, n
8317 do j = 0, m
8318 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))
8319 end do
8320 end do
8321 end do
8322 end do
8323
8324# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8325#if defined(MFC_OpenACC)
8326# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8327!$acc end parallel loop
8328# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8329#elif defined(MFC_OpenMP)
8330# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8331
8332# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8333!$omp end target teams loop
8334# 2643 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8335#endif
8336# 2644 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8337 else if (idir == 2) then
8338
8339# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8340
8341# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8342#if defined(MFC_OpenACC)
8343# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8344!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8345# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8346#elif defined(MFC_OpenMP)
8347# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8348
8349# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8350
8351# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8352
8353# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8354!$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)
8355# 2645 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8356#endif
8357# 2646 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8358 do i = 1, sys_size
8359 do l = 0, p
8360 do k = 0, n
8361 do j = 0, m
8362 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, &
8363 & l) - flux_vf(i)%sf(j, k, l))
8364 end do
8365 end do
8366 end do
8367 end do
8368
8369# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8370#if defined(MFC_OpenACC)
8371# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8372!$acc end parallel loop
8373# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8374#elif defined(MFC_OpenMP)
8375# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8376
8377# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8378!$omp end target teams loop
8379# 2656 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8380#endif
8381# 2657 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8382 else if (idir == 3) then
8383
8384# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8385
8386# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8387#if defined(MFC_OpenACC)
8388# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8389!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, l)
8390# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8391#elif defined(MFC_OpenMP)
8392# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8393
8394# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8395
8396# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8397
8398# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8399!$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)
8400# 2658 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8401#endif
8402# 2659 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8403 do i = 1, sys_size
8404 do l = 0, p
8405 do k = 0, n
8406 do j = 0, m
8407 rhs_vf(i)%sf(j, k, l) = rhs_vf(i)%sf(j, k, l) + 1._wp/dz(l)*(flux_vf(i)%sf(j, k, &
8408 & l - 1) - flux_vf(i)%sf(j, k, l))
8409 end do
8410 end do
8411 end do
8412 end do
8413
8414# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8415#if defined(MFC_OpenACC)
8416# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8417!$acc end parallel loop
8418# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8419#elif defined(MFC_OpenMP)
8420# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8421
8422# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8423!$omp end target teams loop
8424# 2669 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8425#endif
8426# 2670 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8427 end if
8428
8429 end subroutine s_igr_flux_add
8430
8431 !> Finalize the IGR module
8433
8434 if (viscous) then
8435#ifdef MFC_DEBUG
8436# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8437 block
8438# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8439 use iso_fortran_env, only: output_unit
8440# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8441
8442# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8443 print *, 'm_igr.fpp:2678: ', '@:DEALLOCATE(Res_igr)'
8444# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8445
8446# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8447 call flush (output_unit)
8448# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8449 end block
8450# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8451#endif
8452# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8453
8454# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8455#if defined(MFC_OpenACC)
8456# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8457!$acc exit data delete(Res_igr)
8458# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8459#elif defined(MFC_OpenMP)
8460# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8461!$omp target exit data map(release:Res_igr)
8462# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8463#endif
8464# 2678 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8465 deallocate (res_igr)
8466# 2679 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8467 end if
8468
8469#ifndef __NVCOMPILER_GPU_UNIFIED_MEM
8470#ifdef MFC_DEBUG
8471# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8472 block
8473# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8474 use iso_fortran_env, only: output_unit
8475# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8476
8477# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8478 print *, 'm_igr.fpp:2682: ', '@:DEALLOCATE(jac, jac_rhs)'
8479# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8480
8481# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8482 call flush (output_unit)
8483# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8484 end block
8485# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8486#endif
8487# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8488
8489# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8490#if defined(MFC_OpenACC)
8491# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8492!$acc exit data delete(jac, jac_rhs)
8493# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8494#elif defined(MFC_OpenMP)
8495# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8496!$omp target exit data map(release:jac, jac_rhs)
8497# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8498#endif
8499# 2682 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8500 deallocate (jac, jac_rhs)
8501# 2683 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8502
8503 if (igr_iter_solver == 1) then ! Jacobi iteration
8504#ifdef MFC_DEBUG
8505# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8506 block
8507# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8508 use iso_fortran_env, only: output_unit
8509# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8510
8511# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8512 print *, 'm_igr.fpp:2685: ', '@:DEALLOCATE(jac_old)'
8513# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8514
8515# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8516 call flush (output_unit)
8517# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8518 end block
8519# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8520#endif
8521# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8522
8523# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8524#if defined(MFC_OpenACC)
8525# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8526!$acc exit data delete(jac_old)
8527# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8528#elif defined(MFC_OpenMP)
8529# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8530!$omp target exit data map(release:jac_old)
8531# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8532#endif
8533# 2685 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8534 deallocate (jac_old)
8535# 2686 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8536 end if
8537#else
8538 if (nv_uvm_temp_on_gpu(1) == 1) then
8539#ifdef MFC_DEBUG
8540# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8541 block
8542# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8543 use iso_fortran_env, only: output_unit
8544# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8545
8546# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8547 print *, 'm_igr.fpp:2689: ', '@:DEALLOCATE(jac)'
8548# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8549
8550# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8551 call flush (output_unit)
8552# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8553 end block
8554# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8555#endif
8556# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8557
8558# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8559#if defined(MFC_OpenACC)
8560# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8561!$acc exit data delete(jac)
8562# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8563#elif defined(MFC_OpenMP)
8564# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8565!$omp target exit data map(release:jac)
8566# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8567#endif
8568# 2689 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8569 deallocate (jac)
8570# 2690 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8571 else
8572 nullify (jac)
8573 deallocate (jac_host)
8574 end if
8575
8576 if (nv_uvm_temp_on_gpu(2) == 1) then
8577#ifdef MFC_DEBUG
8578# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8579 block
8580# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8581 use iso_fortran_env, only: output_unit
8582# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8583
8584# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8585 print *, 'm_igr.fpp:2696: ', '@:DEALLOCATE(jac_rhs)'
8586# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8587
8588# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8589 call flush (output_unit)
8590# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8591 end block
8592# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8593#endif
8594# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8595
8596# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8597#if defined(MFC_OpenACC)
8598# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8599!$acc exit data delete(jac_rhs)
8600# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8601#elif defined(MFC_OpenMP)
8602# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8603!$omp target exit data map(release:jac_rhs)
8604# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8605#endif
8606# 2696 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8607 deallocate (jac_rhs)
8608# 2697 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8609 else
8610 nullify (jac_rhs)
8611 deallocate (jac_rhs_host)
8612 end if
8613
8614 if (igr_iter_solver == 1) then ! Jacobi iteration
8615 if (nv_uvm_temp_on_gpu(3) == 1) then
8616#ifdef MFC_DEBUG
8617# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8618 block
8619# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8620 use iso_fortran_env, only: output_unit
8621# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8622
8623# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8624 print *, 'm_igr.fpp:2704: ', '@:DEALLOCATE(jac_old)'
8625# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8626
8627# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8628 call flush (output_unit)
8629# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8630 end block
8631# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8632#endif
8633# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8634
8635# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8636#if defined(MFC_OpenACC)
8637# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8638!$acc exit data delete(jac_old)
8639# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8640#elif defined(MFC_OpenMP)
8641# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8642!$omp target exit data map(release:jac_old)
8643# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8644#endif
8645# 2704 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8646 deallocate (jac_old)
8647# 2705 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8648 else
8649 nullify (jac_old)
8650 deallocate (jac_old_host)
8651 end if
8652 end if
8653#endif
8654
8655# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8656#ifdef MFC_DEBUG
8657# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8658 block
8659# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8660 use iso_fortran_env, only: output_unit
8661# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8662
8663# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8664 print *, 'm_igr.fpp:2713: ', '@:DEALLOCATE(coeff_L, coeff_R)'
8665# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8666
8667# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8668 call flush (output_unit)
8669# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8670 end block
8671# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8672#endif
8673# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8674
8675# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8676#if defined(MFC_OpenACC)
8677# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8678!$acc exit data delete(coeff_L, coeff_R)
8679# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8680#elif defined(MFC_OpenMP)
8681# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8682!$omp target exit data map(release:coeff_L, coeff_R)
8683# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8684#endif
8685# 2713 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8686 deallocate (coeff_l, coeff_r)
8687# 2714 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8688# 2715 "/home/runner/work/MFC/MFC/src/simulation/m_igr.fpp"
8689
8690 end subroutine s_finalize_igr_module
8691
8692end 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.
Equations of state in Gamma/Pi form, rho e = Gamma(rho) p + Pi(rho).
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
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
integer igr_momxb
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.
integer igr_advxb
integer igr_e_idx
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).