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/post_process/generated_decls.fpp" 1
383! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
384!
385real(wp) :: bx0
386real(wp) :: ca
387logical :: e_wrt
388real(wp) :: r0ref
389real(wp) :: re_inv
390logical :: t_wrt
391real(wp) :: web
392logical :: adv_n
393logical, dimension(num_fluids_max) :: alpha_rho_e_wrt
394logical, dimension(num_fluids_max) :: alpha_rho_wrt
395logical, dimension(num_fluids_max) :: alpha_wrt
397integer :: avg_state
400logical :: c_wrt
401character(LEN=path_len) :: case_dir
402logical :: cf_wrt
403logical :: cfl_adap_dt
404logical :: cfl_const_dt
405real(wp) :: cfl_target
406logical :: chem_wrt_t
407logical, dimension(num_species) :: chem_wrt_y
409logical :: cont_damage
410logical :: cyl_coord
411logical :: down_sample
412integer :: fd_order
413logical :: fft_wrt
415integer :: flux_lim
416logical, dimension(3) :: flux_wrt
417integer :: format
418logical :: gamma_wrt
422logical :: ib
424logical :: ib_force_wrt
425logical :: ib_state_wrt
426logical :: igr
427integer :: igr_order
430logical :: lag_db_wrt
432logical :: lag_header
433logical :: lag_id_wrt
434logical :: lag_mg_wrt
435logical :: lag_mv_wrt
437logical :: lag_pos_wrt
438logical :: lag_pres_wrt
439logical :: lag_r0_wrt
440logical :: lag_rad_wrt
441logical :: lag_rmax_wrt
442logical :: lag_rmin_wrt
443logical :: lag_rvel_wrt
444logical :: lag_txt_wrt
445logical :: lag_vel_wrt
446logical :: liutex_wrt
447integer :: m
448logical :: mhd
449logical :: mixture_err
450integer :: model_eqns
451logical, dimension(3) :: mom_wrt
452logical :: mpp_lim
453integer :: muscl_order
454integer :: n
455integer :: n_start
456integer :: nb
458integer :: num_fluids
459integer :: num_ibs
462logical, dimension(3) :: omega_wrt
464integer :: p
465real(wp) :: palpha_eps
466logical :: parallel_io
467logical :: pi_inf_wrt
468real(wp) :: poly_sigma
469logical :: polydisperse
470logical :: polytropic
471integer :: precision
472logical :: pres_inf_wrt
473logical :: pres_wrt
475real(wp) :: ptgalpha_eps
476logical :: qbmm
477logical :: qm_wrt
479integer :: recon_type
480logical :: relativity
481logical :: relax
482integer :: relax_model
483logical :: rho_wrt
485real(wp), dimension(num_fluids_max) :: schlieren_alpha
487real(wp) :: sigr
488real(wp) :: sigma
489logical :: sim_data
491real(wp) :: t_save
492integer :: t_step_save
493integer :: t_step_start
494integer :: t_step_stop
495real(wp) :: t_stop
496integer :: thermal
497logical, dimension(3) :: vel_wrt
498logical :: viscous
499integer :: weno_order
500type(physical_parameters), dimension(num_fluids_max) :: fluid_pp !< Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus
501type(subgrid_bubble_physical_parameters) :: bub_pp !< Subgrid bubble physical parameters
502type(ib_stl_parameters), dimension(num_stl_models_max) :: stl_models !< Per-STL model parameters
503type(reactive_burn_parameters) :: rburn !< Condensed-phase reactive-burn (programmed detonation) parameters
504type(particle_cloud_parameters), dimension(num_particle_clouds_max) :: particle_cloud !< Particle bed specifications
505# 25 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
506
507 ! Case-optimization declarations: parameters (under MFC_CASE_OPTIMIZATION) or plain variables for
508 ! num_dims, num_vels, weno_polyn, muscl_polyn, weno_num_stencils, wenojs, igr, etc.
509# 1 "/home/runner/work/MFC/MFC/build/include/post_process/generated_case_opt_decls.fpp" 1
510! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
511!
512integer :: num_dims
513integer :: num_vels
514integer :: weno_polyn
515integer :: muscl_polyn
517# 29 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
518
519 !> @name Annotations of the structure of the state and flux vectors in terms of the size and configuration of the system of
520 !! equations
521 !> @{
522 integer :: sys_size !< Number of unknowns in system of equations
523 type(eqn_idx_info) :: eqn_idx !< All conserved-variable equation index ranges and scalars
524 !> @}
525
526 !> @name Chemistry modeling (Fypp compile-time constant; same value in all targets)
527 !> @{
528 logical, parameter :: chemistry = .false.
529# 40 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
530 !> @}
531
532 !> @name Hypoelastic shear stress state (identical across all three executables)
533 !> @{
534 integer :: shear_num !< Number of shear stress components
535 integer, dimension(3) :: shear_indices !< Indices of the stress components that represent shear stress
536 integer :: shear_bc_flip_num !< Number of shear stress components to reflect for boundary conditions
537 integer, dimension(3, 2) :: shear_bc_flip_indices !< Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num)
538 !> @}
539
540 !> @name Material properties derived from fluid_pp
541 !> @{ One declaration is shared by all executables and initialized by m_eos after the case parameters have been read.
542 !> gammas is the stored form 1/(gamma - 1), not the ratio of specific heats; isentrope_n and isentrope_B are the same EOS
543 !! written as p + B = const*rho**n.
544 real(wp), allocatable, dimension(:) :: gammas, isentrope_n, pi_infs, isentrope_b, cvs, qvs, qvps
545
546# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
547#if defined(MFC_OpenACC)
548# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
549!$acc declare create(gammas, isentrope_n, pi_infs, isentrope_B, cvs, qvs, qvps)
550# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
551#elif defined(MFC_OpenMP)
552# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
553!$omp declare target (gammas, isentrope_n, pi_infs, isentrope_B, cvs, qvs, qvps)
554# 55 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
555#endif
556# 56 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
557 !> Per-fluid EOS selector and Mie-Gruneisen reference curve, resolved once at init like the arrays above
558 integer, allocatable, dimension(:) :: eoss
559 !> Per-fluid EOS coefficients, whatever the family; see type eos_coefficients.
560 type(eos_coefficients), dimension(num_fluids_max) :: eos_coeffs
561 !> any_state_dependent_eos is declared with the case-optimization block above: a parameter when the case is baked in, so the
562 !! compiler drops the whole state-dependent chain from kernels that never need it.
563
564# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
565#if defined(MFC_OpenACC)
566# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
567!$acc declare create(eoss, eos_coeffs)
568# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
569#elif defined(MFC_OpenMP)
570# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
571!$omp declare target (eoss, eos_coeffs)
572# 62 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
573#endif
574# 63 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
575 !> Fourier heat conduction: true when any fluid sets k_therm > 0. Derived, never read from the namelist.
577 real(wp), allocatable, dimension(:) :: fluid_k_therm
578
579# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
580#if defined(MFC_OpenACC)
581# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
582!$acc declare create(heat_conduction, fluid_k_therm)
583# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
584#elif defined(MFC_OpenMP)
585# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
586!$omp declare target (heat_conduction, fluid_k_therm)
587# 66 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
588#endif
589# 67 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
590# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
591
592# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
593#if defined(MFC_OpenACC)
594# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
595!$acc declare create(any_state_dependent_eos)
596# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
597#elif defined(MFC_OpenMP)
598# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
599!$omp declare target (any_state_dependent_eos)
600# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
601#endif
602# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
603# 70 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
604 !> @}
605
606 !> @name Fluids participating in shear and bulk viscosity
607 !> @{
608 integer, dimension(2) :: re_size = 0
609 integer :: re_size_max = 0
610 integer, allocatable, dimension(:,:) :: re_idx
611
612# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
613#if defined(MFC_OpenACC)
614# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
615!$acc declare create(Re_size, Re_size_max, Re_idx)
616# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
617#elif defined(MFC_OpenMP)
618# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
619!$omp declare target (Re_size, Re_size_max, Re_idx)
620# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
621#endif
622# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
623 !> @}
624
625 !> Minimum cell widths. These are distinct from the per-cell width arrays named dx, dy, and dz in simulation and post-process.
626 real(wp) :: dx_min, dy_min, dz_min
627
628
629# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
630#if defined(MFC_OpenACC)
631# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
632!$acc declare create(sys_size, eqn_idx)
633# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
634#elif defined(MFC_OpenMP)
635# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
636!$omp declare target (sys_size, eqn_idx)
637# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
638#endif
639# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
640
641# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
642#if defined(MFC_OpenACC)
643# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
644!$acc declare create(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
645# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
646#elif defined(MFC_OpenMP)
647# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
648!$omp declare target (shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
649# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
650#endif
651# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
652
653 !> @name Processor coordinates and parallel-IO addressing (identical declaration across all three targets)
654 !> @{
655 integer, allocatable, dimension(:) :: proc_coords !< Processor coordinates in MPI_CART_COMM
656 integer, allocatable, dimension(:) :: start_idx !< Starting cell-center index of local processor in global grid
657 integer :: num_procs_x = 1 !< Number of MPI ranks in x-direction
658 integer :: num_procs_y = 1 !< Number of MPI ranks in y-direction
659 integer :: num_procs_z = 1 !< Number of MPI ranks in z-direction
660 !> @}
661
662 !> @name MPI info for parallel IO with Lustre file systems (identical across all three targets)
663 !> @{
664 character(len=name_len) :: mpiiofs
665 integer :: mpi_info_int
666 !> @}
667
668contains
669
670 !> Initialize equation-index state (eqn_idx and sys_size) from the namelist parameters. This is the shared skeleton: it covers
671 !! the model_eqns dispatch, all eqn_idx field assignments, and the hypoelastic/surface-tension/chemistry extensions.
672 !!
673 !! @param nmom_in Number of carried moments per R0 location (per-target: pre/post pass an
674 !! integer variable; sim passes its integer parameter nmom = 6). Used only in the 5eq
675 !! qbmm bubble-index calculation (eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in).
676 !!
677 !! Per-target callers are responsible for the following after this call:
678 !! - qbmm_idx allocations and fills (diverge between pre vs sim/post)
679 !! - sim-only: gam = bub_pp%gam_g, nmomsp/nmomtot, Re_idx allocation, GPU_UPDATE calls
680 !! - post-only: beta_idx increment (bubbles_lagrange path), offset/grid allocations
681 impure subroutine s_initialize_eqn_idx(nmom_in, nb_in, six_eqn_alf_is_advected)
682
683 integer, intent(in) :: nmom_in
684 integer, intent(in) :: nb_in
685 logical, intent(in) :: six_eqn_alf_is_advected
686
687 ! Gamma/Pi_inf Model
688
690 ! Annotating structure of the state and flux vectors belonging to the system of
691 ! equations defined by the selected number of spatial dimensions and the gamma/pi_inf model
692 eqn_idx%cont%beg = 1
693 eqn_idx%cont%end = eqn_idx%cont%beg
694 eqn_idx%mom%beg = eqn_idx%cont%end + 1
695 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
696 eqn_idx%E = eqn_idx%mom%end + 1
697 eqn_idx%adv%beg = eqn_idx%E + 1
698 eqn_idx%adv%end = eqn_idx%adv%beg + 1
699 eqn_idx%gamma = eqn_idx%adv%beg
700 eqn_idx%pi_inf = eqn_idx%adv%end
701 sys_size = eqn_idx%adv%end
702
703 ! Volume Fraction Model (5-equation model)
704 else if (model_eqns == model_eqns_5eq) then
705 ! Annotating structure of the state and flux vectors belonging to the system of
706 ! equations defined by the selected number of spatial dimensions and the volume fraction model
707 eqn_idx%cont%beg = 1
708 eqn_idx%cont%end = num_fluids
709 eqn_idx%mom%beg = eqn_idx%cont%end + 1
710 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
711 eqn_idx%E = eqn_idx%mom%end + 1
712
713 if (igr) then
714 ! IGR: volume fractions after energy (N-1 for N fluids; skipped when num_fluids=1)
715 eqn_idx%adv%beg = eqn_idx%E + 1
716 eqn_idx%adv%end = eqn_idx%E + num_fluids - 1
717 else
718 ! WENO/MUSCL + Riemann tracks a total of (N) volume fractions for N fluids
719 eqn_idx%adv%beg = eqn_idx%E + 1
720 eqn_idx%adv%end = eqn_idx%E + num_fluids
721 end if
722
723 sys_size = eqn_idx%adv%end
724
725 if (bubbles_euler) then
726 eqn_idx%alf = eqn_idx%adv%end
727 else
728 eqn_idx%alf = 1
729 end if
730
731 if (bubbles_euler) then
732 eqn_idx%bub%beg = sys_size + 1
733 if (qbmm) then
734 eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in
735 else
736 if (.not. polytropic) then
737 eqn_idx%bub%end = sys_size + 4*nb_in
738 else
739 eqn_idx%bub%end = sys_size + 2*nb_in
740 end if
741 end if
742 sys_size = eqn_idx%bub%end
743
744 if (adv_n) then
745 eqn_idx%n = eqn_idx%bub%end + 1
746 sys_size = eqn_idx%n
747 end if
748 end if
749
750 if (mhd) then
751 eqn_idx%B%beg = sys_size + 1
752 if (n == 0) then
753 eqn_idx%B%end = sys_size + 2 ! 1D: By, Bz
754 else
755 eqn_idx%B%end = sys_size + 3 ! 2D/3D: Bx, By, Bz
756 end if
757 sys_size = eqn_idx%B%end
758 end if
759
760 ! Volume Fraction Model (6-equation model)
761 else if (model_eqns == model_eqns_6eq) then
762 ! Annotating structure of the state and flux vectors belonging to the system of
763 ! equations defined by the selected number of spatial dimensions and the volume fraction model
764 eqn_idx%cont%beg = 1
765 eqn_idx%cont%end = num_fluids
766 eqn_idx%mom%beg = eqn_idx%cont%end + 1
767 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
768 eqn_idx%E = eqn_idx%mom%end + 1
769 eqn_idx%adv%beg = eqn_idx%E + 1
770 eqn_idx%adv%end = eqn_idx%E + num_fluids
771 if (six_eqn_alf_is_advected) eqn_idx%alf = eqn_idx%adv%end
772 eqn_idx%int_en%beg = eqn_idx%adv%end + 1
773 eqn_idx%int_en%end = eqn_idx%adv%end + num_fluids
774 sys_size = eqn_idx%int_en%end
775 end if
776
778 if (hypoelasticity) then
779 eqn_idx%stress%beg = sys_size + 1
780 eqn_idx%stress%end = sys_size + (num_dims*(num_dims + 1))/2
781 if (cyl_coord) eqn_idx%stress%end = eqn_idx%stress%end + 1
782 ! number of stresses is 1 in 1D, 3 in 2D, 4 in 2D-Axisym, 6 in 3D
783 sys_size = eqn_idx%stress%end
784
785 ! shear stress index is 2 for 2D and 2,4,5 for 3D. Readers test the whole array
786 ! rather than the first shear_num entries, so unused slots must not be garbage.
787 shear_indices = 0
788 if (num_dims == 1) then
789 shear_num = 0
790 else if (num_dims == 2) then
791 shear_num = 1
792 shear_indices(1) = eqn_idx%stress%beg - 1 + 2
795 ! Both x-dir and y-dir: flip tau_xy only
796 else if (num_dims == 3) then
797 shear_num = 3
798 shear_indices(1:3) = eqn_idx%stress%beg - 1 + (/2, 4, 5/)
800 shear_bc_flip_indices(1,1:2) = shear_indices((/1, 2/))
801 shear_bc_flip_indices(2,1:2) = shear_indices((/1, 3/))
802 shear_bc_flip_indices(3,1:2) = shear_indices((/2, 3/))
803 ! x-dir: flip tau_xy and tau_xz; y-dir: flip tau_xy and tau_yz; z-dir: flip tau_xz and tau_yz
804 end if
805 end if
806
807 if (surface_tension) then
808 eqn_idx%c = sys_size + 1
809 sys_size = eqn_idx%c
810 end if
811
812 if (cont_damage) then
813 eqn_idx%damage = sys_size + 1
814 sys_size = eqn_idx%damage
815 end if
816
817 if (hyper_cleaning) then
818 eqn_idx%psi = sys_size + 1
819 sys_size = eqn_idx%psi
820 end if
821 end if
822
823 if (chemistry) then
824 eqn_idx%species%beg = sys_size + 1
825 eqn_idx%species%end = sys_size + num_species
826 sys_size = eqn_idx%species%end
827 end if
828
829 ! Resolved here, not with the other fluid properties, because the MPI halo buffers are sized before
830 ! m_variables_conversion runs and conduction adds temperature to the exchange.
831 heat_conduction = any(fluid_pp(:)%k_therm > 0._wp)
832
833 end subroutine s_initialize_eqn_idx
834
835 !> Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three executables;
836 !! num_dims/num_vels are computed here for pre/post unconditionally and for sim only when not case-optimized (in which case they
837 !! are compile-time parameters). Callers must have already populated n and p (grid dimensions).
839
840#ifdef MFC_MPI
841 integer :: ierr !< Generic flag used to identify and report MPI errors
842#endif
843
844 ! Under case-optimization, num_dims and num_vels are compile-time parameters; skip assignment.
845# 279 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
846 num_dims = 1 + min(1, n) + min(1, p)
847
848 if (mhd) then
849 num_vels = 3
850 else
852 end if
853# 287 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
854
855 allocate (proc_coords(1:num_dims))
856
857 if (parallel_io .neqv. .true.) return
858
859#ifdef MFC_MPI
860 ! Option for Lustre file system (Darter/Comet/Stampede)
861 write (mpiiofs, '(A)') '/lustre_'
862 mpiiofs = trim(mpiiofs)
863 call mpi_info_create(mpi_info_int, ierr)
864 call mpi_info_set(mpi_info_int, 'romio_ds_write', 'disable', ierr)
865
866 ! Option for UNIX file system (Hooke/Thomson) WRITE(mpiiofs, '(A)') '/ufs_' mpiiofs = TRIM(mpiiofs) mpi_info_int =
867 ! MPI_INFO_NULL
868
869 allocate (start_idx(1:num_dims))
870#endif
871
873
874 !> Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this first, then handle their
875 !! own extras (qbmm_idx, grid arrays, MPI_IO_DATA null/dealloc - those reference per-target typed variables and stay
876 !! per-target).
878
879 deallocate (proc_coords)
880
881#ifdef MFC_MPI
882 if (parallel_io) then
883 deallocate (start_idx)
884 end if
885#endif
886
888
889 !> Assign default values to the user-input parameters that are shared across all three executables (pre_process, simulation,
890 !! post_process). Per-target defaults (bc_io, cfl_dt, precision, nb, chem_params, bub_pp scalar companions, fluid_pp loop, patch
891 !! arrays, output flags) remain in the per-target s_assign_default_values_to_user_inputs routines, which call this subroutine
892 !! first, then call s_update_cell_bounds(cells_bounds, m, n, p) (cells_bounds is per-target), then apply their own assignments.
893 impure subroutine s_assign_common_defaults
894
895 ! Logistics
896 case_dir = '.'
897
898 ! Computational domain parameters (m/n/p set here; caller must call s_update_cell_bounds after)
899 m = dflt_int; n = 0; p = 0
900
901 cyl_coord = .false.
902
903 ! CFL adaptive time-stepping flags
904 cfl_adap_dt = .false.
905 cfl_const_dt = .false.
906
907 ! Time-stepping bookkeeping
910
911 ! Simulation algorithm
913 relax = .false.
915 hypoelasticity = .false.
916 cont_damage = .false.
917 hyper_cleaning = .false.
918
919 ! Condensed-phase reactive burn
920 reactive_burn = .false.
921 rburn%k = dflt_real
922 rburn%pign = dflt_real
923 rburn%pref = dflt_real
924 rburn%n = dflt_real
925 rburn%ta = 0._wp
926 rburn%substeps = 0
927
928 ! Case-optimization params: under case-opt these are compile-time constants in sim (skip assignment); in pre/post
929 ! MFC_CASE_OPTIMIZATION is always False so the block always executes there.
930# 364 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
935 igr = .false.
937 mhd = .false.
938 relativity = .false.
939 viscous = .false.
940# 374 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
941
942 ! Not a case-optimization parameter, so it stays a runtime variable in every build.
944
945 ! Tait EOS
946
947 ! Bubble modeling flags and parameters
949 bubbles_euler = .false.
950 polydisperse = .false.
952 qbmm = .false.
953 surface_tension = .false.
954 adv_n = .false.
956 bubbles_lagrange = .false.
957
958 ! Immersed boundaries
959 ib = .false.
961
962 ! MHD (background field)
963 bx0 = dflt_real
964
965 ! Output and I/O options
966 parallel_io = .false.
967 file_per_process = .false.
968 down_sample = .false.
969 fft_wrt = .false.
970
971 ! Mixture conversion and sound-speed behavior
973 alt_soundspeed = .false.
974 mixture_err = .false.
979
980 end subroutine s_assign_common_defaults
981
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(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...
logical, dimension(num_fluids_max) alpha_rho_e_wrt
logical, dimension(num_species) chem_wrt_y
real(wp) dx_min
Minimum cell widths. These are distinct from the per-cell width arrays named dx, dy,...
real(wp), dimension(num_fluids_max) schlieren_alpha
logical, dimension(num_fluids_max) alpha_wrt
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.
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...
logical, dimension(num_fluids_max) alpha_rho_wrt
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(:), allocatable fluid_k_therm
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
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 an STL/OBJ immersed boundary model (namelist-safe: scalars + fixed arrays).
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.