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