MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_global_parameters_common.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
2!>
3!! @file
4!! @brief Contains module m_global_parameters_common
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/common/m_global_parameters_common.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43
44# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45! New line at end of file is required for FYPP
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70
71# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72
73# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74! New line at end of file is required for FYPP
75# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
76
77# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82
83# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149
150# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151
152# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153! New line at end of file is required for FYPP
154# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
155# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
156# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
157# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162
163# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166
167# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176
177# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178
179# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180
181# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182! New line at end of file is required for FYPP
183# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
184
185# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186
187# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234
235# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236
237# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238
239# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240! New line at end of file is required for FYPP
241# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
242
243! GPU parallel region (scalar reductions, maxval/minval)
244# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246! GPU parallel loop over threads (most common GPU macro)
247# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249! Required closing for GPU_PARALLEL_LOOP
250# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252! Mark routine for device compilation
253# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255! Declare device-resident data
256# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258! Inner loop within a GPU parallel region
259# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261! Scoped GPU data region
262# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264! Host code with device pointers (for MPI with GPU buffers)
265# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267! Allocate device memory (unscoped)
268# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270! Free device memory
271# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273! Atomic operation on device
274# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275
276! End atomic capture block
277# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! Copy data between host and device
280# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Synchronization barrier
283# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Import GPU library module (openacc or omp_lib)
286# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Emit code only for AMD compiler
289# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Emit code for non-Cray compilers
292# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294! Emit code only for Cray compiler
295# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296
297! Emit code for non-NVIDIA compilers
298# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299
300# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302! New line at end of file is required for FYPP
303# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
304
305# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
306
307! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
308! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
309! example see misc/nvidia_uvm/bind.sh.
310# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311
312! Allocate and create GPU device memory
313# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314
315! Free GPU device memory and deallocate
316# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317
318! Cray-specific GPU pointer setup for vector fields
319# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320
321! Cray-specific GPU pointer setup for scalar fields
322# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323
324! Cray-specific GPU pointer setup for acoustic source spatials
325# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326
327# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328
329# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330! New line at end of file is required for FYPP
331# 7 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
332
333!> @brief Shared global parameters and equation-index setup for all three executables. Each per-target m_global_parameters uses this
334!! module (default-public, so all symbols re-export to downstream consumers via two-hop use-association).
336
337#ifdef MFC_MPI
338 use mpi
339#endif
340
342 use m_thermochem, only: num_species
345
346 implicit none
347
348 ! All namelist-bound scalar and array declarations (per-target, regenerated at build time by the ninja custom command)
349# 1 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp" 1
350! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
351!
352real(wp) :: bx0
353real(wp) :: ca
354real(wp) :: r0ref
355real(wp) :: re_inv
356real(wp) :: web
358logical :: adap_dt
360real(wp) :: adap_dt_tol
361logical :: adv_n
362real(wp) :: alf_factor
363real(wp) :: alpha_bar
365integer :: avg_state
367logical :: bf_x
368logical :: bf_y
369logical :: bf_z
370integer :: bubble_model
373character(LEN=path_len) :: case_dir
374logical :: cfl_adap_dt
375logical :: cfl_const_dt
376real(wp) :: cfl_target
379real(wp) :: collision_time
380logical :: cont_damage
381real(wp) :: cont_damage_s
382logical :: cyl_coord
383logical :: down_sample
384real(wp) :: dt
385integer :: fd_order
386logical :: fft_wrt
388real(wp) :: g_x
389real(wp) :: g_y
390real(wp) :: g_z
396logical :: ib
399logical :: ib_state_wrt
400real(wp) :: ic_beta
401real(wp) :: ic_eps
402integer :: int_comp
403logical :: integral_wrt
404real(wp) :: k_x
405real(wp) :: k_y
406real(wp) :: k_z
407integer :: low_mach
408integer :: m
410logical :: mixture_err
411integer :: model_eqns
412logical :: mp_weno
413logical :: mpp_lim
414real(wp) :: muscl_eps
415integer :: n
416integer :: n_start
417logical :: null_weights
419integer :: num_ibs
424integer :: num_probes
425integer :: num_source
431integer :: p
432real(wp) :: p_x
433real(wp) :: p_y
434real(wp) :: p_z
435real(wp) :: palpha_eps
436logical :: parallel_io
437real(wp) :: pi_fac
438real(wp) :: poly_sigma
439logical :: polydisperse
440logical :: polytropic
441integer :: precision
442real(wp) :: pref
444logical :: probe_wrt
445real(wp) :: ptgalpha_eps
446logical :: qbmm
447logical :: rdma_mpi
449logical :: relax
450integer :: relax_model
451real(wp) :: rhoref
454real(wp) :: sigma
456real(wp) :: synth_u_inf
458integer :: synth_seed
460real(wp) :: t_save
461integer :: t_step_old
462integer :: t_step_print
463integer :: t_step_save
464integer :: t_step_start
465integer :: t_step_stop
466real(wp) :: t_stop
467real(wp) :: tau_star
468real(wp) :: teno_ct
469integer :: thermal
470integer :: time_stepper
471real(wp) :: w_x
472real(wp) :: w_y
473real(wp) :: w_z
474integer :: wave_speeds
475logical :: weno_re_flux
476logical :: weno_avg
477real(wp) :: weno_eps
478type(physical_parameters), dimension(num_fluids_max) :: fluid_pp !< Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus
479type(subgrid_bubble_physical_parameters) :: bub_pp !< Subgrid bubble physical parameters
480type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) :: patch_ib !< Immersed boundary patch parameters
481
482# 132 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
483#if defined(MFC_OpenACC)
484# 132 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
485!$acc declare create(patch_ib)
486# 132 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
487#elif defined(MFC_OpenMP)
488# 132 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
489!$omp declare target (patch_ib)
490# 132 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
491#endif
492type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) :: ib_airfoil !< Per-airfoil NACA user inputs
493
494# 134 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
495#if defined(MFC_OpenACC)
496# 134 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
497!$acc declare create(ib_airfoil)
498# 134 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
499#elif defined(MFC_OpenMP)
500# 134 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
501!$omp declare target (ib_airfoil)
502# 134 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
503#endif
504type(ib_stl_parameters), dimension(num_stl_models_max) :: stl_models !< Per-STL model parameters
505
506# 136 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
507#if defined(MFC_OpenACC)
508# 136 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
509!$acc declare create(stl_models)
510# 136 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
511#elif defined(MFC_OpenMP)
512# 136 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
513!$omp declare target (stl_models)
514# 136 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
515#endif
516type(vec3_dt), dimension(num_probes_max) :: probe
517type(integral_parameters), dimension(num_probes_max) :: integral
518type(acoustic_parameters), dimension(num_probes_max) :: acoustic !< Acoustic source parameters
519
520# 140 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
521#if defined(MFC_OpenACC)
522# 140 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
523!$acc declare create(acoustic)
524# 140 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
525#elif defined(MFC_OpenMP)
526# 140 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
527!$omp declare target (acoustic)
528# 140 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
529#endif
531
532# 142 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
533#if defined(MFC_OpenACC)
534# 142 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
535!$acc declare create(chem_params)
536# 142 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
537#elif defined(MFC_OpenMP)
538# 142 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
539!$omp declare target (chem_params)
540# 142 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
541#endif
542type(reactive_burn_parameters) :: rburn !< Condensed-phase reactive-burn (programmed detonation) parameters
543
544# 144 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
545#if defined(MFC_OpenACC)
546# 144 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
547!$acc declare create(rburn)
548# 144 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
549#elif defined(MFC_OpenMP)
550# 144 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
551!$omp declare target (rburn)
552# 144 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
553#endif
554type(bubbles_lagrange_parameters) :: lag_params !< Lagrange bubbles' parameters
555
556# 146 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
557#if defined(MFC_OpenACC)
558# 146 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
559!$acc declare create(lag_params)
560# 146 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
561#elif defined(MFC_OpenMP)
562# 146 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
563!$omp declare target (lag_params)
564# 146 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
565#endif
566type(particle_cloud_parameters), dimension(num_particle_clouds_max) :: particle_cloud !< Particle bed specifications
567type(spbf_parameters) :: spatial_bf !< Parameters for spatially supported body force (Wei & Freund, JFM 2005)
568
569# 149 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
570#if defined(MFC_OpenACC)
571# 149 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
572!$acc declare create(spatial_bf)
573# 149 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
574#elif defined(MFC_OpenMP)
575# 149 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
576!$omp declare target (spatial_bf)
577# 149 "/home/runner/work/MFC/MFC/build/include/simulation/generated_decls.fpp"
578#endif
579# 25 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
580
581 ! Case-optimization declarations: parameters (under MFC_CASE_OPTIMIZATION) or plain variables for
582 ! num_dims, num_vels, weno_polyn, muscl_polyn, weno_num_stencils, wenojs, igr, etc.
583# 1 "/home/runner/work/MFC/MFC/build/include/simulation/generated_case_opt_decls.fpp" 1
584! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
585!
586# 27 "/home/runner/work/MFC/MFC/build/include/simulation/generated_case_opt_decls.fpp"
587 integer :: num_dims
588 integer :: num_vels
589 integer :: weno_polyn
590 integer :: muscl_polyn
592 logical :: wenojs
593 logical :: igr
595 integer :: igr_order
596 logical :: igr_pres_lim
597 logical :: mapped_weno
598 logical :: mhd
599 integer :: muscl_lim
600 integer :: muscl_order
601 integer :: num_fluids
602 integer :: recon_type
603 logical :: relativity
604 logical :: teno
605 logical :: viscous
606 integer :: weno_order
607 logical :: wenoz
608 real(wp) :: wenoz_q
609# 50 "/home/runner/work/MFC/MFC/build/include/simulation/generated_case_opt_decls.fpp"
610# 29 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
611
612 ! For pre_process and post_process: num_dims and num_vels are declared manually here
613 ! (sim gets them from generated_case_opt_decls.fpp above)
614#ifndef MFC_SIMULATION
615 integer :: num_dims !< Number of spatial dimensions
616 integer :: num_vels !< Number of velocity components (different from num_dims for mhd)
617#endif
618
619 ! For pre_process: weno_polyn and muscl_polyn are declared manually here
620 ! (sim gets them from generated_case_opt_decls.fpp; post does not use them)
621#ifdef MFC_PRE_PROCESS
622 integer :: weno_polyn !< Degree of the WENO polynomials
623 integer :: muscl_polyn !< Degree of the MUSCL polynomials
624#endif
625
626 !> @name Annotations of the structure of the state and flux vectors in terms of the size and configuration of the system of
627 !! equations
628 !> @{
629 integer :: sys_size !< Number of unknowns in system of equations
630 type(eqn_idx_info) :: eqn_idx !< All conserved-variable equation index ranges and scalars
631 integer :: b_size !< Number of elements in the symmetric b tensor, plus one
632 integer :: tensor_size !< Number of elements in the full tensor plus one
633 !> @}
634
635 !> @name Chemistry modeling (Fypp compile-time constant; same value in all targets)
636 !> @{
637 logical, parameter :: chemistry = .false.
638 !> @}
639
640 !> @name Elasticity and shear stress state (identical across all three executables)
641 !> @{
642 logical :: elasticity !< elasticity modeling, true for hyper or hypo
643 integer :: shear_num !< Number of shear stress components
644 integer, dimension(3) :: shear_indices !< Indices of the stress components that represent shear stress
645 integer :: shear_bc_flip_num !< Number of shear stress components to reflect for boundary conditions
646 integer, dimension(3, 2) :: shear_bc_flip_indices !< Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num)
647 !> @}
648
649#ifdef MFC_SIMULATION
650
651# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
652#if defined(MFC_OpenACC)
653# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
654!$acc declare create(sys_size, eqn_idx, b_size, tensor_size)
655# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
656#elif defined(MFC_OpenMP)
657# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
658!$omp declare target (sys_size, eqn_idx, b_size, tensor_size)
659# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
660#endif
661
662# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
663#if defined(MFC_OpenACC)
664# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
665!$acc declare create(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
666# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
667#elif defined(MFC_OpenMP)
668# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
669!$omp declare target (shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
670# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
671#endif
672 ! Device residency for namelist/case-opt state declared above via the generated
673 ! includes: declare directives must live in the declaring module (Cray ftn rejects
674 ! declare-target on use-associated names), so these moved here from simulation.
675
676# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
677#if defined(MFC_OpenACC)
678# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
679!$acc declare create(cyl_coord)
680# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
681#elif defined(MFC_OpenMP)
682# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
683!$omp declare target (cyl_coord)
684# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
685#endif
686
687# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
688#if defined(MFC_OpenACC)
689# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
690!$acc declare create(dt, m, n, p)
691# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
692#elif defined(MFC_OpenMP)
693# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
694!$omp declare target (dt, m, n, p)
695# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
696#endif
697
698# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
699#if defined(MFC_OpenACC)
700# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
701!$acc declare create(cfl_target)
702# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
703#elif defined(MFC_OpenMP)
704# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
705!$omp declare target (cfl_target)
706# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
707#endif
708
709# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
710#if defined(MFC_OpenACC)
711# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
712!$acc declare create(int_comp, ic_eps, ic_beta)
713# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
714#elif defined(MFC_OpenMP)
715# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
716!$omp declare target (int_comp, ic_eps, ic_beta)
717# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
718#endif
719
720# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
721#if defined(MFC_OpenACC)
722# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
723!$acc declare create(muscl_eps)
724# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
725#elif defined(MFC_OpenMP)
726# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
727!$omp declare target (muscl_eps)
728# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
729#endif
730
731# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
732#if defined(MFC_OpenACC)
733# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
734!$acc declare create(mpp_lim, model_eqns, mixture_err, alt_soundspeed)
735# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
736#elif defined(MFC_OpenMP)
737# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
738!$omp declare target (mpp_lim, model_eqns, mixture_err, alt_soundspeed)
739# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
740#endif
741
742# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
743#if defined(MFC_OpenACC)
744# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
745!$acc declare create(avg_state, mp_weno, weno_eps, teno_CT, hypoelasticity)
746# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
747#elif defined(MFC_OpenMP)
748# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
749!$omp declare target (avg_state, mp_weno, weno_eps, teno_CT, hypoelasticity)
750# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
751#endif
752
753# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
754#if defined(MFC_OpenACC)
755# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
756!$acc declare create(hyperelasticity, elasticity, low_Mach)
757# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
758#elif defined(MFC_OpenMP)
759# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
760!$omp declare target (hyperelasticity, elasticity, low_Mach)
761# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
762#endif
763
764# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
765#if defined(MFC_OpenACC)
766# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
767!$acc declare create(cont_damage, hyper_cleaning)
768# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
769#elif defined(MFC_OpenMP)
770# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
771!$omp declare target (cont_damage, hyper_cleaning)
772# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
773#endif
774
775# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
776#if defined(MFC_OpenACC)
777# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
778!$acc declare create(relax, relax_model, palpha_eps, ptgalpha_eps)
779# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
780#elif defined(MFC_OpenMP)
781# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
782!$omp declare target (relax, relax_model, palpha_eps, ptgalpha_eps)
783# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
784#endif
785
786# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
787#if defined(MFC_OpenACC)
788# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
789!$acc declare create(down_sample)
790# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
791#elif defined(MFC_OpenMP)
792# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
793!$omp declare target (down_sample)
794# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
795#endif
796
797# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
798#if defined(MFC_OpenACC)
799# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
800!$acc declare create(fd_order)
801# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
802#elif defined(MFC_OpenMP)
803# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
804!$omp declare target (fd_order)
805# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
806#endif
807
808# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
809#if defined(MFC_OpenACC)
810# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
811!$acc declare create(rhoref, pref)
812# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
813#elif defined(MFC_OpenMP)
814# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
815!$omp declare target (rhoref, pref)
816# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
817#endif
818
819# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
820#if defined(MFC_OpenACC)
821# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
822!$acc declare create(ib, num_ibs)
823# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
824#elif defined(MFC_OpenMP)
825# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
826!$omp declare target (ib, num_ibs)
827# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
828#endif
829
830# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
831#if defined(MFC_OpenACC)
832# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
833!$acc declare create(ib_coefficient_of_friction)
834# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
835#elif defined(MFC_OpenMP)
836# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
837!$omp declare target (ib_coefficient_of_friction)
838# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
839#endif
840
841# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
842#if defined(MFC_OpenACC)
843# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
844!$acc declare create(Ca, Web, Re_inv)
845# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
846#elif defined(MFC_OpenMP)
847# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
848!$omp declare target (Ca, Web, Re_inv)
849# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
850#endif
851
852# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
853#if defined(MFC_OpenACC)
854# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
855!$acc declare create(bubbles_euler, polytropic, polydisperse)
856# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
857#elif defined(MFC_OpenMP)
858# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
859!$omp declare target (bubbles_euler, polytropic, polydisperse)
860# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
861#endif
862
863# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
864#if defined(MFC_OpenACC)
865# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
866!$acc declare create(adv_n, adap_dt, adap_dt_tol, adap_dt_max_iters)
867# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
868#elif defined(MFC_OpenMP)
869# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
870!$omp declare target (adv_n, adap_dt, adap_dt_tol, adap_dt_max_iters)
871# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
872#endif
873
874# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
875#if defined(MFC_OpenACC)
876# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
877!$acc declare create(bubble_model, thermal)
878# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
879#elif defined(MFC_OpenMP)
880# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
881!$omp declare target (bubble_model, thermal)
882# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
883#endif
884
885# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
886#if defined(MFC_OpenACC)
887# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
888!$acc declare create(poly_sigma)
889# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
890#elif defined(MFC_OpenMP)
891# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
892!$omp declare target (poly_sigma)
893# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
894#endif
895
896# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
897#if defined(MFC_OpenACC)
898# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
899!$acc declare create(qbmm, pi_fac)
900# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
901#elif defined(MFC_OpenMP)
902# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
903!$omp declare target (qbmm, pi_fac)
904# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
905#endif
906
907# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
908#if defined(MFC_OpenACC)
909# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
910!$acc declare create(R0ref)
911# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
912#elif defined(MFC_OpenMP)
913# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
914!$omp declare target (R0ref)
915# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
916#endif
917
918# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
919#if defined(MFC_OpenACC)
920# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
921!$acc declare create(acoustic_source, num_source)
922# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
923#elif defined(MFC_OpenMP)
924# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
925!$omp declare target (acoustic_source, num_source)
926# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
927#endif
928
929# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
930#if defined(MFC_OpenACC)
931# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
932!$acc declare create(sigma, surface_tension)
933# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
934#elif defined(MFC_OpenMP)
935# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
936!$omp declare target (sigma, surface_tension)
937# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
938#endif
939
940# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
941#if defined(MFC_OpenACC)
942# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
943!$acc declare create(bubbles_lagrange)
944# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
945#elif defined(MFC_OpenMP)
946# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
947!$omp declare target (bubbles_lagrange)
948# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
949#endif
950
951# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
952#if defined(MFC_OpenACC)
953# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
954!$acc declare create(Bx0)
955# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
956#elif defined(MFC_OpenMP)
957# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
958!$omp declare target (Bx0)
959# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
960#endif
961
962# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
963#if defined(MFC_OpenACC)
964# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
965!$acc declare create(tau_star, cont_damage_s, alpha_bar)
966# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
967#elif defined(MFC_OpenMP)
968# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
969!$omp declare target (tau_star, cont_damage_s, alpha_bar)
970# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
971#endif
972
973# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
974#if defined(MFC_OpenACC)
975# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
976!$acc declare create(hyper_cleaning_speed, hyper_cleaning_tau)
977# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
978#elif defined(MFC_OpenMP)
979# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
980!$omp declare target (hyper_cleaning_speed, hyper_cleaning_tau)
981# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
982#endif
983
984# 101 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
985#if defined(MFC_OpenACC)
986# 101 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
987!$acc declare create(synthetic_turbulence, num_turbulent_sources, synth_U_inf)
988# 101 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
989#elif defined(MFC_OpenMP)
990# 101 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
991!$omp declare target (synthetic_turbulence, num_turbulent_sources, synth_U_inf)
992# 101 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
993#endif
994# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
995
996# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
997#if defined(MFC_OpenACC)
998# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
999!$acc declare create(num_dims, num_vels, weno_polyn, weno_order)
1000# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1001#elif defined(MFC_OpenMP)
1002# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1003!$omp declare target (num_dims, num_vels, weno_polyn, weno_order)
1004# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1005#endif
1006
1007# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1008#if defined(MFC_OpenACC)
1009# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1010!$acc declare create(weno_num_stencils, num_fluids, wenojs)
1011# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1012#elif defined(MFC_OpenMP)
1013# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1014!$omp declare target (weno_num_stencils, num_fluids, wenojs)
1015# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1016#endif
1017
1018# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1019#if defined(MFC_OpenACC)
1020# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1021!$acc declare create(mapped_weno, wenoz, teno, wenoz_q, mhd, relativity)
1022# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1023#elif defined(MFC_OpenMP)
1024# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1025!$omp declare target (mapped_weno, wenoz, teno, wenoz_q, mhd, relativity)
1026# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1027#endif
1028
1029# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1030#if defined(MFC_OpenACC)
1031# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1032!$acc declare create(igr_iter_solver, igr_order, viscous, igr_pres_lim, igr)
1033# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1034#elif defined(MFC_OpenMP)
1035# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1036!$omp declare target (igr_iter_solver, igr_order, viscous, igr_pres_lim, igr)
1037# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1038#endif
1039
1040# 107 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1041#if defined(MFC_OpenACC)
1042# 107 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1043!$acc declare create(recon_type, muscl_order, muscl_polyn, muscl_lim)
1044# 107 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1045#elif defined(MFC_OpenMP)
1046# 107 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1047!$omp declare target (recon_type, muscl_order, muscl_polyn, muscl_lim)
1048# 107 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1049#endif
1050# 109 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1051#endif
1052
1053 !> @name Processor coordinates and parallel-IO addressing (identical declaration across all three targets)
1054 !> @{
1055 integer, allocatable, dimension(:) :: proc_coords !< Processor coordinates in MPI_CART_COMM
1056 integer, allocatable, dimension(:) :: start_idx !< Starting cell-center index of local processor in global grid
1057 integer :: num_procs_x = 1 !< Number of MPI ranks in x-direction
1058 integer :: num_procs_y = 1 !< Number of MPI ranks in y-direction
1059 integer :: num_procs_z = 1 !< Number of MPI ranks in z-direction
1060 !> @}
1061
1062 !> @name MPI info for parallel IO with Lustre file systems (identical across all three targets)
1063 !> @{
1064 character(len=name_len) :: mpiiofs
1065 integer :: mpi_info_int
1066 !> @}
1067
1068contains
1069
1070 !> Initialize equation-index state (eqn_idx, sys_size, b_size, tensor_size) from the namelist parameters. This is the shared
1071 !! skeleton: it covers the model_eqns dispatch, all eqn_idx field assignments, and the elasticity/surface-tension/chemistry
1072 !! extensions.
1073 !!
1074 !! @param nmom_in Number of carried moments per R0 location (per-target: pre/post pass an
1075 !! integer variable; sim passes its integer parameter nmom = 6). Used only in the 5eq
1076 !! qbmm bubble-index calculation (eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in).
1077 !!
1078 !! Per-target callers are responsible for the following after this call:
1079 !! - qbmm_idx allocations and fills (diverge between pre vs sim/post)
1080 !! - sim-only: gam = bub_pp%gam_g, nmomsp/nmomtot, Re_idx allocation, GPU_UPDATE calls
1081 !! - post-only: beta_idx increment (bubbles_lagrange path), offset/grid allocations
1082 impure subroutine s_initialize_eqn_idx(nmom_in, nb_in)
1083
1084 integer, intent(in) :: nmom_in
1085 integer, intent(in) :: nb_in
1086
1087 ! Gamma/Pi_inf Model
1088
1089 if (model_eqns == model_eqns_gamma_law) then
1090 ! Annotating structure of the state and flux vectors belonging to the system of
1091 ! equations defined by the selected number of spatial dimensions and the gamma/pi_inf model
1092 eqn_idx%cont%beg = 1
1093 eqn_idx%cont%end = eqn_idx%cont%beg
1094 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1095 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1096 eqn_idx%E = eqn_idx%mom%end + 1
1097 eqn_idx%adv%beg = eqn_idx%E + 1
1098 eqn_idx%adv%end = eqn_idx%adv%beg + 1
1099 eqn_idx%gamma = eqn_idx%adv%beg
1100 eqn_idx%pi_inf = eqn_idx%adv%end
1101 sys_size = eqn_idx%adv%end
1102
1103 ! Volume Fraction Model (5-equation model)
1104 else if (model_eqns == model_eqns_5eq) then
1105 ! Annotating structure of the state and flux vectors belonging to the system of
1106 ! equations defined by the selected number of spatial dimensions and the volume fraction model
1107 eqn_idx%cont%beg = 1
1108 eqn_idx%cont%end = num_fluids
1109 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1110 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1111 eqn_idx%E = eqn_idx%mom%end + 1
1112
1113 if (igr) then
1114 ! IGR: volume fractions after energy (N-1 for N fluids; skipped when num_fluids=1)
1115 eqn_idx%adv%beg = eqn_idx%E + 1
1116 eqn_idx%adv%end = eqn_idx%E + num_fluids - 1
1117 else
1118 ! WENO/MUSCL + Riemann tracks a total of (N) volume fractions for N fluids
1119 eqn_idx%adv%beg = eqn_idx%E + 1
1120 eqn_idx%adv%end = eqn_idx%E + num_fluids
1121 end if
1122
1123 sys_size = eqn_idx%adv%end
1124
1125 if (bubbles_euler) then
1126 eqn_idx%alf = eqn_idx%adv%end
1127 else
1128 eqn_idx%alf = 1
1129 end if
1130
1131 if (bubbles_euler) then
1132 eqn_idx%bub%beg = sys_size + 1
1133 if (qbmm) then
1134 eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in
1135 else
1136 if (.not. polytropic) then
1137 eqn_idx%bub%end = sys_size + 4*nb_in
1138 else
1139 eqn_idx%bub%end = sys_size + 2*nb_in
1140 end if
1141 end if
1142 sys_size = eqn_idx%bub%end
1143
1144 if (adv_n) then
1145 eqn_idx%n = eqn_idx%bub%end + 1
1146 sys_size = eqn_idx%n
1147 end if
1148 end if
1149
1150 if (mhd) then
1151 eqn_idx%B%beg = sys_size + 1
1152 if (n == 0) then
1153 eqn_idx%B%end = sys_size + 2 ! 1D: By, Bz
1154 else
1155 eqn_idx%B%end = sys_size + 3 ! 2D/3D: Bx, By, Bz
1156 end if
1157 sys_size = eqn_idx%B%end
1158 end if
1159
1160 ! Volume Fraction Model (6-equation model)
1161 else if (model_eqns == model_eqns_6eq) then
1162 ! Annotating structure of the state and flux vectors belonging to the system of
1163 ! equations defined by the selected number of spatial dimensions and the volume fraction model
1164 eqn_idx%cont%beg = 1
1165 eqn_idx%cont%end = num_fluids
1166 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1167 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1168 eqn_idx%E = eqn_idx%mom%end + 1
1169 eqn_idx%adv%beg = eqn_idx%E + 1
1170 eqn_idx%adv%end = eqn_idx%E + num_fluids
1171#ifdef MFC_SIMULATION
1172 eqn_idx%alf = eqn_idx%adv%end
1173#endif
1174 eqn_idx%int_en%beg = eqn_idx%adv%end + 1
1175 eqn_idx%int_en%end = eqn_idx%adv%end + num_fluids
1176 sys_size = eqn_idx%int_en%end
1177 else if (model_eqns == model_eqns_4eq) then
1178 ! 4-equation model with subgrid bubbles
1179 eqn_idx%cont%beg = 1
1180 eqn_idx%cont%end = 1
1181 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1182 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1183 eqn_idx%E = eqn_idx%mom%end + 1
1184 eqn_idx%adv%beg = eqn_idx%E + 1
1185 eqn_idx%adv%end = eqn_idx%adv%beg
1186 eqn_idx%alf = eqn_idx%adv%end
1187 sys_size = eqn_idx%adv%end
1188
1189 if (bubbles_euler) then
1190 eqn_idx%bub%beg = sys_size + 1
1191 eqn_idx%bub%end = sys_size + 2*nb_in
1192 if (.not. polytropic) then
1193 eqn_idx%bub%end = sys_size + 4*nb_in
1194 end if
1195 sys_size = eqn_idx%bub%end
1196 end if
1197 end if
1198
1200 if (hypoelasticity .or. hyperelasticity) then
1201 elasticity = .true.
1202 eqn_idx%stress%beg = sys_size + 1
1203 eqn_idx%stress%end = sys_size + (num_dims*(num_dims + 1))/2
1204 if (cyl_coord) eqn_idx%stress%end = eqn_idx%stress%end + 1
1205 ! number of stresses is 1 in 1D, 3 in 2D, 4 in 2D-Axisym, 6 in 3D
1206 sys_size = eqn_idx%stress%end
1207
1208 ! shear stress index is 2 for 2D and 2,4,5 for 3D
1209 if (num_dims == 1) then
1210 shear_num = 0
1211 else if (num_dims == 2) then
1212 shear_num = 1
1213 shear_indices(1) = eqn_idx%stress%beg - 1 + 2
1216 ! Both x-dir and y-dir: flip tau_xy only
1217 else if (num_dims == 3) then
1218 shear_num = 3
1219 shear_indices(1:3) = eqn_idx%stress%beg - 1 + (/2, 4, 5/)
1221 shear_bc_flip_indices(1,1:2) = shear_indices((/1, 2/))
1222 shear_bc_flip_indices(2,1:2) = shear_indices((/1, 3/))
1223 shear_bc_flip_indices(3,1:2) = shear_indices((/2, 3/))
1224 ! x-dir: flip tau_xy and tau_xz; y-dir: flip tau_xy and tau_yz; z-dir: flip tau_xz and tau_yz
1225 end if
1226 end if
1227
1228 if (hyperelasticity) then
1229 ! number of entries in the symmetric b tensor plus the jacobian
1230 b_size = (num_dims*(num_dims + 1))/2 + 1
1231 tensor_size = num_dims**2 + 1
1232 eqn_idx%xi%beg = sys_size + 1
1233 eqn_idx%xi%end = sys_size + num_dims
1234 ! adding equations for the xi field and the elastic energy
1235 sys_size = eqn_idx%xi%end + 1
1236 end if
1237
1238 if (surface_tension) then
1239 eqn_idx%c = sys_size + 1
1240 sys_size = eqn_idx%c
1241 end if
1242
1243 if (cont_damage) then
1244 eqn_idx%damage = sys_size + 1
1245 sys_size = eqn_idx%damage
1246 end if
1247
1248 if (hyper_cleaning) then
1249 eqn_idx%psi = sys_size + 1
1250 sys_size = eqn_idx%psi
1251 end if
1252 end if
1253
1254 if (chemistry) then
1255 eqn_idx%species%beg = sys_size + 1
1256 eqn_idx%species%end = sys_size + num_species
1257 sys_size = eqn_idx%species%end
1258 end if
1259
1260 end subroutine s_initialize_eqn_idx
1261
1262 !> Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three executables;
1263 !! num_dims/num_vels are computed here for pre/post unconditionally and for sim only when not case-optimized (in which case they
1264 !! are compile-time parameters). Callers must have already populated n and p (grid dimensions).
1266
1267#ifdef MFC_MPI
1268 integer :: ierr !< Generic flag used to identify and report MPI errors
1269#endif
1270
1271#ifdef MFC_SIMULATION
1272 ! Under case-optimization, num_dims and num_vels are compile-time parameters; skip assignment.
1273# 332 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1274 num_dims = 1 + min(1, n) + min(1, p)
1275
1276 if (mhd) then
1277 num_vels = 3
1278 else
1280 end if
1281# 340 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1282#else
1283 num_dims = 1 + min(1, n) + min(1, p)
1284
1285 if (mhd) then
1286 num_vels = 3
1287 else
1289 end if
1290#endif
1291
1292 allocate (proc_coords(1:num_dims))
1293
1294 if (parallel_io .neqv. .true.) return
1295
1296#ifdef MFC_MPI
1297 ! Option for Lustre file system (Darter/Comet/Stampede)
1298 write (mpiiofs, '(A)') '/lustre_'
1299 mpiiofs = trim(mpiiofs)
1300 call mpi_info_create(mpi_info_int, ierr)
1301 call mpi_info_set(mpi_info_int, 'romio_ds_write', 'disable', ierr)
1302
1303 ! Option for UNIX file system (Hooke/Thomson) WRITE(mpiiofs, '(A)') '/ufs_' mpiiofs = TRIM(mpiiofs) mpi_info_int =
1304 ! MPI_INFO_NULL
1305
1306 allocate (start_idx(1:num_dims))
1307#endif
1308
1309 end subroutine s_initialize_parallel_io_common
1310
1311 !> Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this first, then handle their
1312 !! own extras (qbmm_idx, grid arrays, MPI_IO_DATA null/dealloc - those reference per-target typed variables and stay
1313 !! per-target).
1315
1316 deallocate (proc_coords)
1317
1318#ifdef MFC_MPI
1319 if (parallel_io) then
1320 deallocate (start_idx)
1321 end if
1322#endif
1323
1325
1326 !> Assign default values to the user-input parameters that are shared across all three executables (pre_process, simulation,
1327 !! post_process). Per-target defaults (bc_io, cfl_dt, precision, nb, chem_params, bub_pp scalar companions, fluid_pp loop, patch
1328 !! arrays, output flags) remain in the per-target s_assign_default_values_to_user_inputs routines, which call this subroutine
1329 !! first, then call s_update_cell_bounds(cells_bounds, m, n, p) (cells_bounds is per-target), then apply their own assignments.
1331
1332 ! Logistics
1333 case_dir = '.'
1334
1335 ! Computational domain parameters (m/n/p set here; caller must call s_update_cell_bounds after)
1336 m = dflt_int; n = 0; p = 0
1337
1338 cyl_coord = .false.
1339
1340 ! CFL adaptive time-stepping flags
1341 cfl_adap_dt = .false.
1342 cfl_const_dt = .false.
1343
1344 ! Time-stepping bookkeeping
1347
1348 ! Simulation algorithm
1350 relax = .false.
1352 hypoelasticity = .false.
1353 hyperelasticity = .false.
1354 elasticity = .false.
1357 cont_damage = .false.
1358 hyper_cleaning = .false.
1359
1360 ! Condensed-phase reactive burn
1361 reactive_burn = .false.
1362 rburn%k = dflt_real
1363 rburn%pign = dflt_real
1364 rburn%pref = dflt_real
1365 rburn%n = dflt_real
1366 rburn%ta = 0._wp
1367
1368 ! Case-optimization params: under case-opt these are compile-time constants in sim (skip assignment); in pre/post
1369 ! MFC_CASE_OPTIMIZATION is always False so the block always executes there.
1370# 429 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1375 igr = .false.
1377 mhd = .false.
1378 relativity = .false.
1379# 438 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1380
1381 ! Tait EOS
1383 pref = dflt_real
1384
1385 ! Bubble modeling flags and parameters
1387 bubbles_euler = .false.
1388 polydisperse = .false.
1390 qbmm = .false.
1391 surface_tension = .false.
1392 adv_n = .false.
1394 bubbles_lagrange = .false.
1395
1396 ! Immersed boundaries
1397 ib = .false.
1399
1400 ! MHD (background field)
1401 bx0 = dflt_real
1402
1403 ! Output and I/O options
1404 parallel_io = .false.
1405 file_per_process = .false.
1406 down_sample = .false.
1407 fft_wrt = .false.
1408
1409 end subroutine s_assign_common_defaults
1410
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter model_eqns_4eq
integer, parameter model_eqns_5eq
integer, parameter name_len
Maximum name length.
integer, parameter dflt_int
Default integer value.
real(wp), parameter dflt_real
Default real value.
integer, parameter recon_type_muscl
integer, parameter recon_type_weno
integer, parameter model_eqns_6eq
integer, parameter model_eqns_gamma_law
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Shared global parameters and equation-index setup for all three executables. Each per-target m_global...
integer muscl_polyn
Degree of the MUSCL polynomials.
type(ib_stl_parameters), dimension(num_stl_models_max) stl_models
Per-STL model parameters.
integer, dimension(:), allocatable start_idx
Starting cell-center index of local processor in global grid.
impure subroutine s_finalize_global_parameters_common
Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this fi...
type(subgrid_bubble_physical_parameters) bub_pp
Subgrid bubble physical parameters.
integer shear_num
Number of shear stress components.
type(vec3_dt), dimension(num_probes_max) probe
integer sys_size
Number of unknowns in system of equations.
type(integral_parameters), dimension(num_probes_max) integral
integer num_procs_y
Number of MPI ranks in y-direction.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus.
integer shear_bc_flip_num
Number of shear stress components to reflect for boundary conditions.
integer tensor_size
Number of elements in the full tensor plus one.
logical elasticity
elasticity modeling, true for hyper or hypo
integer, dimension(:), allocatable proc_coords
Processor coordinates in MPI_CART_COMM.
integer num_procs_x
Number of MPI ranks in x-direction.
integer num_dims
Number of spatial dimensions.
integer num_vels
Number of velocity components (different from num_dims for mhd).
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
type(acoustic_parameters), dimension(num_probes_max) acoustic
Acoustic source parameters.
type(spbf_parameters) spatial_bf
Parameters for spatially supported body force (Wei & Freund, JFM 2005).
integer num_procs_z
Number of MPI ranks in z-direction.
integer, dimension(3, 2) shear_bc_flip_indices
Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num).
impure subroutine s_initialize_eqn_idx(nmom_in, nb_in)
Initialize equation-index state (eqn_idx, sys_size, b_size, tensor_size) from the namelist parameters...
type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) patch_ib
Immersed boundary patch parameters.
impure subroutine s_initialize_parallel_io_common
Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three...
type(particle_cloud_parameters), dimension(num_particle_clouds_max) particle_cloud
Particle bed specifications.
integer weno_polyn
Degree of the WENO polynomials.
type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) ib_airfoil
Per-airfoil NACA user inputs.
impure subroutine s_assign_common_defaults
Assign default values to the user-input parameters that are shared across all three executables (pre_...
integer b_size
Number of elements in the symmetric b tensor, plus one.
type(bubbles_lagrange_parameters) lag_params
Lagrange bubbles' parameters.
integer, dimension(3) shear_indices
Indices of the stress components that represent shear stress.
type(reactive_burn_parameters) rburn
Condensed-phase reactive-burn (programmed detonation) parameters.
All conserved-variable equation indices, computed at startup from model_eqns and enabled features....
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).
Derived type annexing integral regions.
Derived type annexing the physical parameters (PP) of the fluids. These include the specific heat rat...
Condensed-phase reactive-burn (programmed pressure detonation) parameters. The rate is dlambda/dt = k...
Parameters for body force with spatial support.
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: ...