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