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