MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_global_parameters.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2!>
3!! @file
4!! @brief Contains module m_global_parameters
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
7! This file exists so that Fypp can be run without generating case.fpp files for
8! each target. This is useful when generating documentation, for example. This
9! should also let MFC be built with CMake directly, without invoking mfc.sh.
10
11! For pre-process.
12# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
13
14! For moving immersed boundaries in simulation
15# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43
44# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45! New line at end of file is required for FYPP
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70
71# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72
73# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74! New line at end of file is required for FYPP
75# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
76
77# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82
83# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149
150# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151
152# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153! New line at end of file is required for FYPP
154# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
155# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
156# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
157# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162
163# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166
167# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176
177# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178
179# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180
181# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182! New line at end of file is required for FYPP
183# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
184
185# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186
187# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234
235# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236
237# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238
239# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240! New line at end of file is required for FYPP
241# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
242
243! GPU parallel region (scalar reductions, maxval/minval)
244# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246! GPU parallel loop over threads (most common GPU macro)
247# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249! Required closing for GPU_PARALLEL_LOOP
250# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252! Mark routine for device compilation
253# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255! Declare device-resident data
256# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258! Inner loop within a GPU parallel region
259# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261! Scoped GPU data region
262# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264! Host code with device pointers (for MPI with GPU buffers)
265# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267! Allocate device memory (unscoped)
268# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270! Free device memory
271# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273! Atomic operation on device
274# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275
276! End atomic capture block
277# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! Copy data between host and device
280# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Synchronization barrier
283# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Import GPU library module (openacc or omp_lib)
286# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Emit code only for AMD compiler
289# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Emit code for non-Cray compilers
292# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294! Emit code only for Cray compiler
295# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296
297! Emit code for non-NVIDIA compilers
298# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299
300# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302! New line at end of file is required for FYPP
303# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
304
305# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
306
307! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
308! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
309! example see misc/nvidia_uvm/bind.sh.
310# 55 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311
312! Allocate and create GPU device memory
313# 75 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314
315! Free GPU device memory and deallocate
316# 83 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317
318! Cray-specific GPU pointer setup for vector fields
319# 107 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320
321! Cray-specific GPU pointer setup for scalar fields
322# 123 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323
324! Cray-specific GPU pointer setup for acoustic source spatials
325# 148 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326
327# 154 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328
329# 161 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330! New line at end of file is required for FYPP
331# 7 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp" 2
332
333!> @brief Global parameters for the computational domain, fluid properties, and simulation algorithm configuration
335
336#ifdef MFC_MPI
337 use mpi !< message passing interface (mpi) module
338#endif
339
342 ! Shared state: generated_decls, generated_case_opt_decls, sys_size, eqn_idx, chemistry, shear_*
344 ! $:USE_GPU_MODULE()
345
346 implicit none
347
348 real(wp) :: wall_time = 0
349 real(wp) :: wall_time_avg = 0
350
351 ! Logistics
352 integer :: num_procs !< Number of processors
353 ! Computational Domain Parameters
354 integer :: proc_rank !< Rank of the local processor
355
356# 30 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
357#if defined(MFC_OpenACC)
358# 30 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
359!$acc declare create(num_procs, proc_rank)
360# 30 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
361#elif defined(MFC_OpenMP)
362# 30 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
363!$omp declare target (num_procs, proc_rank)
364# 30 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
365#endif
366
367 !> @name Max and min number of cells in a direction of each combination of x-,y-, and z-
369
370 !> @name Global number of cells in each direction
371 !> @{
372 integer :: m_glb, n_glb, p_glb
373 !> @}
374
375 !> @name Cylindrical coordinates (either axisymmetric or full 3D)
376 !> @{
377 integer :: grid_geometry
378 !> @}
379
380# 44 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
381#if defined(MFC_OpenACC)
382# 44 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
383!$acc declare create(grid_geometry)
384# 44 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
385#elif defined(MFC_OpenMP)
386# 44 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
387!$omp declare target (grid_geometry)
388# 44 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
389#endif
390
391 !> @name Cell-boundary (CB) locations in the x-, y- and z-directions, respectively
392 !> @{
393 real(wp), target, allocatable, dimension(:) :: x_cb, y_cb, z_cb
394 type(bounds_info), dimension(3) :: glb_bounds
395 !> @}
396
397 !> @name Cell-center (CC) locations in the x-, y- and z-directions, respectively
398 !> @{
399 real(wp), target, allocatable, dimension(:) :: x_cc, y_cc, z_cc
400 !> @}
401 !> @name Cell-width distributions in the x-, y- and z-directions, respectively
402 !> @{
403 real(wp), target, allocatable, dimension(:) :: dx, dy, dz
404 !> @}
405
406
407# 61 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
408#if defined(MFC_OpenACC)
409# 61 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
410!$acc declare create(x_cb, y_cb, z_cb, x_cc, y_cc, z_cc, dx, dy, dz)
411# 61 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
412#elif defined(MFC_OpenMP)
413# 61 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
414!$omp declare target (x_cb, y_cb, z_cb, x_cc, y_cc, z_cc, dx, dy, dz)
415# 61 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
416#endif
417
418 ! dt, m, n, p, cfl_target: GPU-declared via generated_decls.fpp (registered params)
419
420# 64 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
421#if defined(MFC_OpenACC)
422# 64 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
423!$acc declare create(glb_bounds)
424# 64 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
425#elif defined(MFC_OpenMP)
426# 64 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
427!$omp declare target (glb_bounds)
428# 64 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
429#endif
430
431 logical :: cfl_dt
432 ! Simulation Algorithm Parameters generated_case_opt_decls.fpp: now in m_global_parameters_common
433
434 !> Hypoelastic NC velocity-coupling mode; exactly one value, derived from riemann_solver + hypo_hll_interface_rhs.
435 integer, parameter :: hypo_nc_mode_none = 0 !< no hypoelastic NC velocity coupling
436 integer, parameter :: hypo_nc_mode_finite_diff = 1 !< velocity gradients by finite difference (HLL without interface RHS)
437 !> interface-velocity export for the velocity-gradient tensor (HLL Method 2, HLLC)
438 integer, parameter :: hypo_nc_mode_interface = 2
439 integer, parameter :: hypo_nc_mode_dual_pass = 3 !< anchored dual-pass HLLD; all NC terms stay in the Riemann flux
440 integer :: hypo_nc_mode
441 !> NC volume-fraction advection export mode; exactly one value, derived from riemann_solver + hll_u_interface.
442 integer, parameter :: adv_src_mode_unset = 0 !< not yet derived
443 integer, parameter :: adv_src_mode_alpha_iface = 1 !< flux_src exports per-fluid interface alpha
444 integer, parameter :: adv_src_mode_vel_iface = 2 !< flux_src exports shared face-normal interface velocity
445 integer, parameter :: adv_src_mode_none = 3 !< flux_src exports no NC advection quantity
446 integer :: adv_src_mode
447 logical :: use_nc_iface_vel !< nc_iface_vel exports interface velocities needed outside flux_src
448 ! chemistry: in m_global_parameters_common
449 logical :: shear_stress !< Shear stresses
450 logical :: bulk_stress !< Bulk stresses
451 logical :: bodyforces
452 real(wp), dimension(3) :: accel_bf
453
454# 88 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
455#if defined(MFC_OpenACC)
456# 88 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
457!$acc declare create(accel_bf)
458# 88 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
459#elif defined(MFC_OpenMP)
460# 88 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
461!$omp declare target (accel_bf)
462# 88 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
463#endif
464 ! $:GPU_DECLARE(create='[k_x,w_x,p_x,g_x,k_y,w_y,p_y,g_y,k_z,w_z,p_z,g_z]')
465
466 !> Source fields for the spatially supported body force. `spatial_bf` and
467 !> `bf_spatial_support` are auto-generated in generated_decls.fpp.
468 real(wp), allocatable, dimension(:,:,:) :: spbf_source_x
469 real(wp), allocatable, dimension(:,:,:) :: spbf_source_y
470
471# 95 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
472#if defined(MFC_OpenACC)
473# 95 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
474!$acc declare create(spbf_source_x, spbf_source_y)
475# 95 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
476#elif defined(MFC_OpenMP)
477# 95 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
478!$omp declare target (spbf_source_x, spbf_source_y)
479# 95 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
480#endif
481
482 ! Synthetic turbulence (scalars auto-generated in generated_decls.fpp; their
483 ! GPU_DECLARE lines live in m_global_parameters_common)
484 integer, dimension(num_synth_shells_max) :: synth_n_waves_per_shell
485 real(wp), dimension(num_synth_shells_max) :: synth_k_shell, synth_amp_shell
486 real(wp), dimension(num_turb_sources_max, 3) :: turb_pos, synth_l
487
488# 102 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
489#if defined(MFC_OpenACC)
490# 102 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
491!$acc declare create(synth_n_waves_per_shell, synth_k_shell, synth_amp_shell)
492# 102 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
493#elif defined(MFC_OpenMP)
494# 102 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
495!$omp declare target (synth_n_waves_per_shell, synth_k_shell, synth_amp_shell)
496# 102 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
497#endif
498
499# 103 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
500#if defined(MFC_OpenACC)
501# 103 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
502!$acc declare create(turb_pos, synth_L)
503# 103 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
504#elif defined(MFC_OpenMP)
505# 103 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
506!$omp declare target (turb_pos, synth_L)
507# 103 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
508#endif
509
511
512
513# 107 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
514#if defined(MFC_OpenACC)
515# 107 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
516!$acc declare create(shear_stress, bulk_stress)
517# 107 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
518#elif defined(MFC_OpenMP)
519# 107 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
520!$omp declare target (shear_stress, bulk_stress)
521# 107 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
522#endif
523
524# 108 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
525#if defined(MFC_OpenACC)
526# 108 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
527!$acc declare create(hypo_nc_mode)
528# 108 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
529#elif defined(MFC_OpenMP)
530# 108 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
531!$omp declare target (hypo_nc_mode)
532# 108 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
533#endif
534
535 logical :: bc_io
536 logical, dimension(3) :: periodic_bc
537 !> @name Boundary conditions (BC) in the x-, y- and z-directions, respectively
538 !> @{
541 !> @}
542 !> @name Original boundary conditions preserved for immersed boundary code
543 !> (bc_x/y/z get overwritten with MPI neighbor ranks during decomposition)
544 !> @{
546 !> @}
547#if defined(MFC_OpenACC)
548
549# 123 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
550#if defined(MFC_OpenACC)
551# 123 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
552!$acc declare create(bc_x%vb1, bc_x%vb2, bc_x%vb3, bc_x%ve1, bc_x%ve2, bc_x%ve3)
553# 123 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
554#elif defined(MFC_OpenMP)
555# 123 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
556!$omp declare target (bc_x%vb1, bc_x%vb2, bc_x%vb3, bc_x%ve1, bc_x%ve2, bc_x%ve3)
557# 123 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
558#endif
559
560# 124 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
561#if defined(MFC_OpenACC)
562# 124 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
563!$acc declare create(bc_y%vb1, bc_y%vb2, bc_y%vb3, bc_y%ve1, bc_y%ve2, bc_y%ve3)
564# 124 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
565#elif defined(MFC_OpenMP)
566# 124 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
567!$omp declare target (bc_y%vb1, bc_y%vb2, bc_y%vb3, bc_y%ve1, bc_y%ve2, bc_y%ve3)
568# 124 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
569#endif
570
571# 125 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
572#if defined(MFC_OpenACC)
573# 125 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
574!$acc declare create(bc_z%vb1, bc_z%vb2, bc_z%vb3, bc_z%ve1, bc_z%ve2, bc_z%ve3)
575# 125 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
576#elif defined(MFC_OpenMP)
577# 125 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
578!$omp declare target (bc_z%vb1, bc_z%vb2, bc_z%vb3, bc_z%ve1, bc_z%ve2, bc_z%ve3)
579# 125 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
580#endif
581
582# 126 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
583#if defined(MFC_OpenACC)
584# 126 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
585!$acc declare create(ib_bc_x%beg, ib_bc_y%beg, ib_bc_z%beg)
586# 126 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
587#elif defined(MFC_OpenMP)
588# 126 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
589!$omp declare target (ib_bc_x%beg, ib_bc_y%beg, ib_bc_z%beg)
590# 126 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
591#endif
592#elif defined(MFC_OpenMP)
593
594# 128 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
595#if defined(MFC_OpenACC)
596# 128 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
597!$acc declare create(bc_x, bc_y, bc_z)
598# 128 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
599#elif defined(MFC_OpenMP)
600# 128 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
601!$omp declare target (bc_x, bc_y, bc_z)
602# 128 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
603#endif
604
605# 129 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
606#if defined(MFC_OpenACC)
607# 129 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
608!$acc declare create(ib_bc_x, ib_bc_y, ib_bc_z)
609# 129 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
610#elif defined(MFC_OpenMP)
611# 129 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
612!$omp declare target (ib_bc_x, ib_bc_y, ib_bc_z)
613# 129 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
614#endif
615#endif
616
617# 131 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
618#if defined(MFC_OpenACC)
619# 131 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
620!$acc declare create(bc)
621# 131 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
622#elif defined(MFC_OpenMP)
623# 131 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
624!$omp declare target (bc)
625# 131 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
626#endif
629
630# 134 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
631#if defined(MFC_OpenACC)
632# 134 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
633!$acc declare create(neighbor_domain_x, neighbor_domain_y, neighbor_domain_z, num_gbl_ibs)
634# 134 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
635#elif defined(MFC_OpenMP)
636# 134 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
637!$omp declare target (neighbor_domain_x, neighbor_domain_y, neighbor_domain_z, num_gbl_ibs)
638# 134 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
639#endif
640
641 ! proc_coords, start_idx, mpiiofs, mpi_info_int: in m_global_parameters_common
642 ! down_sample: GPU-declared via generated_decls.fpp (registered param)
643
644 !> @name MPI domain-decomposition state for Lagrangian-bubble exchange (#1290)
645 !> @{
646 type(bounds_info), allocatable, dimension(:) :: pcomm_coords !< Local rank physical domain bounds
647 type(int_bounds_info), dimension(3) :: nidx !< Neighbor index offsets per direction
648 integer, allocatable, dimension(:,:,:) :: neighbor_ranks !< MPI ranks of neighbors
649
650# 144 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
651#if defined(MFC_OpenACC)
652# 144 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
653!$acc declare create(pcomm_coords)
654# 144 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
655#elif defined(MFC_OpenMP)
656# 144 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
657!$omp declare target (pcomm_coords)
658# 144 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
659#endif
660 !> @}
661 type(mpi_io_var), public :: mpi_io_data
666 real(wp), allocatable, dimension(:,:), public :: mpi_io_data_lag_bubbles
667
668 ! sys_size and eqn_idx: in m_global_parameters_common (GPU_DECLARE there too)
669 type(qbmm_idx_info) :: qbmm_idx !< QBMM moment index mappings (allocatable; GPU-managed separately).
670
671 ! Cell Indices for the (local) interior points (O-m, O-n, 0-p). Stands for "InDices With INTerior".
673
674# 158 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
675#if defined(MFC_OpenACC)
676# 158 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
677!$acc declare create(idwint)
678# 158 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
679#elif defined(MFC_OpenMP)
680# 158 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
681!$omp declare target (idwint)
682# 158 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
683#endif
684
685 ! Cell Indices for the entire (local) domain. In simulation and post_process, this includes the buffer region. idwbuff and
686 ! idwint are the same otherwise. Stands for "InDices With BUFFer".
688
689# 163 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
690#if defined(MFC_OpenACC)
691# 163 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
692!$acc declare create(idwbuff)
693# 163 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
694#elif defined(MFC_OpenMP)
695# 163 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
696!$omp declare target (idwbuff)
697# 163 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
698#endif
699
700 !> @name Herschel-Bulkley non-Newtonian viscosity: per-fluid flags and parameter arrays.
701 !> @{
702 logical :: any_non_newtonian !< .true. if any fluid is non-Newtonian
703 logical, allocatable, dimension(:) :: is_non_newtonian !< per-fluid NN flag
704 real(wp), allocatable, dimension(:) :: hb_tau0, hb_k, hb_nn, hb_m_arr
705 real(wp), allocatable, dimension(:) :: hb_mu_min, hb_mu_max
706 real(wp), allocatable, dimension(:) :: fluid_inv_re !< per-fluid Newtonian inverse-Re
707 !> @}
708
709
710# 174 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
711#if defined(MFC_OpenACC)
712# 174 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
713!$acc declare create(any_non_newtonian, is_non_newtonian, hb_tau0, hb_K, hb_nn, hb_m_arr, hb_mu_min, hb_mu_max, fluid_inv_re)
714# 174 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
715#elif defined(MFC_OpenMP)
716# 174 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
717!$omp declare target (any_non_newtonian, is_non_newtonian, hb_tau0, hb_K, hb_nn, hb_m_arr, hb_mu_min, hb_mu_max, fluid_inv_re)
718# 174 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
719#endif
720
721 ! WENO averaging flag: use arithmetic mean or unaltered WENO-reconstructed cell-boundary values
722 !> @{
723 real(wp) :: wa_flg
724 !> @}
725
726
727# 181 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
728#if defined(MFC_OpenACC)
729# 181 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
730!$acc declare create(wa_flg)
731# 181 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
732#elif defined(MFC_OpenMP)
733# 181 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
734!$omp declare target (wa_flg)
735# 181 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
736#endif
737
738 !> @name The coordinate direction indexes and flags (flg), respectively, for which the configurations will be determined with
739 !! respect to a working direction and that will be used to isolate the contributions, in that direction, in the dimensionally
740 !! split system of equations. Declared here rather than in m_global_parameters_common so the hot dimensionally-split kernels
741 !! (Riemann solvers) read them from their own module: use-associating them from common costs ~18 kB/work-item of register spill
742 !! on AMD OpenMP offload. Common code takes the mapping as explicit arguments instead.
743 !> @{
744 integer, dimension(3) :: dir_idx
745 real(wp), dimension(3) :: dir_flg
746 integer, dimension(3) :: dir_idx_tau !< (nn, nt, nt2) stress indices for wave speeds and momentum flux
747 integer, dimension(6) :: stress_perm !< Full tensor permutation: local basis -> physical storage index
748 !> @}
749
750
751# 195 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
752#if defined(MFC_OpenACC)
753# 195 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
754!$acc declare create(dir_idx, dir_flg, dir_idx_tau, stress_perm)
755# 195 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
756#elif defined(MFC_OpenMP)
757# 195 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
758!$omp declare target (dir_idx, dir_flg, dir_idx_tau, stress_perm)
759# 195 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
760#endif
761
762 integer :: buff_size !< Number of ghost cells for boundary condition storage
763
764# 198 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
765#if defined(MFC_OpenACC)
766# 198 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
767!$acc declare create(buff_size)
768# 198 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
769#elif defined(MFC_OpenMP)
770# 198 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
771!$omp declare target (buff_size)
772# 198 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
773#endif
774
775 ! shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices: in m_global_parameters_common
776
777 ! END: Simulation Algorithm Parameters
778
779 ! Fluids Physical Parameters fluid_pp, bub_pp: auto-generated in generated_decls.fpp
780
781 integer :: fd_number !< Finite-difference half-stencil size: MAX(1, fd_order/2)
782
783# 207 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
784#if defined(MFC_OpenACC)
785# 207 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
786!$acc declare create(fd_number)
787# 207 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
788#elif defined(MFC_OpenMP)
789# 207 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
790!$omp declare target (fd_number)
791# 207 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
792#endif
793
794 !> @name Centered finite-difference coefficients in x-, y- and z-coordinate directions
795 !> @{
796 real(wp), allocatable, dimension(:,:) :: fd_coeff_x
797 real(wp), allocatable, dimension(:,:) :: fd_coeff_y
798 real(wp), allocatable, dimension(:,:) :: fd_coeff_z
799 !> @}
800
801# 215 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
802#if defined(MFC_OpenACC)
803# 215 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
804!$acc declare create(fd_coeff_x, fd_coeff_y, fd_coeff_z)
805# 215 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
806#elif defined(MFC_OpenMP)
807# 215 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
808!$omp declare target (fd_coeff_x, fd_coeff_y, fd_coeff_z)
809# 215 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
810#endif
811
812 ! probe, integral: auto-generated in generated_decls.fpp
813
814 !> @name Reference density and pressure for Tait EOS
815 !> @{
816 !> @name Immersed Boundaries
817 !> patch_ib, ib_airfoil, stl_models, particle_cloud: auto-generated in generated_decls.fpp
818 !> @{
819 integer, dimension(num_local_ibs_max) :: local_ib_patch_ids !< lookup table of IBs in the local compute domain
820 integer, allocatable, dimension(:,:,:) :: ib_neighbor_ranks !< MPI ranks of neighborhood domains, indexed (-N:N,-N:N,-N:N)
821 type(ib_airfoil_grid), dimension(num_ib_airfoils_max) :: ib_airfoil_grids !< Per-airfoil computed surface grids
822
823
824# 228 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
825#if defined(MFC_OpenACC)
826# 228 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
827!$acc declare create(ib_airfoil_grids)
828# 228 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
829#elif defined(MFC_OpenMP)
830# 228 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
831!$omp declare target (ib_airfoil_grids)
832# 228 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
833#endif
834 !> @}
835
836 !> @name Bubble modeling
837 !> @{
838# 236 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
839 integer :: nb
840# 238 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
841
842 real(wp) :: eu !< Euler number
843
844# 240 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
845#if defined(MFC_OpenACC)
846# 240 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
847!$acc declare create(Eu)
848# 240 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
849#elif defined(MFC_OpenMP)
850# 240 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
851!$omp declare target (Eu)
852# 240 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
853#endif
854
855 real(wp), dimension(:), allocatable :: weight !< Simpson quadrature weights
856 real(wp), dimension(:), allocatable :: r0 !< Bubble sizes
857
858# 244 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
859#if defined(MFC_OpenACC)
860# 244 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
861!$acc declare create(weight, R0)
862# 244 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
863#elif defined(MFC_OpenMP)
864# 244 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
865!$omp declare target (weight, R0)
866# 244 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
867#endif
868
869 real(wp), allocatable, dimension(:,:,:) :: ptil !< Pressure modification
870
871# 247 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
872#if defined(MFC_OpenACC)
873# 247 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
874!$acc declare create(ptil)
875# 247 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
876#elif defined(MFC_OpenMP)
877# 247 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
878!$omp declare target (ptil)
879# 247 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
880#endif
881
882 integer, parameter :: nmom = 6 !< Number of carried moments per R0 location
883 integer :: nmomsp !< Number of moments required by ensemble-averaging
884 integer :: nmomtot !< Total number of carried moments moments/transport equations
885
886# 252 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
887#if defined(MFC_OpenACC)
888# 252 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
889!$acc declare create(nmomsp, nmomtot)
890# 252 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
891#elif defined(MFC_OpenMP)
892# 252 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
893!$omp declare target (nmomsp, nmomtot)
894# 252 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
895#endif
896
897# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
898
899# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
900#if defined(MFC_OpenACC)
901# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
902!$acc declare create(nb)
903# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
904#elif defined(MFC_OpenMP)
905# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
906!$omp declare target (nb)
907# 255 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
908#endif
909# 257 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
910
911 type(scalar_field), allocatable, dimension(:) :: mom_sp
912 type(scalar_field), allocatable, dimension(:,:,:) :: mom_3d
913
914# 260 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
915#if defined(MFC_OpenACC)
916# 260 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
917!$acc declare create(mom_sp, mom_3d)
918# 260 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
919#elif defined(MFC_OpenMP)
920# 260 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
921!$omp declare target (mom_sp, mom_3d)
922# 260 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
923#endif
924 !> @}
925
926 ! chem_params: auto-generated in generated_decls.fpp
927
928 !> @name Physical bubble parameters (see Ando 2010, Preston 2007)
929 !> @{
930 real(wp) :: phi_vg, phi_gv, pe_c, tw, k_vl, k_gl
931
932# 268 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
933#if defined(MFC_OpenACC)
934# 268 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
935!$acc declare create(phi_vg, phi_gv, Pe_c, Tw, k_vl, k_gl)
936# 268 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
937#elif defined(MFC_OpenMP)
938# 268 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
939!$omp declare target (phi_vg, phi_gv, Pe_c, Tw, k_vl, k_gl)
940# 268 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
941#endif
942
943 real(wp), dimension(:), allocatable :: pb0, mass_g0, mass_v0, pe_t, k_v, k_g
944 real(wp), dimension(:), allocatable :: re_trans_t, re_trans_c, im_trans_t, im_trans_c, omegan
945
946# 272 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
947#if defined(MFC_OpenACC)
948# 272 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
949!$acc declare create(pb0, mass_g0, mass_v0, Pe_T, k_v, k_g)
950# 272 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
951#elif defined(MFC_OpenMP)
952# 272 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
953!$omp declare target (pb0, mass_g0, mass_v0, Pe_T, k_v, k_g)
954# 272 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
955#endif
956
957# 273 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
958#if defined(MFC_OpenACC)
959# 273 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
960!$acc declare create(Re_trans_T, Re_trans_c, Im_trans_T, Im_trans_c, omegaN)
961# 273 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
962#elif defined(MFC_OpenMP)
963# 273 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
964!$omp declare target (Re_trans_T, Re_trans_c, Im_trans_T, Im_trans_c, omegaN)
965# 273 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
966#endif
967
968 real(wp) :: gam, gam_m
969
970# 276 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
971#if defined(MFC_OpenACC)
972# 276 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
973!$acc declare create(gam, gam_m)
974# 276 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
975#elif defined(MFC_OpenMP)
976# 276 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
977!$omp declare target (gam, gam_m)
978# 276 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
979#endif
980
982
983# 279 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
984#if defined(MFC_OpenACC)
985# 279 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
986!$acc declare create(p0ref, rho0ref, T0ref, ss, pv, vd, mu_l, mu_v, mu_g, gam_v, gam_g, M_v, M_g, cp_v, cp_g, R_v, R_g)
987# 279 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
988#elif defined(MFC_OpenMP)
989# 279 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
990!$omp declare target (p0ref, rho0ref, T0ref, ss, pv, vd, mu_l, mu_v, mu_g, gam_v, gam_g, M_v, M_g, cp_v, cp_g, R_v, R_g)
991# 279 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
992#endif
993 !> @}
994
995 ! acoustic: auto-generated in generated_decls.fpp
996
997 !> @name Surface tension parameters
998 !> @{
999 !> @}
1000
1001 real(wp) :: mytime !< Current simulation time
1002 real(wp) :: finaltime !< Final simulation time
1003 type(pres_field), allocatable, dimension(:) :: pb_ts
1004 type(pres_field), allocatable, dimension(:) :: mv_ts
1005
1006
1007# 293 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1008#if defined(MFC_OpenACC)
1009# 293 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1010!$acc declare create(mytime, pb_ts, mv_ts)
1011# 293 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1012#elif defined(MFC_OpenMP)
1013# 293 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1014!$omp declare target (mytime, pb_ts, mv_ts)
1015# 293 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1016#endif
1017
1018 !> @name lagrangian subgrid bubble parameters
1019 !> lag_params: auto-generated in generated_decls.fpp
1020 !> @{!
1021 ! lag_params (decl + GPU_DECLARE) auto-generated in generated_decls.fpp; bubbles_lagrange GPU-declared in
1022 ! m_global_parameters_common
1023 integer :: n_el_bubs_loc, n_el_bubs_glb !< Number of Lagrangian bubbles (local and global)
1028
1029# 305 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1030#if defined(MFC_OpenACC)
1031# 305 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1032!$acc declare create(n_el_bubs_loc, n_el_bubs_glb)
1033# 305 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1034#elif defined(MFC_OpenMP)
1035# 305 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1036!$omp declare target (n_el_bubs_loc, n_el_bubs_glb)
1037# 305 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1038#endif
1039
1040# 306 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1041#if defined(MFC_OpenACC)
1042# 306 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1043!$acc declare create(moving_lag_bubbles, lag_vel_model, lag_drag_model)
1044# 306 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1045#elif defined(MFC_OpenMP)
1046# 306 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1047!$omp declare target (moving_lag_bubbles, lag_vel_model, lag_drag_model)
1048# 306 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1049#endif
1050
1051# 307 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1052#if defined(MFC_OpenACC)
1053# 307 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1054!$acc declare create(lag_pressure_force, lag_gravity_force)
1055# 307 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1056#elif defined(MFC_OpenMP)
1057# 307 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1058!$omp declare target (lag_pressure_force, lag_gravity_force)
1059# 307 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1060#endif
1061 !> @}
1062
1063 !> @name Continuum damage model parameters
1064 !> @{!
1065 !> @}
1066
1067 !> @name MHD Hyperbolic cleaning parameters
1068 !> @{!
1069 !> @}
1070
1071contains
1072
1073 !> Assigns default values to the user inputs before reading them in. This enables for an easier consistency check of these
1074 !! parameters once they are read from the input file.
1076
1077 integer :: i, j !< Generic loop iterator
1078
1079 ! Shared defaults (case_dir, m/n/p, cyl_coord, cfl flags, model_eqns, BC blocks,
1080 ! recon/weno/muscl/num_fluids/igr/mhd/relativity under case-opt guard, Tait EOS, bubble flags,
1081 ! IB flags, parallel I/O flags, fft_wrt)
1082
1084
1085 ! Boundary conditions (bc_x/y/z are per-target declarations, not visible in common)
1086 bc_x%beg = dflt_int; bc_x%end = dflt_int
1087 bc_y%beg = dflt_int; bc_y%end = dflt_int
1088 bc_z%beg = dflt_int; bc_z%end = dflt_int
1089
1090# 338 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1091# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1092 bc_x%vb1 = 0._wp
1093 bc_x%ve1 = 0._wp
1094# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1095 bc_x%vb2 = 0._wp
1096 bc_x%ve2 = 0._wp
1097# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1098 bc_x%vb3 = 0._wp
1099 bc_x%ve3 = 0._wp
1100# 342 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1101# 338 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1102# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1103 bc_y%vb1 = 0._wp
1104 bc_y%ve1 = 0._wp
1105# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1106 bc_y%vb2 = 0._wp
1107 bc_y%ve2 = 0._wp
1108# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1109 bc_y%vb3 = 0._wp
1110 bc_y%ve3 = 0._wp
1111# 342 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1112# 338 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1113# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1114 bc_z%vb1 = 0._wp
1115 bc_z%ve1 = 0._wp
1116# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1117 bc_z%vb2 = 0._wp
1118 bc_z%ve2 = 0._wp
1119# 339 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1120 bc_z%vb3 = 0._wp
1121 bc_z%ve3 = 0._wp
1122# 342 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1123# 343 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1124
1125# 345 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1126 bc_x%isothermal_in = .false.
1127 bc_x%isothermal_out = .false.
1128 bc_x%Twall_in = dflt_real
1129 bc_x%Twall_out = dflt_real
1130# 345 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1131 bc_y%isothermal_in = .false.
1132 bc_y%isothermal_out = .false.
1133 bc_y%Twall_in = dflt_real
1134 bc_y%Twall_out = dflt_real
1135# 345 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1136 bc_z%isothermal_in = .false.
1137 bc_z%isothermal_out = .false.
1138 bc_z%Twall_in = dflt_real
1139 bc_z%Twall_out = dflt_real
1140# 350 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1141
1143
1144 ! Logistics (sim-specific)
1145 run_time_info = .false.
1146 t_step_old = dflt_int
1147
1148 ! Computational domain parameters (sim-specific)
1149 dt = dflt_real
1150 cfl_dt = .false.
1151 cfl_target = dflt_real
1152
1153 t_step_stop = dflt_int
1154 t_step_save = dflt_int
1155 t_step_print = 1
1156
1157 t_stop = dflt_real
1158 t_save = dflt_real
1159
1160 ! NVIDIA UVM options
1161 nv_uvm_out_of_core = .false.
1162 nv_uvm_igr_temps_on_gpu = 3 ! => jac, jac_rhs, and jac_old on GPU (default)
1163 nv_uvm_pref_gpu = .false.
1164
1165 ! Simulation algorithm parameters (sim-specific)
1166 mpp_lim = .false.
1167 time_stepper = dflt_int
1168 muscl_eps = dflt_real
1169 weno_eps = dflt_real
1170 teno_ct = dflt_real
1171 mp_weno = .false.
1172 weno_avg = .false.
1173 weno_re_flux = .false.
1174 riemann_hypo_adc = .false.
1175 adc_kappa = 1.0_wp
1176 hll_u_interface = .false.
1177 hypo_hll_interface_rhs = .false.
1180 use_nc_iface_vel = .false.
1181 low_mach = 0
1182 wave_speeds = dflt_int
1183 null_weights = .false.
1184 precision = 2
1185 palpha_eps = dflt_real
1186 ptgalpha_eps = dflt_real
1187 int_comp = 0
1188 ic_eps = dflt_ic_eps
1189 ic_beta = dflt_ic_beta
1190 rdma_mpi = .false.
1191 shear_stress = .false.
1192 bulk_stress = .false.
1193 any_non_newtonian = .false.
1194 num_igr_iters = dflt_num_igr_iters
1195 num_igr_warm_start_iters = dflt_num_igr_warm_start_iters
1196 alf_factor = dflt_alf_factor
1197
1198# 408 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1199 mapped_weno = .false.
1200 wenoz = .false.
1201 teno = .false.
1202 wenoz_q = dflt_real
1203 igr_order = dflt_int
1204 igr_pres_lim = .false.
1205 igr_iter_solver = 1
1206# 416 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1207
1208 chem_params%diffusion = .false.
1209 chem_params%reactions = .false.
1210 chem_params%gamma_method = 1
1211 chem_params%transport_model = 1
1212
1213 chem_params%reaction_substeps = 0
1214 chem_params%adap_substeps = .false.
1215 chem_params%reaction_substeps_max = 0
1216
1217 num_bc_patches = 0
1218 bc_io = .false.
1219 periodic_bc = .false.
1220
1221 ! bc_x/y/z (incl. vb/ve loop) already defaulted above; glb_bounds is #1290's grid-derived global extent
1222 glb_bounds(1)%beg = dflt_real; glb_bounds(1)%end = dflt_real
1223 glb_bounds(2)%beg = dflt_real; glb_bounds(2)%end = dflt_real
1224 glb_bounds(3)%beg = dflt_real; glb_bounds(3)%end = dflt_real
1225
1226 bf_spatial_support = .false.
1227 spatial_bf%amp = 0._wp
1228 spatial_bf%x_centroid = 0._wp
1229 spatial_bf%y_centroid = 0._wp
1230 spatial_bf%conv_vel = 0._wp
1231 spatial_bf%sigma = 0._wp
1232 do i = 1, 8
1233 spatial_bf%freq(i) = 0._wp
1234 spatial_bf%phase(i) = 0._wp
1235 end do
1236
1237 ! Fluids physical parameters (sim-specific; Re(:) and G=0._wp differ from post)
1238 do i = 1, num_fluids_max
1239 fluid_pp(i)%gamma = dflt_real
1240 fluid_pp(i)%pi_inf = dflt_real
1241 fluid_pp(i)%cv = 0._wp
1242 fluid_pp(i)%qv = 0._wp
1243 fluid_pp(i)%qvp = 0._wp
1244 fluid_pp(i)%Re(:) = dflt_real
1245 fluid_pp(i)%G = 0._wp
1246 fluid_pp(i)%non_newtonian = .false.
1247 fluid_pp(i)%K = dflt_real
1248 fluid_pp(i)%nn = dflt_real
1249 fluid_pp(i)%tau0 = 0._wp
1250 fluid_pp(i)%hb_m = dflt_real
1251 fluid_pp(i)%mu_min = dflt_real
1252 fluid_pp(i)%mu_max = dflt_real
1253 fluid_pp(i)%mu_bulk = dflt_real
1254 end do
1255
1256 ! Subgrid bubble parameters (bub_pp struct + scalar companions; scalar companions are
1257 ! per-target manual declarations not in m_global_parameters_common scope)
1258 bub_pp%R0ref = dflt_real; r0ref = dflt_real
1259 bub_pp%p0ref = dflt_real; p0ref = dflt_real
1260 bub_pp%rho0ref = dflt_real; rho0ref = dflt_real
1261 bub_pp%T0ref = dflt_real; t0ref = dflt_real
1262 bub_pp%ss = dflt_real; ss = dflt_real
1263 bub_pp%pv = dflt_real; pv = dflt_real
1264 bub_pp%vd = dflt_real; vd = dflt_real
1265 bub_pp%mu_l = dflt_real; mu_l = dflt_real
1266 bub_pp%mu_v = dflt_real; mu_v = dflt_real
1267 bub_pp%mu_g = dflt_real; mu_g = dflt_real
1268 bub_pp%gam_v = dflt_real; gam_v = dflt_real
1269 bub_pp%gam_g = dflt_real; gam_g = dflt_real
1270 bub_pp%M_v = dflt_real; m_v = dflt_real
1271 bub_pp%M_g = dflt_real; m_g = dflt_real
1272 bub_pp%k_v = dflt_real
1273 bub_pp%k_g = dflt_real
1274 bub_pp%cp_v = dflt_real; cp_v = dflt_real
1275 bub_pp%cp_g = dflt_real; cp_g = dflt_real
1276 bub_pp%R_v = dflt_real; r_v = dflt_real
1277 bub_pp%R_g = dflt_real; r_g = dflt_real
1278
1279 ! Immersed Boundaries (sim-specific extras)
1281 collision_model = 0
1282 coefficient_of_restitution = dflt_real
1283 collision_time = dflt_real
1284 ib_coefficient_of_friction = dflt_real
1285 ib_state_wrt = .false.
1287
1288 ! Bubble modeling (sim-specific)
1289 bubble_model = 1
1290 polytropic = .true.
1291 thermal = dflt_int
1292
1293# 503 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1294 nb = 1
1295 muscl_lim = dflt_int
1296# 506 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1297
1298 adv_n = .false.
1299 adap_dt = .false.
1300 adap_dt_tol = dflt_adap_dt_tol
1301 adap_dt_max_iters = dflt_adap_dt_max_iters
1302
1303 pi_fac = 1._wp
1304
1305 eu = dflt_real
1306 ca = dflt_real
1307 re_inv = dflt_real
1308 web = dflt_real
1309
1310 ! Acoustic source
1311 acoustic_source = .false.
1312 num_source = dflt_int
1313
1314 bodyforces = .false.
1315 bf_x = .false.; bf_y = .false.; bf_z = .false.
1316 !> amplitude, frequency, and phase shift sinusoid in each direction
1317# 527 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1318# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1319 k_x = dflt_real
1320# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1321 w_x = dflt_real
1322# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1323 p_x = dflt_real
1324# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1325 g_x = dflt_real
1326# 530 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1327# 527 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1328# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1329 k_y = dflt_real
1330# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1331 w_y = dflt_real
1332# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1333 p_y = dflt_real
1334# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1335 g_y = dflt_real
1336# 530 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1337# 527 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1338# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1339 k_z = dflt_real
1340# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1341 w_z = dflt_real
1342# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1343 p_z = dflt_real
1344# 528 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1345 g_z = dflt_real
1346# 530 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1347# 531 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1348
1349 synthetic_turbulence = .false.
1350 synth_seed = 1234
1351 synth_n_shells = dflt_int
1353 synth_u_inf = dflt_real
1355 synth_k_shell = dflt_real
1356 synth_amp_shell = dflt_real
1357 turb_pos = dflt_real
1358 synth_l = dflt_real
1359
1360 do j = 1, num_probes_max
1361 acoustic(j)%pulse = dflt_int
1362 acoustic(j)%support = dflt_int
1363 acoustic(j)%dipole = .false.
1364 do i = 1, 3
1365 acoustic(j)%loc(i) = dflt_real
1366 end do
1367 acoustic(j)%mag = dflt_real
1368 acoustic(j)%length = dflt_real
1369 acoustic(j)%height = dflt_real
1370 acoustic(j)%wavelength = dflt_real
1371 acoustic(j)%frequency = dflt_real
1372 acoustic(j)%gauss_sigma_dist = dflt_real
1373 acoustic(j)%gauss_sigma_time = dflt_real
1374 acoustic(j)%npulse = dflt_real
1375 acoustic(j)%dir = dflt_real
1376 acoustic(j)%delay = dflt_real
1377 acoustic(j)%foc_length = dflt_real
1378 acoustic(j)%aperture = dflt_real
1379 acoustic(j)%element_spacing_angle = dflt_real
1380 acoustic(j)%element_polygon_ratio = dflt_real
1381 acoustic(j)%rotate_angle = dflt_real
1382 acoustic(j)%num_elements = dflt_int
1383 acoustic(j)%element_on = dflt_int
1384 acoustic(j)%bb_num_freq = dflt_int
1385 acoustic(j)%bb_lowest_freq = dflt_real
1386 acoustic(j)%bb_bandwidth = dflt_real
1387 end do
1388
1389 fd_order = dflt_int
1390 probe_wrt = .false.
1391 integral_wrt = .false.
1392 num_probes = dflt_int
1393 num_integrals = dflt_int
1394
1395 do i = 1, num_probes_max
1396 probe(i)%x = dflt_real
1397 probe(i)%y = dflt_real
1398 probe(i)%z = dflt_real
1399 end do
1400
1401 do i = 1, num_probes_max
1402 integral(i)%xmin = dflt_real
1403 integral(i)%xmax = dflt_real
1404 integral(i)%ymin = dflt_real
1405 integral(i)%ymax = dflt_real
1406 integral(i)%zmin = dflt_real
1407 integral(i)%zmax = dflt_real
1408 end do
1409
1410 ! GRCBC flags
1411# 595 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1412 bc_x%grcbc_in = .false.
1413 bc_x%grcbc_out = .false.
1414 bc_x%grcbc_vel_out = .false.
1415# 595 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1416 bc_y%grcbc_in = .false.
1417 bc_y%grcbc_out = .false.
1418 bc_y%grcbc_vel_out = .false.
1419# 595 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1420 bc_z%grcbc_in = .false.
1421 bc_z%grcbc_out = .false.
1422 bc_z%grcbc_vel_out = .false.
1423# 599 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1424
1425 ! Lagrangian subgrid bubble model
1426 lag_params%solver_approach = dflt_int
1427 lag_params%cluster_type = dflt_int
1428 lag_params%pressure_corrector = .false.
1429 lag_params%smooth_type = dflt_int
1430 lag_params%heatTransfer_model = .false.
1431 lag_params%massTransfer_model = .false.
1432 lag_params%write_bubbles = .false.
1433 lag_params%write_bubbles_stats = .false.
1434 lag_params%write_void_evol = .false.
1435 lag_params%nBubs_glb = dflt_int
1436 lag_params%vel_model = dflt_int
1437 lag_params%drag_model = dflt_int
1438 lag_params%pressure_force = .true.
1439 lag_params%gravity_force = .false.
1440 lag_params%kahan_summation = .true.
1441 lag_params%epsilonb = 1._wp
1442 lag_params%charwidth = dflt_real
1443 lag_params%charNz = dflt_int
1444 lag_params%valmaxvoid = dflt_real
1445 lag_params%input_path = 'input/lag_bubbles.dat'
1446 moving_lag_bubbles = .false.
1447 lag_vel_model = dflt_int
1448
1449 ! Continuum damage model
1450 tau_star = dflt_real
1451 cont_damage_s = dflt_real
1452 alpha_bar = dflt_real
1453
1454 ! MHD (sim-specific extras beyond common Bx0)
1455 hyper_cleaning_speed = dflt_real
1456 hyper_cleaning_tau = dflt_real
1457
1458 do i = 1, num_ib_airfoils_max
1459 ib_airfoil(i)%c = dflt_real
1460 ib_airfoil(i)%p = dflt_real
1461 ib_airfoil(i)%t = dflt_real
1462 ib_airfoil(i)%m = dflt_real
1463 ib_airfoil_grids(i)%Np = 0
1464 end do
1465
1467 do i = 1, num_particle_clouds_max
1468 particle_cloud(i)%x_centroid = 0._wp
1469 particle_cloud(i)%y_centroid = 0._wp
1470 particle_cloud(i)%z_centroid = 0._wp
1471 particle_cloud(i)%length_x = dflt_real
1472 particle_cloud(i)%length_y = dflt_real
1473 particle_cloud(i)%length_z = dflt_real
1474 particle_cloud(i)%num_particles = 0
1475 particle_cloud(i)%radius = dflt_real
1476 particle_cloud(i)%mass = dflt_real
1477 particle_cloud(i)%min_spacing = 0._wp
1478 particle_cloud(i)%moving_ibm = 0
1479 particle_cloud(i)%seed = 0
1480 particle_cloud(i)%packing_method = dflt_int
1481 end do
1482
1483 do i = 1, num_ib_patches_max_namelist
1484 patch_ib(i)%gbl_patch_id = i
1485 patch_ib(i)%geometry = dflt_int
1486 patch_ib(i)%x_centroid = 0._wp
1487 patch_ib(i)%y_centroid = 0._wp
1488 patch_ib(i)%z_centroid = 0._wp
1489 patch_ib(i)%length_x = dflt_real
1490 patch_ib(i)%length_y = dflt_real
1491 patch_ib(i)%length_z = dflt_real
1492 patch_ib(i)%radius = dflt_real
1493 patch_ib(i)%airfoil_id = 0
1494 patch_ib(i)%model_id = 0
1495 patch_ib(i)%slip = .false.
1496 patch_ib(i)%v_blow = 0._wp
1497 patch_ib(i)%inj_species = 0
1498 patch_ib(i)%burn_rate_exp = 0._wp
1499 patch_ib(i)%burn_rate_pref = 0._wp
1500
1501 ! Variables to handle moving immersed boundaries, defaulting to no movement
1502 patch_ib(i)%moving_ibm = 0
1503 patch_ib(i)%vel(:) = 0._wp
1504 patch_ib(i)%angles(:) = 0._wp
1505 patch_ib(i)%angular_vel(:) = 0._wp
1506 patch_ib(i)%mass = dflt_real
1507 patch_ib(i)%moment = dflt_real
1508 patch_ib(i)%centroid_offset(:) = 0._wp
1509
1510 ! sets values of a rotation matrix which can be used when calculating rotations
1511 patch_ib(i)%rotation_matrix = 0._wp
1512 patch_ib(i)%rotation_matrix(1, 1) = 1._wp
1513 patch_ib(i)%rotation_matrix(2, 2) = 1._wp
1514 patch_ib(i)%rotation_matrix(3, 3) = 1._wp
1515 patch_ib(i)%rotation_matrix_inverse = patch_ib(i)%rotation_matrix
1516 end do
1517
1518 num_stl_models = 0
1519
1520 do i = 1, num_stl_models_max
1521 stl_models(i)%model_filepath(:) = dflt_char
1522 stl_models(i)%model_translate(:) = 0._wp
1523 stl_models(i)%model_scale(:) = 1._wp
1524 stl_models(i)%model_threshold = ray_tracing_threshold
1525 end do
1526
1528
1529 !> Initialize the global parameters module
1531
1532 integer :: i, j, k
1533 integer :: fac
1534
1535# 711 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1536 ! Determining the degree of the WENO polynomials
1537 if (recon_type == recon_type_weno) then
1538 weno_polyn = (weno_order - 1)/2
1539 if (teno) then
1541 else
1543 end if
1544 else if (recon_type == recon_type_muscl) then
1546 end if
1547
1548# 722 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1549#if defined(MFC_OpenACC)
1550# 722 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1551!$acc update device(weno_polyn, muscl_polyn)
1552# 722 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1553#elif defined(MFC_OpenMP)
1554# 722 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1555!$omp target update to(weno_polyn, muscl_polyn)
1556# 722 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1557#endif
1558
1559# 723 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1560#if defined(MFC_OpenACC)
1561# 723 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1562!$acc update device(weno_num_stencils)
1563# 723 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1564#elif defined(MFC_OpenMP)
1565# 723 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1566!$omp target update to(weno_num_stencils)
1567# 723 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1568#endif
1569
1570# 724 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1571#if defined(MFC_OpenACC)
1572# 724 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1573!$acc update device(nb)
1574# 724 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1575#elif defined(MFC_OpenMP)
1576# 724 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1577!$omp target update to(nb)
1578# 724 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1579#endif
1580
1581# 725 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1582#if defined(MFC_OpenACC)
1583# 725 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1584!$acc update device(num_dims, num_vels, num_fluids)
1585# 725 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1586#elif defined(MFC_OpenMP)
1587# 725 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1588!$omp target update to(num_dims, num_vels, num_fluids)
1589# 725 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1590#endif
1591
1592# 726 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1593#if defined(MFC_OpenACC)
1594# 726 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1595!$acc update device(igr, igr_order, igr_iter_solver)
1596# 726 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1597#elif defined(MFC_OpenMP)
1598# 726 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1599!$omp target update to(igr, igr_order, igr_iter_solver)
1600# 726 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1601#endif
1602# 728 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1603
1604 ! muscl_eps: use per-limiter defaults when user did not set it
1605 if (f_is_default(muscl_eps)) then
1606 if (muscl_lim <= 2) then
1607 muscl_eps = 1e-9_wp ! minmod, MC
1608 else
1609 muscl_eps = 1e-6_wp ! Van Albada, Van Leer, SUPERBEE
1610 end if
1611 end if
1612
1613 ! Initialize counts: viscous fluids, surface-tension interfaces, curvature interfaces
1614 re_size = 0
1615 re_size_max = 0
1616
1617 ! Populate eqn_idx, sys_size, shear_* (shared logic)
1618 call s_initialize_eqn_idx(nmom, nb, six_eqn_alf_is_advected=.true.)
1619
1620 ! sim-only: GPU update for shear state after s_initialize_eqn_idx populated it
1621 if (model_eqns == model_eqns_5eq .or. model_eqns == model_eqns_6eq) then
1622 if (hypoelasticity) then
1623
1624# 748 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1625#if defined(MFC_OpenACC)
1626# 748 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1627!$acc update device(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
1628# 748 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1629#elif defined(MFC_OpenMP)
1630# 748 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1631!$omp target update to(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
1632# 748 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1633#endif
1634 end if
1635 end if
1636
1637 ! Per-target (sim): nmomsp/nmomtot for qbmm, qbmm_idx alloc/fill, gam, Re_idx
1638 if (model_eqns == model_eqns_5eq .and. bubbles_euler) then
1639 if (qbmm) then
1640 nmomsp = 4 ! number of special moments
1641 if (nnode == 4) nmomtot = nmom*nb
1642 end if
1643
1644#ifdef MFC_DEBUG
1645# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1646 block
1647# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1648 use iso_fortran_env, only: output_unit
1649# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1650
1651# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1652 print *, 'm_global_parameters.fpp:759: ', '@:ALLOCATE(qbmm_idx%rs(nb), qbmm_idx%vs(nb))'
1653# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1654
1655# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1656 call flush (output_unit)
1657# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1658 end block
1659# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1660#endif
1661# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1662 allocate (qbmm_idx%rs(nb), qbmm_idx%vs(nb))
1663# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1664
1665# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1666
1667# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1668
1669# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1670#if defined(MFC_OpenACC)
1671# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1672!$acc enter data create(qbmm_idx%rs, qbmm_idx%vs)
1673# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1674#elif defined(MFC_OpenMP)
1675# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1676!$omp target enter data map(always,alloc:qbmm_idx%rs, qbmm_idx%vs)
1677# 759 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1678#endif
1679#ifdef MFC_DEBUG
1680# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1681 block
1682# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1683 use iso_fortran_env, only: output_unit
1684# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1685
1686# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1687 print *, 'm_global_parameters.fpp:760: ', '@:ALLOCATE(qbmm_idx%ps(nb), qbmm_idx%ms(nb))'
1688# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1689
1690# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1691 call flush (output_unit)
1692# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1693 end block
1694# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1695#endif
1696# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1697 allocate (qbmm_idx%ps(nb), qbmm_idx%ms(nb))
1698# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1699
1700# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1701
1702# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1703
1704# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1705#if defined(MFC_OpenACC)
1706# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1707!$acc enter data create(qbmm_idx%ps, qbmm_idx%ms)
1708# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1709#elif defined(MFC_OpenMP)
1710# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1711!$omp target enter data map(always,alloc:qbmm_idx%ps, qbmm_idx%ms)
1712# 760 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1713#endif
1714
1715 gam = bub_pp%gam_g
1716
1717 if (qbmm) then
1718#ifdef MFC_DEBUG
1719# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1720 block
1721# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1722 use iso_fortran_env, only: output_unit
1723# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1724
1725# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1726 print *, 'm_global_parameters.fpp:765: ', '@:ALLOCATE(qbmm_idx%moms(nb, nmom))'
1727# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1728
1729# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1730 call flush (output_unit)
1731# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1732 end block
1733# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1734#endif
1735# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1736 allocate (qbmm_idx%moms(nb, nmom))
1737# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1738
1739# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1740
1741# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1742#if defined(MFC_OpenACC)
1743# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1744!$acc enter data create(qbmm_idx%moms)
1745# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1746#elif defined(MFC_OpenMP)
1747# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1748!$omp target enter data map(always,alloc:qbmm_idx%moms)
1749# 765 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1750#endif
1751 do i = 1, nb
1752 do j = 1, nmom
1753 qbmm_idx%moms(i, j) = eqn_idx%bub%beg + (j - 1) + (i - 1)*nmom
1754 end do
1755 qbmm_idx%rs(i) = qbmm_idx%moms(i, 2)
1756 qbmm_idx%vs(i) = qbmm_idx%moms(i, 3)
1757 end do
1758 else
1759 do i = 1, nb
1760 if (.not. polytropic) then
1761 fac = 4
1762 else
1763 fac = 2
1764 end if
1765
1766 qbmm_idx%rs(i) = eqn_idx%bub%beg + (i - 1)*fac
1767 qbmm_idx%vs(i) = qbmm_idx%rs(i) + 1
1768
1769 if (.not. polytropic) then
1770 qbmm_idx%ps(i) = qbmm_idx%vs(i) + 1
1771 qbmm_idx%ms(i) = qbmm_idx%ps(i) + 1
1772 end if
1773 end do
1774 end if
1775 end if
1776
1777 ! sim-only: Re_idx (non-gamma-law models only)
1778 if (model_eqns /= model_eqns_gamma_law) then
1779 ! Count fluids with non-negligible viscous effects (Re > 0)
1780 do i = 1, num_fluids
1781 if (fluid_pp(i)%Re(1) > 0) re_size(1) = re_size(1) + 1
1782 if (fluid_pp(i)%Re(2) > 0) re_size(2) = re_size(2) + 1
1783 end do
1784
1785 if (re_size(1) > 0._wp) shear_stress = .true.
1786 if (re_size(2) > 0._wp) bulk_stress = .true.
1787
1788 re_size_max = maxval(re_size)
1789
1790
1791# 805 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1792#if defined(MFC_OpenACC)
1793# 805 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1794!$acc update device(Re_size, Re_size_max, shear_stress, bulk_stress)
1795# 805 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1796#elif defined(MFC_OpenMP)
1797# 805 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1798!$omp target update to(Re_size, Re_size_max, shear_stress, bulk_stress)
1799# 805 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1800#endif
1801
1802 ! Bookkeeping the indexes of any viscous fluids
1803 if (viscous) then
1804#ifdef MFC_DEBUG
1805# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1806 block
1807# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1808 use iso_fortran_env, only: output_unit
1809# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1810
1811# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1812 print *, 'm_global_parameters.fpp:809: ', '@:ALLOCATE(Re_idx(1:2, 1:Re_size_max))'
1813# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1814
1815# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1816 call flush (output_unit)
1817# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1818 end block
1819# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1820#endif
1821# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1822 allocate (re_idx(1:2, 1:re_size_max))
1823# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1824
1825# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1826
1827# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1828#if defined(MFC_OpenACC)
1829# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1830!$acc enter data create(Re_idx)
1831# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1832#elif defined(MFC_OpenMP)
1833# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1834!$omp target enter data map(always,alloc:Re_idx)
1835# 809 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1836#endif
1837
1838 k = 0
1839 do i = 1, num_fluids
1840 if (fluid_pp(i)%Re(1) > 0) then
1841 k = k + 1; re_idx(1, k) = i
1842 end if
1843 end do
1844
1845 k = 0
1846 do i = 1, num_fluids
1847 if (fluid_pp(i)%Re(2) > 0) then
1848 k = k + 1; re_idx(2, k) = i
1849 end if
1850 end do
1851 end if
1852 end if
1853
1854 ! Herschel-Bulkley non-Newtonian viscosity: gather per-fluid parameters into device arrays
1855#ifdef MFC_DEBUG
1856# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1857 block
1858# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1859 use iso_fortran_env, only: output_unit
1860# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1861
1862# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1863 print *, 'm_global_parameters.fpp:828: ', '@:ALLOCATE(is_non_newtonian(1:num_fluids))'
1864# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1865
1866# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1867 call flush (output_unit)
1868# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1869 end block
1870# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1871#endif
1872# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1873 allocate (is_non_newtonian(1:num_fluids))
1874# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1875
1876# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1877
1878# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1879#if defined(MFC_OpenACC)
1880# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1881!$acc enter data create(is_non_newtonian)
1882# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1883#elif defined(MFC_OpenMP)
1884# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1885!$omp target enter data map(always,alloc:is_non_newtonian)
1886# 828 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1887#endif
1888#ifdef MFC_DEBUG
1889# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1890 block
1891# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1892 use iso_fortran_env, only: output_unit
1893# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1894
1895# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1896 print *, 'm_global_parameters.fpp:829: ', '@:ALLOCATE(hb_tau0(1:num_fluids), hb_K(1:num_fluids), hb_nn(1:num_fluids), hb_m_arr(1:num_fluids))'
1897# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1898
1899# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1900 call flush (output_unit)
1901# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1902 end block
1903# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1904#endif
1905# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1906 allocate (hb_tau0(1:num_fluids), hb_k(1:num_fluids), hb_nn(1:num_fluids), hb_m_arr(1:num_fluids))
1907# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1908
1909# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1910
1911# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1912
1913# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1914
1915# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1916
1917# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1918#if defined(MFC_OpenACC)
1919# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1920!$acc enter data create(hb_tau0, hb_K, hb_nn, hb_m_arr)
1921# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1922#elif defined(MFC_OpenMP)
1923# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1924!$omp target enter data map(always,alloc:hb_tau0, hb_K, hb_nn, hb_m_arr)
1925# 829 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1926#endif
1927#ifdef MFC_DEBUG
1928# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1929 block
1930# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1931 use iso_fortran_env, only: output_unit
1932# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1933
1934# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1935 print *, 'm_global_parameters.fpp:830: ', '@:ALLOCATE(hb_mu_min(1:num_fluids), hb_mu_max(1:num_fluids))'
1936# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1937
1938# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1939 call flush (output_unit)
1940# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1941 end block
1942# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1943#endif
1944# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1945 allocate (hb_mu_min(1:num_fluids), hb_mu_max(1:num_fluids))
1946# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1947
1948# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1949
1950# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1951
1952# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1953#if defined(MFC_OpenACC)
1954# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1955!$acc enter data create(hb_mu_min, hb_mu_max)
1956# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1957#elif defined(MFC_OpenMP)
1958# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1959!$omp target enter data map(always,alloc:hb_mu_min, hb_mu_max)
1960# 830 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1961#endif
1962#ifdef MFC_DEBUG
1963# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1964 block
1965# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1966 use iso_fortran_env, only: output_unit
1967# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1968
1969# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1970 print *, 'm_global_parameters.fpp:831: ', '@:ALLOCATE(fluid_inv_re(1:num_fluids))'
1971# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1972
1973# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1974 call flush (output_unit)
1975# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1976 end block
1977# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1978#endif
1979# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1980 allocate (fluid_inv_re(1:num_fluids))
1981# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1982
1983# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1984
1985# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1986#if defined(MFC_OpenACC)
1987# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1988!$acc enter data create(fluid_inv_re)
1989# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1990#elif defined(MFC_OpenMP)
1991# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1992!$omp target enter data map(always,alloc:fluid_inv_re)
1993# 831 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
1994#endif
1995
1996 any_non_newtonian = .false.
1997 do i = 1, num_fluids
1998 is_non_newtonian(i) = fluid_pp(i)%non_newtonian
1999 if (is_non_newtonian(i)) any_non_newtonian = .true.
2000 hb_tau0(i) = fluid_pp(i)%tau0
2001 hb_k(i) = fluid_pp(i)%K
2002 hb_nn(i) = fluid_pp(i)%nn
2003 hb_m_arr(i) = fluid_pp(i)%hb_m
2004 hb_mu_min(i) = fluid_pp(i)%mu_min
2005 hb_mu_max(i) = fluid_pp(i)%mu_max
2006 if (fluid_pp(i)%Re(1) > 0._wp) then
2007 fluid_inv_re(i) = 1._wp/fluid_pp(i)%Re(1)
2008 else
2009 fluid_inv_re(i) = 0._wp
2010 end if
2011 end do
2012
2013# 849 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2014#if defined(MFC_OpenACC)
2015# 849 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2016!$acc update device(any_non_newtonian, is_non_newtonian, hb_tau0, hb_K, hb_nn, hb_m_arr, hb_mu_min, hb_mu_max, fluid_inv_re)
2017# 849 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2018#elif defined(MFC_OpenMP)
2019# 849 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2020!$omp target update to(any_non_newtonian, is_non_newtonian, hb_tau0, hb_K, hb_nn, hb_m_arr, hb_mu_min, hb_mu_max, fluid_inv_re)
2021# 849 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2022#endif
2023
2024 if (bubbles_euler .and. qbmm .and. .not. polytropic) then
2025 allocate (mpi_io_data%view(1:sys_size + 2*nb*nnode))
2026 allocate (mpi_io_data%var(1:sys_size + 2*nb*nnode))
2027 else if (bubbles_lagrange) then
2028 allocate (mpi_io_data%view(1:sys_size + 1))
2029 allocate (mpi_io_data%var(1:sys_size + 1))
2030 else
2031 allocate (mpi_io_data%view(1:sys_size))
2032 allocate (mpi_io_data%var(1:sys_size))
2033 end if
2034
2035 if (.not. down_sample) then
2036 do i = 1, sys_size
2037 allocate (mpi_io_data%var(i)%sf(0:m,0:n,0:p))
2038 mpi_io_data%var(i)%sf => null()
2039 end do
2040 end if
2041 if (bubbles_euler .and. qbmm .and. .not. polytropic) then
2042 do i = sys_size + 1, sys_size + 2*nb*nnode
2043 allocate (mpi_io_data%var(i)%sf(0:m,0:n,0:p))
2044 mpi_io_data%var(i)%sf => null()
2045 end do
2046 else if (bubbles_lagrange) then
2047 do i = 1, sys_size + 1
2048 allocate (mpi_io_data%var(i)%sf(0:m,0:n,0:p))
2049 mpi_io_data%var(i)%sf => null()
2050 end do
2051 end if
2052
2053 ! Configure WENO averaging flag (arithmetic mean vs. unaltered values)
2054 wa_flg = 0._wp; if (weno_avg) wa_flg = 1._wp
2055
2056# 882 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2057#if defined(MFC_OpenACC)
2058# 882 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2059!$acc update device(wa_flg)
2060# 882 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2061#elif defined(MFC_OpenMP)
2062# 882 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2063!$omp target update to(wa_flg)
2064# 882 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2065#endif
2066
2067 ! Resort to default WENO-JS if no other WENO scheme is selected
2068# 886 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2069 wenojs = .not. (mapped_weno .or. wenoz .or. teno)
2070# 888 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2071
2072 if (ib) allocate (mpi_io_ib_data%var%sf(0:m,0:n,0:p))
2073
2074 if (hypoelasticity .or. mhd .or. probe_wrt .or. ib .or. bubbles_lagrange) then
2075 fd_number = max(1, fd_order/2)
2076 end if
2077
2079 if (hypoelasticity) then
2080 if (riemann_solver == 1) then
2081 if (hypo_hll_interface_rhs) then
2083 else
2085 end if
2086 else if (riemann_solver == 2) then
2088 else if (riemann_solver == 4) then
2090 end if
2091 end if
2092
2093 ! flux_src: choose exactly one export mode (adv_src_mode) for the NC volume fraction advection term.
2094 if (riemann_solver == 1 .and. .not. hll_u_interface) then
2095 ! HLL Method 1 (alpha-interface): flux_src(adv_idx%beg:adv_idx%end) carries interface alpha_k per fluid.
2097 else if ((riemann_solver == 1 .and. hll_u_interface) .or. riemann_solver == 2 .or. riemann_solver == 3 &
2098 & .or. riemann_solver == 5) then
2099 ! HLLC, HLL Method 2 (u-interface), exact, LF: flux_src(adv_idx%beg) carries one shared face-normal velocity.
2101 else if (riemann_solver == 4) then
2102 ! MHD HLLD: single species, no volume fraction to advect. Hypo HLLD: the dual-pass keeps all NC terms in the flux.
2104 end if
2105
2106 call s_configure_coordinate_bounds(recon_type, weno_polyn, muscl_polyn, igr_order, buff_size, idwint, idwbuff, viscous, &
2107 & bubbles_lagrange, m, n, p, num_dims, igr, ib, fd_number)
2108
2109# 925 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2110#if defined(MFC_OpenACC)
2111# 925 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2112!$acc update device(idwint, idwbuff)
2113# 925 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2114#elif defined(MFC_OpenMP)
2115# 925 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2116!$omp target update to(idwint, idwbuff)
2117# 925 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2118#endif
2119
2120 ! Configuring Coordinate Direction Indexes
2121 if (bubbles_euler) then
2122#ifdef MFC_DEBUG
2123# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2124 block
2125# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2126 use iso_fortran_env, only: output_unit
2127# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2128
2129# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2130 print *, 'm_global_parameters.fpp:929: ', '@:ALLOCATE(ptil( idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2131# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2132
2133# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2134 call flush (output_unit)
2135# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2136 end block
2137# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2138#endif
2139# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2140 allocate (ptil( idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2141# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2142
2143# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2144
2145# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2146#if defined(MFC_OpenACC)
2147# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2148!$acc enter data create(ptil)
2149# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2150#elif defined(MFC_OpenMP)
2151# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2152!$omp target enter data map(always,alloc:ptil)
2153# 929 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2154#endif
2155 end if
2156
2157
2158# 932 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2159#if defined(MFC_OpenACC)
2160# 932 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2161!$acc update device(fd_order, fd_number)
2162# 932 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2163#elif defined(MFC_OpenMP)
2164# 932 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2165!$omp target update to(fd_order, fd_number)
2166# 932 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2167#endif
2168
2169 if (cyl_coord .neqv. .true.) then ! Cartesian grid
2170 grid_geometry = 1
2171 else if (cyl_coord .and. p == 0) then ! Axisymmetric cylindrical grid
2172 grid_geometry = 2
2173 else
2174 grid_geometry = 3
2175 end if
2176
2177 ! nc_iface_vel: use_nc_iface_vel enables a second export channel. Use it when the Riemann solver must expose interface
2178 ! velocities beyond what flux_src already provides:
2179 !
2180 ! 1. adv_src_mode_alpha_iface + alt_soundspeed: face-normal velocity only, for the KdivU correction (flux_src already
2181 ! carries alpha in this mode) 2. hypo_nc_mode_interface: all components for the hypoelastic velocity-gradient tensor
2182 ! 3. hypo_nc_mode_dual_pass + axisym: anchored radial face traces for the cylindrical completion (both velocity
2183 ! components are exported per face; the completion consumes the radial one from each pass)
2185 & .and. grid_geometry == 2) .or. (adv_src_mode == adv_src_mode_alpha_iface .and. alt_soundspeed)
2186
2187
2188# 952 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2189#if defined(MFC_OpenACC)
2190# 952 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2191!$acc update device(sys_size, buff_size, eqn_idx, adv_n, adap_dt, pi_fac, adap_dt_tol, adap_dt_max_iters)
2192# 952 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2193#elif defined(MFC_OpenMP)
2194# 952 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2195!$omp target update to(sys_size, buff_size, eqn_idx, adv_n, adap_dt, pi_fac, adap_dt_tol, adap_dt_max_iters)
2196# 952 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2197#endif
2198
2199# 953 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2200#if defined(MFC_OpenACC)
2201# 953 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2202!$acc update device(cfl_target, m, n, p)
2203# 953 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2204#elif defined(MFC_OpenMP)
2205# 953 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2206!$omp target update to(cfl_target, m, n, p)
2207# 953 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2208#endif
2209
2210
2211# 955 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2212#if defined(MFC_OpenACC)
2213# 955 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2214!$acc update device(alt_soundspeed, acoustic_source, num_source)
2215# 955 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2216#elif defined(MFC_OpenMP)
2217# 955 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2218!$omp target update to(alt_soundspeed, acoustic_source, num_source)
2219# 955 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2220#endif
2221
2222# 956 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2223#if defined(MFC_OpenACC)
2224# 956 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2225!$acc update device(dt, sys_size, buff_size, eqn_idx, mpp_lim, bubbles_euler, hypoelasticity, alt_soundspeed, avg_state, model_eqns, mixture_err, grid_geometry, cyl_coord, mp_weno, weno_eps, teno_CT, low_Mach)
2226# 956 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2227#elif defined(MFC_OpenMP)
2228# 956 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2229!$omp target update to(dt, sys_size, buff_size, eqn_idx, mpp_lim, bubbles_euler, hypoelasticity, alt_soundspeed, avg_state, model_eqns, mixture_err, grid_geometry, cyl_coord, mp_weno, weno_eps, teno_CT, low_Mach)
2230# 956 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2231#endif
2232# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2233
2234# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2235#if defined(MFC_OpenACC)
2236# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2237!$acc update device(riemann_hypo_ADC, ADC_kappa, hll_u_interface, hypo_hll_interface_rhs, hypo_nc_mode)
2238# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2239#elif defined(MFC_OpenMP)
2240# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2241!$omp target update to(riemann_hypo_ADC, ADC_kappa, hll_u_interface, hypo_hll_interface_rhs, hypo_nc_mode)
2242# 958 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2243#endif
2244
2245
2246# 960 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2247#if defined(MFC_OpenACC)
2248# 960 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2249!$acc update device(Bx0)
2250# 960 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2251#elif defined(MFC_OpenMP)
2252# 960 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2253!$omp target update to(Bx0)
2254# 960 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2255#endif
2256
2257
2258# 962 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2259#if defined(MFC_OpenACC)
2260# 962 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2261!$acc update device(chem_params)
2262# 962 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2263#elif defined(MFC_OpenMP)
2264# 962 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2265!$omp target update to(chem_params)
2266# 962 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2267#endif
2268
2269
2270# 964 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2271#if defined(MFC_OpenACC)
2272# 964 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2273!$acc update device(rburn)
2274# 964 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2275#elif defined(MFC_OpenMP)
2276# 964 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2277!$omp target update to(rburn)
2278# 964 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2279#endif
2280
2281
2282# 966 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2283#if defined(MFC_OpenACC)
2284# 966 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2285!$acc update device(cont_damage, tau_star, cont_damage_s, alpha_bar)
2286# 966 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2287#elif defined(MFC_OpenMP)
2288# 966 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2289!$omp target update to(cont_damage, tau_star, cont_damage_s, alpha_bar)
2290# 966 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2291#endif
2292
2293
2294# 968 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2295#if defined(MFC_OpenACC)
2296# 968 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2297!$acc update device(hyper_cleaning, hyper_cleaning_speed, hyper_cleaning_tau)
2298# 968 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2299#elif defined(MFC_OpenMP)
2300# 968 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2301!$omp target update to(hyper_cleaning, hyper_cleaning_speed, hyper_cleaning_tau)
2302# 968 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2303#endif
2304
2305# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2306
2307# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2308#if defined(MFC_OpenACC)
2309# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2310!$acc update device(wenojs, mapped_weno, wenoz, teno)
2311# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2312#elif defined(MFC_OpenMP)
2313# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2314!$omp target update to(wenojs, mapped_weno, wenoz, teno)
2315# 971 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2316#endif
2317
2318# 972 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2319#if defined(MFC_OpenACC)
2320# 972 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2321!$acc update device(wenoz_q)
2322# 972 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2323#elif defined(MFC_OpenMP)
2324# 972 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2325!$omp target update to(wenoz_q)
2326# 972 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2327#endif
2328
2329# 973 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2330#if defined(MFC_OpenACC)
2331# 973 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2332!$acc update device(mhd, relativity)
2333# 973 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2334#elif defined(MFC_OpenMP)
2335# 973 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2336!$omp target update to(mhd, relativity)
2337# 973 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2338#endif
2339
2340# 974 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2341#if defined(MFC_OpenACC)
2342# 974 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2343!$acc update device(muscl_order, muscl_lim)
2344# 974 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2345#elif defined(MFC_OpenMP)
2346# 974 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2347!$omp target update to(muscl_order, muscl_lim)
2348# 974 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2349#endif
2350
2351# 975 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2352#if defined(MFC_OpenACC)
2353# 975 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2354!$acc update device(igr, igr_order)
2355# 975 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2356#elif defined(MFC_OpenMP)
2357# 975 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2358!$omp target update to(igr, igr_order)
2359# 975 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2360#endif
2361
2362# 976 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2363#if defined(MFC_OpenACC)
2364# 976 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2365!$acc update device(num_fluids, num_dims, viscous, num_vels, nb, muscl_lim)
2366# 976 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2367#elif defined(MFC_OpenMP)
2368# 976 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2369!$omp target update to(num_fluids, num_dims, viscous, num_vels, nb, muscl_lim)
2370# 976 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2371#endif
2372# 978 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2373
2374
2375# 979 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2376#if defined(MFC_OpenACC)
2377# 979 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2378!$acc update device(int_comp, ic_eps, ic_beta)
2379# 979 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2380#elif defined(MFC_OpenMP)
2381# 979 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2382!$omp target update to(int_comp, ic_eps, ic_beta)
2383# 979 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2384#endif
2385
2386# 980 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2387#if defined(MFC_OpenACC)
2388# 980 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2389!$acc update device(muscl_eps)
2390# 980 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2391#elif defined(MFC_OpenMP)
2392# 980 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2393!$omp target update to(muscl_eps)
2394# 980 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2395#endif
2396
2397# 981 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2398#if defined(MFC_OpenACC)
2399# 981 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2400!$acc update device(dir_idx, dir_flg, dir_idx_tau, stress_perm)
2401# 981 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2402#elif defined(MFC_OpenMP)
2403# 981 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2404!$omp target update to(dir_idx, dir_flg, dir_idx_tau, stress_perm)
2405# 981 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2406#endif
2407
2408
2409# 983 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2410#if defined(MFC_OpenACC)
2411# 983 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2412!$acc update device(relax, relax_model, palpha_eps, ptgalpha_eps)
2413# 983 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2414#elif defined(MFC_OpenMP)
2415# 983 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2416!$omp target update to(relax, relax_model, palpha_eps, ptgalpha_eps)
2417# 983 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2418#endif
2419
2420 if (synthetic_turbulence) then
2421
2422# 986 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2423#if defined(MFC_OpenACC)
2424# 986 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2425!$acc update device(synthetic_turbulence, num_turbulent_sources)
2426# 986 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2427#elif defined(MFC_OpenMP)
2428# 986 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2429!$omp target update to(synthetic_turbulence, num_turbulent_sources)
2430# 986 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2431#endif
2432
2433# 987 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2434#if defined(MFC_OpenACC)
2435# 987 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2436!$acc update device(synth_U_inf, synth_n_waves_per_shell, synth_k_shell, synth_amp_shell)
2437# 987 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2438#elif defined(MFC_OpenMP)
2439# 987 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2440!$omp target update to(synth_U_inf, synth_n_waves_per_shell, synth_k_shell, synth_amp_shell)
2441# 987 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2442#endif
2443
2444# 988 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2445#if defined(MFC_OpenACC)
2446# 988 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2447!$acc update device(turb_pos, synth_L)
2448# 988 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2449#elif defined(MFC_OpenMP)
2450# 988 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2451!$omp target update to(turb_pos, synth_L)
2452# 988 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2453#endif
2454 end if
2455
2456 ! Allocating grid variables for the x-, y- and z-directions
2457#ifdef MFC_DEBUG
2458# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2459 block
2460# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2461 use iso_fortran_env, only: output_unit
2462# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2463
2464# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2465 print *, 'm_global_parameters.fpp:992: ', '@:ALLOCATE(x_cb(-1 - buff_size:m + buff_size))'
2466# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2467
2468# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2469 call flush (output_unit)
2470# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2471 end block
2472# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2473#endif
2474# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2475 allocate (x_cb(-1 - buff_size:m + buff_size))
2476# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2477
2478# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2479
2480# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2481#if defined(MFC_OpenACC)
2482# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2483!$acc enter data create(x_cb)
2484# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2485#elif defined(MFC_OpenMP)
2486# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2487!$omp target enter data map(always,alloc:x_cb)
2488# 992 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2489#endif
2490#ifdef MFC_DEBUG
2491# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2492 block
2493# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2494 use iso_fortran_env, only: output_unit
2495# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2496
2497# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2498 print *, 'm_global_parameters.fpp:993: ', '@:ALLOCATE(x_cc(-buff_size:m + buff_size))'
2499# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2500
2501# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2502 call flush (output_unit)
2503# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2504 end block
2505# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2506#endif
2507# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2508 allocate (x_cc(-buff_size:m + buff_size))
2509# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2510
2511# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2512
2513# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2514#if defined(MFC_OpenACC)
2515# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2516!$acc enter data create(x_cc)
2517# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2518#elif defined(MFC_OpenMP)
2519# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2520!$omp target enter data map(always,alloc:x_cc)
2521# 993 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2522#endif
2523#ifdef MFC_DEBUG
2524# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2525 block
2526# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2527 use iso_fortran_env, only: output_unit
2528# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2529
2530# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2531 print *, 'm_global_parameters.fpp:994: ', '@:ALLOCATE(dx(-buff_size:m + buff_size))'
2532# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2533
2534# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2535 call flush (output_unit)
2536# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2537 end block
2538# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2539#endif
2540# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2541 allocate (dx(-buff_size:m + buff_size))
2542# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2543
2544# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2545
2546# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2547#if defined(MFC_OpenACC)
2548# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2549!$acc enter data create(dx)
2550# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2551#elif defined(MFC_OpenMP)
2552# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2553!$omp target enter data map(always,alloc:dx)
2554# 994 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2555#endif
2556#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2557# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2558 block
2559# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2560 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2561# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2562 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2563# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2564#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2565# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2566 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2567# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2568#else
2569# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2570 use cuda_runtime_api
2571# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2572#endif
2573# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2574 integer :: istat
2575# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2576
2577# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2578 if (nv_uvm_pref_gpu) then
2579# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2580 ! print*, "Moving x_cb to GPU => ", SHAPE(x_cb) set preferred location GPU
2581# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2582 istat = cudamemadvise(c_devloc(x_cb), sizeof(x_cb), cudamemadvisesetpreferredlocation, 0)
2583# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2584 if (istat /= cudasuccess) then
2585# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2586 write (*, "('Error code: ',I0, ': ')") istat
2587# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2588 ! write(*,*) cudaGetErrorString(istat)
2589# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2590 end if
2591# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2592 ! set accessed by CPU
2593# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2594 istat = cudamemadvise(c_devloc(x_cb), sizeof(x_cb), cudamemadvisesetaccessedby, cudacpudeviceid)
2595# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2596 if (istat /= cudasuccess) then
2597# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2598 write (*, "('Error code: ',I0, ': ')") istat
2599# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2600 ! write(*,*) cudaGetErrorString(istat)
2601# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2602 end if
2603# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2604 ! prefetch to GPU - physically populate memory pages
2605# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2606 istat = cudamemprefetchasync(c_devloc(x_cb), sizeof(x_cb), 0, 0)
2607# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2608 if (istat /= cudasuccess) then
2609# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2610 write (*, "('Error code: ',I0, ': ')") istat
2611# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2612 ! write(*,*) cudaGetErrorString(istat)
2613# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2614 end if
2615# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2616 end if
2617# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2618 end block
2619# 995 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2620#endif
2621#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2622# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2623 block
2624# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2625 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2626# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2627 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2628# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2629#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2630# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2631 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2632# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2633#else
2634# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2635 use cuda_runtime_api
2636# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2637#endif
2638# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2639 integer :: istat
2640# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2641
2642# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2643 if (nv_uvm_pref_gpu) then
2644# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2645 ! print*, "Moving x_cc to GPU => ", SHAPE(x_cc) set preferred location GPU
2646# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2647 istat = cudamemadvise(c_devloc(x_cc), sizeof(x_cc), cudamemadvisesetpreferredlocation, 0)
2648# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2649 if (istat /= cudasuccess) then
2650# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2651 write (*, "('Error code: ',I0, ': ')") istat
2652# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2653 ! write(*,*) cudaGetErrorString(istat)
2654# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2655 end if
2656# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2657 ! set accessed by CPU
2658# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2659 istat = cudamemadvise(c_devloc(x_cc), sizeof(x_cc), cudamemadvisesetaccessedby, cudacpudeviceid)
2660# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2661 if (istat /= cudasuccess) then
2662# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2663 write (*, "('Error code: ',I0, ': ')") istat
2664# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2665 ! write(*,*) cudaGetErrorString(istat)
2666# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2667 end if
2668# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2669 ! prefetch to GPU - physically populate memory pages
2670# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2671 istat = cudamemprefetchasync(c_devloc(x_cc), sizeof(x_cc), 0, 0)
2672# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2673 if (istat /= cudasuccess) then
2674# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2675 write (*, "('Error code: ',I0, ': ')") istat
2676# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2677 ! write(*,*) cudaGetErrorString(istat)
2678# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2679 end if
2680# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2681 end if
2682# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2683 end block
2684# 996 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2685#endif
2686#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2687# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2688 block
2689# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2690 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2691# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2692 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2693# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2694#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2695# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2696 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2697# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2698#else
2699# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2700 use cuda_runtime_api
2701# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2702#endif
2703# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2704 integer :: istat
2705# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2706
2707# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2708 if (nv_uvm_pref_gpu) then
2709# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2710 ! print*, "Moving dx to GPU => ", SHAPE(dx) set preferred location GPU
2711# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2712 istat = cudamemadvise(c_devloc(dx), sizeof(dx), cudamemadvisesetpreferredlocation, 0)
2713# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2714 if (istat /= cudasuccess) then
2715# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2716 write (*, "('Error code: ',I0, ': ')") istat
2717# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2718 ! write(*,*) cudaGetErrorString(istat)
2719# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2720 end if
2721# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2722 ! set accessed by CPU
2723# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2724 istat = cudamemadvise(c_devloc(dx), sizeof(dx), cudamemadvisesetaccessedby, cudacpudeviceid)
2725# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2726 if (istat /= cudasuccess) then
2727# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2728 write (*, "('Error code: ',I0, ': ')") istat
2729# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2730 ! write(*,*) cudaGetErrorString(istat)
2731# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2732 end if
2733# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2734 ! prefetch to GPU - physically populate memory pages
2735# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2736 istat = cudamemprefetchasync(c_devloc(dx), sizeof(dx), 0, 0)
2737# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2738 if (istat /= cudasuccess) then
2739# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2740 write (*, "('Error code: ',I0, ': ')") istat
2741# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2742 ! write(*,*) cudaGetErrorString(istat)
2743# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2744 end if
2745# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2746 end if
2747# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2748 end block
2749# 997 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2750#endif
2751
2752 if (n == 0) return
2753#ifdef MFC_DEBUG
2754# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2755 block
2756# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2757 use iso_fortran_env, only: output_unit
2758# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2759
2760# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2761 print *, 'm_global_parameters.fpp:1000: ', '@:ALLOCATE(y_cb(-1 - buff_size:n + buff_size))'
2762# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2763
2764# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2765 call flush (output_unit)
2766# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2767 end block
2768# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2769#endif
2770# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2771 allocate (y_cb(-1 - buff_size:n + buff_size))
2772# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2773
2774# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2775
2776# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2777#if defined(MFC_OpenACC)
2778# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2779!$acc enter data create(y_cb)
2780# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2781#elif defined(MFC_OpenMP)
2782# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2783!$omp target enter data map(always,alloc:y_cb)
2784# 1000 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2785#endif
2786#ifdef MFC_DEBUG
2787# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2788 block
2789# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2790 use iso_fortran_env, only: output_unit
2791# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2792
2793# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2794 print *, 'm_global_parameters.fpp:1001: ', '@:ALLOCATE(y_cc(-buff_size:n + buff_size))'
2795# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2796
2797# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2798 call flush (output_unit)
2799# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2800 end block
2801# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2802#endif
2803# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2804 allocate (y_cc(-buff_size:n + buff_size))
2805# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2806
2807# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2808
2809# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2810#if defined(MFC_OpenACC)
2811# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2812!$acc enter data create(y_cc)
2813# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2814#elif defined(MFC_OpenMP)
2815# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2816!$omp target enter data map(always,alloc:y_cc)
2817# 1001 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2818#endif
2819#ifdef MFC_DEBUG
2820# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2821 block
2822# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2823 use iso_fortran_env, only: output_unit
2824# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2825
2826# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2827 print *, 'm_global_parameters.fpp:1002: ', '@:ALLOCATE(dy(-buff_size:n + buff_size))'
2828# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2829
2830# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2831 call flush (output_unit)
2832# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2833 end block
2834# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2835#endif
2836# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2837 allocate (dy(-buff_size:n + buff_size))
2838# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2839
2840# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2841
2842# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2843#if defined(MFC_OpenACC)
2844# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2845!$acc enter data create(dy)
2846# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2847#elif defined(MFC_OpenMP)
2848# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2849!$omp target enter data map(always,alloc:dy)
2850# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2851#endif
2852#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2853# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2854 block
2855# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2856 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2857# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2858 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2859# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2860#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2861# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2862 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2863# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2864#else
2865# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2866 use cuda_runtime_api
2867# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2868#endif
2869# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2870 integer :: istat
2871# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2872
2873# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2874 if (nv_uvm_pref_gpu) then
2875# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2876 ! print*, "Moving y_cb to GPU => ", SHAPE(y_cb) set preferred location GPU
2877# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2878 istat = cudamemadvise(c_devloc(y_cb), sizeof(y_cb), cudamemadvisesetpreferredlocation, 0)
2879# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2880 if (istat /= cudasuccess) then
2881# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2882 write (*, "('Error code: ',I0, ': ')") istat
2883# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2884 ! write(*,*) cudaGetErrorString(istat)
2885# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2886 end if
2887# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2888 ! set accessed by CPU
2889# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2890 istat = cudamemadvise(c_devloc(y_cb), sizeof(y_cb), cudamemadvisesetaccessedby, cudacpudeviceid)
2891# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2892 if (istat /= cudasuccess) then
2893# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2894 write (*, "('Error code: ',I0, ': ')") istat
2895# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2896 ! write(*,*) cudaGetErrorString(istat)
2897# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2898 end if
2899# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2900 ! prefetch to GPU - physically populate memory pages
2901# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2902 istat = cudamemprefetchasync(c_devloc(y_cb), sizeof(y_cb), 0, 0)
2903# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2904 if (istat /= cudasuccess) then
2905# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2906 write (*, "('Error code: ',I0, ': ')") istat
2907# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2908 ! write(*,*) cudaGetErrorString(istat)
2909# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2910 end if
2911# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2912 end if
2913# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2914 end block
2915# 1003 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2916#endif
2917#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2918# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2919 block
2920# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2921 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2922# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2923 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2924# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2925#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2926# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2927 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2928# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2929#else
2930# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2931 use cuda_runtime_api
2932# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2933#endif
2934# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2935 integer :: istat
2936# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2937
2938# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2939 if (nv_uvm_pref_gpu) then
2940# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2941 ! print*, "Moving y_cc to GPU => ", SHAPE(y_cc) set preferred location GPU
2942# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2943 istat = cudamemadvise(c_devloc(y_cc), sizeof(y_cc), cudamemadvisesetpreferredlocation, 0)
2944# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2945 if (istat /= cudasuccess) then
2946# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2947 write (*, "('Error code: ',I0, ': ')") istat
2948# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2949 ! write(*,*) cudaGetErrorString(istat)
2950# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2951 end if
2952# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2953 ! set accessed by CPU
2954# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2955 istat = cudamemadvise(c_devloc(y_cc), sizeof(y_cc), cudamemadvisesetaccessedby, cudacpudeviceid)
2956# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2957 if (istat /= cudasuccess) then
2958# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2959 write (*, "('Error code: ',I0, ': ')") istat
2960# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2961 ! write(*,*) cudaGetErrorString(istat)
2962# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2963 end if
2964# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2965 ! prefetch to GPU - physically populate memory pages
2966# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2967 istat = cudamemprefetchasync(c_devloc(y_cc), sizeof(y_cc), 0, 0)
2968# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2969 if (istat /= cudasuccess) then
2970# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2971 write (*, "('Error code: ',I0, ': ')") istat
2972# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2973 ! write(*,*) cudaGetErrorString(istat)
2974# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2975 end if
2976# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2977 end if
2978# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2979 end block
2980# 1004 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2981#endif
2982#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
2983# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2984 block
2985# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2986 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
2987# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2988 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
2989# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2990#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
2991# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2992 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
2993# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2994#else
2995# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2996 use cuda_runtime_api
2997# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
2998#endif
2999# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3000 integer :: istat
3001# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3002
3003# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3004 if (nv_uvm_pref_gpu) then
3005# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3006 ! print*, "Moving dy to GPU => ", SHAPE(dy) set preferred location GPU
3007# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3008 istat = cudamemadvise(c_devloc(dy), sizeof(dy), cudamemadvisesetpreferredlocation, 0)
3009# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3010 if (istat /= cudasuccess) then
3011# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3012 write (*, "('Error code: ',I0, ': ')") istat
3013# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3014 ! write(*,*) cudaGetErrorString(istat)
3015# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3016 end if
3017# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3018 ! set accessed by CPU
3019# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3020 istat = cudamemadvise(c_devloc(dy), sizeof(dy), cudamemadvisesetaccessedby, cudacpudeviceid)
3021# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3022 if (istat /= cudasuccess) then
3023# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3024 write (*, "('Error code: ',I0, ': ')") istat
3025# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3026 ! write(*,*) cudaGetErrorString(istat)
3027# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3028 end if
3029# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3030 ! prefetch to GPU - physically populate memory pages
3031# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3032 istat = cudamemprefetchasync(c_devloc(dy), sizeof(dy), 0, 0)
3033# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3034 if (istat /= cudasuccess) then
3035# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3036 write (*, "('Error code: ',I0, ': ')") istat
3037# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3038 ! write(*,*) cudaGetErrorString(istat)
3039# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3040 end if
3041# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3042 end if
3043# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3044 end block
3045# 1005 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3046#endif
3047
3048 if (p == 0) return
3049#ifdef MFC_DEBUG
3050# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3051 block
3052# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3053 use iso_fortran_env, only: output_unit
3054# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3055
3056# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3057 print *, 'm_global_parameters.fpp:1008: ', '@:ALLOCATE(z_cb(-1 - buff_size:p + buff_size))'
3058# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3059
3060# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3061 call flush (output_unit)
3062# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3063 end block
3064# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3065#endif
3066# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3067 allocate (z_cb(-1 - buff_size:p + buff_size))
3068# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3069
3070# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3071
3072# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3073#if defined(MFC_OpenACC)
3074# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3075!$acc enter data create(z_cb)
3076# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3077#elif defined(MFC_OpenMP)
3078# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3079!$omp target enter data map(always,alloc:z_cb)
3080# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3081#endif
3082#ifdef MFC_DEBUG
3083# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3084 block
3085# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3086 use iso_fortran_env, only: output_unit
3087# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3088
3089# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3090 print *, 'm_global_parameters.fpp:1009: ', '@:ALLOCATE(z_cc(-buff_size:p + buff_size))'
3091# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3092
3093# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3094 call flush (output_unit)
3095# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3096 end block
3097# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3098#endif
3099# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3100 allocate (z_cc(-buff_size:p + buff_size))
3101# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3102
3103# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3104
3105# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3106#if defined(MFC_OpenACC)
3107# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3108!$acc enter data create(z_cc)
3109# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3110#elif defined(MFC_OpenMP)
3111# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3112!$omp target enter data map(always,alloc:z_cc)
3113# 1009 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3114#endif
3115#ifdef MFC_DEBUG
3116# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3117 block
3118# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3119 use iso_fortran_env, only: output_unit
3120# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3121
3122# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3123 print *, 'm_global_parameters.fpp:1010: ', '@:ALLOCATE(dz(-buff_size:p + buff_size))'
3124# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3125
3126# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3127 call flush (output_unit)
3128# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3129 end block
3130# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3131#endif
3132# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3133 allocate (dz(-buff_size:p + buff_size))
3134# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3135
3136# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3137
3138# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3139#if defined(MFC_OpenACC)
3140# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3141!$acc enter data create(dz)
3142# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3143#elif defined(MFC_OpenMP)
3144# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3145!$omp target enter data map(always,alloc:dz)
3146# 1010 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3147#endif
3148#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
3149# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3150 block
3151# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3152 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
3153# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3154 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
3155# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3156#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
3157# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3158 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
3159# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3160#else
3161# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3162 use cuda_runtime_api
3163# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3164#endif
3165# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3166 integer :: istat
3167# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3168
3169# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3170 if (nv_uvm_pref_gpu) then
3171# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3172 ! print*, "Moving z_cb to GPU => ", SHAPE(z_cb) set preferred location GPU
3173# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3174 istat = cudamemadvise(c_devloc(z_cb), sizeof(z_cb), cudamemadvisesetpreferredlocation, 0)
3175# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3176 if (istat /= cudasuccess) then
3177# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3178 write (*, "('Error code: ',I0, ': ')") istat
3179# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3180 ! write(*,*) cudaGetErrorString(istat)
3181# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3182 end if
3183# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3184 ! set accessed by CPU
3185# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3186 istat = cudamemadvise(c_devloc(z_cb), sizeof(z_cb), cudamemadvisesetaccessedby, cudacpudeviceid)
3187# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3188 if (istat /= cudasuccess) then
3189# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3190 write (*, "('Error code: ',I0, ': ')") istat
3191# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3192 ! write(*,*) cudaGetErrorString(istat)
3193# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3194 end if
3195# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3196 ! prefetch to GPU - physically populate memory pages
3197# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3198 istat = cudamemprefetchasync(c_devloc(z_cb), sizeof(z_cb), 0, 0)
3199# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3200 if (istat /= cudasuccess) then
3201# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3202 write (*, "('Error code: ',I0, ': ')") istat
3203# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3204 ! write(*,*) cudaGetErrorString(istat)
3205# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3206 end if
3207# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3208 end if
3209# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3210 end block
3211# 1011 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3212#endif
3213#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
3214# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3215 block
3216# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3217 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
3218# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3219 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
3220# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3221#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
3222# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3223 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
3224# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3225#else
3226# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3227 use cuda_runtime_api
3228# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3229#endif
3230# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3231 integer :: istat
3232# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3233
3234# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3235 if (nv_uvm_pref_gpu) then
3236# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3237 ! print*, "Moving z_cc to GPU => ", SHAPE(z_cc) set preferred location GPU
3238# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3239 istat = cudamemadvise(c_devloc(z_cc), sizeof(z_cc), cudamemadvisesetpreferredlocation, 0)
3240# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3241 if (istat /= cudasuccess) then
3242# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3243 write (*, "('Error code: ',I0, ': ')") istat
3244# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3245 ! write(*,*) cudaGetErrorString(istat)
3246# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3247 end if
3248# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3249 ! set accessed by CPU
3250# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3251 istat = cudamemadvise(c_devloc(z_cc), sizeof(z_cc), cudamemadvisesetaccessedby, cudacpudeviceid)
3252# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3253 if (istat /= cudasuccess) then
3254# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3255 write (*, "('Error code: ',I0, ': ')") istat
3256# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3257 ! write(*,*) cudaGetErrorString(istat)
3258# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3259 end if
3260# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3261 ! prefetch to GPU - physically populate memory pages
3262# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3263 istat = cudamemprefetchasync(c_devloc(z_cc), sizeof(z_cc), 0, 0)
3264# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3265 if (istat /= cudasuccess) then
3266# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3267 write (*, "('Error code: ',I0, ': ')") istat
3268# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3269 ! write(*,*) cudaGetErrorString(istat)
3270# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3271 end if
3272# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3273 end if
3274# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3275 end block
3276# 1012 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3277#endif
3278#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
3279# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3280 block
3281# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3282 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
3283# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3284 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
3285# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3286#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
3287# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3288 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
3289# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3290#else
3291# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3292 use cuda_runtime_api
3293# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3294#endif
3295# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3296 integer :: istat
3297# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3298
3299# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3300 if (nv_uvm_pref_gpu) then
3301# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3302 ! print*, "Moving dz to GPU => ", SHAPE(dz) set preferred location GPU
3303# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3304 istat = cudamemadvise(c_devloc(dz), sizeof(dz), cudamemadvisesetpreferredlocation, 0)
3305# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3306 if (istat /= cudasuccess) then
3307# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3308 write (*, "('Error code: ',I0, ': ')") istat
3309# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3310 ! write(*,*) cudaGetErrorString(istat)
3311# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3312 end if
3313# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3314 ! set accessed by CPU
3315# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3316 istat = cudamemadvise(c_devloc(dz), sizeof(dz), cudamemadvisesetaccessedby, cudacpudeviceid)
3317# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3318 if (istat /= cudasuccess) then
3319# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3320 write (*, "('Error code: ',I0, ': ')") istat
3321# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3322 ! write(*,*) cudaGetErrorString(istat)
3323# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3324 end if
3325# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3326 ! prefetch to GPU - physically populate memory pages
3327# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3328 istat = cudamemprefetchasync(c_devloc(dz), sizeof(dz), 0, 0)
3329# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3330 if (istat /= cudasuccess) then
3331# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3332 write (*, "('Error code: ',I0, ': ')") istat
3333# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3334 ! write(*,*) cudaGetErrorString(istat)
3335# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3336 end if
3337# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3338 end if
3339# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3340 end block
3341# 1013 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3342#endif
3343
3345
3346 !> Initializes parallel infrastructure
3348
3349 ! proc_coords/start_idx/mpiiofs/mpi_info_int setup moved into the shared routine
3350 call s_initialize_parallel_io_common
3351
3352 ! #1290: per-rank physical comm-domain bounds for Lagrangian-bubble exchange
3353#ifdef MFC_DEBUG
3354# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3355 block
3356# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3357 use iso_fortran_env, only: output_unit
3358# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3359
3360# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3361 print *, 'm_global_parameters.fpp:1024: ', '@:ALLOCATE(pcomm_coords(1:num_dims))'
3362# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3363
3364# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3365 call flush (output_unit)
3366# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3367 end block
3368# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3369#endif
3370# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3371 allocate (pcomm_coords(1:num_dims))
3372# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3373
3374# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3375
3376# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3377#if defined(MFC_OpenACC)
3378# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3379!$acc enter data create(pcomm_coords)
3380# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3381#elif defined(MFC_OpenMP)
3382# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3383!$omp target enter data map(always,alloc:pcomm_coords)
3384# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3385#endif
3386
3387 end subroutine s_initialize_parallel_io
3388
3389 !> Module deallocation and/or disassociation procedures
3391
3392 integer :: i
3393
3394 ! Deallocating the variables bookkeeping the indexes of any viscous fluids and any pairs of fluids whose interfaces
3395 ! supported effects of surface tension
3396
3397 if (viscous) then
3398#ifdef MFC_DEBUG
3399# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3400 block
3401# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3402 use iso_fortran_env, only: output_unit
3403# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3404
3405# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3406 print *, 'm_global_parameters.fpp:1037: ', '@:DEALLOCATE(Re_idx)'
3407# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3408
3409# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3410 call flush (output_unit)
3411# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3412 end block
3413# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3414#endif
3415# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3416
3417# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3418#if defined(MFC_OpenACC)
3419# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3420!$acc exit data delete(Re_idx)
3421# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3422#elif defined(MFC_OpenMP)
3423# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3424!$omp target exit data map(release:Re_idx)
3425# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3426#endif
3427# 1037 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3428 deallocate (re_idx)
3429 end if
3430
3431 ! Herschel-Bulkley non-Newtonian viscosity arrays (always allocated)
3432#ifdef MFC_DEBUG
3433# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3434 block
3435# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3436 use iso_fortran_env, only: output_unit
3437# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3438
3439# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3440 print *, 'm_global_parameters.fpp:1041: ', '@:DEALLOCATE(is_non_newtonian)'
3441# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3442
3443# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3444 call flush (output_unit)
3445# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3446 end block
3447# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3448#endif
3449# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3450
3451# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3452#if defined(MFC_OpenACC)
3453# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3454!$acc exit data delete(is_non_newtonian)
3455# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3456#elif defined(MFC_OpenMP)
3457# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3458!$omp target exit data map(release:is_non_newtonian)
3459# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3460#endif
3461# 1041 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3462 deallocate (is_non_newtonian)
3463#ifdef MFC_DEBUG
3464# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3465 block
3466# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3467 use iso_fortran_env, only: output_unit
3468# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3469
3470# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3471 print *, 'm_global_parameters.fpp:1042: ', '@:DEALLOCATE(hb_tau0, hb_K, hb_nn, hb_m_arr)'
3472# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3473
3474# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3475 call flush (output_unit)
3476# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3477 end block
3478# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3479#endif
3480# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3481
3482# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3483#if defined(MFC_OpenACC)
3484# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3485!$acc exit data delete(hb_tau0, hb_K, hb_nn, hb_m_arr)
3486# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3487#elif defined(MFC_OpenMP)
3488# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3489!$omp target exit data map(release:hb_tau0, hb_K, hb_nn, hb_m_arr)
3490# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3491#endif
3492# 1042 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3493 deallocate (hb_tau0, hb_k, hb_nn, hb_m_arr)
3494#ifdef MFC_DEBUG
3495# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3496 block
3497# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3498 use iso_fortran_env, only: output_unit
3499# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3500
3501# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3502 print *, 'm_global_parameters.fpp:1043: ', '@:DEALLOCATE(hb_mu_min, hb_mu_max)'
3503# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3504
3505# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3506 call flush (output_unit)
3507# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3508 end block
3509# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3510#endif
3511# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3512
3513# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3514#if defined(MFC_OpenACC)
3515# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3516!$acc exit data delete(hb_mu_min, hb_mu_max)
3517# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3518#elif defined(MFC_OpenMP)
3519# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3520!$omp target exit data map(release:hb_mu_min, hb_mu_max)
3521# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3522#endif
3523# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3524 deallocate (hb_mu_min, hb_mu_max)
3525#ifdef MFC_DEBUG
3526# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3527 block
3528# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3529 use iso_fortran_env, only: output_unit
3530# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3531
3532# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3533 print *, 'm_global_parameters.fpp:1044: ', '@:DEALLOCATE(fluid_inv_re)'
3534# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3535
3536# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3537 call flush (output_unit)
3538# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3539 end block
3540# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3541#endif
3542# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3543
3544# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3545#if defined(MFC_OpenACC)
3546# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3547!$acc exit data delete(fluid_inv_re)
3548# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3549#elif defined(MFC_OpenMP)
3550# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3551!$omp target exit data map(release:fluid_inv_re)
3552# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3553#endif
3554# 1044 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3555 deallocate (fluid_inv_re)
3556
3557 if (bubbles_euler) then
3558#ifdef MFC_DEBUG
3559# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3560 block
3561# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3562 use iso_fortran_env, only: output_unit
3563# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3564
3565# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3566 print *, 'm_global_parameters.fpp:1047: ', '@:DEALLOCATE(ptil)'
3567# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3568
3569# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3570 call flush (output_unit)
3571# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3572 end block
3573# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3574#endif
3575# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3576
3577# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3578#if defined(MFC_OpenACC)
3579# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3580!$acc exit data delete(ptil)
3581# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3582#elif defined(MFC_OpenMP)
3583# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3584!$omp target exit data map(release:ptil)
3585# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3586#endif
3587# 1047 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3588 deallocate (ptil)
3589#ifdef MFC_DEBUG
3590# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3591 block
3592# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3593 use iso_fortran_env, only: output_unit
3594# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3595
3596# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3597 print *, 'm_global_parameters.fpp:1048: ', '@:DEALLOCATE(qbmm_idx%rs, qbmm_idx%vs, qbmm_idx%ps, qbmm_idx%ms)'
3598# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3599
3600# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3601 call flush (output_unit)
3602# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3603 end block
3604# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3605#endif
3606# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3607
3608# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3609#if defined(MFC_OpenACC)
3610# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3611!$acc exit data delete(qbmm_idx%rs, qbmm_idx%vs, qbmm_idx%ps, qbmm_idx%ms)
3612# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3613#elif defined(MFC_OpenMP)
3614# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3615!$omp target exit data map(release:qbmm_idx%rs, qbmm_idx%vs, qbmm_idx%ps, qbmm_idx%ms)
3616# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3617#endif
3618# 1048 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3619 deallocate (qbmm_idx%rs, qbmm_idx%vs, qbmm_idx%ps, qbmm_idx%ms)
3620 if (qbmm) then
3621#ifdef MFC_DEBUG
3622# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3623 block
3624# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3625 use iso_fortran_env, only: output_unit
3626# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3627
3628# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3629 print *, 'm_global_parameters.fpp:1050: ', '@:DEALLOCATE(qbmm_idx%moms)'
3630# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3631
3632# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3633 call flush (output_unit)
3634# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3635 end block
3636# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3637#endif
3638# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3639
3640# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3641#if defined(MFC_OpenACC)
3642# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3643!$acc exit data delete(qbmm_idx%moms)
3644# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3645#elif defined(MFC_OpenMP)
3646# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3647!$omp target exit data map(release:qbmm_idx%moms)
3648# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3649#endif
3650# 1050 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3651 deallocate (qbmm_idx%moms)
3652 end if
3653 end if
3654
3655#ifdef MFC_DEBUG
3656# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3657 block
3658# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3659 use iso_fortran_env, only: output_unit
3660# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3661
3662# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3663 print *, 'm_global_parameters.fpp:1054: ', '@:DEALLOCATE(pcomm_coords)'
3664# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3665
3666# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3667 call flush (output_unit)
3668# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3669 end block
3670# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3671#endif
3672# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3673
3674# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3675#if defined(MFC_OpenACC)
3676# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3677!$acc exit data delete(pcomm_coords)
3678# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3679#elif defined(MFC_OpenMP)
3680# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3681!$omp target exit data map(release:pcomm_coords)
3682# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3683#endif
3684# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3685 deallocate (pcomm_coords)
3686
3687 ! Shared: deallocate proc_coords and start_idx
3688 call s_finalize_global_parameters_common
3689
3690 if (parallel_io) then
3691 if (bubbles_lagrange) then
3692 do i = 1, sys_size + 1
3693 mpi_io_data%var(i)%sf => null()
3694 end do
3695 else
3696 do i = 1, sys_size
3697 mpi_io_data%var(i)%sf => null()
3698 end do
3699 end if
3700
3701 deallocate (mpi_io_data%var)
3702 deallocate (mpi_io_data%view)
3703 end if
3704
3705 if (ib) mpi_io_ib_data%var%sf => null()
3706
3707 ! Deallocating grid variables for the x-, y- and z-directions
3708#ifdef MFC_DEBUG
3709# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3710 block
3711# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3712 use iso_fortran_env, only: output_unit
3713# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3714
3715# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3716 print *, 'm_global_parameters.fpp:1077: ', '@:DEALLOCATE(x_cb, x_cc, dx)'
3717# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3718
3719# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3720 call flush (output_unit)
3721# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3722 end block
3723# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3724#endif
3725# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3726
3727# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3728#if defined(MFC_OpenACC)
3729# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3730!$acc exit data delete(x_cb, x_cc, dx)
3731# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3732#elif defined(MFC_OpenMP)
3733# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3734!$omp target exit data map(release:x_cb, x_cc, dx)
3735# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3736#endif
3737# 1077 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3738 deallocate (x_cb, x_cc, dx)
3739
3740 if (n == 0) return
3741#ifdef MFC_DEBUG
3742# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3743 block
3744# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3745 use iso_fortran_env, only: output_unit
3746# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3747
3748# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3749 print *, 'm_global_parameters.fpp:1080: ', '@:DEALLOCATE(y_cb, y_cc, dy)'
3750# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3751
3752# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3753 call flush (output_unit)
3754# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3755 end block
3756# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3757#endif
3758# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3759
3760# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3761#if defined(MFC_OpenACC)
3762# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3763!$acc exit data delete(y_cb, y_cc, dy)
3764# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3765#elif defined(MFC_OpenMP)
3766# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3767!$omp target exit data map(release:y_cb, y_cc, dy)
3768# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3769#endif
3770# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3771 deallocate (y_cb, y_cc, dy)
3772
3773 if (p == 0) return
3774#ifdef MFC_DEBUG
3775# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3776 block
3777# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3778 use iso_fortran_env, only: output_unit
3779# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3780
3781# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3782 print *, 'm_global_parameters.fpp:1083: ', '@:DEALLOCATE(z_cb, z_cc, dz)'
3783# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3784
3785# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3786 call flush (output_unit)
3787# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3788 end block
3789# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3790#endif
3791# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3792
3793# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3794#if defined(MFC_OpenACC)
3795# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3796!$acc exit data delete(z_cb, z_cc, dz)
3797# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3798#elif defined(MFC_OpenMP)
3799# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3800!$omp target exit data map(release:z_cb, z_cc, dz)
3801# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3802#endif
3803# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3804 deallocate (z_cb, z_cc, dz)
3805
3806 if (allocated(neighbor_ranks)) then
3807#ifdef MFC_DEBUG
3808# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3809 block
3810# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3811 use iso_fortran_env, only: output_unit
3812# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3813
3814# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3815 print *, 'm_global_parameters.fpp:1086: ', '@:DEALLOCATE(neighbor_ranks)'
3816# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3817
3818# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3819 call flush (output_unit)
3820# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3821 end block
3822# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3823#endif
3824# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3825
3826# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3827#if defined(MFC_OpenACC)
3828# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3829!$acc exit data delete(neighbor_ranks)
3830# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3831#elif defined(MFC_OpenMP)
3832# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3833!$omp target exit data map(release:neighbor_ranks)
3834# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3835#endif
3836# 1086 "/home/runner/work/MFC/MFC/src/simulation/m_global_parameters.fpp"
3837 deallocate (neighbor_ranks)
3838 end if
3839
3841
3842end module m_global_parameters
integer, intent(in) k
integer, intent(in) j
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Shared global parameters and equation-index setup for all three executables. Each per-target m_global...
type(ib_stl_parameters), dimension(num_stl_models_max) stl_models
Per-STL model parameters.
type(subgrid_bubble_physical_parameters) bub_pp
Subgrid bubble physical parameters.
type(vec3_dt), dimension(num_probes_max) probe
type(integral_parameters), dimension(num_probes_max) integral
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus.
type(acoustic_parameters), dimension(num_probes_max) acoustic
Acoustic source parameters.
type(spbf_parameters) spatial_bf
Parameters for spatially supported body force (Wei & Freund, JFM 2005).
type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) patch_ib
Immersed boundary patch parameters.
type(particle_cloud_parameters), dimension(num_particle_clouds_max) particle_cloud
Particle bed specifications.
type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) ib_airfoil
Per-airfoil NACA user inputs.
impure subroutine s_assign_common_defaults
Assign default values to the user-input parameters that are shared across all three executables (pre_...
type(bubbles_lagrange_parameters) lag_params
Lagrange bubbles' parameters.
impure subroutine s_initialize_eqn_idx(nmom_in, nb_in, six_eqn_alf_is_advected)
Initialize equation-index state (eqn_idx and sys_size) from the namelist parameters....
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
type(int_bounds_info) ib_bc_z
type(scalar_field), dimension(:,:,:), allocatable mom_3d
real(wp) mytime
Current simulation time.
integer nmomsp
Number of moments required by ensemble-averaging.
type(mpi_io_levelset_norm_var), public mpi_io_levelsetnorm_data
real(wp), dimension(:), allocatable fluid_inv_re
per-fluid Newtonian inverse-Re
logical bulk_stress
Bulk stresses.
real(wp), dimension(num_synth_shells_max) synth_k_shell
integer, parameter hypo_nc_mode_interface
interface-velocity export for the velocity-gradient tensor (HLL Method 2, HLLC)
impure subroutine s_assign_default_values_to_user_inputs
Assigns default values to the user inputs before reading them in. This enables for an easier consiste...
impure subroutine s_finalize_global_parameters_module
Module deallocation and/or disassociation procedures.
integer, parameter nmom
Number of carried moments per R0 location.
real(wp), dimension(num_synth_shells_max) synth_amp_shell
real(wp), dimension(:), allocatable im_trans_c
type(int_bounds_info), dimension(1:3) idwint
real(wp), dimension(:), allocatable, target z_cb
logical any_non_newtonian
.true. if any fluid is non-Newtonian
type(int_bounds_info) ib_bc_y
type(bounds_info) neighbor_domain_y
type(int_bounds_info), dimension(3) nidx
Neighbor index offsets per direction.
real(wp), dimension(:), allocatable hb_tau0
type(int_bounds_info) ib_bc_x
integer, parameter hypo_nc_mode_none
Hypoelastic NC velocity-coupling mode; exactly one value, derived from riemann_solver + hypo_hll_inte...
real(wp), dimension(:), allocatable pb0
real(wp), dimension(:), allocatable hb_k
real(wp), dimension(:), allocatable im_trans_t
type(qbmm_idx_info) qbmm_idx
QBMM moment index mappings (allocatable; GPU-managed separately).
logical, dimension(3) periodic_bc
integer proc_rank
Rank of the local processor.
real(wp), dimension(:), allocatable re_trans_t
real(wp), dimension(:,:), allocatable fd_coeff_z
type(mpi_io_ib_var), public mpi_io_ib_data
real(wp), dimension(:,:,:), allocatable spbf_source_y
real(wp), dimension(3) accel_bf
real(wp), dimension(:), allocatable weight
Simpson quadrature weights.
integer, parameter adv_src_mode_alpha_iface
flux_src exports per-fluid interface alpha
real(wp), dimension(:), allocatable k_v
integer, dimension(num_local_ibs_max) local_ib_patch_ids
lookup table of IBs in the local compute domain
real(wp), dimension(:), allocatable hb_nn
integer nmomtot
Total number of carried moments moments/transport equations.
integer, dimension(3) dir_idx
integer fd_number
Finite-difference half-stencil size: MAX(1, fd_order/2).
type(mpi_io_levelset_var), public mpi_io_levelset_data
type(bounds_info), dimension(3) glb_bounds
type(int_bounds_info), dimension(1:3) idwbuff
integer, parameter adv_src_mode_vel_iface
flux_src exports shared face-normal interface velocity
integer buff_size
Number of ghost cells for boundary condition storage.
integer, dimension(3) dir_idx_tau
(nn, nt, nt2) stress indices for wave speeds and momentum flux
integer, dimension(:,:,:), allocatable neighbor_ranks
MPI ranks of neighbors.
real(wp), dimension(:), allocatable r0
Bubble sizes.
real(wp), dimension(:,:,:), allocatable spbf_source_x
Source fields for the spatially supported body force. spatial_bf and bf_spatial_support are auto-gene...
impure subroutine s_initialize_global_parameters_module
Initialize the global parameters module.
real(wp), dimension(:), allocatable, target y_cc
real(wp), dimension(:), allocatable k_g
type(pres_field), dimension(:), allocatable pb_ts
integer n_el_bubs_glb
Number of Lagrangian bubbles (local and global).
type(pres_field), dimension(:), allocatable mv_ts
real(wp), dimension(:,:), allocatable fd_coeff_y
real(wp), dimension(:), allocatable, target z_cc
integer, parameter hypo_nc_mode_dual_pass
anchored dual-pass HLLD; all NC terms stay in the Riemann flux
logical use_nc_iface_vel
nc_iface_vel exports interface velocities needed outside flux_src
type(bounds_info), dimension(:), allocatable pcomm_coords
Local rank physical domain bounds.
real(wp), dimension(:), allocatable hb_m_arr
integer, parameter hypo_nc_mode_finite_diff
velocity gradients by finite difference (HLL without interface RHS)
integer num_procs
Number of processors.
type(bounds_info) neighbor_domain_z
real(wp), dimension(3) dir_flg
real(wp), dimension(:), allocatable, target x_cc
integer, dimension(num_synth_shells_max) synth_n_waves_per_shell
real(wp), dimension(num_turb_sources_max, 3) turb_pos
real(wp), dimension(:), allocatable, target y_cb
real(wp), dimension(:), allocatable hb_mu_min
real(wp), dimension(:,:,:), allocatable ptil
Pressure modification.
real(wp), dimension(:,:), allocatable, public mpi_io_data_lag_bubbles
type(scalar_field), dimension(:), allocatable mom_sp
type(cell_num_bounds) cells_bounds
integer, parameter adv_src_mode_unset
NC volume-fraction advection export mode; exactly one value, derived from riemann_solver + hll_u_inte...
type(mpi_io_airfoil_ib_var), public mpi_io_airfoil_ib_data
real(wp), dimension(:), allocatable mass_g0
integer, dimension(6) stress_perm
Full tensor permutation: local basis -> physical storage index.
real(wp), dimension(:,:), allocatable fd_coeff_x
type(mpi_io_var), public mpi_io_data
impure subroutine s_initialize_parallel_io
Initializes parallel infrastructure.
real(wp), dimension(:), allocatable omegan
real(wp), dimension(:), allocatable re_trans_c
real(wp), dimension(:), allocatable, target dy
real(wp), dimension(num_turb_sources_max, 3) synth_l
type(ib_airfoil_grid), dimension(num_ib_airfoils_max) ib_airfoil_grids
Per-airfoil computed surface grids.
integer, parameter adv_src_mode_none
flux_src exports no NC advection quantity
logical shear_stress
Shear stresses.
integer, dimension(:,:,:), allocatable ib_neighbor_ranks
MPI ranks of neighborhood domains, indexed (-N:N,-N:N,-N:N).
real(wp) finaltime
Final simulation time.
real(wp), dimension(:), allocatable, target dz
real(wp), dimension(:), allocatable, target dx
type(bounds_info) neighbor_domain_x
real(wp), dimension(:), allocatable pe_t
real(wp), dimension(:), allocatable mass_v0
real(wp), dimension(:), allocatable hb_mu_max
logical, dimension(:), allocatable is_non_newtonian
per-fluid NN flag
real(wp), dimension(:), allocatable, target x_cb
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
elemental subroutine, public s_update_cell_bounds(bounds, m, n, p)
Update the min and max number of cells in each set of axes.
logical elemental function, public f_is_default(var)
Check if a real(wp) variable is of default value.
Groups the x, y, z boundary condition begin/end codes for passing as a single argument.
Derived type adding beginning (beg) and end bounds info as attributes.
Max and min number of cells in a direction of each combination of x-,y-, and z-.
Computed surface grid for a NACA airfoil (simulation-only, not in namelist).
Integer bounds for variables.
Derived type for bubble variables pb and mv at quadrature nodes (qbmm).
QBMM moment index mappings - separate from bub beg/end so eqn_idx contains no allocatables.
Derived type annexing a scalar field (SF).