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