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