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# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
52# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
53# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
54# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
78# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
86# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
164# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
165# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
166# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
186# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
188# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
192# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
194# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
196# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
198# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
244# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
246# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
248# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
250# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
252# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
254# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
257# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
313# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
316# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
318# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
329# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
335# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
338# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
340# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
342# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344# 8 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp" 2
370# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
371#if defined(MFC_OpenACC)
372# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
374# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
375#elif defined(MFC_OpenMP)
376# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
378# 32 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
386 integer :: i,
j, sys_size_alloc
387 logical,
intent(in),
optional :: use_dirichlet_buffers
392# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
393#if defined(MFC_OpenACC)
394# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
396# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
397#elif defined(MFC_OpenMP)
398# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
400# 44 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
407 use iso_fortran_env,
only: output_unit
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"
411 print *,
'm_boundary_common.fpp:46: ',
'@:ALLOCATE(bc_buffers(1:3, 1:2))'
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 call flush (output_unit)
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"
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"
424# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
426# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
427#if defined(MFC_OpenACC)
428# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
430# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
431#elif defined(MFC_OpenMP)
432# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
434# 46 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
438 sys_size_alloc = sys_size
439 if (chemistry .or. heat_conduction) sys_size_alloc = sys_size + 1
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"
445 use iso_fortran_env,
only: output_unit
446# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
448# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
449 print *,
'm_boundary_common.fpp:52: ',
'@:ALLOCATE(bc_buffers(1, 1)%sf(1:sys_size_alloc, 0:n, 0:p))'
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 call flush (output_unit)
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"
458# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
459 allocate (bc_buffers(1, 1)%sf(1:sys_size_alloc, 0:n, 0:p))
460# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
462# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
464# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
465#if defined(MFC_OpenACC)
466# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
468# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
469#elif defined(MFC_OpenMP)
470# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
472# 52 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
478 use iso_fortran_env,
only: output_unit
479# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
481# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
482 print *,
'm_boundary_common.fpp:53: ',
'@:ALLOCATE(bc_buffers(1, 2)%sf(1:sys_size_alloc, 0:n, 0:p))'
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 call flush (output_unit)
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"
491# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
492 allocate (bc_buffers(1, 2)%sf(1:sys_size_alloc, 0:n, 0:p))
493# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
495# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
497# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
498#if defined(MFC_OpenACC)
499# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
501# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
502#elif defined(MFC_OpenMP)
503# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
505# 53 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
507# 55 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
513 use iso_fortran_env,
only: output_unit
514# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
516# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
517 print *,
'm_boundary_common.fpp:56: ',
'@:ALLOCATE(bc_buffers(2,1)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))'
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 call flush (output_unit)
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"
526# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
527 allocate (bc_buffers(2,1)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))
528# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
530# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
532# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
533#if defined(MFC_OpenACC)
534# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
536# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
537#elif defined(MFC_OpenMP)
538# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
540# 56 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
546 use iso_fortran_env,
only: output_unit
547# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
549# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
550 print *,
'm_boundary_common.fpp:57: ',
'@:ALLOCATE(bc_buffers(2,2)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))'
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 call flush (output_unit)
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"
559# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
560 allocate (bc_buffers(2,2)%sf(-buff_size:m+buff_size,1:sys_size_alloc,0:p))
561# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
563# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
565# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
566#if defined(MFC_OpenACC)
567# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
569# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
570#elif defined(MFC_OpenMP)
571# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
573# 57 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
575# 59 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
581 use iso_fortran_env,
only: output_unit
582# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
584# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
585 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))'
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 call flush (output_unit)
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"
594# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
595 allocate (bc_buffers(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))
596# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
598# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
600# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
601#if defined(MFC_OpenACC)
602# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
604# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
605#elif defined(MFC_OpenMP)
606# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
608# 60 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
614 use iso_fortran_env,
only: output_unit
615# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
617# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
618 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))'
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 call flush (output_unit)
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"
627# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
628 allocate (bc_buffers(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,1:sys_size_alloc))
629# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
631# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
633# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
634#if defined(MFC_OpenACC)
635# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
637# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
638#elif defined(MFC_OpenMP)
639# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
641# 61 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
644# 64 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
646# 66 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
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"
657 use iso_fortran_env,
only: output_unit
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"
661 print *,
'm_boundary_common.fpp:68: ',
'@:ACC_SETUP_SFs(bc_buffers(i,j))'
662# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
664# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
665 call flush (output_unit)
666# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
674# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
675#if defined(MFC_OpenACC)
676# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
678# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
679#elif defined(MFC_OpenMP)
680# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
685 if (
associated(bc_buffers(i,
j)%sf))
then
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"
689#if defined(MFC_OpenACC)
690# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
692# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
693#elif defined(MFC_OpenMP)
694# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
696# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
698# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
700# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
702# 68 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
708 if (bubbles_lagrange)
then
723# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
724#if defined(MFC_OpenACC)
725# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
727# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
728#elif defined(MFC_OpenMP)
729# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
731# 87 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
739 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
740 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
741 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
742 type(scalar_field),
optional,
intent(inout) :: q_t_sf
749# 105 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
752# 108 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
756# 112 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
759# 115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
767 integer,
intent(in) :: bc_dir, bc_loc
768 type(int_bounds_info),
intent(in) :: bc_bounds
769 type(integer_field),
intent(in) :: bc_type_edge
770 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
771 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
772 type(scalar_field),
optional,
intent(inout) :: q_t_sf
773 integer :: bc_edge, k_beg, k_end, l_beg, l_end
774 integer :: bc_code,
k,
l
776 if (bc_loc == -1)
then
777 bc_edge = bc_bounds%beg
779 bc_edge = bc_bounds%end
783 if (bc_edge >= 0)
then
784 call s_mpi_sendrecv_variables_buffers(q_prim_vf, bc_dir, bc_loc, sys_size, pb_in, mv_in, q_t_sf)
788 if (bc_dir == 1)
then
789 k_beg = 0; k_end = n; l_beg = 0; l_end = p
790 else if (bc_dir == 2)
then
791 k_beg = -buff_size; k_end = m + buff_size; l_beg = 0; l_end = p
793 k_beg = -buff_size; k_end = m + buff_size; l_beg = -buff_size; l_end = n + buff_size
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"
800#if defined(MFC_OpenACC)
801# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
803# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
804#elif defined(MFC_OpenMP)
805# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
807# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
809# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
811# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
813# 151 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
817 if (bc_dir == 1)
then
818 bc_code = int(bc_type_edge%sf(0,
k,
l))
819 else if (bc_dir == 2)
then
820 bc_code = int(bc_type_edge%sf(
k, 0,
l))
822 bc_code = int(bc_type_edge%sf(
k,
l, 0))
825 select case (bc_code)
826 case (bc_char_sup_outflow:bc_ghost_extrap)
827 call s_ghost_cell_extrapolation(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
829 if (bc_dir == 2 .and. bc_loc == -1)
call s_axis(q_prim_vf, pb_in, mv_in,
k,
l, q_t_sf)
831 call s_symmetry(q_prim_vf, bc_dir, bc_loc,
k,
l, pb_in, mv_in, q_t_sf)
833 call s_periodic(q_prim_vf, bc_dir, bc_loc,
k,
l, pb_in, mv_in, q_t_sf)
835 call s_slip_wall(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
836 case (bc_no_slip_wall)
837 call s_no_slip_wall(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
839 call s_dirichlet(q_prim_vf, bc_dir, bc_loc,
k,
l, q_t_sf)
842 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_code <= bc_ghost_extrap) &
843 & .and. .not. (bc_dir == 2 .and. bc_loc == -1 .and. bc_code == bc_axis))
then
844 call s_qbmm_extrapolation(bc_dir, bc_loc,
k,
l, pb_in, mv_in)
849# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
850#if defined(MFC_OpenACC)
851# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
853# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
854#elif defined(MFC_OpenMP)
855# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
857# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
859# 185 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
867 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
868 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
869 type(bc_xyz_info),
intent(in) :: bc
876# 202 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
879# 205 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
883# 209 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
886# 212 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
894 integer,
intent(in) :: bc_dir, bc_loc
895 type(int_bounds_info),
intent(in) :: bc_bounds
896 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
897 type(integer_field),
intent(in) :: bc_type_edge
898 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l, bc_code
900 if (bc_loc == -1)
then
901 bc_edge = bc_bounds%beg
903 bc_edge = bc_bounds%end
906 if (bc_edge >= 0)
then
907 call s_mpi_sendrecv_variables_buffers(c_divs, bc_dir, bc_loc, num_dims + 1)
911 if (bc_dir == 1)
then
912 k_beg = 0; k_end = n; l_beg = 0; l_end = p
913 else if (bc_dir == 2)
then
914 k_beg = -buff_size; k_end = m + buff_size; l_beg = 0; l_end = p
916 k_beg = -buff_size; k_end = m + buff_size; l_beg = -buff_size; l_end = n + buff_size
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"
923#if defined(MFC_OpenACC)
924# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
926# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
927#elif defined(MFC_OpenMP)
928# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
930# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
932# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
934# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
936# 244 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
940 if (bc_dir == 1)
then
941 bc_code = int(bc_type_edge%sf(0,
k,
l))
942 else if (bc_dir == 2)
then
943 bc_code = int(bc_type_edge%sf(
k, 0,
l))
945 bc_code = int(bc_type_edge%sf(
k,
l, 0))
948 select case (bc_code)
950 call s_color_function_periodic(c_divs, bc_dir, bc_loc,
k,
l)
952 call s_color_function_reflective(c_divs, bc_dir, bc_loc,
k,
l)
954 call s_color_function_ghost_cell_extrapolation(c_divs, bc_dir, bc_loc,
k,
l)
959# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
960#if defined(MFC_OpenACC)
961# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
963# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
964#elif defined(MFC_OpenMP)
965# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
967# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
969# 265 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
977 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
978 type(scalar_field),
dimension(1:),
intent(inout) :: jac_sf
985# 281 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
988# 284 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
992# 288 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
995# 291 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1003 integer,
intent(in) :: bc_dir, bc_loc
1004 type(int_bounds_info),
intent(in) :: bc_bounds
1005 type(integer_field),
intent(in) :: bc_type_edge
1006 type(scalar_field),
dimension(1:),
intent(inout) :: jac_sf
1007 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l,
j, bc_code
1009 if (bc_loc == -1)
then
1010 bc_edge = bc_bounds%beg
1012 bc_edge = bc_bounds%end
1015 if (bc_edge >= 0)
then
1016 call s_mpi_sendrecv_variables_buffers(jac_sf, bc_dir, bc_loc, 1)
1020 if (bc_dir == 1)
then
1021 k_beg = 0; k_end = n; l_beg = 0; l_end = p
1022 else if (bc_dir == 2)
then
1023 k_beg = idwbuff(1)%beg; k_end = idwbuff(1)%end; l_beg = 0; l_end = p
1025 k_beg = idwbuff(1)%beg; k_end = idwbuff(1)%end; l_beg = idwbuff(2)%beg; l_end = idwbuff(2)%end
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"
1032#if defined(MFC_OpenACC)
1033# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1035# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1036#elif defined(MFC_OpenMP)
1037# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1039# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1041# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1043# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1045# 323 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1049 if (bc_dir == 1)
then
1050 bc_code = int(bc_type_edge%sf(0,
k,
l))
1051 else if (bc_dir == 2)
then
1052 bc_code = int(bc_type_edge%sf(
k, 0,
l))
1054 bc_code = int(bc_type_edge%sf(
k,
l, 0))
1057 select case (bc_code)
1059 call s_f_igr_periodic(jac_sf, bc_dir, bc_loc,
k,
l)
1060 case (bc_reflective)
1061 call s_f_igr_reflective(jac_sf, bc_dir, bc_loc,
k,
l)
1063 call s_f_igr_ghost_cell_extrapolation(jac_sf, bc_dir, bc_loc,
k,
l)
1068# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1069#if defined(MFC_OpenACC)
1070# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1072# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1073#elif defined(MFC_OpenMP)
1074# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1076# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1078# 344 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1086 & z_cb_in, z_cc_in, dz_in, global_bounds)
1088 type(int_bounds_info),
intent(in) :: x_offset, y_offset, z_offset
1089 real(wp),
contiguous,
intent(inout) :: x_cb_in(-1 - x_offset%beg:)
1090 real(wp),
contiguous,
intent(inout) :: x_cc_in(-buff_size:), dx_in(-buff_size:)
1091 real(wp),
optional,
contiguous,
intent(inout) :: y_cb_in(-1 - y_offset%beg:), z_cb_in(-1 - z_offset%beg:)
1092 real(wp),
optional,
contiguous,
intent(inout) :: y_cc_in(-buff_size:), dy_in(-buff_size:)
1093 real(wp),
optional,
contiguous,
intent(inout) :: z_cc_in(-buff_size:), dz_in(-buff_size:)
1094 type(bounds_info),
optional,
dimension(3),
intent(inout) :: global_bounds
1096 if (
present(global_bounds))
then
1098 call s_mpi_allreduce_min(x_cb_in(-1), global_bounds(1)%beg)
1099 call s_mpi_allreduce_max(x_cb_in(m), global_bounds(1)%end)
1101 call s_mpi_allreduce_min(y_cb_in(-1), global_bounds(2)%beg)
1102 call s_mpi_allreduce_max(y_cb_in(n), global_bounds(2)%end)
1104 call s_mpi_allreduce_min(z_cb_in(-1), global_bounds(3)%beg)
1105 call s_mpi_allreduce_max(z_cb_in(p), global_bounds(3)%end)
1109 global_bounds(1)%beg = x_cb_in(-1); global_bounds(1)%end = x_cb_in(m)
1111 global_bounds(2)%beg = y_cb_in(-1); global_bounds(2)%end = y_cb_in(n)
1113 global_bounds(3)%beg = z_cb_in(-1); global_bounds(3)%end = z_cb_in(p)
1124# 390 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1127# 393 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1131# 397 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1134# 400 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1142 integer,
intent(in) :: num_cells, bc_dir, bc_loc
1143 type(int_bounds_info),
intent(in) :: bc_bounds, offset
1144 real(wp),
contiguous,
intent(inout) :: cell_boundaries(-1 - offset%beg:)
1145 real(wp),
contiguous,
intent(inout) :: cell_centers(-buff_size:), cell_widths(-buff_size:)
1146 integer :: bc_edge, i, source_index
1148 if (bc_loc == -1)
then
1149 bc_edge = bc_bounds%beg
1151 bc_edge = bc_bounds%end
1154 if (bc_edge >= 0)
then
1155 call s_mpi_sendrecv_grid_variable_buffer(cell_boundaries, cell_centers, cell_widths, num_cells, bc_bounds, bc_loc, &
1160 if (bc_edge == bc_axis .and. (bc_dir /= 2 .or. bc_loc == 1))
return
1163 if (bc_loc == -1)
then
1164 select case (bc_edge)
1166 source_index = num_cells - i + 1
1167 case (bc_reflective, bc_axis)
1168 source_index = i - 1
1172 cell_widths(-i) = cell_widths(source_index)
1174 select case (bc_edge)
1176 source_index = i - 1
1177 case (bc_reflective)
1178 source_index = num_cells - i + 1
1180 source_index = num_cells
1182 cell_widths(num_cells + i) = cell_widths(source_index)
1186 if (bc_loc == -1)
then
1187 do i = 1, offset%beg
1188 cell_boundaries(-1 - i) = cell_boundaries(-i) - cell_widths(-i)
1191 cell_centers(-i) = cell_centers(1 - i) - (cell_widths(1 - i) + cell_widths(-i))/2._wp
1194 do i = 1, offset%end
1195 cell_boundaries(num_cells + i) = cell_boundaries(num_cells + i - 1) + cell_widths(num_cells + i)
1198 cell_centers(num_cells + i) = cell_centers(num_cells + i - 1) + (cell_widths(num_cells + i - 1) &
1199 & + cell_widths(num_cells + i))/2._wp
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"
1213 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:474: ',
'@:DEALLOCATE(bc_buffers(1, 1)%sf)'
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 call flush (output_unit)
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"
1228# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1229#if defined(MFC_OpenACC)
1230# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1232# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1233#elif defined(MFC_OpenMP)
1234# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1236# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1238# 474 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1239 deallocate (bc_buffers(1, 1)%sf)
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"
1244 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:475: ',
'@:DEALLOCATE(bc_buffers(1, 2)%sf)'
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 call flush (output_unit)
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"
1259# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1260#if defined(MFC_OpenACC)
1261# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1263# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1264#elif defined(MFC_OpenMP)
1265# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1267# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1269# 475 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1270 deallocate (bc_buffers(1, 2)%sf)
1271# 477 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
1277 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:478: ',
'@:DEALLOCATE(bc_buffers(2, 1)%sf)'
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 call flush (output_unit)
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"
1292# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1293#if defined(MFC_OpenACC)
1294# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1296# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1297#elif defined(MFC_OpenMP)
1298# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1300# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1302# 478 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1303 deallocate (bc_buffers(2, 1)%sf)
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"
1308 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:479: ',
'@:DEALLOCATE(bc_buffers(2, 2)%sf)'
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 call flush (output_unit)
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"
1323# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1324#if defined(MFC_OpenACC)
1325# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1327# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1328#elif defined(MFC_OpenMP)
1329# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1331# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1333# 479 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1334 deallocate (bc_buffers(2, 2)%sf)
1335# 481 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
1341 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:482: ',
'@:DEALLOCATE(bc_buffers(3, 1)%sf)'
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 call flush (output_unit)
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"
1356# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1357#if defined(MFC_OpenACC)
1358# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1360# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1361#elif defined(MFC_OpenMP)
1362# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1364# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1366# 482 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1367 deallocate (bc_buffers(3, 1)%sf)
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"
1372 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:483: ',
'@:DEALLOCATE(bc_buffers(3, 2)%sf)'
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 call flush (output_unit)
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"
1387# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1388#if defined(MFC_OpenACC)
1389# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1391# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1392#elif defined(MFC_OpenMP)
1393# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1395# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1397# 483 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1398 deallocate (bc_buffers(3, 2)%sf)
1400# 486 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1402# 488 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
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"
1408 use iso_fortran_env,
only: output_unit
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 print *,
'm_boundary_common.fpp:489: ',
'@:DEALLOCATE(bc_buffers)'
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 call flush (output_unit)
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"
1423# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1424#if defined(MFC_OpenACC)
1425# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1427# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1428#elif defined(MFC_OpenMP)
1429# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1431# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1433# 489 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1434 deallocate (bc_buffers)
1441 type(scalar_field),
dimension(:),
intent(inout) :: q_beta
1442 type(scalar_field),
dimension(:),
intent(inout) :: kahan_comp
1443 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
1444 integer,
intent(in) :: nvar
1450# 506 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1453# 509 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1457# 513 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1460# 516 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1468 integer,
intent(in) :: bc_dir, bc_loc
1469 type(int_bounds_info),
intent(in) :: bc_bounds
1470 type(integer_field),
intent(in) :: bc_type_edge
1471 type(scalar_field),
dimension(:),
intent(inout) :: q_beta
1472 type(scalar_field),
dimension(:),
intent(inout) :: kahan_comp
1473 integer,
intent(in) :: nvar
1474 integer :: bc_edge, k_beg, k_end, l_beg, l_end,
k,
l, bc_code
1476 if (bc_loc == -1)
then
1477 bc_edge = bc_bounds%beg
1479 bc_edge = bc_bounds%end
1482 if (bc_edge < 0)
then
1483 if (bc_dir == 1)
then
1486 else if (bc_dir == 2)
then
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"
1498#if defined(MFC_OpenACC)
1499# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1501# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1502#elif defined(MFC_OpenMP)
1503# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1505# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1507# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1509# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1511# 549 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1517 if (bc_dir == 3)
then
1518 bc_code = int(bc_type_edge%sf(
k,
l, 0))
1523 select case (bc_code)
1525 call s_beta_periodic(q_beta, kahan_comp, bc_dir, bc_loc,
k,
l, nvar)
1526 case (bc_reflective)
1527 call s_beta_reflective(q_beta, kahan_comp, bc_dir, bc_loc,
k,
l, nvar)
1532# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1533#if defined(MFC_OpenACC)
1534# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1536# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1537#elif defined(MFC_OpenMP)
1538# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1540# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1542# 568 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1548 if (bc_bounds%beg >= 0 .or. bc_bounds%end >= 0)
then
1549 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.
Defines global parameters for the computational domain, simulation algorithm, and initial conditions.
logical bc_io
whether or not to save BC data
MPI communication layer: domain decomposition, halo exchange, reductions, and parallel I/O setup.
Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing.
Integer bounds for variables.