MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_cbc.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2!>
3!! @file
4!! @brief Contains module m_cbc
5
6!> @brief Characteristic boundary conditions (CBCs) for slip walls, non-reflecting subsonic inflow/outflow, and supersonic
7!! boundaries
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_cbc.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# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
34! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
35! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
36# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
37# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
38# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
39
40# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42
43# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44
45# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46
47# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48
49# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50
51# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58! New line at end of file is required for FYPP
59# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
60# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
61# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
62# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67
68# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71
72# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
74! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
75! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
76# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
77# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
78# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
79
80# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
81# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82
83# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84
85# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86
87# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
88
89# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
90
91# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
92
93# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
94
95# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
96
97# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
98! New line at end of file is required for FYPP
99# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
100
101# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138
139# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150
151# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153
154# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155
156# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157
158# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159
160# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161
162# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163
164# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165
166# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
167
168# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
169
170# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
171
172# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
173
174# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
175
176# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
177! New line at end of file is required for FYPP
178# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
179# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
180# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
181# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
185# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
186
187# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
188# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190
191# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
192# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
193! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
194! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
195# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
196# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
197# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
198
199# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
200# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201
202# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203
204# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205
206# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
207
208# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
209
210# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
211
212# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
213
214# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
215
216# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
217! New line at end of file is required for FYPP
218# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
219
220# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223
224# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225
226# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227
228# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229
230# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231
232# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233
234# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235
236# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237
238# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239
240# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241
242# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243
244# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245
246# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247
248# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249
250# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251
252# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253
254# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255
256# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257
258# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259
260# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261
262# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263
264# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
265
266# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
267
268# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
269
270# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
271
272# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
273
274# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
275! New line at end of file is required for FYPP
276# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
277
278! GPU parallel region (scalar reductions, maxval/minval)
279# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280
281! GPU parallel loop over threads (most common GPU macro)
282# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283
284! Required closing for GPU_PARALLEL_LOOP
285# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286
287! Mark routine for device compilation
288# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289
290! Declare device-resident data
291# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292
293! Inner loop within a GPU parallel region
294# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295
296! Scoped GPU data region
297# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298
299! Host code with device pointers (for MPI with GPU buffers)
300# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301
302! Allocate device memory (unscoped)
303# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304
305! Free device memory
306# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
307
308! Atomic operation on device
309# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
310
311! End atomic capture block
312# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
313
314! Copy data between host and device
315# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
316
317! Synchronization barrier
318# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
319
320! Import GPU library module (openacc or omp_lib)
321# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
322
323! Emit code only for AMD compiler
324# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325
326! Emit code for non-Cray compilers
327# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
328
329! Emit code only for Cray compiler
330# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
331
332! Emit code for non-NVIDIA compilers
333# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
334
335# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
336# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
337! New line at end of file is required for FYPP
338# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
339
340# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
341
342! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
343! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
344! example see misc/nvidia_uvm/bind.sh.
345# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
346
347! Allocate and create GPU device memory
348# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
349
350! Free GPU device memory and deallocate
351# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
352
353! Cray-specific GPU pointer setup for vector fields
354# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
355
356! Cray-specific GPU pointer setup for scalar fields
357# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
358
359! Cray-specific GPU pointer setup for acoustic source spatials
360# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
361
362# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
363
364# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
365! New line at end of file is required for FYPP
366# 9 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp" 2
367
368module m_cbc
369
373 use m_compute_cbc
376 use m_thermochem, only: gas_constant, get_mixture_molecular_weight, get_species_enthalpies_rt, molecular_weights, &
377 & get_mole_fractions
378 use m_thermochem_state, only: get_mixture_caloric_state
379
380 implicit none
381
383
384 ! The cell-average primitive variables. They are obtained by reshaping (RS) q_prim_vf in the coordinate direction normal to the
385 ! domain boundary along which the CBC is applied.
386
387 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsx_vf
388 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsy_vf
389 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsz_vf
390
391# 32 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
392#if defined(MFC_OpenACC)
393# 32 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
394!$acc declare create(q_prim_rsx_vf, q_prim_rsy_vf, q_prim_rsz_vf)
395# 32 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
396#elif defined(MFC_OpenMP)
397# 32 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
398!$omp declare target (q_prim_rsx_vf, q_prim_rsy_vf, q_prim_rsz_vf)
399# 32 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
400#endif
401# 33 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
402
403 ! Cell-average fluxes (src - source). These are directly determined from the cell-average primitive variables, q_prims_rs_vf,
404 ! and not a Riemann solver.
405
406 real(wp), allocatable, dimension(:,:,:,:) :: f_rsx_vf, f_src_rsx_vf
407 real(wp), allocatable, dimension(:,:,:,:) :: f_rsy_vf, f_src_rsy_vf
408 real(wp), allocatable, dimension(:,:,:,:) :: f_rsz_vf, f_src_rsz_vf
409
410# 40 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
411#if defined(MFC_OpenACC)
412# 40 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
413!$acc declare create(F_rsx_vf, F_src_rsx_vf, F_rsy_vf, F_src_rsy_vf, F_rsz_vf, F_src_rsz_vf)
414# 40 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
415#elif defined(MFC_OpenMP)
416# 40 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
417!$omp declare target (F_rsx_vf, F_src_rsx_vf, F_rsy_vf, F_src_rsy_vf, F_rsz_vf, F_src_rsz_vf)
418# 40 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
419#endif
420# 41 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
421
422 ! There is a CCE bug that is causing some subset of these variables to interfere with variables of the same name in
423 ! m_riemann_solvers.fpp, and giving this versions unique "_l" names works around the bug. Other private module allocatable
424 ! arrays in `acc declare create` clauses don't have this problem, so we still need to isolate this bug.
425
426 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsx_vf_l, flux_src_rsx_vf_l
427 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsy_vf_l, flux_src_rsy_vf_l
428 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsz_vf_l, flux_src_rsz_vf_l
429
430# 49 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
431#if defined(MFC_OpenACC)
432# 49 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
433!$acc declare create(flux_rsx_vf_l, flux_src_rsx_vf_l, flux_rsy_vf_l, flux_src_rsy_vf_l, flux_rsz_vf_l, flux_src_rsz_vf_l)
434# 49 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
435#elif defined(MFC_OpenMP)
436# 49 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
437!$omp declare target (flux_rsx_vf_l, flux_src_rsx_vf_l, flux_rsy_vf_l, flux_src_rsy_vf_l, flux_rsz_vf_l, flux_src_rsz_vf_l)
438# 49 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
439#endif
440# 50 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
441
442 real(wp), allocatable, dimension(:) :: ds !< Cell-width distribution in the s-direction
443 ! CBC Coefficients
444
445 real(wp), allocatable, dimension(:,:) :: fd_coef_x !< Finite diff. coefficients x-dir
446 real(wp), allocatable, dimension(:,:) :: fd_coef_y !< Finite diff. coefficients y-dir
447 real(wp), allocatable, dimension(:,:) :: fd_coef_z !< Finite diff. coefficients, z-direction
448 ! Bug with NVHPC when using nullified pointers in a declare create real(wp), pointer, dimension(:, :) :: fd_coef => null()
449
450 real(wp), allocatable, dimension(:,:,:) :: pi_coef_x !< Polynomial interpolant coefficients in x-dir
451 real(wp), allocatable, dimension(:,:,:) :: pi_coef_y !< Polynomial interpolant coefficients in y-dir
452 real(wp), allocatable, dimension(:,:,:) :: pi_coef_z !< Polynomial interpolant coefficients in z-dir
453
454# 62 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
455#if defined(MFC_OpenACC)
456# 62 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
457!$acc declare create(ds, fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
458# 62 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
459#elif defined(MFC_OpenMP)
460# 62 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
461!$omp declare target (ds, fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
462# 62 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
463#endif
464# 63 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
465
466 ! The first dimension of the array identifies the polynomial, the second dimension identifies the position of its coefficients
467 ! and the last dimension denotes the location of the CBC.
468
469 type(int_bounds_info) :: is1, is2, is3 !< Indical bounds in the s1-, s2- and s3-directions
470
471# 68 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
472#if defined(MFC_OpenACC)
473# 68 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
474!$acc declare create(is1, is2, is3)
475# 68 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
476#elif defined(MFC_OpenMP)
477# 68 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
478!$omp declare target (is1, is2, is3)
479# 68 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
480#endif
481# 69 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
482
483 integer :: dj
484 integer :: cbc_dir, cbc_loc
485 integer :: flux_cbc_index
486
487# 73 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
488#if defined(MFC_OpenACC)
489# 73 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
490!$acc declare create(dj)
491# 73 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
492#elif defined(MFC_OpenMP)
493# 73 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
494!$omp declare target (dj)
495# 73 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
496#endif
497# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
498
499# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
500#if defined(MFC_OpenACC)
501# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
502!$acc declare create(cbc_dir, cbc_loc, flux_cbc_index)
503# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
504#elif defined(MFC_OpenMP)
505# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
506!$omp declare target (cbc_dir, cbc_loc, flux_cbc_index)
507# 74 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
508#endif
509# 75 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
510
511 ! GRCBC inputs for subsonic inflow and outflow conditions consisting of inflow velocities, pressure, density and void fraction
512 ! as well as outflow velocities and pressure
513
514 real(wp), allocatable, dimension(:) :: pres_in, pres_out, del_in, del_out
515 real(wp), allocatable, dimension(:,:) :: vel_in, vel_out
516 real(wp), allocatable, dimension(:,:) :: alpha_rho_in, alpha_in
517
518# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
519#if defined(MFC_OpenACC)
520# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
521!$acc declare create(pres_in, pres_out, Del_in, Del_out)
522# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
523#elif defined(MFC_OpenMP)
524# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
525!$omp declare target (pres_in, pres_out, Del_in, Del_out)
526# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
527#endif
528# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
529
530# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
531#if defined(MFC_OpenACC)
532# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
533!$acc declare create(vel_in, vel_out)
534# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
535#elif defined(MFC_OpenMP)
536# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
537!$omp declare target (vel_in, vel_out)
538# 83 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
539#endif
540# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
541
542# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
543#if defined(MFC_OpenACC)
544# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
545!$acc declare create(alpha_rho_in, alpha_in)
546# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
547#elif defined(MFC_OpenMP)
548# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
549!$omp declare target (alpha_rho_in, alpha_in)
550# 84 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
551#endif
552# 85 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
553
554contains
555
556 !> Initialize the CBC module
557 impure subroutine s_initialize_cbc_module
558
559 integer :: i
560 logical :: is_cbc
561 type(int_bounds_info) :: idx1, idx2
562
563 if (chemistry) then
564 flux_cbc_index = sys_size
565 else
566 flux_cbc_index = eqn_idx%adv%end
567 end if
568
569# 100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
570#if defined(MFC_OpenACC)
571# 100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
572!$acc update device(flux_cbc_index)
573# 100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
574#elif defined(MFC_OpenMP)
575# 100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
576!$omp target update to(flux_cbc_index)
577# 100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
578#endif
579# 101 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
580
581 call s_any_cbc_boundaries(is_cbc)
582
583 if (is_cbc .eqv. .false.) return
584
585 if (n == 0) then
586 is2%beg = 0
587 else
588 is2%beg = -buff_size
589 end if
590
591 is2%end = n - is2%beg
592
593 if (p == 0) then
594 is3%beg = 0
595 else
596 is3%beg = -buff_size
597 end if
598 is3%end = p - is3%beg
599
600#ifdef MFC_DEBUG
601# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
602 block
603# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
604 use iso_fortran_env, only: output_unit
605# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
606
607# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
608 print *, 'm_cbc.fpp:121: ', '@:ALLOCATE(q_prim_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
609# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
610
611# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
612 call flush (output_unit)
613# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
614 end block
615# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
616#endif
617# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
618 allocate (q_prim_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
619# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
620
621# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
622
623# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
624#if defined(MFC_OpenACC)
625# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
626!$acc enter data create(q_prim_rsx_vf)
627# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
628#elif defined(MFC_OpenMP)
629# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
630!$omp target enter data map(always,alloc:q_prim_rsx_vf)
631# 121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
632#endif
633# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
634
635 if (weno_order > 1 .or. muscl_order > 1) then
636#ifdef MFC_DEBUG
637# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
638 block
639# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
640 use iso_fortran_env, only: output_unit
641# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
642
643# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
644 print *, 'm_cbc.fpp:124: ', '@:ALLOCATE(F_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
645# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
646
647# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
648 call flush (output_unit)
649# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
650 end block
651# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
652#endif
653# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
654 allocate (f_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
655# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
656
657# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
658
659# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
660#if defined(MFC_OpenACC)
661# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
662!$acc enter data create(F_rsx_vf)
663# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
664#elif defined(MFC_OpenMP)
665# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
666!$omp target enter data map(always,alloc:F_rsx_vf)
667# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
668#endif
669# 125 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
670
671#ifdef MFC_DEBUG
672# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
673 block
674# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
675 use iso_fortran_env, only: output_unit
676# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
677
678# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
679 print *, 'm_cbc.fpp:126: ', '@:ALLOCATE(F_src_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
680# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
681
682# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
683 call flush (output_unit)
684# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
685 end block
686# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
687#endif
688# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
689 allocate (f_src_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
690# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
691
692# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
693
694# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
695#if defined(MFC_OpenACC)
696# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
697!$acc enter data create(F_src_rsx_vf)
698# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
699#elif defined(MFC_OpenMP)
700# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
701!$omp target enter data map(always,alloc:F_src_rsx_vf)
702# 126 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
703#endif
704# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
705 end if
706
707#ifdef MFC_DEBUG
708# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
709 block
710# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
711 use iso_fortran_env, only: output_unit
712# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
713
714# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
715 print *, 'm_cbc.fpp:129: ', '@:ALLOCATE(flux_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
716# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
717
718# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
719 call flush (output_unit)
720# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
721 end block
722# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
723#endif
724# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
725 allocate (flux_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
726# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
727
728# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
729
730# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
731#if defined(MFC_OpenACC)
732# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
733!$acc enter data create(flux_rsx_vf_l)
734# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
735#elif defined(MFC_OpenMP)
736# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
737!$omp target enter data map(always,alloc:flux_rsx_vf_l)
738# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
739#endif
740# 130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
741
742#ifdef MFC_DEBUG
743# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
744 block
745# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
746 use iso_fortran_env, only: output_unit
747# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
748
749# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
750 print *, 'm_cbc.fpp:131: ', '@:ALLOCATE(flux_src_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
751# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
752
753# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
754 call flush (output_unit)
755# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
756 end block
757# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
758#endif
759# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
760 allocate (flux_src_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
761# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
762
763# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
764
765# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
766#if defined(MFC_OpenACC)
767# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
768!$acc enter data create(flux_src_rsx_vf_l)
769# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
770#elif defined(MFC_OpenMP)
771# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
772!$omp target enter data map(always,alloc:flux_src_rsx_vf_l)
773# 131 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
774#endif
775# 132 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
776
777 if (n > 0) then
778 if (m == 0) then
779 is2%beg = 0
780 else
781 is2%beg = -buff_size
782 end if
783
784 is2%end = m - is2%beg
785
786 if (p == 0) then
787 is3%beg = 0
788 else
789 is3%beg = -buff_size
790 end if
791 is3%end = p - is3%beg
792
793#ifdef MFC_DEBUG
794# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
795 block
796# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
797 use iso_fortran_env, only: output_unit
798# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
799
800# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
801 print *, 'm_cbc.fpp:149: ', '@:ALLOCATE(q_prim_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
802# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
803
804# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
805 call flush (output_unit)
806# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
807 end block
808# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
809#endif
810# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
811 allocate (q_prim_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
812# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
813
814# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
815
816# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
817#if defined(MFC_OpenACC)
818# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
819!$acc enter data create(q_prim_rsy_vf)
820# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
821#elif defined(MFC_OpenMP)
822# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
823!$omp target enter data map(always,alloc:q_prim_rsy_vf)
824# 149 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
825#endif
826# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
827
828 if (weno_order > 1 .or. muscl_order > 1) then
829#ifdef MFC_DEBUG
830# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
831 block
832# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
833 use iso_fortran_env, only: output_unit
834# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
835
836# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
837 print *, 'm_cbc.fpp:152: ', '@:ALLOCATE(F_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
838# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
839
840# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
841 call flush (output_unit)
842# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
843 end block
844# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
845#endif
846# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
847 allocate (f_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
848# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
849
850# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
851
852# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
853#if defined(MFC_OpenACC)
854# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
855!$acc enter data create(F_rsy_vf)
856# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
857#elif defined(MFC_OpenMP)
858# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
859!$omp target enter data map(always,alloc:F_rsy_vf)
860# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
861#endif
862# 153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
863
864#ifdef MFC_DEBUG
865# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
866 block
867# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
868 use iso_fortran_env, only: output_unit
869# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
870
871# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
872 print *, 'm_cbc.fpp:154: ', '@:ALLOCATE(F_src_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
873# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
874
875# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
876 call flush (output_unit)
877# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
878 end block
879# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
880#endif
881# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
882 allocate (f_src_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
883# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
884
885# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
886
887# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
888#if defined(MFC_OpenACC)
889# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
890!$acc enter data create(F_src_rsy_vf)
891# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
892#elif defined(MFC_OpenMP)
893# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
894!$omp target enter data map(always,alloc:F_src_rsy_vf)
895# 154 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
896#endif
897# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
898 end if
899
900#ifdef MFC_DEBUG
901# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
902 block
903# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
904 use iso_fortran_env, only: output_unit
905# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
906
907# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
908 print *, 'm_cbc.fpp:157: ', '@:ALLOCATE(flux_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
909# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
910
911# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
912 call flush (output_unit)
913# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
914 end block
915# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
916#endif
917# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
918 allocate (flux_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
919# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
920
921# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
922
923# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
924#if defined(MFC_OpenACC)
925# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
926!$acc enter data create(flux_rsy_vf_l)
927# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
928#elif defined(MFC_OpenMP)
929# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
930!$omp target enter data map(always,alloc:flux_rsy_vf_l)
931# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
932#endif
933# 158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
934
935#ifdef MFC_DEBUG
936# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
937 block
938# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
939 use iso_fortran_env, only: output_unit
940# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
941
942# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
943 print *, 'm_cbc.fpp:159: ', '@:ALLOCATE(flux_src_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
944# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
945
946# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
947 call flush (output_unit)
948# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
949 end block
950# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
951#endif
952# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
953 allocate (flux_src_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
954# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
955
956# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
957
958# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
959#if defined(MFC_OpenACC)
960# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
961!$acc enter data create(flux_src_rsy_vf_l)
962# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
963#elif defined(MFC_OpenMP)
964# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
965!$omp target enter data map(always,alloc:flux_src_rsy_vf_l)
966# 159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
967#endif
968# 160 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
969 end if
970
971 if (p > 0) then
972 if (n == 0) then
973 is2%beg = 0
974 else
975 is2%beg = -buff_size
976 end if
977
978 is2%end = n - is2%beg
979
980 if (m == 0) then
981 is3%beg = 0
982 else
983 is3%beg = -buff_size
984 end if
985 is3%end = m - is3%beg
986
987#ifdef MFC_DEBUG
988# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
989 block
990# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
991 use iso_fortran_env, only: output_unit
992# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
993
994# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
995 print *, 'm_cbc.fpp:178: ', '@:ALLOCATE(q_prim_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
996# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
997
998# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
999 call flush (output_unit)
1000# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1001 end block
1002# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1003#endif
1004# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1005 allocate (q_prim_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
1006# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1007
1008# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1009
1010# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1011#if defined(MFC_OpenACC)
1012# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1013!$acc enter data create(q_prim_rsz_vf)
1014# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1015#elif defined(MFC_OpenMP)
1016# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1017!$omp target enter data map(always,alloc:q_prim_rsz_vf)
1018# 178 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1019#endif
1020# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1021
1022 if (weno_order > 1 .or. muscl_order > 1) then
1023#ifdef MFC_DEBUG
1024# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1025 block
1026# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1027 use iso_fortran_env, only: output_unit
1028# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1029
1030# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1031 print *, 'm_cbc.fpp:181: ', '@:ALLOCATE(F_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
1032# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1033
1034# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1035 call flush (output_unit)
1036# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1037 end block
1038# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1039#endif
1040# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1041 allocate (f_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
1042# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1043
1044# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1045
1046# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1047#if defined(MFC_OpenACC)
1048# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1049!$acc enter data create(F_rsz_vf)
1050# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1051#elif defined(MFC_OpenMP)
1052# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1053!$omp target enter data map(always,alloc:F_rsz_vf)
1054# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1055#endif
1056# 182 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1057
1058#ifdef MFC_DEBUG
1059# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1060 block
1061# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1062 use iso_fortran_env, only: output_unit
1063# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1064
1065# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1066 print *, 'm_cbc.fpp:183: ', '@:ALLOCATE(F_src_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
1067# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1068
1069# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1070 call flush (output_unit)
1071# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1072 end block
1073# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1074#endif
1075# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1076 allocate (f_src_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
1077# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1078
1079# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1080
1081# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1082#if defined(MFC_OpenACC)
1083# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1084!$acc enter data create(F_src_rsz_vf)
1085# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1086#elif defined(MFC_OpenMP)
1087# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1088!$omp target enter data map(always,alloc:F_src_rsz_vf)
1089# 183 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1090#endif
1091# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1092 end if
1093
1094#ifdef MFC_DEBUG
1095# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1096 block
1097# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1098 use iso_fortran_env, only: output_unit
1099# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1100
1101# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1102 print *, 'm_cbc.fpp:186: ', '@:ALLOCATE(flux_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
1103# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1104
1105# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1106 call flush (output_unit)
1107# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1108 end block
1109# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1110#endif
1111# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1112 allocate (flux_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
1113# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1114
1115# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1116
1117# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1118#if defined(MFC_OpenACC)
1119# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1120!$acc enter data create(flux_rsz_vf_l)
1121# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1122#elif defined(MFC_OpenMP)
1123# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1124!$omp target enter data map(always,alloc:flux_rsz_vf_l)
1125# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1126#endif
1127# 187 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1128
1129#ifdef MFC_DEBUG
1130# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1131 block
1132# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1133 use iso_fortran_env, only: output_unit
1134# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1135
1136# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1137 print *, 'm_cbc.fpp:188: ', '@:ALLOCATE(flux_src_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
1138# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1139
1140# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1141 call flush (output_unit)
1142# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1143 end block
1144# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1145#endif
1146# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1147 allocate (flux_src_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
1148# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1149
1150# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1151
1152# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1153#if defined(MFC_OpenACC)
1154# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1155!$acc enter data create(flux_src_rsz_vf_l)
1156# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1157#elif defined(MFC_OpenMP)
1158# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1159!$omp target enter data map(always,alloc:flux_src_rsz_vf_l)
1160# 188 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1161#endif
1162# 189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1163 end if
1164
1165 ! Allocating the cell-width distribution in the s-direction
1166#ifdef MFC_DEBUG
1167# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1168 block
1169# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1170 use iso_fortran_env, only: output_unit
1171# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1172
1173# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1174 print *, 'm_cbc.fpp:192: ', '@:ALLOCATE(ds(0:buff_size))'
1175# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1176
1177# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1178 call flush (output_unit)
1179# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1180 end block
1181# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1182#endif
1183# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1184 allocate (ds(0:buff_size))
1185# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1186
1187# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1188
1189# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1190#if defined(MFC_OpenACC)
1191# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1192!$acc enter data create(ds)
1193# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1194#elif defined(MFC_OpenMP)
1195# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1196!$omp target enter data map(always,alloc:ds)
1197# 192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1198#endif
1199# 193 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1200
1201 if (recon_type == recon_type_weno) then
1202 idx1%beg = 0
1203 idx1%end = weno_polyn - 1
1204 idx2%beg = 0
1205 idx2%end = weno_order - 3
1206 else if (recon_type == recon_type_muscl) then
1207 idx1%beg = 0
1208 idx1%end = muscl_polyn
1209 idx2%beg = 0
1210 idx2%end = muscl_order - 1
1211 end if
1212 ! Allocating/Computing CBC Coefficients in x-direction
1213 if (all((/bc_x%beg, bc_x%end/) <= -5) .and. all((/bc_x%beg, bc_x%end/) >= -13)) then
1214#ifdef MFC_DEBUG
1215# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1216 block
1217# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1218 use iso_fortran_env, only: output_unit
1219# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1220
1221# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1222 print *, 'm_cbc.fpp:207: ', '@:ALLOCATE(fd_coef_x(0:buff_size, -1:1))'
1223# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1224
1225# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1226 call flush (output_unit)
1227# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1228 end block
1229# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1230#endif
1231# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1232 allocate (fd_coef_x(0:buff_size, -1:1))
1233# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1234
1235# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1236
1237# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1238#if defined(MFC_OpenACC)
1239# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1240!$acc enter data create(fd_coef_x)
1241# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1242#elif defined(MFC_OpenMP)
1243# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1244!$omp target enter data map(always,alloc:fd_coef_x)
1245# 207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1246#endif
1247# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1248
1249 if (weno_order > 1 .or. muscl_order > 1) then
1250#ifdef MFC_DEBUG
1251# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1252 block
1253# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1254 use iso_fortran_env, only: output_unit
1255# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1256
1257# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1258 print *, 'm_cbc.fpp:210: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1259# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1260
1261# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1262 call flush (output_unit)
1263# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1264 end block
1265# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1266#endif
1267# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1268 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1269# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1270
1271# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1272
1273# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1274#if defined(MFC_OpenACC)
1275# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1276!$acc enter data create(pi_coef_x)
1277# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1278#elif defined(MFC_OpenMP)
1279# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1280!$omp target enter data map(always,alloc:pi_coef_x)
1281# 210 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1282#endif
1283# 211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1284 end if
1285
1286 call s_compute_cbc_coefficients(1, -1)
1288 else if (bc_x%beg <= -5 .and. bc_x%beg >= -13) then
1289#ifdef MFC_DEBUG
1290# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1291 block
1292# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1293 use iso_fortran_env, only: output_unit
1294# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1295
1296# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1297 print *, 'm_cbc.fpp:216: ', '@:ALLOCATE(fd_coef_x(0:buff_size, -1:-1))'
1298# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1299
1300# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1301 call flush (output_unit)
1302# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1303 end block
1304# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1305#endif
1306# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1307 allocate (fd_coef_x(0:buff_size, -1:-1))
1308# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1309
1310# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1311
1312# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1313#if defined(MFC_OpenACC)
1314# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1315!$acc enter data create(fd_coef_x)
1316# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1317#elif defined(MFC_OpenMP)
1318# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1319!$omp target enter data map(always,alloc:fd_coef_x)
1320# 216 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1321#endif
1322# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1323
1324 if (weno_order > 1 .or. muscl_order > 1) then
1325#ifdef MFC_DEBUG
1326# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1327 block
1328# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1329 use iso_fortran_env, only: output_unit
1330# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1331
1332# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1333 print *, 'm_cbc.fpp:219: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1334# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1335
1336# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1337 call flush (output_unit)
1338# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1339 end block
1340# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1341#endif
1342# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1343 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1344# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1345
1346# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1347
1348# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1349#if defined(MFC_OpenACC)
1350# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1351!$acc enter data create(pi_coef_x)
1352# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1353#elif defined(MFC_OpenMP)
1354# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1355!$omp target enter data map(always,alloc:pi_coef_x)
1356# 219 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1357#endif
1358# 220 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1359 end if
1360
1361 call s_compute_cbc_coefficients(1, -1)
1362 else if (bc_x%end <= -5 .and. bc_x%end >= -13) then
1363#ifdef MFC_DEBUG
1364# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1365 block
1366# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1367 use iso_fortran_env, only: output_unit
1368# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1369
1370# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1371 print *, 'm_cbc.fpp:224: ', '@:ALLOCATE(fd_coef_x(0:buff_size, 1:1))'
1372# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1373
1374# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1375 call flush (output_unit)
1376# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1377 end block
1378# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1379#endif
1380# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1381 allocate (fd_coef_x(0:buff_size, 1:1))
1382# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1383
1384# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1385
1386# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1387#if defined(MFC_OpenACC)
1388# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1389!$acc enter data create(fd_coef_x)
1390# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1391#elif defined(MFC_OpenMP)
1392# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1393!$omp target enter data map(always,alloc:fd_coef_x)
1394# 224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1395#endif
1396# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1397
1398 if (weno_order > 1 .or. muscl_order > 1) then
1399#ifdef MFC_DEBUG
1400# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1401 block
1402# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1403 use iso_fortran_env, only: output_unit
1404# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1405
1406# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1407 print *, 'm_cbc.fpp:227: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1408# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1409
1410# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1411 call flush (output_unit)
1412# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1413 end block
1414# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1415#endif
1416# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1417 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1418# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1419
1420# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1421
1422# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1423#if defined(MFC_OpenACC)
1424# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1425!$acc enter data create(pi_coef_x)
1426# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1427#elif defined(MFC_OpenMP)
1428# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1429!$omp target enter data map(always,alloc:pi_coef_x)
1430# 227 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1431#endif
1432# 228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1433 end if
1434
1436 end if
1437
1438 ! Allocating/Computing CBC Coefficients in y-direction
1439 if (n > 0) then
1440 if (all((/bc_y%beg, bc_y%end/) <= -5) .and. all((/bc_y%beg, bc_y%end/) >= -13)) then
1441#ifdef MFC_DEBUG
1442# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1443 block
1444# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1445 use iso_fortran_env, only: output_unit
1446# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1447
1448# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1449 print *, 'm_cbc.fpp:236: ', '@:ALLOCATE(fd_coef_y(0:buff_size, -1:1))'
1450# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1451
1452# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1453 call flush (output_unit)
1454# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1455 end block
1456# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1457#endif
1458# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1459 allocate (fd_coef_y(0:buff_size, -1:1))
1460# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1461
1462# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1463
1464# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1465#if defined(MFC_OpenACC)
1466# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1467!$acc enter data create(fd_coef_y)
1468# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1469#elif defined(MFC_OpenMP)
1470# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1471!$omp target enter data map(always,alloc:fd_coef_y)
1472# 236 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1473#endif
1474# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1475
1476 if (weno_order > 1 .or. muscl_order > 1) then
1477#ifdef MFC_DEBUG
1478# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1479 block
1480# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1481 use iso_fortran_env, only: output_unit
1482# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1483
1484# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1485 print *, 'm_cbc.fpp:239: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1486# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1487
1488# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1489 call flush (output_unit)
1490# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1491 end block
1492# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1493#endif
1494# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1495 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1496# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1497
1498# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1499
1500# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1501#if defined(MFC_OpenACC)
1502# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1503!$acc enter data create(pi_coef_y)
1504# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1505#elif defined(MFC_OpenMP)
1506# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1507!$omp target enter data map(always,alloc:pi_coef_y)
1508# 239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1509#endif
1510# 240 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1511 end if
1512
1513 call s_compute_cbc_coefficients(2, -1)
1515 else if (bc_y%beg <= -5 .and. bc_y%beg >= -13) then
1516#ifdef MFC_DEBUG
1517# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1518 block
1519# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1520 use iso_fortran_env, only: output_unit
1521# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1522
1523# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1524 print *, 'm_cbc.fpp:245: ', '@:ALLOCATE(fd_coef_y(0:buff_size, -1:-1))'
1525# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1526
1527# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1528 call flush (output_unit)
1529# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1530 end block
1531# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1532#endif
1533# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1534 allocate (fd_coef_y(0:buff_size, -1:-1))
1535# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1536
1537# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1538
1539# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1540#if defined(MFC_OpenACC)
1541# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1542!$acc enter data create(fd_coef_y)
1543# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1544#elif defined(MFC_OpenMP)
1545# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1546!$omp target enter data map(always,alloc:fd_coef_y)
1547# 245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1548#endif
1549# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1550
1551 if (weno_order > 1 .or. muscl_order > 1) then
1552#ifdef MFC_DEBUG
1553# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1554 block
1555# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1556 use iso_fortran_env, only: output_unit
1557# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1558
1559# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1560 print *, 'm_cbc.fpp:248: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1561# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1562
1563# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1564 call flush (output_unit)
1565# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1566 end block
1567# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1568#endif
1569# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1570 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1571# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1572
1573# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1574
1575# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1576#if defined(MFC_OpenACC)
1577# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1578!$acc enter data create(pi_coef_y)
1579# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1580#elif defined(MFC_OpenMP)
1581# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1582!$omp target enter data map(always,alloc:pi_coef_y)
1583# 248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1584#endif
1585# 249 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1586 end if
1587
1588 call s_compute_cbc_coefficients(2, -1)
1589 else if (bc_y%end <= -5 .and. bc_y%end >= -13) then
1590#ifdef MFC_DEBUG
1591# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1592 block
1593# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1594 use iso_fortran_env, only: output_unit
1595# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1596
1597# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1598 print *, 'm_cbc.fpp:253: ', '@:ALLOCATE(fd_coef_y(0:buff_size, 1:1))'
1599# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1600
1601# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1602 call flush (output_unit)
1603# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1604 end block
1605# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1606#endif
1607# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1608 allocate (fd_coef_y(0:buff_size, 1:1))
1609# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1610
1611# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1612
1613# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1614#if defined(MFC_OpenACC)
1615# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1616!$acc enter data create(fd_coef_y)
1617# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1618#elif defined(MFC_OpenMP)
1619# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1620!$omp target enter data map(always,alloc:fd_coef_y)
1621# 253 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1622#endif
1623# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1624
1625 if (weno_order > 1 .or. muscl_order > 1) then
1626#ifdef MFC_DEBUG
1627# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1628 block
1629# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1630 use iso_fortran_env, only: output_unit
1631# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1632
1633# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1634 print *, 'm_cbc.fpp:256: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1635# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1636
1637# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1638 call flush (output_unit)
1639# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1640 end block
1641# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1642#endif
1643# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1644 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1645# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1646
1647# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1648
1649# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1650#if defined(MFC_OpenACC)
1651# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1652!$acc enter data create(pi_coef_y)
1653# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1654#elif defined(MFC_OpenMP)
1655# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1656!$omp target enter data map(always,alloc:pi_coef_y)
1657# 256 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1658#endif
1659# 257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1660 end if
1661
1663 end if
1664 end if
1665
1666 ! Allocating/Computing CBC Coefficients in z-direction
1667 if (p > 0) then
1668 if (all((/bc_z%beg, bc_z%end/) <= -5) .and. all((/bc_z%beg, bc_z%end/) >= -13)) then
1669#ifdef MFC_DEBUG
1670# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1671 block
1672# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1673 use iso_fortran_env, only: output_unit
1674# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1675
1676# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1677 print *, 'm_cbc.fpp:266: ', '@:ALLOCATE(fd_coef_z(0:buff_size, -1:1))'
1678# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1679
1680# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1681 call flush (output_unit)
1682# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1683 end block
1684# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1685#endif
1686# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1687 allocate (fd_coef_z(0:buff_size, -1:1))
1688# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1689
1690# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1691
1692# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1693#if defined(MFC_OpenACC)
1694# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1695!$acc enter data create(fd_coef_z)
1696# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1697#elif defined(MFC_OpenMP)
1698# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1699!$omp target enter data map(always,alloc:fd_coef_z)
1700# 266 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1701#endif
1702# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1703
1704 if (weno_order > 1 .or. muscl_order > 1) then
1705#ifdef MFC_DEBUG
1706# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1707 block
1708# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1709 use iso_fortran_env, only: output_unit
1710# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1711
1712# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1713 print *, 'm_cbc.fpp:269: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1714# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1715
1716# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1717 call flush (output_unit)
1718# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1719 end block
1720# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1721#endif
1722# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1723 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1724# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1725
1726# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1727
1728# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1729#if defined(MFC_OpenACC)
1730# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1731!$acc enter data create(pi_coef_z)
1732# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1733#elif defined(MFC_OpenMP)
1734# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1735!$omp target enter data map(always,alloc:pi_coef_z)
1736# 269 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1737#endif
1738# 270 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1739 end if
1740
1741 call s_compute_cbc_coefficients(3, -1)
1743 else if (bc_z%beg <= -5 .and. bc_z%beg >= -13) then
1744#ifdef MFC_DEBUG
1745# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1746 block
1747# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1748 use iso_fortran_env, only: output_unit
1749# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1750
1751# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1752 print *, 'm_cbc.fpp:275: ', '@:ALLOCATE(fd_coef_z(0:buff_size, -1:-1))'
1753# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1754
1755# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1756 call flush (output_unit)
1757# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1758 end block
1759# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1760#endif
1761# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1762 allocate (fd_coef_z(0:buff_size, -1:-1))
1763# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1764
1765# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1766
1767# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1768#if defined(MFC_OpenACC)
1769# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1770!$acc enter data create(fd_coef_z)
1771# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1772#elif defined(MFC_OpenMP)
1773# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1774!$omp target enter data map(always,alloc:fd_coef_z)
1775# 275 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1776#endif
1777# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1778
1779 if (weno_order > 1 .or. muscl_order > 1) then
1780#ifdef MFC_DEBUG
1781# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1782 block
1783# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1784 use iso_fortran_env, only: output_unit
1785# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1786
1787# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1788 print *, 'm_cbc.fpp:278: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1789# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1790
1791# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1792 call flush (output_unit)
1793# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1794 end block
1795# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1796#endif
1797# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1798 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1799# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1800
1801# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1802
1803# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1804#if defined(MFC_OpenACC)
1805# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1806!$acc enter data create(pi_coef_z)
1807# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1808#elif defined(MFC_OpenMP)
1809# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1810!$omp target enter data map(always,alloc:pi_coef_z)
1811# 278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1812#endif
1813# 279 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1814 end if
1815
1816 call s_compute_cbc_coefficients(3, -1)
1817 else if (bc_z%end <= -5 .and. bc_z%end >= -13) then
1818#ifdef MFC_DEBUG
1819# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1820 block
1821# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1822 use iso_fortran_env, only: output_unit
1823# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1824
1825# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1826 print *, 'm_cbc.fpp:283: ', '@:ALLOCATE(fd_coef_z(0:buff_size, 1:1))'
1827# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1828
1829# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1830 call flush (output_unit)
1831# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1832 end block
1833# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1834#endif
1835# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1836 allocate (fd_coef_z(0:buff_size, 1:1))
1837# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1838
1839# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1840
1841# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1842#if defined(MFC_OpenACC)
1843# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1844!$acc enter data create(fd_coef_z)
1845# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1846#elif defined(MFC_OpenMP)
1847# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1848!$omp target enter data map(always,alloc:fd_coef_z)
1849# 283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1850#endif
1851# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1852
1853 if (weno_order > 1 .or. muscl_order > 1) then
1854#ifdef MFC_DEBUG
1855# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1856 block
1857# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1858 use iso_fortran_env, only: output_unit
1859# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1860
1861# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1862 print *, 'm_cbc.fpp:286: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1863# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1864
1865# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1866 call flush (output_unit)
1867# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1868 end block
1869# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1870#endif
1871# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1872 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1873# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1874
1875# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1876
1877# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1878#if defined(MFC_OpenACC)
1879# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1880!$acc enter data create(pi_coef_z)
1881# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1882#elif defined(MFC_OpenMP)
1883# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1884!$omp target enter data map(always,alloc:pi_coef_z)
1885# 286 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1886#endif
1887# 287 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1888 end if
1889
1891 end if
1892 end if
1893
1894
1895# 293 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1896#if defined(MFC_OpenACC)
1897# 293 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1898!$acc update device(fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
1899# 293 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1900#elif defined(MFC_OpenMP)
1901# 293 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1902!$omp target update to(fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
1903# 293 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1904#endif
1905# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1906
1907 ! Allocate GRCBC inputs
1908#ifdef MFC_DEBUG
1909# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1910 block
1911# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1912 use iso_fortran_env, only: output_unit
1913# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1914
1915# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1916 print *, 'm_cbc.fpp:296: ', '@:ALLOCATE(pres_in(1:num_dims), pres_out(1:num_dims))'
1917# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1918
1919# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1920 call flush (output_unit)
1921# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1922 end block
1923# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1924#endif
1925# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1926 allocate (pres_in(1:num_dims), pres_out(1:num_dims))
1927# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1928
1929# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1930
1931# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1932
1933# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1934#if defined(MFC_OpenACC)
1935# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1936!$acc enter data create(pres_in, pres_out)
1937# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1938#elif defined(MFC_OpenMP)
1939# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1940!$omp target enter data map(always,alloc:pres_in, pres_out)
1941# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1942#endif
1943# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1944#ifdef MFC_DEBUG
1945# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1946 block
1947# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1948 use iso_fortran_env, only: output_unit
1949# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1950
1951# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1952 print *, 'm_cbc.fpp:297: ', '@:ALLOCATE(Del_in(1:num_dims), Del_out(1:num_dims))'
1953# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1954
1955# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1956 call flush (output_unit)
1957# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1958 end block
1959# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1960#endif
1961# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1962 allocate (del_in(1:num_dims), del_out(1:num_dims))
1963# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1964
1965# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1966
1967# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1968
1969# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1970#if defined(MFC_OpenACC)
1971# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1972!$acc enter data create(Del_in, Del_out)
1973# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1974#elif defined(MFC_OpenMP)
1975# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1976!$omp target enter data map(always,alloc:Del_in, Del_out)
1977# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1978#endif
1979# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1980#ifdef MFC_DEBUG
1981# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1982 block
1983# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1984 use iso_fortran_env, only: output_unit
1985# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1986
1987# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1988 print *, 'm_cbc.fpp:298: ', '@:ALLOCATE(vel_in(1:num_dims, 1:num_dims), vel_out(1:num_dims, 1:num_dims))'
1989# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1990
1991# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1992 call flush (output_unit)
1993# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1994 end block
1995# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1996#endif
1997# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1998 allocate (vel_in(1:num_dims, 1:num_dims), vel_out(1:num_dims, 1:num_dims))
1999# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2000
2001# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2002
2003# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2004
2005# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2006#if defined(MFC_OpenACC)
2007# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2008!$acc enter data create(vel_in, vel_out)
2009# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2010#elif defined(MFC_OpenMP)
2011# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2012!$omp target enter data map(always,alloc:vel_in, vel_out)
2013# 298 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2014#endif
2015# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2016#ifdef MFC_DEBUG
2017# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2018 block
2019# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2020 use iso_fortran_env, only: output_unit
2021# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2022
2023# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2024 print *, 'm_cbc.fpp:299: ', '@:ALLOCATE(alpha_rho_in(1:num_fluids, 1:num_dims), alpha_in(1:num_fluids, 1:num_dims))'
2025# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2026
2027# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2028 call flush (output_unit)
2029# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2030 end block
2031# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2032#endif
2033# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2034 allocate (alpha_rho_in(1:num_fluids, 1:num_dims), alpha_in(1:num_fluids, 1:num_dims))
2035# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2036
2037# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2038
2039# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2040
2041# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2042#if defined(MFC_OpenACC)
2043# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2044!$acc enter data create(alpha_rho_in, alpha_in)
2045# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2046#elif defined(MFC_OpenMP)
2047# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2048!$omp target enter data map(always,alloc:alpha_rho_in, alpha_in)
2049# 299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2050#endif
2051# 300 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2052
2053 ! Assign and update GRCBC inputs
2054# 303 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2055 if (1 <= num_dims) then
2056# 304 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2057 vel_in(1, 1) = bc_x%vel_in(1)
2058# 305 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2059 vel_out(1, 1) = bc_x%vel_out(1)
2060# 306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2061 if (n > 0) then
2062 vel_in(1, 2) = bc_x%vel_in(2)
2063# 308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2064 vel_out(1, 2) = bc_x%vel_out(2)
2065# 309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2066 if (p > 0) then
2067 vel_in(1, 3) = bc_x%vel_in(3)
2068# 311 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2069 vel_out(1, 3) = bc_x%vel_out(3)
2070# 312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2071 end if
2072 end if
2073 del_in(1) = maxval(dx)
2074# 315 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2075 del_out(1) = maxval(dx)
2076# 316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2077 pres_in(1) = bc_x%pres_in
2078# 317 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2079 pres_out(1) = bc_x%pres_out
2080# 318 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2081 do i = 1, num_fluids
2082 alpha_rho_in(i, 1) = bc_x%alpha_rho_in(i)
2083# 320 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2084 alpha_in(i, 1) = bc_x%alpha_in(i)
2085# 321 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2086 end do
2087 end if
2088# 303 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2089 if (2 <= num_dims) then
2090# 304 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2091 vel_in(2, 1) = bc_y%vel_in(1)
2092# 305 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2093 vel_out(2, 1) = bc_y%vel_out(1)
2094# 306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2095 if (n > 0) then
2096 vel_in(2, 2) = bc_y%vel_in(2)
2097# 308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2098 vel_out(2, 2) = bc_y%vel_out(2)
2099# 309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2100 if (p > 0) then
2101 vel_in(2, 3) = bc_y%vel_in(3)
2102# 311 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2103 vel_out(2, 3) = bc_y%vel_out(3)
2104# 312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2105 end if
2106 end if
2107 del_in(2) = maxval(dy)
2108# 315 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2109 del_out(2) = maxval(dy)
2110# 316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2111 pres_in(2) = bc_y%pres_in
2112# 317 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2113 pres_out(2) = bc_y%pres_out
2114# 318 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2115 do i = 1, num_fluids
2116 alpha_rho_in(i, 2) = bc_y%alpha_rho_in(i)
2117# 320 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2118 alpha_in(i, 2) = bc_y%alpha_in(i)
2119# 321 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2120 end do
2121 end if
2122# 303 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2123 if (3 <= num_dims) then
2124# 304 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2125 vel_in(3, 1) = bc_z%vel_in(1)
2126# 305 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2127 vel_out(3, 1) = bc_z%vel_out(1)
2128# 306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2129 if (n > 0) then
2130 vel_in(3, 2) = bc_z%vel_in(2)
2131# 308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2132 vel_out(3, 2) = bc_z%vel_out(2)
2133# 309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2134 if (p > 0) then
2135 vel_in(3, 3) = bc_z%vel_in(3)
2136# 311 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2137 vel_out(3, 3) = bc_z%vel_out(3)
2138# 312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2139 end if
2140 end if
2141 del_in(3) = maxval(dz)
2142# 315 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2143 del_out(3) = maxval(dz)
2144# 316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2145 pres_in(3) = bc_z%pres_in
2146# 317 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2147 pres_out(3) = bc_z%pres_out
2148# 318 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2149 do i = 1, num_fluids
2150 alpha_rho_in(i, 3) = bc_z%alpha_rho_in(i)
2151# 320 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2152 alpha_in(i, 3) = bc_z%alpha_in(i)
2153# 321 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2154 end do
2155 end if
2156# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2157
2158# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2159#if defined(MFC_OpenACC)
2160# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2161!$acc update device(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
2162# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2163#elif defined(MFC_OpenMP)
2164# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2165!$omp target update to(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
2166# 324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2167#endif
2168# 325 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2169
2170 end subroutine s_initialize_cbc_module
2171
2172 !> Compute CBC coefficients
2173 subroutine s_compute_cbc_coefficients(cbc_dir_in, cbc_loc_in)
2174
2175 ! Compute grid-dependent CBC coefficients for given direction and location
2176
2177 ! CBC coordinate direction and location
2178 integer, intent(in) :: cbc_dir_in, cbc_loc_in
2179
2180 ! Cell-boundary locations in the s-direction
2181 real(wp), dimension(0:buff_size + 1) :: s_cb
2182
2183 ! Generic loop iterator
2184 integer :: i
2185
2186 ! Associating CBC coefficients pointers
2187
2188 call s_associate_cbc_coefficients_pointers(cbc_dir_in, cbc_loc_in)
2189
2190 ! Determining the cell-boundary locations in the s-direction
2191 s_cb(0) = 0._wp
2192
2193 do i = 0, buff_size
2194 s_cb(i + 1) = s_cb(i) + ds(i)
2195 end do
2196
2197 ! Computing CBC1 Coefficients
2198# 355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2199 if (cbc_dir_in == 1 .and. recon_type == recon_type_weno) then
2200# 356 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2201 if (weno_order == 1) then
2202 fd_coef_x(:,cbc_loc_in) = 0._wp
2203# 358 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2204 fd_coef_x(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2205# 359 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2206 fd_coef_x(1, cbc_loc_in) = -fd_coef_x(0, cbc_loc_in)
2207# 360 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2208
2209 ! Computing CBC2 Coefficients
2210 else if (weno_order == 3) then
2211 fd_coef_x(:,cbc_loc_in) = 0._wp
2212# 364 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2213 fd_coef_x(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2214# 365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2215 fd_coef_x(1, cbc_loc_in) = -4._wp*fd_coef_x(0, cbc_loc_in)/3._wp
2216# 366 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2217 fd_coef_x(2, cbc_loc_in) = fd_coef_x(0, cbc_loc_in)/3._wp
2218# 367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2219
2220 pi_coef_x(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2221# 369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2222
2223 ! Computing CBC4 Coefficients
2224 else
2225 fd_coef_x(:,cbc_loc_in) = 0._wp
2226# 373 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2227 fd_coef_x(0, &
2228# 374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2229 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2230 & - 3._wp*ds(4))
2231 fd_coef_x(1, cbc_loc_in) = -48._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2232# 377 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2233 fd_coef_x(2, cbc_loc_in) = 36._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2234# 378 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2235 fd_coef_x(3, cbc_loc_in) = -16._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2236# 379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2237 fd_coef_x(4, cbc_loc_in) = 3._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2238# 380 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2239
2240 pi_coef_x(0, 0, &
2241# 382 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2242 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2243 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2244 pi_coef_x(0, 1, &
2245# 385 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2246 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2247 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2248 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2249 pi_coef_x(0, 2, &
2250# 389 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2251 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2252 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2253 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2254 pi_coef_x(1, 0, &
2255# 393 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2256 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2257 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2258 pi_coef_x(1, 1, &
2259# 396 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2260 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2261 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2262 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2263 pi_coef_x(1, 2, &
2264# 400 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2265 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2266 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2267 end if
2268 end if
2269# 355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2270 if (cbc_dir_in == 2 .and. recon_type == recon_type_weno) then
2271# 356 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2272 if (weno_order == 1) then
2273 fd_coef_y(:,cbc_loc_in) = 0._wp
2274# 358 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2275 fd_coef_y(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2276# 359 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2277 fd_coef_y(1, cbc_loc_in) = -fd_coef_y(0, cbc_loc_in)
2278# 360 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2279
2280 ! Computing CBC2 Coefficients
2281 else if (weno_order == 3) then
2282 fd_coef_y(:,cbc_loc_in) = 0._wp
2283# 364 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2284 fd_coef_y(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2285# 365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2286 fd_coef_y(1, cbc_loc_in) = -4._wp*fd_coef_y(0, cbc_loc_in)/3._wp
2287# 366 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2288 fd_coef_y(2, cbc_loc_in) = fd_coef_y(0, cbc_loc_in)/3._wp
2289# 367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2290
2291 pi_coef_y(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2292# 369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2293
2294 ! Computing CBC4 Coefficients
2295 else
2296 fd_coef_y(:,cbc_loc_in) = 0._wp
2297# 373 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2298 fd_coef_y(0, &
2299# 374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2300 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2301 & - 3._wp*ds(4))
2302 fd_coef_y(1, cbc_loc_in) = -48._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2303# 377 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2304 fd_coef_y(2, cbc_loc_in) = 36._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2305# 378 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2306 fd_coef_y(3, cbc_loc_in) = -16._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2307# 379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2308 fd_coef_y(4, cbc_loc_in) = 3._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2309# 380 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2310
2311 pi_coef_y(0, 0, &
2312# 382 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2313 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2314 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2315 pi_coef_y(0, 1, &
2316# 385 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2317 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2318 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2319 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2320 pi_coef_y(0, 2, &
2321# 389 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2322 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2323 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2324 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2325 pi_coef_y(1, 0, &
2326# 393 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2327 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2328 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2329 pi_coef_y(1, 1, &
2330# 396 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2331 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2332 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2333 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2334 pi_coef_y(1, 2, &
2335# 400 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2336 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2337 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2338 end if
2339 end if
2340# 355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2341 if (cbc_dir_in == 3 .and. recon_type == recon_type_weno) then
2342# 356 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2343 if (weno_order == 1) then
2344 fd_coef_z(:,cbc_loc_in) = 0._wp
2345# 358 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2346 fd_coef_z(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2347# 359 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2348 fd_coef_z(1, cbc_loc_in) = -fd_coef_z(0, cbc_loc_in)
2349# 360 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2350
2351 ! Computing CBC2 Coefficients
2352 else if (weno_order == 3) then
2353 fd_coef_z(:,cbc_loc_in) = 0._wp
2354# 364 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2355 fd_coef_z(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2356# 365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2357 fd_coef_z(1, cbc_loc_in) = -4._wp*fd_coef_z(0, cbc_loc_in)/3._wp
2358# 366 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2359 fd_coef_z(2, cbc_loc_in) = fd_coef_z(0, cbc_loc_in)/3._wp
2360# 367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2361
2362 pi_coef_z(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2363# 369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2364
2365 ! Computing CBC4 Coefficients
2366 else
2367 fd_coef_z(:,cbc_loc_in) = 0._wp
2368# 373 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2369 fd_coef_z(0, &
2370# 374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2371 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2372 & - 3._wp*ds(4))
2373 fd_coef_z(1, cbc_loc_in) = -48._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2374# 377 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2375 fd_coef_z(2, cbc_loc_in) = 36._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2376# 378 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2377 fd_coef_z(3, cbc_loc_in) = -16._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2378# 379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2379 fd_coef_z(4, cbc_loc_in) = 3._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2380# 380 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2381
2382 pi_coef_z(0, 0, &
2383# 382 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2384 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2385 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2386 pi_coef_z(0, 1, &
2387# 385 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2388 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2389 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2390 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2391 pi_coef_z(0, 2, &
2392# 389 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2393 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2394 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2395 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2396 pi_coef_z(1, 0, &
2397# 393 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2398 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2399 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2400 pi_coef_z(1, 1, &
2401# 396 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2402 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2403 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2404 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2405 pi_coef_z(1, 2, &
2406# 400 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2407 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2408 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2409 end if
2410 end if
2411# 405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2412
2413 ! END: Computing CBC4 Coefficients
2414
2415 ! Nullifying CBC coefficients
2416
2417 end subroutine s_compute_cbc_coefficients
2418
2419 !> Associate CBC finite-difference and polynomial-interpolation coefficients based on direction and boundary location
2420 subroutine s_associate_cbc_coefficients_pointers(cbc_dir_in, cbc_loc_in)
2421
2422 integer, intent(in) :: cbc_dir_in, cbc_loc_in
2423 integer :: i !< Generic loop iterator
2424 ! Associating CBC Coefficients in x-direction
2425
2426 if (cbc_dir_in == 1) then
2427 ! fd_coef => fd_coef_x; if (weno_order > 1) pi_coef => pi_coef_x
2428
2429 if (cbc_loc_in == -1) then
2430 do i = 0, buff_size
2431 ds(i) = dx(i)
2432 end do
2433 else
2434 do i = 0, buff_size
2435 ds(i) = dx(m - i)
2436 end do
2437 end if
2438
2439 ! Associating CBC Coefficients in y-direction
2440 else if (cbc_dir_in == 2) then
2441 ! fd_coef => fd_coef_y; if (weno_order > 1) pi_coef => pi_coef_y
2442
2443 if (cbc_loc_in == -1) then
2444 do i = 0, buff_size
2445 ds(i) = dy(i)
2446 end do
2447 else
2448 do i = 0, buff_size
2449 ds(i) = dy(n - i)
2450 end do
2451 end if
2452
2453 ! Associating CBC Coefficients in z-direction
2454 else
2455 ! fd_coef => fd_coef_z; if (weno_order > 1) pi_coef => pi_coef_z
2456
2457 if (cbc_loc_in == -1) then
2458 do i = 0, buff_size
2459 ds(i) = dz(i)
2460 end do
2461 else
2462 do i = 0, buff_size
2463 ds(i) = dz(p - i)
2464 end do
2465 end if
2466 end if
2467
2468
2469# 461 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2470#if defined(MFC_OpenACC)
2471# 461 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2472!$acc update device(ds)
2473# 461 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2474#elif defined(MFC_OpenMP)
2475# 461 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2476!$omp target update to(ds)
2477# 461 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2478#endif
2479# 462 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2480
2482
2483 !> Apply characteristic boundary conditions by modifying fluxes near domain boundaries
2484 subroutine s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
2485
2486 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
2487 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf
2488 integer, intent(in) :: cbc_dir_norm, cbc_loc_norm
2489 type(int_bounds_info), intent(in) :: ix, iy, iz
2490 real(wp) :: drho_dt
2491 real(wp) :: dpres_dt
2492 real(wp) :: dgamma_dt
2493 real(wp) :: dpi_inf_dt
2494 real(wp) :: dqv_dt
2495 real(wp) :: dpres_ds
2496 real(wp) :: ramp !< inflow ramp factor; unity unless a ramp is set
2497
2498# 483 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2499 real(wp), dimension(sys_size) :: l
2500# 485 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2501# 493 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2502 real(wp), dimension(num_fluids) :: alpha_rho, dalpha_rho_ds, mf
2503 real(wp), dimension(num_vels) :: vel, dvel_ds
2504 real(wp), dimension(num_fluids) :: adv_local, dadv_ds
2505 real(wp), dimension(num_fluids) :: dadv_dt
2506 real(wp), dimension(num_dims) :: dvel_dt
2507 real(wp), dimension(num_fluids) :: dalpha_rho_dt
2508# 500 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2509 real(wp), dimension(1) :: ys, h_k, dys_dt, dys_ds, xs, gamma_i, cp_i
2510# 501 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2511 real(wp), dimension(2) :: re_cbc
2512 real(wp), dimension(3) :: lambda
2513 real(wp) :: rho !< Cell averaged density
2514 real(wp) :: pres !< Cell averaged pressure
2515 real(wp) :: e !< Cell averaged energy
2516 real(wp) :: gamma !< Cell averaged specific heat ratio
2517 real(wp) :: pi_inf !< Cell averaged liquid stiffness
2518 real(wp) :: qv !< Cell averaged fluid reference energy
2519 real(wp) :: c
2520 real(wp) :: ma
2521 real(wp) :: t, sum_enthalpies
2522 real(wp) :: cv, cp, e_mix, mw, r_gas
2523 real(wp) :: vel_k_sum, vel_dv_dt_sum
2524 integer :: i, j, k, r !< Generic loop iterators
2525 ! Reshaping of inputted data and association of the FD and PI coefficients, or CBC coefficients, respectively, hinging on
2526 ! selected CBC coordinate direction
2527
2528 cbc_dir = cbc_dir_norm
2529 cbc_loc = cbc_loc_norm
2530
2531
2532# 521 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2533#if defined(MFC_OpenACC)
2534# 521 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2535!$acc update device(cbc_dir, cbc_loc)
2536# 521 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2537#elif defined(MFC_OpenMP)
2538# 521 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2539!$omp target update to(cbc_dir, cbc_loc)
2540# 521 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2541#endif
2542# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2543
2544 call s_initialize_cbc(q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
2545
2547
2548# 528 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2549 if (cbc_dir == 1 .and. recon_type == recon_type_weno) then
2550# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2551 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
2552 if (weno_order == 3) then
2553 call s_convert_primitive_to_flux_variables(q_prim_rsx_vf, f_rsx_vf, f_src_rsx_vf, is1, is2, &
2554# 532 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2555 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2556
2557
2558# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2559
2560# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2561#if defined(MFC_OpenACC)
2562# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2563!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
2564# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2565#elif defined(MFC_OpenMP)
2566# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2567
2568# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2569
2570# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2571
2572# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2573!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
2574# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2575#endif
2576# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2577 do i = 1, flux_cbc_index
2578 do r = is3%beg, is3%end
2579 do k = is2%beg, is2%end
2580 flux_rsx_vf_l(0, k, r, i) = f_rsx_vf(0, k, r, i) + pi_coef_x(0, 0, &
2581# 539 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2582 & cbc_loc)*(f_rsx_vf(1, k, r, i) - f_rsx_vf(0, k, r, i))
2583# 540 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2584 end do
2585 end do
2586 end do
2587
2588# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2589#if defined(MFC_OpenACC)
2590# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2591!$acc end parallel loop
2592# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2593#elif defined(MFC_OpenMP)
2594# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2595
2596# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2597!$omp end target teams loop
2598# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2599#endif
2600# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2601
2602
2603# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2604
2605# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2606#if defined(MFC_OpenACC)
2607# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2608!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
2609# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2610#elif defined(MFC_OpenMP)
2611# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2612
2613# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2614
2615# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2616
2617# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2618!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
2619# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2620#endif
2621# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2622 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2623 do r = is3%beg, is3%end
2624 do k = is2%beg, is2%end
2625 flux_src_rsx_vf_l(0, k, r, i) = f_src_rsx_vf(0, k, r, i) + (f_src_rsx_vf(1, k, &
2626# 550 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2627 & r, i) - f_src_rsx_vf(0, k, r, i))*pi_coef_x(0, 0, cbc_loc)
2628# 551 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2629 end do
2630 end do
2631 end do
2632
2633# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2634#if defined(MFC_OpenACC)
2635# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2636!$acc end parallel loop
2637# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2638#elif defined(MFC_OpenMP)
2639# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2640
2641# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2642!$omp end target teams loop
2643# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2644#endif
2645# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2646 end if
2647
2648 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
2649 if (weno_order == 5) then
2650 call s_convert_primitive_to_flux_variables(q_prim_rsx_vf, f_rsx_vf, f_src_rsx_vf, is1, is2, &
2651# 560 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2652 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2653
2654
2655# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2656
2657# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2658#if defined(MFC_OpenACC)
2659# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2660!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
2661# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2662#elif defined(MFC_OpenMP)
2663# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2664
2665# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2666
2667# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2668
2669# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2670!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
2671# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2672#endif
2673# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2674 do i = 1, flux_cbc_index
2675 do j = 0, 1
2676 do r = is3%beg, is3%end
2677 do k = is2%beg, is2%end
2678 flux_rsx_vf_l(j, k, r, i) = f_rsx_vf(j, k, r, i) + pi_coef_x(j, 0, &
2679# 568 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2680 & cbc_loc)*(f_rsx_vf(3, k, r, i) - f_rsx_vf(2, k, r, &
2681# 569 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2682 & i)) + pi_coef_x(j, 1, cbc_loc)*(f_rsx_vf(2, k, r, &
2683# 570 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2684 & i) - f_rsx_vf(1, k, r, i)) + pi_coef_x(j, 2, &
2685# 571 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2686 & cbc_loc)*(f_rsx_vf(1, k, r, i) - f_rsx_vf(0, k, r, i))
2687# 572 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2688 end do
2689 end do
2690 end do
2691 end do
2692
2693# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2694#if defined(MFC_OpenACC)
2695# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2696!$acc end parallel loop
2697# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2698#elif defined(MFC_OpenMP)
2699# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2700
2701# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2702!$omp end target teams loop
2703# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2704#endif
2705# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2706
2707
2708# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2709
2710# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2711#if defined(MFC_OpenACC)
2712# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2713!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
2714# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2715#elif defined(MFC_OpenMP)
2716# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2717
2718# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2719
2720# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2721
2722# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2723!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
2724# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2725#endif
2726# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2727 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2728 do j = 0, 1
2729 do r = is3%beg, is3%end
2730 do k = is2%beg, is2%end
2731 flux_src_rsx_vf_l(j, k, r, i) = f_src_rsx_vf(j, k, r, i) + (f_src_rsx_vf(3, &
2732# 584 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2733 & k, r, i) - f_src_rsx_vf(2, k, r, i))*pi_coef_x(j, 0, &
2734# 585 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2735 & cbc_loc) + (f_src_rsx_vf(2, k, r, i) - f_src_rsx_vf(1, &
2736# 586 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2737 & k, r, i))*pi_coef_x(j, 1, cbc_loc) + (f_src_rsx_vf(1, &
2738# 587 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2739 & k, r, i) - f_src_rsx_vf(0, k, r, i))*pi_coef_x(j, 2, &
2740# 588 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2741 & cbc_loc)
2742 end do
2743 end do
2744 end do
2745 end do
2746
2747# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2748#if defined(MFC_OpenACC)
2749# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2750!$acc end parallel loop
2751# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2752#elif defined(MFC_OpenMP)
2753# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2754
2755# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2756!$omp end target teams loop
2757# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2758#endif
2759# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2760 end if
2761
2762 ! FD2 or FD4 of RHS at j = 0
2763
2764# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2765
2766# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2767#if defined(MFC_OpenACC)
2768# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2769!$acc parallel loop collapse(2) gang vector default(present) private(r, k, alpha_rho, vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, &
2770# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2771!$acc& Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
2772# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2773!$acc& vel_dv_dt_sum, i, j, ramp) copyin(dir_idx)
2774# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2775#elif defined(MFC_OpenMP)
2776# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2777
2778# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2779
2780# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2781
2782# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2783!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(2) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(r, k, alpha_rho, &
2784# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2785!$omp& vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, &
2786# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2787!$omp& dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, vel_dv_dt_sum, i, j, ramp) map(to:dir_idx)
2788# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2789#endif
2790# 602 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2791 do r = is3%beg, is3%end
2792 do k = is2%beg, is2%end
2793 ! Ramp factor for a smoothly starting inflow, evaluated here from mytime rather than
2794 ! computed on the host and copied every Runge-Kutta stage. Unity unless a ramp is set.
2795 ramp = f_vel_ramp(bc_x%vel_in_ramp, bc_x%vel_in_t0, bc_x%vel_in_frac0, mytime)
2796# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2797
2798 ! Transferring the Primitive Variables
2799
2800# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2801#if defined(MFC_OpenACC)
2802# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2803!$acc loop seq
2804# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2805#elif defined(MFC_OpenMP)
2806# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2807
2808# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2809#endif
2810# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2811 do i = 1, eqn_idx%cont%end
2812 alpha_rho(i) = q_prim_rsx_vf(0, k, r, i)
2813# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2814 end do
2815
2816
2817# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2818#if defined(MFC_OpenACC)
2819# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2820!$acc loop seq
2821# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2822#elif defined(MFC_OpenMP)
2823# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2824
2825# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2826#endif
2827# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2828 do i = 1, num_dims
2829 vel(i) = q_prim_rsx_vf(0, k, r, eqn_idx%cont%end + i)
2830# 617 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2831 end do
2832
2833 vel_k_sum = 0._wp
2834
2835# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2836#if defined(MFC_OpenACC)
2837# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2838!$acc loop seq
2839# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2840#elif defined(MFC_OpenMP)
2841# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2842
2843# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2844#endif
2845# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2846 do i = 1, num_dims
2847 vel_k_sum = vel_k_sum + vel(i)**2._wp
2848 end do
2849
2850 pres = q_prim_rsx_vf(0, k, r, eqn_idx%E)
2851# 626 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2852
2853
2854# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2855#if defined(MFC_OpenACC)
2856# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2857!$acc loop seq
2858# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2859#elif defined(MFC_OpenMP)
2860# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2861
2862# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2863#endif
2864# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2865 do i = 1, eqn_idx%adv%end - eqn_idx%E
2866 adv_local(i) = q_prim_rsx_vf(0, k, r, eqn_idx%E + i)
2867# 630 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2868 end do
2869
2870 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
2871
2872
2873# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2874#if defined(MFC_OpenACC)
2875# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2876!$acc loop seq
2877# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2878#elif defined(MFC_OpenMP)
2879# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2880
2881# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2882#endif
2883# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2884 do i = 1, eqn_idx%cont%end
2885 mf(i) = alpha_rho(i)/rho
2886 end do
2887
2888 if (chemistry) then
2889
2890# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2891#if defined(MFC_OpenACC)
2892# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2893!$acc loop seq
2894# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2895#elif defined(MFC_OpenMP)
2896# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2897
2898# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2899#endif
2900# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2901 do i = eqn_idx%species%beg, eqn_idx%species%end
2902 ys(i - eqn_idx%species%beg + 1) = q_prim_rsx_vf(0, k, r, i)
2903# 643 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2904 end do
2905
2906 call get_mixture_molecular_weight(ys, mw)
2907 r_gas = gas_constant/mw
2908 t = pres/rho/r_gas
2909 call get_mixture_caloric_state(t, ys, cp_i, cp, cv, e_mix)
2910 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
2911 if (chem_params%gamma_method == 1) then
2912 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
2913 call get_mole_fractions(mw, ys, xs)
2914 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
2915 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
2916 else if (chem_params%gamma_method == 2) then
2917 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
2918 gamma = 1.0_wp/(cp/cv - 1.0_wp)
2919 end if
2920 end if
2921
2922 ! Compute mixture sound speed
2923 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
2924
2925 ! First-Order Spatial Derivatives of Primitive Variables
2926
2927
2928# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2929#if defined(MFC_OpenACC)
2930# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2931!$acc loop seq
2932# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2933#elif defined(MFC_OpenMP)
2934# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2935
2936# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2937#endif
2938# 667 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2939 do i = 1, eqn_idx%cont%end
2940 dalpha_rho_ds(i) = 0._wp
2941 end do
2942
2943
2944# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2945#if defined(MFC_OpenACC)
2946# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2947!$acc loop seq
2948# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2949#elif defined(MFC_OpenMP)
2950# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2951
2952# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2953#endif
2954# 672 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2955 do i = 1, num_dims
2956 dvel_ds(i) = 0._wp
2957 end do
2958
2959 dpres_ds = 0._wp
2960
2961# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2962#if defined(MFC_OpenACC)
2963# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2964!$acc loop seq
2965# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2966#elif defined(MFC_OpenMP)
2967# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2968
2969# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2970#endif
2971# 678 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2972 do i = 1, eqn_idx%adv%end - eqn_idx%E
2973 dadv_ds(i) = 0._wp
2974 end do
2975
2976 if (chemistry) then
2977
2978# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2979#if defined(MFC_OpenACC)
2980# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2981!$acc loop seq
2982# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2983#elif defined(MFC_OpenMP)
2984# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2985
2986# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2987#endif
2988# 684 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2989 do i = 1, num_species
2990 dys_ds(i) = 0._wp
2991 end do
2992 end if
2993
2994
2995# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2996#if defined(MFC_OpenACC)
2997# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2998!$acc loop seq
2999# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3000#elif defined(MFC_OpenMP)
3001# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3002
3003# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3004#endif
3005# 690 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3006 do j = 0, buff_size
3007
3008# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3009#if defined(MFC_OpenACC)
3010# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3011!$acc loop seq
3012# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3013#elif defined(MFC_OpenMP)
3014# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3015
3016# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3017#endif
3018# 692 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3019 do i = 1, eqn_idx%cont%end
3020 dalpha_rho_ds(i) = q_prim_rsx_vf(j, k, r, i)*fd_coef_x(j, cbc_loc) + dalpha_rho_ds(i)
3021# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3022 end do
3023
3024# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3025#if defined(MFC_OpenACC)
3026# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3027!$acc loop seq
3028# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3029#elif defined(MFC_OpenMP)
3030# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3031
3032# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3033#endif
3034# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3035 do i = 1, num_dims
3036 dvel_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_x(j, &
3037# 698 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3038 & cbc_loc) + dvel_ds(i)
3039 end do
3040
3041 dpres_ds = q_prim_rsx_vf(j, k, r, eqn_idx%E)*fd_coef_x(j, cbc_loc) + dpres_ds
3042# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3043
3044# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3045#if defined(MFC_OpenACC)
3046# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3047!$acc loop seq
3048# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3049#elif defined(MFC_OpenMP)
3050# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3051
3052# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3053#endif
3054# 703 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3055 do i = 1, eqn_idx%adv%end - eqn_idx%E
3056 dadv_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%E + i)*fd_coef_x(j, cbc_loc) + dadv_ds(i)
3057# 705 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3058 end do
3059
3060 if (chemistry) then
3061
3062# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3063#if defined(MFC_OpenACC)
3064# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3065!$acc loop seq
3066# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3067#elif defined(MFC_OpenMP)
3068# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3069
3070# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3071#endif
3072# 709 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3073 do i = 1, num_species
3074 dys_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_x(j, &
3075# 711 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3076 & cbc_loc) + dys_ds(i)
3077 end do
3078 end if
3079 end do
3080
3081 ! First-Order Temporal Derivatives of Primitive Variables
3082 lambda(1) = vel(dir_idx(1)) - c
3083 lambda(2) = vel(dir_idx(1))
3084 lambda(3) = vel(dir_idx(1)) + c
3085
3086 ma = vel(dir_idx(1))/c
3087
3088 if ((cbc_loc == -1 .and. bc_x%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
3089# 724 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3090 & .and. bc_x%end == bc_char_slip_wall)) then
3091# 725 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3092 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
3093 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
3094# 727 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3095 & .and. bc_x%end == bc_char_nr_sub_buffer)) then
3096# 728 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3097 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3098 & dvel_ds, dadv_ds, dys_ds)
3099 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
3100# 731 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3101 & .and. bc_x%end == bc_char_nr_sub_inflow)) then
3102# 732 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3103 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
3104 ! Add GRCBC for Subsonic Inflow
3105 if (bc_x%grcbc_in) then
3106# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3107
3108# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3109#if defined(MFC_OpenACC)
3110# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3111!$acc loop seq
3112# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3113#elif defined(MFC_OpenMP)
3114# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3115
3116# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3117#endif
3118# 736 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3119 do i = 2, eqn_idx%mom%beg
3120 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
3121 & 1))/del_in(1) - c*ma*(pres - pres_in(1))/del_in(1)
3122# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3123 end do
3124 if (n > 0) then
3125 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*vel_in(1, &
3126# 742 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3127 & dir_idx(2)))/del_in(1)
3128# 743 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3129 if (p > 0) then
3130 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*vel_in(1, &
3131# 745 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3132 & dir_idx(3)))/del_in(1)
3133# 746 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3134 end if
3135 end if
3136
3137# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3138#if defined(MFC_OpenACC)
3139# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3140!$acc loop seq
3141# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3142#elif defined(MFC_OpenMP)
3143# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3144
3145# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3146#endif
3147# 749 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3148 do i = eqn_idx%E, eqn_idx%adv%end - 1
3149 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
3150 & 1))/del_in(1)
3151# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3152 end do
3153 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*vel_in(1, &
3154# 754 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3155 & dir_idx(1))*sign(1, &
3156 & cbc_loc))/del_in(1) + c*(1._wp + ma)*(pres - pres_in(1))/del_in(1)
3157# 756 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3158 end if
3159 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
3160# 758 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3161 & .and. bc_x%end == bc_char_nr_sub_outflow)) then
3162# 759 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3163 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3164 & dvel_ds, dadv_ds, dys_ds)
3165 ! Add GRCBC for Subsonic Outflow (Pressure)
3166 if (bc_x%grcbc_out) then
3167# 763 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3168 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(1))/del_out(1)
3169# 764 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3170
3171 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
3172 if (bc_x%grcbc_vel_out) then
3173# 767 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3174 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
3175 & + vel_out(1, dir_idx(1))*sign(1, cbc_loc))/del_out(1)
3176# 769 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3177 end if
3178 end if
3179 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
3180# 772 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3181 & .and. bc_x%end == bc_char_ff_sub_outflow)) then
3182# 773 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3183 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
3184 & dadv_ds)
3185 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
3186# 776 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3187 & .and. bc_x%end == bc_char_cp_sub_outflow)) then
3188# 777 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3189 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3190 & dvel_ds, dadv_ds)
3191 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
3192# 780 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3193 & .and. bc_x%end == bc_char_sup_inflow)) then
3194# 781 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3195 call s_compute_supersonic_inflow_l(l)
3196 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
3197# 783 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3198 & .and. bc_x%end == bc_char_sup_outflow)) then
3199# 784 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3200 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
3201 & dys_ds)
3202 end if
3203
3204 ! Be careful about the cylindrical coordinate!
3205 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
3206 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
3207 else
3208 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
3209 end if
3210
3211
3212# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3213#if defined(MFC_OpenACC)
3214# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3215!$acc loop seq
3216# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3217#elif defined(MFC_OpenMP)
3218# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3219
3220# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3221#endif
3222# 796 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3223 do i = 1, eqn_idx%cont%end
3224 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
3225 end do
3226
3227
3228# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3229#if defined(MFC_OpenACC)
3230# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3231!$acc loop seq
3232# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3233#elif defined(MFC_OpenMP)
3234# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3235
3236# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3237#endif
3238# 801 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3239 do i = 1, num_dims
3240 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
3241 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
3242 end do
3243
3244 vel_dv_dt_sum = 0._wp
3245
3246# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3247#if defined(MFC_OpenACC)
3248# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3249!$acc loop seq
3250# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3251#elif defined(MFC_OpenMP)
3252# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3253
3254# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3255#endif
3256# 808 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3257 do i = 1, num_dims
3258 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3259 end do
3260
3261 if (chemistry) then
3262
3263# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3264#if defined(MFC_OpenACC)
3265# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3266!$acc loop seq
3267# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3268#elif defined(MFC_OpenMP)
3269# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3270
3271# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3272#endif
3273# 814 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3274 do i = 1, num_species
3275 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
3276 end do
3277 end if
3278
3279 ! The treatment of void fraction source is unclear
3280 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
3281
3282# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3283#if defined(MFC_OpenACC)
3284# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3285!$acc loop seq
3286# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3287#elif defined(MFC_OpenMP)
3288# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3289
3290# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3291#endif
3292# 822 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3293 do i = 1, eqn_idx%adv%end - eqn_idx%E
3294 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
3295 end do
3296 else
3297
3298# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3299#if defined(MFC_OpenACC)
3300# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3301!$acc loop seq
3302# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3303#elif defined(MFC_OpenMP)
3304# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3305
3306# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3307#endif
3308# 827 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3309 do i = 1, eqn_idx%adv%end - eqn_idx%E
3310 dadv_dt(i) = -l(eqn_idx%mom%end + i)
3311 end do
3312 end if
3313
3314 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3315
3316 if (model_eqns == model_eqns_gamma_law) then
3317 drho_dt = dalpha_rho_dt(1)
3318 dgamma_dt = dadv_dt(1)
3319# 838 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3320 dpi_inf_dt = dadv_dt(2)
3321# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3322 else
3323 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
3324 & dgamma_dt, dpi_inf_dt, dqv_dt)
3325 end if
3326
3327 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
3328
3329# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3330#if defined(MFC_OpenACC)
3331# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3332!$acc loop seq
3333# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3334#elif defined(MFC_OpenMP)
3335# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3336
3337# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3338#endif
3339# 847 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3340 do i = 1, eqn_idx%cont%end
3341 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
3342# 849 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3343 end do
3344
3345
3346# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3347#if defined(MFC_OpenACC)
3348# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3349!$acc loop seq
3350# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3351#elif defined(MFC_OpenMP)
3352# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3353
3354# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3355#endif
3356# 852 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3357 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3358 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, &
3359# 854 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3360 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3361 end do
3362
3363 if (chemistry) then
3364 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
3365 ! doi:10.1006/jcph.2002.6990
3366 call get_species_enthalpies_rt(t, h_k)
3367 sum_enthalpies = 0._wp
3368
3369# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3370#if defined(MFC_OpenACC)
3371# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3372!$acc loop seq
3373# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3374#elif defined(MFC_OpenMP)
3375# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3376
3377# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3378#endif
3379# 863 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3380 do i = 1, num_species
3381 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3382 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3383 end do
3384 flux_rsx_vf_l(-1, k, r, eqn_idx%E) = flux_rsx_vf_l(0, k, r, &
3385# 868 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3386 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
3387 & /(c*c) + sum_enthalpies)
3388
3389# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3390#if defined(MFC_OpenACC)
3391# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3392!$acc loop seq
3393# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3394#elif defined(MFC_OpenMP)
3395# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3396
3397# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3398#endif
3399# 871 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3400 do i = 1, num_species
3401 flux_rsx_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsx_vf_l(0, k, r, &
3402# 873 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3403 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3404 end do
3405 else
3406 flux_rsx_vf_l(-1, k, r, eqn_idx%E) = flux_rsx_vf_l(0, k, r, &
3407# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3408 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3409 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3410 end if
3411
3412 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
3413 ! must follow the same CBC representation as HLLC.
3414 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
3415
3416# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3417#if defined(MFC_OpenACC)
3418# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3419!$acc loop seq
3420# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3421#elif defined(MFC_OpenMP)
3422# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3423
3424# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3425#endif
3426# 885 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3427 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3428 flux_rsx_vf_l(-1, k, r, i) = 0._wp
3429# 887 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3430 end do
3431
3432
3433# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3434#if defined(MFC_OpenACC)
3435# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3436!$acc loop seq
3437# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3438#elif defined(MFC_OpenMP)
3439# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3440
3441# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3442#endif
3443# 890 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3444 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3445 flux_src_rsx_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
3446# 892 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3447 & vel(dir_idx(1)))*(flux_rsx_vf_l(0, k, r, &
3448# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3449 & i) + vel(dir_idx(1))*flux_src_rsx_vf_l(0, k, r, &
3450# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3451 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
3452 end do
3453 else
3454
3455# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3456#if defined(MFC_OpenACC)
3457# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3458!$acc loop seq
3459# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3460#elif defined(MFC_OpenMP)
3461# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3462
3463# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3464#endif
3465# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3466 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3467 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
3468# 900 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3469 end do
3470
3471
3472# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3473#if defined(MFC_OpenACC)
3474# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3475!$acc loop seq
3476# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3477#elif defined(MFC_OpenMP)
3478# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3479
3480# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3481#endif
3482# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3483 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3484 flux_src_rsx_vf_l(-1, k, r, i) = flux_src_rsx_vf_l(0, k, r, i)
3485# 905 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3486 end do
3487 end if
3488 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
3489 end do
3490 end do
3491
3492# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3493#if defined(MFC_OpenACC)
3494# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3495!$acc end parallel loop
3496# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3497#elif defined(MFC_OpenMP)
3498# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3499
3500# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3501!$omp end target teams loop
3502# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3503#endif
3504# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3505 end if
3506# 528 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3507 if (cbc_dir == 2 .and. recon_type == recon_type_weno) then
3508# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3509 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
3510 if (weno_order == 3) then
3511 call s_convert_primitive_to_flux_variables(q_prim_rsy_vf, f_rsy_vf, f_src_rsy_vf, is1, is2, &
3512# 532 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3513 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3514
3515
3516# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3517
3518# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3519#if defined(MFC_OpenACC)
3520# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3521!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
3522# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3523#elif defined(MFC_OpenMP)
3524# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3525
3526# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3527
3528# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3529
3530# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3531!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
3532# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3533#endif
3534# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3535 do i = 1, flux_cbc_index
3536 do r = is3%beg, is3%end
3537 do k = is2%beg, is2%end
3538 flux_rsy_vf_l(0, k, r, i) = f_rsy_vf(0, k, r, i) + pi_coef_y(0, 0, &
3539# 539 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3540 & cbc_loc)*(f_rsy_vf(1, k, r, i) - f_rsy_vf(0, k, r, i))
3541# 540 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3542 end do
3543 end do
3544 end do
3545
3546# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3547#if defined(MFC_OpenACC)
3548# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3549!$acc end parallel loop
3550# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3551#elif defined(MFC_OpenMP)
3552# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3553
3554# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3555!$omp end target teams loop
3556# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3557#endif
3558# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3559
3560
3561# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3562
3563# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3564#if defined(MFC_OpenACC)
3565# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3566!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
3567# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3568#elif defined(MFC_OpenMP)
3569# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3570
3571# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3572
3573# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3574
3575# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3576!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
3577# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3578#endif
3579# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3580 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3581 do r = is3%beg, is3%end
3582 do k = is2%beg, is2%end
3583 flux_src_rsy_vf_l(0, k, r, i) = f_src_rsy_vf(0, k, r, i) + (f_src_rsy_vf(1, k, &
3584# 550 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3585 & r, i) - f_src_rsy_vf(0, k, r, i))*pi_coef_y(0, 0, cbc_loc)
3586# 551 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3587 end do
3588 end do
3589 end do
3590
3591# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3592#if defined(MFC_OpenACC)
3593# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3594!$acc end parallel loop
3595# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3596#elif defined(MFC_OpenMP)
3597# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3598
3599# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3600!$omp end target teams loop
3601# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3602#endif
3603# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3604 end if
3605
3606 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
3607 if (weno_order == 5) then
3608 call s_convert_primitive_to_flux_variables(q_prim_rsy_vf, f_rsy_vf, f_src_rsy_vf, is1, is2, &
3609# 560 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3610 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3611
3612
3613# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3614
3615# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3616#if defined(MFC_OpenACC)
3617# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3618!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
3619# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3620#elif defined(MFC_OpenMP)
3621# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3622
3623# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3624
3625# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3626
3627# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3628!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
3629# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3630#endif
3631# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3632 do i = 1, flux_cbc_index
3633 do j = 0, 1
3634 do r = is3%beg, is3%end
3635 do k = is2%beg, is2%end
3636 flux_rsy_vf_l(j, k, r, i) = f_rsy_vf(j, k, r, i) + pi_coef_y(j, 0, &
3637# 568 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3638 & cbc_loc)*(f_rsy_vf(3, k, r, i) - f_rsy_vf(2, k, r, &
3639# 569 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3640 & i)) + pi_coef_y(j, 1, cbc_loc)*(f_rsy_vf(2, k, r, &
3641# 570 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3642 & i) - f_rsy_vf(1, k, r, i)) + pi_coef_y(j, 2, &
3643# 571 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3644 & cbc_loc)*(f_rsy_vf(1, k, r, i) - f_rsy_vf(0, k, r, i))
3645# 572 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3646 end do
3647 end do
3648 end do
3649 end do
3650
3651# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3652#if defined(MFC_OpenACC)
3653# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3654!$acc end parallel loop
3655# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3656#elif defined(MFC_OpenMP)
3657# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3658
3659# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3660!$omp end target teams loop
3661# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3662#endif
3663# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3664
3665
3666# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3667
3668# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3669#if defined(MFC_OpenACC)
3670# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3671!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
3672# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3673#elif defined(MFC_OpenMP)
3674# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3675
3676# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3677
3678# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3679
3680# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3681!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
3682# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3683#endif
3684# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3685 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3686 do j = 0, 1
3687 do r = is3%beg, is3%end
3688 do k = is2%beg, is2%end
3689 flux_src_rsy_vf_l(j, k, r, i) = f_src_rsy_vf(j, k, r, i) + (f_src_rsy_vf(3, &
3690# 584 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3691 & k, r, i) - f_src_rsy_vf(2, k, r, i))*pi_coef_y(j, 0, &
3692# 585 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3693 & cbc_loc) + (f_src_rsy_vf(2, k, r, i) - f_src_rsy_vf(1, &
3694# 586 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3695 & k, r, i))*pi_coef_y(j, 1, cbc_loc) + (f_src_rsy_vf(1, &
3696# 587 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3697 & k, r, i) - f_src_rsy_vf(0, k, r, i))*pi_coef_y(j, 2, &
3698# 588 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3699 & cbc_loc)
3700 end do
3701 end do
3702 end do
3703 end do
3704
3705# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3706#if defined(MFC_OpenACC)
3707# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3708!$acc end parallel loop
3709# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3710#elif defined(MFC_OpenMP)
3711# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3712
3713# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3714!$omp end target teams loop
3715# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3716#endif
3717# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3718 end if
3719
3720 ! FD2 or FD4 of RHS at j = 0
3721
3722# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3723
3724# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3725#if defined(MFC_OpenACC)
3726# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3727!$acc parallel loop collapse(2) gang vector default(present) private(r, k, alpha_rho, vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, &
3728# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3729!$acc& Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
3730# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3731!$acc& vel_dv_dt_sum, i, j, ramp) copyin(dir_idx)
3732# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3733#elif defined(MFC_OpenMP)
3734# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3735
3736# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3737
3738# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3739
3740# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3741!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(2) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(r, k, alpha_rho, &
3742# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3743!$omp& vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, &
3744# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3745!$omp& dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, vel_dv_dt_sum, i, j, ramp) map(to:dir_idx)
3746# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3747#endif
3748# 602 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3749 do r = is3%beg, is3%end
3750 do k = is2%beg, is2%end
3751 ! Ramp factor for a smoothly starting inflow, evaluated here from mytime rather than
3752 ! computed on the host and copied every Runge-Kutta stage. Unity unless a ramp is set.
3753 ramp = f_vel_ramp(bc_y%vel_in_ramp, bc_y%vel_in_t0, bc_y%vel_in_frac0, mytime)
3754# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3755
3756 ! Transferring the Primitive Variables
3757
3758# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3759#if defined(MFC_OpenACC)
3760# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3761!$acc loop seq
3762# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3763#elif defined(MFC_OpenMP)
3764# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3765
3766# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3767#endif
3768# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3769 do i = 1, eqn_idx%cont%end
3770 alpha_rho(i) = q_prim_rsy_vf(0, k, r, i)
3771# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3772 end do
3773
3774
3775# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3776#if defined(MFC_OpenACC)
3777# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3778!$acc loop seq
3779# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3780#elif defined(MFC_OpenMP)
3781# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3782
3783# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3784#endif
3785# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3786 do i = 1, num_dims
3787 vel(i) = q_prim_rsy_vf(0, k, r, eqn_idx%cont%end + i)
3788# 617 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3789 end do
3790
3791 vel_k_sum = 0._wp
3792
3793# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3794#if defined(MFC_OpenACC)
3795# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3796!$acc loop seq
3797# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3798#elif defined(MFC_OpenMP)
3799# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3800
3801# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3802#endif
3803# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3804 do i = 1, num_dims
3805 vel_k_sum = vel_k_sum + vel(i)**2._wp
3806 end do
3807
3808 pres = q_prim_rsy_vf(0, k, r, eqn_idx%E)
3809# 626 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3810
3811
3812# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3813#if defined(MFC_OpenACC)
3814# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3815!$acc loop seq
3816# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3817#elif defined(MFC_OpenMP)
3818# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3819
3820# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3821#endif
3822# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3823 do i = 1, eqn_idx%adv%end - eqn_idx%E
3824 adv_local(i) = q_prim_rsy_vf(0, k, r, eqn_idx%E + i)
3825# 630 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3826 end do
3827
3828 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
3829
3830
3831# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3832#if defined(MFC_OpenACC)
3833# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3834!$acc loop seq
3835# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3836#elif defined(MFC_OpenMP)
3837# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3838
3839# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3840#endif
3841# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3842 do i = 1, eqn_idx%cont%end
3843 mf(i) = alpha_rho(i)/rho
3844 end do
3845
3846 if (chemistry) then
3847
3848# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3849#if defined(MFC_OpenACC)
3850# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3851!$acc loop seq
3852# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3853#elif defined(MFC_OpenMP)
3854# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3855
3856# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3857#endif
3858# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3859 do i = eqn_idx%species%beg, eqn_idx%species%end
3860 ys(i - eqn_idx%species%beg + 1) = q_prim_rsy_vf(0, k, r, i)
3861# 643 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3862 end do
3863
3864 call get_mixture_molecular_weight(ys, mw)
3865 r_gas = gas_constant/mw
3866 t = pres/rho/r_gas
3867 call get_mixture_caloric_state(t, ys, cp_i, cp, cv, e_mix)
3868 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
3869 if (chem_params%gamma_method == 1) then
3870 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
3871 call get_mole_fractions(mw, ys, xs)
3872 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
3873 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
3874 else if (chem_params%gamma_method == 2) then
3875 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
3876 gamma = 1.0_wp/(cp/cv - 1.0_wp)
3877 end if
3878 end if
3879
3880 ! Compute mixture sound speed
3881 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
3882
3883 ! First-Order Spatial Derivatives of Primitive Variables
3884
3885
3886# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3887#if defined(MFC_OpenACC)
3888# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3889!$acc loop seq
3890# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3891#elif defined(MFC_OpenMP)
3892# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3893
3894# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3895#endif
3896# 667 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3897 do i = 1, eqn_idx%cont%end
3898 dalpha_rho_ds(i) = 0._wp
3899 end do
3900
3901
3902# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3903#if defined(MFC_OpenACC)
3904# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3905!$acc loop seq
3906# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3907#elif defined(MFC_OpenMP)
3908# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3909
3910# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3911#endif
3912# 672 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3913 do i = 1, num_dims
3914 dvel_ds(i) = 0._wp
3915 end do
3916
3917 dpres_ds = 0._wp
3918
3919# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3920#if defined(MFC_OpenACC)
3921# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3922!$acc loop seq
3923# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3924#elif defined(MFC_OpenMP)
3925# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3926
3927# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3928#endif
3929# 678 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3930 do i = 1, eqn_idx%adv%end - eqn_idx%E
3931 dadv_ds(i) = 0._wp
3932 end do
3933
3934 if (chemistry) then
3935
3936# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3937#if defined(MFC_OpenACC)
3938# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3939!$acc loop seq
3940# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3941#elif defined(MFC_OpenMP)
3942# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3943
3944# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3945#endif
3946# 684 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3947 do i = 1, num_species
3948 dys_ds(i) = 0._wp
3949 end do
3950 end if
3951
3952
3953# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3954#if defined(MFC_OpenACC)
3955# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3956!$acc loop seq
3957# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3958#elif defined(MFC_OpenMP)
3959# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3960
3961# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3962#endif
3963# 690 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3964 do j = 0, buff_size
3965
3966# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3967#if defined(MFC_OpenACC)
3968# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3969!$acc loop seq
3970# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3971#elif defined(MFC_OpenMP)
3972# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3973
3974# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3975#endif
3976# 692 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3977 do i = 1, eqn_idx%cont%end
3978 dalpha_rho_ds(i) = q_prim_rsy_vf(j, k, r, i)*fd_coef_y(j, cbc_loc) + dalpha_rho_ds(i)
3979# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3980 end do
3981
3982# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3983#if defined(MFC_OpenACC)
3984# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3985!$acc loop seq
3986# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3987#elif defined(MFC_OpenMP)
3988# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3989
3990# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3991#endif
3992# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3993 do i = 1, num_dims
3994 dvel_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_y(j, &
3995# 698 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3996 & cbc_loc) + dvel_ds(i)
3997 end do
3998
3999 dpres_ds = q_prim_rsy_vf(j, k, r, eqn_idx%E)*fd_coef_y(j, cbc_loc) + dpres_ds
4000# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4001
4002# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4003#if defined(MFC_OpenACC)
4004# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4005!$acc loop seq
4006# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4007#elif defined(MFC_OpenMP)
4008# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4009
4010# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4011#endif
4012# 703 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4013 do i = 1, eqn_idx%adv%end - eqn_idx%E
4014 dadv_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%E + i)*fd_coef_y(j, cbc_loc) + dadv_ds(i)
4015# 705 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4016 end do
4017
4018 if (chemistry) then
4019
4020# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4021#if defined(MFC_OpenACC)
4022# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4023!$acc loop seq
4024# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4025#elif defined(MFC_OpenMP)
4026# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4027
4028# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4029#endif
4030# 709 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4031 do i = 1, num_species
4032 dys_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_y(j, &
4033# 711 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4034 & cbc_loc) + dys_ds(i)
4035 end do
4036 end if
4037 end do
4038
4039 ! First-Order Temporal Derivatives of Primitive Variables
4040 lambda(1) = vel(dir_idx(1)) - c
4041 lambda(2) = vel(dir_idx(1))
4042 lambda(3) = vel(dir_idx(1)) + c
4043
4044 ma = vel(dir_idx(1))/c
4045
4046 if ((cbc_loc == -1 .and. bc_y%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
4047# 724 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4048 & .and. bc_y%end == bc_char_slip_wall)) then
4049# 725 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4050 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
4051 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
4052# 727 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4053 & .and. bc_y%end == bc_char_nr_sub_buffer)) then
4054# 728 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4055 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4056 & dvel_ds, dadv_ds, dys_ds)
4057 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
4058# 731 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4059 & .and. bc_y%end == bc_char_nr_sub_inflow)) then
4060# 732 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4061 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
4062 ! Add GRCBC for Subsonic Inflow
4063 if (bc_y%grcbc_in) then
4064# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4065
4066# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4067#if defined(MFC_OpenACC)
4068# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4069!$acc loop seq
4070# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4071#elif defined(MFC_OpenMP)
4072# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4073
4074# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4075#endif
4076# 736 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4077 do i = 2, eqn_idx%mom%beg
4078 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
4079 & 2))/del_in(2) - c*ma*(pres - pres_in(2))/del_in(2)
4080# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4081 end do
4082 if (n > 0) then
4083 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*vel_in(2, &
4084# 742 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4085 & dir_idx(2)))/del_in(2)
4086# 743 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4087 if (p > 0) then
4088 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*vel_in(2, &
4089# 745 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4090 & dir_idx(3)))/del_in(2)
4091# 746 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4092 end if
4093 end if
4094
4095# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4096#if defined(MFC_OpenACC)
4097# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4098!$acc loop seq
4099# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4100#elif defined(MFC_OpenMP)
4101# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4102
4103# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4104#endif
4105# 749 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4106 do i = eqn_idx%E, eqn_idx%adv%end - 1
4107 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
4108 & 2))/del_in(2)
4109# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4110 end do
4111 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*vel_in(2, &
4112# 754 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4113 & dir_idx(1))*sign(1, &
4114 & cbc_loc))/del_in(2) + c*(1._wp + ma)*(pres - pres_in(2))/del_in(2)
4115# 756 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4116 end if
4117 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
4118# 758 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4119 & .and. bc_y%end == bc_char_nr_sub_outflow)) then
4120# 759 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4121 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4122 & dvel_ds, dadv_ds, dys_ds)
4123 ! Add GRCBC for Subsonic Outflow (Pressure)
4124 if (bc_y%grcbc_out) then
4125# 763 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4126 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(2))/del_out(2)
4127# 764 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4128
4129 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
4130 if (bc_y%grcbc_vel_out) then
4131# 767 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4132 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
4133 & + vel_out(2, dir_idx(1))*sign(1, cbc_loc))/del_out(2)
4134# 769 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4135 end if
4136 end if
4137 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
4138# 772 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4139 & .and. bc_y%end == bc_char_ff_sub_outflow)) then
4140# 773 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4141 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
4142 & dadv_ds)
4143 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
4144# 776 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4145 & .and. bc_y%end == bc_char_cp_sub_outflow)) then
4146# 777 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4147 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4148 & dvel_ds, dadv_ds)
4149 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
4150# 780 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4151 & .and. bc_y%end == bc_char_sup_inflow)) then
4152# 781 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4153 call s_compute_supersonic_inflow_l(l)
4154 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
4155# 783 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4156 & .and. bc_y%end == bc_char_sup_outflow)) then
4157# 784 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4158 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
4159 & dys_ds)
4160 end if
4161
4162 ! Be careful about the cylindrical coordinate!
4163 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
4164 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
4165 else
4166 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
4167 end if
4168
4169
4170# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4171#if defined(MFC_OpenACC)
4172# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4173!$acc loop seq
4174# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4175#elif defined(MFC_OpenMP)
4176# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4177
4178# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4179#endif
4180# 796 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4181 do i = 1, eqn_idx%cont%end
4182 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
4183 end do
4184
4185
4186# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4187#if defined(MFC_OpenACC)
4188# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4189!$acc loop seq
4190# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4191#elif defined(MFC_OpenMP)
4192# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4193
4194# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4195#endif
4196# 801 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4197 do i = 1, num_dims
4198 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
4199 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
4200 end do
4201
4202 vel_dv_dt_sum = 0._wp
4203
4204# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4205#if defined(MFC_OpenACC)
4206# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4207!$acc loop seq
4208# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4209#elif defined(MFC_OpenMP)
4210# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4211
4212# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4213#endif
4214# 808 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4215 do i = 1, num_dims
4216 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
4217 end do
4218
4219 if (chemistry) then
4220
4221# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4222#if defined(MFC_OpenACC)
4223# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4224!$acc loop seq
4225# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4226#elif defined(MFC_OpenMP)
4227# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4228
4229# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4230#endif
4231# 814 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4232 do i = 1, num_species
4233 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
4234 end do
4235 end if
4236
4237 ! The treatment of void fraction source is unclear
4238 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
4239
4240# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4241#if defined(MFC_OpenACC)
4242# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4243!$acc loop seq
4244# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4245#elif defined(MFC_OpenMP)
4246# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4247
4248# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4249#endif
4250# 822 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4251 do i = 1, eqn_idx%adv%end - eqn_idx%E
4252 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
4253 end do
4254 else
4255
4256# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4257#if defined(MFC_OpenACC)
4258# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4259!$acc loop seq
4260# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4261#elif defined(MFC_OpenMP)
4262# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4263
4264# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4265#endif
4266# 827 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4267 do i = 1, eqn_idx%adv%end - eqn_idx%E
4268 dadv_dt(i) = -l(eqn_idx%mom%end + i)
4269 end do
4270 end if
4271
4272 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
4273
4274 if (model_eqns == model_eqns_gamma_law) then
4275 drho_dt = dalpha_rho_dt(1)
4276 dgamma_dt = dadv_dt(1)
4277# 838 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4278 dpi_inf_dt = dadv_dt(2)
4279# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4280 else
4281 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
4282 & dgamma_dt, dpi_inf_dt, dqv_dt)
4283 end if
4284
4285 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
4286
4287# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4288#if defined(MFC_OpenACC)
4289# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4290!$acc loop seq
4291# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4292#elif defined(MFC_OpenMP)
4293# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4294
4295# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4296#endif
4297# 847 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4298 do i = 1, eqn_idx%cont%end
4299 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
4300# 849 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4301 end do
4302
4303
4304# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4305#if defined(MFC_OpenACC)
4306# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4307!$acc loop seq
4308# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4309#elif defined(MFC_OpenMP)
4310# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4311
4312# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4313#endif
4314# 852 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4315 do i = eqn_idx%mom%beg, eqn_idx%mom%end
4316 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, &
4317# 854 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4318 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
4319 end do
4320
4321 if (chemistry) then
4322 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
4323 ! doi:10.1006/jcph.2002.6990
4324 call get_species_enthalpies_rt(t, h_k)
4325 sum_enthalpies = 0._wp
4326
4327# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4328#if defined(MFC_OpenACC)
4329# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4330!$acc loop seq
4331# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4332#elif defined(MFC_OpenMP)
4333# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4334
4335# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4336#endif
4337# 863 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4338 do i = 1, num_species
4339 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
4340 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
4341 end do
4342 flux_rsy_vf_l(-1, k, r, eqn_idx%E) = flux_rsy_vf_l(0, k, r, &
4343# 868 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4344 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
4345 & /(c*c) + sum_enthalpies)
4346
4347# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4348#if defined(MFC_OpenACC)
4349# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4350!$acc loop seq
4351# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4352#elif defined(MFC_OpenMP)
4353# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4354
4355# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4356#endif
4357# 871 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4358 do i = 1, num_species
4359 flux_rsy_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsy_vf_l(0, k, r, &
4360# 873 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4361 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4362 end do
4363 else
4364 flux_rsy_vf_l(-1, k, r, eqn_idx%E) = flux_rsy_vf_l(0, k, r, &
4365# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4366 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4367 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4368 end if
4369
4370 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
4371 ! must follow the same CBC representation as HLLC.
4372 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
4373
4374# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4375#if defined(MFC_OpenACC)
4376# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4377!$acc loop seq
4378# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4379#elif defined(MFC_OpenMP)
4380# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4381
4382# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4383#endif
4384# 885 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4385 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4386 flux_rsy_vf_l(-1, k, r, i) = 0._wp
4387# 887 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4388 end do
4389
4390
4391# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4392#if defined(MFC_OpenACC)
4393# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4394!$acc loop seq
4395# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4396#elif defined(MFC_OpenMP)
4397# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4398
4399# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4400#endif
4401# 890 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4402 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4403 flux_src_rsy_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4404# 892 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4405 & vel(dir_idx(1)))*(flux_rsy_vf_l(0, k, r, &
4406# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4407 & i) + vel(dir_idx(1))*flux_src_rsy_vf_l(0, k, r, &
4408# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4409 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
4410 end do
4411 else
4412
4413# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4414#if defined(MFC_OpenACC)
4415# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4416!$acc loop seq
4417# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4418#elif defined(MFC_OpenMP)
4419# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4420
4421# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4422#endif
4423# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4424 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4425 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
4426# 900 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4427 end do
4428
4429
4430# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4431#if defined(MFC_OpenACC)
4432# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4433!$acc loop seq
4434# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4435#elif defined(MFC_OpenMP)
4436# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4437
4438# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4439#endif
4440# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4441 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4442 flux_src_rsy_vf_l(-1, k, r, i) = flux_src_rsy_vf_l(0, k, r, i)
4443# 905 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4444 end do
4445 end if
4446 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
4447 end do
4448 end do
4449
4450# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4451#if defined(MFC_OpenACC)
4452# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4453!$acc end parallel loop
4454# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4455#elif defined(MFC_OpenMP)
4456# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4457
4458# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4459!$omp end target teams loop
4460# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4461#endif
4462# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4463 end if
4464# 528 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4465 if (cbc_dir == 3 .and. recon_type == recon_type_weno) then
4466# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4467 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
4468 if (weno_order == 3) then
4469 call s_convert_primitive_to_flux_variables(q_prim_rsz_vf, f_rsz_vf, f_src_rsz_vf, is1, is2, &
4470# 532 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4471 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4472
4473
4474# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4475
4476# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4477#if defined(MFC_OpenACC)
4478# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4479!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
4480# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4481#elif defined(MFC_OpenMP)
4482# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4483
4484# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4485
4486# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4487
4488# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4489!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
4490# 534 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4491#endif
4492# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4493 do i = 1, flux_cbc_index
4494 do r = is3%beg, is3%end
4495 do k = is2%beg, is2%end
4496 flux_rsz_vf_l(0, k, r, i) = f_rsz_vf(0, k, r, i) + pi_coef_z(0, 0, &
4497# 539 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4498 & cbc_loc)*(f_rsz_vf(1, k, r, i) - f_rsz_vf(0, k, r, i))
4499# 540 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4500 end do
4501 end do
4502 end do
4503
4504# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4505#if defined(MFC_OpenACC)
4506# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4507!$acc end parallel loop
4508# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4509#elif defined(MFC_OpenMP)
4510# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4511
4512# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4513!$omp end target teams loop
4514# 543 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4515#endif
4516# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4517
4518
4519# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4520
4521# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4522#if defined(MFC_OpenACC)
4523# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4524!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
4525# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4526#elif defined(MFC_OpenMP)
4527# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4528
4529# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4530
4531# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4532
4533# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4534!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, r, k)
4535# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4536#endif
4537# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4538 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4539 do r = is3%beg, is3%end
4540 do k = is2%beg, is2%end
4541 flux_src_rsz_vf_l(0, k, r, i) = f_src_rsz_vf(0, k, r, i) + (f_src_rsz_vf(1, k, &
4542# 550 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4543 & r, i) - f_src_rsz_vf(0, k, r, i))*pi_coef_z(0, 0, cbc_loc)
4544# 551 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4545 end do
4546 end do
4547 end do
4548
4549# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4550#if defined(MFC_OpenACC)
4551# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4552!$acc end parallel loop
4553# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4554#elif defined(MFC_OpenMP)
4555# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4556
4557# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4558!$omp end target teams loop
4559# 554 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4560#endif
4561# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4562 end if
4563
4564 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
4565 if (weno_order == 5) then
4566 call s_convert_primitive_to_flux_variables(q_prim_rsz_vf, f_rsz_vf, f_src_rsz_vf, is1, is2, &
4567# 560 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4568 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4569
4570
4571# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4572
4573# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4574#if defined(MFC_OpenACC)
4575# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4576!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
4577# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4578#elif defined(MFC_OpenMP)
4579# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4580
4581# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4582
4583# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4584
4585# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4586!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
4587# 562 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4588#endif
4589# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4590 do i = 1, flux_cbc_index
4591 do j = 0, 1
4592 do r = is3%beg, is3%end
4593 do k = is2%beg, is2%end
4594 flux_rsz_vf_l(j, k, r, i) = f_rsz_vf(j, k, r, i) + pi_coef_z(j, 0, &
4595# 568 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4596 & cbc_loc)*(f_rsz_vf(3, k, r, i) - f_rsz_vf(2, k, r, &
4597# 569 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4598 & i)) + pi_coef_z(j, 1, cbc_loc)*(f_rsz_vf(2, k, r, &
4599# 570 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4600 & i) - f_rsz_vf(1, k, r, i)) + pi_coef_z(j, 2, &
4601# 571 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4602 & cbc_loc)*(f_rsz_vf(1, k, r, i) - f_rsz_vf(0, k, r, i))
4603# 572 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4604 end do
4605 end do
4606 end do
4607 end do
4608
4609# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4610#if defined(MFC_OpenACC)
4611# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4612!$acc end parallel loop
4613# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4614#elif defined(MFC_OpenMP)
4615# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4616
4617# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4618!$omp end target teams loop
4619# 576 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4620#endif
4621# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4622
4623
4624# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4625
4626# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4627#if defined(MFC_OpenACC)
4628# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4629!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
4630# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4631#elif defined(MFC_OpenMP)
4632# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4633
4634# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4635
4636# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4637
4638# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4639!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, r, k)
4640# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4641#endif
4642# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4643 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4644 do j = 0, 1
4645 do r = is3%beg, is3%end
4646 do k = is2%beg, is2%end
4647 flux_src_rsz_vf_l(j, k, r, i) = f_src_rsz_vf(j, k, r, i) + (f_src_rsz_vf(3, &
4648# 584 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4649 & k, r, i) - f_src_rsz_vf(2, k, r, i))*pi_coef_z(j, 0, &
4650# 585 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4651 & cbc_loc) + (f_src_rsz_vf(2, k, r, i) - f_src_rsz_vf(1, &
4652# 586 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4653 & k, r, i))*pi_coef_z(j, 1, cbc_loc) + (f_src_rsz_vf(1, &
4654# 587 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4655 & k, r, i) - f_src_rsz_vf(0, k, r, i))*pi_coef_z(j, 2, &
4656# 588 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4657 & cbc_loc)
4658 end do
4659 end do
4660 end do
4661 end do
4662
4663# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4664#if defined(MFC_OpenACC)
4665# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4666!$acc end parallel loop
4667# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4668#elif defined(MFC_OpenMP)
4669# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4670
4671# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4672!$omp end target teams loop
4673# 593 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4674#endif
4675# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4676 end if
4677
4678 ! FD2 or FD4 of RHS at j = 0
4679
4680# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4681
4682# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4683#if defined(MFC_OpenACC)
4684# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4685!$acc parallel loop collapse(2) gang vector default(present) private(r, k, alpha_rho, vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, &
4686# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4687!$acc& Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
4688# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4689!$acc& vel_dv_dt_sum, i, j, ramp) copyin(dir_idx)
4690# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4691#elif defined(MFC_OpenMP)
4692# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4693
4694# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4695
4696# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4697
4698# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4699!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(2) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(r, k, alpha_rho, &
4700# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4701!$omp& vel, adv_local, mf, dvel_ds, dadv_ds, Re_cbc, dalpha_rho_ds, dpres_ds, dvel_dt, dadv_dt, dalpha_rho_dt, L, lambda, Ys, dYs_dt, dYs_ds, h_k, Cp_i, Gamma_i, Xs, drho_dt, dpres_dt, dpi_inf_dt, &
4702# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4703!$omp& dqv_dt, dgamma_dt, rho, pres, E, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, vel_dv_dt_sum, i, j, ramp) map(to:dir_idx)
4704# 597 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4705#endif
4706# 602 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4707 do r = is3%beg, is3%end
4708 do k = is2%beg, is2%end
4709 ! Ramp factor for a smoothly starting inflow, evaluated here from mytime rather than
4710 ! computed on the host and copied every Runge-Kutta stage. Unity unless a ramp is set.
4711 ramp = f_vel_ramp(bc_z%vel_in_ramp, bc_z%vel_in_t0, bc_z%vel_in_frac0, mytime)
4712# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4713
4714 ! Transferring the Primitive Variables
4715
4716# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4717#if defined(MFC_OpenACC)
4718# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4719!$acc loop seq
4720# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4721#elif defined(MFC_OpenMP)
4722# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4723
4724# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4725#endif
4726# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4727 do i = 1, eqn_idx%cont%end
4728 alpha_rho(i) = q_prim_rsz_vf(0, k, r, i)
4729# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4730 end do
4731
4732
4733# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4734#if defined(MFC_OpenACC)
4735# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4736!$acc loop seq
4737# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4738#elif defined(MFC_OpenMP)
4739# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4740
4741# 614 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4742#endif
4743# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4744 do i = 1, num_dims
4745 vel(i) = q_prim_rsz_vf(0, k, r, eqn_idx%cont%end + i)
4746# 617 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4747 end do
4748
4749 vel_k_sum = 0._wp
4750
4751# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4752#if defined(MFC_OpenACC)
4753# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4754!$acc loop seq
4755# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4756#elif defined(MFC_OpenMP)
4757# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4758
4759# 620 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4760#endif
4761# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4762 do i = 1, num_dims
4763 vel_k_sum = vel_k_sum + vel(i)**2._wp
4764 end do
4765
4766 pres = q_prim_rsz_vf(0, k, r, eqn_idx%E)
4767# 626 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4768
4769
4770# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4771#if defined(MFC_OpenACC)
4772# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4773!$acc loop seq
4774# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4775#elif defined(MFC_OpenMP)
4776# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4777
4778# 627 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4779#endif
4780# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4781 do i = 1, eqn_idx%adv%end - eqn_idx%E
4782 adv_local(i) = q_prim_rsz_vf(0, k, r, eqn_idx%E + i)
4783# 630 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4784 end do
4785
4786 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
4787
4788
4789# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4790#if defined(MFC_OpenACC)
4791# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4792!$acc loop seq
4793# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4794#elif defined(MFC_OpenMP)
4795# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4796
4797# 634 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4798#endif
4799# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4800 do i = 1, eqn_idx%cont%end
4801 mf(i) = alpha_rho(i)/rho
4802 end do
4803
4804 if (chemistry) then
4805
4806# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4807#if defined(MFC_OpenACC)
4808# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4809!$acc loop seq
4810# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4811#elif defined(MFC_OpenMP)
4812# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4813
4814# 640 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4815#endif
4816# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4817 do i = eqn_idx%species%beg, eqn_idx%species%end
4818 ys(i - eqn_idx%species%beg + 1) = q_prim_rsz_vf(0, k, r, i)
4819# 643 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4820 end do
4821
4822 call get_mixture_molecular_weight(ys, mw)
4823 r_gas = gas_constant/mw
4824 t = pres/rho/r_gas
4825 call get_mixture_caloric_state(t, ys, cp_i, cp, cv, e_mix)
4826 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
4827 if (chem_params%gamma_method == 1) then
4828 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
4829 call get_mole_fractions(mw, ys, xs)
4830 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
4831 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
4832 else if (chem_params%gamma_method == 2) then
4833 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
4834 gamma = 1.0_wp/(cp/cv - 1.0_wp)
4835 end if
4836 end if
4837
4838 ! Compute mixture sound speed
4839 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
4840
4841 ! First-Order Spatial Derivatives of Primitive Variables
4842
4843
4844# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4845#if defined(MFC_OpenACC)
4846# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4847!$acc loop seq
4848# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4849#elif defined(MFC_OpenMP)
4850# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4851
4852# 666 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4853#endif
4854# 667 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4855 do i = 1, eqn_idx%cont%end
4856 dalpha_rho_ds(i) = 0._wp
4857 end do
4858
4859
4860# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4861#if defined(MFC_OpenACC)
4862# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4863!$acc loop seq
4864# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4865#elif defined(MFC_OpenMP)
4866# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4867
4868# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4869#endif
4870# 672 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4871 do i = 1, num_dims
4872 dvel_ds(i) = 0._wp
4873 end do
4874
4875 dpres_ds = 0._wp
4876
4877# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4878#if defined(MFC_OpenACC)
4879# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4880!$acc loop seq
4881# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4882#elif defined(MFC_OpenMP)
4883# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4884
4885# 677 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4886#endif
4887# 678 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4888 do i = 1, eqn_idx%adv%end - eqn_idx%E
4889 dadv_ds(i) = 0._wp
4890 end do
4891
4892 if (chemistry) then
4893
4894# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4895#if defined(MFC_OpenACC)
4896# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4897!$acc loop seq
4898# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4899#elif defined(MFC_OpenMP)
4900# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4901
4902# 683 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4903#endif
4904# 684 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4905 do i = 1, num_species
4906 dys_ds(i) = 0._wp
4907 end do
4908 end if
4909
4910
4911# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4912#if defined(MFC_OpenACC)
4913# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4914!$acc loop seq
4915# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4916#elif defined(MFC_OpenMP)
4917# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4918
4919# 689 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4920#endif
4921# 690 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4922 do j = 0, buff_size
4923
4924# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4925#if defined(MFC_OpenACC)
4926# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4927!$acc loop seq
4928# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4929#elif defined(MFC_OpenMP)
4930# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4931
4932# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4933#endif
4934# 692 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4935 do i = 1, eqn_idx%cont%end
4936 dalpha_rho_ds(i) = q_prim_rsz_vf(j, k, r, i)*fd_coef_z(j, cbc_loc) + dalpha_rho_ds(i)
4937# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4938 end do
4939
4940# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4941#if defined(MFC_OpenACC)
4942# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4943!$acc loop seq
4944# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4945#elif defined(MFC_OpenMP)
4946# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4947
4948# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4949#endif
4950# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4951 do i = 1, num_dims
4952 dvel_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_z(j, &
4953# 698 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4954 & cbc_loc) + dvel_ds(i)
4955 end do
4956
4957 dpres_ds = q_prim_rsz_vf(j, k, r, eqn_idx%E)*fd_coef_z(j, cbc_loc) + dpres_ds
4958# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4959
4960# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4961#if defined(MFC_OpenACC)
4962# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4963!$acc loop seq
4964# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4965#elif defined(MFC_OpenMP)
4966# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4967
4968# 702 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4969#endif
4970# 703 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4971 do i = 1, eqn_idx%adv%end - eqn_idx%E
4972 dadv_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%E + i)*fd_coef_z(j, cbc_loc) + dadv_ds(i)
4973# 705 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4974 end do
4975
4976 if (chemistry) then
4977
4978# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4979#if defined(MFC_OpenACC)
4980# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4981!$acc loop seq
4982# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4983#elif defined(MFC_OpenMP)
4984# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4985
4986# 708 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4987#endif
4988# 709 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4989 do i = 1, num_species
4990 dys_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_z(j, &
4991# 711 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4992 & cbc_loc) + dys_ds(i)
4993 end do
4994 end if
4995 end do
4996
4997 ! First-Order Temporal Derivatives of Primitive Variables
4998 lambda(1) = vel(dir_idx(1)) - c
4999 lambda(2) = vel(dir_idx(1))
5000 lambda(3) = vel(dir_idx(1)) + c
5001
5002 ma = vel(dir_idx(1))/c
5003
5004 if ((cbc_loc == -1 .and. bc_z%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
5005# 724 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5006 & .and. bc_z%end == bc_char_slip_wall)) then
5007# 725 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5008 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
5009 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
5010# 727 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5011 & .and. bc_z%end == bc_char_nr_sub_buffer)) then
5012# 728 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5013 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
5014 & dvel_ds, dadv_ds, dys_ds)
5015 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
5016# 731 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5017 & .and. bc_z%end == bc_char_nr_sub_inflow)) then
5018# 732 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5019 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
5020 ! Add GRCBC for Subsonic Inflow
5021 if (bc_z%grcbc_in) then
5022# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5023
5024# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5025#if defined(MFC_OpenACC)
5026# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5027!$acc loop seq
5028# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5029#elif defined(MFC_OpenMP)
5030# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5031
5032# 735 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5033#endif
5034# 736 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5035 do i = 2, eqn_idx%mom%beg
5036 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
5037 & 3))/del_in(3) - c*ma*(pres - pres_in(3))/del_in(3)
5038# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5039 end do
5040 if (n > 0) then
5041 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*vel_in(3, &
5042# 742 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5043 & dir_idx(2)))/del_in(3)
5044# 743 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5045 if (p > 0) then
5046 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*vel_in(3, &
5047# 745 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5048 & dir_idx(3)))/del_in(3)
5049# 746 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5050 end if
5051 end if
5052
5053# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5054#if defined(MFC_OpenACC)
5055# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5056!$acc loop seq
5057# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5058#elif defined(MFC_OpenMP)
5059# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5060
5061# 748 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5062#endif
5063# 749 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5064 do i = eqn_idx%E, eqn_idx%adv%end - 1
5065 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
5066 & 3))/del_in(3)
5067# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5068 end do
5069 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*vel_in(3, &
5070# 754 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5071 & dir_idx(1))*sign(1, &
5072 & cbc_loc))/del_in(3) + c*(1._wp + ma)*(pres - pres_in(3))/del_in(3)
5073# 756 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5074 end if
5075 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
5076# 758 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5077 & .and. bc_z%end == bc_char_nr_sub_outflow)) then
5078# 759 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5079 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
5080 & dvel_ds, dadv_ds, dys_ds)
5081 ! Add GRCBC for Subsonic Outflow (Pressure)
5082 if (bc_z%grcbc_out) then
5083# 763 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5084 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(3))/del_out(3)
5085# 764 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5086
5087 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
5088 if (bc_z%grcbc_vel_out) then
5089# 767 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5090 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
5091 & + vel_out(3, dir_idx(1))*sign(1, cbc_loc))/del_out(3)
5092# 769 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5093 end if
5094 end if
5095 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
5096# 772 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5097 & .and. bc_z%end == bc_char_ff_sub_outflow)) then
5098# 773 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5099 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
5100 & dadv_ds)
5101 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
5102# 776 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5103 & .and. bc_z%end == bc_char_cp_sub_outflow)) then
5104# 777 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5105 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
5106 & dvel_ds, dadv_ds)
5107 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
5108# 780 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5109 & .and. bc_z%end == bc_char_sup_inflow)) then
5110# 781 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5111 call s_compute_supersonic_inflow_l(l)
5112 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
5113# 783 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5114 & .and. bc_z%end == bc_char_sup_outflow)) then
5115# 784 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5116 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
5117 & dys_ds)
5118 end if
5119
5120 ! Be careful about the cylindrical coordinate!
5121 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
5122 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
5123 else
5124 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
5125 end if
5126
5127
5128# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5129#if defined(MFC_OpenACC)
5130# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5131!$acc loop seq
5132# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5133#elif defined(MFC_OpenMP)
5134# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5135
5136# 795 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5137#endif
5138# 796 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5139 do i = 1, eqn_idx%cont%end
5140 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
5141 end do
5142
5143
5144# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5145#if defined(MFC_OpenACC)
5146# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5147!$acc loop seq
5148# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5149#elif defined(MFC_OpenMP)
5150# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5151
5152# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5153#endif
5154# 801 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5155 do i = 1, num_dims
5156 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
5157 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
5158 end do
5159
5160 vel_dv_dt_sum = 0._wp
5161
5162# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5163#if defined(MFC_OpenACC)
5164# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5165!$acc loop seq
5166# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5167#elif defined(MFC_OpenMP)
5168# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5169
5170# 807 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5171#endif
5172# 808 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5173 do i = 1, num_dims
5174 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
5175 end do
5176
5177 if (chemistry) then
5178
5179# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5180#if defined(MFC_OpenACC)
5181# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5182!$acc loop seq
5183# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5184#elif defined(MFC_OpenMP)
5185# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5186
5187# 813 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5188#endif
5189# 814 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5190 do i = 1, num_species
5191 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
5192 end do
5193 end if
5194
5195 ! The treatment of void fraction source is unclear
5196 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
5197
5198# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5199#if defined(MFC_OpenACC)
5200# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5201!$acc loop seq
5202# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5203#elif defined(MFC_OpenMP)
5204# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5205
5206# 821 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5207#endif
5208# 822 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5209 do i = 1, eqn_idx%adv%end - eqn_idx%E
5210 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
5211 end do
5212 else
5213
5214# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5215#if defined(MFC_OpenACC)
5216# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5217!$acc loop seq
5218# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5219#elif defined(MFC_OpenMP)
5220# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5221
5222# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5223#endif
5224# 827 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5225 do i = 1, eqn_idx%adv%end - eqn_idx%E
5226 dadv_dt(i) = -l(eqn_idx%mom%end + i)
5227 end do
5228 end if
5229
5230 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
5231
5232 if (model_eqns == model_eqns_gamma_law) then
5233 drho_dt = dalpha_rho_dt(1)
5234 dgamma_dt = dadv_dt(1)
5235# 838 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5236 dpi_inf_dt = dadv_dt(2)
5237# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5238 else
5239 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
5240 & dgamma_dt, dpi_inf_dt, dqv_dt)
5241 end if
5242
5243 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
5244
5245# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5246#if defined(MFC_OpenACC)
5247# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5248!$acc loop seq
5249# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5250#elif defined(MFC_OpenMP)
5251# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5252
5253# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5254#endif
5255# 847 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5256 do i = 1, eqn_idx%cont%end
5257 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
5258# 849 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5259 end do
5260
5261
5262# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5263#if defined(MFC_OpenACC)
5264# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5265!$acc loop seq
5266# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5267#elif defined(MFC_OpenMP)
5268# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5269
5270# 851 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5271#endif
5272# 852 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5273 do i = eqn_idx%mom%beg, eqn_idx%mom%end
5274 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, &
5275# 854 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5276 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
5277 end do
5278
5279 if (chemistry) then
5280 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
5281 ! doi:10.1006/jcph.2002.6990
5282 call get_species_enthalpies_rt(t, h_k)
5283 sum_enthalpies = 0._wp
5284
5285# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5286#if defined(MFC_OpenACC)
5287# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5288!$acc loop seq
5289# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5290#elif defined(MFC_OpenMP)
5291# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5292
5293# 862 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5294#endif
5295# 863 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5296 do i = 1, num_species
5297 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
5298 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
5299 end do
5300 flux_rsz_vf_l(-1, k, r, eqn_idx%E) = flux_rsz_vf_l(0, k, r, &
5301# 868 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5302 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
5303 & /(c*c) + sum_enthalpies)
5304
5305# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5306#if defined(MFC_OpenACC)
5307# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5308!$acc loop seq
5309# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5310#elif defined(MFC_OpenMP)
5311# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5312
5313# 870 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5314#endif
5315# 871 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5316 do i = 1, num_species
5317 flux_rsz_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsz_vf_l(0, k, r, &
5318# 873 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5319 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
5320 end do
5321 else
5322 flux_rsz_vf_l(-1, k, r, eqn_idx%E) = flux_rsz_vf_l(0, k, r, &
5323# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5324 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
5325 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
5326 end if
5327
5328 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
5329 ! must follow the same CBC representation as HLLC.
5330 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5331
5332# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5333#if defined(MFC_OpenACC)
5334# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5335!$acc loop seq
5336# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5337#elif defined(MFC_OpenMP)
5338# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5339
5340# 884 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5341#endif
5342# 885 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5343 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5344 flux_rsz_vf_l(-1, k, r, i) = 0._wp
5345# 887 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5346 end do
5347
5348
5349# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5350#if defined(MFC_OpenACC)
5351# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5352!$acc loop seq
5353# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5354#elif defined(MFC_OpenMP)
5355# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5356
5357# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5358#endif
5359# 890 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5360 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5361 flux_src_rsz_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
5362# 892 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5363 & vel(dir_idx(1)))*(flux_rsz_vf_l(0, k, r, &
5364# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5365 & i) + vel(dir_idx(1))*flux_src_rsz_vf_l(0, k, r, &
5366# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5367 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
5368 end do
5369 else
5370
5371# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5372#if defined(MFC_OpenACC)
5373# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5374!$acc loop seq
5375# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5376#elif defined(MFC_OpenMP)
5377# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5378
5379# 897 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5380#endif
5381# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5382 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5383 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
5384# 900 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5385 end do
5386
5387
5388# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5389#if defined(MFC_OpenACC)
5390# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5391!$acc loop seq
5392# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5393#elif defined(MFC_OpenMP)
5394# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5395
5396# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5397#endif
5398# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5399 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5400 flux_src_rsz_vf_l(-1, k, r, i) = flux_src_rsz_vf_l(0, k, r, i)
5401# 905 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5402 end do
5403 end if
5404 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
5405 end do
5406 end do
5407
5408# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5409#if defined(MFC_OpenACC)
5410# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5411!$acc end parallel loop
5412# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5413#elif defined(MFC_OpenMP)
5414# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5415
5416# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5417!$omp end target teams loop
5418# 910 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5419#endif
5420# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5421 end if
5422# 913 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5423
5424 ! END: FD2 or FD4 of RHS at j = 0
5425
5426 ! The reshaping of outputted data and disssociation of the FD and PI coefficients, or CBC coefficients, respectively, based
5427 ! on selected CBC coordinate direction.
5428 call s_finalize_cbc(flux_vf, flux_src_vf)
5429
5430 end subroutine s_cbc
5431
5432 !> Set up the selected CBC for the current boundary
5433 subroutine s_initialize_cbc(q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
5434
5435 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
5436 type(scalar_field), dimension(sys_size), intent(in) :: flux_vf, flux_src_vf
5437 type(int_bounds_info), intent(in) :: ix, iy, iz
5438 integer :: i, j, k, r !< Generic loop iterators
5439 ! Configuring the coordinate direction indexes and flags
5440
5441 ! Determining the indicial shift based on CBC location
5442
5443 ! END: Allocation/Association of Primitive and Flux Variables
5444
5445 if (cbc_dir == 1) then
5446 is1%beg = 0; is1%end = buff_size; is2 = iy; is3 = iz
5447 dir_idx = (/1, 2, 3/); dir_flg = (/1._wp, 0._wp, 0._wp/)
5448 else if (cbc_dir == 2) then
5449 is1%beg = 0; is1%end = buff_size; is2 = ix; is3 = iz
5450 dir_idx = (/2, 1, 3/); dir_flg = (/0._wp, 1._wp, 0._wp/)
5451 else
5452 is1%beg = 0; is1%end = buff_size; is2 = iy; is3 = ix
5453 dir_idx = (/3, 1, 2/); dir_flg = (/0._wp, 0._wp, 1._wp/)
5454 end if
5455
5456 dj = max(0, cbc_loc)
5457
5458# 947 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5459#if defined(MFC_OpenACC)
5460# 947 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5461!$acc update device(is1, is2, is3, dj)
5462# 947 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5463#elif defined(MFC_OpenMP)
5464# 947 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5465!$omp target update to(is1, is2, is3, dj)
5466# 947 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5467#endif
5468# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5469
5470# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5471#if defined(MFC_OpenACC)
5472# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5473!$acc update device(dir_idx, dir_flg)
5474# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5475#elif defined(MFC_OpenMP)
5476# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5477!$omp target update to(dir_idx, dir_flg)
5478# 948 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5479#endif
5480# 949 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5481
5482 ! Reshaping Inputted Data in x-direction
5483 if (cbc_dir == 1) then
5484
5485# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5486
5487# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5488#if defined(MFC_OpenACC)
5489# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5490!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5491# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5492#elif defined(MFC_OpenMP)
5493# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5494
5495# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5496
5497# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5498
5499# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5500!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5501# 952 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5502#endif
5503# 953 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5504 do i = 1, sys_size
5505 do r = is3%beg, is3%end
5506 do k = is2%beg, is2%end
5507 do j = 0, buff_size
5508 q_prim_rsx_vf(j, k, r, i) = q_prim_vf(i)%sf(dj*(m - 2*j) + j, k, r)
5509 end do
5510 end do
5511 end do
5512 end do
5513
5514# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5515#if defined(MFC_OpenACC)
5516# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5517!$acc end parallel loop
5518# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5519#elif defined(MFC_OpenMP)
5520# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5521
5522# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5523!$omp end target teams loop
5524# 962 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5525#endif
5526# 963 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5527
5528
5529# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5530
5531# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5532#if defined(MFC_OpenACC)
5533# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5534!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5535# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5536#elif defined(MFC_OpenMP)
5537# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5538
5539# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5540
5541# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5542
5543# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5544!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5545# 964 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5546#endif
5547# 965 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5548 do r = is3%beg, is3%end
5549 do k = is2%beg, is2%end
5550 do j = 0, buff_size
5551 q_prim_rsx_vf(j, k, r, eqn_idx%mom%beg) = q_prim_vf(eqn_idx%mom%beg)%sf(dj*(m - 2*j) + j, k, &
5552 & r)*sign(1._wp, -1._wp*cbc_loc)
5553 end do
5554 end do
5555 end do
5556
5557# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5558#if defined(MFC_OpenACC)
5559# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5560!$acc end parallel loop
5561# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5562#elif defined(MFC_OpenMP)
5563# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5564
5565# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5566!$omp end target teams loop
5567# 973 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5568#endif
5569# 974 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5570
5571
5572# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5573
5574# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5575#if defined(MFC_OpenACC)
5576# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5577!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5578# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5579#elif defined(MFC_OpenMP)
5580# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5581
5582# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5583
5584# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5585
5586# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5587!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5588# 975 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5589#endif
5590# 976 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5591 do i = 1, flux_cbc_index
5592 do r = is3%beg, is3%end
5593 do k = is2%beg, is2%end
5594 do j = -1, buff_size
5595 flux_rsx_vf_l(j, k, r, i) = flux_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r)*sign(1._wp, -1._wp*cbc_loc)
5596 end do
5597 end do
5598 end do
5599 end do
5600
5601# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5602#if defined(MFC_OpenACC)
5603# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5604!$acc end parallel loop
5605# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5606#elif defined(MFC_OpenMP)
5607# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5608
5609# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5610!$omp end target teams loop
5611# 985 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5612#endif
5613# 986 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5614
5615
5616# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5617
5618# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5619#if defined(MFC_OpenACC)
5620# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5621!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5622# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5623#elif defined(MFC_OpenMP)
5624# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5625
5626# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5627
5628# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5629
5630# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5631!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5632# 987 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5633#endif
5634# 988 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5635 do r = is3%beg, is3%end
5636 do k = is2%beg, is2%end
5637 do j = -1, buff_size
5638 flux_rsx_vf_l(j, k, r, eqn_idx%mom%beg) = flux_vf(eqn_idx%mom%beg)%sf(dj*((m - 1) - 2*j) + j, k, r)
5639 end do
5640 end do
5641 end do
5642
5643# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5644#if defined(MFC_OpenACC)
5645# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5646!$acc end parallel loop
5647# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5648#elif defined(MFC_OpenMP)
5649# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5650
5651# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5652!$omp end target teams loop
5653# 995 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5654#endif
5655# 996 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5656
5657 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5658
5659# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5660
5661# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5662#if defined(MFC_OpenACC)
5663# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5664!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5665# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5666#elif defined(MFC_OpenMP)
5667# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5668
5669# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5670
5671# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5672
5673# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5674!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5675# 998 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5676#endif
5677# 999 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5678 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5679 do r = is3%beg, is3%end
5680 do k = is2%beg, is2%end
5681 do j = -1, buff_size
5682 flux_src_rsx_vf_l(j, k, r, i) = flux_src_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r)
5683 end do
5684 end do
5685 end do
5686 end do
5687
5688# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5689#if defined(MFC_OpenACC)
5690# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5691!$acc end parallel loop
5692# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5693#elif defined(MFC_OpenMP)
5694# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5695
5696# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5697!$omp end target teams loop
5698# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5699#endif
5700# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5701 else
5702
5703# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5704
5705# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5706#if defined(MFC_OpenACC)
5707# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5708!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5709# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5710#elif defined(MFC_OpenMP)
5711# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5712
5713# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5714
5715# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5716
5717# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5718!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5719# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5720#endif
5721# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5722 do r = is3%beg, is3%end
5723 do k = is2%beg, is2%end
5724 do j = -1, buff_size
5725 flux_src_rsx_vf_l(j, k, r, eqn_idx%adv%beg) = flux_src_vf(eqn_idx%adv%beg)%sf(dj*((m - 1) - 2*j) + j, &
5726 & k, r)*sign(1._wp, -1._wp*cbc_loc)
5727 end do
5728 end do
5729 end do
5730
5731# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5732#if defined(MFC_OpenACC)
5733# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5734!$acc end parallel loop
5735# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5736#elif defined(MFC_OpenMP)
5737# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5738
5739# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5740!$omp end target teams loop
5741# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5742#endif
5743# 1020 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5744 end if
5745
5746 ! END: Reshaping Inputted Data in x-direction
5747
5748 ! Reshaping Inputted Data in y-direction
5749 else if (cbc_dir == 2) then
5750
5751# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5752
5753# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5754#if defined(MFC_OpenACC)
5755# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5756!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5757# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5758#elif defined(MFC_OpenMP)
5759# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5760
5761# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5762
5763# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5764
5765# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5766!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5767# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5768#endif
5769# 1027 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5770 do i = 1, sys_size
5771 do r = is3%beg, is3%end
5772 do k = is2%beg, is2%end
5773 do j = 0, buff_size
5774 q_prim_rsy_vf(j, k, r, i) = q_prim_vf(i)%sf(k, dj*(n - 2*j) + j, r)
5775 end do
5776 end do
5777 end do
5778 end do
5779
5780# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5781#if defined(MFC_OpenACC)
5782# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5783!$acc end parallel loop
5784# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5785#elif defined(MFC_OpenMP)
5786# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5787
5788# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5789!$omp end target teams loop
5790# 1036 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5791#endif
5792# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5793
5794
5795# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5796
5797# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5798#if defined(MFC_OpenACC)
5799# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5800!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5801# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5802#elif defined(MFC_OpenMP)
5803# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5804
5805# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5806
5807# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5808
5809# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5810!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5811# 1038 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5812#endif
5813# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5814 do r = is3%beg, is3%end
5815 do k = is2%beg, is2%end
5816 do j = 0, buff_size
5817 q_prim_rsy_vf(j, k, r, eqn_idx%mom%beg + 1) = q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, dj*(n - 2*j) + j, &
5818 & r)*sign(1._wp, -1._wp*cbc_loc)
5819 end do
5820 end do
5821 end do
5822
5823# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5824#if defined(MFC_OpenACC)
5825# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5826!$acc end parallel loop
5827# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5828#elif defined(MFC_OpenMP)
5829# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5830
5831# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5832!$omp end target teams loop
5833# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5834#endif
5835# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5836
5837
5838# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5839
5840# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5841#if defined(MFC_OpenACC)
5842# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5843!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5844# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5845#elif defined(MFC_OpenMP)
5846# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5847
5848# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5849
5850# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5851
5852# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5853!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5854# 1049 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5855#endif
5856# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5857 do i = 1, flux_cbc_index
5858 do r = is3%beg, is3%end
5859 do k = is2%beg, is2%end
5860 do j = -1, buff_size
5861 flux_rsy_vf_l(j, k, r, i) = flux_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r)*sign(1._wp, -1._wp*cbc_loc)
5862 end do
5863 end do
5864 end do
5865 end do
5866
5867# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5868#if defined(MFC_OpenACC)
5869# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5870!$acc end parallel loop
5871# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5872#elif defined(MFC_OpenMP)
5873# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5874
5875# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5876!$omp end target teams loop
5877# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5878#endif
5879# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5880
5881
5882# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5883
5884# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5885#if defined(MFC_OpenACC)
5886# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5887!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5888# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5889#elif defined(MFC_OpenMP)
5890# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5891
5892# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5893
5894# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5895
5896# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5897!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5898# 1061 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5899#endif
5900# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5901 do r = is3%beg, is3%end
5902 do k = is2%beg, is2%end
5903 do j = -1, buff_size
5904 flux_rsy_vf_l(j, k, r, eqn_idx%mom%beg + 1) = flux_vf(eqn_idx%mom%beg + 1)%sf(k, dj*((n - 1) - 2*j) + j, r)
5905 end do
5906 end do
5907 end do
5908
5909# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5910#if defined(MFC_OpenACC)
5911# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5912!$acc end parallel loop
5913# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5914#elif defined(MFC_OpenMP)
5915# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5916
5917# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5918!$omp end target teams loop
5919# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5920#endif
5921# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5922
5923 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5924
5925# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5926
5927# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5928#if defined(MFC_OpenACC)
5929# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5930!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5931# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5932#elif defined(MFC_OpenMP)
5933# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5934
5935# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5936
5937# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5938
5939# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5940!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
5941# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5942#endif
5943# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5944 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5945 do r = is3%beg, is3%end
5946 do k = is2%beg, is2%end
5947 do j = -1, buff_size
5948 flux_src_rsy_vf_l(j, k, r, i) = flux_src_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r)
5949 end do
5950 end do
5951 end do
5952 end do
5953
5954# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5955#if defined(MFC_OpenACC)
5956# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5957!$acc end parallel loop
5958# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5959#elif defined(MFC_OpenMP)
5960# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5961
5962# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5963!$omp end target teams loop
5964# 1082 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5965#endif
5966# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5967 else
5968
5969# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5970
5971# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5972#if defined(MFC_OpenACC)
5973# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5974!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5975# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5976#elif defined(MFC_OpenMP)
5977# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5978
5979# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5980
5981# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5982
5983# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5984!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
5985# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5986#endif
5987# 1085 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5988 do r = is3%beg, is3%end
5989 do k = is2%beg, is2%end
5990 do j = -1, buff_size
5991 flux_src_rsy_vf_l(j, k, r, eqn_idx%adv%beg) = flux_src_vf(eqn_idx%adv%beg)%sf(k, &
5992 & dj*((n - 1) - 2*j) + j, r)*sign(1._wp, -1._wp*cbc_loc)
5993 end do
5994 end do
5995 end do
5996
5997# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5998#if defined(MFC_OpenACC)
5999# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6000!$acc end parallel loop
6001# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6002#elif defined(MFC_OpenMP)
6003# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6004
6005# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6006!$omp end target teams loop
6007# 1093 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6008#endif
6009# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6010 end if
6011
6012 ! END: Reshaping Inputted Data in y-direction
6013
6014 ! Reshaping Inputted Data in z-direction
6015 else
6016
6017# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6018
6019# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6020#if defined(MFC_OpenACC)
6021# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6022!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6023# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6024#elif defined(MFC_OpenMP)
6025# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6026
6027# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6028
6029# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6030
6031# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6032!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6033# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6034#endif
6035# 1101 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6036 do i = 1, sys_size
6037 do r = is3%beg, is3%end
6038 do k = is2%beg, is2%end
6039 do j = 0, buff_size
6040 q_prim_rsz_vf(j, k, r, i) = q_prim_vf(i)%sf(r, k, dj*(p - 2*j) + j)
6041 end do
6042 end do
6043 end do
6044 end do
6045
6046# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6047#if defined(MFC_OpenACC)
6048# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6049!$acc end parallel loop
6050# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6051#elif defined(MFC_OpenMP)
6052# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6053
6054# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6055!$omp end target teams loop
6056# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6057#endif
6058# 1111 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6059
6060
6061# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6062
6063# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6064#if defined(MFC_OpenACC)
6065# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6066!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6067# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6068#elif defined(MFC_OpenMP)
6069# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6070
6071# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6072
6073# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6074
6075# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6076!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6077# 1112 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6078#endif
6079# 1113 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6080 do r = is3%beg, is3%end
6081 do k = is2%beg, is2%end
6082 do j = 0, buff_size
6083 q_prim_rsz_vf(j, k, r, eqn_idx%mom%end) = q_prim_vf(eqn_idx%mom%end)%sf(r, k, &
6084 & dj*(p - 2*j) + j)*sign(1._wp, -1._wp*cbc_loc)
6085 end do
6086 end do
6087 end do
6088
6089# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6090#if defined(MFC_OpenACC)
6091# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6092!$acc end parallel loop
6093# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6094#elif defined(MFC_OpenMP)
6095# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6096
6097# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6098!$omp end target teams loop
6099# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6100#endif
6101# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6102
6103
6104# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6105
6106# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6107#if defined(MFC_OpenACC)
6108# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6109!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6110# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6111#elif defined(MFC_OpenMP)
6112# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6113
6114# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6115
6116# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6117
6118# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6119!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6120# 1123 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6121#endif
6122# 1124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6123 do i = 1, flux_cbc_index
6124 do r = is3%beg, is3%end
6125 do k = is2%beg, is2%end
6126 do j = -1, buff_size
6127 flux_rsz_vf_l(j, k, r, i) = flux_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j)*sign(1._wp, -1._wp*cbc_loc)
6128 end do
6129 end do
6130 end do
6131 end do
6132
6133# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6134#if defined(MFC_OpenACC)
6135# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6136!$acc end parallel loop
6137# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6138#elif defined(MFC_OpenMP)
6139# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6140
6141# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6142!$omp end target teams loop
6143# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6144#endif
6145# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6146
6147
6148# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6149
6150# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6151#if defined(MFC_OpenACC)
6152# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6153!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6154# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6155#elif defined(MFC_OpenMP)
6156# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6157
6158# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6159
6160# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6161
6162# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6163!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6164# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6165#endif
6166# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6167 do r = is3%beg, is3%end
6168 do k = is2%beg, is2%end
6169 do j = -1, buff_size
6170 flux_rsz_vf_l(j, k, r, eqn_idx%mom%end) = flux_vf(eqn_idx%mom%end)%sf(r, k, dj*((p - 1) - 2*j) + j)
6171 end do
6172 end do
6173 end do
6174
6175# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6176#if defined(MFC_OpenACC)
6177# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6178!$acc end parallel loop
6179# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6180#elif defined(MFC_OpenMP)
6181# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6182
6183# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6184!$omp end target teams loop
6185# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6186#endif
6187# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6188
6189 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6190
6191# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6192
6193# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6194#if defined(MFC_OpenACC)
6195# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6196!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6197# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6198#elif defined(MFC_OpenMP)
6199# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6200
6201# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6202
6203# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6204
6205# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6206!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6207# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6208#endif
6209# 1147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6210 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6211 do r = is3%beg, is3%end
6212 do k = is2%beg, is2%end
6213 do j = -1, buff_size
6214 flux_src_rsz_vf_l(j, k, r, i) = flux_src_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j)
6215 end do
6216 end do
6217 end do
6218 end do
6219
6220# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6221#if defined(MFC_OpenACC)
6222# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6223!$acc end parallel loop
6224# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6225#elif defined(MFC_OpenMP)
6226# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6227
6228# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6229!$omp end target teams loop
6230# 1156 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6231#endif
6232# 1157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6233 else
6234
6235# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6236
6237# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6238#if defined(MFC_OpenACC)
6239# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6240!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6241# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6242#elif defined(MFC_OpenMP)
6243# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6244
6245# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6246
6247# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6248
6249# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6250!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6251# 1158 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6252#endif
6253# 1159 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6254 do r = is3%beg, is3%end
6255 do k = is2%beg, is2%end
6256 do j = -1, buff_size
6257 flux_src_rsz_vf_l(j, k, r, eqn_idx%adv%beg) = flux_src_vf(eqn_idx%adv%beg)%sf(r, k, &
6258 & dj*((p - 1) - 2*j) + j)*sign(1._wp, -1._wp*cbc_loc)
6259 end do
6260 end do
6261 end do
6262
6263# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6264#if defined(MFC_OpenACC)
6265# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6266!$acc end parallel loop
6267# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6268#elif defined(MFC_OpenMP)
6269# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6270
6271# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6272!$omp end target teams loop
6273# 1167 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6274#endif
6275# 1168 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6276 end if
6277 end if
6278 ! END: Reshaping Inputted Data in z-direction
6279
6280 ! Association of the procedural pointer to the appropriate procedure that will be utilized in the evaluation of L variables
6281 ! for the CBC
6282
6283 end subroutine s_initialize_cbc
6284
6285 !> Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC application
6286 subroutine s_finalize_cbc(flux_vf, flux_src_vf)
6287
6288 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf
6289 integer :: i, j, k, r !< Generic loop iterators
6290 ! Determining the indicial shift based on CBC location
6291
6292 dj = max(0, cbc_loc)
6293
6294# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6295#if defined(MFC_OpenACC)
6296# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6297!$acc update device(dj)
6298# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6299#elif defined(MFC_OpenMP)
6300# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6301!$omp target update to(dj)
6302# 1185 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6303#endif
6304# 1186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6305
6306 ! Reshaping Outputted Data in x-direction
6307 if (cbc_dir == 1) then
6308
6309# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6310
6311# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6312#if defined(MFC_OpenACC)
6313# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6314!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6315# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6316#elif defined(MFC_OpenMP)
6317# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6318
6319# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6320
6321# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6322
6323# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6324!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6325# 1189 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6326#endif
6327# 1190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6328 do i = 1, flux_cbc_index
6329 do r = is3%beg, is3%end
6330 do k = is2%beg, is2%end
6331 do j = -1, buff_size
6332 flux_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_rsx_vf_l(j, k, r, i)*sign(1._wp, -1._wp*cbc_loc)
6333 end do
6334 end do
6335 end do
6336 end do
6337
6338# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6339#if defined(MFC_OpenACC)
6340# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6341!$acc end parallel loop
6342# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6343#elif defined(MFC_OpenMP)
6344# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6345
6346# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6347!$omp end target teams loop
6348# 1199 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6349#endif
6350# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6351
6352# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6353
6354# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6355#if defined(MFC_OpenACC)
6356# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6357!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6358# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6359#elif defined(MFC_OpenMP)
6360# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6361
6362# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6363
6364# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6365
6366# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6367!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6368# 1200 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6369#endif
6370# 1201 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6371 do r = is3%beg, is3%end
6372 do k = is2%beg, is2%end
6373 do j = -1, buff_size
6374 flux_vf(eqn_idx%mom%beg)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_rsx_vf_l(j, k, r, eqn_idx%mom%beg)
6375 end do
6376 end do
6377 end do
6378
6379# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6380#if defined(MFC_OpenACC)
6381# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6382!$acc end parallel loop
6383# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6384#elif defined(MFC_OpenMP)
6385# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6386
6387# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6388!$omp end target teams loop
6389# 1208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6390#endif
6391# 1209 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6392
6393 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6394
6395# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6396
6397# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6398#if defined(MFC_OpenACC)
6399# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6400!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6401# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6402#elif defined(MFC_OpenMP)
6403# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6404
6405# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6406
6407# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6408
6409# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6410!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6411# 1211 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6412#endif
6413# 1212 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6414 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6415 do r = is3%beg, is3%end
6416 do k = is2%beg, is2%end
6417 do j = -1, buff_size
6418 flux_src_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_src_rsx_vf_l(j, k, r, i)
6419 end do
6420 end do
6421 end do
6422 end do
6423
6424# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6425#if defined(MFC_OpenACC)
6426# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6427!$acc end parallel loop
6428# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6429#elif defined(MFC_OpenMP)
6430# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6431
6432# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6433!$omp end target teams loop
6434# 1221 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6435#endif
6436# 1222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6437 else
6438
6439# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6440
6441# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6442#if defined(MFC_OpenACC)
6443# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6444!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6445# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6446#elif defined(MFC_OpenMP)
6447# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6448
6449# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6450
6451# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6452
6453# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6454!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6455# 1223 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6456#endif
6457# 1224 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6458 do r = is3%beg, is3%end
6459 do k = is2%beg, is2%end
6460 do j = -1, buff_size
6461 flux_src_vf(eqn_idx%adv%beg)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_src_rsx_vf_l(j, k, r, &
6462 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
6463 end do
6464 end do
6465 end do
6466
6467# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6468#if defined(MFC_OpenACC)
6469# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6470!$acc end parallel loop
6471# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6472#elif defined(MFC_OpenMP)
6473# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6474
6475# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6476!$omp end target teams loop
6477# 1232 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6478#endif
6479# 1233 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6480 end if
6481 ! END: Reshaping Outputted Data in x-direction
6482
6483 ! Reshaping Outputted Data in y-direction
6484 else if (cbc_dir == 2) then
6485
6486# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6487
6488# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6489#if defined(MFC_OpenACC)
6490# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6491!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6492# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6493#elif defined(MFC_OpenMP)
6494# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6495
6496# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6497
6498# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6499
6500# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6501!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6502# 1238 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6503#endif
6504# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6505 do i = 1, flux_cbc_index
6506 do r = is3%beg, is3%end
6507 do k = is2%beg, is2%end
6508 do j = -1, buff_size
6509 flux_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_rsy_vf_l(j, k, r, i)*sign(1._wp, -1._wp*cbc_loc)
6510 end do
6511 end do
6512 end do
6513 end do
6514
6515# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6516#if defined(MFC_OpenACC)
6517# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6518!$acc end parallel loop
6519# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6520#elif defined(MFC_OpenMP)
6521# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6522
6523# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6524!$omp end target teams loop
6525# 1248 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6526#endif
6527# 1249 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6528
6529
6530# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6531
6532# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6533#if defined(MFC_OpenACC)
6534# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6535!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6536# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6537#elif defined(MFC_OpenMP)
6538# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6539
6540# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6541
6542# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6543
6544# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6545!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6546# 1250 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6547#endif
6548# 1251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6549 do r = is3%beg, is3%end
6550 do k = is2%beg, is2%end
6551 do j = -1, buff_size
6552 flux_vf(eqn_idx%mom%beg + 1)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_rsy_vf_l(j, k, r, eqn_idx%mom%beg + 1)
6553 end do
6554 end do
6555 end do
6556
6557# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6558#if defined(MFC_OpenACC)
6559# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6560!$acc end parallel loop
6561# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6562#elif defined(MFC_OpenMP)
6563# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6564
6565# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6566!$omp end target teams loop
6567# 1258 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6568#endif
6569# 1259 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6570
6571 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6572
6573# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6574
6575# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6576#if defined(MFC_OpenACC)
6577# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6578!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6579# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6580#elif defined(MFC_OpenMP)
6581# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6582
6583# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6584
6585# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6586
6587# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6588!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6589# 1261 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6590#endif
6591# 1262 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6592 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6593 do r = is3%beg, is3%end
6594 do k = is2%beg, is2%end
6595 do j = -1, buff_size
6596 flux_src_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_src_rsy_vf_l(j, k, r, i)
6597 end do
6598 end do
6599 end do
6600 end do
6601
6602# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6603#if defined(MFC_OpenACC)
6604# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6605!$acc end parallel loop
6606# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6607#elif defined(MFC_OpenMP)
6608# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6609
6610# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6611!$omp end target teams loop
6612# 1271 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6613#endif
6614# 1272 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6615 else
6616
6617# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6618
6619# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6620#if defined(MFC_OpenACC)
6621# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6622!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6623# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6624#elif defined(MFC_OpenMP)
6625# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6626
6627# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6628
6629# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6630
6631# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6632!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6633# 1273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6634#endif
6635# 1274 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6636 do r = is3%beg, is3%end
6637 do k = is2%beg, is2%end
6638 do j = -1, buff_size
6639 flux_src_vf(eqn_idx%adv%beg)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_src_rsy_vf_l(j, k, r, &
6640 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
6641 end do
6642 end do
6643 end do
6644
6645# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6646#if defined(MFC_OpenACC)
6647# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6648!$acc end parallel loop
6649# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6650#elif defined(MFC_OpenMP)
6651# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6652
6653# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6654!$omp end target teams loop
6655# 1282 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6656#endif
6657# 1283 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6658 end if
6659
6660 ! END: Reshaping Outputted Data in y-direction
6661
6662 ! Reshaping Outputted Data in z-direction
6663 else
6664
6665# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6666
6667# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6668#if defined(MFC_OpenACC)
6669# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6670!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6671# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6672#elif defined(MFC_OpenMP)
6673# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6674
6675# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6676
6677# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6678
6679# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6680!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6681# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6682#endif
6683# 1290 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6684 do i = 1, flux_cbc_index
6685 do r = is3%beg, is3%end
6686 do k = is2%beg, is2%end
6687 do j = -1, buff_size
6688 flux_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_rsz_vf_l(j, k, r, i)*sign(1._wp, -1._wp*cbc_loc)
6689 end do
6690 end do
6691 end do
6692 end do
6693
6694# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6695#if defined(MFC_OpenACC)
6696# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6697!$acc end parallel loop
6698# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6699#elif defined(MFC_OpenMP)
6700# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6701
6702# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6703!$omp end target teams loop
6704# 1299 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6705#endif
6706# 1300 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6707
6708
6709# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6710
6711# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6712#if defined(MFC_OpenACC)
6713# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6714!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6715# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6716#elif defined(MFC_OpenMP)
6717# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6718
6719# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6720
6721# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6722
6723# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6724!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6725# 1301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6726#endif
6727# 1302 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6728 do r = is3%beg, is3%end
6729 do k = is2%beg, is2%end
6730 do j = -1, buff_size
6731 flux_vf(eqn_idx%mom%end)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_rsz_vf_l(j, k, r, eqn_idx%mom%end)
6732 end do
6733 end do
6734 end do
6735
6736# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6737#if defined(MFC_OpenACC)
6738# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6739!$acc end parallel loop
6740# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6741#elif defined(MFC_OpenMP)
6742# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6743
6744# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6745!$omp end target teams loop
6746# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6747#endif
6748# 1310 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6749
6750 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6751
6752# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6753
6754# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6755#if defined(MFC_OpenACC)
6756# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6757!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6758# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6759#elif defined(MFC_OpenMP)
6760# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6761
6762# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6763
6764# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6765
6766# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6767!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, r)
6768# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6769#endif
6770# 1313 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6771 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6772 do r = is3%beg, is3%end
6773 do k = is2%beg, is2%end
6774 do j = -1, buff_size
6775 flux_src_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_src_rsz_vf_l(j, k, r, i)
6776 end do
6777 end do
6778 end do
6779 end do
6780
6781# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6782#if defined(MFC_OpenACC)
6783# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6784!$acc end parallel loop
6785# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6786#elif defined(MFC_OpenMP)
6787# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6788
6789# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6790!$omp end target teams loop
6791# 1322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6792#endif
6793# 1323 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6794 else
6795
6796# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6797
6798# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6799#if defined(MFC_OpenACC)
6800# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6801!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6802# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6803#elif defined(MFC_OpenMP)
6804# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6805
6806# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6807
6808# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6809
6810# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6811!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, r)
6812# 1324 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6813#endif
6814# 1325 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6815 do r = is3%beg, is3%end
6816 do k = is2%beg, is2%end
6817 do j = -1, buff_size
6818 flux_src_vf(eqn_idx%adv%beg)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_src_rsz_vf_l(j, k, r, &
6819 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
6820 end do
6821 end do
6822 end do
6823
6824# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6825#if defined(MFC_OpenACC)
6826# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6827!$acc end parallel loop
6828# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6829#elif defined(MFC_OpenMP)
6830# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6831
6832# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6833!$omp end target teams loop
6834# 1333 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6835#endif
6836# 1334 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6837 end if
6838 end if
6839 ! END: Reshaping Outputted Data in z-direction
6840
6841 end subroutine s_finalize_cbc
6842
6843 !> Detect whether any domain boundary uses characteristic boundary conditions
6844 elemental subroutine s_any_cbc_boundaries(toggle)
6845
6846 logical, intent(inout) :: toggle
6847
6848 toggle = .false.
6849
6850# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6851 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -5)) then
6852# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6853 toggle = .true.
6854 end if
6855# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6856 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -6)) then
6857# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6858 toggle = .true.
6859 end if
6860# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6861 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -7)) then
6862# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6863 toggle = .true.
6864 end if
6865# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6866 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -8)) then
6867# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6868 toggle = .true.
6869 end if
6870# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6871 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -9)) then
6872# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6873 toggle = .true.
6874 end if
6875# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6876 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -10)) then
6877# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6878 toggle = .true.
6879 end if
6880# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6881 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -11)) then
6882# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6883 toggle = .true.
6884 end if
6885# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6886 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -12)) then
6887# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6888 toggle = .true.
6889 end if
6890# 1348 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6891 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -13)) then
6892# 1349 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6893 toggle = .true.
6894 end if
6895# 1352 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6896
6897 end subroutine s_any_cbc_boundaries
6898
6899 !> Module deallocation and/or disassociation procedures
6900 impure subroutine s_finalize_cbc_module
6901
6902 logical :: is_cbc
6903
6904 call s_any_cbc_boundaries(is_cbc)
6905
6906 if (is_cbc .eqv. .false.) return
6907
6908 ! Deallocating the cell-average primitive variables
6909#ifdef MFC_DEBUG
6910# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6911 block
6912# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6913 use iso_fortran_env, only: output_unit
6914# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6915
6916# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6917 print *, 'm_cbc.fpp:1365: ', '@:DEALLOCATE(q_prim_rsx_vf)'
6918# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6919
6920# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6921 call flush (output_unit)
6922# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6923 end block
6924# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6925#endif
6926# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6927
6928# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6929#if defined(MFC_OpenACC)
6930# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6931!$acc exit data delete(q_prim_rsx_vf)
6932# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6933#elif defined(MFC_OpenMP)
6934# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6935!$omp target exit data map(release:q_prim_rsx_vf)
6936# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6937#endif
6938# 1365 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6939 deallocate (q_prim_rsx_vf)
6940# 1366 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6941 if (weno_order > 1 .or. muscl_order > 1) then
6942#ifdef MFC_DEBUG
6943# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6944 block
6945# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6946 use iso_fortran_env, only: output_unit
6947# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6948
6949# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6950 print *, 'm_cbc.fpp:1367: ', '@:DEALLOCATE(F_rsx_vf, F_src_rsx_vf)'
6951# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6952
6953# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6954 call flush (output_unit)
6955# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6956 end block
6957# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6958#endif
6959# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6960
6961# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6962#if defined(MFC_OpenACC)
6963# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6964!$acc exit data delete(F_rsx_vf, F_src_rsx_vf)
6965# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6966#elif defined(MFC_OpenMP)
6967# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6968!$omp target exit data map(release:F_rsx_vf, F_src_rsx_vf)
6969# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6970#endif
6971# 1367 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6972 deallocate (f_rsx_vf, f_src_rsx_vf)
6973# 1368 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6974 end if
6975#ifdef MFC_DEBUG
6976# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6977 block
6978# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6979 use iso_fortran_env, only: output_unit
6980# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6981
6982# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6983 print *, 'm_cbc.fpp:1369: ', '@:DEALLOCATE(flux_rsx_vf_l, flux_src_rsx_vf_l)'
6984# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6985
6986# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6987 call flush (output_unit)
6988# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6989 end block
6990# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6991#endif
6992# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6993
6994# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6995#if defined(MFC_OpenACC)
6996# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6997!$acc exit data delete(flux_rsx_vf_l, flux_src_rsx_vf_l)
6998# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6999#elif defined(MFC_OpenMP)
7000# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7001!$omp target exit data map(release:flux_rsx_vf_l, flux_src_rsx_vf_l)
7002# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7003#endif
7004# 1369 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7005 deallocate (flux_rsx_vf_l, flux_src_rsx_vf_l)
7006# 1370 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7007
7008 if (n > 0) then
7009#ifdef MFC_DEBUG
7010# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7011 block
7012# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7013 use iso_fortran_env, only: output_unit
7014# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7015
7016# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7017 print *, 'm_cbc.fpp:1372: ', '@:DEALLOCATE(q_prim_rsy_vf)'
7018# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7019
7020# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7021 call flush (output_unit)
7022# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7023 end block
7024# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7025#endif
7026# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7027
7028# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7029#if defined(MFC_OpenACC)
7030# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7031!$acc exit data delete(q_prim_rsy_vf)
7032# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7033#elif defined(MFC_OpenMP)
7034# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7035!$omp target exit data map(release:q_prim_rsy_vf)
7036# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7037#endif
7038# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7039 deallocate (q_prim_rsy_vf)
7040# 1373 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7041 if (weno_order > 1 .or. muscl_order > 1) then
7042#ifdef MFC_DEBUG
7043# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7044 block
7045# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7046 use iso_fortran_env, only: output_unit
7047# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7048
7049# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7050 print *, 'm_cbc.fpp:1374: ', '@:DEALLOCATE(F_rsy_vf, F_src_rsy_vf)'
7051# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7052
7053# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7054 call flush (output_unit)
7055# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7056 end block
7057# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7058#endif
7059# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7060
7061# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7062#if defined(MFC_OpenACC)
7063# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7064!$acc exit data delete(F_rsy_vf, F_src_rsy_vf)
7065# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7066#elif defined(MFC_OpenMP)
7067# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7068!$omp target exit data map(release:F_rsy_vf, F_src_rsy_vf)
7069# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7070#endif
7071# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7072 deallocate (f_rsy_vf, f_src_rsy_vf)
7073# 1375 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7074 end if
7075#ifdef MFC_DEBUG
7076# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7077 block
7078# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7079 use iso_fortran_env, only: output_unit
7080# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7081
7082# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7083 print *, 'm_cbc.fpp:1376: ', '@:DEALLOCATE(flux_rsy_vf_l, flux_src_rsy_vf_l)'
7084# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7085
7086# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7087 call flush (output_unit)
7088# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7089 end block
7090# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7091#endif
7092# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7093
7094# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7095#if defined(MFC_OpenACC)
7096# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7097!$acc exit data delete(flux_rsy_vf_l, flux_src_rsy_vf_l)
7098# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7099#elif defined(MFC_OpenMP)
7100# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7101!$omp target exit data map(release:flux_rsy_vf_l, flux_src_rsy_vf_l)
7102# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7103#endif
7104# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7105 deallocate (flux_rsy_vf_l, flux_src_rsy_vf_l)
7106# 1377 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7107 end if
7108 if (p > 0) then
7109#ifdef MFC_DEBUG
7110# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7111 block
7112# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7113 use iso_fortran_env, only: output_unit
7114# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7115
7116# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7117 print *, 'm_cbc.fpp:1379: ', '@:DEALLOCATE(q_prim_rsz_vf)'
7118# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7119
7120# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7121 call flush (output_unit)
7122# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7123 end block
7124# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7125#endif
7126# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7127
7128# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7129#if defined(MFC_OpenACC)
7130# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7131!$acc exit data delete(q_prim_rsz_vf)
7132# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7133#elif defined(MFC_OpenMP)
7134# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7135!$omp target exit data map(release:q_prim_rsz_vf)
7136# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7137#endif
7138# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7139 deallocate (q_prim_rsz_vf)
7140# 1380 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7141 if (weno_order > 1 .or. muscl_order > 1) then
7142#ifdef MFC_DEBUG
7143# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7144 block
7145# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7146 use iso_fortran_env, only: output_unit
7147# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7148
7149# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7150 print *, 'm_cbc.fpp:1381: ', '@:DEALLOCATE(F_rsz_vf, F_src_rsz_vf)'
7151# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7152
7153# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7154 call flush (output_unit)
7155# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7156 end block
7157# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7158#endif
7159# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7160
7161# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7162#if defined(MFC_OpenACC)
7163# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7164!$acc exit data delete(F_rsz_vf, F_src_rsz_vf)
7165# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7166#elif defined(MFC_OpenMP)
7167# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7168!$omp target exit data map(release:F_rsz_vf, F_src_rsz_vf)
7169# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7170#endif
7171# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7172 deallocate (f_rsz_vf, f_src_rsz_vf)
7173# 1382 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7174 end if
7175#ifdef MFC_DEBUG
7176# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7177 block
7178# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7179 use iso_fortran_env, only: output_unit
7180# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7181
7182# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7183 print *, 'm_cbc.fpp:1383: ', '@:DEALLOCATE(flux_rsz_vf_l, flux_src_rsz_vf_l)'
7184# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7185
7186# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7187 call flush (output_unit)
7188# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7189 end block
7190# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7191#endif
7192# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7193
7194# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7195#if defined(MFC_OpenACC)
7196# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7197!$acc exit data delete(flux_rsz_vf_l, flux_src_rsz_vf_l)
7198# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7199#elif defined(MFC_OpenMP)
7200# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7201!$omp target exit data map(release:flux_rsz_vf_l, flux_src_rsz_vf_l)
7202# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7203#endif
7204# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7205 deallocate (flux_rsz_vf_l, flux_src_rsz_vf_l)
7206# 1384 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7207 end if
7208
7209 ! Deallocating the cell-width distribution in the s-direction
7210#ifdef MFC_DEBUG
7211# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7212 block
7213# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7214 use iso_fortran_env, only: output_unit
7215# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7216
7217# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7218 print *, 'm_cbc.fpp:1387: ', '@:DEALLOCATE(ds)'
7219# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7220
7221# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7222 call flush (output_unit)
7223# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7224 end block
7225# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7226#endif
7227# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7228
7229# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7230#if defined(MFC_OpenACC)
7231# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7232!$acc exit data delete(ds)
7233# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7234#elif defined(MFC_OpenMP)
7235# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7236!$omp target exit data map(release:ds)
7237# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7238#endif
7239# 1387 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7240 deallocate (ds)
7241# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7242
7243 ! Deallocating GRCBC inputs
7244#ifdef MFC_DEBUG
7245# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7246 block
7247# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7248 use iso_fortran_env, only: output_unit
7249# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7250
7251# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7252 print *, 'm_cbc.fpp:1390: ', '@:DEALLOCATE(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)'
7253# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7254
7255# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7256 call flush (output_unit)
7257# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7258 end block
7259# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7260#endif
7261# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7262
7263# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7264#if defined(MFC_OpenACC)
7265# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7266!$acc exit data delete(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
7267# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7268#elif defined(MFC_OpenMP)
7269# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7270!$omp target exit data map(release:vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
7271# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7272#endif
7273# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7275# 1391 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7276
7277 ! Deallocating CBC Coefficients in x-direction
7278 if (all((/bc_x%beg, bc_x%end/) <= -5) .and. all((/bc_x%beg, &
7279 & bc_x%end/) >= -13) .or. bc_x%beg <= -5 .and. bc_x%beg >= -13 .or. bc_x%end <= -5 .and. bc_x%end >= -13) then
7280#ifdef MFC_DEBUG
7281# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7282 block
7283# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7284 use iso_fortran_env, only: output_unit
7285# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7286
7287# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7288 print *, 'm_cbc.fpp:1395: ', '@:DEALLOCATE(fd_coef_x)'
7289# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7290
7291# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7292 call flush (output_unit)
7293# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7294 end block
7295# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7296#endif
7297# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7298
7299# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7300#if defined(MFC_OpenACC)
7301# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7302!$acc exit data delete(fd_coef_x)
7303# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7304#elif defined(MFC_OpenMP)
7305# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7306!$omp target exit data map(release:fd_coef_x)
7307# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7308#endif
7309# 1395 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7310 deallocate (fd_coef_x)
7311# 1396 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7312 if (weno_order > 1 .or. muscl_order > 1) then
7313#ifdef MFC_DEBUG
7314# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7315 block
7316# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7317 use iso_fortran_env, only: output_unit
7318# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7319
7320# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7321 print *, 'm_cbc.fpp:1397: ', '@:DEALLOCATE(pi_coef_x)'
7322# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7323
7324# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7325 call flush (output_unit)
7326# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7327 end block
7328# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7329#endif
7330# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7331
7332# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7333#if defined(MFC_OpenACC)
7334# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7335!$acc exit data delete(pi_coef_x)
7336# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7337#elif defined(MFC_OpenMP)
7338# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7339!$omp target exit data map(release:pi_coef_x)
7340# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7341#endif
7342# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7343 deallocate (pi_coef_x)
7344# 1398 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7345 end if
7346 end if
7347
7348 ! Deallocating CBC Coefficients in y-direction
7349 if (n > 0) then
7350 if (all((/bc_y%beg, bc_y%end/) <= -5) .and. all((/bc_y%beg, &
7351 & bc_y%end/) >= -13) .or. bc_y%beg <= -5 .and. bc_y%beg >= -13 .or. bc_y%end <= -5 .and. bc_y%end >= -13) then
7352#ifdef MFC_DEBUG
7353# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7354 block
7355# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7356 use iso_fortran_env, only: output_unit
7357# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7358
7359# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7360 print *, 'm_cbc.fpp:1405: ', '@:DEALLOCATE(fd_coef_y)'
7361# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7362
7363# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7364 call flush (output_unit)
7365# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7366 end block
7367# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7368#endif
7369# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7370
7371# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7372#if defined(MFC_OpenACC)
7373# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7374!$acc exit data delete(fd_coef_y)
7375# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7376#elif defined(MFC_OpenMP)
7377# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7378!$omp target exit data map(release:fd_coef_y)
7379# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7380#endif
7381# 1405 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7382 deallocate (fd_coef_y)
7383# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7384 if (weno_order > 1) then
7385#ifdef MFC_DEBUG
7386# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7387 block
7388# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7389 use iso_fortran_env, only: output_unit
7390# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7391
7392# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7393 print *, 'm_cbc.fpp:1407: ', '@:DEALLOCATE(pi_coef_y)'
7394# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7395
7396# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7397 call flush (output_unit)
7398# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7399 end block
7400# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7401#endif
7402# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7403
7404# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7405#if defined(MFC_OpenACC)
7406# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7407!$acc exit data delete(pi_coef_y)
7408# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7409#elif defined(MFC_OpenMP)
7410# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7411!$omp target exit data map(release:pi_coef_y)
7412# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7413#endif
7414# 1407 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7415 deallocate (pi_coef_y)
7416# 1408 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7417 end if
7418 end if
7419 end if
7420
7421 ! Deallocating CBC Coefficients in z-direction
7422 if (p > 0) then
7423 if (all((/bc_z%beg, bc_z%end/) <= -5) .and. all((/bc_z%beg, &
7424 & bc_z%end/) >= -13) .or. bc_z%beg <= -5 .and. bc_z%beg >= -13 .or. bc_z%end <= -5 .and. bc_z%end >= -13) then
7425#ifdef MFC_DEBUG
7426# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7427 block
7428# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7429 use iso_fortran_env, only: output_unit
7430# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7431
7432# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7433 print *, 'm_cbc.fpp:1416: ', '@:DEALLOCATE(fd_coef_z)'
7434# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7435
7436# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7437 call flush (output_unit)
7438# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7439 end block
7440# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7441#endif
7442# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7443
7444# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7445#if defined(MFC_OpenACC)
7446# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7447!$acc exit data delete(fd_coef_z)
7448# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7449#elif defined(MFC_OpenMP)
7450# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7451!$omp target exit data map(release:fd_coef_z)
7452# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7453#endif
7454# 1416 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7455 deallocate (fd_coef_z)
7456# 1417 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7457 if (weno_order > 1) then
7458#ifdef MFC_DEBUG
7459# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7460 block
7461# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7462 use iso_fortran_env, only: output_unit
7463# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7464
7465# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7466 print *, 'm_cbc.fpp:1418: ', '@:DEALLOCATE(pi_coef_z)'
7467# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7468
7469# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7470 call flush (output_unit)
7471# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7472 end block
7473# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7474#endif
7475# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7476
7477# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7478#if defined(MFC_OpenACC)
7479# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7480!$acc exit data delete(pi_coef_z)
7481# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7482#elif defined(MFC_OpenMP)
7483# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7484!$omp target exit data map(release:pi_coef_z)
7485# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7486#endif
7487# 1418 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7488 deallocate (pi_coef_z)
7489# 1419 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
7490 end if
7491 end if
7492 end if
7493
7494 end subroutine s_finalize_cbc_module
7495
7496end module m_cbc
integer, intent(in) k
integer, intent(in) j
integer, intent(in) l
Per-cell noncharacteristic boundary condition primitives applied in the ghost cells.
pure real(wp) function, public f_vel_ramp(tau, t0, frac0, t)
Velocity scaling for a GRCBC inflow that is ramping up: unity unless bc_[x,y,z]vel_in_ramp is set,...
Characteristic boundary conditions (CBCs) for slip walls, non-reflecting subsonic inflow/outflow,...
subroutine s_associate_cbc_coefficients_pointers(cbc_dir_in, cbc_loc_in)
Associate CBC finite-difference and polynomial-interpolation coefficients based on direction and boun...
real(wp), dimension(:,:), allocatable vel_out
subroutine, public s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
Apply characteristic boundary conditions by modifying fluxes near domain boundaries.
integer dj
real(wp), dimension(:,:), allocatable alpha_rho_in
real(wp), dimension(:,:), allocatable fd_coef_x
Finite diff. coefficients x-dir.
subroutine s_compute_cbc_coefficients(cbc_dir_in, cbc_loc_in)
Compute CBC coefficients.
real(wp), dimension(:), allocatable pres_out
impure subroutine, public s_initialize_cbc_module
Initialize the CBC module.
type(int_bounds_info) is3
Indical bounds in the s1-, s2- and s3-directions.
real(wp), dimension(:,:,:,:), allocatable flux_rsx_vf_l
real(wp), dimension(:), allocatable del_out
real(wp), dimension(:,:,:,:), allocatable flux_src_rsy_vf_l
subroutine s_finalize_cbc(flux_vf, flux_src_vf)
Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC app...
elemental subroutine s_any_cbc_boundaries(toggle)
Detect whether any domain boundary uses characteristic boundary conditions.
real(wp), dimension(:), allocatable pres_in
integer cbc_loc
real(wp), dimension(:,:,:,:), allocatable flux_rsz_vf_l
real(wp), dimension(:,:,:,:), allocatable q_prim_rsx_vf
real(wp), dimension(:,:,:), allocatable pi_coef_x
Polynomial interpolant coefficients in x-dir.
real(wp), dimension(:,:,:,:), allocatable f_src_rsz_vf
integer cbc_dir
real(wp), dimension(:,:,:), allocatable pi_coef_y
Polynomial interpolant coefficients in y-dir.
real(wp), dimension(:,:), allocatable fd_coef_y
Finite diff. coefficients y-dir.
real(wp), dimension(:,:), allocatable vel_in
real(wp), dimension(:,:,:), allocatable pi_coef_z
Polynomial interpolant coefficients in z-dir.
impure subroutine, public s_finalize_cbc_module
Module deallocation and/or disassociation procedures.
real(wp), dimension(:,:,:,:), allocatable flux_src_rsz_vf_l
real(wp), dimension(:,:), allocatable alpha_in
real(wp), dimension(:), allocatable ds
Cell-width distribution in the s-direction.
real(wp), dimension(:,:,:,:), allocatable q_prim_rsy_vf
real(wp), dimension(:,:,:,:), allocatable f_src_rsx_vf
real(wp), dimension(:,:,:,:), allocatable f_rsy_vf
real(wp), dimension(:,:), allocatable fd_coef_z
Finite diff. coefficients, z-direction.
real(wp), dimension(:), allocatable del_in
type(int_bounds_info) is1
type(int_bounds_info) is2
real(wp), dimension(:,:,:,:), allocatable flux_rsy_vf_l
subroutine s_initialize_cbc(q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
Set up the selected CBC for the current boundary.
real(wp), dimension(:,:,:,:), allocatable f_rsx_vf
real(wp), dimension(:,:,:,:), allocatable flux_src_rsx_vf_l
real(wp), dimension(:,:,:,:), allocatable f_src_rsy_vf
real(wp), dimension(:,:,:,:), allocatable f_rsz_vf
integer flux_cbc_index
real(wp), dimension(:,:,:,:), allocatable q_prim_rsz_vf
Characteristic boundary condition (CBC) computations for subsonic inflow, outflow,...
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter riemann_solver_hll
integer, parameter recon_type_muscl
integer, parameter recon_type_weno
integer, parameter model_eqns_gamma_law
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer buff_size
Number of ghost cells for boundary condition storage.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Integer bounds for variables.