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