1# 1 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
8# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
9# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
10# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
11# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
14# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
18# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
25# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
26# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
27# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
29# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
49# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
50# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
51# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
65# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
66# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
67# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
69# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
78# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
88# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
90# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
167# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
168# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
169# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
170# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
184# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
185# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
186# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
188# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
191# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
193# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
195# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
197# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
199# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
207# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
209# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
265# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
268# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
307# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
310# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
313# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
316# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
319# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
322# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
324# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
327# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
329# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
334# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
337# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
340# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
343# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
346# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
349# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
351# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
353# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
355# 8 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp" 2
364 use mpi !< message passing interface (mpi) module
385 do i = 1, num_patches_max
386 if (i <= num_ibs)
then
388 if (patch_ib(i)%geometry == dflt_int)
then
389# 40 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
390 call s_prohibit_abort(
"patch_ib(i)%geometry == dflt_int",
"IB patch undefined. patch_ib("//trim(
istr)//
")%geometry must be set.")
391# 40 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
393# 41 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
396 if (patch_ib(i)%geometry == 2)
then
398 else if (patch_ib(i)%geometry == 3)
then
400 else if (patch_ib(i)%geometry == 8)
then
402 else if (patch_ib(i)%geometry == 9)
then
404 else if (patch_ib(i)%geometry == 4)
then
406 else if (patch_ib(i)%geometry == 11)
then
408 else if (patch_ib(i)%geometry == 10)
then
410 else if (patch_ib(i)%geometry == 5 .or. patch_ib(i)%geometry == 12)
then
412 else if (patch_ib(i)%geometry == 6)
then
415 call s_prohibit_abort(
"Invalid IB patch", &
416 &
"patch_ib(" // trim(
istr) //
")%geometry must be " //
"2-4, 8-10, 11 or 12.")
419 if (patch_ib(i)%geometry /= dflt_int)
then
420# 66 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
421 call s_prohibit_abort(
"patch_ib(i)%geometry /= dflt_int",
"Inactive IB patch defined. " //
"patch_ib(" // trim(
istr) //
")%geometry must not be set for inactive patches.")
422# 66 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
424# 69 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
435 integer,
intent(in) :: patch_id
439 if (n == 0 .or. p > 0 .or. patch_ib(patch_id)%radius <= 0._wp)
then
440# 83 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
441 call s_prohibit_abort(.or..or.
"n == 0 p > 0 patch_ib(patch_id)%radius <= 0._wp",
'in circle IB patch ' // trim(
istr))
442# 83 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
444# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
452 integer,
intent(in) :: patch_id
456 if (n == 0 .or. p > 0 .or. patch_ib(patch_id)%length_x <= 0._wp .or. patch_ib(patch_id)%length_y <= 0._wp)
then
457# 95 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
458 call s_prohibit_abort(.or..or..or.
"n == 0 p > 0 patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp",
'in ellipse IB patch ' // trim(
istr))
459# 95 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
461# 97 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
469 integer,
intent(in) :: patch_id
473 if (n == 0 .or. p > 0 .or. patch_ib(patch_id)%airfoil_id <= 0 .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%c <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%p <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%t <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%m <= 0._wp)
then
474# 108 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
475 call s_prohibit_abort(.or..or..or..or..or..or.
"n == 0 p > 0 patch_ib(patch_id)%airfoil_id <= 0 ib_airfoil(patch_ib(patch_id)%airfoil_id)%c <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%p <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%t <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%m <= 0._wp",
'in airfoil IB patch ' // trim(
istr))
476# 108 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
478# 113 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
486 integer,
intent(in) :: patch_id
490 if (n == 0 .or. p == 0 .or. patch_ib(patch_id)%airfoil_id <= 0 .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%c <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%p <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%t <= 0._wp .or. ib_airfoil(patch_ib(patch_id)%airfoil_id)%m <= 0._wp .or.
f_is_default(patch_ib(patch_id)%length_z))
then
491# 124 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
492 call s_prohibit_abort(.or..or..or..or..or..or..or.
"n == 0 p == 0 patch_ib(patch_id)%airfoil_id <= 0 ib_airfoil(patch_ib(patch_id)%airfoil_id)%c <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%p <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%t <= 0._wp ib_airfoil(patch_ib(patch_id)%airfoil_id)%m <= 0._wp f_is_default(patch_ib(patch_id)%length_z)",
'in 3d airfoil IB patch ' // trim(
istr))
493# 124 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
495# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
503 integer,
intent(in) :: patch_id
507 if (n == 0 .or. p > 0 .or. patch_ib(patch_id)%length_x <= 0._wp .or. patch_ib(patch_id)%length_y <= 0._wp)
then
508# 141 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
509 call s_prohibit_abort(.or..or..or.
"n == 0 p > 0 patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp",
'in rectangle IB patch ' // trim(
istr))
510# 141 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
512# 143 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
520 integer,
intent(in) :: patch_id
524 if (n == 0 .or. p == 0 .or. patch_ib(patch_id)%radius <= 0._wp)
then
525# 154 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
526 call s_prohibit_abort(.or..or.
"n == 0 p == 0 patch_ib(patch_id)%radius <= 0._wp",
'in sphere IB patch ' // trim(
istr))
527# 154 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
529# 155 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
537 integer,
intent(in) :: patch_id
541 if (n == 0 .or. p == 0 .or. patch_ib(patch_id)%length_x <= 0._wp .or. patch_ib(patch_id)%length_y <= 0._wp .or. patch_ib(patch_id)%length_z <= 0._wp)
then
542# 166 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
543 call s_prohibit_abort(.or..or..or..or.
"n == 0 p == 0 patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp patch_ib(patch_id)%length_z <= 0._wp",
'in cuboid IB patch ' // trim(
istr))
544# 166 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
546# 168 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
554 integer,
intent(in) :: patch_id
558 if (p == 0 .or. (patch_ib(patch_id)%length_x <= 0._wp .and. patch_ib(patch_id)%length_y <= 0._wp .and. patch_ib(patch_id)%length_z <= 0._wp) .or. patch_ib(patch_id)%radius <= 0._wp)
then
559# 179 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
560 call s_prohibit_abort(.or..and..and..or.
"p == 0 (patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp patch_ib(patch_id)%length_z <= 0._wp) patch_ib(patch_id)%radius <= 0._wp",
'in cylinder IB patch ' // trim(
istr))
561# 179 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
563# 182 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
565 if ((patch_ib(patch_id)%length_x > 0._wp .and. ((.not.
f_is_default(patch_ib(patch_id)%length_y)) .or. (.not.
f_is_default(patch_ib(patch_id)%length_z)))) .or. (patch_ib(patch_id)%length_y > 0._wp .and. ((.not.
f_is_default(patch_ib(patch_id)%length_x)) .or. (.not.
f_is_default(patch_ib(patch_id)%length_z)))) .or. (patch_ib(patch_id)%length_z > 0._wp .and. ((.not.
f_is_default(patch_ib(patch_id)%length_x)) .or. (.not.
f_is_default(patch_ib(patch_id)%length_y)))))
then
566# 183 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
567 call s_prohibit_abort(.and..not..or..not..or..and..not..or..not..or..and..not..or..not.
"(patch_ib(patch_id)%length_x > 0._wp (( f_is_default(patch_ib(patch_id)%length_y)) ( f_is_default(patch_ib(patch_id)%length_z)))) (patch_ib(patch_id)%length_y > 0._wp (( f_is_default(patch_ib(patch_id)%length_x)) ( f_is_default(patch_ib(patch_id)%length_z)))) (patch_ib(patch_id)%length_z > 0._wp (( f_is_default(patch_ib(patch_id)%length_x)) ( f_is_default(patch_ib(patch_id)%length_y))))",
'in cylinder IB patch ' // trim(
istr))
568# 183 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
570# 189 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
578 integer,
intent(in) :: patch_id
580 character(len=10) :: midstr
584 mid = patch_ib(patch_id)%model_id
587 if (mid <= 0 .or. mid > num_stl_models)
then
588# 205 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
589 call s_prohibit_abort(.or.
"mid <= 0 mid > num_stl_models",
'patch_ib('//trim(
istr)//
')%model_id='//trim(midstr)//
' must be in [1, num_stl_models]')
590# 205 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
592# 207 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
594 if (stl_models(mid)%model_filepath == dflt_char)
then
595# 208 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
596 call s_prohibit_abort(
"stl_models(mid)%model_filepath == dflt_char",
'Empty model file path for stl_models('//trim(midstr)//
')')
597# 208 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
599# 209 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
601 if (stl_models(mid)%model_scale(1) <= 0._wp .or. stl_models(mid)%model_scale(2) <= 0._wp .or. stl_models(mid)%model_scale(3) <= 0._wp)
then
602# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
603 call s_prohibit_abort(.or..or.
"stl_models(mid)%model_scale(1) <= 0._wp stl_models(mid)%model_scale(2) <= 0._wp stl_models(mid)%model_scale(3) <= 0._wp",
'Negative scale in stl_models(' // trim(midstr) //
')')
604# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
606# 212 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
613 integer,
intent(in) :: patch_id
618# 222 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
619 call s_prohibit_abort(.not..or..not..or..not..or..not.
"( f_is_default(patch_ib(patch_id)%length_x)) ( f_is_default(patch_ib(patch_id)%length_y)) ( f_is_default(patch_ib(patch_id)%length_z)) ( f_is_default(patch_ib(patch_id)%radius))",
'in inactive IB patch ' // trim(
istr))
620# 222 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
622# 225 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
Validates geometry parameters and constraints for immersed boundary patches.
impure subroutine s_check_circle_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the circle patch have been consistently inputted.
impure subroutine s_check_rectangle_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the rectangle patch have been consistently inputted.
impure subroutine, public s_check_ib_patches
Validate the geometry parameters of all active and inactive immersed boundary patches.
impure subroutine s_check_sphere_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the sphere patch have been consistently inputted.
impure subroutine s_check_ellipse_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the ellipse patch have been consistently inputted.
impure subroutine s_check_cylinder_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the cylinder patch have been consistently inputted.
impure subroutine s_check_model_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the model patch have been consistently inputted.
impure subroutine s_check_airfoil_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the airfoil patch have been consistently inputted.
impure subroutine s_check_inactive_ib_patch_geometry(patch_id)
Verify that inactive IB patch geometry parameters remain at defaults.
impure subroutine s_check_3d_airfoil_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the 3D airfoil patch have been consistently inputted.
impure subroutine s_check_cuboid_ib_patch_geometry(patch_id)
Verify that the geometric parameters of the cuboid patch have been consistently inputted.
Platform-specific file and directory operations: create, delete, inquire, getcwd, and basename.
Writes grid and initial condition data to serial or parallel output files.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Defines global parameters for the computational domain, simulation algorithm, and initial conditions.
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.
Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing.