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