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/pre_process/generated_decls.fpp" 1
344! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
345!
346real(wp) :: bx0
347real(wp) :: ca
348real(wp) :: r0ref
349real(wp) :: re_inv
350real(wp) :: web
351real(wp) :: a_x
352real(wp) :: a_y
353real(wp) :: a_z
354logical :: adv_n
357character(LEN=path_len) :: case_dir
358logical :: cfl_adap_dt
359logical :: cfl_const_dt
360logical :: cont_damage
361logical :: cyl_coord
362integer :: dist_type
363logical :: down_sample
366logical :: fft_wrt
368real(wp), dimension(num_fluids_max) :: fluid_rho
372logical :: ib
373logical :: igr
374integer :: igr_order
375integer :: loops_x
376integer :: loops_y
377integer :: loops_z
378integer :: m
379logical :: mhd
385integer :: model_eqns
386logical :: mpp_lim
387integer :: muscl_order
388integer :: n
389integer :: n_start
390integer :: n_start_old
391integer :: nb
393integer :: num_fluids
394integer :: num_ibs
395integer :: num_patches
397logical :: old_grid
398logical :: old_ic
399integer :: p
400real(wp) :: palpha_eps
401logical :: parallel_io
402logical :: perturb_flow
405logical :: perturb_sph
407real(wp) :: pi_fac
408real(wp) :: poly_sigma
409logical :: polydisperse
410logical :: polytropic
411logical :: pre_stress
412integer :: precision
413real(wp) :: pref
414real(wp) :: ptgalpha_eps
415logical :: qbmm
416integer :: recon_type
417logical :: relativity
418logical :: relax
419integer :: relax_model
420real(wp) :: rhorv
421real(wp) :: rhoref
422real(wp) :: sigr
423real(wp) :: sigv
424real(wp) :: sigma
426logical :: stretch_x
427logical :: stretch_y
428logical :: stretch_z
430integer :: t_step_old
431integer :: t_step_start
432integer :: thermal
433logical :: viscous
434integer :: weno_order
435real(wp) :: x_a
436real(wp) :: x_b
437real(wp) :: y_a
438real(wp) :: y_b
439real(wp) :: z_a
440real(wp) :: z_b
441type(physical_parameters), dimension(num_fluids_max) :: fluid_pp !< Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus
442type(subgrid_bubble_physical_parameters) :: bub_pp !< Subgrid bubble physical parameters
443type(ic_patch_parameters), dimension(num_patches_max) :: patch_icpp !< IC patch parameters
444type(bc_patch_parameters), dimension(num_bc_patches_max) :: patch_bc !< Boundary condition patch parameters
445type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) :: patch_ib !< Immersed boundary patch parameters
446type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) :: ib_airfoil !< Per-airfoil NACA user inputs
447type(ib_stl_parameters), dimension(num_stl_models_max) :: stl_models !< Per-STL model parameters
449# 25 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
450
451 ! Case-optimization declarations: parameters (under MFC_CASE_OPTIMIZATION) or plain variables for
452 ! num_dims, num_vels, weno_polyn, muscl_polyn, weno_num_stencils, wenojs, igr, etc.
453# 1 "/home/runner/work/MFC/MFC/build/include/pre_process/generated_case_opt_decls.fpp" 1
454! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
455!
456! (no case-optimization declarations for this target)
457# 29 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp" 2
458
459 ! For pre_process and post_process: num_dims and num_vels are declared manually here
460 ! (sim gets them from generated_case_opt_decls.fpp above)
461#ifndef MFC_SIMULATION
462 integer :: num_dims !< Number of spatial dimensions
463 integer :: num_vels !< Number of velocity components (different from num_dims for mhd)
464#endif
465
466 ! For pre_process: weno_polyn and muscl_polyn are declared manually here
467 ! (sim gets them from generated_case_opt_decls.fpp; post does not use them)
468#ifdef MFC_PRE_PROCESS
469 integer :: weno_polyn !< Degree of the WENO polynomials
470 integer :: muscl_polyn !< Degree of the MUSCL polynomials
471#endif
472
473 !> @name Annotations of the structure of the state and flux vectors in terms of the size and configuration of the system of
474 !! equations
475 !> @{
476 integer :: sys_size !< Number of unknowns in system of equations
477 type(eqn_idx_info) :: eqn_idx !< All conserved-variable equation index ranges and scalars
478 integer :: b_size !< Number of elements in the symmetric b tensor, plus one
479 integer :: tensor_size !< Number of elements in the full tensor plus one
480 !> @}
481
482 !> @name Chemistry modeling (Fypp compile-time constant; same value in all targets)
483 !> @{
484 logical, parameter :: chemistry = .false.
485 !> @}
486
487 !> @name Elasticity and shear stress state (identical across all three executables)
488 !> @{
489 logical :: elasticity !< elasticity modeling, true for hyper or hypo
490 integer :: shear_num !< Number of shear stress components
491 integer, dimension(3) :: shear_indices !< Indices of the stress components that represent shear stress
492 integer :: shear_bc_flip_num !< Number of shear stress components to reflect for boundary conditions
493 integer, dimension(3, 2) :: shear_bc_flip_indices !< Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num)
494 !> @}
495
496#ifdef MFC_SIMULATION
497
498# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
499#if defined(MFC_OpenACC)
500# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
501!$acc declare create(sys_size, eqn_idx, b_size, tensor_size)
502# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
503#elif defined(MFC_OpenMP)
504# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
505!$omp declare target (sys_size, eqn_idx, b_size, tensor_size)
506# 68 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
507#endif
508
509# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
510#if defined(MFC_OpenACC)
511# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
512!$acc declare create(shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
513# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
514#elif defined(MFC_OpenMP)
515# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
516!$omp declare target (shear_num, shear_indices, shear_BC_flip_num, shear_BC_flip_indices)
517# 69 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
518#endif
519 ! Device residency for namelist/case-opt state declared above via the generated
520 ! includes: declare directives must live in the declaring module (Cray ftn rejects
521 ! declare-target on use-associated names), so these moved here from simulation.
522
523# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
524#if defined(MFC_OpenACC)
525# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
526!$acc declare create(cyl_coord)
527# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
528#elif defined(MFC_OpenMP)
529# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
530!$omp declare target (cyl_coord)
531# 73 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
532#endif
533
534# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
535#if defined(MFC_OpenACC)
536# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
537!$acc declare create(dt, m, n, p)
538# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
539#elif defined(MFC_OpenMP)
540# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
541!$omp declare target (dt, m, n, p)
542# 74 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
543#endif
544
545# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
546#if defined(MFC_OpenACC)
547# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
548!$acc declare create(cfl_target)
549# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
550#elif defined(MFC_OpenMP)
551# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
552!$omp declare target (cfl_target)
553# 75 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
554#endif
555
556# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
557#if defined(MFC_OpenACC)
558# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
559!$acc declare create(int_comp, ic_eps, ic_beta)
560# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
561#elif defined(MFC_OpenMP)
562# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
563!$omp declare target (int_comp, ic_eps, ic_beta)
564# 76 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
565#endif
566
567# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
568#if defined(MFC_OpenACC)
569# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
570!$acc declare create(muscl_eps)
571# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
572#elif defined(MFC_OpenMP)
573# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
574!$omp declare target (muscl_eps)
575# 77 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
576#endif
577
578# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
579#if defined(MFC_OpenACC)
580# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
581!$acc declare create(mpp_lim, model_eqns, mixture_err, alt_soundspeed)
582# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
583#elif defined(MFC_OpenMP)
584# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
585!$omp declare target (mpp_lim, model_eqns, mixture_err, alt_soundspeed)
586# 78 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
587#endif
588
589# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
590#if defined(MFC_OpenACC)
591# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
592!$acc declare create(avg_state, mp_weno, weno_eps, teno_CT, hypoelasticity)
593# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
594#elif defined(MFC_OpenMP)
595# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
596!$omp declare target (avg_state, mp_weno, weno_eps, teno_CT, hypoelasticity)
597# 79 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
598#endif
599
600# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
601#if defined(MFC_OpenACC)
602# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
603!$acc declare create(hyperelasticity, elasticity, low_Mach)
604# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
605#elif defined(MFC_OpenMP)
606# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
607!$omp declare target (hyperelasticity, elasticity, low_Mach)
608# 80 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
609#endif
610
611# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
612#if defined(MFC_OpenACC)
613# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
614!$acc declare create(cont_damage, hyper_cleaning)
615# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
616#elif defined(MFC_OpenMP)
617# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
618!$omp declare target (cont_damage, hyper_cleaning)
619# 81 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
620#endif
621
622# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
623#if defined(MFC_OpenACC)
624# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
625!$acc declare create(relax, relax_model, palpha_eps, ptgalpha_eps)
626# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
627#elif defined(MFC_OpenMP)
628# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
629!$omp declare target (relax, relax_model, palpha_eps, ptgalpha_eps)
630# 82 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
631#endif
632
633# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
634#if defined(MFC_OpenACC)
635# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
636!$acc declare create(down_sample)
637# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
638#elif defined(MFC_OpenMP)
639# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
640!$omp declare target (down_sample)
641# 83 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
642#endif
643
644# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
645#if defined(MFC_OpenACC)
646# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
647!$acc declare create(fd_order)
648# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
649#elif defined(MFC_OpenMP)
650# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
651!$omp declare target (fd_order)
652# 84 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
653#endif
654
655# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
656#if defined(MFC_OpenACC)
657# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
658!$acc declare create(rhoref, pref)
659# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
660#elif defined(MFC_OpenMP)
661# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
662!$omp declare target (rhoref, pref)
663# 85 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
664#endif
665
666# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
667#if defined(MFC_OpenACC)
668# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
669!$acc declare create(ib, num_ibs)
670# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
671#elif defined(MFC_OpenMP)
672# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
673!$omp declare target (ib, num_ibs)
674# 86 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
675#endif
676
677# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
678#if defined(MFC_OpenACC)
679# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
680!$acc declare create(ib_coefficient_of_friction)
681# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
682#elif defined(MFC_OpenMP)
683# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
684!$omp declare target (ib_coefficient_of_friction)
685# 87 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
686#endif
687
688# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
689#if defined(MFC_OpenACC)
690# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
691!$acc declare create(Ca, Web, Re_inv)
692# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
693#elif defined(MFC_OpenMP)
694# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
695!$omp declare target (Ca, Web, Re_inv)
696# 88 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
697#endif
698
699# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
700#if defined(MFC_OpenACC)
701# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
702!$acc declare create(bubbles_euler, polytropic, polydisperse)
703# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
704#elif defined(MFC_OpenMP)
705# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
706!$omp declare target (bubbles_euler, polytropic, polydisperse)
707# 89 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
708#endif
709
710# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
711#if defined(MFC_OpenACC)
712# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
713!$acc declare create(adv_n, adap_dt, adap_dt_tol, adap_dt_max_iters)
714# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
715#elif defined(MFC_OpenMP)
716# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
717!$omp declare target (adv_n, adap_dt, adap_dt_tol, adap_dt_max_iters)
718# 90 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
719#endif
720
721# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
722#if defined(MFC_OpenACC)
723# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
724!$acc declare create(bubble_model, thermal)
725# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
726#elif defined(MFC_OpenMP)
727# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
728!$omp declare target (bubble_model, thermal)
729# 91 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
730#endif
731
732# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
733#if defined(MFC_OpenACC)
734# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
735!$acc declare create(poly_sigma)
736# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
737#elif defined(MFC_OpenMP)
738# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
739!$omp declare target (poly_sigma)
740# 92 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
741#endif
742
743# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
744#if defined(MFC_OpenACC)
745# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
746!$acc declare create(qbmm, pi_fac)
747# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
748#elif defined(MFC_OpenMP)
749# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
750!$omp declare target (qbmm, pi_fac)
751# 93 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
752#endif
753
754# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
755#if defined(MFC_OpenACC)
756# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
757!$acc declare create(R0ref)
758# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
759#elif defined(MFC_OpenMP)
760# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
761!$omp declare target (R0ref)
762# 94 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
763#endif
764
765# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
766#if defined(MFC_OpenACC)
767# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
768!$acc declare create(acoustic_source, num_source)
769# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
770#elif defined(MFC_OpenMP)
771# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
772!$omp declare target (acoustic_source, num_source)
773# 95 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
774#endif
775
776# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
777#if defined(MFC_OpenACC)
778# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
779!$acc declare create(sigma, surface_tension)
780# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
781#elif defined(MFC_OpenMP)
782# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
783!$omp declare target (sigma, surface_tension)
784# 96 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
785#endif
786
787# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
788#if defined(MFC_OpenACC)
789# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
790!$acc declare create(bubbles_lagrange)
791# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
792#elif defined(MFC_OpenMP)
793# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
794!$omp declare target (bubbles_lagrange)
795# 97 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
796#endif
797
798# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
799#if defined(MFC_OpenACC)
800# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
801!$acc declare create(Bx0)
802# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
803#elif defined(MFC_OpenMP)
804# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
805!$omp declare target (Bx0)
806# 98 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
807#endif
808
809# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
810#if defined(MFC_OpenACC)
811# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
812!$acc declare create(tau_star, cont_damage_s, alpha_bar)
813# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
814#elif defined(MFC_OpenMP)
815# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
816!$omp declare target (tau_star, cont_damage_s, alpha_bar)
817# 99 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
818#endif
819
820# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
821#if defined(MFC_OpenACC)
822# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
823!$acc declare create(hyper_cleaning_speed, hyper_cleaning_tau)
824# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
825#elif defined(MFC_OpenMP)
826# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
827!$omp declare target (hyper_cleaning_speed, hyper_cleaning_tau)
828# 100 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
829#endif
830# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
831
832# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
833#if defined(MFC_OpenACC)
834# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
835!$acc declare create(num_dims, num_vels, weno_polyn, weno_order)
836# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
837#elif defined(MFC_OpenMP)
838# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
839!$omp declare target (num_dims, num_vels, weno_polyn, weno_order)
840# 102 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
841#endif
842
843# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
844#if defined(MFC_OpenACC)
845# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
846!$acc declare create(weno_num_stencils, num_fluids, wenojs)
847# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
848#elif defined(MFC_OpenMP)
849# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
850!$omp declare target (weno_num_stencils, num_fluids, wenojs)
851# 103 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
852#endif
853
854# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
855#if defined(MFC_OpenACC)
856# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
857!$acc declare create(mapped_weno, wenoz, teno, wenoz_q, mhd, relativity)
858# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
859#elif defined(MFC_OpenMP)
860# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
861!$omp declare target (mapped_weno, wenoz, teno, wenoz_q, mhd, relativity)
862# 104 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
863#endif
864
865# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
866#if defined(MFC_OpenACC)
867# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
868!$acc declare create(igr_iter_solver, igr_order, viscous, igr_pres_lim, igr)
869# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
870#elif defined(MFC_OpenMP)
871# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
872!$omp declare target (igr_iter_solver, igr_order, viscous, igr_pres_lim, igr)
873# 105 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
874#endif
875
876# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
877#if defined(MFC_OpenACC)
878# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
879!$acc declare create(recon_type, muscl_order, muscl_polyn, muscl_lim)
880# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
881#elif defined(MFC_OpenMP)
882# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
883!$omp declare target (recon_type, muscl_order, muscl_polyn, muscl_lim)
884# 106 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
885#endif
886# 108 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
887#endif
888
889 !> @name Processor coordinates and parallel-IO addressing (identical declaration across all three targets)
890 !> @{
891 integer, allocatable, dimension(:) :: proc_coords !< Processor coordinates in MPI_CART_COMM
892 integer, allocatable, dimension(:) :: start_idx !< Starting cell-center index of local processor in global grid
893 !> @}
894
895 !> @name MPI info for parallel IO with Lustre file systems (identical across all three targets)
896 !> @{
897 character(len=name_len) :: mpiiofs
898 integer :: mpi_info_int
899 !> @}
900
901contains
902
903 !> Initialize equation-index state (eqn_idx, sys_size, b_size, tensor_size) from the namelist parameters. This is the shared
904 !! skeleton: it covers the model_eqns dispatch, all eqn_idx field assignments, and the elasticity/surface-tension/chemistry
905 !! extensions.
906 !!
907 !! @param nmom_in Number of carried moments per R0 location (per-target: pre/post pass an
908 !! integer variable; sim passes its integer parameter nmom = 6). Used only in the 5eq
909 !! qbmm bubble-index calculation (eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in).
910 !!
911 !! Per-target callers are responsible for the following after this call:
912 !! - qbmm_idx allocations and fills (diverge between pre vs sim/post)
913 !! - sim-only: gam = bub_pp%gam_g, nmomsp/nmomtot, Re_idx allocation, GPU_UPDATE calls
914 !! - post-only: beta_idx increment (bubbles_lagrange path), offset/grid allocations
915 impure subroutine s_initialize_eqn_idx(nmom_in, nb_in)
916
917 integer, intent(in) :: nmom_in
918 integer, intent(in) :: nb_in
919
920 ! Gamma/Pi_inf Model
921
923 ! Annotating structure of the state and flux vectors belonging to the system of
924 ! equations defined by the selected number of spatial dimensions and the gamma/pi_inf model
925 eqn_idx%cont%beg = 1
926 eqn_idx%cont%end = eqn_idx%cont%beg
927 eqn_idx%mom%beg = eqn_idx%cont%end + 1
928 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
929 eqn_idx%E = eqn_idx%mom%end + 1
930 eqn_idx%adv%beg = eqn_idx%E + 1
931 eqn_idx%adv%end = eqn_idx%adv%beg + 1
932 eqn_idx%gamma = eqn_idx%adv%beg
933 eqn_idx%pi_inf = eqn_idx%adv%end
934 sys_size = eqn_idx%adv%end
935
936 ! Volume Fraction Model (5-equation model)
937 else if (model_eqns == model_eqns_5eq) then
938 ! Annotating structure of the state and flux vectors belonging to the system of
939 ! equations defined by the selected number of spatial dimensions and the volume fraction model
940 eqn_idx%cont%beg = 1
941 eqn_idx%cont%end = num_fluids
942 eqn_idx%mom%beg = eqn_idx%cont%end + 1
943 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
944 eqn_idx%E = eqn_idx%mom%end + 1
945
946 if (igr) then
947 ! IGR: volume fractions after energy (N-1 for N fluids; skipped when num_fluids=1)
948 eqn_idx%adv%beg = eqn_idx%E + 1
949 eqn_idx%adv%end = eqn_idx%E + num_fluids - 1
950 else
951 ! WENO/MUSCL + Riemann tracks a total of (N) volume fractions for N fluids
952 eqn_idx%adv%beg = eqn_idx%E + 1
953 eqn_idx%adv%end = eqn_idx%E + num_fluids
954 end if
955
956 sys_size = eqn_idx%adv%end
957
958 if (bubbles_euler) then
959 eqn_idx%alf = eqn_idx%adv%end
960 else
961 eqn_idx%alf = 1
962 end if
963
964 if (bubbles_euler) then
965 eqn_idx%bub%beg = sys_size + 1
966 if (qbmm) then
967 eqn_idx%bub%end = eqn_idx%adv%end + nb_in*nmom_in
968 else
969 if (.not. polytropic) then
970 eqn_idx%bub%end = sys_size + 4*nb_in
971 else
972 eqn_idx%bub%end = sys_size + 2*nb_in
973 end if
974 end if
975 sys_size = eqn_idx%bub%end
976
977 if (adv_n) then
978 eqn_idx%n = eqn_idx%bub%end + 1
979 sys_size = eqn_idx%n
980 end if
981 end if
982
983 if (mhd) then
984 eqn_idx%B%beg = sys_size + 1
985 if (n == 0) then
986 eqn_idx%B%end = sys_size + 2 ! 1D: By, Bz
987 else
988 eqn_idx%B%end = sys_size + 3 ! 2D/3D: Bx, By, Bz
989 end if
990 sys_size = eqn_idx%B%end
991 end if
992
993 ! Volume Fraction Model (6-equation model)
994 else if (model_eqns == model_eqns_6eq) then
995 ! Annotating structure of the state and flux vectors belonging to the system of
996 ! equations defined by the selected number of spatial dimensions and the volume fraction model
997 eqn_idx%cont%beg = 1
998 eqn_idx%cont%end = num_fluids
999 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1000 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1001 eqn_idx%E = eqn_idx%mom%end + 1
1002 eqn_idx%adv%beg = eqn_idx%E + 1
1003 eqn_idx%adv%end = eqn_idx%E + num_fluids
1004#ifdef MFC_SIMULATION
1005 eqn_idx%alf = eqn_idx%adv%end
1006#endif
1007 eqn_idx%int_en%beg = eqn_idx%adv%end + 1
1008 eqn_idx%int_en%end = eqn_idx%adv%end + num_fluids
1009 sys_size = eqn_idx%int_en%end
1010 else if (model_eqns == model_eqns_4eq) then
1011 ! 4-equation model with subgrid bubbles
1012 eqn_idx%cont%beg = 1
1013 eqn_idx%cont%end = 1
1014 eqn_idx%mom%beg = eqn_idx%cont%end + 1
1015 eqn_idx%mom%end = eqn_idx%cont%end + num_vels
1016 eqn_idx%E = eqn_idx%mom%end + 1
1017 eqn_idx%adv%beg = eqn_idx%E + 1
1018 eqn_idx%adv%end = eqn_idx%adv%beg
1019 eqn_idx%alf = eqn_idx%adv%end
1020 sys_size = eqn_idx%adv%end
1021
1022 if (bubbles_euler) then
1023 eqn_idx%bub%beg = sys_size + 1
1024 eqn_idx%bub%end = sys_size + 2*nb_in
1025 if (.not. polytropic) then
1026 eqn_idx%bub%end = sys_size + 4*nb_in
1027 end if
1028 sys_size = eqn_idx%bub%end
1029 end if
1030 end if
1031
1033 if (hypoelasticity .or. hyperelasticity) then
1034 elasticity = .true.
1035 eqn_idx%stress%beg = sys_size + 1
1036 eqn_idx%stress%end = sys_size + (num_dims*(num_dims + 1))/2
1037 if (cyl_coord) eqn_idx%stress%end = eqn_idx%stress%end + 1
1038 ! number of stresses is 1 in 1D, 3 in 2D, 4 in 2D-Axisym, 6 in 3D
1039 sys_size = eqn_idx%stress%end
1040
1041 ! shear stress index is 2 for 2D and 2,4,5 for 3D
1042 if (num_dims == 1) then
1043 shear_num = 0
1044 else if (num_dims == 2) then
1045 shear_num = 1
1046 shear_indices(1) = eqn_idx%stress%beg - 1 + 2
1049 ! Both x-dir and y-dir: flip tau_xy only
1050 else if (num_dims == 3) then
1051 shear_num = 3
1052 shear_indices(1:3) = eqn_idx%stress%beg - 1 + (/2, 4, 5/)
1054 shear_bc_flip_indices(1,1:2) = shear_indices((/1, 2/))
1055 shear_bc_flip_indices(2,1:2) = shear_indices((/1, 3/))
1056 shear_bc_flip_indices(3,1:2) = shear_indices((/2, 3/))
1057 ! x-dir: flip tau_xy and tau_xz; y-dir: flip tau_xy and tau_yz; z-dir: flip tau_xz and tau_yz
1058 end if
1059 end if
1060
1061 if (hyperelasticity) then
1062 ! number of entries in the symmetric b tensor plus the jacobian
1063 b_size = (num_dims*(num_dims + 1))/2 + 1
1064 tensor_size = num_dims**2 + 1
1065 eqn_idx%xi%beg = sys_size + 1
1066 eqn_idx%xi%end = sys_size + num_dims
1067 ! adding equations for the xi field and the elastic energy
1068 sys_size = eqn_idx%xi%end + 1
1069 end if
1070
1071 if (surface_tension) then
1072 eqn_idx%c = sys_size + 1
1073 sys_size = eqn_idx%c
1074 end if
1075
1076 if (cont_damage) then
1077 eqn_idx%damage = sys_size + 1
1078 sys_size = eqn_idx%damage
1079 end if
1080
1081 if (hyper_cleaning) then
1082 eqn_idx%psi = sys_size + 1
1083 sys_size = eqn_idx%psi
1084 end if
1085 end if
1086
1087 if (chemistry) then
1088 eqn_idx%species%beg = sys_size + 1
1089 eqn_idx%species%end = sys_size + num_species
1090 sys_size = eqn_idx%species%end
1091 end if
1092
1093 end subroutine s_initialize_eqn_idx
1094
1095 !> Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three executables;
1096 !! num_dims/num_vels are computed here for pre/post unconditionally and for sim only when not case-optimized (in which case they
1097 !! are compile-time parameters). Callers must have already populated n and p (grid dimensions).
1099
1100#ifdef MFC_MPI
1101 integer :: ierr !< Generic flag used to identify and report MPI errors
1102#endif
1103
1104#ifdef MFC_SIMULATION
1105 ! Under case-optimization, num_dims and num_vels are compile-time parameters; skip assignment.
1106# 328 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1107 num_dims = 1 + min(1, n) + min(1, p)
1108
1109 if (mhd) then
1110 num_vels = 3
1111 else
1113 end if
1114# 336 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1115#else
1116 num_dims = 1 + min(1, n) + min(1, p)
1117
1118 if (mhd) then
1119 num_vels = 3
1120 else
1122 end if
1123#endif
1124
1125 allocate (proc_coords(1:num_dims))
1126
1127 if (parallel_io .neqv. .true.) return
1128
1129#ifdef MFC_MPI
1130 ! Option for Lustre file system (Darter/Comet/Stampede)
1131 write (mpiiofs, '(A)') '/lustre_'
1132 mpiiofs = trim(mpiiofs)
1133 call mpi_info_create(mpi_info_int, ierr)
1134 call mpi_info_set(mpi_info_int, 'romio_ds_write', 'disable', ierr)
1135
1136 ! Option for UNIX file system (Hooke/Thomson) WRITE(mpiiofs, '(A)') '/ufs_' mpiiofs = TRIM(mpiiofs) mpi_info_int =
1137 ! MPI_INFO_NULL
1138
1139 allocate (start_idx(1:num_dims))
1140#endif
1141
1142 end subroutine s_initialize_parallel_io_common
1143
1144 !> Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this first, then handle their
1145 !! own extras (qbmm_idx, grid arrays, MPI_IO_DATA null/dealloc - those reference per-target typed variables and stay
1146 !! per-target).
1148
1149 deallocate (proc_coords)
1150
1151#ifdef MFC_MPI
1152 if (parallel_io) then
1153 deallocate (start_idx)
1154 end if
1155#endif
1156
1158
1159 !> Assign default values to the user-input parameters that are shared across all three executables (pre_process, simulation,
1160 !! post_process). Per-target defaults (bc_io, cfl_dt, precision, nb, chem_params, bub_pp scalar companions, fluid_pp loop, patch
1161 !! arrays, output flags) remain in the per-target s_assign_default_values_to_user_inputs routines, which call this subroutine
1162 !! first, then call s_update_cell_bounds(cells_bounds, m, n, p) (cells_bounds is per-target), then apply their own assignments.
1164
1165 ! Logistics
1166 case_dir = '.'
1167
1168 ! Computational domain parameters (m/n/p set here; caller must call s_update_cell_bounds after)
1169 m = dflt_int; n = 0; p = 0
1170
1171 cyl_coord = .false.
1172
1173 ! CFL adaptive time-stepping flags
1174 cfl_adap_dt = .false.
1175 cfl_const_dt = .false.
1176
1177 ! Time-stepping bookkeeping
1180
1181 ! Simulation algorithm
1183 relax = .false.
1185 hypoelasticity = .false.
1186 hyperelasticity = .false.
1187 elasticity = .false.
1190 cont_damage = .false.
1191 hyper_cleaning = .false.
1192
1193 ! Case-optimization params: under case-opt these are compile-time constants in sim (skip assignment); in pre/post
1194 ! MFC_CASE_OPTIMIZATION is always False so the block always executes there.
1195# 417 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1200 igr = .false.
1201 mhd = .false.
1202 relativity = .false.
1203# 425 "/home/runner/work/MFC/MFC/src/common/m_global_parameters_common.fpp"
1204
1205 ! Tait EOS
1207 pref = dflt_real
1208
1209 ! Bubble modeling flags and parameters
1211 bubbles_euler = .false.
1212 polydisperse = .false.
1214 qbmm = .false.
1215 surface_tension = .false.
1216 adv_n = .false.
1218 bubbles_lagrange = .false.
1219
1220 ! Immersed boundaries
1221 ib = .false.
1223
1224 ! MHD (background field)
1225 bx0 = dflt_real
1226
1227 ! Output and I/O options
1228 parallel_io = .false.
1229 file_per_process = .false.
1230 down_sample = .false.
1231 fft_wrt = .false.
1232
1233 end subroutine s_assign_common_defaults
1234
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter model_eqns_4eq
integer, parameter model_eqns_5eq
integer, parameter name_len
Maximum name length.
integer, parameter dflt_int
Default integer value.
real(wp), parameter dflt_real
Default real value.
integer, parameter recon_type_muscl
integer, parameter recon_type_weno
integer, parameter model_eqns_6eq
integer, parameter model_eqns_gamma_law
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Shared global parameters and equation-index setup for all three executables. Each per-target m_global...
integer muscl_polyn
Degree of the MUSCL polynomials.
type(ib_stl_parameters), dimension(num_stl_models_max) stl_models
Per-STL model parameters.
integer, dimension(:), allocatable start_idx
Starting cell-center index of local processor in global grid.
impure subroutine s_finalize_global_parameters_common
Shared finalize core: deallocate proc_coords and start_idx. Per-target finalize routines call this fi...
type(ic_patch_parameters), dimension(num_patches_max) patch_icpp
IC patch parameters.
type(subgrid_bubble_physical_parameters) bub_pp
Subgrid bubble physical parameters.
integer shear_num
Number of shear stress components.
integer sys_size
Number of unknowns in system of equations.
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
type(bc_patch_parameters), dimension(num_bc_patches_max) patch_bc
Boundary condition patch parameters.
integer, dimension(:), allocatable proc_coords
Processor coordinates in MPI_CART_COMM.
integer num_dims
Number of spatial dimensions.
integer num_vels
Number of velocity components (different from num_dims for mhd).
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
integer, dimension(3, 2) shear_bc_flip_indices
Shear stress BC reflection indices (1:3, 1:shear_BC_flip_num).
real(wp), dimension(num_fluids_max) fluid_rho
impure subroutine s_initialize_eqn_idx(nmom_in, nb_in)
Initialize equation-index state (eqn_idx, sys_size, b_size, tensor_size) from the namelist parameters...
type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) patch_ib
Immersed boundary patch parameters.
impure subroutine s_initialize_parallel_io_common
Configure MPI parallel I/O settings and allocate processor coordinate arrays. Shared across all three...
integer weno_polyn
Degree of the WENO polynomials.
type(ib_airfoil_parameters), dimension(num_ib_airfoils_max) ib_airfoil
Per-airfoil NACA user inputs.
impure subroutine s_assign_common_defaults
Assign default values to the user-input parameters that are shared across all three executables (pre_...
integer b_size
Number of elements in the symmetric b tensor, plus one.
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....
User-input parameters for a NACA 4-digit airfoil (namelist-safe: scalars only).
User-input parameters for an STL/OBJ immersed boundary model (namelist-safe: scalars + fixed arrays).
Derived type adding initial condition (ic) patch parameters as attributes NOTE: The requirements for ...
Derived type annexing the physical parameters (PP) of the fluids. These include the specific heat rat...
Derived type annexing the physical parameters required for sub-grid bubble models.