1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
36# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
37# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
38# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
66# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
67# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
69# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
144# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
145# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
146# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
147# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
153# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
174# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
233# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
294# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 55 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 75 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 83 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 107 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 123 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 148 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 154 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
318# 161 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 6 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
321# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
327# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
330# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
331# 7 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
362 if (ib .and. chemistry)
then
371#if !defined(MFC_OpenACC) && !(defined(__PGI) || defined(_CRAYFTN))
373# 47 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
374 call s_prohibit_abort(
"rdma_mpi",
"Unsupported value of rdma_mpi for the current compiler")
375# 47 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
384 character(len=5) :: numstr
389# 59 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
390 call s_prohibit_abort(
"m + 1 < num_stcls_min*weno_order",
"m must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is " // trim(numstr))
391# 59 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
393# 61 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
396# 62 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
397 call s_prohibit_abort(
"n + 1 < min(1, n)*num_stcls_min*weno_order",
"For 2D simulation, n must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is " // trim(numstr))
398# 62 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
400# 65 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
403# 66 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
404 call s_prohibit_abort(
"p + 1 < min(1, p)*num_stcls_min*weno_order",
"For 3D simulation, p must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is " // trim(numstr))
405# 66 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
407# 69 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
414 character(len=5) :: numstr
419# 79 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
420 call s_prohibit_abort(
"m + 1 < num_stcls_min*muscl_order",
"m must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is " // trim(numstr))
421# 79 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
423# 81 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
426# 82 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
427 call s_prohibit_abort(
"n + 1 < min(1, n)*num_stcls_min*muscl_order",
"For 2D simulation, n must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is " // trim(numstr))
428# 82 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
430# 85 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
433# 86 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
434 call s_prohibit_abort(
"p + 1 < min(1, p)*num_stcls_min*muscl_order",
"For 3D simulation, p must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is " // trim(numstr))
435# 86 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
437# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
444#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
445 if (nv_uvm_igr_temps_on_gpu > 3 .or. nv_uvm_igr_temps_on_gpu < 0)
then
446# 96 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
447 call s_prohibit_abort(.or.
"nv_uvm_igr_temps_on_gpu > 3 nv_uvm_igr_temps_on_gpu < 0",
"nv_uvm_igr_temps_on_gpu must be in the range [0, 3]")
448# 96 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
450# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
451 if (nv_uvm_igr_temps_on_gpu == 3 .and. igr_iter_solver == 2)
then
452# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
453 call s_prohibit_abort(.and.
"nv_uvm_igr_temps_on_gpu == 3 igr_iter_solver == 2",
"nv_uvm_igr_temps_on_gpu must be in the range [0, 2] for igr_iter_solver == 2")
454# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
456# 100 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
469 if (patch_ib(i)%inj_species > num_species)
then
470# 112 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
471 call s_prohibit_abort(
"patch_ib(i)%inj_species > num_species",
"patch_ib inj_species must be <= num_species (it indexes the image-point species mass fractions; an out-of-range value writes out of bounds)")
472# 112 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
474# 114 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
Validates simulation input parameters for consistency and supported configurations.
impure subroutine, public s_check_inputs
Checks compatibility of parameters in the input file. Used by the simulation stage.
impure subroutine s_check_inputs_ib_injection
Validates that each burning immersed-boundary patch injects a species index within the mechanism....
impure subroutine s_check_inputs_weno
Checks constraints on WENO scheme parameters.
impure subroutine s_check_inputs_muscl
Validate that the grid resolution is sufficient for the MUSCL reconstruction order.
impure subroutine s_check_inputs_compilers
Checks constraints on compiler options.
impure subroutine s_check_inputs_nvidia_uvm
Validate NVIDIA unified virtual memory configuration parameters.
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter num_stcls_min
Minimum # of stencils.
integer, parameter recon_type_muscl
integer, parameter recon_type_weno
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
elemental subroutine, public s_int_to_str(i, res)
Convert an integer to its trimmed string representation.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.