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# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 329 "/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# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
226# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
228# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
232# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
267# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
273# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289# 6 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
290# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
296# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
299# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
300# 7 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
307 use m_mpi_proxy !< message passing interface (mpi) module proxy
342#if !defined(MFC_OpenACC) && !(defined(__PGI) || defined(_CRAYFTN))
344# 49 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
345 call s_prohibit_abort(
"rdma_mpi",
"Unsupported value of rdma_mpi for the current compiler")
346# 49 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
353 character(len=5) :: numstr
357# 58 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
358 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))
359# 58 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
361# 60 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
363# 60 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
364 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))
365# 60 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
367# 62 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
369# 62 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
370 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))
371# 62 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
373# 64 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
378 character(len=5) :: numstr
382# 71 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
383 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))
384# 71 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
386# 73 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
388# 73 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
389 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))
390# 73 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
392# 75 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
394# 75 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
395 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))
396# 75 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
398# 77 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
404#ifdef MFC_SINGLE_PRECISION
406# 83 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
407 call s_prohibit_abort(.not..neqv..or..and.
" (cyl_coord .true. (cyl_coord p == 0))",
"Fully 3D cylindrical grid (geometry = 3) is not supported in single precision.")
408# 83 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
417# 90 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
418 call s_prohibit_abort(
"dt <= 0",
"")
419# 90 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
425#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
427# 96 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
428 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]")
429# 96 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
431# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
433# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
434 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")
435# 98 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
437# 100 "/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_time_stepping
Checks constraints on time stepping parameters.
impure subroutine s_check_inputs_weno
Checks constraints on WENO scheme parameters.
impure subroutine s_check_inputs_muscl
Validates that the grid resolution is sufficient for the MUSCL reconstruction order.
impure subroutine s_check_inputs_geometry_precision
Checks constraints on geometry and precision.
impure subroutine s_check_inputs_compilers
Checks constraints on compiler options.
impure subroutine s_check_inputs_nvidia_uvm
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
logical igr
Use information geometric regularization.
integer recon_type
Reconstruction Type.
integer muscl_order
Order of the MUSCL reconstruction.
integer weno_order
Order of the WENO reconstruction.
integer nv_uvm_igr_temps_on_gpu
real(wp) dt
Size of the time-step.
integer igr_iter_solver
IGR elliptic solver.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
elemental subroutine, public s_int_to_str(i, res)
Converts an integer to its trimmed string representation.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.