1# 1 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
7# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
13# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
17# 7 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp" 2
18# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
20# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
21# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
48# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
49# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
50# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
78# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
156# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
157# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
158# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
186# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
245# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
306# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 55 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 75 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317# 83 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 107 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 123 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326# 148 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328# 154 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330# 161 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 8 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp" 2
358# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
359#if defined(MFC_OpenACC)
360# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
362# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
363#elif defined(MFC_OpenMP)
364# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
366# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
374 integer :: i,
j, sys_size_alloc
375 logical,
intent(in),
optional :: use_dirichlet_buffers
380# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
381#if defined(MFC_OpenACC)
382# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
384# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
385#elif defined(MFC_OpenMP)
386# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
388# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
392# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
394# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
395 use iso_fortran_env,
only: output_unit
396# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
398# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
399 print *,
'm_boundary_common.fpp:46: ',
'@:ALLOCATE(bc_buffers(1:3, 1:2))'
400# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
402# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
403 call flush (output_unit)
404# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
406# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
408# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
410# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
412# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
414# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
415#if defined(MFC_OpenACC)
416# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
418# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
419#elif defined(MFC_OpenMP)
420# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
422# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
426 sys_size_alloc = sys_size
427 if (chemistry) sys_size_alloc = sys_size + 1
430# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
432# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
433 use iso_fortran_env,
only: output_unit
434# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
436# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
437 print *,
'm_boundary_common.fpp:52: ',
'@:ALLOCATE(bc_buffers(1, 1)%sf(1:sys_size_alloc, 0:n, 0:p))'
438# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
440# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
441 call flush (output_unit)
442# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
444# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
446# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
447 allocate (bc_buffers(1, 1)%sf(1:sys_size_alloc, 0:n, 0:p))
448# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
450# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
452# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
453#if defined(MFC_OpenACC)
454# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
456# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
457#elif defined(MFC_OpenMP)
458# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
460# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
463# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
465# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
466 use iso_fortran_env,
only: output_unit
467# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
469# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
470 print *,
'm_boundary_common.fpp:53: ',
'@:ALLOCATE(bc_buffers(1, 2)%sf(1:sys_size_alloc, 0:n, 0:p))'
471# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
473# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
474 call flush (output_unit)
475# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
477# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
479# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
480 allocate (bc_buffers(1, 2)%sf(1:sys_size_alloc, 0:n, 0:p))
481# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
483# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
485# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
486#if defined(MFC_OpenACC)
487# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
489# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
490#elif defined(MFC_OpenMP)
491# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
493# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
495# 55 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
498# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
500# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
501 use iso_fortran_env,
only: output_unit
502# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
504# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
505 print *,
'm_boundary_common.fpp:56: ',
'@:ALLOCATE(bc_buffers(2,1)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))'
506# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
508# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
509 call flush (output_unit)
510# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
512# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
514# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
515 allocate (bc_buffers(2,1)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))
516# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
518# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
520# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
521#if defined(MFC_OpenACC)
522# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
524# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
525#elif defined(MFC_OpenMP)
526# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
528# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
531# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
533# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
534 use iso_fortran_env,
only: output_unit
535# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
537# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
538 print *,
'm_boundary_common.fpp:57: ',
'@:ALLOCATE(bc_buffers(2,2)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))'
539# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
541# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
542 call flush (output_unit)
543# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
545# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
547# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
548 allocate (bc_buffers(2,2)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))
549# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
551# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
553# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
554#if defined(MFC_OpenACC)
555# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
557# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
558#elif defined(MFC_OpenMP)
559# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
561# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
563# 59 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
566# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
568# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
569 use iso_fortran_env,
only: output_unit
570# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
572# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
573 print *,
'm_boundary_common.fpp:60: ',
'@:ALLOCATE(bc_buffers(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))'
574# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
576# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
577 call flush (output_unit)
578# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
580# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
582# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
583 allocate (bc_buffers(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))
584# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
586# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
588# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
589#if defined(MFC_OpenACC)
590# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
592# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
593#elif defined(MFC_OpenMP)
594# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
596# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
599# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
601# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
602 use iso_fortran_env,
only: output_unit
603# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
605# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
606 print *,
'm_boundary_common.fpp:61: ',
'@:ALLOCATE(bc_buffers(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))'
607# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
609# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
610 call flush (output_unit)
611# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
613# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
615# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
616 allocate (bc_buffers(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))
617# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
619# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
621# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
622#if defined(MFC_OpenACC)
623# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
625# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
626#elif defined(MFC_OpenMP)
627# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
629# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
632# 64 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
634# 66 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
638# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
640# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
642# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
644# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
645 use iso_fortran_env,
only: output_unit
646# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
648# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
649 print *,
'm_boundary_common.fpp:68: ',
'@:ACC_SETUP_SFs(bc_buffers(i,j))'
650# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
652# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
653 call flush (output_unit)
654# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
656# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
658# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
660# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
662# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
663#if defined(MFC_OpenACC)
664# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
666# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
667#elif defined(MFC_OpenMP)
668# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
670# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
672# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
673 if (
associated(bc_buffers(i,
j)%sf))
then
674# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
676# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
677#if defined(MFC_OpenACC)
678# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
680# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
681#elif defined(MFC_OpenMP)
682# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
684# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
686# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
688# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
690# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
696 if (bubbles_lagrange)
then
711# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
712#if defined(MFC_OpenACC)
713# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
715# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
716#elif defined(MFC_OpenMP)
717# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
719# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
727 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
728 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
729 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
730 type(scalar_field),
optional,
intent(inout) :: q_t_sf
737# 105 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
740# 108 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
744# 112 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
747# 115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
755 integer,
intent(in) :: bc_dir, bc_loc
756 type(int_bounds_info),
intent(in) :: bc_bounds
757 type(integer_field),
intent(in) :: bc_type_edge
758 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
759 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
760 type(scalar_field),
optional,
intent(inout) :: q_t_sf
761 integer :: bc_edge, k_beg, k_end, l_beg, l_end
762 integer :: bc_code,
k,
l
764 if (bc_loc == -1)
then
765 bc_edge = bc_bounds%beg
767 bc_edge = bc_bounds%end
771 if (bc_edge >= 0)
then
772 call s_mpi_sendrecv_variables_buffers(q_prim_vf, bc_dir, bc_loc, sys_size, pb_in, mv_in, q_t_sf)
776 if (bc_dir == 1)
then
777 k_beg = 0; k_end = n; l_beg = 0; l_end = p
778 else if (bc_dir == 2)
then
779 k_beg = -buff_size; k_end = m + buff_size; l_beg = 0; l_end = p
781 k_beg = -buff_size; k_end = m + buff_size; l_beg = -buff_size; l_end = n + buff_size
785# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
787# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
788#if defined(MFC_OpenACC)
789# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
791# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
792#elif defined(MFC_OpenMP)
793# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
795# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
797# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
799# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
801# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
805 if (bc_dir == 1)
then
806 bc_code = int(bc_type_edge%sf(0,
k,
l))
807 else if (bc_dir == 2)
then
808 bc_code = int(bc_type_edge%sf(
k, 0,
l))
810 bc_code = int(bc_type_edge%sf(
k,
l, 0))
813 select case (bc_code)
814 case (bc_char_sup_outflow:bc_ghost_extrap)
815 call s_ghost_cell_extrapolation(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
817 if (bc_dir == 2 .and. bc_loc == -1)
call s_axis(q_prim_vf, pb_in, mv_in,
k,
l)
819 call s_symmetry(q_prim_vf, bc_dir, bc_loc,
k,
l, pb_in, mv_in, q_t_sf)
821 call s_periodic(q_prim_vf, bc_dir, bc_loc,
k,
l, pb_in, mv_in, q_t_sf)
823 call s_slip_wall(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
824 case (bc_no_slip_wall)
825 call s_no_slip_wall(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
827 call s_dirichlet(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
830 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_code <= bc_ghost_extrap) &
831 & .and. .not. (bc_dir == 2 .and. bc_loc == -1 .and. bc_code == bc_axis))
then
832 call s_qbmm_extrapolation(bc_dir, bc_loc,
k,
l, pb_in, mv_in)
837# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
838#if defined(MFC_OpenACC)
839# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
841# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
842#elif defined(MFC_OpenMP)
843# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
845# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
847# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
855 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
856 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
857 type(bc_xyz_info),
intent(in) :: bc
864# 202 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
867# 205 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
871# 209 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
874# 212 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
882 integer,
intent(in) :: bc_dir, bc_loc
883 type(int_bounds_info),
intent(in) :: bc_bounds
884 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
885 type(integer_field),
intent(in) :: bc_type_edge
886 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l, bc_code
888 if (bc_loc == -1)
then
889 bc_edge = bc_bounds%beg
891 bc_edge = bc_bounds%end
894 if (bc_edge >= 0)
then
895 call s_mpi_sendrecv_variables_buffers(c_divs, bc_dir, bc_loc, num_dims + 1)
899 if (bc_dir == 1)
then
900 k_beg = 0; k_end = n; l_beg = 0; l_end = p
901 else if (bc_dir == 2)
then
902 k_beg = -buff_size; k_end = m + buff_size; l_beg = 0; l_end = p
904 k_beg = -buff_size; k_end = m + buff_size; l_beg = -buff_size; l_end = n + buff_size
908# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
910# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
911#if defined(MFC_OpenACC)
912# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
914# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
915#elif defined(MFC_OpenMP)
916# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
918# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
920# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
922# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
924# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
928 if (bc_dir == 1)
then
929 bc_code = int(bc_type_edge%sf(0,
k,
l))
930 else if (bc_dir == 2)
then
931 bc_code = int(bc_type_edge%sf(
k, 0,
l))
933 bc_code = int(bc_type_edge%sf(
k,
l, 0))
936 select case (bc_code)
938 call s_color_function_periodic(c_divs, bc_dir, bc_loc,
k,
l)
940 call s_color_function_reflective(c_divs, bc_dir, bc_loc,
k,
l)
942 call s_color_function_ghost_cell_extrapolation(c_divs, bc_dir, bc_loc,
k,
l)
947# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
948#if defined(MFC_OpenACC)
949# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
951# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
952#elif defined(MFC_OpenMP)
953# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
955# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
957# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
965 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
966 type(scalar_field),
dimension(1:),
intent(inout) :: jac_sf
973# 281 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
976# 284 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
980# 288 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
983# 291 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
991 integer,
intent(in) :: bc_dir, bc_loc
992 type(int_bounds_info),
intent(in) :: bc_bounds
993 type(integer_field),
intent(in) :: bc_type_edge
994 type(scalar_field),
dimension(1:),
intent(inout) :: jac_sf
995 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l,
j, bc_code
997 if (bc_loc == -1)
then
998 bc_edge = bc_bounds%beg
1000 bc_edge = bc_bounds%end
1003 if (bc_edge >= 0)
then
1004 call s_mpi_sendrecv_variables_buffers(jac_sf, bc_dir, bc_loc, 1)
1008 if (bc_dir == 1)
then
1009 k_beg = 0; k_end = n; l_beg = 0; l_end = p
1010 else if (bc_dir == 2)
then
1011 k_beg = idwbuff(1)%beg; k_end = idwbuff(1)%end; l_beg = 0; l_end = p
1013 k_beg = idwbuff(1)%beg; k_end = idwbuff(1)%end; l_beg = idwbuff(2)%beg; l_end = idwbuff(2)%end
1017# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1019# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1020#if defined(MFC_OpenACC)
1021# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1023# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1024#elif defined(MFC_OpenMP)
1025# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1027# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1029# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1031# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1033# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1037 if (bc_dir == 1)
then
1038 bc_code = int(bc_type_edge%sf(0,
k,
l))
1039 else if (bc_dir == 2)
then
1040 bc_code = int(bc_type_edge%sf(
k, 0,
l))
1042 bc_code = int(bc_type_edge%sf(
k,
l, 0))
1045 select case (bc_code)
1047 call s_f_igr_periodic(jac_sf, bc_dir, bc_loc,
k,
l)
1048 case (bc_reflective)
1049 call s_f_igr_reflective(jac_sf, bc_dir, bc_loc,
k,
l)
1051 call s_f_igr_ghost_cell_extrapolation(jac_sf, bc_dir, bc_loc,
k,
l)
1056# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1057#if defined(MFC_OpenACC)
1058# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1060# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1061#elif defined(MFC_OpenMP)
1062# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1064# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1066# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1074 & z_cb_in, z_cc_in, dz_in, global_bounds)
1076 type(int_bounds_info),
intent(in) :: x_offset, y_offset, z_offset
1077 real(wp),
contiguous,
intent(inout) :: x_cb_in(-1 - x_offset%beg:)
1078 real(wp),
contiguous,
intent(inout) :: x_cc_in(-buff_size:), dx_in(-buff_size:)
1079 real(wp),
optional,
contiguous,
intent(inout) :: y_cb_in(-1 - y_offset%beg:), z_cb_in(-1 - z_offset%beg:)
1080 real(wp),
optional,
contiguous,
intent(inout) :: y_cc_in(-buff_size:), dy_in(-buff_size:)
1081 real(wp),
optional,
contiguous,
intent(inout) :: z_cc_in(-buff_size:), dz_in(-buff_size:)
1082 type(bounds_info),
optional,
dimension(3),
intent(inout) :: global_bounds
1084 if (
present(global_bounds))
then
1086 call s_mpi_allreduce_min(x_cb_in(-1), global_bounds(1)%beg)
1087 call s_mpi_allreduce_max(x_cb_in(m), global_bounds(1)%end)
1089 call s_mpi_allreduce_min(y_cb_in(-1), global_bounds(2)%beg)
1090 call s_mpi_allreduce_max(y_cb_in(n), global_bounds(2)%end)
1092 call s_mpi_allreduce_min(z_cb_in(-1), global_bounds(3)%beg)
1093 call s_mpi_allreduce_max(z_cb_in(p), global_bounds(3)%end)
1097 global_bounds(1)%beg = x_cb_in(-1); global_bounds(1)%end = x_cb_in(m)
1099 global_bounds(2)%beg = y_cb_in(-1); global_bounds(2)%end = y_cb_in(n)
1101 global_bounds(3)%beg = z_cb_in(-1); global_bounds(3)%end = z_cb_in(p)
1112# 390 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1115# 393 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1119# 397 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1122# 400 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1130 integer,
intent(in) :: num_cells, bc_dir, bc_loc
1131 type(int_bounds_info),
intent(in) :: bc_bounds, offset
1132 real(wp),
contiguous,
intent(inout) :: cell_boundaries(-1 - offset%beg:)
1133 real(wp),
contiguous,
intent(inout) :: cell_centers(-buff_size:), cell_widths(-buff_size:)
1134 integer :: bc_edge, i, source_index
1136 if (bc_loc == -1)
then
1137 bc_edge = bc_bounds%beg
1139 bc_edge = bc_bounds%end
1142 if (bc_edge >= 0)
then
1143 call s_mpi_sendrecv_grid_variable_buffer(cell_boundaries, cell_centers, cell_widths, num_cells, bc_bounds, bc_loc, &
1148 if (bc_edge == bc_axis .and. (bc_dir /= 2 .or. bc_loc == 1))
return
1151 if (bc_loc == -1)
then
1152 select case (bc_edge)
1154 source_index = num_cells - i + 1
1155 case (bc_reflective, bc_axis)
1156 source_index = i - 1
1160 cell_widths(-i) = cell_widths(source_index)
1162 select case (bc_edge)
1164 source_index = i - 1
1165 case (bc_reflective)
1166 source_index = num_cells - i + 1
1168 source_index = num_cells
1170 cell_widths(num_cells + i) = cell_widths(source_index)
1174 if (bc_loc == -1)
then
1175 do i = 1, offset%beg
1176 cell_boundaries(-1 - i) = cell_boundaries(-i) - cell_widths(-i)
1179 cell_centers(-i) = cell_centers(1 - i) - (cell_widths(1 - i) + cell_widths(-i))/2._wp
1182 do i = 1, offset%end
1183 cell_boundaries(num_cells + i) = cell_boundaries(num_cells + i - 1) + cell_widths(num_cells + i)
1186 cell_centers(num_cells + i) = cell_centers(num_cells + i - 1) + (cell_widths(num_cells + i - 1) &
1187 & + cell_widths(num_cells + i))/2._wp
1198# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1200# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1201 use iso_fortran_env,
only: output_unit
1202# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1204# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1205 print *,
'm_boundary_common.fpp:474: ',
'@:DEALLOCATE(bc_buffers(1, 1)%sf)'
1206# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1208# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1209 call flush (output_unit)
1210# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1212# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1214# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1216# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1217#if defined(MFC_OpenACC)
1218# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1220# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1221#elif defined(MFC_OpenMP)
1222# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1224# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1226# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1227 deallocate (bc_buffers(1, 1)%sf)
1229# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1231# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1232 use iso_fortran_env,
only: output_unit
1233# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1235# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1236 print *,
'm_boundary_common.fpp:475: ',
'@:DEALLOCATE(bc_buffers(1, 2)%sf)'
1237# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1239# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1240 call flush (output_unit)
1241# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1243# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1245# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1247# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1248#if defined(MFC_OpenACC)
1249# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1251# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1252#elif defined(MFC_OpenMP)
1253# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1255# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1257# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1258 deallocate (bc_buffers(1, 2)%sf)
1259# 477 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1262# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1264# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1265 use iso_fortran_env,
only: output_unit
1266# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1268# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1269 print *,
'm_boundary_common.fpp:478: ',
'@:DEALLOCATE(bc_buffers(2, 1)%sf)'
1270# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1272# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1273 call flush (output_unit)
1274# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1276# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1278# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1280# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1281#if defined(MFC_OpenACC)
1282# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1284# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1285#elif defined(MFC_OpenMP)
1286# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1288# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1290# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1291 deallocate (bc_buffers(2, 1)%sf)
1293# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1295# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1296 use iso_fortran_env,
only: output_unit
1297# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1299# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1300 print *,
'm_boundary_common.fpp:479: ',
'@:DEALLOCATE(bc_buffers(2, 2)%sf)'
1301# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1303# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1304 call flush (output_unit)
1305# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1307# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1309# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1311# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1312#if defined(MFC_OpenACC)
1313# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1315# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1316#elif defined(MFC_OpenMP)
1317# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1319# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1321# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1322 deallocate (bc_buffers(2, 2)%sf)
1323# 481 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1326# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1328# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1329 use iso_fortran_env,
only: output_unit
1330# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1332# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1333 print *,
'm_boundary_common.fpp:482: ',
'@:DEALLOCATE(bc_buffers(3, 1)%sf)'
1334# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1336# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1337 call flush (output_unit)
1338# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1340# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1342# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1344# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1345#if defined(MFC_OpenACC)
1346# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1348# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1349#elif defined(MFC_OpenMP)
1350# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1352# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1354# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1355 deallocate (bc_buffers(3, 1)%sf)
1357# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1359# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1360 use iso_fortran_env,
only: output_unit
1361# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1363# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1364 print *,
'm_boundary_common.fpp:483: ',
'@:DEALLOCATE(bc_buffers(3, 2)%sf)'
1365# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1367# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1368 call flush (output_unit)
1369# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1371# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1373# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1375# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1376#if defined(MFC_OpenACC)
1377# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1379# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1380#elif defined(MFC_OpenMP)
1381# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1383# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1385# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1386 deallocate (bc_buffers(3, 2)%sf)
1388# 486 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1390# 488 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1393# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1395# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1396 use iso_fortran_env,
only: output_unit
1397# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1399# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1400 print *,
'm_boundary_common.fpp:489: ',
'@:DEALLOCATE(bc_buffers)'
1401# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1403# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1404 call flush (output_unit)
1405# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1407# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1409# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1411# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1412#if defined(MFC_OpenACC)
1413# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1415# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1416#elif defined(MFC_OpenMP)
1417# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1419# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1421# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1422 deallocate (bc_buffers)
1429 type(scalar_field),
dimension(:),
intent(inout) :: q_beta
1430 type(scalar_field),
dimension(:),
intent(inout) :: kahan_comp
1431 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
1432 integer,
intent(in) :: nvar
1438# 506 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1441# 509 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1445# 513 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1448# 516 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1456 integer,
intent(in) :: bc_dir, bc_loc
1457 type(int_bounds_info),
intent(in) :: bc_bounds
1458 type(integer_field),
intent(in) :: bc_type_edge
1459 type(scalar_field),
dimension(:),
intent(inout) :: q_beta
1460 type(scalar_field),
dimension(:),
intent(inout) :: kahan_comp
1461 integer,
intent(in) :: nvar
1462 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l, bc_code
1464 if (bc_loc == -1)
then
1465 bc_edge = bc_bounds%beg
1467 bc_edge = bc_bounds%end
1470 if (bc_edge < 0)
then
1471 if (bc_dir == 1)
then
1474 else if (bc_dir == 2)
then
1483# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1485# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1486#if defined(MFC_OpenACC)
1487# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1489# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1490#elif defined(MFC_OpenMP)
1491# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1493# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1495# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1497# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1499# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1505 if (bc_dir == 3)
then
1506 bc_code = int(bc_type_edge%sf(
k,
l, 0))
1511 select case (bc_code)
1513 call s_beta_periodic(q_beta, kahan_comp, bc_dir, bc_loc,
k,
l, nvar)
1514 case (bc_reflective)
1515 call s_beta_reflective(q_beta, kahan_comp, bc_dir, bc_loc,
k,
l, nvar)
1520# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1521#if defined(MFC_OpenACC)
1522# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1524# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1525#elif defined(MFC_OpenMP)
1526# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1528# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1530# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1536 if (bc_bounds%beg >= 0 .or. bc_bounds%end >= 0)
then
1537 call s_mpi_reduce_beta_variables_buffers(q_beta, kahan_comp, bc_dir, bc_loc, nvar)
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
subroutine, public s_populate_grid_variables_buffers(x_cb_in, x_cc_in, dx_in, x_offset, y_offset, z_offset, y_cb_in, y_cc_in, dy_in, z_cb_in, z_cc_in, dz_in, global_bounds)
Populate the buffers of the grid variables, which are constituted of the cell-boundary locations and ...
subroutine s_populate_grid_bc_direction(cell_boundaries, cell_centers, cell_widths, num_cells, bc_dir, bc_loc, bc_bounds, offset)
Populate cell-boundary, cell-center, and cell-width buffers for one coordinate direction.
impure subroutine s_populate_bc_direction(bc_dir, bc_loc, bc_bounds, bc_type_edge, q_prim_vf, pb_in, mv_in, q_t_sf)
Populate the variable buffers along one direction and location, via MPI exchange for processor bounda...
impure subroutine s_populate_capillary_bc_direction(bc_dir, bc_loc, bc_bounds, bc_type_edge, c_divs)
Populate ghost cell buffers for one capillary BC direction and location, via MPI exchange for process...
impure subroutine s_populate_beta_bc_direction(bc_dir, bc_loc, bc_bounds, bc_type_edge, q_beta, kahan_comp, nvar)
Populate beta variable buffers for one direction and location, by dispatching the per-cell beta BC ro...
impure subroutine s_populate_f_igr_bc_direction(bc_dir, bc_loc, bc_bounds, bc_type_edge, jac_sf)
Populate ghost cell buffers for one IGR Jacobian BC direction and location, via MPI exchange for proc...
impure subroutine, public s_populate_f_igr_buffers(bc_type, jac_sf)
Populate ghost cell buffers for the Jacobian scalar field used in the IGR elliptic solver.
subroutine, public s_finalize_boundary_common_module()
Deallocate boundary condition buffer arrays allocated during module initialization.
impure subroutine, public s_populate_variables_buffers(bc_type, q_prim_vf, pb_in, mv_in, q_t_sf)
Populate the buffers of the primitive variables based on the selected boundary conditions.
type(int_bounds_info), dimension(3) beta_bc_bounds
Lagrangian-bubble beta (void-fraction) buffer bounds (#1290).
impure subroutine, public s_populate_capillary_buffers(c_divs, bc_type, bc)
Populate ghost cell buffers for the color function and its divergence used in capillary surface tensi...
impure subroutine, public s_populate_beta_buffers(q_beta, kahan_comp, bc_type, nvar)
Populate ghost cell buffers of the Lagrangian-bubble beta (void fraction) variables based on the boun...
impure subroutine, public s_initialize_boundary_common_module(use_dirichlet_buffers)
Allocate and set up boundary condition buffer arrays for all coordinate directions.
Boundary condition restart I/O, capillary/IGR buffer population, and grid-variable buffers.
integer, dimension(1:3, 1:2) mpi_bc_type_type
integer, dimension(1:3, 1:2) mpi_bc_buffer_type
Per-cell noncharacteristic boundary condition primitives applied in the ghost cells.
logical dirichlet_from_buffers
type(scalar_field), dimension(:,:), allocatable bc_buffers
Compile-time constant parameters: default values, tolerances, and physical constants.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the post-process: domain geometry, equation of state, and output database setti...
MPI communication layer: domain decomposition, halo exchange, reductions, and parallel I/O setup.
MPI gather and scatter operations for distributing post-process grid and flow-variable data.
Integer bounds for variables.