MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_riemann_state.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2!>
3!! @file
4!! @brief Contains module m_riemann_state
5
6!> @brief Shared Riemann-solver module state and the per-sweep setup, state-buffer population, viscous source flux, and finalization
7!! helpers
8# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
9! This file exists so that Fypp can be run without generating case.fpp files for
10! each target. This is useful when generating documentation, for example. This
11! should also let MFC be built with CMake directly, without invoking mfc.sh.
12
13! For pre-process.
14# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
15
16! For moving immersed boundaries in simulation
17# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
18# 8 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp" 2
19# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
20# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
21# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
22# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27
28# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43
44# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45
46# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47! New line at end of file is required for FYPP
48# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
49# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
50# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
51# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70
71# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72
73# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74
75# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76! New line at end of file is required for FYPP
77# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
78
79# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149
150# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151
152# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153
154# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155! New line at end of file is required for FYPP
156# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
157# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
158# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
159# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164
165# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176
177# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178
179# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180
181# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182
183# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184! New line at end of file is required for FYPP
185# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
186
187# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234
235# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236
237# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238
239# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240
241# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242! New line at end of file is required for FYPP
243# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
244
245! GPU parallel region (scalar reductions, maxval/minval)
246# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247
248! GPU parallel loop over threads (most common GPU macro)
249# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250
251! Required closing for GPU_PARALLEL_LOOP
252# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253
254! Mark routine for device compilation
255# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256
257! Declare device-resident data
258# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260! Inner loop within a GPU parallel region
261# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262
263! Scoped GPU data region
264# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265
266! Host code with device pointers (for MPI with GPU buffers)
267# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268
269! Allocate device memory (unscoped)
270# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271
272! Free device memory
273# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274
275! Atomic operation on device
276# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277
278! End atomic capture block
279# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280
281! Copy data between host and device
282# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283
284! Synchronization barrier
285# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286
287! Import GPU library module (openacc or omp_lib)
288# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289
290! Emit code only for AMD compiler
291# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292
293! Emit code for non-Cray compilers
294# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295
296! Emit code only for Cray compiler
297# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298
299! Emit code for non-NVIDIA compilers
300# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301
302# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
303# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304! New line at end of file is required for FYPP
305# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
306
307# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308
309! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
310! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
311! example see misc/nvidia_uvm/bind.sh.
312# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
313
314! Allocate and create GPU device memory
315# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316
317! Free GPU device memory and deallocate
318# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
319
320! Cray-specific GPU pointer setup for vector fields
321# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322
323! Cray-specific GPU pointer setup for scalar fields
324# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
325
326! Cray-specific GPU pointer setup for acoustic source spatials
327# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328
329# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330
331# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332! New line at end of file is required for FYPP
333# 9 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp" 2
334
336
340 use m_hb_function
341
342 implicit none
343
344 !> The cell-boundary values of the fluxes (src - source) that are computed through the chosen Riemann problem solver, and the
345 !! direct evaluation of source terms, by using the left and right states given in qK_prim_rs_vf, dqK_prim_ds_vf where ds = dx,
346 !! dy or dz.
347 !> @{
348 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsx_vf, flux_src_rsx_vf
349
350# 24 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
351#if defined(MFC_OpenACC)
352# 24 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
353!$acc declare create(flux_rsx_vf, flux_src_rsx_vf)
354# 24 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
355#elif defined(MFC_OpenMP)
356# 24 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
357!$omp declare target (flux_rsx_vf, flux_src_rsx_vf)
358# 24 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
359#endif
360 !> @}
361
362 !> The cell-boundary values of the geometrical source flux that are computed through the chosen Riemann problem solver by using
363 !! the left and right states given in qK_prim_rs_vf. Currently 2D axisymmetric for inviscid only.
364 !> @{
365 real(wp), allocatable, dimension(:,:,:,:) :: flux_gsrc_rsx_vf
366
367# 31 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
368#if defined(MFC_OpenACC)
369# 31 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
370!$acc declare create(flux_gsrc_rsx_vf)
371# 31 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
372#elif defined(MFC_OpenMP)
373# 31 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
374!$omp declare target (flux_gsrc_rsx_vf)
375# 31 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
376#endif
377 !> @}
378
379 ! Cell-boundary velocity from Riemann solution; used for source flux
380
381 real(wp), allocatable, dimension(:,:,:,:) :: vel_src_rsx_vf
382
383# 37 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
384#if defined(MFC_OpenACC)
385# 37 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
386!$acc declare create(vel_src_rsx_vf)
387# 37 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
388#elif defined(MFC_OpenMP)
389# 37 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
390!$omp declare target (vel_src_rsx_vf)
391# 37 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
392#endif
393
394 real(wp), allocatable, dimension(:,:,:,:) :: mom_sp_rsx_vf
395
396# 40 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
397#if defined(MFC_OpenACC)
398# 40 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
399!$acc declare create(mom_sp_rsx_vf)
400# 40 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
401#elif defined(MFC_OpenMP)
402# 40 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
403!$omp declare target (mom_sp_rsx_vf)
404# 40 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
405#endif
406
407 real(wp), allocatable, dimension(:,:,:,:) :: re_avg_rsx_vf
408
409# 43 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
410#if defined(MFC_OpenACC)
411# 43 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
412!$acc declare create(Re_avg_rsx_vf)
413# 43 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
414#elif defined(MFC_OpenMP)
415# 43 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
416!$omp declare target (Re_avg_rsx_vf)
417# 43 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
418#endif
419
420 !> @name Indical bounds in the s1-, s2- and s3-directions
421 !> @{
424 !> @}
425
426
427# 51 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
428#if defined(MFC_OpenACC)
429# 51 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
430!$acc declare create(is1, is2, is3, isx, isy, isz)
431# 51 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
432#elif defined(MFC_OpenMP)
433# 51 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
434!$omp declare target (is1, is2, is3, isx, isy, isz)
435# 51 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
436#endif
437
438 real(wp), allocatable, dimension(:) :: gs_rs
439
440# 54 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
441#if defined(MFC_OpenACC)
442# 54 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
443!$acc declare create(Gs_rs)
444# 54 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
445#elif defined(MFC_OpenMP)
446# 54 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
447!$omp declare target (Gs_rs)
448# 54 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
449#endif
450
451 real(wp), allocatable, dimension(:,:) :: res_gs
452
453# 57 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
454#if defined(MFC_OpenACC)
455# 57 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
456!$acc declare create(Res_gs)
457# 57 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
458#elif defined(MFC_OpenMP)
459# 57 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
460!$omp declare target (Res_gs)
461# 57 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
462#endif
463
464contains
465
466 !> Dispatch to the subroutines that are utilized to compute the viscous source fluxes for either Cartesian or cylindrical
467 !! geometries. For more information please refer to: 1) s_compute_cartesian_viscous_source_flux 2)
468 !! s_compute_cylindrical_viscous_source_flux
469 subroutine s_compute_viscous_source_flux(velL_vf, dvelL_dx_vf, dvelL_dy_vf, dvelL_dz_vf, velR_vf, dvelR_dx_vf, dvelR_dy_vf, &
470 & dvelR_dz_vf, flux_src_vf, q_prim_vf, norm_dir, ix, iy, iz)
471
472 type(scalar_field), dimension(num_vels), intent(in) :: velL_vf, velR_vf, dvelL_dx_vf, dvelR_dx_vf, dvelL_dy_vf, &
473 & dvelR_dy_vf, dvelL_dz_vf, dvelR_dz_vf
474
475 type(scalar_field), dimension(sys_size), intent(inout) :: flux_src_vf
476 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
477 integer, intent(in) :: norm_dir
478 type(int_bounds_info), intent(in) :: ix, iy, iz
479
480 if (grid_geometry == 3) then
481 call s_compute_cylindrical_viscous_source_flux(vell_vf, dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, velr_vf, dvelr_dx_vf, &
482 & dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, q_prim_vf, norm_dir, ix, iy, iz)
483 else
484 call s_compute_cartesian_viscous_source_flux(dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, dvelr_dx_vf, dvelr_dy_vf, &
485 & dvelr_dz_vf, flux_src_vf, q_prim_vf, norm_dir)
486 end if
487
488 end subroutine s_compute_viscous_source_flux
489
490 !> Populate the left and right Riemann state variable buffers based on boundary conditions
491 subroutine s_populate_riemann_states_variables_buffers(qL_prim_rsx_vf, dqL_prim_dx_vf, dqL_prim_dy_vf, dqL_prim_dz_vf, &
492 & qR_prim_rsx_vf, dqR_prim_dx_vf, dqR_prim_dy_vf, dqR_prim_dz_vf, norm_dir, ix, iy, iz)
493
494 real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) :: qL_prim_rsx_vf, qR_prim_rsx_vf
495 type(scalar_field), allocatable, dimension(:), intent(inout) :: dqL_prim_dx_vf, dqR_prim_dx_vf, dqL_prim_dy_vf, &
496 & dqR_prim_dy_vf, dqL_prim_dz_vf, dqR_prim_dz_vf
497
498 integer, intent(in) :: norm_dir
499 type(int_bounds_info), intent(in) :: ix, iy, iz
500 integer :: i, j, k, l !< Generic loop iterator
501
502 if (norm_dir == 1) then
503 is1 = ix; is2 = iy; is3 = iz
504 dir_idx = (/1, 2, 3/); dir_flg = (/1._wp, 0._wp, 0._wp/)
505 else if (norm_dir == 2) then
506 is1 = iy; is2 = ix; is3 = iz
507 dir_idx = (/2, 1, 3/); dir_flg = (/0._wp, 1._wp, 0._wp/)
508 else
509 is1 = iz; is2 = iy; is3 = ix
510 dir_idx = (/3, 1, 2/); dir_flg = (/0._wp, 0._wp, 1._wp/)
511 end if
512
513
514# 108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
515#if defined(MFC_OpenACC)
516# 108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
517!$acc update device(is1, is2, is3)
518# 108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
519#elif defined(MFC_OpenMP)
520# 108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
521!$omp target update to(is1, is2, is3)
522# 108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
523#endif
524
525 if (elasticity) then
526 if (norm_dir == 1) then
527 dir_idx_tau = (/1, 2, 4/)
528 else if (norm_dir == 2) then
529 dir_idx_tau = (/3, 2, 5/)
530 else
531 dir_idx_tau = (/6, 4, 5/)
532 end if
533 end if
534
535 isx = ix; isy = iy; isz = iz
536 ! for stuff in the same module
537
538# 122 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
539#if defined(MFC_OpenACC)
540# 122 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
541!$acc update device(isx, isy, isz)
542# 122 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
543#elif defined(MFC_OpenMP)
544# 122 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
545!$omp target update to(isx, isy, isz)
546# 122 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
547#endif
548 ! for stuff in different modules
549
550# 124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
551#if defined(MFC_OpenACC)
552# 124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
553!$acc update device(dir_idx, dir_flg, dir_idx_tau)
554# 124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
555#elif defined(MFC_OpenMP)
556# 124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
557!$omp target update to(dir_idx, dir_flg, dir_idx_tau)
558# 124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
559#endif
560
561 ! Population of Buffers in x-direction
562 if (norm_dir == 1) then
563 if (bc_x%beg == bc_riemann_extrap) then ! Riemann state extrap. BC at beginning
564
565# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
566
567# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
568#if defined(MFC_OpenACC)
569# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
570!$acc parallel loop collapse(3) gang vector default(present)
571# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
572#elif defined(MFC_OpenMP)
573# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
574
575# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
576
577# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
578
579# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
580!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
581# 129 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
582#endif
583 do i = 1, sys_size
584 do l = is3%beg, is3%end
585 do k = is2%beg, is2%end
586 ql_prim_rsx_vf(-1, k, l, i) = qr_prim_rsx_vf(0, k, l, i)
587 end do
588 end do
589 end do
590
591# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
592#if defined(MFC_OpenACC)
593# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
594!$acc end parallel loop
595# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
596#elif defined(MFC_OpenMP)
597# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
598
599# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
600!$omp end target teams loop
601# 137 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
602#endif
603
604 if (viscous) then
605
606# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
607
608# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
609#if defined(MFC_OpenACC)
610# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
611!$acc parallel loop collapse(3) gang vector default(present)
612# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
613#elif defined(MFC_OpenMP)
614# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
615
616# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
617
618# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
619
620# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
621!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
622# 140 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
623#endif
624 do i = eqn_idx%mom%beg, eqn_idx%mom%end
625 do l = isz%beg, isz%end
626 do k = isy%beg, isy%end
627 dql_prim_dx_vf(i)%sf(-1, k, l) = dqr_prim_dx_vf(i)%sf(0, k, l)
628 end do
629 end do
630 end do
631
632# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
633#if defined(MFC_OpenACC)
634# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
635!$acc end parallel loop
636# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
637#elif defined(MFC_OpenMP)
638# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
639
640# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
641!$omp end target teams loop
642# 148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
643#endif
644
645 if (n > 0) then
646
647# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
648
649# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
650#if defined(MFC_OpenACC)
651# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
652!$acc parallel loop collapse(3) gang vector default(present)
653# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
654#elif defined(MFC_OpenMP)
655# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
656
657# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
658
659# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
660
661# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
662!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
663# 151 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
664#endif
665 do i = eqn_idx%mom%beg, eqn_idx%mom%end
666 do l = isz%beg, isz%end
667 do k = isy%beg, isy%end
668 dql_prim_dy_vf(i)%sf(-1, k, l) = dqr_prim_dy_vf(i)%sf(0, k, l)
669 end do
670 end do
671 end do
672
673# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
674#if defined(MFC_OpenACC)
675# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
676!$acc end parallel loop
677# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
678#elif defined(MFC_OpenMP)
679# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
680
681# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
682!$omp end target teams loop
683# 159 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
684#endif
685
686 if (p > 0) then
687
688# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
689
690# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
691#if defined(MFC_OpenACC)
692# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
693!$acc parallel loop collapse(3) gang vector default(present)
694# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
695#elif defined(MFC_OpenMP)
696# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
697
698# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
699
700# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
701
702# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
703!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
704# 162 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
705#endif
706 do i = eqn_idx%mom%beg, eqn_idx%mom%end
707 do l = isz%beg, isz%end
708 do k = isy%beg, isy%end
709 dql_prim_dz_vf(i)%sf(-1, k, l) = dqr_prim_dz_vf(i)%sf(0, k, l)
710 end do
711 end do
712 end do
713
714# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
715#if defined(MFC_OpenACC)
716# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
717!$acc end parallel loop
718# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
719#elif defined(MFC_OpenMP)
720# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
721
722# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
723!$omp end target teams loop
724# 170 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
725#endif
726 end if
727 end if
728 end if
729 end if
730
731 if (bc_x%end == bc_riemann_extrap) then ! Riemann state extrap. BC at end
732
733# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
734
735# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
736#if defined(MFC_OpenACC)
737# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
738!$acc parallel loop collapse(3) gang vector default(present)
739# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
740#elif defined(MFC_OpenMP)
741# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
742
743# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
744
745# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
746
747# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
748!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
749# 177 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
750#endif
751 do i = 1, sys_size
752 do l = is3%beg, is3%end
753 do k = is2%beg, is2%end
754 qr_prim_rsx_vf(m + 1, k, l, i) = ql_prim_rsx_vf(m, k, l, i)
755 end do
756 end do
757 end do
758
759# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
760#if defined(MFC_OpenACC)
761# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
762!$acc end parallel loop
763# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
764#elif defined(MFC_OpenMP)
765# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
766
767# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
768!$omp end target teams loop
769# 185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
770#endif
771
772 if (viscous) then
773
774# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
775
776# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
777#if defined(MFC_OpenACC)
778# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
779!$acc parallel loop collapse(3) gang vector default(present)
780# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
781#elif defined(MFC_OpenMP)
782# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
783
784# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
785
786# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
787
788# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
789!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
790# 188 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
791#endif
792 do i = eqn_idx%mom%beg, eqn_idx%mom%end
793 do l = isz%beg, isz%end
794 do k = isy%beg, isy%end
795 dqr_prim_dx_vf(i)%sf(m + 1, k, l) = dql_prim_dx_vf(i)%sf(m, k, l)
796 end do
797 end do
798 end do
799
800# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
801#if defined(MFC_OpenACC)
802# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
803!$acc end parallel loop
804# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
805#elif defined(MFC_OpenMP)
806# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
807
808# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
809!$omp end target teams loop
810# 196 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
811#endif
812
813 if (n > 0) then
814
815# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
816
817# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
818#if defined(MFC_OpenACC)
819# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
820!$acc parallel loop collapse(3) gang vector default(present)
821# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
822#elif defined(MFC_OpenMP)
823# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
824
825# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
826
827# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
828
829# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
830!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
831# 199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
832#endif
833 do i = eqn_idx%mom%beg, eqn_idx%mom%end
834 do l = isz%beg, isz%end
835 do k = isy%beg, isy%end
836 dqr_prim_dy_vf(i)%sf(m + 1, k, l) = dql_prim_dy_vf(i)%sf(m, k, l)
837 end do
838 end do
839 end do
840
841# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
842#if defined(MFC_OpenACC)
843# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
844!$acc end parallel loop
845# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
846#elif defined(MFC_OpenMP)
847# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
848
849# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
850!$omp end target teams loop
851# 207 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
852#endif
853
854 if (p > 0) then
855
856# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
857
858# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
859#if defined(MFC_OpenACC)
860# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
861!$acc parallel loop collapse(3) gang vector default(present)
862# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
863#elif defined(MFC_OpenMP)
864# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
865
866# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
867
868# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
869
870# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
871!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
872# 210 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
873#endif
874 do i = eqn_idx%mom%beg, eqn_idx%mom%end
875 do l = isz%beg, isz%end
876 do k = isy%beg, isy%end
877 dqr_prim_dz_vf(i)%sf(m + 1, k, l) = dql_prim_dz_vf(i)%sf(m, k, l)
878 end do
879 end do
880 end do
881
882# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
883#if defined(MFC_OpenACC)
884# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
885!$acc end parallel loop
886# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
887#elif defined(MFC_OpenMP)
888# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
889
890# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
891!$omp end target teams loop
892# 218 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
893#endif
894 end if
895 end if
896 end if
897 end if
898 ! END: Population of Buffers in x-direction
899
900 ! Population of Buffers in y-direction
901 else if (norm_dir == 2) then
902 if (bc_y%beg == bc_riemann_extrap) then ! Riemann state extrap. BC at beginning
903
904# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
905
906# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
907#if defined(MFC_OpenACC)
908# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
909!$acc parallel loop collapse(3) gang vector default(present)
910# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
911#elif defined(MFC_OpenMP)
912# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
913
914# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
915
916# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
917
918# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
919!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
920# 228 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
921#endif
922 do i = 1, sys_size
923 do l = is3%beg, is3%end
924 do k = is2%beg, is2%end
925 ql_prim_rsx_vf(k, -1, l, i) = qr_prim_rsx_vf(k, 0, l, i)
926 end do
927 end do
928 end do
929
930# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
931#if defined(MFC_OpenACC)
932# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
933!$acc end parallel loop
934# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
935#elif defined(MFC_OpenMP)
936# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
937
938# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
939!$omp end target teams loop
940# 236 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
941#endif
942
943 if (viscous) then
944
945# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
946
947# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
948#if defined(MFC_OpenACC)
949# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
950!$acc parallel loop collapse(3) gang vector default(present)
951# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
952#elif defined(MFC_OpenMP)
953# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
954
955# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
956
957# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
958
959# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
960!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
961# 239 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
962#endif
963 do i = eqn_idx%mom%beg, eqn_idx%mom%end
964 do l = isz%beg, isz%end
965 do j = isx%beg, isx%end
966 dql_prim_dx_vf(i)%sf(j, -1, l) = dqr_prim_dx_vf(i)%sf(j, 0, l)
967 end do
968 end do
969 end do
970
971# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
972#if defined(MFC_OpenACC)
973# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
974!$acc end parallel loop
975# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
976#elif defined(MFC_OpenMP)
977# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
978
979# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
980!$omp end target teams loop
981# 247 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
982#endif
983
984
985# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
986
987# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
988#if defined(MFC_OpenACC)
989# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
990!$acc parallel loop collapse(3) gang vector default(present)
991# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
992#elif defined(MFC_OpenMP)
993# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
994
995# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
996
997# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
998
999# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1000!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1001# 249 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1002#endif
1003 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1004 do l = isz%beg, isz%end
1005 do j = isx%beg, isx%end
1006 dql_prim_dy_vf(i)%sf(j, -1, l) = dqr_prim_dy_vf(i)%sf(j, 0, l)
1007 end do
1008 end do
1009 end do
1010
1011# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1012#if defined(MFC_OpenACC)
1013# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1014!$acc end parallel loop
1015# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1016#elif defined(MFC_OpenMP)
1017# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1018
1019# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1020!$omp end target teams loop
1021# 257 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1022#endif
1023
1024 if (p > 0) then
1025
1026# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1027
1028# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1029#if defined(MFC_OpenACC)
1030# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1031!$acc parallel loop collapse(3) gang vector default(present)
1032# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1033#elif defined(MFC_OpenMP)
1034# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1035
1036# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1037
1038# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1039
1040# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1041!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1042# 260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1043#endif
1044 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1045 do l = isz%beg, isz%end
1046 do j = isx%beg, isx%end
1047 dql_prim_dz_vf(i)%sf(j, -1, l) = dqr_prim_dz_vf(i)%sf(j, 0, l)
1048 end do
1049 end do
1050 end do
1051
1052# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1053#if defined(MFC_OpenACC)
1054# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1055!$acc end parallel loop
1056# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1057#elif defined(MFC_OpenMP)
1058# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1059
1060# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1061!$omp end target teams loop
1062# 268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1063#endif
1064 end if
1065 end if
1066 end if
1067
1068 if (bc_y%end == bc_riemann_extrap) then ! Riemann state extrap. BC at end
1069
1070# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1071
1072# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1073#if defined(MFC_OpenACC)
1074# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1075!$acc parallel loop collapse(3) gang vector default(present)
1076# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1077#elif defined(MFC_OpenMP)
1078# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1079
1080# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1081
1082# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1083
1084# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1085!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1086# 274 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1087#endif
1088 do i = 1, sys_size
1089 do l = is3%beg, is3%end
1090 do k = is2%beg, is2%end
1091 qr_prim_rsx_vf(k, n + 1, l, i) = ql_prim_rsx_vf(k, n, l, i)
1092 end do
1093 end do
1094 end do
1095
1096# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1097#if defined(MFC_OpenACC)
1098# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1099!$acc end parallel loop
1100# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1101#elif defined(MFC_OpenMP)
1102# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1103
1104# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1105!$omp end target teams loop
1106# 282 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1107#endif
1108
1109 if (viscous) then
1110
1111# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1112
1113# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1114#if defined(MFC_OpenACC)
1115# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1116!$acc parallel loop collapse(3) gang vector default(present)
1117# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1118#elif defined(MFC_OpenMP)
1119# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1120
1121# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1122
1123# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1124
1125# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1126!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1127# 285 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1128#endif
1129 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1130 do l = isz%beg, isz%end
1131 do j = isx%beg, isx%end
1132 dqr_prim_dx_vf(i)%sf(j, n + 1, l) = dql_prim_dx_vf(i)%sf(j, n, l)
1133 end do
1134 end do
1135 end do
1136
1137# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1138#if defined(MFC_OpenACC)
1139# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1140!$acc end parallel loop
1141# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1142#elif defined(MFC_OpenMP)
1143# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1144
1145# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1146!$omp end target teams loop
1147# 293 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1148#endif
1149
1150
1151# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1152
1153# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1154#if defined(MFC_OpenACC)
1155# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1156!$acc parallel loop collapse(3) gang vector default(present)
1157# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1158#elif defined(MFC_OpenMP)
1159# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1160
1161# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1162
1163# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1164
1165# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1166!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1167# 295 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1168#endif
1169 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1170 do l = isz%beg, isz%end
1171 do j = isx%beg, isx%end
1172 dqr_prim_dy_vf(i)%sf(j, n + 1, l) = dql_prim_dy_vf(i)%sf(j, n, l)
1173 end do
1174 end do
1175 end do
1176
1177# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1178#if defined(MFC_OpenACC)
1179# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1180!$acc end parallel loop
1181# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1182#elif defined(MFC_OpenMP)
1183# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1184
1185# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1186!$omp end target teams loop
1187# 303 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1188#endif
1189
1190 if (p > 0) then
1191
1192# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1193
1194# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1195#if defined(MFC_OpenACC)
1196# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1197!$acc parallel loop collapse(3) gang vector default(present)
1198# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1199#elif defined(MFC_OpenMP)
1200# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1201
1202# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1203
1204# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1205
1206# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1207!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1208# 306 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1209#endif
1210 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1211 do l = isz%beg, isz%end
1212 do j = isx%beg, isx%end
1213 dqr_prim_dz_vf(i)%sf(j, n + 1, l) = dql_prim_dz_vf(i)%sf(j, n, l)
1214 end do
1215 end do
1216 end do
1217
1218# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1219#if defined(MFC_OpenACC)
1220# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1221!$acc end parallel loop
1222# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1223#elif defined(MFC_OpenMP)
1224# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1225
1226# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1227!$omp end target teams loop
1228# 314 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1229#endif
1230 end if
1231 end if
1232 end if
1233 ! END: Population of Buffers in y-direction
1234
1235 ! Population of Buffers in z-direction
1236 else
1237 if (bc_z%beg == bc_riemann_extrap) then ! Riemann state extrap. BC at beginning
1238
1239# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1240
1241# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1242#if defined(MFC_OpenACC)
1243# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1244!$acc parallel loop collapse(3) gang vector default(present)
1245# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1246#elif defined(MFC_OpenMP)
1247# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1248
1249# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1250
1251# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1252
1253# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1254!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1255# 323 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1256#endif
1257 do i = 1, sys_size
1258 do k = is2%beg, is2%end
1259 do l = is3%beg, is3%end
1260 ql_prim_rsx_vf(l, k, -1, i) = qr_prim_rsx_vf(l, k, 0, i)
1261 end do
1262 end do
1263 end do
1264
1265# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1266#if defined(MFC_OpenACC)
1267# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1268!$acc end parallel loop
1269# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1270#elif defined(MFC_OpenMP)
1271# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1272
1273# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1274!$omp end target teams loop
1275# 331 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1276#endif
1277
1278 if (viscous) then
1279
1280# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1281
1282# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1283#if defined(MFC_OpenACC)
1284# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1285!$acc parallel loop collapse(3) gang vector default(present)
1286# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1287#elif defined(MFC_OpenMP)
1288# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1289
1290# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1291
1292# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1293
1294# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1295!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1296# 334 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1297#endif
1298 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1299 do k = isy%beg, isy%end
1300 do j = isx%beg, isx%end
1301 dql_prim_dx_vf(i)%sf(j, k, -1) = dqr_prim_dx_vf(i)%sf(j, k, 0)
1302 end do
1303 end do
1304 end do
1305
1306# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1307#if defined(MFC_OpenACC)
1308# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1309!$acc end parallel loop
1310# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1311#elif defined(MFC_OpenMP)
1312# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1313
1314# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1315!$omp end target teams loop
1316# 342 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1317#endif
1318
1319# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1320
1321# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1322#if defined(MFC_OpenACC)
1323# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1324!$acc parallel loop collapse(3) gang vector default(present)
1325# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1326#elif defined(MFC_OpenMP)
1327# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1328
1329# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1330
1331# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1332
1333# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1334!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1335# 343 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1336#endif
1337 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1338 do k = isy%beg, isy%end
1339 do j = isx%beg, isx%end
1340 dql_prim_dy_vf(i)%sf(j, k, -1) = dqr_prim_dy_vf(i)%sf(j, k, 0)
1341 end do
1342 end do
1343 end do
1344
1345# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1346#if defined(MFC_OpenACC)
1347# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1348!$acc end parallel loop
1349# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1350#elif defined(MFC_OpenMP)
1351# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1352
1353# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1354!$omp end target teams loop
1355# 351 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1356#endif
1357
1358# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1359
1360# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1361#if defined(MFC_OpenACC)
1362# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1363!$acc parallel loop collapse(3) gang vector default(present)
1364# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1365#elif defined(MFC_OpenMP)
1366# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1367
1368# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1369
1370# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1371
1372# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1373!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1374# 352 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1375#endif
1376 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1377 do k = isy%beg, isy%end
1378 do j = isx%beg, isx%end
1379 dql_prim_dz_vf(i)%sf(j, k, -1) = dqr_prim_dz_vf(i)%sf(j, k, 0)
1380 end do
1381 end do
1382 end do
1383
1384# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1385#if defined(MFC_OpenACC)
1386# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1387!$acc end parallel loop
1388# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1389#elif defined(MFC_OpenMP)
1390# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1391
1392# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1393!$omp end target teams loop
1394# 360 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1395#endif
1396 end if
1397 end if
1398
1399 if (bc_z%end == bc_riemann_extrap) then ! Riemann state extrap. BC at end
1400
1401# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1402
1403# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1404#if defined(MFC_OpenACC)
1405# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1406!$acc parallel loop collapse(3) gang vector default(present)
1407# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1408#elif defined(MFC_OpenMP)
1409# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1410
1411# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1412
1413# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1414
1415# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1416!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1417# 365 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1418#endif
1419 do i = 1, sys_size
1420 do k = is2%beg, is2%end
1421 do l = is3%beg, is3%end
1422 qr_prim_rsx_vf(l, k, p + 1, i) = ql_prim_rsx_vf(l, k, p, i)
1423 end do
1424 end do
1425 end do
1426
1427# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1428#if defined(MFC_OpenACC)
1429# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1430!$acc end parallel loop
1431# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1432#elif defined(MFC_OpenMP)
1433# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1434
1435# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1436!$omp end target teams loop
1437# 373 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1438#endif
1439
1440 if (viscous) then
1441
1442# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1443
1444# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1445#if defined(MFC_OpenACC)
1446# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1447!$acc parallel loop collapse(3) gang vector default(present)
1448# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1449#elif defined(MFC_OpenMP)
1450# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1451
1452# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1453
1454# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1455
1456# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1457!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1458# 376 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1459#endif
1460 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1461 do k = isy%beg, isy%end
1462 do j = isx%beg, isx%end
1463 dqr_prim_dx_vf(i)%sf(j, k, p + 1) = dql_prim_dx_vf(i)%sf(j, k, p)
1464 end do
1465 end do
1466 end do
1467
1468# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1469#if defined(MFC_OpenACC)
1470# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1471!$acc end parallel loop
1472# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1473#elif defined(MFC_OpenMP)
1474# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1475
1476# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1477!$omp end target teams loop
1478# 384 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1479#endif
1480
1481
1482# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1483
1484# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1485#if defined(MFC_OpenACC)
1486# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1487!$acc parallel loop collapse(3) gang vector default(present)
1488# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1489#elif defined(MFC_OpenMP)
1490# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1491
1492# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1493
1494# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1495
1496# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1497!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1498# 386 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1499#endif
1500 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1501 do k = isy%beg, isy%end
1502 do j = isx%beg, isx%end
1503 dqr_prim_dy_vf(i)%sf(j, k, p + 1) = dql_prim_dy_vf(i)%sf(j, k, p)
1504 end do
1505 end do
1506 end do
1507
1508# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1509#if defined(MFC_OpenACC)
1510# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1511!$acc end parallel loop
1512# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1513#elif defined(MFC_OpenMP)
1514# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1515
1516# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1517!$omp end target teams loop
1518# 394 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1519#endif
1520
1521
1522# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1523
1524# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1525#if defined(MFC_OpenACC)
1526# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1527!$acc parallel loop collapse(3) gang vector default(present)
1528# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1529#elif defined(MFC_OpenMP)
1530# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1531
1532# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1533
1534# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1535
1536# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1537!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1538# 396 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1539#endif
1540 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1541 do k = isy%beg, isy%end
1542 do j = isx%beg, isx%end
1543 dqr_prim_dz_vf(i)%sf(j, k, p + 1) = dql_prim_dz_vf(i)%sf(j, k, p)
1544 end do
1545 end do
1546 end do
1547
1548# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1549#if defined(MFC_OpenACC)
1550# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1551!$acc end parallel loop
1552# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1553#elif defined(MFC_OpenMP)
1554# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1555
1556# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1557!$omp end target teams loop
1558# 404 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1559#endif
1560 end if
1561 end if
1562 end if
1563 ! END: Population of Buffers in z-direction
1564
1566
1567 !> Set up the chosen Riemann solver algorithm for the current direction
1568 subroutine s_initialize_riemann_solver(flux_src_vf, norm_dir)
1569
1570 type(scalar_field), dimension(sys_size), intent(inout) :: flux_src_vf
1571 integer, intent(in) :: norm_dir
1572 integer :: i, j, k, l !< Generic loop iterators
1573
1574 ! Reshaping Inputted Data in x-direction
1575
1576 if (norm_dir == 1) then
1577 if (viscous .or. (surface_tension)) then
1578
1579# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1580
1581# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1582#if defined(MFC_OpenACC)
1583# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1584!$acc parallel loop collapse(4) gang vector default(present)
1585# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1586#elif defined(MFC_OpenMP)
1587# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1588
1589# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1590
1591# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1592
1593# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1594!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1595# 423 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1596#endif
1597 do i = eqn_idx%mom%beg, eqn_idx%E
1598 do l = is3%beg, is3%end
1599 do k = is2%beg, is2%end
1600 do j = is1%beg, is1%end
1601 flux_src_vf(i)%sf(j, k, l) = 0._wp
1602 end do
1603 end do
1604 end do
1605 end do
1606
1607# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1608#if defined(MFC_OpenACC)
1609# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1610!$acc end parallel loop
1611# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1612#elif defined(MFC_OpenMP)
1613# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1614
1615# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1616!$omp end target teams loop
1617# 433 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1618#endif
1619 end if
1620
1621 if (chem_params%diffusion) then
1622
1623# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1624
1625# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1626#if defined(MFC_OpenACC)
1627# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1628!$acc parallel loop collapse(4) gang vector default(present)
1629# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1630#elif defined(MFC_OpenMP)
1631# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1632
1633# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1634
1635# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1636
1637# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1638!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1639# 437 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1640#endif
1641 do i = eqn_idx%E, eqn_idx%species%end
1642 do l = is3%beg, is3%end
1643 do k = is2%beg, is2%end
1644 do j = is1%beg, is1%end
1645 if (i == eqn_idx%E .or. i >= eqn_idx%species%beg) then
1646 flux_src_vf(i)%sf(j, k, l) = 0._wp
1647 end if
1648 end do
1649 end do
1650 end do
1651 end do
1652
1653# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1654#if defined(MFC_OpenACC)
1655# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1656!$acc end parallel loop
1657# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1658#elif defined(MFC_OpenMP)
1659# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1660
1661# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1662!$omp end target teams loop
1663# 449 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1664#endif
1665 end if
1666
1667 if (qbmm) then
1668
1669# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1670
1671# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1672#if defined(MFC_OpenACC)
1673# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1674!$acc parallel loop collapse(4) gang vector default(present)
1675# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1676#elif defined(MFC_OpenMP)
1677# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1678
1679# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1680
1681# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1682
1683# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1684!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1685# 453 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1686#endif
1687 do i = 1, 4
1688 do l = is3%beg, is3%end
1689 do k = is2%beg, is2%end
1690 do j = is1%beg, is1%end + 1
1691 mom_sp_rsx_vf(j, k, l, i) = mom_sp(i)%sf(j, k, l)
1692 end do
1693 end do
1694 end do
1695 end do
1696
1697# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1698#if defined(MFC_OpenACC)
1699# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1700!$acc end parallel loop
1701# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1702#elif defined(MFC_OpenMP)
1703# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1704
1705# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1706!$omp end target teams loop
1707# 463 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1708#endif
1709 end if
1710
1711 ! Reshaping Inputted Data in y-direction
1712 else if (norm_dir == 2) then
1713 if (viscous .or. (surface_tension)) then
1714
1715# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1716
1717# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1718#if defined(MFC_OpenACC)
1719# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1720!$acc parallel loop collapse(4) gang vector default(present)
1721# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1722#elif defined(MFC_OpenMP)
1723# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1724
1725# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1726
1727# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1728
1729# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1730!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1731# 469 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1732#endif
1733 do i = eqn_idx%mom%beg, eqn_idx%E
1734 do l = is3%beg, is3%end
1735 do j = is1%beg, is1%end
1736 do k = is2%beg, is2%end
1737 flux_src_vf(i)%sf(k, j, l) = 0._wp
1738 end do
1739 end do
1740 end do
1741 end do
1742
1743# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1744#if defined(MFC_OpenACC)
1745# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1746!$acc end parallel loop
1747# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1748#elif defined(MFC_OpenMP)
1749# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1750
1751# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1752!$omp end target teams loop
1753# 479 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1754#endif
1755 end if
1756
1757 if (chem_params%diffusion) then
1758
1759# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1760
1761# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1762#if defined(MFC_OpenACC)
1763# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1764!$acc parallel loop collapse(4) gang vector default(present)
1765# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1766#elif defined(MFC_OpenMP)
1767# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1768
1769# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1770
1771# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1772
1773# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1774!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1775# 483 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1776#endif
1777 do i = eqn_idx%E, eqn_idx%species%end
1778 do l = is3%beg, is3%end
1779 do j = is1%beg, is1%end
1780 do k = is2%beg, is2%end
1781 if (i == eqn_idx%E .or. i >= eqn_idx%species%beg) then
1782 flux_src_vf(i)%sf(k, j, l) = 0._wp
1783 end if
1784 end do
1785 end do
1786 end do
1787 end do
1788
1789# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1790#if defined(MFC_OpenACC)
1791# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1792!$acc end parallel loop
1793# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1794#elif defined(MFC_OpenMP)
1795# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1796
1797# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1798!$omp end target teams loop
1799# 495 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1800#endif
1801 end if
1802
1803 if (qbmm) then
1804
1805# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1806
1807# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1808#if defined(MFC_OpenACC)
1809# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1810!$acc parallel loop collapse(4) gang vector default(present)
1811# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1812#elif defined(MFC_OpenMP)
1813# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1814
1815# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1816
1817# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1818
1819# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1820!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1821# 499 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1822#endif
1823 do i = 1, 4
1824 do l = is3%beg, is3%end
1825 do k = is2%beg, is2%end
1826 do j = is1%beg, is1%end + 1
1827 mom_sp_rsx_vf(k, j, l, i) = mom_sp(i)%sf(k, j, l)
1828 end do
1829 end do
1830 end do
1831 end do
1832
1833# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1834#if defined(MFC_OpenACC)
1835# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1836!$acc end parallel loop
1837# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1838#elif defined(MFC_OpenMP)
1839# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1840
1841# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1842!$omp end target teams loop
1843# 509 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1844#endif
1845 end if
1846
1847 ! Reshaping Inputted Data in z-direction
1848 else
1849 if (viscous .or. (surface_tension)) then
1850
1851# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1852
1853# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1854#if defined(MFC_OpenACC)
1855# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1856!$acc parallel loop collapse(4) gang vector default(present)
1857# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1858#elif defined(MFC_OpenMP)
1859# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1860
1861# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1862
1863# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1864
1865# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1866!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1867# 515 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1868#endif
1869 do i = eqn_idx%mom%beg, eqn_idx%E
1870 do j = is1%beg, is1%end
1871 do k = is2%beg, is2%end
1872 do l = is3%beg, is3%end
1873 flux_src_vf(i)%sf(l, k, j) = 0._wp
1874 end do
1875 end do
1876 end do
1877 end do
1878
1879# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1880#if defined(MFC_OpenACC)
1881# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1882!$acc end parallel loop
1883# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1884#elif defined(MFC_OpenMP)
1885# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1886
1887# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1888!$omp end target teams loop
1889# 525 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1890#endif
1891 end if
1892
1893 if (chem_params%diffusion) then
1894
1895# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1896
1897# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1898#if defined(MFC_OpenACC)
1899# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1900!$acc parallel loop collapse(4) gang vector default(present)
1901# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1902#elif defined(MFC_OpenMP)
1903# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1904
1905# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1906
1907# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1908
1909# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1910!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1911# 529 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1912#endif
1913 do i = eqn_idx%E, eqn_idx%species%end
1914 do j = is1%beg, is1%end
1915 do k = is2%beg, is2%end
1916 do l = is3%beg, is3%end
1917 if (i == eqn_idx%E .or. i >= eqn_idx%species%beg) then
1918 flux_src_vf(i)%sf(l, k, j) = 0._wp
1919 end if
1920 end do
1921 end do
1922 end do
1923 end do
1924
1925# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1926#if defined(MFC_OpenACC)
1927# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1928!$acc end parallel loop
1929# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1930#elif defined(MFC_OpenMP)
1931# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1932
1933# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1934!$omp end target teams loop
1935# 541 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1936#endif
1937 end if
1938
1939 if (qbmm) then
1940
1941# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1942
1943# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1944#if defined(MFC_OpenACC)
1945# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1946!$acc parallel loop collapse(4) gang vector default(present)
1947# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1948#elif defined(MFC_OpenMP)
1949# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1950
1951# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1952
1953# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1954
1955# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1956!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
1957# 545 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1958#endif
1959 do i = 1, 4
1960 do l = is3%beg, is3%end
1961 do k = is2%beg, is2%end
1962 do j = is1%beg, is1%end + 1
1963 mom_sp_rsx_vf(l, k, j, i) = mom_sp(i)%sf(l, k, j)
1964 end do
1965 end do
1966 end do
1967 end do
1968
1969# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1970#if defined(MFC_OpenACC)
1971# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1972!$acc end parallel loop
1973# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1974#elif defined(MFC_OpenMP)
1975# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1976
1977# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1978!$omp end target teams loop
1979# 555 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
1980#endif
1981 end if
1982 end if
1983
1984 end subroutine s_initialize_riemann_solver
1985
1986 !> Compute cylindrical viscous source flux contributions for momentum and energy
1987 subroutine s_compute_cylindrical_viscous_source_flux(velL_vf, dvelL_dx_vf, dvelL_dy_vf, dvelL_dz_vf, velR_vf, dvelR_dx_vf, &
1988 & dvelR_dy_vf, dvelR_dz_vf, flux_src_vf, q_prim_vf, norm_dir, ix, iy, iz)
1989
1990 type(scalar_field), dimension(num_dims), intent(in) :: velL_vf, velR_vf
1991 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dx_vf, dvelR_dx_vf
1992 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dy_vf, dvelR_dy_vf
1993 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dz_vf, dvelR_dz_vf
1994 type(scalar_field), dimension(sys_size), intent(inout) :: flux_src_vf
1995 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
1996 integer, intent(in) :: norm_dir
1997 type(int_bounds_info), intent(in) :: ix, iy, iz
1998
1999 ! Local variables
2000
2001# 586 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2002 real(wp), dimension(num_dims) :: avg_v_int !< Averaged interface velocity (\f$v_x, v_y, v_z\f$) (grid directions).
2003 real(wp), dimension(num_dims) :: avg_dvdx_int !< Averaged interface \f$\partial v_i/\partial x\f$ (grid dir 1).
2004 real(wp), dimension(num_dims) :: avg_dvdy_int !< Averaged interface \f$\partial v_i/\partial y\f$ (grid dir 2).
2005 real(wp), dimension(num_dims) :: avg_dvdz_int !< Averaged interface \f$\partial v_i/\partial z\f$ (grid dir 3).
2006 !> Interface velocity (\f$v_1,v_2,v_3\f$) (grid directions) for viscous work.
2007 real(wp), dimension(num_dims) :: vel_src_int
2008 !> Shear stress vector (\f$\sigma_{N1}, \sigma_{N2}, \sigma_{N3}\f$) on N-face (grid directions).
2009 real(wp), dimension(num_dims) :: stress_vector_shear
2010# 595 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2011 real(wp) :: stress_normal_bulk !< Normal bulk stress component \f$\sigma_{NN}\f$ on N-face.
2012 real(wp) :: Re_s, Re_b !< Effective interface shear and bulk Reynolds numbers.
2013 real(wp) :: r_eff !< Effective radius at interface for cylindrical terms.
2014 real(wp) :: div_v_term_const !< Common term \f$-(2/3)(\nabla \cdot \mathbf{v}) / \text{Re}_s\f$ for shear stress diagonal.
2015 real(wp) :: divergence_cyl !< Full divergence \f$\nabla \cdot \mathbf{v}\f$ in cylindrical coordinates.
2016 integer :: j, k, l !< Loop iterators for \f$x, y, z\f$ grid directions.
2017 integer :: i_vel !< Loop iterator for velocity components.
2018 integer :: idx_rp(3) !< Indices \f$(j,k,l)\f$ of 'right' point for averaging.
2019 real(wp) :: gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz
2020 real(wp), dimension(2) :: Re_nn
2021 real(wp), dimension(num_fluids) :: alpha_avg
2022 integer :: fl
2023
2024
2025# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2026
2027# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2028#if defined(MFC_OpenACC)
2029# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2030!$acc parallel loop collapse(3) gang vector default(present) &
2031# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2032!$acc& private(idx_rp, avg_v_int, avg_dvdx_int, avg_dvdy_int, avg_dvdz_int, Re_s, Re_b, vel_src_int, r_eff, divergence_cyl, stress_vector_shear, stress_normal_bulk, div_v_term_const, gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz, Re_nn, alpha_avg, fl)
2033# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2034#elif defined(MFC_OpenMP)
2035# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2036
2037# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2038
2039# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2040
2041# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2042!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) &
2043# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2044!$omp& private(idx_rp, avg_v_int, avg_dvdx_int, avg_dvdy_int, avg_dvdz_int, Re_s, Re_b, vel_src_int, r_eff, divergence_cyl, stress_vector_shear, stress_normal_bulk, div_v_term_const, gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz, Re_nn, alpha_avg, fl)
2045# 608 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2046#endif
2047# 611 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2048 do l = iz%beg, iz%end
2049 do k = iy%beg, iy%end
2050 do j = ix%beg, ix%end
2051 ! Determine indices for the 'right' state for averaging across the interface
2052 idx_rp = [j, k, l]
2053 idx_rp(norm_dir) = idx_rp(norm_dir) + 1
2054
2055 ! Average velocities and their derivatives at the interface For cylindrical: x-dir ~ axial (z_cyl), y-dir ~
2056 ! radial (r_cyl), z-dir ~ azimuthal (theta_cyl)
2057
2058# 620 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2059#if defined(MFC_OpenACC)
2060# 620 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2061!$acc loop seq
2062# 620 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2063#elif defined(MFC_OpenMP)
2064# 620 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2065
2066# 620 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2067#endif
2068 do i_vel = 1, num_dims
2069 avg_v_int(i_vel) = 0.5_wp*(vell_vf(i_vel)%sf(j, k, l) + velr_vf(i_vel)%sf(idx_rp(1), idx_rp(2), idx_rp(3)))
2070
2071 avg_dvdx_int(i_vel) = 0.5_wp*(dvell_dx_vf(i_vel)%sf(j, k, l) + dvelr_dx_vf(i_vel)%sf(idx_rp(1), &
2072 & idx_rp(2), idx_rp(3)))
2073 if (num_dims > 1) then
2074 avg_dvdy_int(i_vel) = 0.5_wp*(dvell_dy_vf(i_vel)%sf(j, k, l) + dvelr_dy_vf(i_vel)%sf(idx_rp(1), &
2075 & idx_rp(2), idx_rp(3)))
2076 else
2077 avg_dvdy_int(i_vel) = 0.0_wp
2078 end if
2079 if (num_dims > 2) then
2080 avg_dvdz_int(i_vel) = 0.5_wp*(dvell_dz_vf(i_vel)%sf(j, k, l) + dvelr_dz_vf(i_vel)%sf(idx_rp(1), &
2081 & idx_rp(2), idx_rp(3)))
2082 else
2083 avg_dvdz_int(i_vel) = 0.0_wp
2084 end if
2085 end do
2086
2087 ! Non-Newtonian effective shear rate from grid-direction strain components.
2088 ! NOTE: curvature corrections to gamma_dot (e.g. hoop strain) are not included
2089 ! here - a documented first-version limitation. The Reynolds override and the
2090 ! Newtonian path below are exact.
2091 if (any_non_newtonian) then
2092 d_xx = avg_dvdx_int(1); d_yy = 0._wp; d_zz = 0._wp
2093 d_xy = 0._wp; d_xz = 0._wp; d_yz = 0._wp
2094# 648 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2095 if (num_dims > 1) then
2096 d_yy = avg_dvdy_int(2)
2097 d_xy = 0.5_wp*(avg_dvdy_int(1) + avg_dvdx_int(2))
2098 end if
2099# 653 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2100# 654 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2101 if (num_dims > 2) then
2102 d_zz = avg_dvdz_int(3)
2103 d_xz = 0.5_wp*(avg_dvdz_int(1) + avg_dvdx_int(3))
2104 d_yz = 0.5_wp*(avg_dvdz_int(2) + avg_dvdy_int(3))
2105 end if
2106# 660 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2107 gamma_dot = f_compute_shear_rate_from_components(d_xx, d_yy, d_zz, d_xy, d_xz, d_yz)
2108 do fl = 1, num_fluids
2109 alpha_avg(fl) = 0.5_wp*(q_prim_vf(eqn_idx%adv%beg + fl - 1)%sf(j, k, &
2110 & l) + q_prim_vf(eqn_idx%adv%beg + fl - 1)%sf(idx_rp(1), idx_rp(2), idx_rp(3)))
2111 ! Raw cell-centered alphas can under/overshoot near interfaces; clamp to [0,1]
2112 alpha_avg(fl) = min(max(alpha_avg(fl), 0._wp), 1._wp)
2113 end do
2114 call s_compute_mixture_inv_re(alpha_avg, gamma_dot, res_gs, re_nn)
2115 end if
2116
2117 ! Get Re numbers and interface velocity for viscous work
2118 select case (norm_dir)
2119 case (1) ! x-face (axial face in z_cyl direction)
2120 if (any_non_newtonian) then
2121 re_s = re_nn(1)
2122 re_b = re_nn(2)
2123 else
2124 re_s = re_avg_rsx_vf(j, k, l, 1)
2125 re_b = re_avg_rsx_vf(j, k, l, 2)
2126 end if
2127 vel_src_int = vel_src_rsx_vf(j, k, l,1:num_dims)
2128 r_eff = y_cc(k)
2129 case (2) ! y-face (radial face in r_cyl direction)
2130 if (any_non_newtonian) then
2131 re_s = re_nn(1)
2132 re_b = re_nn(2)
2133 else
2134 re_s = re_avg_rsx_vf(j, k, l, 1)
2135 re_b = re_avg_rsx_vf(j, k, l, 2)
2136 end if
2137 vel_src_int = vel_src_rsx_vf(j, k, l,1:num_dims)
2138 r_eff = y_cb(k)
2139 case (3) ! z-face (azimuthal face in theta_cyl direction)
2140 if (any_non_newtonian) then
2141 re_s = re_nn(1)
2142 re_b = re_nn(2)
2143 else
2144 re_s = re_avg_rsx_vf(j, k, l, 1)
2145 re_b = re_avg_rsx_vf(j, k, l, 2)
2146 end if
2147 vel_src_int = vel_src_rsx_vf(j, k, l,1:num_dims)
2148 r_eff = y_cc(k)
2149 end select
2150
2151 ! Divergence in cylindrical coordinates (vx=vz_cyl, vy=vr_cyl, vz=vtheta_cyl)
2152# 706 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2153 divergence_cyl = avg_dvdx_int(1) + avg_dvdy_int(2) + avg_v_int(2)/r_eff
2154 if (num_dims > 2) then
2155# 709 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2156 divergence_cyl = divergence_cyl + avg_dvdz_int(3)/r_eff
2157# 711 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2158 end if
2159# 713 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2160
2161 stress_vector_shear = 0.0_wp
2162 stress_normal_bulk = 0.0_wp
2163
2164 if (shear_stress) then
2165 div_v_term_const = -(2.0_wp/3.0_wp)*divergence_cyl/re_s
2166
2167 select case (norm_dir)
2168 case (1) ! X-face (axial normal, z_cyl)
2169 stress_vector_shear(1) = (2.0_wp*avg_dvdx_int(1))/re_s + div_v_term_const
2170 if (num_dims > 1) then
2171# 725 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2172 stress_vector_shear(2) = (avg_dvdy_int(1) + avg_dvdx_int(2))/re_s
2173# 727 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2174 end if
2175 if (num_dims > 2) then
2176# 730 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2177 stress_vector_shear(3) = (avg_dvdz_int(1)/r_eff + avg_dvdx_int(3))/re_s
2178# 732 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2179 end if
2180 case (2) ! Y-face (radial normal, r_cyl)
2181 if (num_dims > 1) then
2182# 736 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2183 stress_vector_shear(1) = (avg_dvdy_int(1) + avg_dvdx_int(2))/re_s
2184 stress_vector_shear(2) = (2.0_wp*avg_dvdy_int(2))/re_s + div_v_term_const
2185 if (num_dims > 2) then
2186# 740 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2187 stress_vector_shear(3) = (avg_dvdz_int(2)/r_eff - avg_v_int(3)/r_eff + avg_dvdy_int(3) &
2188 & )/re_s
2189# 743 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2190 end if
2191# 745 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2192 else
2193 stress_vector_shear(1) = (2.0_wp*avg_dvdx_int(1))/re_s + div_v_term_const
2194 end if
2195 case (3) ! Z-face (azimuthal normal, theta_cyl)
2196 if (num_dims > 2) then
2197# 751 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2198 stress_vector_shear(1) = (avg_dvdz_int(1)/r_eff + avg_dvdx_int(3))/re_s
2199 stress_vector_shear(2) = (avg_dvdz_int(2)/r_eff - avg_v_int(3)/r_eff + avg_dvdy_int(3))/re_s
2200 stress_vector_shear(3) = (2.0_wp*(avg_dvdz_int(3)/r_eff + avg_v_int(2)/r_eff))/re_s &
2201 & + div_v_term_const
2202# 756 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2203 end if
2204 end select
2205
2206
2207# 759 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2208#if defined(MFC_OpenACC)
2209# 759 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2210!$acc loop seq
2211# 759 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2212#elif defined(MFC_OpenMP)
2213# 759 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2214
2215# 759 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2216#endif
2217 do i_vel = 1, num_dims
2218 flux_src_vf(eqn_idx%mom%beg + i_vel - 1)%sf(j, k, l) = flux_src_vf(eqn_idx%mom%beg + i_vel - 1)%sf(j, &
2219 & k, l) - stress_vector_shear(i_vel)
2220 flux_src_vf(eqn_idx%E)%sf(j, k, l) = flux_src_vf(eqn_idx%E)%sf(j, k, &
2221 & l) - vel_src_int(i_vel)*stress_vector_shear(i_vel)
2222 end do
2223 end if
2224
2225 if (bulk_stress) then
2226 stress_normal_bulk = divergence_cyl/re_b
2227
2228 flux_src_vf(eqn_idx%mom%beg + norm_dir - 1)%sf(j, k, &
2229 & l) = flux_src_vf(eqn_idx%mom%beg + norm_dir - 1)%sf(j, k, l) - stress_normal_bulk
2230 flux_src_vf(eqn_idx%E)%sf(j, k, l) = flux_src_vf(eqn_idx%E)%sf(j, k, &
2231 & l) - vel_src_int(norm_dir)*stress_normal_bulk
2232 end if
2233 end do
2234 end do
2235 end do
2236
2237# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2238#if defined(MFC_OpenACC)
2239# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2240!$acc end parallel loop
2241# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2242#elif defined(MFC_OpenMP)
2243# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2244
2245# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2246!$omp end target teams loop
2247# 779 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2248#endif
2249
2251
2252 !> Compute Cartesian viscous source flux contributions for momentum and energy
2253 subroutine s_compute_cartesian_viscous_source_flux(dvelL_dx_vf, dvelL_dy_vf, dvelL_dz_vf, dvelR_dx_vf, dvelR_dy_vf, &
2254 & dvelR_dz_vf, flux_src_vf, q_prim_vf, norm_dir)
2255
2256 ! Arguments
2257 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dx_vf, dvelR_dx_vf
2258 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dy_vf, dvelR_dy_vf
2259 type(scalar_field), dimension(num_dims), intent(in) :: dvelL_dz_vf, dvelR_dz_vf
2260 type(scalar_field), dimension(sys_size), intent(inout) :: flux_src_vf
2261 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
2262 integer, intent(in) :: norm_dir
2263
2264 ! Local variables
2265
2266# 803 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2267 real(wp), dimension(num_dims, num_dims) :: vel_grad_avg !< Averaged velocity gradient tensor `d(vel_i)/d(coord_j)`.
2268 real(wp), dimension(num_dims, num_dims) :: current_tau_shear !< Current shear stress tensor.
2269 real(wp), dimension(num_dims, num_dims) :: current_tau_bulk !< Current bulk stress tensor.
2270 real(wp), dimension(num_dims) :: vel_src_at_interface !< Interface velocities (u,v,w) for viscous work.
2271# 808 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2272 integer, dimension(3) :: idx_right_phys !< Physical (j,k,l) indices for right state.
2273 real(wp) :: Re_shear !< Interface shear Reynolds number.
2274 real(wp) :: Re_bulk !< Interface bulk Reynolds number.
2275 integer :: j_loop !< Physical x-index loop iterator.
2276 integer :: k_loop !< Physical y-index loop iterator.
2277 integer :: l_loop !< Physical z-index loop iterator.
2278 integer :: i_dim !< Generic dimension/component iterator.
2279 integer :: vel_comp_idx !< Velocity component iterator (1=u, 2=v, 3=w).
2280 real(wp) :: divergence_v !< Velocity divergence at interface.
2281 real(wp) :: gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz
2282 real(wp), dimension(2) :: Re_nn
2283 real(wp), dimension(num_fluids) :: alpha_avg
2284 integer :: fl
2285
2286
2287# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2288
2289# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2290#if defined(MFC_OpenACC)
2291# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2292!$acc parallel loop collapse(3) gang vector default(present) &
2293# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2294!$acc& private(idx_right_phys, vel_grad_avg, current_tau_shear, current_tau_bulk, vel_src_at_interface, Re_shear, Re_bulk, divergence_v, i_dim, vel_comp_idx, gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz, Re_nn, alpha_avg, fl)
2295# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2296#elif defined(MFC_OpenMP)
2297# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2298
2299# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2300
2301# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2302
2303# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2304!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) &
2305# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2306!$omp& private(idx_right_phys, vel_grad_avg, current_tau_shear, current_tau_bulk, vel_src_at_interface, Re_shear, Re_bulk, divergence_v, i_dim, vel_comp_idx, gamma_dot, D_xx, D_yy, D_zz, D_xy, D_xz, D_yz, Re_nn, alpha_avg, fl)
2307# 822 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2308#endif
2309# 825 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2310 do l_loop = isz%beg, isz%end
2311 do k_loop = isy%beg, isy%end
2312 do j_loop = isx%beg, isx%end
2313 idx_right_phys(1) = j_loop
2314 idx_right_phys(2) = k_loop
2315 idx_right_phys(3) = l_loop
2316 idx_right_phys(norm_dir) = idx_right_phys(norm_dir) + 1
2317
2318 vel_grad_avg = 0.0_wp
2319 do vel_comp_idx = 1, num_dims
2320 vel_grad_avg(vel_comp_idx, 1) = 0.5_wp*(dvell_dx_vf(vel_comp_idx)%sf(j_loop, k_loop, &
2321 & l_loop) + dvelr_dx_vf(vel_comp_idx)%sf(idx_right_phys(1), idx_right_phys(2), &
2322 & idx_right_phys(3)))
2323 if (num_dims > 1) then
2324# 840 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2325 vel_grad_avg(vel_comp_idx, 2) = 0.5_wp*(dvell_dy_vf(vel_comp_idx)%sf(j_loop, k_loop, &
2326 & l_loop) + dvelr_dy_vf(vel_comp_idx)%sf(idx_right_phys(1), idx_right_phys(2), &
2327 & idx_right_phys(3)))
2328# 844 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2329 end if
2330 if (num_dims > 2) then
2331# 847 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2332 vel_grad_avg(vel_comp_idx, 3) = 0.5_wp*(dvell_dz_vf(vel_comp_idx)%sf(j_loop, k_loop, &
2333 & l_loop) + dvelr_dz_vf(vel_comp_idx)%sf(idx_right_phys(1), idx_right_phys(2), &
2334 & idx_right_phys(3)))
2335# 851 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2336 end if
2337 end do
2338
2339 if (any_non_newtonian) then
2340 d_xx = vel_grad_avg(1, 1); d_yy = 0._wp; d_zz = 0._wp
2341 d_xy = 0._wp; d_xz = 0._wp; d_yz = 0._wp
2342# 858 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2343 if (num_dims > 1) then
2344 d_yy = vel_grad_avg(2, 2)
2345 d_xy = 0.5_wp*(vel_grad_avg(1, 2) + vel_grad_avg(2, 1))
2346 end if
2347# 863 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2348# 864 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2349 if (num_dims > 2) then
2350 d_zz = vel_grad_avg(3, 3)
2351 d_xz = 0.5_wp*(vel_grad_avg(1, 3) + vel_grad_avg(3, 1))
2352 d_yz = 0.5_wp*(vel_grad_avg(2, 3) + vel_grad_avg(3, 2))
2353 end if
2354# 870 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2355 gamma_dot = f_compute_shear_rate_from_components(d_xx, d_yy, d_zz, d_xy, d_xz, d_yz)
2356 do fl = 1, num_fluids
2357 alpha_avg(fl) = 0.5_wp*(q_prim_vf(eqn_idx%adv%beg + fl - 1)%sf(j_loop, k_loop, &
2358 & l_loop) + q_prim_vf(eqn_idx%adv%beg + fl - 1)%sf(idx_right_phys(1), idx_right_phys(2), &
2359 & idx_right_phys(3)))
2360 ! Raw cell-centered alphas can under/overshoot near interfaces; clamp to [0,1]
2361 alpha_avg(fl) = min(max(alpha_avg(fl), 0._wp), 1._wp)
2362 end do
2363 call s_compute_mixture_inv_re(alpha_avg, gamma_dot, res_gs, re_nn)
2364 end if
2365
2366 divergence_v = 0.0_wp
2367 do i_dim = 1, num_dims
2368 divergence_v = divergence_v + vel_grad_avg(i_dim, i_dim)
2369 end do
2370
2371 vel_src_at_interface = 0.0_wp
2372 if (norm_dir == 1) then
2373 if (any_non_newtonian) then
2374 re_shear = re_nn(1)
2375 re_bulk = re_nn(2)
2376 else
2377 re_shear = re_avg_rsx_vf(j_loop, k_loop, l_loop, 1)
2378 re_bulk = re_avg_rsx_vf(j_loop, k_loop, l_loop, 2)
2379 end if
2380 do i_dim = 1, num_dims
2381 vel_src_at_interface(i_dim) = vel_src_rsx_vf(j_loop, k_loop, l_loop, i_dim)
2382 end do
2383 else if (norm_dir == 2) then
2384 if (any_non_newtonian) then
2385 re_shear = re_nn(1)
2386 re_bulk = re_nn(2)
2387 else
2388 re_shear = re_avg_rsx_vf(j_loop, k_loop, l_loop, 1)
2389 re_bulk = re_avg_rsx_vf(j_loop, k_loop, l_loop, 2)
2390 end if
2391 do i_dim = 1, num_dims
2392 vel_src_at_interface(i_dim) = vel_src_rsx_vf(j_loop, k_loop, l_loop, i_dim)
2393 end do
2394 else
2395 if (any_non_newtonian) then
2396 re_shear = re_nn(1)
2397 re_bulk = re_nn(2)
2398 else
2399 re_shear = re_avg_rsx_vf(j_loop, k_loop, l_loop, 1)
2400 re_bulk = re_avg_rsx_vf(j_loop, k_loop, l_loop, 2)
2401 end if
2402 do i_dim = 1, num_dims
2403 vel_src_at_interface(i_dim) = vel_src_rsx_vf(j_loop, k_loop, l_loop, i_dim)
2404 end do
2405 end if
2406
2407 if (shear_stress) then
2408 ! current_tau_shear = 0.0_wp
2409 call s_calculate_shear_stress_tensor(vel_grad_avg, re_shear, divergence_v, current_tau_shear)
2410
2411 do i_dim = 1, num_dims
2412 flux_src_vf(eqn_idx%mom%beg + i_dim - 1)%sf(j_loop, k_loop, &
2413 & l_loop) = flux_src_vf(eqn_idx%mom%beg + i_dim - 1)%sf(j_loop, k_loop, &
2414 & l_loop) - current_tau_shear(norm_dir, i_dim)
2415
2416 flux_src_vf(eqn_idx%E)%sf(j_loop, k_loop, l_loop) = flux_src_vf(eqn_idx%E)%sf(j_loop, k_loop, &
2417 & l_loop) - vel_src_at_interface(i_dim)*current_tau_shear(norm_dir, i_dim)
2418 end do
2419 end if
2420
2421 if (bulk_stress) then
2422 ! current_tau_bulk = 0.0_wp
2423 call s_calculate_bulk_stress_tensor(re_bulk, divergence_v, current_tau_bulk)
2424
2425 do i_dim = 1, num_dims
2426 flux_src_vf(eqn_idx%mom%beg + i_dim - 1)%sf(j_loop, k_loop, &
2427 & l_loop) = flux_src_vf(eqn_idx%mom%beg + i_dim - 1)%sf(j_loop, k_loop, &
2428 & l_loop) - current_tau_bulk(norm_dir, i_dim)
2429
2430 flux_src_vf(eqn_idx%E)%sf(j_loop, k_loop, l_loop) = flux_src_vf(eqn_idx%E)%sf(j_loop, k_loop, &
2431 & l_loop) - vel_src_at_interface(i_dim)*current_tau_bulk(norm_dir, i_dim)
2432 end do
2433 end if
2434 end do
2435 end do
2436 end do
2437
2438# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2439#if defined(MFC_OpenACC)
2440# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2441!$acc end parallel loop
2442# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2443#elif defined(MFC_OpenMP)
2444# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2445
2446# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2447!$omp end target teams loop
2448# 952 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2449#endif
2450
2452
2453 !> Compute shear stress tensor components
2454 subroutine s_calculate_shear_stress_tensor(vel_grad_avg, Re_shear, divergence_v, tau_shear_out)
2455
2456
2457# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2458#if MFC_OpenACC
2459# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2460!$acc routine seq
2461# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2462#elif MFC_OpenMP
2463# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2464
2465# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2466
2467# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2468!$omp declare target device_type(any)
2469# 959 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2470#endif
2471
2472 ! Arguments
2473# 966 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2474 real(wp), dimension(num_dims, num_dims), intent(in) :: vel_grad_avg
2475 real(wp), dimension(num_dims, num_dims), intent(out) :: tau_shear_out
2476# 969 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2477 real(wp), intent(in) :: Re_shear
2478 real(wp), intent(in) :: divergence_v
2479
2480 ! Local variables
2481 integer :: i_dim !< Loop iterator for face normal.
2482 integer :: j_dim !< Loop iterator for force component direction.
2483 tau_shear_out = 0.0_wp
2484
2485 do i_dim = 1, num_dims
2486 do j_dim = 1, num_dims
2487 tau_shear_out(i_dim, j_dim) = (vel_grad_avg(j_dim, i_dim) + vel_grad_avg(i_dim, j_dim))/re_shear
2488 if (i_dim == j_dim) then
2489 tau_shear_out(i_dim, j_dim) = tau_shear_out(i_dim, j_dim) - (2.0_wp/3.0_wp)*divergence_v/re_shear
2490 end if
2491 end do
2492 end do
2493
2494 end subroutine s_calculate_shear_stress_tensor
2495
2496 !> Compute bulk stress tensor components (diagonal only)
2497 subroutine s_calculate_bulk_stress_tensor(Re_bulk, divergence_v, tau_bulk_out)
2498
2499
2500# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2501#if MFC_OpenACC
2502# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2503!$acc routine seq
2504# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2505#elif MFC_OpenMP
2506# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2507
2508# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2509
2510# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2511!$omp declare target device_type(any)
2512# 991 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2513#endif
2514
2515 ! Arguments
2516 real(wp), intent(in) :: Re_bulk
2517 real(wp), intent(in) :: divergence_v
2518# 999 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2519 real(wp), dimension(num_dims, num_dims), intent(out) :: tau_bulk_out
2520# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2521
2522 ! Local variables
2523 integer :: i_dim !< Loop iterator for diagonal components.
2524 tau_bulk_out = 0.0_wp
2525
2526 do i_dim = 1, num_dims
2527 tau_bulk_out(i_dim, i_dim) = divergence_v/re_bulk
2528 end do
2529
2530 end subroutine s_calculate_bulk_stress_tensor
2531
2532 !> Accumulate the mixture density, specific heat ratio function, liquid stiffness function, and internal energy reference of one
2533 !! Riemann state from its partial densities and volume fractions. The number of fluids is an explicit argument because the
2534 !! 5-equation bubble model accumulates over num_fluids - 1 fluids.
2535 subroutine s_accumulate_mixture_properties(nf, alpha_rho_K, alpha_K, rho_K, gamma_K, pi_inf_K, qv_K)
2536
2537
2538# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2539#ifdef _CRAYFTN
2540# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2541#if MFC_OpenACC
2542# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2543!$acc routine seq
2544# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2545#elif MFC_OpenMP
2546# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2547
2548# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2549
2550# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2551!$omp declare target device_type(any)
2552# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2553#else
2554# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2555!DIR$ INLINEALWAYS s_accumulate_mixture_properties
2556# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2557#endif
2558# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2559#elif MFC_OpenACC
2560# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2561!$acc routine seq
2562# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2563#elif MFC_OpenMP
2564# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2565
2566# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2567
2568# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2569!$omp declare target device_type(any)
2570# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2571#endif
2572
2573 integer, intent(in) :: nf !< Number of fluids to accumulate over
2574 real(wp), dimension(nf), intent(in) :: alpha_rho_K, alpha_K
2575 real(wp), intent(out) :: rho_K, gamma_K, pi_inf_K, qv_K
2576 integer :: i !< Loop iterator over fluids
2577
2578 rho_k = 0._wp
2579 gamma_k = 0._wp
2580 pi_inf_k = 0._wp
2581 qv_k = 0._wp
2582
2583
2584# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2585#if defined(MFC_OpenACC)
2586# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2587!$acc loop seq
2588# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2589#elif defined(MFC_OpenMP)
2590# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2591
2592# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2593#endif
2594 do i = 1, nf
2595 rho_k = rho_k + alpha_rho_k(i)
2596 gamma_k = gamma_k + alpha_k(i)*gammas(i)
2597 pi_inf_k = pi_inf_k + alpha_k(i)*pi_infs(i)
2598 qv_k = qv_k + alpha_rho_k(i)*qvs(i)
2599 end do
2600
2601 end subroutine s_accumulate_mixture_properties
2602
2603 !> Compute the shear and volume Reynolds numbers of one Riemann state by inverse-weighting the fluid Reynolds numbers with the
2604 !! volume fractions.
2605 subroutine s_compute_interface_reynolds(alpha_K, Re_K, Re_size_loc1, Re_size_loc2)
2606
2607
2608# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2609#ifdef _CRAYFTN
2610# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2611#if MFC_OpenACC
2612# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2613!$acc routine seq
2614# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2615#elif MFC_OpenMP
2616# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2617
2618# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2619
2620# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2621!$omp declare target device_type(any)
2622# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2623#else
2624# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2625!DIR$ INLINEALWAYS s_compute_interface_reynolds
2626# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2627#endif
2628# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2629#elif MFC_OpenACC
2630# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2631!$acc routine seq
2632# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2633#elif MFC_OpenMP
2634# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2635
2636# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2637
2638# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2639!$omp declare target device_type(any)
2640# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2641#endif
2642
2643# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2644 real(wp), dimension(num_fluids), intent(in) :: alpha_K
2645# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2646 real(wp), dimension(2), intent(out) :: Re_K
2647 !> host copies of Re_size; amdflang reads the declare-target original stale cross-TU
2648 integer, intent(in) :: Re_size_loc1, Re_size_loc2
2649 integer :: i, q !< Loop iterators
2650
2651
2652# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2653#if defined(MFC_OpenACC)
2654# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2655!$acc loop seq
2656# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2657#elif defined(MFC_OpenMP)
2658# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2659
2660# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2661#endif
2662 do i = 1, 2
2663 re_k(i) = dflt_real
2664
2665 if (merge(re_size_loc1, re_size_loc2, i == 1) > 0) re_k(i) = 0._wp
2666
2667
2668# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2669#if defined(MFC_OpenACC)
2670# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2671!$acc loop seq
2672# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2673#elif defined(MFC_OpenMP)
2674# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2675
2676# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2677#endif
2678 do q = 1, merge(re_size_loc1, re_size_loc2, i == 1)
2679 re_k(i) = alpha_k(re_idx(i, q))/res_gs(i, q) + re_k(i)
2680 end do
2681
2682 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
2683 end do
2684
2685 end subroutine s_compute_interface_reynolds
2686
2687 !> Accumulate the hypoelastic stress contribution to the energies of the left and right Riemann states: mix the shear modulus
2688 !! over the fluids, scale it by the continuum damage state when damage is modeled, and add the elastic energy of each stress
2689 !! component (doubled for the shear components) when both mixture moduli are non-negligible. The elastic shear stresses are
2690 !! loaded from the state buffers by the caller, which reuses them for the stress fluxes and elastic wave speeds. The G >
2691 !! verysmall gate is a deliberate maintainer ruling that replaces HLL's former hard-coded G > 1000 stability floor, retiring its
2692 !! "TODO take out if statement if stable without".
2693 subroutine s_compute_hypoelastic_interface_energy(nf, alpha_L, alpha_R, damage_L, damage_R, tau_e_L, tau_e_R, G_L, G_R, E_L, &
2694 & E_R)
2695
2696
2697# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2698#ifdef _CRAYFTN
2699# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2700#if MFC_OpenACC
2701# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2702!$acc routine seq
2703# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2704#elif MFC_OpenMP
2705# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2706
2707# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2708
2709# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2710!$omp declare target device_type(any)
2711# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2712#else
2713# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2714!DIR$ INLINEALWAYS s_compute_hypoelastic_interface_energy
2715# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2716#endif
2717# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2718#elif MFC_OpenACC
2719# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2720!$acc routine seq
2721# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2722#elif MFC_OpenMP
2723# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2724
2725# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2726
2727# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2728!$omp declare target device_type(any)
2729# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2730#endif
2731
2732 integer, intent(in) :: nf !< Number of fluids to mix the shear modulus over
2733 real(wp), dimension(nf), intent(in) :: alpha_L, alpha_R !< Left and right volume fractions
2734 real(wp), intent(in) :: damage_L, damage_R !< Continuum damage states (referenced only when cont_damage)
2735 real(wp), dimension(6), intent(in) :: tau_e_L, tau_e_R !< Left and right elastic shear stresses
2736 real(wp), intent(out) :: G_L, G_R !< Left and right mixture shear moduli
2737 real(wp), intent(inout) :: E_L, E_R !< Left and right state energies
2738 integer :: i !< Loop iterator
2739
2740 g_l = 0._wp; g_r = 0._wp
2741
2742
2743# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2744#if defined(MFC_OpenACC)
2745# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2746!$acc loop seq
2747# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2748#elif defined(MFC_OpenMP)
2749# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2750
2751# 1092 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2752#endif
2753 do i = 1, nf
2754 g_l = g_l + alpha_l(i)*gs_rs(i)
2755 g_r = g_r + alpha_r(i)*gs_rs(i)
2756 end do
2757
2758 if (cont_damage) then
2759 g_l = g_l*max((1._wp - damage_l), 0._wp)
2760 g_r = g_r*max((1._wp - damage_r), 0._wp)
2761 end if
2762
2763
2764# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2765#if defined(MFC_OpenACC)
2766# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2767!$acc loop seq
2768# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2769#elif defined(MFC_OpenMP)
2770# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2771
2772# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2773#endif
2774 do i = 1, eqn_idx%stress%end - eqn_idx%stress%beg + 1
2775 ! Elastic contribution to energy if G large enough
2776 if ((g_l > verysmall) .and. (g_r > verysmall)) then
2777 e_l = e_l + (tau_e_l(i)*tau_e_l(i))/(4._wp*g_l)
2778 e_r = e_r + (tau_e_r(i)*tau_e_r(i))/(4._wp*g_r)
2779 ! Double for shear stresses
2780 if (any(eqn_idx%stress%beg - 1 + i == shear_indices)) then
2781 e_l = e_l + (tau_e_l(i)*tau_e_l(i))/(4._wp*g_l)
2782 e_r = e_r + (tau_e_r(i)*tau_e_r(i))/(4._wp*g_r)
2783 end if
2784 end if
2785 end do
2786
2788
2789 !> Compute the advective part of the HLLC star-state momentum flux in the wave-normal direction (pressure excluded), used to
2790 !! assemble the geometrical source flux of the cylindrical and azimuthal sweeps.
2791 function f_compute_hllc_star_momentum_flux(rho_L, rho_R, vel_L_norm, vel_R_norm, s_M, s_P, s_S, xi_L, xi_R, xi_M, xi_P, &
2792 & dir_flg_norm) result(flux_mom)
2793
2794
2795# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2796#ifdef _CRAYFTN
2797# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2798#if MFC_OpenACC
2799# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2800!$acc routine seq
2801# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2802#elif MFC_OpenMP
2803# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2804
2805# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2806
2807# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2808!$omp declare target device_type(any)
2809# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2810#else
2811# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2812!DIR$ INLINEALWAYS f_compute_hllc_star_momentum_flux
2813# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2814#endif
2815# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2816#elif MFC_OpenACC
2817# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2818!$acc routine seq
2819# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2820#elif MFC_OpenMP
2821# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2822
2823# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2824
2825# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2826!$omp declare target device_type(any)
2827# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2828#endif
2829
2830 real(wp), intent(in) :: rho_l, rho_r !< Left and right densities
2831 real(wp), intent(in) :: vel_l_norm, vel_r_norm !< Left and right wave-normal velocities
2832 real(wp), intent(in) :: s_m, s_p, s_s !< Clamped left/right and contact wave speeds
2833 real(wp), intent(in) :: xi_l, xi_r, xi_m, xi_p !< Star-state compression factors and upwind selectors
2834 real(wp), intent(in) :: dir_flg_norm !< Direction flag of the wave-normal direction
2835 real(wp) :: flux_mom
2836
2837 flux_mom = xi_m*(rho_l*(vel_l_norm*vel_l_norm + s_m*(xi_l*(dir_flg_norm*s_s + (1._wp - dir_flg_norm)*vel_l_norm) &
2838 & - vel_l_norm))) + xi_p*(rho_r*(vel_r_norm*vel_r_norm + s_p*(xi_r*(dir_flg_norm*s_s + (1._wp &
2839 & - dir_flg_norm)*vel_r_norm) - vel_r_norm)))
2840
2842
2843 !> Deallocation and/or disassociation procedures that are needed to finalize the selected Riemann problem solver
2844 subroutine s_finalize_riemann_solver(flux_vf, flux_src_vf, flux_gsrc_vf, norm_dir)
2845
2846 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf, flux_gsrc_vf
2847 integer, intent(in) :: norm_dir
2848 integer :: i, j, k, l !< Generic loop iterators
2849 ! Reshaping Outputted Data in y-direction
2850
2851 if (norm_dir == 2) then
2852
2853# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2854
2855# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2856#if defined(MFC_OpenACC)
2857# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2858!$acc parallel loop collapse(4) gang vector default(present)
2859# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2860#elif defined(MFC_OpenMP)
2861# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2862
2863# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2864
2865# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2866
2867# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2868!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2869# 1148 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2870#endif
2871 do i = 1, sys_size
2872 do l = is3%beg, is3%end
2873 do j = is1%beg, is1%end
2874 do k = is2%beg, is2%end
2875 flux_vf(i)%sf(k, j, l) = flux_rsx_vf(k, j, l, i)
2876 end do
2877 end do
2878 end do
2879 end do
2880
2881# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2882#if defined(MFC_OpenACC)
2883# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2884!$acc end parallel loop
2885# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2886#elif defined(MFC_OpenMP)
2887# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2888
2889# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2890!$omp end target teams loop
2891# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2892#endif
2893
2894 if (cyl_coord) then
2895
2896# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2897
2898# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2899#if defined(MFC_OpenACC)
2900# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2901!$acc parallel loop collapse(4) gang vector default(present)
2902# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2903#elif defined(MFC_OpenMP)
2904# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2905
2906# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2907
2908# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2909
2910# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2911!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2912# 1161 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2913#endif
2914 do i = 1, sys_size
2915 do l = is3%beg, is3%end
2916 do j = is1%beg, is1%end
2917 do k = is2%beg, is2%end
2918 flux_gsrc_vf(i)%sf(k, j, l) = flux_gsrc_rsx_vf(k, j, l, i)
2919 end do
2920 end do
2921 end do
2922 end do
2923
2924# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2925#if defined(MFC_OpenACC)
2926# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2927!$acc end parallel loop
2928# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2929#elif defined(MFC_OpenMP)
2930# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2931
2932# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2933!$omp end target teams loop
2934# 1171 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2935#endif
2936 end if
2937
2938
2939# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2940
2941# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2942#if defined(MFC_OpenACC)
2943# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2944!$acc parallel loop collapse(3) gang vector default(present)
2945# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2946#elif defined(MFC_OpenMP)
2947# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2948
2949# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2950
2951# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2952
2953# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2954!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2955# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2956#endif
2957 do l = is3%beg, is3%end
2958 do j = is1%beg, is1%end
2959 do k = is2%beg, is2%end
2960 flux_src_vf(eqn_idx%adv%beg)%sf(k, j, l) = flux_src_rsx_vf(k, j, l, eqn_idx%adv%beg)
2961 end do
2962 end do
2963 end do
2964
2965# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2966#if defined(MFC_OpenACC)
2967# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2968!$acc end parallel loop
2969# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2970#elif defined(MFC_OpenMP)
2971# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2972
2973# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2974!$omp end target teams loop
2975# 1182 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2976#endif
2977
2978 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
2979
2980# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2981
2982# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2983#if defined(MFC_OpenACC)
2984# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2985!$acc parallel loop collapse(4) gang vector default(present)
2986# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2987#elif defined(MFC_OpenMP)
2988# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2989
2990# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2991
2992# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2993
2994# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2995!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2996# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2997#endif
2998 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
2999 do l = is3%beg, is3%end
3000 do j = is1%beg, is1%end
3001 do k = is2%beg, is2%end
3002 flux_src_vf(i)%sf(k, j, l) = flux_src_rsx_vf(k, j, l, i)
3003 end do
3004 end do
3005 end do
3006 end do
3007
3008# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3009#if defined(MFC_OpenACC)
3010# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3011!$acc end parallel loop
3012# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3013#elif defined(MFC_OpenMP)
3014# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3015
3016# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3017!$omp end target teams loop
3018# 1195 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3019#endif
3020 end if
3021 ! Reshaping Outputted Data in z-direction
3022 else if (norm_dir == 3) then
3023
3024# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3025
3026# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3027#if defined(MFC_OpenACC)
3028# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3029!$acc parallel loop collapse(4) gang vector default(present)
3030# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3031#elif defined(MFC_OpenMP)
3032# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3033
3034# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3035
3036# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3037
3038# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3039!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3040# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3041#endif
3042 do i = 1, sys_size
3043 do j = is1%beg, is1%end
3044 do k = is2%beg, is2%end
3045 do l = is3%beg, is3%end
3046 flux_vf(i)%sf(l, k, j) = flux_rsx_vf(l, k, j, i)
3047 end do
3048 end do
3049 end do
3050 end do
3051
3052# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3053#if defined(MFC_OpenACC)
3054# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3055!$acc end parallel loop
3056# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3057#elif defined(MFC_OpenMP)
3058# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3059
3060# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3061!$omp end target teams loop
3062# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3063#endif
3064 if (grid_geometry == 3) then
3065
3066# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3067
3068# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3069#if defined(MFC_OpenACC)
3070# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3071!$acc parallel loop collapse(4) gang vector default(present)
3072# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3073#elif defined(MFC_OpenMP)
3074# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3075
3076# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3077
3078# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3079
3080# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3081!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3082# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3083#endif
3084 do i = 1, sys_size
3085 do j = is1%beg, is1%end
3086 do k = is2%beg, is2%end
3087 do l = is3%beg, is3%end
3088 flux_gsrc_vf(i)%sf(l, k, j) = flux_gsrc_rsx_vf(l, k, j, i)
3089 end do
3090 end do
3091 end do
3092 end do
3093
3094# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3095#if defined(MFC_OpenACC)
3096# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3097!$acc end parallel loop
3098# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3099#elif defined(MFC_OpenMP)
3100# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3101
3102# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3103!$omp end target teams loop
3104# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3105#endif
3106 end if
3107
3108
3109# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3110
3111# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3112#if defined(MFC_OpenACC)
3113# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3114!$acc parallel loop collapse(3) gang vector default(present)
3115# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3116#elif defined(MFC_OpenMP)
3117# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3118
3119# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3120
3121# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3122
3123# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3124!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3125# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3126#endif
3127 do j = is1%beg, is1%end
3128 do k = is2%beg, is2%end
3129 do l = is3%beg, is3%end
3130 flux_src_vf(eqn_idx%adv%beg)%sf(l, k, j) = flux_src_rsx_vf(l, k, j, eqn_idx%adv%beg)
3131 end do
3132 end do
3133 end do
3134
3135# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3136#if defined(MFC_OpenACC)
3137# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3138!$acc end parallel loop
3139# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3140#elif defined(MFC_OpenMP)
3141# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3142
3143# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3144!$omp end target teams loop
3145# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3146#endif
3147
3148 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
3149
3150# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3151
3152# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3153#if defined(MFC_OpenACC)
3154# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3155!$acc parallel loop collapse(4) gang vector default(present)
3156# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3157#elif defined(MFC_OpenMP)
3158# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3159
3160# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3161
3162# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3163
3164# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3165!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3166# 1235 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3167#endif
3168 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
3169 do j = is1%beg, is1%end
3170 do k = is2%beg, is2%end
3171 do l = is3%beg, is3%end
3172 flux_src_vf(i)%sf(l, k, j) = flux_src_rsx_vf(l, k, j, i)
3173 end do
3174 end do
3175 end do
3176 end do
3177
3178# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3179#if defined(MFC_OpenACC)
3180# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3181!$acc end parallel loop
3182# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3183#elif defined(MFC_OpenMP)
3184# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3185
3186# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3187!$omp end target teams loop
3188# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3189#endif
3190 end if
3191 else if (norm_dir == 1) then
3192
3193# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3194
3195# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3196#if defined(MFC_OpenACC)
3197# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3198!$acc parallel loop collapse(4) gang vector default(present)
3199# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3200#elif defined(MFC_OpenMP)
3201# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3202
3203# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3204
3205# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3206
3207# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3208!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3209# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3210#endif
3211 do i = 1, sys_size
3212 do l = is3%beg, is3%end
3213 do k = is2%beg, is2%end
3214 do j = is1%beg, is1%end
3215 flux_vf(i)%sf(j, k, l) = flux_rsx_vf(j, k, l, i)
3216 end do
3217 end do
3218 end do
3219 end do
3220
3221# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3222#if defined(MFC_OpenACC)
3223# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3224!$acc end parallel loop
3225# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3226#elif defined(MFC_OpenMP)
3227# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3228
3229# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3230!$omp end target teams loop
3231# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3232#endif
3233
3234
3235# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3236
3237# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3238#if defined(MFC_OpenACC)
3239# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3240!$acc parallel loop collapse(3) gang vector default(present)
3241# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3242#elif defined(MFC_OpenMP)
3243# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3244
3245# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3246
3247# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3248
3249# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3250!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3251# 1260 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3252#endif
3253 do l = is3%beg, is3%end
3254 do k = is2%beg, is2%end
3255 do j = is1%beg, is1%end
3256 flux_src_vf(eqn_idx%adv%beg)%sf(j, k, l) = flux_src_rsx_vf(j, k, l, eqn_idx%adv%beg)
3257 end do
3258 end do
3259 end do
3260
3261# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3262#if defined(MFC_OpenACC)
3263# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3264!$acc end parallel loop
3265# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3266#elif defined(MFC_OpenMP)
3267# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3268
3269# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3270!$omp end target teams loop
3271# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3272#endif
3273
3274 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
3275
3276# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3277
3278# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3279#if defined(MFC_OpenACC)
3280# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3281!$acc parallel loop collapse(4) gang vector default(present)
3282# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3283#elif defined(MFC_OpenMP)
3284# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3285
3286# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3287
3288# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3289
3290# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3291!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
3292# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3293#endif
3294 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
3295 do l = is3%beg, is3%end
3296 do k = is2%beg, is2%end
3297 do j = is1%beg, is1%end
3298 flux_src_vf(i)%sf(j, k, l) = flux_src_rsx_vf(j, k, l, i)
3299 end do
3300 end do
3301 end do
3302 end do
3303
3304# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3305#if defined(MFC_OpenACC)
3306# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3307!$acc end parallel loop
3308# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3309#elif defined(MFC_OpenMP)
3310# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3311
3312# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3313!$omp end target teams loop
3314# 1281 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3315#endif
3316 end if
3317 end if
3318
3319 end subroutine s_finalize_riemann_solver
3320
3321end module m_riemann_state
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter riemann_solver_hll
integer, parameter riemann_solver_hlld
real(wp), parameter sgm_eps
Segmentation tolerance.
real(wp), parameter dflt_real
Default real value.
integer, parameter bc_riemann_extrap
real(wp), parameter verysmall
Very small number.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
logical bulk_stress
Bulk stresses.
logical any_non_newtonian
.true. if any fluid is non-Newtonian
integer, dimension(:,:), allocatable re_idx
integer, dimension(3) dir_idx
integer, dimension(3) dir_idx_tau
used for hypoelasticity=true
real(wp), dimension(:), allocatable, target y_cc
real(wp), dimension(:), allocatable qvs
real(wp), dimension(:), allocatable pi_infs
real(wp), dimension(3) dir_flg
real(wp), dimension(:), allocatable, target y_cb
type(scalar_field), dimension(:), allocatable mom_sp
logical shear_stress
Shear stresses.
real(wp), dimension(:), allocatable gammas
Herschel-Bulkley non-Newtonian viscosity: formula, shear rate, and mixture inverse-Re.
subroutine, public s_compute_mixture_inv_re(alpha, shear_rate, res, re_out)
Mixture inverse Reynolds (= 1/mu_mix) per direction (1=shear, 2=bulk) at one state....
real(wp) function, public f_compute_shear_rate_from_components(d_xx, d_yy, d_zz, d_xy, d_xz, d_yz)
Shear rate gamma_dot = sqrt(2 D_ij D_ij). Absent dims pass 0.
Shared Riemann-solver module state and the per-sweep setup, state-buffer population,...
real(wp), dimension(:,:,:,:), allocatable flux_src_rsx_vf
type(int_bounds_info) isz
real(wp), dimension(:,:,:,:), allocatable mom_sp_rsx_vf
type(int_bounds_info) isx
type(int_bounds_info) is3
real(wp), dimension(:,:,:,:), allocatable flux_rsx_vf
The cell-boundary values of the fluxes (src - source) that are computed through the chosen Riemann pr...
real(wp), dimension(:,:), allocatable res_gs
subroutine s_initialize_riemann_solver(flux_src_vf, norm_dir)
Set up the chosen Riemann solver algorithm for the current direction.
subroutine s_compute_viscous_source_flux(vell_vf, dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, velr_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, q_prim_vf, norm_dir, ix, iy, iz)
Dispatch to the subroutines that are utilized to compute the viscous source fluxes for either Cartesi...
real(wp), dimension(:), allocatable gs_rs
subroutine s_populate_riemann_states_variables_buffers(ql_prim_rsx_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, qr_prim_rsx_vf, dqr_prim_dx_vf, dqr_prim_dy_vf, dqr_prim_dz_vf, norm_dir, ix, iy, iz)
Populate the left and right Riemann state variable buffers based on boundary conditions.
subroutine s_compute_hypoelastic_interface_energy(nf, alpha_l, alpha_r, damage_l, damage_r, tau_e_l, tau_e_r, g_l, g_r, e_l, e_r)
Accumulate the hypoelastic stress contribution to the energies of the left and right Riemann states: ...
type(int_bounds_info) isy
real(wp) function f_compute_hllc_star_momentum_flux(rho_l, rho_r, vel_l_norm, vel_r_norm, s_m, s_p, s_s, xi_l, xi_r, xi_m, xi_p, dir_flg_norm)
Compute the advective part of the HLLC star-state momentum flux in the wave-normal direction (pressur...
real(wp), dimension(:,:,:,:), allocatable vel_src_rsx_vf
type(int_bounds_info) is2
subroutine s_finalize_riemann_solver(flux_vf, flux_src_vf, flux_gsrc_vf, norm_dir)
Deallocation and/or disassociation procedures that are needed to finalize the selected Riemann proble...
subroutine s_compute_interface_reynolds(alpha_k, re_k, re_size_loc1, re_size_loc2)
Compute the shear and volume Reynolds numbers of one Riemann state by inverse-weighting the fluid Rey...
subroutine s_compute_cartesian_viscous_source_flux(dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, q_prim_vf, norm_dir)
Compute Cartesian viscous source flux contributions for momentum and energy.
real(wp), dimension(:,:,:,:), allocatable flux_gsrc_rsx_vf
The cell-boundary values of the geometrical source flux that are computed through the chosen Riemann ...
subroutine s_compute_cylindrical_viscous_source_flux(vell_vf, dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, velr_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, q_prim_vf, norm_dir, ix, iy, iz)
Compute cylindrical viscous source flux contributions for momentum and energy.
real(wp), dimension(:,:,:,:), allocatable re_avg_rsx_vf
subroutine s_calculate_bulk_stress_tensor(re_bulk, divergence_v, tau_bulk_out)
Compute bulk stress tensor components (diagonal only).
subroutine s_accumulate_mixture_properties(nf, alpha_rho_k, alpha_k, rho_k, gamma_k, pi_inf_k, qv_k)
Accumulate the mixture density, specific heat ratio function, liquid stiffness function,...
subroutine s_calculate_shear_stress_tensor(vel_grad_avg, re_shear, divergence_v, tau_shear_out)
Compute shear stress tensor components.
type(int_bounds_info) is1
Integer bounds for variables.
Derived type annexing a scalar field (SF).