1# 1 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.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# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 244 "/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# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 377 "/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# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 311 "/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
227# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
288# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
312# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 6 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp" 2
335# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
337# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
339# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
341# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
343# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
345# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
347# 25 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
349 real(
wp),
intent(in) :: a, b
350 real(
wp),
optional,
intent(in) :: tol_input
353 if (
present(tol_input))
then
365 else if (a == 0._wp .or. b == 0._wp .or. (abs(a) + abs(b) < tiny(a)))
then
366 res = (abs(a - b) < (tol*tiny(a)))
368 res = (abs(a - b)/min(abs(a) + abs(b), huge(a)) < tol)
378# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
380# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
382# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
384# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
386# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
388# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
390# 54 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
392 real(wp),
intent(in) :: a
393 real(wp),
intent(in) :: b(:)
394 real(wp),
optional,
intent(in) :: tol_input
400 if (
present(tol_input))
then
403 if (wp == single_precision)
then
423# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
425# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
427# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
429# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
431# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
433# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
435# 85 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
437 real(wp),
intent(in) :: var
446 real(wp),
intent(in) :: var_array(:)
456# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
458# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
460# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
462# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
464# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
466# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
468# 104 "/home/runner/work/MFC/MFC/src/common/m_helper_basic.fpp"
470 real(wp),
intent(in) :: var
479 & bubbles_lagrange, m, n, p, num_dims, igr, ib)
481 integer,
intent(in) :: recon_type, weno_polyn, muscl_polyn
482 integer,
intent(in) :: m, n, p, num_dims, igr_order
483 integer,
intent(inout) :: buff_size
484 type(int_bounds_info),
dimension(3),
intent(inout) :: idwint, idwbuff
485 logical,
intent(in) :: viscous, bubbles_lagrange
486 logical,
intent(in) :: igr
487 logical,
intent(in) :: ib
492 buff_size = (igr_order - 1)/2 + 2
493 else if (recon_type == weno_type)
then
495 buff_size = 2*weno_polyn + 2
497 buff_size = weno_polyn + 2
499 else if (recon_type == muscl_type)
then
500 buff_size = muscl_polyn + 2
504 if (bubbles_lagrange)
then
505 buff_size = max(buff_size, 6)
509 buff_size = max(buff_size, 10)
513 idwint(1)%beg = 0; idwint(2)%beg = 0; idwint(3)%beg = 0
514 idwint(1)%end = m; idwint(2)%end = n; idwint(3)%end = p
516 idwbuff(1)%beg = -buff_size
517 if (num_dims > 1) then; idwbuff(2)%beg = -buff_size; else; idwbuff(2)%beg = 0;
end if
518 if (num_dims > 2) then; idwbuff(3)%beg = -buff_size; else; idwbuff(3)%beg = 0;
end if
520 idwbuff(1)%end = idwint(1)%end - idwbuff(1)%beg
521 idwbuff(2)%end = idwint(2)%end - idwbuff(2)%beg
522 idwbuff(3)%end = idwint(3)%end - idwbuff(3)%beg
530 type(cell_num_bounds),
intent(out) :: bounds
531 integer,
intent(in) :: m, n, p
533 bounds%mn_max = max(m, n)
534 bounds%np_max = max(n, p)
535 bounds%mp_max = max(m, p)
536 bounds%mnp_max = max(m, n, p)
537 bounds%mn_min = min(m, n)
538 bounds%np_min = min(n, p)
539 bounds%mp_min = min(m, p)
540 bounds%mnp_min = min(m, n, p)
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
logical function, public f_all_default(var_array)
Checks if ALL elements of a real(wp) array are of default value.
logical elemental function, public f_is_integer(var)
Checks if a real(wp) variable is an integer.
logical function, public f_approx_in_array(a, b, tol_input)
Check if a wp value approximately matches any element of an array within tolerance.
logical elemental function, public f_approx_equal(a, b, tol_input)
Check if two floating point numbers of wp are within tolerance.
elemental subroutine, public s_update_cell_bounds(bounds, m, n, p)
Updates the min and max number of cells in each set of axes.
subroutine, public s_configure_coordinate_bounds(recon_type, weno_polyn, muscl_polyn, igr_order, buff_size, idwint, idwbuff, viscous, bubbles_lagrange, m, n, p, num_dims, igr, ib)
Compute ghost-cell buffer size and set interior/buffered coordinate index bounds.
logical elemental function, public f_is_default(var)
Checks if a real(wp) variable is of default value.
Working-precision kind selection (half/single/double) and corresponding MPI datatype parameters.
integer, parameter wp
Change to single_precision if needed.
integer, parameter single_precision