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. NVIDIA unified memory page placement hint
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 !> Deallocation and/or disassociation procedures that are needed to finalize the selected Riemann problem solver
2533 subroutine s_finalize_riemann_solver(flux_vf, flux_src_vf, flux_gsrc_vf, norm_dir)
2534
2535 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf, flux_gsrc_vf
2536 integer, intent(in) :: norm_dir
2537 integer :: i, j, k, l !< Generic loop iterators
2538 ! Reshaping Outputted Data in y-direction
2539
2540 if (norm_dir == 2) then
2541
2542# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2543
2544# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2545#if defined(MFC_OpenACC)
2546# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2547!$acc parallel loop collapse(4) gang vector default(present)
2548# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2549#elif defined(MFC_OpenMP)
2550# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2551
2552# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2553
2554# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2555
2556# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2557!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2558# 1021 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2559#endif
2560 do i = 1, sys_size
2561 do l = is3%beg, is3%end
2562 do j = is1%beg, is1%end
2563 do k = is2%beg, is2%end
2564 flux_vf(i)%sf(k, j, l) = flux_rsx_vf(k, j, l, i)
2565 end do
2566 end do
2567 end do
2568 end do
2569
2570# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2571#if defined(MFC_OpenACC)
2572# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2573!$acc end parallel loop
2574# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2575#elif defined(MFC_OpenMP)
2576# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2577
2578# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2579!$omp end target teams loop
2580# 1031 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2581#endif
2582
2583 if (cyl_coord) then
2584
2585# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2586
2587# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2588#if defined(MFC_OpenACC)
2589# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2590!$acc parallel loop collapse(4) gang vector default(present)
2591# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2592#elif defined(MFC_OpenMP)
2593# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2594
2595# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2596
2597# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2598
2599# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2600!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2601# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2602#endif
2603 do i = 1, sys_size
2604 do l = is3%beg, is3%end
2605 do j = is1%beg, is1%end
2606 do k = is2%beg, is2%end
2607 flux_gsrc_vf(i)%sf(k, j, l) = flux_gsrc_rsx_vf(k, j, l, i)
2608 end do
2609 end do
2610 end do
2611 end do
2612
2613# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2614#if defined(MFC_OpenACC)
2615# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2616!$acc end parallel loop
2617# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2618#elif defined(MFC_OpenMP)
2619# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2620
2621# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2622!$omp end target teams loop
2623# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2624#endif
2625 end if
2626
2627
2628# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2629
2630# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2631#if defined(MFC_OpenACC)
2632# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2633!$acc parallel loop collapse(3) gang vector default(present)
2634# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2635#elif defined(MFC_OpenMP)
2636# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2637
2638# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2639
2640# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2641
2642# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2643!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2644# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2645#endif
2646 do l = is3%beg, is3%end
2647 do j = is1%beg, is1%end
2648 do k = is2%beg, is2%end
2649 flux_src_vf(eqn_idx%adv%beg)%sf(k, j, l) = flux_src_rsx_vf(k, j, l, eqn_idx%adv%beg)
2650 end do
2651 end do
2652 end do
2653
2654# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2655#if defined(MFC_OpenACC)
2656# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2657!$acc end parallel loop
2658# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2659#elif defined(MFC_OpenMP)
2660# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2661
2662# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2663!$omp end target teams loop
2664# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2665#endif
2666
2667 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
2668
2669# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2670
2671# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2672#if defined(MFC_OpenACC)
2673# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2674!$acc parallel loop collapse(4) gang vector default(present)
2675# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2676#elif defined(MFC_OpenMP)
2677# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2678
2679# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2680
2681# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2682
2683# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2684!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2685# 1058 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2686#endif
2687 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
2688 do l = is3%beg, is3%end
2689 do j = is1%beg, is1%end
2690 do k = is2%beg, is2%end
2691 flux_src_vf(i)%sf(k, j, l) = flux_src_rsx_vf(k, j, l, i)
2692 end do
2693 end do
2694 end do
2695 end do
2696
2697# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2698#if defined(MFC_OpenACC)
2699# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2700!$acc end parallel loop
2701# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2702#elif defined(MFC_OpenMP)
2703# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2704
2705# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2706!$omp end target teams loop
2707# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2708#endif
2709 end if
2710 ! Reshaping Outputted Data in z-direction
2711 else if (norm_dir == 3) then
2712
2713# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2714
2715# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2716#if defined(MFC_OpenACC)
2717# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2718!$acc parallel loop collapse(4) gang vector default(present)
2719# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2720#elif defined(MFC_OpenMP)
2721# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2722
2723# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2724
2725# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2726
2727# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2728!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2729# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2730#endif
2731 do i = 1, sys_size
2732 do j = is1%beg, is1%end
2733 do k = is2%beg, is2%end
2734 do l = is3%beg, is3%end
2735 flux_vf(i)%sf(l, k, j) = flux_rsx_vf(l, k, j, i)
2736 end do
2737 end do
2738 end do
2739 end do
2740
2741# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2742#if defined(MFC_OpenACC)
2743# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2744!$acc end parallel loop
2745# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2746#elif defined(MFC_OpenMP)
2747# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2748
2749# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2750!$omp end target teams loop
2751# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2752#endif
2753 if (grid_geometry == 3) then
2754
2755# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2756
2757# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2758#if defined(MFC_OpenACC)
2759# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2760!$acc parallel loop collapse(4) gang vector default(present)
2761# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2762#elif defined(MFC_OpenMP)
2763# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2764
2765# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2766
2767# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2768
2769# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2770!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2771# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2772#endif
2773 do i = 1, sys_size
2774 do j = is1%beg, is1%end
2775 do k = is2%beg, is2%end
2776 do l = is3%beg, is3%end
2777 flux_gsrc_vf(i)%sf(l, k, j) = flux_gsrc_rsx_vf(l, k, j, i)
2778 end do
2779 end do
2780 end do
2781 end do
2782
2783# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2784#if defined(MFC_OpenACC)
2785# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2786!$acc end parallel loop
2787# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2788#elif defined(MFC_OpenMP)
2789# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2790
2791# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2792!$omp end target teams loop
2793# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2794#endif
2795 end if
2796
2797
2798# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2799
2800# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2801#if defined(MFC_OpenACC)
2802# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2803!$acc parallel loop collapse(3) gang vector default(present)
2804# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2805#elif defined(MFC_OpenMP)
2806# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2807
2808# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2809
2810# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2811
2812# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2813!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2814# 1097 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2815#endif
2816 do j = is1%beg, is1%end
2817 do k = is2%beg, is2%end
2818 do l = is3%beg, is3%end
2819 flux_src_vf(eqn_idx%adv%beg)%sf(l, k, j) = flux_src_rsx_vf(l, k, j, eqn_idx%adv%beg)
2820 end do
2821 end do
2822 end do
2823
2824# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2825#if defined(MFC_OpenACC)
2826# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2827!$acc end parallel loop
2828# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2829#elif defined(MFC_OpenMP)
2830# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2831
2832# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2833!$omp end target teams loop
2834# 1105 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2835#endif
2836
2837 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
2838
2839# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2840
2841# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2842#if defined(MFC_OpenACC)
2843# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2844!$acc parallel loop collapse(4) gang vector default(present)
2845# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2846#elif defined(MFC_OpenMP)
2847# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2848
2849# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2850
2851# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2852
2853# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2854!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2855# 1108 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2856#endif
2857 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
2858 do j = is1%beg, is1%end
2859 do k = is2%beg, is2%end
2860 do l = is3%beg, is3%end
2861 flux_src_vf(i)%sf(l, k, j) = flux_src_rsx_vf(l, k, j, i)
2862 end do
2863 end do
2864 end do
2865 end do
2866
2867# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2868#if defined(MFC_OpenACC)
2869# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2870!$acc end parallel loop
2871# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2872#elif defined(MFC_OpenMP)
2873# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2874
2875# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2876!$omp end target teams loop
2877# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2878#endif
2879 end if
2880 else if (norm_dir == 1) then
2881
2882# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2883
2884# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2885#if defined(MFC_OpenACC)
2886# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2887!$acc parallel loop collapse(4) gang vector default(present)
2888# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2889#elif defined(MFC_OpenMP)
2890# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2891
2892# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2893
2894# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2895
2896# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2897!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2898# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2899#endif
2900 do i = 1, sys_size
2901 do l = is3%beg, is3%end
2902 do k = is2%beg, is2%end
2903 do j = is1%beg, is1%end
2904 flux_vf(i)%sf(j, k, l) = flux_rsx_vf(j, k, l, i)
2905 end do
2906 end do
2907 end do
2908 end do
2909
2910# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2911#if defined(MFC_OpenACC)
2912# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2913!$acc end parallel loop
2914# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2915#elif defined(MFC_OpenMP)
2916# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2917
2918# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2919!$omp end target teams loop
2920# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2921#endif
2922
2923
2924# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2925
2926# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2927#if defined(MFC_OpenACC)
2928# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2929!$acc parallel loop collapse(3) gang vector default(present)
2930# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2931#elif defined(MFC_OpenMP)
2932# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2933
2934# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2935
2936# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2937
2938# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2939!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2940# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2941#endif
2942 do l = is3%beg, is3%end
2943 do k = is2%beg, is2%end
2944 do j = is1%beg, is1%end
2945 flux_src_vf(eqn_idx%adv%beg)%sf(j, k, l) = flux_src_rsx_vf(j, k, l, eqn_idx%adv%beg)
2946 end do
2947 end do
2948 end do
2949
2950# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2951#if defined(MFC_OpenACC)
2952# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2953!$acc end parallel loop
2954# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2955#elif defined(MFC_OpenMP)
2956# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2957
2958# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2959!$omp end target teams loop
2960# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2961#endif
2962
2963 if (riemann_solver == riemann_solver_hll .or. riemann_solver == riemann_solver_hlld) then
2964
2965# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2966
2967# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2968#if defined(MFC_OpenACC)
2969# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2970!$acc parallel loop collapse(4) gang vector default(present)
2971# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2972#elif defined(MFC_OpenMP)
2973# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2974
2975# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2976
2977# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2978
2979# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2980!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
2981# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2982#endif
2983 do i = eqn_idx%adv%beg + 1, eqn_idx%adv%end
2984 do l = is3%beg, is3%end
2985 do k = is2%beg, is2%end
2986 do j = is1%beg, is1%end
2987 flux_src_vf(i)%sf(j, k, l) = flux_src_rsx_vf(j, k, l, i)
2988 end do
2989 end do
2990 end do
2991 end do
2992
2993# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2994#if defined(MFC_OpenACC)
2995# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2996!$acc end parallel loop
2997# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
2998#elif defined(MFC_OpenMP)
2999# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3000
3001# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3002!$omp end target teams loop
3003# 1154 "/home/runner/work/MFC/MFC/src/simulation/m_riemann_state.fpp"
3004#endif
3005 end if
3006 end if
3007
3008 end subroutine s_finalize_riemann_solver
3009
3010end module m_riemann_state
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter riemann_solver_hll
integer, parameter riemann_solver_hlld
integer, parameter bc_riemann_extrap
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(3) dir_idx
integer, dimension(3) dir_idx_tau
used for hypoelasticity=true
real(wp), dimension(:), allocatable, target y_cc
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.
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.
type(int_bounds_info) isy
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_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_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).