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