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 (CBC) for slip walls, non-reflecting subsonic inflow/outflow, and supersonic boundaries
7# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
8! This file exists so that Fypp can be run without generating case.fpp files for
9! each target. This is useful when generating documentation, for example. This
10! should also let MFC be built with CMake directly, without invoking mfc.sh.
11
12! For pre-process.
13# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
14
15! For moving immersed boundaries in simulation
16# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
17# 7 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp" 2
18# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
20# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
21# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26
27# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30
31# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32
33# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34
35# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36
37# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38
39# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40
41# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42
43# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44
45# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46! New line at end of file is required for FYPP
47# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
48# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
49# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
50# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55
56# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59
60# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61
62# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63
64# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65
66# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67
68# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69
70# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71
72# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73
74# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
75! New line at end of file is required for FYPP
76# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
77
78# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83
84# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85
86# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87
88# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89
90# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91
92# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93
94# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113
114# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115
116# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117
118# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119
120# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121
122# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123
124# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138
139# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150
151# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152
153# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154! New line at end of file is required for FYPP
155# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
156# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
157# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
158# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163
164# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167
168# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169
170# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171
172# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173
174# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175
176# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177
178# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179
180# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181
182# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183! New line at end of file is required for FYPP
184# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
185
186# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187
188# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189
190# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191
192# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193
194# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195
196# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197
198# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199
200# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201
202# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203
204# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205
206# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207
208# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209
210# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211
212# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213
214# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215
216# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217
218# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223
224# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225
226# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227
228# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229
230# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231
232# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233
234# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235
236# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237
238# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239
240# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241! New line at end of file is required for FYPP
242# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
243
244! GPU parallel region (scalar reductions, maxval/minval)
245# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246
247! GPU parallel loop over threads (most common GPU macro)
248# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249
250! Required closing for GPU_PARALLEL_LOOP
251# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252
253! Mark routine for device compilation
254# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255
256! Declare device-resident data
257# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258
259! Inner loop within a GPU parallel region
260# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261
262! Scoped GPU data region
263# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264
265! Host code with device pointers (for MPI with GPU buffers)
266# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267
268! Allocate device memory (unscoped)
269# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
270
271! Free device memory
272# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273
274! Atomic operation on device
275# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276
277! End atomic capture block
278# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
279
280! Copy data between host and device
281# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
282
283! Synchronization barrier
284# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
285
286! Import GPU library module (openacc or omp_lib)
287# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
288
289! Emit code only for AMD compiler
290# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
291
292! Emit code for non-Cray compilers
293# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
294
295! Emit code only for Cray compiler
296# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
297
298! Emit code for non-NVIDIA compilers
299# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
300
301# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
303! New line at end of file is required for FYPP
304# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
305
306# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
307
308! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
309! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
310! example see misc/nvidia_uvm/bind.sh.
311# 55 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
312
313! Allocate and create GPU device memory
314# 75 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
315
316! Free GPU device memory and deallocate
317# 83 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
318
319! Cray-specific GPU pointer setup for vector fields
320# 107 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
321
322! Cray-specific GPU pointer setup for scalar fields
323# 123 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
324
325! Cray-specific GPU pointer setup for acoustic source spatials
326# 148 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
327
328# 154 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
329
330# 161 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
331! New line at end of file is required for FYPP
332# 8 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp" 2
333
334module m_cbc
335
339 use m_compute_cbc
341 use m_thermochem, only: get_mixture_energy_mass, get_mixture_specific_heat_cv_mass, get_mixture_specific_heat_cp_mass, &
342 & gas_constant, get_mixture_molecular_weight, get_species_enthalpies_rt, molecular_weights, get_species_specific_heats_r, &
343 & get_mole_fractions, get_species_specific_heats_r
344
345 implicit none
346
348
349 ! The cell-average primitive variables. They are obtained by reshaping (RS) q_prim_vf in the coordinate direction normal to the
350 ! domain boundary along which the CBC is applied.
351
352 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsx_vf
353 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsy_vf
354 real(wp), allocatable, dimension(:,:,:,:) :: q_prim_rsz_vf
355
356# 30 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
357#if defined(MFC_OpenACC)
358# 30 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
359!$acc declare create(q_prim_rsx_vf, q_prim_rsy_vf, q_prim_rsz_vf)
360# 30 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
361#elif defined(MFC_OpenMP)
362# 30 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
363!$omp declare target (q_prim_rsx_vf, q_prim_rsy_vf, q_prim_rsz_vf)
364# 30 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
365#endif
366
367 ! Cell-average fluxes (src - source). These are directly determined from the cell-average primitive variables, q_prims_rs_vf,
368 ! and not a Riemann solver.
369
370 real(wp), allocatable, dimension(:,:,:,:) :: f_rsx_vf, f_src_rsx_vf
371 real(wp), allocatable, dimension(:,:,:,:) :: f_rsy_vf, f_src_rsy_vf
372 real(wp), allocatable, dimension(:,:,:,:) :: f_rsz_vf, f_src_rsz_vf
373
374# 38 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
375#if defined(MFC_OpenACC)
376# 38 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
377!$acc declare create(F_rsx_vf, F_src_rsx_vf, F_rsy_vf, F_src_rsy_vf, F_rsz_vf, F_src_rsz_vf)
378# 38 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
379#elif defined(MFC_OpenMP)
380# 38 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
381!$omp declare target (F_rsx_vf, F_src_rsx_vf, F_rsy_vf, F_src_rsy_vf, F_rsz_vf, F_src_rsz_vf)
382# 38 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
383#endif
384
385 ! There is a CCE bug that is causing some subset of these variables to interfere with variables of the same name in
386 ! m_riemann_solvers.fpp, and giving this versions unique "_l" names works around the bug. Other private module allocatable
387 ! arrays in `acc declare create` clauses don't have this problem, so we still need to isolate this bug.
388
389 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsx_vf_l, flux_src_rsx_vf_l
390 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsy_vf_l, flux_src_rsy_vf_l
391 real(wp), allocatable, dimension(:,:,:,:) :: flux_rsz_vf_l, flux_src_rsz_vf_l
392
393# 47 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
394#if defined(MFC_OpenACC)
395# 47 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
396!$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)
397# 47 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
398#elif defined(MFC_OpenMP)
399# 47 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
400!$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)
401# 47 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
402#endif
403
404 real(wp), allocatable, dimension(:) :: ds !< Cell-width distribution in the s-direction
405 ! CBC Coefficients
406
407 real(wp), allocatable, dimension(:,:) :: fd_coef_x !< Finite diff. coefficients x-dir
408 real(wp), allocatable, dimension(:,:) :: fd_coef_y !< Finite diff. coefficients y-dir
409 real(wp), allocatable, dimension(:,:) :: fd_coef_z !< Finite diff. coefficients, z-direction
410 ! Bug with NVHPC when using nullified pointers in a declare create real(wp), pointer, dimension(:, :) :: fd_coef => null()
411
412 real(wp), allocatable, dimension(:,:,:) :: pi_coef_x !< Polynomial interpolant coefficients in x-dir
413 real(wp), allocatable, dimension(:,:,:) :: pi_coef_y !< Polynomial interpolant coefficients in y-dir
414 real(wp), allocatable, dimension(:,:,:) :: pi_coef_z !< Polynomial interpolant coefficients in z-dir
415
416# 60 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
417#if defined(MFC_OpenACC)
418# 60 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
419!$acc declare create(ds, fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
420# 60 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
421#elif defined(MFC_OpenMP)
422# 60 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
423!$omp declare target (ds, fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
424# 60 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
425#endif
426
427 ! The first dimension of the array identifies the polynomial, the second dimension identifies the position of its coefficients
428 ! and the last dimension denotes the location of the CBC.
429
430 type(int_bounds_info) :: is1, is2, is3 !< Indical bounds in the s1-, s2- and s3-directions
431
432# 66 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
433#if defined(MFC_OpenACC)
434# 66 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
435!$acc declare create(is1, is2, is3)
436# 66 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
437#elif defined(MFC_OpenMP)
438# 66 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
439!$omp declare target (is1, is2, is3)
440# 66 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
441#endif
442
443 integer :: dj
444 integer :: cbc_dir, cbc_loc
445 integer :: flux_cbc_index
446
447# 71 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
448#if defined(MFC_OpenACC)
449# 71 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
450!$acc declare create(dj)
451# 71 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
452#elif defined(MFC_OpenMP)
453# 71 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
454!$omp declare target (dj)
455# 71 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
456#endif
457
458# 72 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
459#if defined(MFC_OpenACC)
460# 72 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
461!$acc declare create(cbc_dir, cbc_loc, flux_cbc_index)
462# 72 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
463#elif defined(MFC_OpenMP)
464# 72 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
465!$omp declare target (cbc_dir, cbc_loc, flux_cbc_index)
466# 72 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
467#endif
468
469 ! GRCBC inputs for subsonic inflow and outflow conditions consisting of inflow velocities, pressure, density and void fraction
470 ! as well as outflow velocities and pressure
471
472 real(wp), allocatable, dimension(:) :: pres_in, pres_out, del_in, del_out
473 real(wp), allocatable, dimension(:,:) :: vel_in, vel_out
474 real(wp), allocatable, dimension(:,:) :: alpha_rho_in, alpha_in
475
476# 80 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
477#if defined(MFC_OpenACC)
478# 80 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
479!$acc declare create(pres_in, pres_out, Del_in, Del_out)
480# 80 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
481#elif defined(MFC_OpenMP)
482# 80 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
483!$omp declare target (pres_in, pres_out, Del_in, Del_out)
484# 80 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
485#endif
486
487# 81 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
488#if defined(MFC_OpenACC)
489# 81 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
490!$acc declare create(vel_in, vel_out)
491# 81 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
492#elif defined(MFC_OpenMP)
493# 81 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
494!$omp declare target (vel_in, vel_out)
495# 81 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
496#endif
497
498# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
499#if defined(MFC_OpenACC)
500# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
501!$acc declare create(alpha_rho_in, alpha_in)
502# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
503#elif defined(MFC_OpenMP)
504# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
505!$omp declare target (alpha_rho_in, alpha_in)
506# 82 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
507#endif
508
509contains
510
511 !> Initialize the CBC module
512 impure subroutine s_initialize_cbc_module
513
514 integer :: i
515 logical :: is_cbc
516 type(int_bounds_info) :: idx1, idx2
517
518 if (chemistry) then
519 flux_cbc_index = sys_size
520 else
521 flux_cbc_index = eqn_idx%adv%end
522 end if
523
524# 98 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
525#if defined(MFC_OpenACC)
526# 98 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
527!$acc update device(flux_cbc_index)
528# 98 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
529#elif defined(MFC_OpenMP)
530# 98 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
531!$omp target update to(flux_cbc_index)
532# 98 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
533#endif
534
535 call s_any_cbc_boundaries(is_cbc)
536
537 if (is_cbc .eqv. .false.) return
538
539 if (n == 0) then
540 is2%beg = 0
541 else
542 is2%beg = -buff_size
543 end if
544
545 is2%end = n - is2%beg
546
547 if (p == 0) then
548 is3%beg = 0
549 else
550 is3%beg = -buff_size
551 end if
552 is3%end = p - is3%beg
553
554#ifdef MFC_DEBUG
555# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
556 block
557# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
558 use iso_fortran_env, only: output_unit
559# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
560
561# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
562 print *, 'm_cbc.fpp:119: ', '@:ALLOCATE(q_prim_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
563# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
564
565# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
566 call flush (output_unit)
567# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
568 end block
569# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
570#endif
571# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
572 allocate (q_prim_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
573# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
574
575# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
576
577# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
578#if defined(MFC_OpenACC)
579# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
580!$acc enter data create(q_prim_rsx_vf)
581# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
582#elif defined(MFC_OpenMP)
583# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
584!$omp target enter data map(always,alloc:q_prim_rsx_vf)
585# 119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
586#endif
587
588 if (weno_order > 1 .or. muscl_order > 1) then
589#ifdef MFC_DEBUG
590# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
591 block
592# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
593 use iso_fortran_env, only: output_unit
594# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
595
596# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
597 print *, 'm_cbc.fpp:122: ', '@:ALLOCATE(F_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
598# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
599
600# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
601 call flush (output_unit)
602# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
603 end block
604# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
605#endif
606# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
607 allocate (f_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
608# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
609
610# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
611
612# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
613#if defined(MFC_OpenACC)
614# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
615!$acc enter data create(F_rsx_vf)
616# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
617#elif defined(MFC_OpenMP)
618# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
619!$omp target enter data map(always,alloc:F_rsx_vf)
620# 122 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
621#endif
622
623#ifdef MFC_DEBUG
624# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
625 block
626# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
627 use iso_fortran_env, only: output_unit
628# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
629
630# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
631 print *, 'm_cbc.fpp:124: ', '@:ALLOCATE(F_src_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
632# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
633
634# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
635 call flush (output_unit)
636# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
637 end block
638# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
639#endif
640# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
641 allocate (f_src_rsx_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
642# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
643
644# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
645
646# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
647#if defined(MFC_OpenACC)
648# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
649!$acc enter data create(F_src_rsx_vf)
650# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
651#elif defined(MFC_OpenMP)
652# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
653!$omp target enter data map(always,alloc:F_src_rsx_vf)
654# 124 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
655#endif
656 end if
657
658#ifdef MFC_DEBUG
659# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
660 block
661# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
662 use iso_fortran_env, only: output_unit
663# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
664
665# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
666 print *, 'm_cbc.fpp:127: ', '@:ALLOCATE(flux_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
667# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
668
669# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
670 call flush (output_unit)
671# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
672 end block
673# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
674#endif
675# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
676 allocate (flux_rsx_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
677# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
678
679# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
680
681# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
682#if defined(MFC_OpenACC)
683# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
684!$acc enter data create(flux_rsx_vf_l)
685# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
686#elif defined(MFC_OpenMP)
687# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
688!$omp target enter data map(always,alloc:flux_rsx_vf_l)
689# 127 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
690#endif
691
692#ifdef MFC_DEBUG
693# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
694 block
695# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
696 use iso_fortran_env, only: output_unit
697# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
698
699# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
700 print *, 'm_cbc.fpp:129: ', '@: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))'
701# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
702
703# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
704 call flush (output_unit)
705# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
706 end block
707# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
708#endif
709# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
710 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))
711# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
712
713# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
714
715# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
716#if defined(MFC_OpenACC)
717# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
718!$acc enter data create(flux_src_rsx_vf_l)
719# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
720#elif defined(MFC_OpenMP)
721# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
722!$omp target enter data map(always,alloc:flux_src_rsx_vf_l)
723# 129 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
724#endif
725
726 if (n > 0) then
727 if (m == 0) then
728 is2%beg = 0
729 else
730 is2%beg = -buff_size
731 end if
732
733 is2%end = m - is2%beg
734
735 if (p == 0) then
736 is3%beg = 0
737 else
738 is3%beg = -buff_size
739 end if
740 is3%end = p - is3%beg
741
742#ifdef MFC_DEBUG
743# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
744 block
745# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
746 use iso_fortran_env, only: output_unit
747# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
748
749# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
750 print *, 'm_cbc.fpp:147: ', '@:ALLOCATE(q_prim_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
751# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
752
753# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
754 call flush (output_unit)
755# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
756 end block
757# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
758#endif
759# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
760 allocate (q_prim_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
761# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
762
763# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
764
765# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
766#if defined(MFC_OpenACC)
767# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
768!$acc enter data create(q_prim_rsy_vf)
769# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
770#elif defined(MFC_OpenMP)
771# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
772!$omp target enter data map(always,alloc:q_prim_rsy_vf)
773# 147 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
774#endif
775
776 if (weno_order > 1 .or. muscl_order > 1) then
777#ifdef MFC_DEBUG
778# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
779 block
780# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
781 use iso_fortran_env, only: output_unit
782# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
783
784# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
785 print *, 'm_cbc.fpp:150: ', '@:ALLOCATE(F_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
786# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
787
788# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
789 call flush (output_unit)
790# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
791 end block
792# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
793#endif
794# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
795 allocate (f_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
796# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
797
798# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
799
800# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
801#if defined(MFC_OpenACC)
802# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
803!$acc enter data create(F_rsy_vf)
804# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
805#elif defined(MFC_OpenMP)
806# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
807!$omp target enter data map(always,alloc:F_rsy_vf)
808# 150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
809#endif
810
811#ifdef MFC_DEBUG
812# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
813 block
814# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
815 use iso_fortran_env, only: output_unit
816# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
817
818# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
819 print *, 'm_cbc.fpp:152: ', '@:ALLOCATE(F_src_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
820# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
821
822# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
823 call flush (output_unit)
824# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
825 end block
826# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
827#endif
828# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
829 allocate (f_src_rsy_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
830# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
831
832# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
833
834# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
835#if defined(MFC_OpenACC)
836# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
837!$acc enter data create(F_src_rsy_vf)
838# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
839#elif defined(MFC_OpenMP)
840# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
841!$omp target enter data map(always,alloc:F_src_rsy_vf)
842# 152 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
843#endif
844 end if
845
846#ifdef MFC_DEBUG
847# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
848 block
849# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
850 use iso_fortran_env, only: output_unit
851# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
852
853# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
854 print *, 'm_cbc.fpp:155: ', '@:ALLOCATE(flux_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
855# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
856
857# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
858 call flush (output_unit)
859# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
860 end block
861# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
862#endif
863# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
864 allocate (flux_rsy_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
865# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
866
867# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
868
869# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
870#if defined(MFC_OpenACC)
871# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
872!$acc enter data create(flux_rsy_vf_l)
873# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
874#elif defined(MFC_OpenMP)
875# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
876!$omp target enter data map(always,alloc:flux_rsy_vf_l)
877# 155 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
878#endif
879
880#ifdef MFC_DEBUG
881# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
882 block
883# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
884 use iso_fortran_env, only: output_unit
885# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
886
887# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
888 print *, 'm_cbc.fpp:157: ', '@: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))'
889# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
890
891# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
892 call flush (output_unit)
893# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
894 end block
895# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
896#endif
897# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
898 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))
899# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
900
901# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
902
903# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
904#if defined(MFC_OpenACC)
905# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
906!$acc enter data create(flux_src_rsy_vf_l)
907# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
908#elif defined(MFC_OpenMP)
909# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
910!$omp target enter data map(always,alloc:flux_src_rsy_vf_l)
911# 157 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
912#endif
913 end if
914
915 if (p > 0) then
916 if (n == 0) then
917 is2%beg = 0
918 else
919 is2%beg = -buff_size
920 end if
921
922 is2%end = n - is2%beg
923
924 if (m == 0) then
925 is3%beg = 0
926 else
927 is3%beg = -buff_size
928 end if
929 is3%end = m - is3%beg
930
931#ifdef MFC_DEBUG
932# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
933 block
934# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
935 use iso_fortran_env, only: output_unit
936# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
937
938# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
939 print *, 'm_cbc.fpp:176: ', '@:ALLOCATE(q_prim_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))'
940# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
941
942# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
943 call flush (output_unit)
944# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
945 end block
946# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
947#endif
948# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
949 allocate (q_prim_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:sys_size))
950# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
951
952# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
953
954# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
955#if defined(MFC_OpenACC)
956# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
957!$acc enter data create(q_prim_rsz_vf)
958# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
959#elif defined(MFC_OpenMP)
960# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
961!$omp target enter data map(always,alloc:q_prim_rsz_vf)
962# 176 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
963#endif
964
965 if (weno_order > 1 .or. muscl_order > 1) then
966#ifdef MFC_DEBUG
967# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
968 block
969# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
970 use iso_fortran_env, only: output_unit
971# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
972
973# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
974 print *, 'm_cbc.fpp:179: ', '@:ALLOCATE(F_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
975# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
976
977# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
978 call flush (output_unit)
979# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
980 end block
981# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
982#endif
983# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
984 allocate (f_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
985# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
986
987# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
988
989# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
990#if defined(MFC_OpenACC)
991# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
992!$acc enter data create(F_rsz_vf)
993# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
994#elif defined(MFC_OpenMP)
995# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
996!$omp target enter data map(always,alloc:F_rsz_vf)
997# 179 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
998#endif
999
1000#ifdef MFC_DEBUG
1001# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1002 block
1003# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1004 use iso_fortran_env, only: output_unit
1005# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1006
1007# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1008 print *, 'm_cbc.fpp:181: ', '@:ALLOCATE(F_src_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))'
1009# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1010
1011# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1012 call flush (output_unit)
1013# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1014 end block
1015# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1016#endif
1017# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1018 allocate (f_src_rsz_vf(0:buff_size, is2%beg:is2%end, is3%beg:is3%end, eqn_idx%adv%beg:eqn_idx%adv%end))
1019# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1020
1021# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1022
1023# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1024#if defined(MFC_OpenACC)
1025# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1026!$acc enter data create(F_src_rsz_vf)
1027# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1028#elif defined(MFC_OpenMP)
1029# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1030!$omp target enter data map(always,alloc:F_src_rsz_vf)
1031# 181 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1032#endif
1033 end if
1034
1035#ifdef MFC_DEBUG
1036# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1037 block
1038# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1039 use iso_fortran_env, only: output_unit
1040# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1041
1042# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1043 print *, 'm_cbc.fpp:184: ', '@:ALLOCATE(flux_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))'
1044# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1045
1046# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1047 call flush (output_unit)
1048# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1049 end block
1050# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1051#endif
1052# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1053 allocate (flux_rsz_vf_l(-1:buff_size, is2%beg:is2%end, is3%beg:is3%end, 1:flux_cbc_index))
1054# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1055
1056# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1057
1058# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1059#if defined(MFC_OpenACC)
1060# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1061!$acc enter data create(flux_rsz_vf_l)
1062# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1063#elif defined(MFC_OpenMP)
1064# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1065!$omp target enter data map(always,alloc:flux_rsz_vf_l)
1066# 184 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1067#endif
1068
1069#ifdef MFC_DEBUG
1070# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1071 block
1072# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1073 use iso_fortran_env, only: output_unit
1074# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1075
1076# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1077 print *, 'm_cbc.fpp:186: ', '@: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))'
1078# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1079
1080# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1081 call flush (output_unit)
1082# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1083 end block
1084# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1085#endif
1086# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1087 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))
1088# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1089
1090# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1091
1092# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1093#if defined(MFC_OpenACC)
1094# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1095!$acc enter data create(flux_src_rsz_vf_l)
1096# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1097#elif defined(MFC_OpenMP)
1098# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1099!$omp target enter data map(always,alloc:flux_src_rsz_vf_l)
1100# 186 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1101#endif
1102 end if
1103
1104 ! Allocating the cell-width distribution in the s-direction
1105#ifdef MFC_DEBUG
1106# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1107 block
1108# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1109 use iso_fortran_env, only: output_unit
1110# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1111
1112# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1113 print *, 'm_cbc.fpp:190: ', '@:ALLOCATE(ds(0:buff_size))'
1114# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1115
1116# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1117 call flush (output_unit)
1118# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1119 end block
1120# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1121#endif
1122# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1123 allocate (ds(0:buff_size))
1124# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1125
1126# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1127
1128# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1129#if defined(MFC_OpenACC)
1130# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1131!$acc enter data create(ds)
1132# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1133#elif defined(MFC_OpenMP)
1134# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1135!$omp target enter data map(always,alloc:ds)
1136# 190 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1137#endif
1138
1139 if (recon_type == recon_type_weno) then
1140 idx1%beg = 0
1141 idx1%end = weno_polyn - 1
1142 idx2%beg = 0
1143 idx2%end = weno_order - 3
1144 else if (recon_type == recon_type_muscl) then
1145 idx1%beg = 0
1146 idx1%end = muscl_polyn
1147 idx2%beg = 0
1148 idx2%end = muscl_order - 1
1149 end if
1150 ! Allocating/Computing CBC Coefficients in x-direction
1151 if (all((/bc_x%beg, bc_x%end/) <= -5) .and. all((/bc_x%beg, bc_x%end/) >= -13)) then
1152#ifdef MFC_DEBUG
1153# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1154 block
1155# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1156 use iso_fortran_env, only: output_unit
1157# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1158
1159# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1160 print *, 'm_cbc.fpp:205: ', '@:ALLOCATE(fd_coef_x(0:buff_size, -1:1))'
1161# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1162
1163# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1164 call flush (output_unit)
1165# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1166 end block
1167# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1168#endif
1169# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1170 allocate (fd_coef_x(0:buff_size, -1:1))
1171# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1172
1173# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1174
1175# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1176#if defined(MFC_OpenACC)
1177# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1178!$acc enter data create(fd_coef_x)
1179# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1180#elif defined(MFC_OpenMP)
1181# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1182!$omp target enter data map(always,alloc:fd_coef_x)
1183# 205 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1184#endif
1185
1186 if (weno_order > 1 .or. muscl_order > 1) then
1187#ifdef MFC_DEBUG
1188# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1189 block
1190# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1191 use iso_fortran_env, only: output_unit
1192# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1193
1194# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1195 print *, 'm_cbc.fpp:208: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1196# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1197
1198# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1199 call flush (output_unit)
1200# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1201 end block
1202# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1203#endif
1204# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1205 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1206# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1207
1208# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1209
1210# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1211#if defined(MFC_OpenACC)
1212# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1213!$acc enter data create(pi_coef_x)
1214# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1215#elif defined(MFC_OpenMP)
1216# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1217!$omp target enter data map(always,alloc:pi_coef_x)
1218# 208 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1219#endif
1220 end if
1221
1222 call s_compute_cbc_coefficients(1, -1)
1224 else if (bc_x%beg <= -5 .and. bc_x%beg >= -13) then
1225#ifdef MFC_DEBUG
1226# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1227 block
1228# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1229 use iso_fortran_env, only: output_unit
1230# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1231
1232# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1233 print *, 'm_cbc.fpp:214: ', '@:ALLOCATE(fd_coef_x(0:buff_size, -1:-1))'
1234# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1235
1236# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1237 call flush (output_unit)
1238# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1239 end block
1240# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1241#endif
1242# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1243 allocate (fd_coef_x(0:buff_size, -1:-1))
1244# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1245
1246# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1247
1248# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1249#if defined(MFC_OpenACC)
1250# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1251!$acc enter data create(fd_coef_x)
1252# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1253#elif defined(MFC_OpenMP)
1254# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1255!$omp target enter data map(always,alloc:fd_coef_x)
1256# 214 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1257#endif
1258
1259 if (weno_order > 1 .or. muscl_order > 1) then
1260#ifdef MFC_DEBUG
1261# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1262 block
1263# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1264 use iso_fortran_env, only: output_unit
1265# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1266
1267# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1268 print *, 'm_cbc.fpp:217: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1269# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1270
1271# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1272 call flush (output_unit)
1273# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1274 end block
1275# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1276#endif
1277# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1278 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1279# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1280
1281# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1282
1283# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1284#if defined(MFC_OpenACC)
1285# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1286!$acc enter data create(pi_coef_x)
1287# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1288#elif defined(MFC_OpenMP)
1289# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1290!$omp target enter data map(always,alloc:pi_coef_x)
1291# 217 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1292#endif
1293 end if
1294
1295 call s_compute_cbc_coefficients(1, -1)
1296 else if (bc_x%end <= -5 .and. bc_x%end >= -13) then
1297#ifdef MFC_DEBUG
1298# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1299 block
1300# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1301 use iso_fortran_env, only: output_unit
1302# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1303
1304# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1305 print *, 'm_cbc.fpp:222: ', '@:ALLOCATE(fd_coef_x(0:buff_size, 1:1))'
1306# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1307
1308# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1309 call flush (output_unit)
1310# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1311 end block
1312# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1313#endif
1314# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1315 allocate (fd_coef_x(0:buff_size, 1:1))
1316# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1317
1318# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1319
1320# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1321#if defined(MFC_OpenACC)
1322# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1323!$acc enter data create(fd_coef_x)
1324# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1325#elif defined(MFC_OpenMP)
1326# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1327!$omp target enter data map(always,alloc:fd_coef_x)
1328# 222 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1329#endif
1330
1331 if (weno_order > 1 .or. muscl_order > 1) then
1332#ifdef MFC_DEBUG
1333# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1334 block
1335# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1336 use iso_fortran_env, only: output_unit
1337# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1338
1339# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1340 print *, 'm_cbc.fpp:225: ', '@:ALLOCATE(pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1341# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1342
1343# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1344 call flush (output_unit)
1345# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1346 end block
1347# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1348#endif
1349# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1350 allocate (pi_coef_x(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1351# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1352
1353# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1354
1355# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1356#if defined(MFC_OpenACC)
1357# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1358!$acc enter data create(pi_coef_x)
1359# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1360#elif defined(MFC_OpenMP)
1361# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1362!$omp target enter data map(always,alloc:pi_coef_x)
1363# 225 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1364#endif
1365 end if
1366
1368 end if
1369
1370 ! Allocating/Computing CBC Coefficients in y-direction
1371 if (n > 0) then
1372 if (all((/bc_y%beg, bc_y%end/) <= -5) .and. all((/bc_y%beg, bc_y%end/) >= -13)) then
1373#ifdef MFC_DEBUG
1374# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1375 block
1376# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1377 use iso_fortran_env, only: output_unit
1378# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1379
1380# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1381 print *, 'm_cbc.fpp:234: ', '@:ALLOCATE(fd_coef_y(0:buff_size, -1:1))'
1382# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1383
1384# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1385 call flush (output_unit)
1386# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1387 end block
1388# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1389#endif
1390# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1391 allocate (fd_coef_y(0:buff_size, -1:1))
1392# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1393
1394# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1395
1396# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1397#if defined(MFC_OpenACC)
1398# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1399!$acc enter data create(fd_coef_y)
1400# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1401#elif defined(MFC_OpenMP)
1402# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1403!$omp target enter data map(always,alloc:fd_coef_y)
1404# 234 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1405#endif
1406
1407 if (weno_order > 1 .or. muscl_order > 1) then
1408#ifdef MFC_DEBUG
1409# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1410 block
1411# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1412 use iso_fortran_env, only: output_unit
1413# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1414
1415# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1416 print *, 'm_cbc.fpp:237: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1417# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1418
1419# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1420 call flush (output_unit)
1421# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1422 end block
1423# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1424#endif
1425# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1426 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1427# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1428
1429# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1430
1431# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1432#if defined(MFC_OpenACC)
1433# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1434!$acc enter data create(pi_coef_y)
1435# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1436#elif defined(MFC_OpenMP)
1437# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1438!$omp target enter data map(always,alloc:pi_coef_y)
1439# 237 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1440#endif
1441 end if
1442
1443 call s_compute_cbc_coefficients(2, -1)
1445 else if (bc_y%beg <= -5 .and. bc_y%beg >= -13) then
1446#ifdef MFC_DEBUG
1447# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1448 block
1449# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1450 use iso_fortran_env, only: output_unit
1451# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1452
1453# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1454 print *, 'm_cbc.fpp:243: ', '@:ALLOCATE(fd_coef_y(0:buff_size, -1:-1))'
1455# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1456
1457# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1458 call flush (output_unit)
1459# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1460 end block
1461# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1462#endif
1463# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1464 allocate (fd_coef_y(0:buff_size, -1:-1))
1465# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1466
1467# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1468
1469# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1470#if defined(MFC_OpenACC)
1471# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1472!$acc enter data create(fd_coef_y)
1473# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1474#elif defined(MFC_OpenMP)
1475# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1476!$omp target enter data map(always,alloc:fd_coef_y)
1477# 243 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1478#endif
1479
1480 if (weno_order > 1 .or. muscl_order > 1) then
1481#ifdef MFC_DEBUG
1482# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1483 block
1484# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1485 use iso_fortran_env, only: output_unit
1486# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1487
1488# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1489 print *, 'm_cbc.fpp:246: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1490# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1491
1492# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1493 call flush (output_unit)
1494# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1495 end block
1496# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1497#endif
1498# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1499 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1500# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1501
1502# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1503
1504# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1505#if defined(MFC_OpenACC)
1506# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1507!$acc enter data create(pi_coef_y)
1508# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1509#elif defined(MFC_OpenMP)
1510# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1511!$omp target enter data map(always,alloc:pi_coef_y)
1512# 246 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1513#endif
1514 end if
1515
1516 call s_compute_cbc_coefficients(2, -1)
1517 else if (bc_y%end <= -5 .and. bc_y%end >= -13) then
1518#ifdef MFC_DEBUG
1519# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1520 block
1521# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1522 use iso_fortran_env, only: output_unit
1523# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1524
1525# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1526 print *, 'm_cbc.fpp:251: ', '@:ALLOCATE(fd_coef_y(0:buff_size, 1:1))'
1527# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1528
1529# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1530 call flush (output_unit)
1531# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1532 end block
1533# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1534#endif
1535# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1536 allocate (fd_coef_y(0:buff_size, 1:1))
1537# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1538
1539# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1540
1541# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1542#if defined(MFC_OpenACC)
1543# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1544!$acc enter data create(fd_coef_y)
1545# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1546#elif defined(MFC_OpenMP)
1547# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1548!$omp target enter data map(always,alloc:fd_coef_y)
1549# 251 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1550#endif
1551
1552 if (weno_order > 1 .or. muscl_order > 1) then
1553#ifdef MFC_DEBUG
1554# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1555 block
1556# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1557 use iso_fortran_env, only: output_unit
1558# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1559
1560# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1561 print *, 'm_cbc.fpp:254: ', '@:ALLOCATE(pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1562# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1563
1564# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1565 call flush (output_unit)
1566# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1567 end block
1568# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1569#endif
1570# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1571 allocate (pi_coef_y(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1572# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1573
1574# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1575
1576# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1577#if defined(MFC_OpenACC)
1578# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1579!$acc enter data create(pi_coef_y)
1580# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1581#elif defined(MFC_OpenMP)
1582# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1583!$omp target enter data map(always,alloc:pi_coef_y)
1584# 254 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1585#endif
1586 end if
1587
1589 end if
1590 end if
1591
1592 ! Allocating/Computing CBC Coefficients in z-direction
1593 if (p > 0) then
1594 if (all((/bc_z%beg, bc_z%end/) <= -5) .and. all((/bc_z%beg, bc_z%end/) >= -13)) then
1595#ifdef MFC_DEBUG
1596# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1597 block
1598# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1599 use iso_fortran_env, only: output_unit
1600# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1601
1602# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1603 print *, 'm_cbc.fpp:264: ', '@:ALLOCATE(fd_coef_z(0:buff_size, -1:1))'
1604# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1605
1606# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1607 call flush (output_unit)
1608# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1609 end block
1610# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1611#endif
1612# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1613 allocate (fd_coef_z(0:buff_size, -1:1))
1614# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1615
1616# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1617
1618# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1619#if defined(MFC_OpenACC)
1620# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1621!$acc enter data create(fd_coef_z)
1622# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1623#elif defined(MFC_OpenMP)
1624# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1625!$omp target enter data map(always,alloc:fd_coef_z)
1626# 264 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1627#endif
1628
1629 if (weno_order > 1 .or. muscl_order > 1) then
1630#ifdef MFC_DEBUG
1631# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1632 block
1633# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1634 use iso_fortran_env, only: output_unit
1635# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1636
1637# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1638 print *, 'm_cbc.fpp:267: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))'
1639# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1640
1641# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1642 call flush (output_unit)
1643# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1644 end block
1645# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1646#endif
1647# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1648 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:1))
1649# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1650
1651# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1652
1653# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1654#if defined(MFC_OpenACC)
1655# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1656!$acc enter data create(pi_coef_z)
1657# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1658#elif defined(MFC_OpenMP)
1659# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1660!$omp target enter data map(always,alloc:pi_coef_z)
1661# 267 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1662#endif
1663 end if
1664
1665 call s_compute_cbc_coefficients(3, -1)
1667 else if (bc_z%beg <= -5 .and. bc_z%beg >= -13) then
1668#ifdef MFC_DEBUG
1669# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1670 block
1671# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1672 use iso_fortran_env, only: output_unit
1673# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1674
1675# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1676 print *, 'm_cbc.fpp:273: ', '@:ALLOCATE(fd_coef_z(0:buff_size, -1:-1))'
1677# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1678
1679# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1680 call flush (output_unit)
1681# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1682 end block
1683# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1684#endif
1685# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1686 allocate (fd_coef_z(0:buff_size, -1:-1))
1687# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1688
1689# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1690
1691# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1692#if defined(MFC_OpenACC)
1693# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1694!$acc enter data create(fd_coef_z)
1695# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1696#elif defined(MFC_OpenMP)
1697# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1698!$omp target enter data map(always,alloc:fd_coef_z)
1699# 273 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1700#endif
1701
1702 if (weno_order > 1 .or. muscl_order > 1) then
1703#ifdef MFC_DEBUG
1704# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1705 block
1706# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1707 use iso_fortran_env, only: output_unit
1708# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1709
1710# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1711 print *, 'm_cbc.fpp:276: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))'
1712# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1713
1714# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1715 call flush (output_unit)
1716# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1717 end block
1718# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1719#endif
1720# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1721 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, -1:-1))
1722# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1723
1724# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1725
1726# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1727#if defined(MFC_OpenACC)
1728# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1729!$acc enter data create(pi_coef_z)
1730# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1731#elif defined(MFC_OpenMP)
1732# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1733!$omp target enter data map(always,alloc:pi_coef_z)
1734# 276 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1735#endif
1736 end if
1737
1738 call s_compute_cbc_coefficients(3, -1)
1739 else if (bc_z%end <= -5 .and. bc_z%end >= -13) then
1740#ifdef MFC_DEBUG
1741# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1742 block
1743# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1744 use iso_fortran_env, only: output_unit
1745# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1746
1747# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1748 print *, 'm_cbc.fpp:281: ', '@:ALLOCATE(fd_coef_z(0:buff_size, 1:1))'
1749# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1750
1751# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1752 call flush (output_unit)
1753# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1754 end block
1755# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1756#endif
1757# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1758 allocate (fd_coef_z(0:buff_size, 1:1))
1759# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1760
1761# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1762
1763# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1764#if defined(MFC_OpenACC)
1765# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1766!$acc enter data create(fd_coef_z)
1767# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1768#elif defined(MFC_OpenMP)
1769# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1770!$omp target enter data map(always,alloc:fd_coef_z)
1771# 281 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1772#endif
1773
1774 if (weno_order > 1 .or. muscl_order > 1) then
1775#ifdef MFC_DEBUG
1776# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1777 block
1778# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1779 use iso_fortran_env, only: output_unit
1780# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1781
1782# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1783 print *, 'm_cbc.fpp:284: ', '@:ALLOCATE(pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))'
1784# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1785
1786# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1787 call flush (output_unit)
1788# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1789 end block
1790# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1791#endif
1792# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1793 allocate (pi_coef_z(idx1%beg:idx1%end, idx2%beg:idx2%end, 1:1))
1794# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1795
1796# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1797
1798# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1799#if defined(MFC_OpenACC)
1800# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1801!$acc enter data create(pi_coef_z)
1802# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1803#elif defined(MFC_OpenMP)
1804# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1805!$omp target enter data map(always,alloc:pi_coef_z)
1806# 284 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1807#endif
1808 end if
1809
1811 end if
1812 end if
1813
1814
1815# 291 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1816#if defined(MFC_OpenACC)
1817# 291 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1818!$acc update device(fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
1819# 291 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1820#elif defined(MFC_OpenMP)
1821# 291 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1822!$omp target update to(fd_coef_x, fd_coef_y, fd_coef_z, pi_coef_x, pi_coef_y, pi_coef_z)
1823# 291 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1824#endif
1825
1826 ! Allocate GRCBC inputs
1827#ifdef MFC_DEBUG
1828# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1829 block
1830# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1831 use iso_fortran_env, only: output_unit
1832# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1833
1834# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1835 print *, 'm_cbc.fpp:294: ', '@:ALLOCATE(pres_in(1:num_dims), pres_out(1:num_dims))'
1836# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1837
1838# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1839 call flush (output_unit)
1840# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1841 end block
1842# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1843#endif
1844# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1845 allocate (pres_in(1:num_dims), pres_out(1:num_dims))
1846# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1847
1848# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1849
1850# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1851
1852# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1853#if defined(MFC_OpenACC)
1854# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1855!$acc enter data create(pres_in, pres_out)
1856# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1857#elif defined(MFC_OpenMP)
1858# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1859!$omp target enter data map(always,alloc:pres_in, pres_out)
1860# 294 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1861#endif
1862#ifdef MFC_DEBUG
1863# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1864 block
1865# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1866 use iso_fortran_env, only: output_unit
1867# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1868
1869# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1870 print *, 'm_cbc.fpp:295: ', '@:ALLOCATE(Del_in(1:num_dims), Del_out(1:num_dims))'
1871# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1872
1873# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1874 call flush (output_unit)
1875# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1876 end block
1877# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1878#endif
1879# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1880 allocate (del_in(1:num_dims), del_out(1:num_dims))
1881# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1882
1883# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1884
1885# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1886
1887# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1888#if defined(MFC_OpenACC)
1889# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1890!$acc enter data create(Del_in, Del_out)
1891# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1892#elif defined(MFC_OpenMP)
1893# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1894!$omp target enter data map(always,alloc:Del_in, Del_out)
1895# 295 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1896#endif
1897#ifdef MFC_DEBUG
1898# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1899 block
1900# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1901 use iso_fortran_env, only: output_unit
1902# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1903
1904# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1905 print *, 'm_cbc.fpp:296: ', '@:ALLOCATE(vel_in(1:num_dims, 1:num_dims), vel_out(1:num_dims, 1:num_dims))'
1906# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1907
1908# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1909 call flush (output_unit)
1910# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1911 end block
1912# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1913#endif
1914# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1915 allocate (vel_in(1:num_dims, 1:num_dims), vel_out(1:num_dims, 1:num_dims))
1916# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1917
1918# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1919
1920# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1921
1922# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1923#if defined(MFC_OpenACC)
1924# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1925!$acc enter data create(vel_in, vel_out)
1926# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1927#elif defined(MFC_OpenMP)
1928# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1929!$omp target enter data map(always,alloc:vel_in, vel_out)
1930# 296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1931#endif
1932#ifdef MFC_DEBUG
1933# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1934 block
1935# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1936 use iso_fortran_env, only: output_unit
1937# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1938
1939# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1940 print *, 'm_cbc.fpp:297: ', '@:ALLOCATE(alpha_rho_in(1:num_fluids, 1:num_dims), alpha_in(1:num_fluids, 1:num_dims))'
1941# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1942
1943# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1944 call flush (output_unit)
1945# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1946 end block
1947# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1948#endif
1949# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1950 allocate (alpha_rho_in(1:num_fluids, 1:num_dims), alpha_in(1:num_fluids, 1:num_dims))
1951# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1952
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
1957# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1958#if defined(MFC_OpenACC)
1959# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1960!$acc enter data create(alpha_rho_in, alpha_in)
1961# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1962#elif defined(MFC_OpenMP)
1963# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1964!$omp target enter data map(always,alloc:alpha_rho_in, alpha_in)
1965# 297 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1966#endif
1967
1968 ! Assign and update GRCBC inputs
1969# 301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1970 if (1 <= num_dims) then
1971 vel_in(1, 1) = bc_x%vel_in(1)
1972 vel_out(1, 1) = bc_x%vel_out(1)
1973 if (n > 0) then
1974 vel_in(1, 2) = bc_x%vel_in(2)
1975 vel_out(1, 2) = bc_x%vel_out(2)
1976 if (p > 0) then
1977 vel_in(1, 3) = bc_x%vel_in(3)
1978 vel_out(1, 3) = bc_x%vel_out(3)
1979 end if
1980 end if
1981 del_in(1) = maxval(dx)
1982 del_out(1) = maxval(dx)
1983 pres_in(1) = bc_x%pres_in
1984 pres_out(1) = bc_x%pres_out
1985 do i = 1, num_fluids
1986 alpha_rho_in(i, 1) = bc_x%alpha_rho_in(i)
1987 alpha_in(i, 1) = bc_x%alpha_in(i)
1988 end do
1989 end if
1990# 301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
1991 if (2 <= num_dims) then
1992 vel_in(2, 1) = bc_y%vel_in(1)
1993 vel_out(2, 1) = bc_y%vel_out(1)
1994 if (n > 0) then
1995 vel_in(2, 2) = bc_y%vel_in(2)
1996 vel_out(2, 2) = bc_y%vel_out(2)
1997 if (p > 0) then
1998 vel_in(2, 3) = bc_y%vel_in(3)
1999 vel_out(2, 3) = bc_y%vel_out(3)
2000 end if
2001 end if
2002 del_in(2) = maxval(dy)
2003 del_out(2) = maxval(dy)
2004 pres_in(2) = bc_y%pres_in
2005 pres_out(2) = bc_y%pres_out
2006 do i = 1, num_fluids
2007 alpha_rho_in(i, 2) = bc_y%alpha_rho_in(i)
2008 alpha_in(i, 2) = bc_y%alpha_in(i)
2009 end do
2010 end if
2011# 301 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2012 if (3 <= num_dims) then
2013 vel_in(3, 1) = bc_z%vel_in(1)
2014 vel_out(3, 1) = bc_z%vel_out(1)
2015 if (n > 0) then
2016 vel_in(3, 2) = bc_z%vel_in(2)
2017 vel_out(3, 2) = bc_z%vel_out(2)
2018 if (p > 0) then
2019 vel_in(3, 3) = bc_z%vel_in(3)
2020 vel_out(3, 3) = bc_z%vel_out(3)
2021 end if
2022 end if
2023 del_in(3) = maxval(dz)
2024 del_out(3) = maxval(dz)
2025 pres_in(3) = bc_z%pres_in
2026 pres_out(3) = bc_z%pres_out
2027 do i = 1, num_fluids
2028 alpha_rho_in(i, 3) = bc_z%alpha_rho_in(i)
2029 alpha_in(i, 3) = bc_z%alpha_in(i)
2030 end do
2031 end if
2032# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2033
2034# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2035#if defined(MFC_OpenACC)
2036# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2037!$acc update device(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
2038# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2039#elif defined(MFC_OpenMP)
2040# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2041!$omp target update to(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
2042# 322 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2043#endif
2044
2045 end subroutine s_initialize_cbc_module
2046
2047 !> Compute CBC coefficients
2048 subroutine s_compute_cbc_coefficients(cbc_dir_in, cbc_loc_in)
2049
2050 ! Compute grid-dependent CBC coefficients for given direction and location
2051
2052 ! CBC coordinate direction and location
2053 integer, intent(in) :: cbc_dir_in, cbc_loc_in
2054
2055 ! Cell-boundary locations in the s-direction
2056 real(wp), dimension(0:buff_size + 1) :: s_cb
2057
2058 ! Generic loop iterator
2059 integer :: i
2060
2061 ! Associating CBC coefficients pointers
2062
2063 call s_associate_cbc_coefficients_pointers(cbc_dir_in, cbc_loc_in)
2064
2065 ! Determining the cell-boundary locations in the s-direction
2066 s_cb(0) = 0._wp
2067
2068 do i = 0, buff_size
2069 s_cb(i + 1) = s_cb(i) + ds(i)
2070 end do
2071
2072 ! Computing CBC1 Coefficients
2073# 353 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2074 if (cbc_dir_in == 1 .and. recon_type == recon_type_weno) then
2075 if (weno_order == 1) then
2076 fd_coef_x(:,cbc_loc_in) = 0._wp
2077 fd_coef_x(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2078 fd_coef_x(1, cbc_loc_in) = -fd_coef_x(0, cbc_loc_in)
2079
2080 ! Computing CBC2 Coefficients
2081 else if (weno_order == 3) then
2082 fd_coef_x(:,cbc_loc_in) = 0._wp
2083 fd_coef_x(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2084 fd_coef_x(1, cbc_loc_in) = -4._wp*fd_coef_x(0, cbc_loc_in)/3._wp
2085 fd_coef_x(2, cbc_loc_in) = fd_coef_x(0, cbc_loc_in)/3._wp
2086
2087 pi_coef_x(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2088
2089 ! Computing CBC4 Coefficients
2090 else
2091 fd_coef_x(:,cbc_loc_in) = 0._wp
2092 fd_coef_x(0, &
2093 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2094 & - 3._wp*ds(4))
2095 fd_coef_x(1, cbc_loc_in) = -48._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2096 fd_coef_x(2, cbc_loc_in) = 36._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2097 fd_coef_x(3, cbc_loc_in) = -16._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2098 fd_coef_x(4, cbc_loc_in) = 3._wp*fd_coef_x(0, cbc_loc_in)/25._wp
2099
2100 pi_coef_x(0, 0, &
2101 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2102 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2103 pi_coef_x(0, 1, &
2104 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2105 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2106 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2107 pi_coef_x(0, 2, &
2108 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2109 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2110 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2111 pi_coef_x(1, 0, &
2112 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2113 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2114 pi_coef_x(1, 1, &
2115 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2116 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2117 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2118 pi_coef_x(1, 2, &
2119 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2120 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2121 end if
2122 end if
2123# 353 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2124 if (cbc_dir_in == 2 .and. recon_type == recon_type_weno) then
2125 if (weno_order == 1) then
2126 fd_coef_y(:,cbc_loc_in) = 0._wp
2127 fd_coef_y(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2128 fd_coef_y(1, cbc_loc_in) = -fd_coef_y(0, cbc_loc_in)
2129
2130 ! Computing CBC2 Coefficients
2131 else if (weno_order == 3) then
2132 fd_coef_y(:,cbc_loc_in) = 0._wp
2133 fd_coef_y(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2134 fd_coef_y(1, cbc_loc_in) = -4._wp*fd_coef_y(0, cbc_loc_in)/3._wp
2135 fd_coef_y(2, cbc_loc_in) = fd_coef_y(0, cbc_loc_in)/3._wp
2136
2137 pi_coef_y(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2138
2139 ! Computing CBC4 Coefficients
2140 else
2141 fd_coef_y(:,cbc_loc_in) = 0._wp
2142 fd_coef_y(0, &
2143 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2144 & - 3._wp*ds(4))
2145 fd_coef_y(1, cbc_loc_in) = -48._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2146 fd_coef_y(2, cbc_loc_in) = 36._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2147 fd_coef_y(3, cbc_loc_in) = -16._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2148 fd_coef_y(4, cbc_loc_in) = 3._wp*fd_coef_y(0, cbc_loc_in)/25._wp
2149
2150 pi_coef_y(0, 0, &
2151 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2152 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2153 pi_coef_y(0, 1, &
2154 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2155 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2156 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2157 pi_coef_y(0, 2, &
2158 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2159 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2160 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2161 pi_coef_y(1, 0, &
2162 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2163 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2164 pi_coef_y(1, 1, &
2165 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2166 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2167 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2168 pi_coef_y(1, 2, &
2169 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2170 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2171 end if
2172 end if
2173# 353 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2174 if (cbc_dir_in == 3 .and. recon_type == recon_type_weno) then
2175 if (weno_order == 1) then
2176 fd_coef_z(:,cbc_loc_in) = 0._wp
2177 fd_coef_z(0, cbc_loc_in) = -2._wp/(ds(0) + ds(1))
2178 fd_coef_z(1, cbc_loc_in) = -fd_coef_z(0, cbc_loc_in)
2179
2180 ! Computing CBC2 Coefficients
2181 else if (weno_order == 3) then
2182 fd_coef_z(:,cbc_loc_in) = 0._wp
2183 fd_coef_z(0, cbc_loc_in) = -6._wp/(3._wp*ds(0) + 2._wp*ds(1) - ds(2))
2184 fd_coef_z(1, cbc_loc_in) = -4._wp*fd_coef_z(0, cbc_loc_in)/3._wp
2185 fd_coef_z(2, cbc_loc_in) = fd_coef_z(0, cbc_loc_in)/3._wp
2186
2187 pi_coef_z(0, 0, cbc_loc_in) = (s_cb(0) - s_cb(1))/(s_cb(0) - s_cb(2))
2188
2189 ! Computing CBC4 Coefficients
2190 else
2191 fd_coef_z(:,cbc_loc_in) = 0._wp
2192 fd_coef_z(0, &
2193 & cbc_loc_in) = -50._wp/(25._wp*ds(0) + 2._wp*ds(1) - 1.e1_wp*ds(2) + 1.e1_wp*ds(3) &
2194 & - 3._wp*ds(4))
2195 fd_coef_z(1, cbc_loc_in) = -48._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2196 fd_coef_z(2, cbc_loc_in) = 36._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2197 fd_coef_z(3, cbc_loc_in) = -16._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2198 fd_coef_z(4, cbc_loc_in) = 3._wp*fd_coef_z(0, cbc_loc_in)/25._wp
2199
2200 pi_coef_z(0, 0, &
2201 & cbc_loc_in) = ((s_cb(0) - s_cb(1))*(s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)))/((s_cb(1) &
2202 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(2)))
2203 pi_coef_z(0, 1, &
2204 & cbc_loc_in) = ((s_cb(1) - s_cb(0))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(1) &
2205 & - s_cb(3)) - (s_cb(0) - s_cb(4))*((s_cb(3) - s_cb(1)) + (s_cb(4) - s_cb(1)))))/((s_cb(0) &
2206 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2207 pi_coef_z(0, 2, &
2208 & cbc_loc_in) = (s_cb(1) - s_cb(0))*((s_cb(1) - s_cb(2))*(s_cb(1) - s_cb(3)) + ((s_cb(0) &
2209 & - s_cb(2)) + (s_cb(1) - s_cb(3)))*(s_cb(0) - s_cb(4)))/((s_cb(2) - s_cb(0))*(s_cb(0) &
2210 & - s_cb(3))*(s_cb(0) - s_cb(4)))
2211 pi_coef_z(1, 0, &
2212 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(2) - s_cb(1))*(s_cb(2) - s_cb(3)))/((s_cb(2) &
2213 & - s_cb(4))*(s_cb(4) - s_cb(0))*(s_cb(4) - s_cb(1)))
2214 pi_coef_z(1, 1, &
2215 & cbc_loc_in) = ((s_cb(0) - s_cb(2))*(s_cb(1) - s_cb(2))*((s_cb(1) - s_cb(3))*(s_cb(2) &
2216 & - s_cb(3)) + (s_cb(0) - s_cb(4))*((s_cb(1) - s_cb(3)) + (s_cb(2) - s_cb(4)))))/((s_cb(0) &
2217 & - s_cb(3))*(s_cb(1) - s_cb(3))*(s_cb(0) - s_cb(4))*(s_cb(1) - s_cb(4)))
2218 pi_coef_z(1, 2, &
2219 & cbc_loc_in) = ((s_cb(1) - s_cb(2))*(s_cb(2) - s_cb(3))*(s_cb(2) - s_cb(4)))/((s_cb(0) &
2220 & - s_cb(2))*(s_cb(0) - s_cb(3))*(s_cb(0) - s_cb(4)))
2221 end if
2222 end if
2223# 403 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2224
2225 ! END: Computing CBC4 Coefficients
2226
2227 ! Nullifying CBC coefficients
2228
2229 end subroutine s_compute_cbc_coefficients
2230
2231 !> Associate CBC finite-difference and polynomial-interpolation coefficients based on direction and boundary location
2232 subroutine s_associate_cbc_coefficients_pointers(cbc_dir_in, cbc_loc_in)
2233
2234 integer, intent(in) :: cbc_dir_in, cbc_loc_in
2235 integer :: i !< Generic loop iterator
2236 ! Associating CBC Coefficients in x-direction
2237
2238 if (cbc_dir_in == 1) then
2239 ! fd_coef => fd_coef_x; if (weno_order > 1) pi_coef => pi_coef_x
2240
2241 if (cbc_loc_in == -1) then
2242 do i = 0, buff_size
2243 ds(i) = dx(i)
2244 end do
2245 else
2246 do i = 0, buff_size
2247 ds(i) = dx(m - i)
2248 end do
2249 end if
2250
2251 ! Associating CBC Coefficients in y-direction
2252 else if (cbc_dir_in == 2) then
2253 ! fd_coef => fd_coef_y; if (weno_order > 1) pi_coef => pi_coef_y
2254
2255 if (cbc_loc_in == -1) then
2256 do i = 0, buff_size
2257 ds(i) = dy(i)
2258 end do
2259 else
2260 do i = 0, buff_size
2261 ds(i) = dy(n - i)
2262 end do
2263 end if
2264
2265 ! Associating CBC Coefficients in z-direction
2266 else
2267 ! fd_coef => fd_coef_z; if (weno_order > 1) pi_coef => pi_coef_z
2268
2269 if (cbc_loc_in == -1) then
2270 do i = 0, buff_size
2271 ds(i) = dz(i)
2272 end do
2273 else
2274 do i = 0, buff_size
2275 ds(i) = dz(p - i)
2276 end do
2277 end if
2278 end if
2279
2280
2281# 459 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2282#if defined(MFC_OpenACC)
2283# 459 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2284!$acc update device(ds)
2285# 459 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2286#elif defined(MFC_OpenMP)
2287# 459 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2288!$omp target update to(ds)
2289# 459 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2290#endif
2291
2293
2294 !> Apply characteristic boundary conditions by modifying fluxes near domain boundaries
2295 subroutine s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
2296
2297 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
2298 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf
2299 integer, intent(in) :: cbc_dir_norm, cbc_loc_norm
2300 type(int_bounds_info), intent(in) :: ix, iy, iz
2301 real(wp) :: drho_dt
2302 real(wp) :: dpres_dt
2303 real(wp) :: dgamma_dt
2304 real(wp) :: dpi_inf_dt
2305 real(wp) :: dqv_dt
2306 real(wp) :: dpres_ds
2307
2308# 480 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2309 real(wp), dimension(sys_size) :: l
2310# 482 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2311# 491 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2312 real(wp), dimension(num_fluids) :: alpha_rho, dalpha_rho_ds, mf
2313 real(wp), dimension(num_vels) :: vel, dvel_ds
2314 real(wp), dimension(num_fluids) :: adv_local, dadv_ds
2315 real(wp), dimension(num_fluids) :: dadv_dt
2316 real(wp), dimension(num_dims) :: dvel_dt
2317 real(wp), dimension(num_fluids) :: dalpha_rho_dt
2318 real(wp), dimension(num_species) :: ys, h_k, dys_dt, dys_ds, xs, gamma_i, cp_i
2319# 499 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2320 real(wp), dimension(2) :: re_cbc
2321 real(wp), dimension(3) :: lambda
2322 real(wp) :: rho !< Cell averaged density
2323 real(wp) :: pres !< Cell averaged pressure
2324 real(wp) :: e !< Cell averaged energy
2325 real(wp) :: h !< Cell averaged enthalpy
2326 real(wp) :: gamma !< Cell averaged specific heat ratio
2327 real(wp) :: pi_inf !< Cell averaged liquid stiffness
2328 real(wp) :: qv !< Cell averaged fluid reference energy
2329 real(wp) :: c
2330 real(wp) :: ma
2331 real(wp) :: t, sum_enthalpies
2332 real(wp) :: cv, cp, e_mix, mw, r_gas
2333 real(wp) :: vel_k_sum, vel_dv_dt_sum
2334 integer :: i, j, k, r !< Generic loop iterators
2335 ! Reshaping of inputted data and association of the FD and PI coefficients, or CBC coefficients, respectively, hinging on
2336 ! selected CBC coordinate direction
2337
2338 cbc_dir = cbc_dir_norm
2339 cbc_loc = cbc_loc_norm
2340
2341
2342# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2343#if defined(MFC_OpenACC)
2344# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2345!$acc update device(cbc_dir, cbc_loc)
2346# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2347#elif defined(MFC_OpenMP)
2348# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2349!$omp target update to(cbc_dir, cbc_loc)
2350# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2351#endif
2352
2353 call s_initialize_cbc(q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
2354
2356
2357# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2358 if (cbc_dir == 1 .and. recon_type == recon_type_weno) then
2359 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
2360 if (weno_order == 3) then
2361 call s_convert_primitive_to_flux_variables(q_prim_rsx_vf, f_rsx_vf, f_src_rsx_vf, is1, is2, &
2362 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2363
2364
2365# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2366
2367# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2368#if defined(MFC_OpenACC)
2369# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2370!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
2371# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2372#elif defined(MFC_OpenMP)
2373# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2374
2375# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2376
2377# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2378
2379# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2380!$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)
2381# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2382#endif
2383 do i = 1, flux_cbc_index
2384 do r = is3%beg, is3%end
2385 do k = is2%beg, is2%end
2386 flux_rsx_vf_l(0, k, r, i) = f_rsx_vf(0, k, r, i) + pi_coef_x(0, 0, &
2387 & cbc_loc)*(f_rsx_vf(1, k, r, i) - f_rsx_vf(0, k, r, i))
2388 end do
2389 end do
2390 end do
2391
2392# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2393#if defined(MFC_OpenACC)
2394# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2395!$acc end parallel loop
2396# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2397#elif defined(MFC_OpenMP)
2398# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2399
2400# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2401!$omp end target teams loop
2402# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2403#endif
2404
2405
2406# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2407
2408# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2409#if defined(MFC_OpenACC)
2410# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2411!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
2412# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2413#elif defined(MFC_OpenMP)
2414# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2415
2416# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2417
2418# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2419
2420# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2421!$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)
2422# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2423#endif
2424 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2425 do r = is3%beg, is3%end
2426 do k = is2%beg, is2%end
2427 flux_src_rsx_vf_l(0, k, r, i) = f_src_rsx_vf(0, k, r, i) + (f_src_rsx_vf(1, k, &
2428 & r, i) - f_src_rsx_vf(0, k, r, i))*pi_coef_x(0, 0, cbc_loc)
2429 end do
2430 end do
2431 end do
2432
2433# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2434#if defined(MFC_OpenACC)
2435# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2436!$acc end parallel loop
2437# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2438#elif defined(MFC_OpenMP)
2439# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2440
2441# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2442!$omp end target teams loop
2443# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2444#endif
2445 end if
2446
2447 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
2448 if (weno_order == 5) then
2449 call s_convert_primitive_to_flux_variables(q_prim_rsx_vf, f_rsx_vf, f_src_rsx_vf, is1, is2, &
2450 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2451
2452
2453# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2454
2455# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2456#if defined(MFC_OpenACC)
2457# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2458!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
2459# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2460#elif defined(MFC_OpenMP)
2461# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2462
2463# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2464
2465# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2466
2467# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2468!$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)
2469# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2470#endif
2471 do i = 1, flux_cbc_index
2472 do j = 0, 1
2473 do r = is3%beg, is3%end
2474 do k = is2%beg, is2%end
2475 flux_rsx_vf_l(j, k, r, i) = f_rsx_vf(j, k, r, i) + pi_coef_x(j, 0, &
2476 & cbc_loc)*(f_rsx_vf(3, k, r, i) - f_rsx_vf(2, k, r, &
2477 & i)) + pi_coef_x(j, 1, cbc_loc)*(f_rsx_vf(2, k, r, &
2478 & i) - f_rsx_vf(1, k, r, i)) + pi_coef_x(j, 2, &
2479 & cbc_loc)*(f_rsx_vf(1, k, r, i) - f_rsx_vf(0, k, r, i))
2480 end do
2481 end do
2482 end do
2483 end do
2484
2485# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2486#if defined(MFC_OpenACC)
2487# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2488!$acc end parallel loop
2489# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2490#elif defined(MFC_OpenMP)
2491# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2492
2493# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2494!$omp end target teams loop
2495# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2496#endif
2497
2498
2499# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2500
2501# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2502#if defined(MFC_OpenACC)
2503# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2504!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
2505# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2506#elif defined(MFC_OpenMP)
2507# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2508
2509# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2510
2511# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2512
2513# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2514!$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)
2515# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2516#endif
2517 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2518 do j = 0, 1
2519 do r = is3%beg, is3%end
2520 do k = is2%beg, is2%end
2521 flux_src_rsx_vf_l(j, k, r, i) = f_src_rsx_vf(j, k, r, i) + (f_src_rsx_vf(3, &
2522 & k, r, i) - f_src_rsx_vf(2, k, r, i))*pi_coef_x(j, 0, &
2523 & cbc_loc) + (f_src_rsx_vf(2, k, r, i) - f_src_rsx_vf(1, &
2524 & k, r, i))*pi_coef_x(j, 1, cbc_loc) + (f_src_rsx_vf(1, &
2525 & k, r, i) - f_src_rsx_vf(0, k, r, i))*pi_coef_x(j, 2, &
2526 & cbc_loc)
2527 end do
2528 end do
2529 end do
2530 end do
2531
2532# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2533#if defined(MFC_OpenACC)
2534# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2535!$acc end parallel loop
2536# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2537#elif defined(MFC_OpenMP)
2538# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2539
2540# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2541!$omp end target teams loop
2542# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2543#endif
2544 end if
2545
2546 ! FD2 or FD4 of RHS at j = 0
2547
2548# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2549
2550# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2551#if defined(MFC_OpenACC)
2552# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2553!$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, &
2554# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2555!$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, H, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
2556# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2557!$acc& vel_dv_dt_sum, i, j) copyin(dir_idx)
2558# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2559#elif defined(MFC_OpenMP)
2560# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2561
2562# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2563
2564# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2565
2566# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2567!$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, &
2568# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2569!$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, &
2570# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2571!$omp& dqv_dt, dgamma_dt, rho, pres, E, H, 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) map(to:dir_idx)
2572# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2573#endif
2574# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2575 do r = is3%beg, is3%end
2576 do k = is2%beg, is2%end
2577 ! Transferring the Primitive Variables
2578
2579# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2580#if defined(MFC_OpenACC)
2581# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2582!$acc loop seq
2583# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2584#elif defined(MFC_OpenMP)
2585# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2586
2587# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2588#endif
2589 do i = 1, eqn_idx%cont%end
2590 alpha_rho(i) = q_prim_rsx_vf(0, k, r, i)
2591 end do
2592
2593
2594# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2595#if defined(MFC_OpenACC)
2596# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2597!$acc loop seq
2598# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2599#elif defined(MFC_OpenMP)
2600# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2601
2602# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2603#endif
2604 do i = 1, num_dims
2605 vel(i) = q_prim_rsx_vf(0, k, r, eqn_idx%cont%end + i)
2606 end do
2607
2608 vel_k_sum = 0._wp
2609
2610# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2611#if defined(MFC_OpenACC)
2612# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2613!$acc loop seq
2614# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2615#elif defined(MFC_OpenMP)
2616# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2617
2618# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2619#endif
2620 do i = 1, num_dims
2621 vel_k_sum = vel_k_sum + vel(i)**2._wp
2622 end do
2623
2624 pres = q_prim_rsx_vf(0, k, r, eqn_idx%E)
2625
2626
2627# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2628#if defined(MFC_OpenACC)
2629# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2630!$acc loop seq
2631# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2632#elif defined(MFC_OpenMP)
2633# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2634
2635# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2636#endif
2637 do i = 1, eqn_idx%adv%end - eqn_idx%E
2638 adv_local(i) = q_prim_rsx_vf(0, k, r, eqn_idx%E + i)
2639 end do
2640
2641 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
2642
2643
2644# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2645#if defined(MFC_OpenACC)
2646# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2647!$acc loop seq
2648# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2649#elif defined(MFC_OpenMP)
2650# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2651
2652# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2653#endif
2654 do i = 1, eqn_idx%cont%end
2655 mf(i) = alpha_rho(i)/rho
2656 end do
2657
2658 if (chemistry) then
2659
2660# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2661#if defined(MFC_OpenACC)
2662# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2663!$acc loop seq
2664# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2665#elif defined(MFC_OpenMP)
2666# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2667
2668# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2669#endif
2670 do i = eqn_idx%species%beg, eqn_idx%species%end
2671 ys(i - eqn_idx%species%beg + 1) = q_prim_rsx_vf(0, k, r, i)
2672 end do
2673
2674 call get_mixture_molecular_weight(ys, mw)
2675 r_gas = gas_constant/mw
2676 t = pres/rho/r_gas
2677 call get_mixture_specific_heat_cp_mass(t, ys, cp)
2678 call get_mixture_energy_mass(t, ys, e_mix)
2679 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
2680 if (chem_params%gamma_method == 1) then
2681 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
2682 call get_mole_fractions(mw, ys, xs)
2683 call get_species_specific_heats_r(t, cp_i)
2684 gamma_i = cp_i/(cp_i - 1.0_wp)
2685 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
2686 else if (chem_params%gamma_method == 2) then
2687 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
2688 call get_mixture_specific_heat_cv_mass(t, ys, cv)
2689 gamma = 1.0_wp/(cp/cv - 1.0_wp)
2690 end if
2691 else
2692 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
2693 end if
2694
2695 h = (e + pres)/rho
2696
2697 ! Compute mixture sound speed
2698 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
2699
2700 ! First-Order Spatial Derivatives of Primitive Variables
2701
2702
2703# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2704#if defined(MFC_OpenACC)
2705# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2706!$acc loop seq
2707# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2708#elif defined(MFC_OpenMP)
2709# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2710
2711# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2712#endif
2713 do i = 1, eqn_idx%cont%end
2714 dalpha_rho_ds(i) = 0._wp
2715 end do
2716
2717
2718# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2719#if defined(MFC_OpenACC)
2720# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2721!$acc loop seq
2722# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2723#elif defined(MFC_OpenMP)
2724# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2725
2726# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2727#endif
2728 do i = 1, num_dims
2729 dvel_ds(i) = 0._wp
2730 end do
2731
2732 dpres_ds = 0._wp
2733
2734# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2735#if defined(MFC_OpenACC)
2736# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2737!$acc loop seq
2738# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2739#elif defined(MFC_OpenMP)
2740# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2741
2742# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2743#endif
2744 do i = 1, eqn_idx%adv%end - eqn_idx%E
2745 dadv_ds(i) = 0._wp
2746 end do
2747
2748 if (chemistry) then
2749
2750# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2751#if defined(MFC_OpenACC)
2752# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2753!$acc loop seq
2754# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2755#elif defined(MFC_OpenMP)
2756# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2757
2758# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2759#endif
2760 do i = 1, num_species
2761 dys_ds(i) = 0._wp
2762 end do
2763 end if
2764
2765
2766# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2767#if defined(MFC_OpenACC)
2768# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2769!$acc loop seq
2770# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2771#elif defined(MFC_OpenMP)
2772# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2773
2774# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2775#endif
2776 do j = 0, buff_size
2777
2778# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2779#if defined(MFC_OpenACC)
2780# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2781!$acc loop seq
2782# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2783#elif defined(MFC_OpenMP)
2784# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2785
2786# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2787#endif
2788 do i = 1, eqn_idx%cont%end
2789 dalpha_rho_ds(i) = q_prim_rsx_vf(j, k, r, i)*fd_coef_x(j, cbc_loc) + dalpha_rho_ds(i)
2790 end do
2791
2792# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2793#if defined(MFC_OpenACC)
2794# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2795!$acc loop seq
2796# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2797#elif defined(MFC_OpenMP)
2798# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2799
2800# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2801#endif
2802 do i = 1, num_dims
2803 dvel_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_x(j, &
2804 & cbc_loc) + dvel_ds(i)
2805 end do
2806
2807 dpres_ds = q_prim_rsx_vf(j, k, r, eqn_idx%E)*fd_coef_x(j, cbc_loc) + dpres_ds
2808
2809# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2810#if defined(MFC_OpenACC)
2811# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2812!$acc loop seq
2813# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2814#elif defined(MFC_OpenMP)
2815# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2816
2817# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2818#endif
2819 do i = 1, eqn_idx%adv%end - eqn_idx%E
2820 dadv_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%E + i)*fd_coef_x(j, cbc_loc) + dadv_ds(i)
2821 end do
2822
2823 if (chemistry) then
2824
2825# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2826#if defined(MFC_OpenACC)
2827# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2828!$acc loop seq
2829# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2830#elif defined(MFC_OpenMP)
2831# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2832
2833# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2834#endif
2835 do i = 1, num_species
2836 dys_ds(i) = q_prim_rsx_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_x(j, &
2837 & cbc_loc) + dys_ds(i)
2838 end do
2839 end if
2840 end do
2841
2842 ! First-Order Temporal Derivatives of Primitive Variables
2843 lambda(1) = vel(dir_idx(1)) - c
2844 lambda(2) = vel(dir_idx(1))
2845 lambda(3) = vel(dir_idx(1)) + c
2846
2847 ma = vel(dir_idx(1))/c
2848
2849 if ((cbc_loc == -1 .and. bc_x%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
2850 & .and. bc_x%end == bc_char_slip_wall)) then
2851 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
2852 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
2853 & .and. bc_x%end == bc_char_nr_sub_buffer)) then
2854 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2855 & dvel_ds, dadv_ds, dys_ds)
2856 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
2857 & .and. bc_x%end == bc_char_nr_sub_inflow)) then
2858 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
2859 ! Add GRCBC for Subsonic Inflow
2860 if (bc_x%grcbc_in) then
2861
2862# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2863#if defined(MFC_OpenACC)
2864# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2865!$acc loop seq
2866# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2867#elif defined(MFC_OpenMP)
2868# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2869
2870# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2871#endif
2872 do i = 2, eqn_idx%mom%beg
2873 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
2874 & 1))/del_in(1) - c*ma*(pres - pres_in(1))/del_in(1)
2875 end do
2876 if (n > 0) then
2877 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - vel_in(1, &
2878 & dir_idx(2)))/del_in(1)
2879 if (p > 0) then
2880 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - vel_in(1, &
2881 & dir_idx(3)))/del_in(1)
2882 end if
2883 end if
2884
2885# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2886#if defined(MFC_OpenACC)
2887# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2888!$acc loop seq
2889# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2890#elif defined(MFC_OpenMP)
2891# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2892
2893# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2894#endif
2895 do i = eqn_idx%E, eqn_idx%adv%end - 1
2896 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
2897 & 1))/del_in(1)
2898 end do
2899 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + vel_in(1, &
2900 & dir_idx(1))*sign(1, &
2901 & cbc_loc))/del_in(1) + c*(1._wp + ma)*(pres - pres_in(1))/del_in(1)
2902 end if
2903 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
2904 & .and. bc_x%end == bc_char_nr_sub_outflow)) then
2905 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2906 & dvel_ds, dadv_ds, dys_ds)
2907 ! Add GRCBC for Subsonic Outflow (Pressure)
2908 if (bc_x%grcbc_out) then
2909 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(1))/del_out(1)
2910
2911 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
2912 if (bc_x%grcbc_vel_out) then
2913 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
2914 & + vel_out(1, dir_idx(1))*sign(1, cbc_loc))/del_out(1)
2915 end if
2916 end if
2917 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
2918 & .and. bc_x%end == bc_char_ff_sub_outflow)) then
2919 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
2920 & dadv_ds)
2921 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
2922 & .and. bc_x%end == bc_char_cp_sub_outflow)) then
2923 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2924 & dvel_ds, dadv_ds)
2925 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
2926 & .and. bc_x%end == bc_char_sup_inflow)) then
2927 call s_compute_supersonic_inflow_l(l)
2928 else if ((cbc_loc == -1 .and. bc_x%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
2929 & .and. bc_x%end == bc_char_sup_outflow)) then
2930 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
2931 & dys_ds)
2932 end if
2933
2934 ! Be careful about the cylindrical coordinate!
2935 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
2936 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
2937 else
2938 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
2939 end if
2940
2941
2942# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2943#if defined(MFC_OpenACC)
2944# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2945!$acc loop seq
2946# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2947#elif defined(MFC_OpenMP)
2948# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2949
2950# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2951#endif
2952 do i = 1, eqn_idx%cont%end
2953 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
2954 end do
2955
2956
2957# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2958#if defined(MFC_OpenACC)
2959# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2960!$acc loop seq
2961# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2962#elif defined(MFC_OpenMP)
2963# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2964
2965# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2966#endif
2967 do i = 1, num_dims
2968 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
2969 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
2970 end do
2971
2972 vel_dv_dt_sum = 0._wp
2973
2974# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2975#if defined(MFC_OpenACC)
2976# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2977!$acc loop seq
2978# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2979#elif defined(MFC_OpenMP)
2980# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2981
2982# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2983#endif
2984 do i = 1, num_dims
2985 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
2986 end do
2987
2988 if (chemistry) then
2989
2990# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2991#if defined(MFC_OpenACC)
2992# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2993!$acc loop seq
2994# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2995#elif defined(MFC_OpenMP)
2996# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2997
2998# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2999#endif
3000 do i = 1, num_species
3001 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
3002 end do
3003 end if
3004
3005 ! The treatment of void fraction source is unclear
3006 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
3007
3008# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3009#if defined(MFC_OpenACC)
3010# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3011!$acc loop seq
3012# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3013#elif defined(MFC_OpenMP)
3014# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3015
3016# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3017#endif
3018 do i = 1, eqn_idx%adv%end - eqn_idx%E
3019 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
3020 end do
3021 else
3022
3023# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3024#if defined(MFC_OpenACC)
3025# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3026!$acc loop seq
3027# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3028#elif defined(MFC_OpenMP)
3029# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3030
3031# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3032#endif
3033 do i = 1, eqn_idx%adv%end - eqn_idx%E
3034 dadv_dt(i) = -l(eqn_idx%mom%end + i)
3035 end do
3036 end if
3037
3038 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3039
3040 if (model_eqns == model_eqns_gamma_law) then
3041 drho_dt = dalpha_rho_dt(1)
3042 dgamma_dt = dadv_dt(1)
3043# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3044 dpi_inf_dt = dadv_dt(2)
3045# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3046 else
3047
3048# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3049#if defined(MFC_OpenACC)
3050# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3051!$acc loop seq
3052# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3053#elif defined(MFC_OpenMP)
3054# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3055
3056# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3057#endif
3058 do i = 1, num_fluids
3059 drho_dt = drho_dt + dalpha_rho_dt(i)
3060 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3061 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3062 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3063 end do
3064 end if
3065
3066 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
3067
3068# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3069#if defined(MFC_OpenACC)
3070# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3071!$acc loop seq
3072# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3073#elif defined(MFC_OpenMP)
3074# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3075
3076# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3077#endif
3078 do i = 1, eqn_idx%cont%end
3079 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
3080 end do
3081
3082
3083# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3084#if defined(MFC_OpenACC)
3085# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3086!$acc loop seq
3087# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3088#elif defined(MFC_OpenMP)
3089# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3090
3091# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3092#endif
3093 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3094 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, &
3095 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3096 end do
3097
3098 if (chemistry) then
3099 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
3100 ! doi:10.1006/jcph.2002.6990
3101 call get_species_enthalpies_rt(t, h_k)
3102 sum_enthalpies = 0._wp
3103
3104# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3105#if defined(MFC_OpenACC)
3106# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3107!$acc loop seq
3108# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3109#elif defined(MFC_OpenMP)
3110# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3111
3112# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3113#endif
3114 do i = 1, num_species
3115 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3116 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3117 end do
3118 flux_rsx_vf_l(-1, k, r, eqn_idx%E) = flux_rsx_vf_l(0, k, r, &
3119 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
3120 & /(c*c) + sum_enthalpies)
3121
3122# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3123#if defined(MFC_OpenACC)
3124# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3125!$acc loop seq
3126# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3127#elif defined(MFC_OpenMP)
3128# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3129
3130# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3131#endif
3132 do i = 1, num_species
3133 flux_rsx_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsx_vf_l(0, k, r, &
3134 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3135 end do
3136 else
3137 flux_rsx_vf_l(-1, k, r, eqn_idx%E) = flux_rsx_vf_l(0, k, r, &
3138 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3139 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3140 end if
3141
3142 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
3143 ! must follow the same CBC representation as HLLC.
3144 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
3145
3146# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3147#if defined(MFC_OpenACC)
3148# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3149!$acc loop seq
3150# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3151#elif defined(MFC_OpenMP)
3152# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3153
3154# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3155#endif
3156 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3157 flux_rsx_vf_l(-1, k, r, i) = 0._wp
3158 end do
3159
3160
3161# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3162#if defined(MFC_OpenACC)
3163# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3164!$acc loop seq
3165# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3166#elif defined(MFC_OpenMP)
3167# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3168
3169# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3170#endif
3171 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3172 flux_src_rsx_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
3173 & vel(dir_idx(1)))*(flux_rsx_vf_l(0, k, r, &
3174 & i) + vel(dir_idx(1))*flux_src_rsx_vf_l(0, k, r, &
3175 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
3176 end do
3177 else
3178
3179# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3180#if defined(MFC_OpenACC)
3181# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3182!$acc loop seq
3183# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3184#elif defined(MFC_OpenMP)
3185# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3186
3187# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3188#endif
3189 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3190 flux_rsx_vf_l(-1, k, r, i) = flux_rsx_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
3191 end do
3192
3193
3194# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3195#if defined(MFC_OpenACC)
3196# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3197!$acc loop seq
3198# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3199#elif defined(MFC_OpenMP)
3200# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3201
3202# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3203#endif
3204 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3205 flux_src_rsx_vf_l(-1, k, r, i) = flux_src_rsx_vf_l(0, k, r, i)
3206 end do
3207 end if
3208 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
3209 end do
3210 end do
3211
3212# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3213#if defined(MFC_OpenACC)
3214# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3215!$acc end parallel loop
3216# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3217#elif defined(MFC_OpenMP)
3218# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3219
3220# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3221!$omp end target teams loop
3222# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3223#endif
3224 end if
3225# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3226 if (cbc_dir == 2 .and. recon_type == recon_type_weno) then
3227 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
3228 if (weno_order == 3) then
3229 call s_convert_primitive_to_flux_variables(q_prim_rsy_vf, f_rsy_vf, f_src_rsy_vf, is1, is2, &
3230 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3231
3232
3233# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3234
3235# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3236#if defined(MFC_OpenACC)
3237# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3238!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
3239# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3240#elif defined(MFC_OpenMP)
3241# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3242
3243# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3244
3245# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3246
3247# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3248!$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)
3249# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3250#endif
3251 do i = 1, flux_cbc_index
3252 do r = is3%beg, is3%end
3253 do k = is2%beg, is2%end
3254 flux_rsy_vf_l(0, k, r, i) = f_rsy_vf(0, k, r, i) + pi_coef_y(0, 0, &
3255 & cbc_loc)*(f_rsy_vf(1, k, r, i) - f_rsy_vf(0, k, r, i))
3256 end do
3257 end do
3258 end do
3259
3260# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3261#if defined(MFC_OpenACC)
3262# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3263!$acc end parallel loop
3264# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3265#elif defined(MFC_OpenMP)
3266# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3267
3268# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3269!$omp end target teams loop
3270# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3271#endif
3272
3273
3274# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3275
3276# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3277#if defined(MFC_OpenACC)
3278# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3279!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
3280# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3281#elif defined(MFC_OpenMP)
3282# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3283
3284# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3285
3286# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3287
3288# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3289!$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)
3290# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3291#endif
3292 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3293 do r = is3%beg, is3%end
3294 do k = is2%beg, is2%end
3295 flux_src_rsy_vf_l(0, k, r, i) = f_src_rsy_vf(0, k, r, i) + (f_src_rsy_vf(1, k, &
3296 & r, i) - f_src_rsy_vf(0, k, r, i))*pi_coef_y(0, 0, cbc_loc)
3297 end do
3298 end do
3299 end do
3300
3301# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3302#if defined(MFC_OpenACC)
3303# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3304!$acc end parallel loop
3305# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3306#elif defined(MFC_OpenMP)
3307# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3308
3309# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3310!$omp end target teams loop
3311# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3312#endif
3313 end if
3314
3315 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
3316 if (weno_order == 5) then
3317 call s_convert_primitive_to_flux_variables(q_prim_rsy_vf, f_rsy_vf, f_src_rsy_vf, is1, is2, &
3318 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3319
3320
3321# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3322
3323# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3324#if defined(MFC_OpenACC)
3325# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3326!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
3327# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3328#elif defined(MFC_OpenMP)
3329# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3330
3331# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3332
3333# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3334
3335# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3336!$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)
3337# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3338#endif
3339 do i = 1, flux_cbc_index
3340 do j = 0, 1
3341 do r = is3%beg, is3%end
3342 do k = is2%beg, is2%end
3343 flux_rsy_vf_l(j, k, r, i) = f_rsy_vf(j, k, r, i) + pi_coef_y(j, 0, &
3344 & cbc_loc)*(f_rsy_vf(3, k, r, i) - f_rsy_vf(2, k, r, &
3345 & i)) + pi_coef_y(j, 1, cbc_loc)*(f_rsy_vf(2, k, r, &
3346 & i) - f_rsy_vf(1, k, r, i)) + pi_coef_y(j, 2, &
3347 & cbc_loc)*(f_rsy_vf(1, k, r, i) - f_rsy_vf(0, k, r, i))
3348 end do
3349 end do
3350 end do
3351 end do
3352
3353# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3354#if defined(MFC_OpenACC)
3355# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3356!$acc end parallel loop
3357# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3358#elif defined(MFC_OpenMP)
3359# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3360
3361# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3362!$omp end target teams loop
3363# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3364#endif
3365
3366
3367# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3368
3369# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3370#if defined(MFC_OpenACC)
3371# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3372!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
3373# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3374#elif defined(MFC_OpenMP)
3375# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3376
3377# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3378
3379# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3380
3381# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3382!$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)
3383# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3384#endif
3385 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3386 do j = 0, 1
3387 do r = is3%beg, is3%end
3388 do k = is2%beg, is2%end
3389 flux_src_rsy_vf_l(j, k, r, i) = f_src_rsy_vf(j, k, r, i) + (f_src_rsy_vf(3, &
3390 & k, r, i) - f_src_rsy_vf(2, k, r, i))*pi_coef_y(j, 0, &
3391 & cbc_loc) + (f_src_rsy_vf(2, k, r, i) - f_src_rsy_vf(1, &
3392 & k, r, i))*pi_coef_y(j, 1, cbc_loc) + (f_src_rsy_vf(1, &
3393 & k, r, i) - f_src_rsy_vf(0, k, r, i))*pi_coef_y(j, 2, &
3394 & cbc_loc)
3395 end do
3396 end do
3397 end do
3398 end do
3399
3400# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3401#if defined(MFC_OpenACC)
3402# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3403!$acc end parallel loop
3404# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3405#elif defined(MFC_OpenMP)
3406# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3407
3408# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3409!$omp end target teams loop
3410# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3411#endif
3412 end if
3413
3414 ! FD2 or FD4 of RHS at j = 0
3415
3416# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3417
3418# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3419#if defined(MFC_OpenACC)
3420# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3421!$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, &
3422# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3423!$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, H, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
3424# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3425!$acc& vel_dv_dt_sum, i, j) copyin(dir_idx)
3426# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3427#elif defined(MFC_OpenMP)
3428# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3429
3430# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3431
3432# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3433
3434# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3435!$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, &
3436# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3437!$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, &
3438# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3439!$omp& dqv_dt, dgamma_dt, rho, pres, E, H, 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) map(to:dir_idx)
3440# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3441#endif
3442# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3443 do r = is3%beg, is3%end
3444 do k = is2%beg, is2%end
3445 ! Transferring the Primitive Variables
3446
3447# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3448#if defined(MFC_OpenACC)
3449# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3450!$acc loop seq
3451# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3452#elif defined(MFC_OpenMP)
3453# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3454
3455# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3456#endif
3457 do i = 1, eqn_idx%cont%end
3458 alpha_rho(i) = q_prim_rsy_vf(0, k, r, i)
3459 end do
3460
3461
3462# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3463#if defined(MFC_OpenACC)
3464# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3465!$acc loop seq
3466# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3467#elif defined(MFC_OpenMP)
3468# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3469
3470# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3471#endif
3472 do i = 1, num_dims
3473 vel(i) = q_prim_rsy_vf(0, k, r, eqn_idx%cont%end + i)
3474 end do
3475
3476 vel_k_sum = 0._wp
3477
3478# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3479#if defined(MFC_OpenACC)
3480# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3481!$acc loop seq
3482# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3483#elif defined(MFC_OpenMP)
3484# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3485
3486# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3487#endif
3488 do i = 1, num_dims
3489 vel_k_sum = vel_k_sum + vel(i)**2._wp
3490 end do
3491
3492 pres = q_prim_rsy_vf(0, k, r, eqn_idx%E)
3493
3494
3495# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3496#if defined(MFC_OpenACC)
3497# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3498!$acc loop seq
3499# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3500#elif defined(MFC_OpenMP)
3501# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3502
3503# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3504#endif
3505 do i = 1, eqn_idx%adv%end - eqn_idx%E
3506 adv_local(i) = q_prim_rsy_vf(0, k, r, eqn_idx%E + i)
3507 end do
3508
3509 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
3510
3511
3512# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3513#if defined(MFC_OpenACC)
3514# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3515!$acc loop seq
3516# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3517#elif defined(MFC_OpenMP)
3518# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3519
3520# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3521#endif
3522 do i = 1, eqn_idx%cont%end
3523 mf(i) = alpha_rho(i)/rho
3524 end do
3525
3526 if (chemistry) then
3527
3528# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3529#if defined(MFC_OpenACC)
3530# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3531!$acc loop seq
3532# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3533#elif defined(MFC_OpenMP)
3534# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3535
3536# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3537#endif
3538 do i = eqn_idx%species%beg, eqn_idx%species%end
3539 ys(i - eqn_idx%species%beg + 1) = q_prim_rsy_vf(0, k, r, i)
3540 end do
3541
3542 call get_mixture_molecular_weight(ys, mw)
3543 r_gas = gas_constant/mw
3544 t = pres/rho/r_gas
3545 call get_mixture_specific_heat_cp_mass(t, ys, cp)
3546 call get_mixture_energy_mass(t, ys, e_mix)
3547 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
3548 if (chem_params%gamma_method == 1) then
3549 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
3550 call get_mole_fractions(mw, ys, xs)
3551 call get_species_specific_heats_r(t, cp_i)
3552 gamma_i = cp_i/(cp_i - 1.0_wp)
3553 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
3554 else if (chem_params%gamma_method == 2) then
3555 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
3556 call get_mixture_specific_heat_cv_mass(t, ys, cv)
3557 gamma = 1.0_wp/(cp/cv - 1.0_wp)
3558 end if
3559 else
3560 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
3561 end if
3562
3563 h = (e + pres)/rho
3564
3565 ! Compute mixture sound speed
3566 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
3567
3568 ! First-Order Spatial Derivatives of Primitive Variables
3569
3570
3571# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3572#if defined(MFC_OpenACC)
3573# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3574!$acc loop seq
3575# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3576#elif defined(MFC_OpenMP)
3577# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3578
3579# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3580#endif
3581 do i = 1, eqn_idx%cont%end
3582 dalpha_rho_ds(i) = 0._wp
3583 end do
3584
3585
3586# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3587#if defined(MFC_OpenACC)
3588# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3589!$acc loop seq
3590# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3591#elif defined(MFC_OpenMP)
3592# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3593
3594# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3595#endif
3596 do i = 1, num_dims
3597 dvel_ds(i) = 0._wp
3598 end do
3599
3600 dpres_ds = 0._wp
3601
3602# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3603#if defined(MFC_OpenACC)
3604# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3605!$acc loop seq
3606# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3607#elif defined(MFC_OpenMP)
3608# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3609
3610# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3611#endif
3612 do i = 1, eqn_idx%adv%end - eqn_idx%E
3613 dadv_ds(i) = 0._wp
3614 end do
3615
3616 if (chemistry) then
3617
3618# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3619#if defined(MFC_OpenACC)
3620# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3621!$acc loop seq
3622# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3623#elif defined(MFC_OpenMP)
3624# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3625
3626# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3627#endif
3628 do i = 1, num_species
3629 dys_ds(i) = 0._wp
3630 end do
3631 end if
3632
3633
3634# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3635#if defined(MFC_OpenACC)
3636# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3637!$acc loop seq
3638# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3639#elif defined(MFC_OpenMP)
3640# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3641
3642# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3643#endif
3644 do j = 0, buff_size
3645
3646# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3647#if defined(MFC_OpenACC)
3648# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3649!$acc loop seq
3650# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3651#elif defined(MFC_OpenMP)
3652# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3653
3654# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3655#endif
3656 do i = 1, eqn_idx%cont%end
3657 dalpha_rho_ds(i) = q_prim_rsy_vf(j, k, r, i)*fd_coef_y(j, cbc_loc) + dalpha_rho_ds(i)
3658 end do
3659
3660# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3661#if defined(MFC_OpenACC)
3662# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3663!$acc loop seq
3664# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3665#elif defined(MFC_OpenMP)
3666# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3667
3668# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3669#endif
3670 do i = 1, num_dims
3671 dvel_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_y(j, &
3672 & cbc_loc) + dvel_ds(i)
3673 end do
3674
3675 dpres_ds = q_prim_rsy_vf(j, k, r, eqn_idx%E)*fd_coef_y(j, cbc_loc) + dpres_ds
3676
3677# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3678#if defined(MFC_OpenACC)
3679# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3680!$acc loop seq
3681# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3682#elif defined(MFC_OpenMP)
3683# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3684
3685# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3686#endif
3687 do i = 1, eqn_idx%adv%end - eqn_idx%E
3688 dadv_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%E + i)*fd_coef_y(j, cbc_loc) + dadv_ds(i)
3689 end do
3690
3691 if (chemistry) then
3692
3693# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3694#if defined(MFC_OpenACC)
3695# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3696!$acc loop seq
3697# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3698#elif defined(MFC_OpenMP)
3699# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3700
3701# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3702#endif
3703 do i = 1, num_species
3704 dys_ds(i) = q_prim_rsy_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_y(j, &
3705 & cbc_loc) + dys_ds(i)
3706 end do
3707 end if
3708 end do
3709
3710 ! First-Order Temporal Derivatives of Primitive Variables
3711 lambda(1) = vel(dir_idx(1)) - c
3712 lambda(2) = vel(dir_idx(1))
3713 lambda(3) = vel(dir_idx(1)) + c
3714
3715 ma = vel(dir_idx(1))/c
3716
3717 if ((cbc_loc == -1 .and. bc_y%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
3718 & .and. bc_y%end == bc_char_slip_wall)) then
3719 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
3720 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
3721 & .and. bc_y%end == bc_char_nr_sub_buffer)) then
3722 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3723 & dvel_ds, dadv_ds, dys_ds)
3724 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
3725 & .and. bc_y%end == bc_char_nr_sub_inflow)) then
3726 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
3727 ! Add GRCBC for Subsonic Inflow
3728 if (bc_y%grcbc_in) then
3729
3730# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3731#if defined(MFC_OpenACC)
3732# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3733!$acc loop seq
3734# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3735#elif defined(MFC_OpenMP)
3736# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3737
3738# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3739#endif
3740 do i = 2, eqn_idx%mom%beg
3741 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
3742 & 2))/del_in(2) - c*ma*(pres - pres_in(2))/del_in(2)
3743 end do
3744 if (n > 0) then
3745 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - vel_in(2, &
3746 & dir_idx(2)))/del_in(2)
3747 if (p > 0) then
3748 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - vel_in(2, &
3749 & dir_idx(3)))/del_in(2)
3750 end if
3751 end if
3752
3753# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3754#if defined(MFC_OpenACC)
3755# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3756!$acc loop seq
3757# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3758#elif defined(MFC_OpenMP)
3759# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3760
3761# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3762#endif
3763 do i = eqn_idx%E, eqn_idx%adv%end - 1
3764 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
3765 & 2))/del_in(2)
3766 end do
3767 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + vel_in(2, &
3768 & dir_idx(1))*sign(1, &
3769 & cbc_loc))/del_in(2) + c*(1._wp + ma)*(pres - pres_in(2))/del_in(2)
3770 end if
3771 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
3772 & .and. bc_y%end == bc_char_nr_sub_outflow)) then
3773 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3774 & dvel_ds, dadv_ds, dys_ds)
3775 ! Add GRCBC for Subsonic Outflow (Pressure)
3776 if (bc_y%grcbc_out) then
3777 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(2))/del_out(2)
3778
3779 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
3780 if (bc_y%grcbc_vel_out) then
3781 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
3782 & + vel_out(2, dir_idx(1))*sign(1, cbc_loc))/del_out(2)
3783 end if
3784 end if
3785 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
3786 & .and. bc_y%end == bc_char_ff_sub_outflow)) then
3787 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
3788 & dadv_ds)
3789 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
3790 & .and. bc_y%end == bc_char_cp_sub_outflow)) then
3791 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3792 & dvel_ds, dadv_ds)
3793 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
3794 & .and. bc_y%end == bc_char_sup_inflow)) then
3795 call s_compute_supersonic_inflow_l(l)
3796 else if ((cbc_loc == -1 .and. bc_y%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
3797 & .and. bc_y%end == bc_char_sup_outflow)) then
3798 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
3799 & dys_ds)
3800 end if
3801
3802 ! Be careful about the cylindrical coordinate!
3803 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
3804 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
3805 else
3806 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
3807 end if
3808
3809
3810# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3811#if defined(MFC_OpenACC)
3812# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3813!$acc loop seq
3814# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3815#elif defined(MFC_OpenMP)
3816# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3817
3818# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3819#endif
3820 do i = 1, eqn_idx%cont%end
3821 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
3822 end do
3823
3824
3825# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3826#if defined(MFC_OpenACC)
3827# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3828!$acc loop seq
3829# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3830#elif defined(MFC_OpenMP)
3831# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3832
3833# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3834#endif
3835 do i = 1, num_dims
3836 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
3837 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
3838 end do
3839
3840 vel_dv_dt_sum = 0._wp
3841
3842# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3843#if defined(MFC_OpenACC)
3844# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3845!$acc loop seq
3846# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3847#elif defined(MFC_OpenMP)
3848# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3849
3850# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3851#endif
3852 do i = 1, num_dims
3853 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3854 end do
3855
3856 if (chemistry) then
3857
3858# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3859#if defined(MFC_OpenACC)
3860# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3861!$acc loop seq
3862# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3863#elif defined(MFC_OpenMP)
3864# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3865
3866# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3867#endif
3868 do i = 1, num_species
3869 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
3870 end do
3871 end if
3872
3873 ! The treatment of void fraction source is unclear
3874 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
3875
3876# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3877#if defined(MFC_OpenACC)
3878# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3879!$acc loop seq
3880# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3881#elif defined(MFC_OpenMP)
3882# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3883
3884# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3885#endif
3886 do i = 1, eqn_idx%adv%end - eqn_idx%E
3887 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
3888 end do
3889 else
3890
3891# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3892#if defined(MFC_OpenACC)
3893# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3894!$acc loop seq
3895# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3896#elif defined(MFC_OpenMP)
3897# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3898
3899# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3900#endif
3901 do i = 1, eqn_idx%adv%end - eqn_idx%E
3902 dadv_dt(i) = -l(eqn_idx%mom%end + i)
3903 end do
3904 end if
3905
3906 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3907
3908 if (model_eqns == model_eqns_gamma_law) then
3909 drho_dt = dalpha_rho_dt(1)
3910 dgamma_dt = dadv_dt(1)
3911# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3912 dpi_inf_dt = dadv_dt(2)
3913# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3914 else
3915
3916# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3917#if defined(MFC_OpenACC)
3918# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3919!$acc loop seq
3920# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3921#elif defined(MFC_OpenMP)
3922# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3923
3924# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3925#endif
3926 do i = 1, num_fluids
3927 drho_dt = drho_dt + dalpha_rho_dt(i)
3928 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3929 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3930 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3931 end do
3932 end if
3933
3934 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
3935
3936# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3937#if defined(MFC_OpenACC)
3938# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3939!$acc loop seq
3940# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3941#elif defined(MFC_OpenMP)
3942# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3943
3944# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3945#endif
3946 do i = 1, eqn_idx%cont%end
3947 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
3948 end do
3949
3950
3951# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3952#if defined(MFC_OpenACC)
3953# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3954!$acc loop seq
3955# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3956#elif defined(MFC_OpenMP)
3957# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3958
3959# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3960#endif
3961 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3962 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, &
3963 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3964 end do
3965
3966 if (chemistry) then
3967 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
3968 ! doi:10.1006/jcph.2002.6990
3969 call get_species_enthalpies_rt(t, h_k)
3970 sum_enthalpies = 0._wp
3971
3972# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3973#if defined(MFC_OpenACC)
3974# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3975!$acc loop seq
3976# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3977#elif defined(MFC_OpenMP)
3978# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3979
3980# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3981#endif
3982 do i = 1, num_species
3983 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3984 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3985 end do
3986 flux_rsy_vf_l(-1, k, r, eqn_idx%E) = flux_rsy_vf_l(0, k, r, &
3987 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
3988 & /(c*c) + sum_enthalpies)
3989
3990# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3991#if defined(MFC_OpenACC)
3992# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3993!$acc loop seq
3994# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3995#elif defined(MFC_OpenMP)
3996# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3997
3998# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3999#endif
4000 do i = 1, num_species
4001 flux_rsy_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsy_vf_l(0, k, r, &
4002 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4003 end do
4004 else
4005 flux_rsy_vf_l(-1, k, r, eqn_idx%E) = flux_rsy_vf_l(0, k, r, &
4006 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4007 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4008 end if
4009
4010 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
4011 ! must follow the same CBC representation as HLLC.
4012 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
4013
4014# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4015#if defined(MFC_OpenACC)
4016# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4017!$acc loop seq
4018# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4019#elif defined(MFC_OpenMP)
4020# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4021
4022# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4023#endif
4024 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4025 flux_rsy_vf_l(-1, k, r, i) = 0._wp
4026 end do
4027
4028
4029# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4030#if defined(MFC_OpenACC)
4031# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4032!$acc loop seq
4033# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4034#elif defined(MFC_OpenMP)
4035# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4036
4037# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4038#endif
4039 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4040 flux_src_rsy_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4041 & vel(dir_idx(1)))*(flux_rsy_vf_l(0, k, r, &
4042 & i) + vel(dir_idx(1))*flux_src_rsy_vf_l(0, k, r, &
4043 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
4044 end do
4045 else
4046
4047# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4048#if defined(MFC_OpenACC)
4049# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4050!$acc loop seq
4051# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4052#elif defined(MFC_OpenMP)
4053# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4054
4055# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4056#endif
4057 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4058 flux_rsy_vf_l(-1, k, r, i) = flux_rsy_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
4059 end do
4060
4061
4062# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4063#if defined(MFC_OpenACC)
4064# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4065!$acc loop seq
4066# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4067#elif defined(MFC_OpenMP)
4068# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4069
4070# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4071#endif
4072 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4073 flux_src_rsy_vf_l(-1, k, r, i) = flux_src_rsy_vf_l(0, k, r, i)
4074 end do
4075 end if
4076 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
4077 end do
4078 end do
4079
4080# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4081#if defined(MFC_OpenACC)
4082# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4083!$acc end parallel loop
4084# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4085#elif defined(MFC_OpenMP)
4086# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4087
4088# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4089!$omp end target teams loop
4090# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4091#endif
4092 end if
4093# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4094 if (cbc_dir == 3 .and. recon_type == recon_type_weno) then
4095 ! PI2 of flux_rs_vf and flux_src_rs_vf at j = 1/2
4096 if (weno_order == 3) then
4097 call s_convert_primitive_to_flux_variables(q_prim_rsz_vf, f_rsz_vf, f_src_rsz_vf, is1, is2, &
4098 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4099
4100
4101# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4102
4103# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4104#if defined(MFC_OpenACC)
4105# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4106!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
4107# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4108#elif defined(MFC_OpenMP)
4109# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4110
4111# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4112
4113# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4114
4115# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4116!$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)
4117# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4118#endif
4119 do i = 1, flux_cbc_index
4120 do r = is3%beg, is3%end
4121 do k = is2%beg, is2%end
4122 flux_rsz_vf_l(0, k, r, i) = f_rsz_vf(0, k, r, i) + pi_coef_z(0, 0, &
4123 & cbc_loc)*(f_rsz_vf(1, k, r, i) - f_rsz_vf(0, k, r, i))
4124 end do
4125 end do
4126 end do
4127
4128# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4129#if defined(MFC_OpenACC)
4130# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4131!$acc end parallel loop
4132# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4133#elif defined(MFC_OpenMP)
4134# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4135
4136# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4137!$omp end target teams loop
4138# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4139#endif
4140
4141
4142# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4143
4144# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4145#if defined(MFC_OpenACC)
4146# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4147!$acc parallel loop collapse(3) gang vector default(present) private(i, r, k)
4148# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4149#elif defined(MFC_OpenMP)
4150# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4151
4152# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4153
4154# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4155
4156# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4157!$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)
4158# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4159#endif
4160 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4161 do r = is3%beg, is3%end
4162 do k = is2%beg, is2%end
4163 flux_src_rsz_vf_l(0, k, r, i) = f_src_rsz_vf(0, k, r, i) + (f_src_rsz_vf(1, k, &
4164 & r, i) - f_src_rsz_vf(0, k, r, i))*pi_coef_z(0, 0, cbc_loc)
4165 end do
4166 end do
4167 end do
4168
4169# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4170#if defined(MFC_OpenACC)
4171# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4172!$acc end parallel loop
4173# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4174#elif defined(MFC_OpenMP)
4175# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4176
4177# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4178!$omp end target teams loop
4179# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4180#endif
4181 end if
4182
4183 ! PI4 of flux_rs_vf and flux_src_rs_vf at j = 1/2, 3/2
4184 if (weno_order == 5) then
4185 call s_convert_primitive_to_flux_variables(q_prim_rsz_vf, f_rsz_vf, f_src_rsz_vf, is1, is2, &
4186 & is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4187
4188
4189# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4190
4191# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4192#if defined(MFC_OpenACC)
4193# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4194!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
4195# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4196#elif defined(MFC_OpenMP)
4197# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4198
4199# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4200
4201# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4202
4203# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4204!$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)
4205# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4206#endif
4207 do i = 1, flux_cbc_index
4208 do j = 0, 1
4209 do r = is3%beg, is3%end
4210 do k = is2%beg, is2%end
4211 flux_rsz_vf_l(j, k, r, i) = f_rsz_vf(j, k, r, i) + pi_coef_z(j, 0, &
4212 & cbc_loc)*(f_rsz_vf(3, k, r, i) - f_rsz_vf(2, k, r, &
4213 & i)) + pi_coef_z(j, 1, cbc_loc)*(f_rsz_vf(2, k, r, &
4214 & i) - f_rsz_vf(1, k, r, i)) + pi_coef_z(j, 2, &
4215 & cbc_loc)*(f_rsz_vf(1, k, r, i) - f_rsz_vf(0, k, r, i))
4216 end do
4217 end do
4218 end do
4219 end do
4220
4221# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4222#if defined(MFC_OpenACC)
4223# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4224!$acc end parallel loop
4225# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4226#elif defined(MFC_OpenMP)
4227# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4228
4229# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4230!$omp end target teams loop
4231# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4232#endif
4233
4234
4235# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4236
4237# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4238#if defined(MFC_OpenACC)
4239# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4240!$acc parallel loop collapse(4) gang vector default(present) private(i, j, r, k)
4241# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4242#elif defined(MFC_OpenMP)
4243# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4244
4245# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4246
4247# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4248
4249# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4250!$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)
4251# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4252#endif
4253 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4254 do j = 0, 1
4255 do r = is3%beg, is3%end
4256 do k = is2%beg, is2%end
4257 flux_src_rsz_vf_l(j, k, r, i) = f_src_rsz_vf(j, k, r, i) + (f_src_rsz_vf(3, &
4258 & k, r, i) - f_src_rsz_vf(2, k, r, i))*pi_coef_z(j, 0, &
4259 & cbc_loc) + (f_src_rsz_vf(2, k, r, i) - f_src_rsz_vf(1, &
4260 & k, r, i))*pi_coef_z(j, 1, cbc_loc) + (f_src_rsz_vf(1, &
4261 & k, r, i) - f_src_rsz_vf(0, k, r, i))*pi_coef_z(j, 2, &
4262 & cbc_loc)
4263 end do
4264 end do
4265 end do
4266 end do
4267
4268# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4269#if defined(MFC_OpenACC)
4270# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4271!$acc end parallel loop
4272# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4273#elif defined(MFC_OpenMP)
4274# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4275
4276# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4277!$omp end target teams loop
4278# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4279#endif
4280 end if
4281
4282 ! FD2 or FD4 of RHS at j = 0
4283
4284# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4285
4286# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4287#if defined(MFC_OpenACC)
4288# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4289!$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, &
4290# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4291!$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, H, gamma, pi_inf, qv, c, Ma, T, sum_Enthalpies, Cv, Cp, e_mix, Mw, R_gas, vel_K_sum, &
4292# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4293!$acc& vel_dv_dt_sum, i, j) copyin(dir_idx)
4294# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4295#elif defined(MFC_OpenMP)
4296# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4297
4298# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4299
4300# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4301
4302# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4303!$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, &
4304# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4305!$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, &
4306# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4307!$omp& dqv_dt, dgamma_dt, rho, pres, E, H, 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) map(to:dir_idx)
4308# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4309#endif
4310# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4311 do r = is3%beg, is3%end
4312 do k = is2%beg, is2%end
4313 ! Transferring the Primitive Variables
4314
4315# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4316#if defined(MFC_OpenACC)
4317# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4318!$acc loop seq
4319# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4320#elif defined(MFC_OpenMP)
4321# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4322
4323# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4324#endif
4325 do i = 1, eqn_idx%cont%end
4326 alpha_rho(i) = q_prim_rsz_vf(0, k, r, i)
4327 end do
4328
4329
4330# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4331#if defined(MFC_OpenACC)
4332# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4333!$acc loop seq
4334# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4335#elif defined(MFC_OpenMP)
4336# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4337
4338# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4339#endif
4340 do i = 1, num_dims
4341 vel(i) = q_prim_rsz_vf(0, k, r, eqn_idx%cont%end + i)
4342 end do
4343
4344 vel_k_sum = 0._wp
4345
4346# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4347#if defined(MFC_OpenACC)
4348# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4349!$acc loop seq
4350# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4351#elif defined(MFC_OpenMP)
4352# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4353
4354# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4355#endif
4356 do i = 1, num_dims
4357 vel_k_sum = vel_k_sum + vel(i)**2._wp
4358 end do
4359
4360 pres = q_prim_rsz_vf(0, k, r, eqn_idx%E)
4361
4362
4363# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4364#if defined(MFC_OpenACC)
4365# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4366!$acc loop seq
4367# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4368#elif defined(MFC_OpenMP)
4369# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4370
4371# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4372#endif
4373 do i = 1, eqn_idx%adv%end - eqn_idx%E
4374 adv_local(i) = q_prim_rsz_vf(0, k, r, eqn_idx%E + i)
4375 end do
4376
4377 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
4378
4379
4380# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4381#if defined(MFC_OpenACC)
4382# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4383!$acc loop seq
4384# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4385#elif defined(MFC_OpenMP)
4386# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4387
4388# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4389#endif
4390 do i = 1, eqn_idx%cont%end
4391 mf(i) = alpha_rho(i)/rho
4392 end do
4393
4394 if (chemistry) then
4395
4396# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4397#if defined(MFC_OpenACC)
4398# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4399!$acc loop seq
4400# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4401#elif defined(MFC_OpenMP)
4402# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4403
4404# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4405#endif
4406 do i = eqn_idx%species%beg, eqn_idx%species%end
4407 ys(i - eqn_idx%species%beg + 1) = q_prim_rsz_vf(0, k, r, i)
4408 end do
4409
4410 call get_mixture_molecular_weight(ys, mw)
4411 r_gas = gas_constant/mw
4412 t = pres/rho/r_gas
4413 call get_mixture_specific_heat_cp_mass(t, ys, cp)
4414 call get_mixture_energy_mass(t, ys, e_mix)
4415 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
4416 if (chem_params%gamma_method == 1) then
4417 !> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
4418 call get_mole_fractions(mw, ys, xs)
4419 call get_species_specific_heats_r(t, cp_i)
4420 gamma_i = cp_i/(cp_i - 1.0_wp)
4421 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
4422 else if (chem_params%gamma_method == 2) then
4423 !> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
4424 call get_mixture_specific_heat_cv_mass(t, ys, cv)
4425 gamma = 1.0_wp/(cp/cv - 1.0_wp)
4426 end if
4427 else
4428 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
4429 end if
4430
4431 h = (e + pres)/rho
4432
4433 ! Compute mixture sound speed
4434 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
4435
4436 ! First-Order Spatial Derivatives of Primitive Variables
4437
4438
4439# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4440#if defined(MFC_OpenACC)
4441# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4442!$acc loop seq
4443# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4444#elif defined(MFC_OpenMP)
4445# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4446
4447# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4448#endif
4449 do i = 1, eqn_idx%cont%end
4450 dalpha_rho_ds(i) = 0._wp
4451 end do
4452
4453
4454# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4455#if defined(MFC_OpenACC)
4456# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4457!$acc loop seq
4458# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4459#elif defined(MFC_OpenMP)
4460# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4461
4462# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4463#endif
4464 do i = 1, num_dims
4465 dvel_ds(i) = 0._wp
4466 end do
4467
4468 dpres_ds = 0._wp
4469
4470# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4471#if defined(MFC_OpenACC)
4472# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4473!$acc loop seq
4474# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4475#elif defined(MFC_OpenMP)
4476# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4477
4478# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4479#endif
4480 do i = 1, eqn_idx%adv%end - eqn_idx%E
4481 dadv_ds(i) = 0._wp
4482 end do
4483
4484 if (chemistry) then
4485
4486# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4487#if defined(MFC_OpenACC)
4488# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4489!$acc loop seq
4490# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4491#elif defined(MFC_OpenMP)
4492# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4493
4494# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4495#endif
4496 do i = 1, num_species
4497 dys_ds(i) = 0._wp
4498 end do
4499 end if
4500
4501
4502# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4503#if defined(MFC_OpenACC)
4504# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4505!$acc loop seq
4506# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4507#elif defined(MFC_OpenMP)
4508# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4509
4510# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4511#endif
4512 do j = 0, buff_size
4513
4514# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4515#if defined(MFC_OpenACC)
4516# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4517!$acc loop seq
4518# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4519#elif defined(MFC_OpenMP)
4520# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4521
4522# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4523#endif
4524 do i = 1, eqn_idx%cont%end
4525 dalpha_rho_ds(i) = q_prim_rsz_vf(j, k, r, i)*fd_coef_z(j, cbc_loc) + dalpha_rho_ds(i)
4526 end do
4527
4528# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4529#if defined(MFC_OpenACC)
4530# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4531!$acc loop seq
4532# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4533#elif defined(MFC_OpenMP)
4534# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4535
4536# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4537#endif
4538 do i = 1, num_dims
4539 dvel_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%cont%end + i)*fd_coef_z(j, &
4540 & cbc_loc) + dvel_ds(i)
4541 end do
4542
4543 dpres_ds = q_prim_rsz_vf(j, k, r, eqn_idx%E)*fd_coef_z(j, cbc_loc) + dpres_ds
4544
4545# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4546#if defined(MFC_OpenACC)
4547# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4548!$acc loop seq
4549# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4550#elif defined(MFC_OpenMP)
4551# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4552
4553# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4554#endif
4555 do i = 1, eqn_idx%adv%end - eqn_idx%E
4556 dadv_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%E + i)*fd_coef_z(j, cbc_loc) + dadv_ds(i)
4557 end do
4558
4559 if (chemistry) then
4560
4561# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4562#if defined(MFC_OpenACC)
4563# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4564!$acc loop seq
4565# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4566#elif defined(MFC_OpenMP)
4567# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4568
4569# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4570#endif
4571 do i = 1, num_species
4572 dys_ds(i) = q_prim_rsz_vf(j, k, r, eqn_idx%species%beg - 1 + i)*fd_coef_z(j, &
4573 & cbc_loc) + dys_ds(i)
4574 end do
4575 end if
4576 end do
4577
4578 ! First-Order Temporal Derivatives of Primitive Variables
4579 lambda(1) = vel(dir_idx(1)) - c
4580 lambda(2) = vel(dir_idx(1))
4581 lambda(3) = vel(dir_idx(1)) + c
4582
4583 ma = vel(dir_idx(1))/c
4584
4585 if ((cbc_loc == -1 .and. bc_z%beg == bc_char_slip_wall) .or. (cbc_loc == 1 &
4586 & .and. bc_z%end == bc_char_slip_wall)) then
4587 call s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
4588 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_buffer) .or. (cbc_loc == 1 &
4589 & .and. bc_z%end == bc_char_nr_sub_buffer)) then
4590 call s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4591 & dvel_ds, dadv_ds, dys_ds)
4592 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_inflow) .or. (cbc_loc == 1 &
4593 & .and. bc_z%end == bc_char_nr_sub_inflow)) then
4594 call s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
4595 ! Add GRCBC for Subsonic Inflow
4596 if (bc_z%grcbc_in) then
4597
4598# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4599#if defined(MFC_OpenACC)
4600# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4601!$acc loop seq
4602# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4603#elif defined(MFC_OpenMP)
4604# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4605
4606# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4607#endif
4608 do i = 2, eqn_idx%mom%beg
4609 l(i) = c**3._wp*ma*(alpha_rho(i - 1) - alpha_rho_in(i - 1, &
4610 & 3))/del_in(3) - c*ma*(pres - pres_in(3))/del_in(3)
4611 end do
4612 if (n > 0) then
4613 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - vel_in(3, &
4614 & dir_idx(2)))/del_in(3)
4615 if (p > 0) then
4616 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - vel_in(3, &
4617 & dir_idx(3)))/del_in(3)
4618 end if
4619 end if
4620
4621# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4622#if defined(MFC_OpenACC)
4623# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4624!$acc loop seq
4625# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4626#elif defined(MFC_OpenMP)
4627# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4628
4629# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4630#endif
4631 do i = eqn_idx%E, eqn_idx%adv%end - 1
4632 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) - alpha_in(i + 1 - eqn_idx%E, &
4633 & 3))/del_in(3)
4634 end do
4635 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + vel_in(3, &
4636 & dir_idx(1))*sign(1, &
4637 & cbc_loc))/del_in(3) + c*(1._wp + ma)*(pres - pres_in(3))/del_in(3)
4638 end if
4639 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_outflow) .or. (cbc_loc == 1 &
4640 & .and. bc_z%end == bc_char_nr_sub_outflow)) then
4641 call s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4642 & dvel_ds, dadv_ds, dys_ds)
4643 ! Add GRCBC for Subsonic Outflow (Pressure)
4644 if (bc_z%grcbc_out) then
4645 l(eqn_idx%adv%end) = c*(1._wp - ma)*(pres - pres_out(3))/del_out(3)
4646
4647 ! Add GRCBC for Subsonic Outflow (Normal Velocity)
4648 if (bc_z%grcbc_vel_out) then
4649 l(eqn_idx%adv%end) = l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
4650 & + vel_out(3, dir_idx(1))*sign(1, cbc_loc))/del_out(3)
4651 end if
4652 end if
4653 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_ff_sub_outflow) .or. (cbc_loc == 1 &
4654 & .and. bc_z%end == bc_char_ff_sub_outflow)) then
4655 call s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
4656 & dadv_ds)
4657 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_cp_sub_outflow) .or. (cbc_loc == 1 &
4658 & .and. bc_z%end == bc_char_cp_sub_outflow)) then
4659 call s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4660 & dvel_ds, dadv_ds)
4661 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_sup_inflow) .or. (cbc_loc == 1 &
4662 & .and. bc_z%end == bc_char_sup_inflow)) then
4663 call s_compute_supersonic_inflow_l(l)
4664 else if ((cbc_loc == -1 .and. bc_z%beg == bc_char_sup_outflow) .or. (cbc_loc == 1 &
4665 & .and. bc_z%end == bc_char_sup_outflow)) then
4666 call s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
4667 & dys_ds)
4668 end if
4669
4670 ! Be careful about the cylindrical coordinate!
4671 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
4672 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
4673 else
4674 dpres_dt = -5.e-1_wp*(l(eqn_idx%adv%end) + l(1))
4675 end if
4676
4677
4678# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4679#if defined(MFC_OpenACC)
4680# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4681!$acc loop seq
4682# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4683#elif defined(MFC_OpenMP)
4684# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4685
4686# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4687#endif
4688 do i = 1, eqn_idx%cont%end
4689 dalpha_rho_dt(i) = -(l(i + 1) - mf(i)*dpres_dt)/(c*c)
4690 end do
4691
4692
4693# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4694#if defined(MFC_OpenACC)
4695# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4696!$acc loop seq
4697# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4698#elif defined(MFC_OpenMP)
4699# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4700
4701# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4702#endif
4703 do i = 1, num_dims
4704 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(l(1) - l(eqn_idx%adv%end))/(2._wp*rho*c) &
4705 & + (dir_flg(dir_idx(i)) - 1._wp)*l(eqn_idx%mom%beg + i - 1)
4706 end do
4707
4708 vel_dv_dt_sum = 0._wp
4709
4710# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4711#if defined(MFC_OpenACC)
4712# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4713!$acc loop seq
4714# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4715#elif defined(MFC_OpenMP)
4716# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4717
4718# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4719#endif
4720 do i = 1, num_dims
4721 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
4722 end do
4723
4724 if (chemistry) then
4725
4726# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4727#if defined(MFC_OpenACC)
4728# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4729!$acc loop seq
4730# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4731#elif defined(MFC_OpenMP)
4732# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4733
4734# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4735#endif
4736 do i = 1, num_species
4737 dys_dt(i) = -1._wp*l(eqn_idx%species%beg + i - 1)
4738 end do
4739 end if
4740
4741 ! The treatment of void fraction source is unclear
4742 if (cyl_coord .and. cbc_dir == 2 .and. cbc_loc == 1) then
4743
4744# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4745#if defined(MFC_OpenACC)
4746# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4747!$acc loop seq
4748# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4749#elif defined(MFC_OpenMP)
4750# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4751
4752# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4753#endif
4754 do i = 1, eqn_idx%adv%end - eqn_idx%E
4755 dadv_dt(i) = -l(eqn_idx%mom%end + i) ! + adv_local(i) * vel(dir_idx(1))/y_cc(n)
4756 end do
4757 else
4758
4759# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4760#if defined(MFC_OpenACC)
4761# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4762!$acc loop seq
4763# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4764#elif defined(MFC_OpenMP)
4765# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4766
4767# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4768#endif
4769 do i = 1, eqn_idx%adv%end - eqn_idx%E
4770 dadv_dt(i) = -l(eqn_idx%mom%end + i)
4771 end do
4772 end if
4773
4774 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
4775
4776 if (model_eqns == model_eqns_gamma_law) then
4777 drho_dt = dalpha_rho_dt(1)
4778 dgamma_dt = dadv_dt(1)
4779# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4780 dpi_inf_dt = dadv_dt(2)
4781# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4782 else
4783
4784# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4785#if defined(MFC_OpenACC)
4786# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4787!$acc loop seq
4788# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4789#elif defined(MFC_OpenMP)
4790# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4791
4792# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4793#endif
4794 do i = 1, num_fluids
4795 drho_dt = drho_dt + dalpha_rho_dt(i)
4796 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
4797 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
4798 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
4799 end do
4800 end if
4801
4802 ! flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
4803
4804# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4805#if defined(MFC_OpenACC)
4806# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4807!$acc loop seq
4808# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4809#elif defined(MFC_OpenMP)
4810# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4811
4812# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4813#endif
4814 do i = 1, eqn_idx%cont%end
4815 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, i) + ds(0)*dalpha_rho_dt(i)
4816 end do
4817
4818
4819# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4820#if defined(MFC_OpenACC)
4821# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4822!$acc loop seq
4823# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4824#elif defined(MFC_OpenMP)
4825# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4826
4827# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4828#endif
4829 do i = eqn_idx%mom%beg, eqn_idx%mom%end
4830 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, &
4831 & i) + ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
4832 end do
4833
4834 if (chemistry) then
4835 ! Evolution of LODI equation of energy for real gases adjusted to perfect gas,
4836 ! doi:10.1006/jcph.2002.6990
4837 call get_species_enthalpies_rt(t, h_k)
4838 sum_enthalpies = 0._wp
4839
4840# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4841#if defined(MFC_OpenACC)
4842# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4843!$acc loop seq
4844# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4845#elif defined(MFC_OpenMP)
4846# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4847
4848# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4849#endif
4850 do i = 1, num_species
4851 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
4852 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
4853 end do
4854 flux_rsz_vf_l(-1, k, r, eqn_idx%E) = flux_rsz_vf_l(0, k, r, &
4855 & eqn_idx%E) + ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*l(2) &
4856 & /(c*c) + sum_enthalpies)
4857
4858# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4859#if defined(MFC_OpenACC)
4860# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4861!$acc loop seq
4862# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4863#elif defined(MFC_OpenMP)
4864# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4865
4866# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4867#endif
4868 do i = 1, num_species
4869 flux_rsz_vf_l(-1, k, r, i - 1 + eqn_idx%species%beg) = flux_rsz_vf_l(0, k, r, &
4870 & eqn_idx%species%beg + i - 1) + ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4871 end do
4872 else
4873 flux_rsz_vf_l(-1, k, r, eqn_idx%E) = flux_rsz_vf_l(0, k, r, &
4874 & eqn_idx%E) + ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4875 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4876 end if
4877
4878 ! Only HLL Method 1 uses per-fluid alpha source traces. HLL Method 2 carries a shared interface velocity and
4879 ! must follow the same CBC representation as HLLC.
4880 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
4881
4882# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4883#if defined(MFC_OpenACC)
4884# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4885!$acc loop seq
4886# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4887#elif defined(MFC_OpenMP)
4888# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4889
4890# 891 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4891#endif
4892 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4893 flux_rsz_vf_l(-1, k, r, i) = 0._wp
4894 end do
4895
4896
4897# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4898#if defined(MFC_OpenACC)
4899# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4900!$acc loop seq
4901# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4902#elif defined(MFC_OpenMP)
4903# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4904
4905# 896 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4906#endif
4907 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4908 flux_src_rsz_vf_l(-1, k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4909 & vel(dir_idx(1)))*(flux_rsz_vf_l(0, k, r, &
4910 & i) + vel(dir_idx(1))*flux_src_rsz_vf_l(0, k, r, &
4911 & i) + ds(0)*dadv_dt(i - eqn_idx%E))
4912 end do
4913 else
4914
4915# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4916#if defined(MFC_OpenACC)
4917# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4918!$acc loop seq
4919# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4920#elif defined(MFC_OpenMP)
4921# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4922
4923# 904 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4924#endif
4925 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4926 flux_rsz_vf_l(-1, k, r, i) = flux_rsz_vf_l(0, k, r, i) + ds(0)*dadv_dt(i - eqn_idx%E)
4927 end do
4928
4929
4930# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4931#if defined(MFC_OpenACC)
4932# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4933!$acc loop seq
4934# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4935#elif defined(MFC_OpenMP)
4936# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4937
4938# 909 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4939#endif
4940 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4941 flux_src_rsz_vf_l(-1, k, r, i) = flux_src_rsz_vf_l(0, k, r, i)
4942 end do
4943 end if
4944 ! END: flux_rs_vf_l and flux_src_rs_vf_l at j = -1/2
4945 end do
4946 end do
4947
4948# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4949#if defined(MFC_OpenACC)
4950# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4951!$acc end parallel loop
4952# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4953#elif defined(MFC_OpenMP)
4954# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4955
4956# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4957!$omp end target teams loop
4958# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4959#endif
4960 end if
4961# 920 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4962
4963 ! END: FD2 or FD4 of RHS at j = 0
4964
4965 ! The reshaping of outputted data and disssociation of the FD and PI coefficients, or CBC coefficients, respectively, based
4966 ! on selected CBC coordinate direction.
4967 call s_finalize_cbc(flux_vf, flux_src_vf)
4968
4969 end subroutine s_cbc
4970
4971 !> Set up the selected CBC for the current boundary
4972 subroutine s_initialize_cbc(q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
4973
4974 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
4975 type(scalar_field), dimension(sys_size), intent(in) :: flux_vf, flux_src_vf
4976 type(int_bounds_info), intent(in) :: ix, iy, iz
4977 integer :: i, j, k, r !< Generic loop iterators
4978 ! Configuring the coordinate direction indexes and flags
4979
4980 ! Determining the indicial shift based on CBC location
4981
4982 ! END: Allocation/Association of Primitive and Flux Variables
4983
4984 if (cbc_dir == 1) then
4985 is1%beg = 0; is1%end = buff_size; is2 = iy; is3 = iz
4986 dir_idx = (/1, 2, 3/); dir_flg = (/1._wp, 0._wp, 0._wp/)
4987 else if (cbc_dir == 2) then
4988 is1%beg = 0; is1%end = buff_size; is2 = ix; is3 = iz
4989 dir_idx = (/2, 1, 3/); dir_flg = (/0._wp, 1._wp, 0._wp/)
4990 else
4991 is1%beg = 0; is1%end = buff_size; is2 = iy; is3 = ix
4992 dir_idx = (/3, 1, 2/); dir_flg = (/0._wp, 0._wp, 1._wp/)
4993 end if
4994
4995 dj = max(0, cbc_loc)
4996
4997# 954 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4998#if defined(MFC_OpenACC)
4999# 954 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5000!$acc update device(is1, is2, is3, dj)
5001# 954 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5002#elif defined(MFC_OpenMP)
5003# 954 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5004!$omp target update to(is1, is2, is3, dj)
5005# 954 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5006#endif
5007
5008# 955 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5009#if defined(MFC_OpenACC)
5010# 955 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5011!$acc update device(dir_idx, dir_flg)
5012# 955 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5013#elif defined(MFC_OpenMP)
5014# 955 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5015!$omp target update to(dir_idx, dir_flg)
5016# 955 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5017#endif
5018
5019 ! Reshaping Inputted Data in x-direction
5020 if (cbc_dir == 1) then
5021
5022# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5023
5024# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5025#if defined(MFC_OpenACC)
5026# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5027!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5028# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5029#elif defined(MFC_OpenMP)
5030# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5031
5032# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5033
5034# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5035
5036# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5037!$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)
5038# 959 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5039#endif
5040 do i = 1, sys_size
5041 do r = is3%beg, is3%end
5042 do k = is2%beg, is2%end
5043 do j = 0, buff_size
5044 q_prim_rsx_vf(j, k, r, i) = q_prim_vf(i)%sf(dj*(m - 2*j) + j, k, r)
5045 end do
5046 end do
5047 end do
5048 end do
5049
5050# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5051#if defined(MFC_OpenACC)
5052# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5053!$acc end parallel loop
5054# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5055#elif defined(MFC_OpenMP)
5056# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5057
5058# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5059!$omp end target teams loop
5060# 969 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5061#endif
5062
5063
5064# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5065
5066# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5067#if defined(MFC_OpenACC)
5068# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5069!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5070# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5071#elif defined(MFC_OpenMP)
5072# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5073
5074# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5075
5076# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5077
5078# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5079!$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)
5080# 971 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5081#endif
5082 do r = is3%beg, is3%end
5083 do k = is2%beg, is2%end
5084 do j = 0, buff_size
5085 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, &
5086 & r)*sign(1._wp, -1._wp*cbc_loc)
5087 end do
5088 end do
5089 end do
5090
5091# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5092#if defined(MFC_OpenACC)
5093# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5094!$acc end parallel loop
5095# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5096#elif defined(MFC_OpenMP)
5097# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5098
5099# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5100!$omp end target teams loop
5101# 980 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5102#endif
5103
5104
5105# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5106
5107# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5108#if defined(MFC_OpenACC)
5109# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5110!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5111# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5112#elif defined(MFC_OpenMP)
5113# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5114
5115# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5116
5117# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5118
5119# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5120!$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)
5121# 982 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5122#endif
5123 do i = 1, flux_cbc_index
5124 do r = is3%beg, is3%end
5125 do k = is2%beg, is2%end
5126 do j = -1, buff_size
5127 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)
5128 end do
5129 end do
5130 end do
5131 end do
5132
5133# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5134#if defined(MFC_OpenACC)
5135# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5136!$acc end parallel loop
5137# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5138#elif defined(MFC_OpenMP)
5139# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5140
5141# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5142!$omp end target teams loop
5143# 992 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5144#endif
5145
5146
5147# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5148
5149# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5150#if defined(MFC_OpenACC)
5151# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5152!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5153# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5154#elif defined(MFC_OpenMP)
5155# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5156
5157# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5158
5159# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5160
5161# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5162!$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)
5163# 994 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5164#endif
5165 do r = is3%beg, is3%end
5166 do k = is2%beg, is2%end
5167 do j = -1, buff_size
5168 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)
5169 end do
5170 end do
5171 end do
5172
5173# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5174#if defined(MFC_OpenACC)
5175# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5176!$acc end parallel loop
5177# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5178#elif defined(MFC_OpenMP)
5179# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5180
5181# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5182!$omp end target teams loop
5183# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5184#endif
5185
5186 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5187
5188# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5189
5190# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5191#if defined(MFC_OpenACC)
5192# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5193!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5194# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5195#elif defined(MFC_OpenMP)
5196# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5197
5198# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5199
5200# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5201
5202# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5203!$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)
5204# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5205#endif
5206 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5207 do r = is3%beg, is3%end
5208 do k = is2%beg, is2%end
5209 do j = -1, buff_size
5210 flux_src_rsx_vf_l(j, k, r, i) = flux_src_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r)
5211 end do
5212 end do
5213 end do
5214 end do
5215
5216# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5217#if defined(MFC_OpenACC)
5218# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5219!$acc end parallel loop
5220# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5221#elif defined(MFC_OpenMP)
5222# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5223
5224# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5225!$omp end target teams loop
5226# 1015 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5227#endif
5228 else
5229
5230# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5231
5232# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5233#if defined(MFC_OpenACC)
5234# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5235!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5236# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5237#elif defined(MFC_OpenMP)
5238# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5239
5240# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5241
5242# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5243
5244# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5245!$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)
5246# 1017 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5247#endif
5248 do r = is3%beg, is3%end
5249 do k = is2%beg, is2%end
5250 do j = -1, buff_size
5251 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, &
5252 & k, r)*sign(1._wp, -1._wp*cbc_loc)
5253 end do
5254 end do
5255 end do
5256
5257# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5258#if defined(MFC_OpenACC)
5259# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5260!$acc end parallel loop
5261# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5262#elif defined(MFC_OpenMP)
5263# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5264
5265# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5266!$omp end target teams loop
5267# 1026 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5268#endif
5269 end if
5270
5271 ! END: Reshaping Inputted Data in x-direction
5272
5273 ! Reshaping Inputted Data in y-direction
5274 else if (cbc_dir == 2) then
5275
5276# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5277
5278# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5279#if defined(MFC_OpenACC)
5280# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5281!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5282# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5283#elif defined(MFC_OpenMP)
5284# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5285
5286# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5287
5288# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5289
5290# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5291!$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)
5292# 1033 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5293#endif
5294 do i = 1, sys_size
5295 do r = is3%beg, is3%end
5296 do k = is2%beg, is2%end
5297 do j = 0, buff_size
5298 q_prim_rsy_vf(j, k, r, i) = q_prim_vf(i)%sf(k, dj*(n - 2*j) + j, r)
5299 end do
5300 end do
5301 end do
5302 end do
5303
5304# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5305#if defined(MFC_OpenACC)
5306# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5307!$acc end parallel loop
5308# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5309#elif defined(MFC_OpenMP)
5310# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5311
5312# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5313!$omp end target teams loop
5314# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5315#endif
5316
5317
5318# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5319
5320# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5321#if defined(MFC_OpenACC)
5322# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5323!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5324# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5325#elif defined(MFC_OpenMP)
5326# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5327
5328# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5329
5330# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5331
5332# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5333!$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)
5334# 1045 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5335#endif
5336 do r = is3%beg, is3%end
5337 do k = is2%beg, is2%end
5338 do j = 0, buff_size
5339 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, &
5340 & r)*sign(1._wp, -1._wp*cbc_loc)
5341 end do
5342 end do
5343 end do
5344
5345# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5346#if defined(MFC_OpenACC)
5347# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5348!$acc end parallel loop
5349# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5350#elif defined(MFC_OpenMP)
5351# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5352
5353# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5354!$omp end target teams loop
5355# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5356#endif
5357
5358
5359# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5360
5361# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5362#if defined(MFC_OpenACC)
5363# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5364!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5365# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5366#elif defined(MFC_OpenMP)
5367# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5368
5369# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5370
5371# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5372
5373# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5374!$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)
5375# 1056 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5376#endif
5377 do i = 1, flux_cbc_index
5378 do r = is3%beg, is3%end
5379 do k = is2%beg, is2%end
5380 do j = -1, buff_size
5381 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)
5382 end do
5383 end do
5384 end do
5385 end do
5386
5387# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5388#if defined(MFC_OpenACC)
5389# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5390!$acc end parallel loop
5391# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5392#elif defined(MFC_OpenMP)
5393# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5394
5395# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5396!$omp end target teams loop
5397# 1066 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5398#endif
5399
5400
5401# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5402
5403# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5404#if defined(MFC_OpenACC)
5405# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5406!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5407# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5408#elif defined(MFC_OpenMP)
5409# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5410
5411# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5412
5413# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5414
5415# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5416!$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)
5417# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5418#endif
5419 do r = is3%beg, is3%end
5420 do k = is2%beg, is2%end
5421 do j = -1, buff_size
5422 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)
5423 end do
5424 end do
5425 end do
5426
5427# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5428#if defined(MFC_OpenACC)
5429# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5430!$acc end parallel loop
5431# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5432#elif defined(MFC_OpenMP)
5433# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5434
5435# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5436!$omp end target teams loop
5437# 1076 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5438#endif
5439
5440 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5441
5442# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5443
5444# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5445#if defined(MFC_OpenACC)
5446# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5447!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5448# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5449#elif defined(MFC_OpenMP)
5450# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5451
5452# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5453
5454# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5455
5456# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5457!$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)
5458# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5459#endif
5460 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5461 do r = is3%beg, is3%end
5462 do k = is2%beg, is2%end
5463 do j = -1, buff_size
5464 flux_src_rsy_vf_l(j, k, r, i) = flux_src_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r)
5465 end do
5466 end do
5467 end do
5468 end do
5469
5470# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5471#if defined(MFC_OpenACC)
5472# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5473!$acc end parallel loop
5474# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5475#elif defined(MFC_OpenMP)
5476# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5477
5478# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5479!$omp end target teams loop
5480# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5481#endif
5482 else
5483
5484# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5485
5486# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5487#if defined(MFC_OpenACC)
5488# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5489!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5490# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5491#elif defined(MFC_OpenMP)
5492# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5493
5494# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5495
5496# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5497
5498# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5499!$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)
5500# 1091 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5501#endif
5502 do r = is3%beg, is3%end
5503 do k = is2%beg, is2%end
5504 do j = -1, buff_size
5505 flux_src_rsy_vf_l(j, k, r, eqn_idx%adv%beg) = flux_src_vf(eqn_idx%adv%beg)%sf(k, &
5506 & dj*((n - 1) - 2*j) + j, r)*sign(1._wp, -1._wp*cbc_loc)
5507 end do
5508 end do
5509 end do
5510
5511# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5512#if defined(MFC_OpenACC)
5513# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5514!$acc end parallel loop
5515# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5516#elif defined(MFC_OpenMP)
5517# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5518
5519# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5520!$omp end target teams loop
5521# 1100 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5522#endif
5523 end if
5524
5525 ! END: Reshaping Inputted Data in y-direction
5526
5527 ! Reshaping Inputted Data in z-direction
5528 else
5529
5530# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5531
5532# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5533#if defined(MFC_OpenACC)
5534# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5535!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5536# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5537#elif defined(MFC_OpenMP)
5538# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5539
5540# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5541
5542# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5543
5544# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5545!$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)
5546# 1107 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5547#endif
5548 do i = 1, sys_size
5549 do r = is3%beg, is3%end
5550 do k = is2%beg, is2%end
5551 do j = 0, buff_size
5552 q_prim_rsz_vf(j, k, r, i) = q_prim_vf(i)%sf(r, k, dj*(p - 2*j) + j)
5553 end do
5554 end do
5555 end do
5556 end do
5557
5558# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5559#if defined(MFC_OpenACC)
5560# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5561!$acc end parallel loop
5562# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5563#elif defined(MFC_OpenMP)
5564# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5565
5566# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5567!$omp end target teams loop
5568# 1117 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5569#endif
5570
5571
5572# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5573
5574# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5575#if defined(MFC_OpenACC)
5576# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5577!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5578# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5579#elif defined(MFC_OpenMP)
5580# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5581
5582# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5583
5584# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5585
5586# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5587!$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)
5588# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5589#endif
5590 do r = is3%beg, is3%end
5591 do k = is2%beg, is2%end
5592 do j = 0, buff_size
5593 q_prim_rsz_vf(j, k, r, eqn_idx%mom%end) = q_prim_vf(eqn_idx%mom%end)%sf(r, k, &
5594 & dj*(p - 2*j) + j)*sign(1._wp, -1._wp*cbc_loc)
5595 end do
5596 end do
5597 end do
5598
5599# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5600#if defined(MFC_OpenACC)
5601# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5602!$acc end parallel loop
5603# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5604#elif defined(MFC_OpenMP)
5605# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5606
5607# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5608!$omp end target teams loop
5609# 1128 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5610#endif
5611
5612
5613# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5614
5615# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5616#if defined(MFC_OpenACC)
5617# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5618!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5619# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5620#elif defined(MFC_OpenMP)
5621# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5622
5623# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5624
5625# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5626
5627# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5628!$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)
5629# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5630#endif
5631 do i = 1, flux_cbc_index
5632 do r = is3%beg, is3%end
5633 do k = is2%beg, is2%end
5634 do j = -1, buff_size
5635 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)
5636 end do
5637 end do
5638 end do
5639 end do
5640
5641# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5642#if defined(MFC_OpenACC)
5643# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5644!$acc end parallel loop
5645# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5646#elif defined(MFC_OpenMP)
5647# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5648
5649# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5650!$omp end target teams loop
5651# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5652#endif
5653
5654
5655# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5656
5657# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5658#if defined(MFC_OpenACC)
5659# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5660!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5661# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5662#elif defined(MFC_OpenMP)
5663# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5664
5665# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5666
5667# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5668
5669# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5670!$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)
5671# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5672#endif
5673 do r = is3%beg, is3%end
5674 do k = is2%beg, is2%end
5675 do j = -1, buff_size
5676 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)
5677 end do
5678 end do
5679 end do
5680
5681# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5682#if defined(MFC_OpenACC)
5683# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5684!$acc end parallel loop
5685# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5686#elif defined(MFC_OpenMP)
5687# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5688
5689# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5690!$omp end target teams loop
5691# 1150 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5692#endif
5693
5694 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5695
5696# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5697
5698# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5699#if defined(MFC_OpenACC)
5700# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5701!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5702# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5703#elif defined(MFC_OpenMP)
5704# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5705
5706# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5707
5708# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5709
5710# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5711!$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)
5712# 1153 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5713#endif
5714 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5715 do r = is3%beg, is3%end
5716 do k = is2%beg, is2%end
5717 do j = -1, buff_size
5718 flux_src_rsz_vf_l(j, k, r, i) = flux_src_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j)
5719 end do
5720 end do
5721 end do
5722 end do
5723
5724# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5725#if defined(MFC_OpenACC)
5726# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5727!$acc end parallel loop
5728# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5729#elif defined(MFC_OpenMP)
5730# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5731
5732# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5733!$omp end target teams loop
5734# 1163 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5735#endif
5736 else
5737
5738# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5739
5740# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5741#if defined(MFC_OpenACC)
5742# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5743!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5744# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5745#elif defined(MFC_OpenMP)
5746# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5747
5748# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5749
5750# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5751
5752# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5753!$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)
5754# 1165 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5755#endif
5756 do r = is3%beg, is3%end
5757 do k = is2%beg, is2%end
5758 do j = -1, buff_size
5759 flux_src_rsz_vf_l(j, k, r, eqn_idx%adv%beg) = flux_src_vf(eqn_idx%adv%beg)%sf(r, k, &
5760 & dj*((p - 1) - 2*j) + j)*sign(1._wp, -1._wp*cbc_loc)
5761 end do
5762 end do
5763 end do
5764
5765# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5766#if defined(MFC_OpenACC)
5767# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5768!$acc end parallel loop
5769# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5770#elif defined(MFC_OpenMP)
5771# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5772
5773# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5774!$omp end target teams loop
5775# 1174 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5776#endif
5777 end if
5778 end if
5779 ! END: Reshaping Inputted Data in z-direction
5780
5781 ! Association of the procedural pointer to the appropriate procedure that will be utilized in the evaluation of L variables
5782 ! for the CBC
5783
5784 end subroutine s_initialize_cbc
5785
5786 !> Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC application
5787 subroutine s_finalize_cbc(flux_vf, flux_src_vf)
5788
5789 type(scalar_field), dimension(sys_size), intent(inout) :: flux_vf, flux_src_vf
5790 integer :: i, j, k, r !< Generic loop iterators
5791 ! Determining the indicial shift based on CBC location
5792
5793 dj = max(0, cbc_loc)
5794
5795# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5796#if defined(MFC_OpenACC)
5797# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5798!$acc update device(dj)
5799# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5800#elif defined(MFC_OpenMP)
5801# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5802!$omp target update to(dj)
5803# 1192 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5804#endif
5805
5806 ! Reshaping Outputted Data in x-direction
5807 if (cbc_dir == 1) then
5808
5809# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5810
5811# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5812#if defined(MFC_OpenACC)
5813# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5814!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5815# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5816#elif defined(MFC_OpenMP)
5817# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5818
5819# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5820
5821# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5822
5823# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5824!$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)
5825# 1196 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5826#endif
5827 do i = 1, flux_cbc_index
5828 do r = is3%beg, is3%end
5829 do k = is2%beg, is2%end
5830 do j = -1, buff_size
5831 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)
5832 end do
5833 end do
5834 end do
5835 end do
5836
5837# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5838#if defined(MFC_OpenACC)
5839# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5840!$acc end parallel loop
5841# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5842#elif defined(MFC_OpenMP)
5843# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5844
5845# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5846!$omp end target teams loop
5847# 1206 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5848#endif
5849
5850# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5851
5852# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5853#if defined(MFC_OpenACC)
5854# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5855!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5856# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5857#elif defined(MFC_OpenMP)
5858# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5859
5860# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5861
5862# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5863
5864# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5865!$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)
5866# 1207 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5867#endif
5868 do r = is3%beg, is3%end
5869 do k = is2%beg, is2%end
5870 do j = -1, buff_size
5871 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)
5872 end do
5873 end do
5874 end do
5875
5876# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5877#if defined(MFC_OpenACC)
5878# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5879!$acc end parallel loop
5880# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5881#elif defined(MFC_OpenMP)
5882# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5883
5884# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5885!$omp end target teams loop
5886# 1215 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5887#endif
5888
5889 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
5890
5891# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5892
5893# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5894#if defined(MFC_OpenACC)
5895# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5896!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5897# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5898#elif defined(MFC_OpenMP)
5899# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5900
5901# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5902
5903# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5904
5905# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5906!$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)
5907# 1218 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5908#endif
5909 do i = eqn_idx%adv%beg, eqn_idx%adv%end
5910 do r = is3%beg, is3%end
5911 do k = is2%beg, is2%end
5912 do j = -1, buff_size
5913 flux_src_vf(i)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_src_rsx_vf_l(j, k, r, i)
5914 end do
5915 end do
5916 end do
5917 end do
5918
5919# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5920#if defined(MFC_OpenACC)
5921# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5922!$acc end parallel loop
5923# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5924#elif defined(MFC_OpenMP)
5925# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5926
5927# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5928!$omp end target teams loop
5929# 1228 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5930#endif
5931 else
5932
5933# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5934
5935# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5936#if defined(MFC_OpenACC)
5937# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5938!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
5939# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5940#elif defined(MFC_OpenMP)
5941# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5942
5943# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5944
5945# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5946
5947# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5948!$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)
5949# 1230 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5950#endif
5951 do r = is3%beg, is3%end
5952 do k = is2%beg, is2%end
5953 do j = -1, buff_size
5954 flux_src_vf(eqn_idx%adv%beg)%sf(dj*((m - 1) - 2*j) + j, k, r) = flux_src_rsx_vf_l(j, k, r, &
5955 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
5956 end do
5957 end do
5958 end do
5959
5960# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5961#if defined(MFC_OpenACC)
5962# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5963!$acc end parallel loop
5964# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5965#elif defined(MFC_OpenMP)
5966# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5967
5968# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5969!$omp end target teams loop
5970# 1239 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5971#endif
5972 end if
5973 ! END: Reshaping Outputted Data in x-direction
5974
5975 ! Reshaping Outputted Data in y-direction
5976 else if (cbc_dir == 2) then
5977
5978# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5979
5980# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5981#if defined(MFC_OpenACC)
5982# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5983!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
5984# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5985#elif defined(MFC_OpenMP)
5986# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5987
5988# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5989
5990# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5991
5992# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5993!$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)
5994# 1245 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
5995#endif
5996 do i = 1, flux_cbc_index
5997 do r = is3%beg, is3%end
5998 do k = is2%beg, is2%end
5999 do j = -1, buff_size
6000 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)
6001 end do
6002 end do
6003 end do
6004 end do
6005
6006# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6007#if defined(MFC_OpenACC)
6008# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6009!$acc end parallel loop
6010# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6011#elif defined(MFC_OpenMP)
6012# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6013
6014# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6015!$omp end target teams loop
6016# 1255 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6017#endif
6018
6019
6020# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6021
6022# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6023#if defined(MFC_OpenACC)
6024# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6025!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6026# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6027#elif defined(MFC_OpenMP)
6028# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6029
6030# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6031
6032# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6033
6034# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6035!$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)
6036# 1257 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6037#endif
6038 do r = is3%beg, is3%end
6039 do k = is2%beg, is2%end
6040 do j = -1, buff_size
6041 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)
6042 end do
6043 end do
6044 end do
6045
6046# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6047#if defined(MFC_OpenACC)
6048# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6049!$acc end parallel loop
6050# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6051#elif defined(MFC_OpenMP)
6052# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6053
6054# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6055!$omp end target teams loop
6056# 1265 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6057#endif
6058
6059 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6060
6061# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6062
6063# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6064#if defined(MFC_OpenACC)
6065# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6066!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6067# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6068#elif defined(MFC_OpenMP)
6069# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6070
6071# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6072
6073# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6074
6075# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6076!$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)
6077# 1268 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6078#endif
6079 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6080 do r = is3%beg, is3%end
6081 do k = is2%beg, is2%end
6082 do j = -1, buff_size
6083 flux_src_vf(i)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_src_rsy_vf_l(j, k, r, i)
6084 end do
6085 end do
6086 end do
6087 end do
6088
6089# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6090#if defined(MFC_OpenACC)
6091# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6092!$acc end parallel loop
6093# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6094#elif defined(MFC_OpenMP)
6095# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6096
6097# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6098!$omp end target teams loop
6099# 1278 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6100#endif
6101 else
6102
6103# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6104
6105# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6106#if defined(MFC_OpenACC)
6107# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6108!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6109# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6110#elif defined(MFC_OpenMP)
6111# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6112
6113# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6114
6115# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6116
6117# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6118!$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)
6119# 1280 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6120#endif
6121 do r = is3%beg, is3%end
6122 do k = is2%beg, is2%end
6123 do j = -1, buff_size
6124 flux_src_vf(eqn_idx%adv%beg)%sf(k, dj*((n - 1) - 2*j) + j, r) = flux_src_rsy_vf_l(j, k, r, &
6125 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
6126 end do
6127 end do
6128 end do
6129
6130# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6131#if defined(MFC_OpenACC)
6132# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6133!$acc end parallel loop
6134# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6135#elif defined(MFC_OpenMP)
6136# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6137
6138# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6139!$omp end target teams loop
6140# 1289 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6141#endif
6142 end if
6143
6144 ! END: Reshaping Outputted Data in y-direction
6145
6146 ! Reshaping Outputted Data in z-direction
6147 else
6148
6149# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6150
6151# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6152#if defined(MFC_OpenACC)
6153# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6154!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6155# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6156#elif defined(MFC_OpenMP)
6157# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6158
6159# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6160
6161# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6162
6163# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6164!$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)
6165# 1296 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6166#endif
6167 do i = 1, flux_cbc_index
6168 do r = is3%beg, is3%end
6169 do k = is2%beg, is2%end
6170 do j = -1, buff_size
6171 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)
6172 end do
6173 end do
6174 end do
6175 end do
6176
6177# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6178#if defined(MFC_OpenACC)
6179# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6180!$acc end parallel loop
6181# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6182#elif defined(MFC_OpenMP)
6183# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6184
6185# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6186!$omp end target teams loop
6187# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6188#endif
6189
6190
6191# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6192
6193# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6194#if defined(MFC_OpenACC)
6195# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6196!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6197# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6198#elif defined(MFC_OpenMP)
6199# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6200
6201# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6202
6203# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6204
6205# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6206!$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)
6207# 1308 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6208#endif
6209 do r = is3%beg, is3%end
6210 do k = is2%beg, is2%end
6211 do j = -1, buff_size
6212 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)
6213 end do
6214 end do
6215 end do
6216
6217# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6218#if defined(MFC_OpenACC)
6219# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6220!$acc end parallel loop
6221# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6222#elif defined(MFC_OpenMP)
6223# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6224
6225# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6226!$omp end target teams loop
6227# 1316 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6228#endif
6229
6230 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface) then
6231
6232# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6233
6234# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6235#if defined(MFC_OpenACC)
6236# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6237!$acc parallel loop collapse(4) gang vector default(present) private(i, j, k, r)
6238# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6239#elif defined(MFC_OpenMP)
6240# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6241
6242# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6243
6244# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6245
6246# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6247!$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)
6248# 1319 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6249#endif
6250 do i = eqn_idx%adv%beg, eqn_idx%adv%end
6251 do r = is3%beg, is3%end
6252 do k = is2%beg, is2%end
6253 do j = -1, buff_size
6254 flux_src_vf(i)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_src_rsz_vf_l(j, k, r, i)
6255 end do
6256 end do
6257 end do
6258 end do
6259
6260# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6261#if defined(MFC_OpenACC)
6262# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6263!$acc end parallel loop
6264# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6265#elif defined(MFC_OpenMP)
6266# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6267
6268# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6269!$omp end target teams loop
6270# 1329 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6271#endif
6272 else
6273
6274# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6275
6276# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6277#if defined(MFC_OpenACC)
6278# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6279!$acc parallel loop collapse(3) gang vector default(present) private(j, k, r)
6280# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6281#elif defined(MFC_OpenMP)
6282# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6283
6284# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6285
6286# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6287
6288# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6289!$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)
6290# 1331 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6291#endif
6292 do r = is3%beg, is3%end
6293 do k = is2%beg, is2%end
6294 do j = -1, buff_size
6295 flux_src_vf(eqn_idx%adv%beg)%sf(r, k, dj*((p - 1) - 2*j) + j) = flux_src_rsz_vf_l(j, k, r, &
6296 & eqn_idx%adv%beg)*sign(1._wp, -1._wp*cbc_loc)
6297 end do
6298 end do
6299 end do
6300
6301# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6302#if defined(MFC_OpenACC)
6303# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6304!$acc end parallel loop
6305# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6306#elif defined(MFC_OpenMP)
6307# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6308
6309# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6310!$omp end target teams loop
6311# 1340 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6312#endif
6313 end if
6314 end if
6315 ! END: Reshaping Outputted Data in z-direction
6316
6317 end subroutine s_finalize_cbc
6318
6319 !> Detect whether any domain boundary uses characteristic boundary conditions
6320 elemental subroutine s_any_cbc_boundaries(toggle)
6321
6322 logical, intent(inout) :: toggle
6323
6324 toggle = .false.
6325
6326# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6327 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -5)) then
6328 toggle = .true.
6329 end if
6330# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6331 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -6)) then
6332 toggle = .true.
6333 end if
6334# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6335 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -7)) then
6336 toggle = .true.
6337 end if
6338# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6339 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -8)) then
6340 toggle = .true.
6341 end if
6342# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6343 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -9)) then
6344 toggle = .true.
6345 end if
6346# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6347 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -10)) then
6348 toggle = .true.
6349 end if
6350# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6351 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -11)) then
6352 toggle = .true.
6353 end if
6354# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6355 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -12)) then
6356 toggle = .true.
6357 end if
6358# 1355 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6359 if (any((/bc_x%beg, bc_x%end, bc_y%beg, bc_y%end, bc_z%beg, bc_z%end/) == -13)) then
6360 toggle = .true.
6361 end if
6362# 1359 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6363
6364 end subroutine s_any_cbc_boundaries
6365
6366 !> Module deallocation and/or disassociation procedures
6367 impure subroutine s_finalize_cbc_module
6368
6369 logical :: is_cbc
6370
6371 call s_any_cbc_boundaries(is_cbc)
6372
6373 if (is_cbc .eqv. .false.) return
6374
6375 ! Deallocating the cell-average primitive variables
6376#ifdef MFC_DEBUG
6377# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6378 block
6379# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6380 use iso_fortran_env, only: output_unit
6381# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6382
6383# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6384 print *, 'm_cbc.fpp:1372: ', '@:DEALLOCATE(q_prim_rsx_vf)'
6385# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6386
6387# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6388 call flush (output_unit)
6389# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6390 end block
6391# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6392#endif
6393# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6394
6395# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6396#if defined(MFC_OpenACC)
6397# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6398!$acc exit data delete(q_prim_rsx_vf)
6399# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6400#elif defined(MFC_OpenMP)
6401# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6402!$omp target exit data map(release:q_prim_rsx_vf)
6403# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6404#endif
6405# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6406 deallocate (q_prim_rsx_vf)
6407 if (weno_order > 1 .or. muscl_order > 1) then
6408#ifdef MFC_DEBUG
6409# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6410 block
6411# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6412 use iso_fortran_env, only: output_unit
6413# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6414
6415# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6416 print *, 'm_cbc.fpp:1374: ', '@:DEALLOCATE(F_rsx_vf, F_src_rsx_vf)'
6417# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6418
6419# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6420 call flush (output_unit)
6421# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6422 end block
6423# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6424#endif
6425# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6426
6427# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6428#if defined(MFC_OpenACC)
6429# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6430!$acc exit data delete(F_rsx_vf, F_src_rsx_vf)
6431# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6432#elif defined(MFC_OpenMP)
6433# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6434!$omp target exit data map(release:F_rsx_vf, F_src_rsx_vf)
6435# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6436#endif
6437# 1374 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6438 deallocate (f_rsx_vf, f_src_rsx_vf)
6439 end if
6440#ifdef MFC_DEBUG
6441# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6442 block
6443# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6444 use iso_fortran_env, only: output_unit
6445# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6446
6447# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6448 print *, 'm_cbc.fpp:1376: ', '@:DEALLOCATE(flux_rsx_vf_l, flux_src_rsx_vf_l)'
6449# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6450
6451# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6452 call flush (output_unit)
6453# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6454 end block
6455# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6456#endif
6457# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6458
6459# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6460#if defined(MFC_OpenACC)
6461# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6462!$acc exit data delete(flux_rsx_vf_l, flux_src_rsx_vf_l)
6463# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6464#elif defined(MFC_OpenMP)
6465# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6466!$omp target exit data map(release:flux_rsx_vf_l, flux_src_rsx_vf_l)
6467# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6468#endif
6469# 1376 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6470 deallocate (flux_rsx_vf_l, flux_src_rsx_vf_l)
6471
6472 if (n > 0) then
6473#ifdef MFC_DEBUG
6474# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6475 block
6476# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6477 use iso_fortran_env, only: output_unit
6478# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6479
6480# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6481 print *, 'm_cbc.fpp:1379: ', '@:DEALLOCATE(q_prim_rsy_vf)'
6482# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6483
6484# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6485 call flush (output_unit)
6486# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6487 end block
6488# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6489#endif
6490# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6491
6492# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6493#if defined(MFC_OpenACC)
6494# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6495!$acc exit data delete(q_prim_rsy_vf)
6496# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6497#elif defined(MFC_OpenMP)
6498# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6499!$omp target exit data map(release:q_prim_rsy_vf)
6500# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6501#endif
6502# 1379 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6503 deallocate (q_prim_rsy_vf)
6504 if (weno_order > 1 .or. muscl_order > 1) then
6505#ifdef MFC_DEBUG
6506# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6507 block
6508# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6509 use iso_fortran_env, only: output_unit
6510# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6511
6512# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6513 print *, 'm_cbc.fpp:1381: ', '@:DEALLOCATE(F_rsy_vf, F_src_rsy_vf)'
6514# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6515
6516# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6517 call flush (output_unit)
6518# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6519 end block
6520# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6521#endif
6522# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6523
6524# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6525#if defined(MFC_OpenACC)
6526# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6527!$acc exit data delete(F_rsy_vf, F_src_rsy_vf)
6528# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6529#elif defined(MFC_OpenMP)
6530# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6531!$omp target exit data map(release:F_rsy_vf, F_src_rsy_vf)
6532# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6533#endif
6534# 1381 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6535 deallocate (f_rsy_vf, f_src_rsy_vf)
6536 end if
6537#ifdef MFC_DEBUG
6538# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6539 block
6540# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6541 use iso_fortran_env, only: output_unit
6542# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6543
6544# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6545 print *, 'm_cbc.fpp:1383: ', '@:DEALLOCATE(flux_rsy_vf_l, flux_src_rsy_vf_l)'
6546# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6547
6548# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6549 call flush (output_unit)
6550# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6551 end block
6552# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6553#endif
6554# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6555
6556# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6557#if defined(MFC_OpenACC)
6558# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6559!$acc exit data delete(flux_rsy_vf_l, flux_src_rsy_vf_l)
6560# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6561#elif defined(MFC_OpenMP)
6562# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6563!$omp target exit data map(release:flux_rsy_vf_l, flux_src_rsy_vf_l)
6564# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6565#endif
6566# 1383 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6567 deallocate (flux_rsy_vf_l, flux_src_rsy_vf_l)
6568 end if
6569 if (p > 0) then
6570#ifdef MFC_DEBUG
6571# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6572 block
6573# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6574 use iso_fortran_env, only: output_unit
6575# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6576
6577# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6578 print *, 'm_cbc.fpp:1386: ', '@:DEALLOCATE(q_prim_rsz_vf)'
6579# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6580
6581# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6582 call flush (output_unit)
6583# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6584 end block
6585# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6586#endif
6587# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6588
6589# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6590#if defined(MFC_OpenACC)
6591# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6592!$acc exit data delete(q_prim_rsz_vf)
6593# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6594#elif defined(MFC_OpenMP)
6595# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6596!$omp target exit data map(release:q_prim_rsz_vf)
6597# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6598#endif
6599# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6600 deallocate (q_prim_rsz_vf)
6601 if (weno_order > 1 .or. muscl_order > 1) then
6602#ifdef MFC_DEBUG
6603# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6604 block
6605# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6606 use iso_fortran_env, only: output_unit
6607# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6608
6609# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6610 print *, 'm_cbc.fpp:1388: ', '@:DEALLOCATE(F_rsz_vf, F_src_rsz_vf)'
6611# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6612
6613# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6614 call flush (output_unit)
6615# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6616 end block
6617# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6618#endif
6619# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6620
6621# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6622#if defined(MFC_OpenACC)
6623# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6624!$acc exit data delete(F_rsz_vf, F_src_rsz_vf)
6625# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6626#elif defined(MFC_OpenMP)
6627# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6628!$omp target exit data map(release:F_rsz_vf, F_src_rsz_vf)
6629# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6630#endif
6631# 1388 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6632 deallocate (f_rsz_vf, f_src_rsz_vf)
6633 end if
6634#ifdef MFC_DEBUG
6635# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6636 block
6637# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6638 use iso_fortran_env, only: output_unit
6639# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6640
6641# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6642 print *, 'm_cbc.fpp:1390: ', '@:DEALLOCATE(flux_rsz_vf_l, flux_src_rsz_vf_l)'
6643# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6644
6645# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6646 call flush (output_unit)
6647# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6648 end block
6649# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6650#endif
6651# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6652
6653# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6654#if defined(MFC_OpenACC)
6655# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6656!$acc exit data delete(flux_rsz_vf_l, flux_src_rsz_vf_l)
6657# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6658#elif defined(MFC_OpenMP)
6659# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6660!$omp target exit data map(release:flux_rsz_vf_l, flux_src_rsz_vf_l)
6661# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6662#endif
6663# 1390 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6664 deallocate (flux_rsz_vf_l, flux_src_rsz_vf_l)
6665 end if
6666
6667 ! Deallocating the cell-width distribution in the s-direction
6668#ifdef MFC_DEBUG
6669# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6670 block
6671# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6672 use iso_fortran_env, only: output_unit
6673# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6674
6675# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6676 print *, 'm_cbc.fpp:1394: ', '@:DEALLOCATE(ds)'
6677# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6678
6679# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6680 call flush (output_unit)
6681# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6682 end block
6683# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6684#endif
6685# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6686
6687# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6688#if defined(MFC_OpenACC)
6689# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6690!$acc exit data delete(ds)
6691# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6692#elif defined(MFC_OpenMP)
6693# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6694!$omp target exit data map(release:ds)
6695# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6696#endif
6697# 1394 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6698 deallocate (ds)
6699
6700 ! Deallocating GRCBC inputs
6701#ifdef MFC_DEBUG
6702# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6703 block
6704# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6705 use iso_fortran_env, only: output_unit
6706# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6707
6708# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6709 print *, 'm_cbc.fpp:1397: ', '@:DEALLOCATE(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)'
6710# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6711
6712# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6713 call flush (output_unit)
6714# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6715 end block
6716# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6717#endif
6718# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6719
6720# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6721#if defined(MFC_OpenACC)
6722# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6723!$acc exit data delete(vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
6724# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6725#elif defined(MFC_OpenMP)
6726# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6727!$omp target exit data map(release:vel_in, vel_out, pres_in, pres_out, Del_in, Del_out, alpha_rho_in, alpha_in)
6728# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6729#endif
6730# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6732
6733 ! Deallocating CBC Coefficients in x-direction
6734 if (all((/bc_x%beg, bc_x%end/) <= -5) .and. all((/bc_x%beg, &
6735 & 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
6736#ifdef MFC_DEBUG
6737# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6738 block
6739# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6740 use iso_fortran_env, only: output_unit
6741# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6742
6743# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6744 print *, 'm_cbc.fpp:1402: ', '@:DEALLOCATE(fd_coef_x)'
6745# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6746
6747# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6748 call flush (output_unit)
6749# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6750 end block
6751# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6752#endif
6753# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6754
6755# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6756#if defined(MFC_OpenACC)
6757# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6758!$acc exit data delete(fd_coef_x)
6759# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6760#elif defined(MFC_OpenMP)
6761# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6762!$omp target exit data map(release:fd_coef_x)
6763# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6764#endif
6765# 1402 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6766 deallocate (fd_coef_x)
6767 if (weno_order > 1 .or. muscl_order > 1) then
6768#ifdef MFC_DEBUG
6769# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6770 block
6771# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6772 use iso_fortran_env, only: output_unit
6773# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6774
6775# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6776 print *, 'm_cbc.fpp:1404: ', '@:DEALLOCATE(pi_coef_x)'
6777# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6778
6779# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6780 call flush (output_unit)
6781# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6782 end block
6783# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6784#endif
6785# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6786
6787# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6788#if defined(MFC_OpenACC)
6789# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6790!$acc exit data delete(pi_coef_x)
6791# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6792#elif defined(MFC_OpenMP)
6793# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6794!$omp target exit data map(release:pi_coef_x)
6795# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6796#endif
6797# 1404 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6798 deallocate (pi_coef_x)
6799 end if
6800 end if
6801
6802 ! Deallocating CBC Coefficients in y-direction
6803 if (n > 0) then
6804 if (all((/bc_y%beg, bc_y%end/) <= -5) .and. all((/bc_y%beg, &
6805 & 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
6806#ifdef MFC_DEBUG
6807# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6808 block
6809# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6810 use iso_fortran_env, only: output_unit
6811# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6812
6813# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6814 print *, 'm_cbc.fpp:1412: ', '@:DEALLOCATE(fd_coef_y)'
6815# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6816
6817# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6818 call flush (output_unit)
6819# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6820 end block
6821# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6822#endif
6823# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6824
6825# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6826#if defined(MFC_OpenACC)
6827# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6828!$acc exit data delete(fd_coef_y)
6829# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6830#elif defined(MFC_OpenMP)
6831# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6832!$omp target exit data map(release:fd_coef_y)
6833# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6834#endif
6835# 1412 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6836 deallocate (fd_coef_y)
6837 if (weno_order > 1) then
6838#ifdef MFC_DEBUG
6839# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6840 block
6841# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6842 use iso_fortran_env, only: output_unit
6843# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6844
6845# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6846 print *, 'm_cbc.fpp:1414: ', '@:DEALLOCATE(pi_coef_y)'
6847# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6848
6849# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6850 call flush (output_unit)
6851# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6852 end block
6853# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6854#endif
6855# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6856
6857# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6858#if defined(MFC_OpenACC)
6859# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6860!$acc exit data delete(pi_coef_y)
6861# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6862#elif defined(MFC_OpenMP)
6863# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6864!$omp target exit data map(release:pi_coef_y)
6865# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6866#endif
6867# 1414 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6868 deallocate (pi_coef_y)
6869 end if
6870 end if
6871 end if
6872
6873 ! Deallocating CBC Coefficients in z-direction
6874 if (p > 0) then
6875 if (all((/bc_z%beg, bc_z%end/) <= -5) .and. all((/bc_z%beg, &
6876 & 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
6877#ifdef MFC_DEBUG
6878# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6879 block
6880# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6881 use iso_fortran_env, only: output_unit
6882# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6883
6884# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6885 print *, 'm_cbc.fpp:1423: ', '@:DEALLOCATE(fd_coef_z)'
6886# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6887
6888# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6889 call flush (output_unit)
6890# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6891 end block
6892# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6893#endif
6894# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6895
6896# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6897#if defined(MFC_OpenACC)
6898# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6899!$acc exit data delete(fd_coef_z)
6900# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6901#elif defined(MFC_OpenMP)
6902# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6903!$omp target exit data map(release:fd_coef_z)
6904# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6905#endif
6906# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6907 deallocate (fd_coef_z)
6908 if (weno_order > 1) then
6909#ifdef MFC_DEBUG
6910# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6911 block
6912# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6913 use iso_fortran_env, only: output_unit
6914# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6915
6916# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6917 print *, 'm_cbc.fpp:1425: ', '@:DEALLOCATE(pi_coef_z)'
6918# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6919
6920# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6921 call flush (output_unit)
6922# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6923 end block
6924# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6925#endif
6926# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6927
6928# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6929#if defined(MFC_OpenACC)
6930# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6931!$acc exit data delete(pi_coef_z)
6932# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6933#elif defined(MFC_OpenMP)
6934# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6935!$omp target exit data map(release:pi_coef_z)
6936# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6937#endif
6938# 1425 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
6939 deallocate (pi_coef_z)
6940 end if
6941 end if
6942 end if
6943
6944 end subroutine s_finalize_cbc_module
6945
6946end module m_cbc
integer, intent(in) k
integer, intent(in) j
integer, intent(in) l
Characteristic boundary conditions (CBC) 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.