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# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
32! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
33! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
34# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
35# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
36# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
37
38# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40
41# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42
43# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44
45# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46
47# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48
49# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50
51# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56! New line at end of file is required for FYPP
57# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
58# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
59# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
60# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65
66# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69
70# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
72! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
73! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
74# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
76# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
77
78# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80
81# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82
83# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84
85# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86
87# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
88
89# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
90
91# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
92
93# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
94
95# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
96! New line at end of file is required for FYPP
97# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
98
99# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138
139# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151
152# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153
154# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155
156# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157
158# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159
160# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161
162# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163
164# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165
166# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
167
168# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
169
170# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
171
172# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
173
174# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
175! New line at end of file is required for FYPP
176# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
177# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
178# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
179# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184
185# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
186# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
188
189# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
191! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
192! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
193# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
194# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
195# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
196
197# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
198# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
199
200# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201
202# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203
204# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205
206# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
207
208# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
209
210# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
211
212# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
213
214# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
215! New line at end of file is required for FYPP
216# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
217
218# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223
224# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225
226# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227
228# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229
230# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231
232# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233
234# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235
236# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237
238# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239
240# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241
242# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243
244# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245
246# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247
248# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249
250# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251
252# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253
254# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255
256# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257
258# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259
260# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261
262# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263
264# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
265
266# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
267
268# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
269
270# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
271
272# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
273! New line at end of file is required for FYPP
274# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
275
276! GPU parallel region (scalar reductions, maxval/minval)
277# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! GPU parallel loop over threads (most common GPU macro)
280# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Required closing for GPU_PARALLEL_LOOP
283# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Mark routine for device compilation
286# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Declare device-resident data
289# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Inner loop within a GPU parallel region
292# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294! Scoped GPU data region
295# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296
297! Host code with device pointers (for MPI with GPU buffers)
298# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299
300! Allocate device memory (unscoped)
301# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302
303! Free device memory
304# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305
306! Atomic operation on device
307# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308
309! End atomic capture block
310# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311
312! Copy data between host and device
313# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314
315! Synchronization barrier
316# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
317
318! Import GPU library module (openacc or omp_lib)
319# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
320
321! Emit code only for AMD compiler
322# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323
324! Emit code for non-Cray compilers
325# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
326
327! Emit code only for Cray compiler
328# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
329
330! Emit code for non-NVIDIA compilers
331# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
332
333# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
334# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
335! New line at end of file is required for FYPP
336# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
337
338# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
339
340! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
341! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
342! example see misc/nvidia_uvm/bind.sh.
343# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344
345! Allocate and create GPU device memory
346# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
347
348! Free GPU device memory and deallocate
349# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
350
351! Cray-specific GPU pointer setup for vector fields
352# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
353
354! Cray-specific GPU pointer setup for scalar fields
355# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
356
357! Cray-specific GPU pointer setup for acoustic source spatials
358# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
359
360# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
361
362# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
363! New line at end of file is required for FYPP
364# 7 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
365
366!> @brief Shared global parameters and equation-index setup for all three executables. Each per-target m_global_parameters uses this
367!! module (default-public, so all symbols re-export to downstream consumers via two-hop use-association).
369
370#ifdef MFC_MPI
371 use mpi
372#endif
373
375 use m_thermochem, only: num_species
378
379 implicit none
380
381 ! All namelist-bound scalar and array declarations (per-target, regenerated at build time by the ninja custom command)
382# 1 "/home/runner/work/MFC/MFC/build/include/pre_process/generated_decls.fpp" 1
383! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
384!
385real(wp) :: bx0
386real(wp) :: ca
387real(wp) :: r0ref
388real(wp) :: re_inv
389real(wp) :: web
390real(wp) :: a_x
391real(wp) :: a_y
392real(wp) :: a_z
393logical :: adv_n
395integer :: avg_state
398character(LEN=path_len) :: case_dir
399logical :: cfl_adap_dt
400logical :: cfl_const_dt
401logical :: cont_damage
402logical :: cyl_coord
403integer :: dist_type
404logical :: down_sample
407logical :: fft_wrt
408character(LEN=path_len) :: file_extension
410character(LEN=path_len) :: files_dir
411real(wp), dimension(num_fluids_max) :: fluid_rho
414logical :: ib
415logical :: igr
416integer :: igr_order
417integer :: loops_x
418integer :: loops_y
419integer :: loops_z
420integer :: m
421logical :: mhd
427logical :: mixture_err
428integer :: model_eqns
429logical :: mpp_lim
430integer :: muscl_order
431integer :: n
432integer :: n_start
433integer :: n_start_old
434integer :: nb
436integer :: num_fluids
437integer :: num_ibs
439integer :: num_patches
441logical :: old_grid
442logical :: old_ic
443integer :: p
444real(wp) :: palpha_eps
445logical :: parallel_io
446logical :: perturb_flow
449logical :: perturb_sph
451real(wp) :: pi_fac
452real(wp) :: poly_sigma
453logical :: polydisperse
454logical :: polytropic
455integer :: precision
456real(wp) :: ptgalpha_eps
457logical :: qbmm
459integer :: recon_type
460logical :: relativity
461logical :: relax
462integer :: relax_model
463real(wp) :: rhorv
465real(wp) :: sigr
466real(wp) :: sigv
467real(wp) :: sigma
469logical :: stretch_x
470logical :: stretch_y
471logical :: stretch_z
473integer :: t_step_old
474integer :: t_step_start
475integer :: thermal
476logical :: viscous
477integer :: weno_order
478real(wp) :: x_a
479real(wp) :: x_b
480real(wp) :: y_a
481real(wp) :: y_b
482real(wp) :: z_a
483real(wp) :: z_b
484type(physical_parameters), dimension(num_fluids_max) :: fluid_pp !< Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus
485type(subgrid_bubble_physical_parameters) :: bub_pp !< Subgrid bubble physical parameters
486type(ic_patch_parameters), dimension(num_patches_max) :: patch_icpp !< IC patch parameters
487type(bc_patch_parameters), dimension(num_bc_patches_max) :: patch_bc !< Boundary condition patch parameters
488type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) :: patch_ib !< Immersed boundary patch parameters
489type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) :: ib_airfoil !< Per-airfoil NACA user inputs
490type(ib_stl_parameters), dimension(num_stl_models_max) :: stl_models !< Per-STL model parameters
491type(reactive_burn_parameters) :: rburn !< Condensed-phase reactive-burn (programmed detonation) parameters
492type(particle_cloud_parameters), dimension(num_particle_clouds_max) :: particle_cloud !< Particle bed specifications
494# 25 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
495
496 ! Case-optimization declarations: parameters (under MFC_CASE_OPTIMIZATION) or plain variables for
497 ! num_dims, num_vels, weno_polyn, muscl_polyn, weno_num_stencils, wenojs, igr, etc.
498# 1 "/home/runner/work/MFC/MFC/build/include/pre_process/generated_case_opt_decls.fpp" 1
499! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
500!
501integer :: num_dims
502integer :: num_vels
503integer :: weno_polyn
504integer :: muscl_polyn
506# 29 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
507
508 !> @name Annotations of the structure of the state and flux vectors in terms of the size and configuration of the system of
509 !! equations
510 !> @{
511 integer :: sys_size !< Number of unknowns in system of equations
512 type(eqn_idx_info) :: eqn_idx !< All conserved-variable equation index ranges and scalars
513 !> @}
514
515 !> @name Chemistry modeling (Fypp compile-time constant; same value in all targets)
516 !> @{
517 logical, parameter :: chemistry = .false.
518# 40 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
519 !> @}
520
521 !> @name Hypoelastic shear stress state (identical across all three executables)
522 !> @{
523 integer :: shear_num !< Number of shear stress components
524 integer, dimension(3) :: shear_indices !< Indices of the stress components that represent shear stress
525 integer :: shear_bc_flip_num !< Number of shear stress components to reflect for boundary conditions
526 integer, dimension(3, 2) :: shear_bc_flip_indices !< Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num)
527 !> @}
528
529 !> @name Material properties derived from fluid_pp
530 !> @{ One declaration is shared by all executables and initialized by m_eos after the case parameters have been read.
531 !> gammas is the stored form 1/(gamma - 1), not the ratio of specific heats; isentrope_n and isentrope_B are the same EOS
532 !! written as p + B = const*rho**n.
533 real(wp), allocatable, dimension(:) :: gammas, isentrope_n, pi_infs, isentrope_b, cvs, qvs, qvps
534
535# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
536#if defined(MFC_OpenACC)
537# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
538!$acc declare create(gammas, isentrope_n, pi_infs, isentrope_B, cvs, qvs, qvps)
539# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
540#elif defined(MFC_OpenMP)
541# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
542!$omp declare target (gammas, isentrope_n, pi_infs, isentrope_B, cvs, qvs, qvps)
543# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
544#endif
545# 56 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
546 !> Per-fluid EOS selector and Mie-Gruneisen reference curve, resolved once at init like the arrays above
547 integer, allocatable, dimension(:) :: eoss
548 !> Per-fluid EOS coefficients, whatever the family; see type eos_coefficients.
549 type(eos_coefficients), dimension(num_fluids_max) :: eos_coeffs
550 !> any_state_dependent_eos is declared with the case-optimization block above: a parameter when the case is baked in, so the
551 !! compiler drops the whole state-dependent chain from kernels that never need it.
552
553# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
554#if defined(MFC_OpenACC)
555# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
556!$acc declare create(eoss, eos_coeffs)
557# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
558#elif defined(MFC_OpenMP)
559# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
560!$omp declare target (eoss, eos_coeffs)
561# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
562#endif
563# 63 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
564 !> Fourier heat conduction: true when any fluid sets k_therm > 0. Derived, never read from the namelist.
566 real(wp), allocatable, dimension(:) :: fluid_k_therm
567
568# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
569#if defined(MFC_OpenACC)
570# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
571!$acc declare create(heat_conduction, fluid_k_therm)
572# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
573#elif defined(MFC_OpenMP)
574# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
575!$omp declare target (heat_conduction, fluid_k_therm)
576# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
577#endif
578# 67 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
579# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
580
581# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
582#if defined(MFC_OpenACC)
583# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
584!$acc declare create(any_state_dependent_eos)
585# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
586#elif defined(MFC_OpenMP)
587# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
588!$omp declare target (any_state_dependent_eos)
589# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
590#endif
591# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
592# 70 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
593 !> @}
594
595 !> @name Fluids participating in shear and bulk viscosity
596 !> @{
597 integer, dimension(2) :: re_size = 0
598 integer :: re_size_max = 0
599 integer, allocatable, dimension(:,:) :: re_idx
600
601# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
602#if defined(MFC_OpenACC)
603# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
604!$acc declare create(Re_size, Re_size_max, Re_idx)
605# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
606#elif defined(MFC_OpenMP)
607# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
608!$omp declare target (Re_size, Re_size_max, Re_idx)
609# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
610#endif
611# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
612 !> @}
613
614 !> Minimum cell widths. These are distinct from the per-cell width arrays named dx, dy, and dz in simulation and post-process.
615 real(wp) :: dx_min, dy_min, dz_min
616
617
618# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
619#if defined(MFC_OpenACC)
620# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
621!$acc declare create(sys_size, eqn_idx)
622# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
623#elif defined(MFC_OpenMP)
624# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
625!$omp declare target (sys_size, eqn_idx)
626# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
627#endif
628# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
629
630# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
631#if defined(MFC_OpenACC)
632# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
633!$acc declare create(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
634# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
635#elif defined(MFC_OpenMP)
636# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
637!$omp declare target (shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
638# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
639#endif
640# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
641
642 !> @name Processor coordinates and parallel-IO addressing (identical declaration across all three targets)
643 !> @{
644 integer, allocatable, dimension(:) :: proc_coords !< Processor coordinates in MPI_CART_COMM
645 integer, allocatable, dimension(:) :: start_idx !< Starting cell-center index of local processor in global grid
646 integer :: num_procs_x = 1 !< Number of MPI ranks in x-direction
647 integer :: num_procs_y = 1 !< Number of MPI ranks in y-direction
648 integer :: num_procs_z = 1 !< Number of MPI ranks in z-direction
649 !> @}
650
651 !> @name MPI info for parallel IO with Lustre file systems (identical across all three targets)
652 !> @{
653 character(len=name_len) :: mpiiofs
654 integer :: mpi_info_int
655 !> @}
656
657contains
658
659 !> Initialize equation-index state (eqn_idx and sys_size) from the namelist parameters. This is the shared skeleton: it covers
660 !! the model_eqns dispatch, all eqn_idx field assignments, and the hypoelastic/surface-tension/chemistry extensions.
661 !!
662 !! @param nmom_in Number of carried moments per R0 location (per-target: pre/post pass an
663 !! integer variable; sim passes its integer parameter nmom = 6). Used only in the 5eq
664 !! qbmm bubble-index calculation (eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in).
665 !!
666 !! Per-target callers are responsible for the following after this call:
667 !! - qbmm_idx allocations and fills (diverge between pre vs sim/post)
668 !! - sim-only: gam = bub_pp%gam_g, nmomsp/nmomtot, Re_idx allocation, GPU_UPDATE calls
669 !! - post-only: beta_idx increment (bubbles_lagrange path), offset/grid allocations
670 impure subroutine s_initialize_eqn_idx(nmom_in, nb_in, six_eqn_alf_is_advected)
671
672 integer, intent(in) :: nmom_in
673 integer, intent(in) :: nb_in
674 logical, intent(in) :: six_eqn_alf_is_advected
675
676 ! Gamma/Pi_inf Model
677
679 ! Annotating structure of the state and flux vectors belonging to the system of
680 ! equations defined by the selected number of spatial dimensions and the gamma/pi_inf model
681 eqn_idx%cont%beg = 1
682 eqn_idx%cont%end = eqn_idx%cont%beg
683 eqn_idx%mom%beg = eqn_idx%cont%end + 1
684 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
685 eqn_idx%E = eqn_idx%mom%end + 1
686 eqn_idx%adv%beg = eqn_idx%E + 1
687 eqn_idx%adv%end = eqn_idx%adv%beg + 1
688 eqn_idx%gamma = eqn_idx%adv%beg
689 eqn_idx%pi_inf = eqn_idx%adv%end
690 sys_size = eqn_idx%adv%end
691
692 ! Volume Fraction Model (5-equation model)
693 else if (model_eqns == model_eqns_5eq) then
694 ! Annotating structure of the state and flux vectors belonging to the system of
695 ! equations defined by the selected number of spatial dimensions and the volume fraction model
696 eqn_idx%cont%beg = 1
697 eqn_idx%cont%end = num_fluids
698 eqn_idx%mom%beg = eqn_idx%cont%end + 1
699 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
700 eqn_idx%E = eqn_idx%mom%end + 1
701
702 if (igr) then
703 ! IGR: volume fractions after energy (N-1 for N fluids; skipped when num_fluids=1)
704 eqn_idx%adv%beg = eqn_idx%E + 1
705 eqn_idx%adv%end = eqn_idx%E + num_fluids - 1
706 else
707 ! WENO/MUSCL + Riemann tracks a total of (N) volume fractions for N fluids
708 eqn_idx%adv%beg = eqn_idx%E + 1
709 eqn_idx%adv%end = eqn_idx%E + num_fluids
710 end if
711
712 sys_size = eqn_idx%adv%end
713
714 if (bubbles_euler) then
715 eqn_idx%alf = eqn_idx%adv%end
716 else
717 eqn_idx%alf = 1
718 end if
719
720 if (bubbles_euler) then
721 eqn_idx%bub%beg = sys_size + 1
722 if (qbmm) then
723 eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in
724 else
725 if (.not. polytropic) then
726 eqn_idx%bub%end = sys_size + 4*nb_in
727 else
728 eqn_idx%bub%end = sys_size + 2*nb_in
729 end if
730 end if
731 sys_size = eqn_idx%bub%end
732
733 if (adv_n) then
734 eqn_idx%n = eqn_idx%bub%end + 1
735 sys_size = eqn_idx%n
736 end if
737 end if
738
739 if (mhd) then
740 eqn_idx%B%beg = sys_size + 1
741 if (n == 0) then
742 eqn_idx%B%end = sys_size + 2 ! 1D: By, Bz
743 else
744 eqn_idx%B%end = sys_size + 3 ! 2D/3D: Bx, By, Bz
745 end if
746 sys_size = eqn_idx%B%end
747 end if
748
749 ! Volume Fraction Model (6-equation model)
750 else if (model_eqns == model_eqns_6eq) then
751 ! Annotating structure of the state and flux vectors belonging to the system of
752 ! equations defined by the selected number of spatial dimensions and the volume fraction model
753 eqn_idx%cont%beg = 1
754 eqn_idx%cont%end = num_fluids
755 eqn_idx%mom%beg = eqn_idx%cont%end + 1
756 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
757 eqn_idx%E = eqn_idx%mom%end + 1
758 eqn_idx%adv%beg = eqn_idx%E + 1
759 eqn_idx%adv%end = eqn_idx%E + num_fluids
760 if (six_eqn_alf_is_advected) eqn_idx%alf = eqn_idx%adv%end
761 eqn_idx%int_en%beg = eqn_idx%adv%end + 1
762 eqn_idx%int_en%end = eqn_idx%adv%end + num_fluids
763 sys_size = eqn_idx%int_en%end
764 end if
765
767 if (hypoelasticity) then
768 eqn_idx%stress%beg = sys_size + 1
769 eqn_idx%stress%end = sys_size + (num_dims*(num_dims + 1))/2
770 if (cyl_coord) eqn_idx%stress%end = eqn_idx%stress%end + 1
771 ! number of stresses is 1 in 1D, 3 in 2D, 4 in 2D-Axisym, 6 in 3D
772 sys_size = eqn_idx%stress%end
773
774 ! shear stress index is 2 for 2D and 2,4,5 for 3D. Readers test the whole array
775 ! rather than the first shear_num entries, so unused slots must not be garbage.
776 shear_indices = 0
777 if (num_dims == 1) then
778 shear_num = 0
779 else if (num_dims == 2) then
780 shear_num = 1
781 shear_indices(1) = eqn_idx%stress%beg - 1 + 2
784 ! Both x-dir and y-dir: flip tau_xy only
785 else if (num_dims == 3) then
786 shear_num = 3
787 shear_indices(1:3) = eqn_idx%stress%beg - 1 + (/2, 4, 5/)
789 shear_bc_flip_indices(1,1:2) = shear_indices((/1, 2/))
790 shear_bc_flip_indices(2,1:2) = shear_indices((/1, 3/))
791 shear_bc_flip_indices(3,1:2) = shear_indices((/2, 3/))
792 ! x-dir: flip tau_xy and tau_xz; y-dir: flip tau_xy and tau_yz; z-dir: flip tau_xz and tau_yz
793 end if
794 end if
795
796 if (surface_tension) then
797 eqn_idx%c = sys_size + 1
798 sys_size = eqn_idx%c
799 end if
800
801 if (cont_damage) then
802 eqn_idx%damage = sys_size + 1
803 sys_size = eqn_idx%damage
804 end if
805
806 if (hyper_cleaning) then
807 eqn_idx%psi = sys_size + 1
808 sys_size = eqn_idx%psi
809 end if
810 end if
811
812 if (chemistry) then
813 eqn_idx%species%beg = sys_size + 1
814 eqn_idx%species%end = sys_size + num_species
815 sys_size = eqn_idx%species%end
816 end if
817
818 ! Resolved here, not with the other fluid properties, because the MPI halo buffers are sized before
819 ! m_variables_conversion runs and conduction adds temperature to the exchange.
820 heat_conduction = any(fluid_pp(:)%k_therm > 0._wp)
821
822 end subroutine s_initialize_eqn_idx
823
824 !> Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three executables;
825 !! num_dims/num_vels are computed here for pre/post unconditionally and for sim only when not case-optimized (in which case they
826 !! are compile-time parameters). Callers must have already populated n and p (grid dimensions).
828
829#ifdef MFC_MPI
830 integer :: ierr !< Generic flag used to identify and report MPI errors
831#endif
832
833 ! Under case-optimization, num_dims and num_vels are compile-time parameters; skip assignment.
834# 279 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
835 num_dims = 1 + min(1, n) + min(1, p)
836
837 if (mhd) then
838 num_vels = 3
839 else
841 end if
842# 287 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
843
844 allocate (proc_coords(1:num_dims))
845
846 if (parallel_io .neqv. .true.) return
847
848#ifdef MFC_MPI
849 ! Option for Lustre file system (Darter/Comet/Stampede)
850 write (mpiiofs, '(A)') '/lustre_'
851 mpiiofs = trim(mpiiofs)
852 call mpi_info_create(mpi_info_int, ierr)
853 call mpi_info_set(mpi_info_int, 'romio_ds_write', 'disable', ierr)
854
855 ! Option for UNIX file system (Hooke/Thomson) WRITE(mpiiofs, '(A)') '/ufs_' mpiiofs = TRIM(mpiiofs) mpi_info_int =
856 ! MPI_INFO_NULL
857
858 allocate (start_idx(1:num_dims))
859#endif
860
862
863 !> Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this first, then handle their
864 !! own extras (qbmm_idx, grid arrays, MPI_IO_DATA null/dealloc - those reference per-target typed variables and stay
865 !! per-target).
867
868 deallocate (proc_coords)
869
870#ifdef MFC_MPI
871 if (parallel_io) then
872 deallocate (start_idx)
873 end if
874#endif
875
877
878 !> Assign default values to the user-input parameters that are shared across all three executables (pre_process, simulation,
879 !! post_process). Per-target defaults (bc_io, cfl_dt, precision, nb, chem_params, bub_pp scalar companions, fluid_pp loop, patch
880 !! arrays, output flags) remain in the per-target s_assign_default_values_to_user_inputs routines, which call this subroutine
881 !! first, then call s_update_cell_bounds(cells_bounds, m, n, p) (cells_bounds is per-target), then apply their own assignments.
882 impure subroutine s_assign_common_defaults
883
884 ! Logistics
885 case_dir = '.'
886
887 ! Computational domain parameters (m/n/p set here; caller must call s_update_cell_bounds after)
888 m = dflt_int; n = 0; p = 0
889
890 cyl_coord = .false.
891
892 ! CFL adaptive time-stepping flags
893 cfl_adap_dt = .false.
894 cfl_const_dt = .false.
895
896 ! Time-stepping bookkeeping
899
900 ! Simulation algorithm
902 relax = .false.
904 hypoelasticity = .false.
905 cont_damage = .false.
906 hyper_cleaning = .false.
907
908 ! Condensed-phase reactive burn
909 reactive_burn = .false.
910 rburn%k = dflt_real
911 rburn%pign = dflt_real
912 rburn%pref = dflt_real
913 rburn%n = dflt_real
914 rburn%ta = 0._wp
915 rburn%substeps = 0
916
917 ! Case-optimization params: under case-opt these are compile-time constants in sim (skip assignment); in pre/post
918 ! MFC_CASE_OPTIMIZATION is always False so the block always executes there.
919# 364 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
924 igr = .false.
926 mhd = .false.
927 relativity = .false.
928 viscous = .false.
929# 374 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
930
931 ! Not a case-optimization parameter, so it stays a runtime variable in every build.
933
934 ! Tait EOS
935
936 ! Bubble modeling flags and parameters
938 bubbles_euler = .false.
939 polydisperse = .false.
941 qbmm = .false.
942 surface_tension = .false.
943 adv_n = .false.
945 bubbles_lagrange = .false.
946
947 ! Immersed boundaries
948 ib = .false.
950
951 ! MHD (background field)
952 bx0 = dflt_real
953
954 ! Output and I/O options
955 parallel_io = .false.
956 file_per_process = .false.
957 down_sample = .false.
958 fft_wrt = .false.
959
960 ! Mixture conversion and sound-speed behavior
962 alt_soundspeed = .false.
963 mixture_err = .false.
968
969 end subroutine s_assign_common_defaults
970
Compile-time constant parameters: default values, tolerances, and physical constants.
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 eos_ideal_gas
integer, parameter num_fluids_max
Maximum number of fluids in the simulation.
integer, parameter eos_stiffened_gas
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...
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(ic_patch_parameters), dimension(num_patches_max) patch_icpp
IC patch parameters.
type(subgrid_bubble_physical_parameters) bub_pp
Subgrid bubble physical parameters.
integer shear_num
Number of shear stress components.
real(wp), dimension(:), allocatable qvs
real(wp), dimension(:), allocatable gammas
integer sys_size
Number of unknowns in system of equations.
integer, dimension(:), allocatable eoss
Per-fluid EOS selector and Mie-Gruneisen reference curve, resolved once at init like the arrays above...
real(wp) dx_min
Minimum cell widths. These are distinct from the per-cell width arrays named dx, dy,...
integer num_procs_y
Number of MPI ranks in y-direction.
integer, dimension(:,:), allocatable re_idx
real(wp), dimension(:), allocatable isentrope_n
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.
type(bc_patch_parameters), dimension(num_bc_patches_max) patch_bc
Boundary condition patch parameters.
real(wp), dimension(:), allocatable cvs
integer, dimension(:), allocatable proc_coords
Processor coordinates in MPI_CART_COMM.
integer num_procs_x
Number of MPI ranks in x-direction.
logical heat_conduction
any_state_dependent_eos is declared with the case-optimization block above: a parameter when the case...
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
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).
real(wp), dimension(num_fluids_max) fluid_rho
real(wp), dimension(:), allocatable fluid_k_therm
type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) patch_ib
Immersed boundary patch parameters.
real(wp), dimension(:), allocatable isentrope_b
impure subroutine s_initialize_parallel_io_common
Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three...
type(eos_coefficients), dimension(num_fluids_max) eos_coeffs
Per-fluid EOS coefficients, whatever the family; see type eos_coefficients.
real(wp), dimension(:), allocatable qvps
type(particle_cloud_parameters), dimension(num_particle_clouds_max) particle_cloud
Particle bed specifications.
real(wp), dimension(:), allocatable pi_infs
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, 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.
impure subroutine s_initialize_eqn_idx(nmom_in, nb_in, six_eqn_alf_is_advected)
Initialize equation-index state (eqn_idx and sys_size) from the namelist parameters....
Coefficients of one fluid's equation of state, resolved once at init. Held as a record per fluid rath...
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 adding initial condition (ic) patch parameters as attributes NOTE: The requirements for ...
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...
Derived type annexing the physical parameters required for sub-grid bubble models.