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