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# 145 "/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# 145 "/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# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 377 "/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# 145 "/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# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
318# 163 "/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
365 if (chemistry .and. chem_params%reaction_substeps < 0)
then
366# 40 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
367 call s_prohibit_abort(.and.
"chemistry chem_params%reaction_substeps < 0",
"chem_params%reaction_substeps must be >= 0 (0 = reaction source in the flow RHS; > 0 = operator-split sub-stepping)")
368# 40 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
370# 42 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
372 if (chemistry .and. igr .and. chem_params%reaction_substeps > 0)
then
373# 43 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
374 call s_prohibit_abort(.and..and.
"chemistry igr chem_params%reaction_substeps > 0",
"operator-split reaction sub-stepping (reaction_substeps > 0) is not supported with igr: the reactor reads the post-flow (rho, e, T) state, which the IGR update path does not guarantee")
375# 43 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
377# 45 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
379 if (chemistry .and. chem_params%adap_substeps .and. chem_params%reaction_substeps < 1)
then
380# 46 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
381 call s_prohibit_abort(.and..and.
"chemistry chem_params%adap_substeps chem_params%reaction_substeps < 1",
"chem_params%adap_substeps requires reaction_substeps >= 1 (the operator-split floor)")
382# 46 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
384# 48 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
386 if (chemistry .and. chem_params%adap_substeps .and. chem_params%reaction_substeps_max < chem_params%reaction_substeps)
then
387# 49 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
388 call s_prohibit_abort(.and..and.
"chemistry chem_params%adap_substeps chem_params%reaction_substeps_max < chem_params%reaction_substeps",
"chem_params%reaction_substeps_max must be >= reaction_substeps when adap_substeps = T")
389# 49 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
391# 52 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
393 if (ib_state_wrt .and. .not. ib)
then
394# 53 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
395 call s_prohibit_abort(.and..not.
"ib_state_wrt ib",
"ib_state_wrt requires ib to be enabled")
396# 53 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
398 if (many_ib_patch_parallelism .and. .not. ib)
then
399# 54 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
400 call s_prohibit_abort(.and..not.
"many_ib_patch_parallelism ib",
"many_ib_patch_parallelism requires ib to be enabled")
401# 54 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
404 if (bf_spatial_support .and. (n == 0 .or. p /= 0))
then
405# 56 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
406 call s_prohibit_abort(.and..or.
"bf_spatial_support (n == 0 p /= 0)",
"bf_spatial_support is implemented for 2D only (it forces mom%beg and mom%beg+1)")
407# 56 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
409# 58 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
411 if (num_particle_clouds > 0)
then
415 if (synthetic_turbulence)
then
424#if !defined(MFC_OpenACC) && !(defined(__PGI) || defined(_CRAYFTN))
426# 73 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
427 call s_prohibit_abort(
"rdma_mpi",
"Unsupported value of rdma_mpi for the current compiler")
428# 73 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
437 character(len=5) :: numstr
441# 84 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
442 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))
443# 84 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
445# 86 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
447# 86 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
448 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))
449# 86 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
451# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
453# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
454 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))
455# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
457# 92 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
464 character(len=5) :: numstr
468# 101 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
469 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))
470# 101 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
472# 103 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
474# 103 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
475 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))
476# 103 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
478# 106 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
480# 106 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
481 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))
482# 106 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
484# 109 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
486# 109 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
487 call s_prohibit_abort(.and.
"muscl_order == muscl_order_first_order int_comp > 0",
"int_comp requires muscl_order >= 2 (muscl_order=1 leaves the reconstruction workspace uninitialised)")
488# 109 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
490# 111 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
499# 118 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
500 call s_prohibit_abort(
"dt <= 0",
"")
501# 118 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
510#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
511 if (nv_uvm_igr_temps_on_gpu > 3 .or. nv_uvm_igr_temps_on_gpu < 0)
then
512# 127 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
513 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]")
514# 127 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
516# 129 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
517 if (nv_uvm_igr_temps_on_gpu == 3 .and. igr_iter_solver == 2)
then
518# 129 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
519 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")
520# 129 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
522# 131 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
531 character(len=5) :: idxstr
533 do i = 1, num_particle_clouds
535 if (particle_cloud(i)%packing_method ==
dflt_int)
then
536# 143 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
537 call s_prohibit_abort(
"particle_cloud(i)%packing_method == dflt_int",
"particle_cloud("//trim(idxstr) //
")%packing_method must be specified (1 = rejection sampling, 2 = lattice)")
538# 143 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
540# 146 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
541 if (particle_cloud(i)%packing_method /= 1 .and. particle_cloud(i)%packing_method /= 2)
then
542# 146 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
543 call s_prohibit_abort(.and.
"particle_cloud(i)%packing_method /= 1 particle_cloud(i)%packing_method /= 2",
"particle_cloud("//trim(idxstr) //
")%packing_method must be 1 (rejection sampling) or 2 (lattice)")
544# 146 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
546# 148 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
556 character(len=5) :: idxstr
558 if (num_turbulent_sources <= 0)
then
559# 159 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
560 call s_prohibit_abort(
"num_turbulent_sources <= 0",
"num_turbulent_sources must be > 0 when synthetic_turbulence is enabled")
561# 159 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
564 do i = 1, num_turbulent_sources
568# 164 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
569 call s_prohibit_abort(
"f_is_default(turb_pos(i, d))",
"turb_pos("//trim(idxstr) //
",:) must be specified for all num_dims when synthetic_turbulence is enabled")
570# 164 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
572# 167 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
574# 167 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
575 call s_prohibit_abort(.or.
"f_is_default(synth_L(i, d)) synth_L(i, d) <= 0._wp",
"synth_L("//trim(idxstr)//
",:) must be positive for all num_dims when synthetic_turbulence is enabled")
576# 167 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
578# 169 "/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_particle_clouds
Checks that each active particle cloud has a valid packing_method specified.
impure subroutine s_check_inputs_weno
Checks constraints on WENO scheme parameters.
impure subroutine s_check_inputs_synthetic_turbulence
Checks that each active synthetic-turbulence forcing zone has a fully specified position and a positi...
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 dflt_int
Default integer value.
integer, parameter num_stcls_min
Minimum # of stencils.
integer, parameter recon_type_muscl
integer, parameter muscl_order_first_order
integer, parameter recon_type_weno
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
real(wp), dimension(num_turb_sources_max, 3) turb_pos
real(wp), dimension(num_turb_sources_max, 3) synth_l
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
logical elemental function, public f_is_default(var)
Check if a real(wp) variable is of default value.
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.