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# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
38# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
39# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
40# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
68# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
69# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
71# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
146# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
147# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
148# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
151# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
176# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
235# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
291# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
294# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
296# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
301# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
304# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
307# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
313# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
318# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322# 8 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp" 2
331 use mpi !< message passing interface (mpi) module
352 do i = 1, num_patches_max
353 if (i <= num_ibs)
then
355 if (patch_ib(i)%geometry == dflt_int)
then
356# 40 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
357 call s_prohibit_abort(
"patch_ib(i)%geometry == dflt_int",
"IB patch undefined. patch_ib("//trim(
istr)//
")%geometry must be set.")
358# 40 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
362 if (patch_ib(i)%geometry == 2)
then
364 else if (patch_ib(i)%geometry == 3)
then
366 else if (patch_ib(i)%geometry == 8)
then
368 else if (patch_ib(i)%geometry == 9)
then
370 else if (patch_ib(i)%geometry == 4)
then
372 else if (patch_ib(i)%geometry == 11)
then
374 else if (patch_ib(i)%geometry == 10)
then
376 else if (patch_ib(i)%geometry == 5 .or. patch_ib(i)%geometry == 12)
then
378 else if (patch_ib(i)%geometry == 6)
then
381 call s_prohibit_abort(
"Invalid IB patch", &
382 &
"patch_ib(" // trim(
istr) //
")%geometry must be " //
"2-4, 8-10, 11 or 12.")
385 if (patch_ib(i)%geometry /= dflt_int)
then
386# 66 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
387 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.")
388# 66 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
390# 69 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
401 integer,
intent(in) :: patch_id
405 if (n == 0 .or. p > 0 .or. patch_ib(patch_id)%radius <= 0._wp .or.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid))
then
406# 83 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
407 call s_prohibit_abort(.or..or..or..or.
"n == 0 p > 0 patch_ib(patch_id)%radius <= 0._wp f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid)",
'in circle IB patch ' // trim(
istr))
408# 83 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
410# 85 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
418 integer,
intent(in) :: patch_id
422 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.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid))
then
423# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
424 call s_prohibit_abort(.or..or..or..or..or.
"n == 0 p > 0 patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid)",
'in ellipse IB patch ' // trim(
istr))
425# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
427# 99 "/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)%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)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid))
then
440# 110 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
441 call s_prohibit_abort(.or..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)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid)",
'in airfoil IB patch ' // trim(
istr))
442# 110 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
444# 116 "/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)%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)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid) .or.
f_is_default(patch_ib(patch_id)%z_centroid) .or.
f_is_default(patch_ib(patch_id)%length_z))
then
457# 127 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
458 call s_prohibit_abort(.or..or..or..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)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid) f_is_default(patch_ib(patch_id)%z_centroid) f_is_default(patch_ib(patch_id)%length_z)",
'in 3d airfoil IB patch ' // trim(
istr))
459# 127 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
461# 134 "/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.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid) .or. patch_ib(patch_id)%length_x <= 0._wp .or. patch_ib(patch_id)%length_y <= 0._wp)
then
474# 145 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
475 call s_prohibit_abort(.or..or..or..or..or.
"n == 0 p > 0 f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid) patch_ib(patch_id)%length_x <= 0._wp patch_ib(patch_id)%length_y <= 0._wp",
'in rectangle IB patch ' // trim(
istr))
476# 145 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
478# 148 "/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.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid) .or.
f_is_default(patch_ib(patch_id)%z_centroid) .or. patch_ib(patch_id)%radius <= 0._wp)
then
491# 159 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
492 call s_prohibit_abort(.or..or..or..or..or.
"n == 0 p == 0 f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid) f_is_default(patch_ib(patch_id)%z_centroid) patch_ib(patch_id)%radius <= 0._wp",
'in sphere IB patch ' // trim(
istr))
493# 159 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
495# 162 "/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.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid) .or.
f_is_default(patch_ib(patch_id)%z_centroid) .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
508# 173 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
509 call s_prohibit_abort(.or..or..or..or..or..or..or.
"n == 0 p == 0 f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid) f_is_default(patch_ib(patch_id)%z_centroid) 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))
510# 173 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
512# 177 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
520 integer,
intent(in) :: patch_id
524 if (p == 0 .or.
f_is_default(patch_ib(patch_id)%x_centroid) .or.
f_is_default(patch_ib(patch_id)%y_centroid) .or.
f_is_default(patch_ib(patch_id)%z_centroid) .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
525# 188 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
526 call s_prohibit_abort(.or..or..or..or..and..and..or.
"p == 0 f_is_default(patch_ib(patch_id)%x_centroid) f_is_default(patch_ib(patch_id)%y_centroid) f_is_default(patch_ib(patch_id)%z_centroid) (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))
527# 188 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
529# 192 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
531 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
532# 193 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
533 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))
534# 193 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
536# 199 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
544 integer,
intent(in) :: patch_id
546 character(len=10) :: midstr
550 mid = patch_ib(patch_id)%model_id
553 if (mid <= 0 .or. mid > num_stl_models)
then
554# 215 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
555 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]')
556# 215 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
558# 217 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
560 if (stl_models(mid)%model_filepath == dflt_char)
then
561# 218 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
562 call s_prohibit_abort(
"stl_models(mid)%model_filepath == dflt_char",
'Empty model file path for stl_models('//trim(midstr)//
')')
563# 218 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
566 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
567# 220 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
568 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) //
')')
569# 220 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
571# 222 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
578 integer,
intent(in) :: patch_id
583# 232 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
584 call s_prohibit_abort(.not..or..not..or..not..or..not..or..not..or..not..or..not.
"( f_is_default(patch_ib(patch_id)%x_centroid)) ( f_is_default(patch_ib(patch_id)%y_centroid)) ( f_is_default(patch_ib(patch_id)%z_centroid)) ( 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))
585# 232 "/home/runner/work/MFC/MFC/src/pre_process/m_check_ib_patches.fpp"
587# 237 "/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)
Checks 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.