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