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