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