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