MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_mpi_proxy.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
2!>
3!! @file
4!! @brief Contains module m_mpi_proxy
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
7! This file exists so that Fypp can be run without generating case.fpp files for
8! each target. This is useful when generating documentation, for example. This
9! should also let MFC be built with CMake directly, without invoking mfc.sh.
10
11! For pre-process.
12# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
13
14! For moving immersed boundaries in simulation
15# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43! New line at end of file is required for FYPP
44# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
45# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
46# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
47# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70! New line at end of file is required for FYPP
71# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
72
73# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78
79# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80
81# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82
83# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149! New line at end of file is required for FYPP
150# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
151# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
152# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
153# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158
159# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162
163# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164
165# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166
167# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176! New line at end of file is required for FYPP
177# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
178
179# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180
181# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182
183# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184
185# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186
187# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234! New line at end of file is required for FYPP
235# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
236
237# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238
239# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240
241# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242
243# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244
245# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246
247# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250
251# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252
253# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256
257# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258
259# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262
263# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264
265# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268
269# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
270
271# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275! New line at end of file is required for FYPP
276# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
277
278# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279
280! Caution:
281! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
282! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
283! For an example see misc/nvidia_uvm/bind.sh.
284# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285
286# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287
288# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289
290# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
291
292# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293
294# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
295
296# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
297
298# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299! New line at end of file is required for FYPP
300# 7 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp" 2
301
302!> @brief MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver
304
305#ifdef MFC_MPI
306 use mpi !< message passing interface (mpi) module
307#endif
308
309 use m_helper_basic !< functions to compare floating point numbers
310
311 use m_helper
312
313 use m_derived_types !< definitions of the derived types
314
315 use m_global_parameters !< definitions of the global parameters
316
317 use m_mpi_common
318
319 use m_nvtx
320
321 use ieee_arithmetic
322
323 implicit none
324
325 integer, private, allocatable, dimension(:) :: ib_buff_send !<
326 !! This variable is utilized to pack and send the buffer of the immersed
327 !! boundary markers, for a single computational domain boundary at the
328 !! time, to the relevant neighboring processor.
329
330 integer, private, allocatable, dimension(:) :: ib_buff_recv !<
331 !! q_cons_buff_recv is utilized to receive and unpack the buffer of the
332 !! immersed boundary markers, for a single computational domain boundary
333 !! at the time, from the relevant neighboring processor.
334
335 integer :: i_halo_size
336
337# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
338#if defined(MFC_OpenACC)
339# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
340!$acc declare create(i_halo_size)
341# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
342#elif defined(MFC_OpenMP)
343# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
344!$omp declare target (i_halo_size)
345# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
346#endif
347
348contains
349
350 !> @brief Allocates immersed boundary communication buffers for MPI halo exchanges.
352
353#ifdef MFC_MPI
354 if (ib) then
355 if (n > 0) then
356 if (p > 0) then
357 i_halo_size = -1 + buff_size* &
358 & (m + 2*buff_size + 1)* &
359 & (n + 2*buff_size + 1)* &
360 & (p + 2*buff_size + 1)/ &
361 & (cells_bounds%mnp_min + 2*buff_size + 1)
362 else
363 i_halo_size = -1 + buff_size* &
364 & (cells_bounds%mn_max + 2*buff_size + 1)
365 end if
366 else
368 end if
369
370
371# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
372#if defined(MFC_OpenACC)
373# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
374!$acc update device(i_halo_size)
375# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
376#elif defined(MFC_OpenMP)
377# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
378!$omp target update to(i_halo_size)
379# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
380#endif
381#ifdef MFC_DEBUG
382# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
383 block
384# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
385 use iso_fortran_env, only: output_unit
386# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
387
388# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
389 print *, 'm_mpi_proxy.fpp:67: ', '@:ALLOCATE(ib_buff_send(0:i_halo_size), ib_buff_recv(0:i_halo_size))'
390# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
391
392# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
393 call flush (output_unit)
394# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
395 end block
396# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
397#endif
398# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
400# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
401
402# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
403
404# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
405
406# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
407#if defined(MFC_OpenACC)
408# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
409!$acc enter data create(ib_buff_send, ib_buff_recv)
410# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
411#elif defined(MFC_OpenMP)
412# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
413!$omp target enter data map(always,alloc:ib_buff_send, ib_buff_recv)
414# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
415#endif
416 end if
417#endif
418
419 end subroutine s_initialize_mpi_proxy_module
420
421 !> Since only the processor with rank 0 reads and verifies
422 !! the consistency of user inputs, these are initially not
423 !! available to the other processors. Then, the purpose of
424 !! this subroutine is to distribute the user inputs to the
425 !! remaining processors in the communicator.
426 impure subroutine s_mpi_bcast_user_inputs()
427
428#ifdef MFC_MPI
429
430 integer :: i, j !< Generic loop iterator
431 integer :: ierr !< Generic flag used to identify and report MPI errors
432
433 call mpi_bcast(case_dir, len(case_dir), mpi_character, 0, mpi_comm_world, ierr)
434
435# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
436 call mpi_bcast(k_x, 1, mpi_p, 0, mpi_comm_world, ierr)
437# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
438 call mpi_bcast(k_y, 1, mpi_p, 0, mpi_comm_world, ierr)
439# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
440 call mpi_bcast(k_z, 1, mpi_p, 0, mpi_comm_world, ierr)
441# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
442 call mpi_bcast(w_x, 1, mpi_p, 0, mpi_comm_world, ierr)
443# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
444 call mpi_bcast(w_y, 1, mpi_p, 0, mpi_comm_world, ierr)
445# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
446 call mpi_bcast(w_z, 1, mpi_p, 0, mpi_comm_world, ierr)
447# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
448 call mpi_bcast(p_x, 1, mpi_p, 0, mpi_comm_world, ierr)
449# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
450 call mpi_bcast(p_y, 1, mpi_p, 0, mpi_comm_world, ierr)
451# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
452 call mpi_bcast(p_z, 1, mpi_p, 0, mpi_comm_world, ierr)
453# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
454 call mpi_bcast(g_x, 1, mpi_p, 0, mpi_comm_world, ierr)
455# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
456 call mpi_bcast(g_y, 1, mpi_p, 0, mpi_comm_world, ierr)
457# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
458 call mpi_bcast(g_z, 1, mpi_p, 0, mpi_comm_world, ierr)
459# 91 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
460
461# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
462 call mpi_bcast(t_step_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
463# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
464 call mpi_bcast(m, 1, mpi_integer, 0, mpi_comm_world, ierr)
465# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
466 call mpi_bcast(n, 1, mpi_integer, 0, mpi_comm_world, ierr)
467# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
468 call mpi_bcast(p, 1, mpi_integer, 0, mpi_comm_world, ierr)
469# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
470 call mpi_bcast(m_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
471# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
472 call mpi_bcast(n_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
473# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
474 call mpi_bcast(p_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
475# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
476 call mpi_bcast(t_step_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
477# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
478 call mpi_bcast(t_step_stop, 1, mpi_integer, 0, mpi_comm_world, ierr)
479# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
480 call mpi_bcast(t_step_save, 1, mpi_integer, 0, mpi_comm_world, ierr)
481# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
482 call mpi_bcast(t_step_print, 1, mpi_integer, 0, mpi_comm_world, ierr)
483# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
484 call mpi_bcast(model_eqns, 1, mpi_integer, 0, mpi_comm_world, ierr)
485# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
486 call mpi_bcast(time_stepper, 1, mpi_integer, 0, mpi_comm_world, ierr)
487# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
488 call mpi_bcast(riemann_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
489# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
490 call mpi_bcast(low_mach, 1, mpi_integer, 0, mpi_comm_world, ierr)
491# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
492 call mpi_bcast(wave_speeds, 1, mpi_integer, 0, mpi_comm_world, ierr)
493# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
494 call mpi_bcast(avg_state, 1, mpi_integer, 0, mpi_comm_world, ierr)
495# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
496 call mpi_bcast(precision, 1, mpi_integer, 0, mpi_comm_world, ierr)
497# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
498 call mpi_bcast(bc_x%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
499# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
500 call mpi_bcast(bc_x%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
501# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
502 call mpi_bcast(bc_y%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
503# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
504 call mpi_bcast(bc_y%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
505# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
506 call mpi_bcast(bc_z%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
507# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
508 call mpi_bcast(bc_z%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
509# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
510 call mpi_bcast(fd_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
511# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
512 call mpi_bcast(num_probes, 1, mpi_integer, 0, mpi_comm_world, ierr)
513# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
514 call mpi_bcast(num_integrals, 1, mpi_integer, 0, mpi_comm_world, ierr)
515# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
516 call mpi_bcast(bubble_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
517# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
518 call mpi_bcast(thermal, 1, mpi_integer, 0, mpi_comm_world, ierr)
519# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
520 call mpi_bcast(num_source, 1, mpi_integer, 0, mpi_comm_world, ierr)
521# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
522 call mpi_bcast(relax_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
523# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
524 call mpi_bcast(num_ibs, 1, mpi_integer, 0, mpi_comm_world, ierr)
525# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
526 call mpi_bcast(n_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
527# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
528 call mpi_bcast(num_bc_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
529# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
530 call mpi_bcast(num_igr_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
531# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
532 call mpi_bcast(num_igr_warm_start_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
533# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
534 call mpi_bcast(adap_dt_max_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
535# 103 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
536
537# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
538 call mpi_bcast(run_time_info, 1, mpi_logical, 0, mpi_comm_world, ierr)
539# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
540 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
541# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
542 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
543# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
544 call mpi_bcast(mp_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
545# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
546 call mpi_bcast(rdma_mpi, 1, mpi_logical, 0, mpi_comm_world, ierr)
547# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
548 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
549# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
550 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
551# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
552 call mpi_bcast(weno_re_flux, 1, mpi_logical, 0, mpi_comm_world, ierr)
553# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
554 call mpi_bcast(alt_soundspeed, 1, mpi_logical, 0, mpi_comm_world, ierr)
555# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
556 call mpi_bcast(null_weights, 1, mpi_logical, 0, mpi_comm_world, ierr)
557# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
558 call mpi_bcast(mixture_err, 1, mpi_logical, 0, mpi_comm_world, ierr)
559# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
560 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
561# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
562 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
563# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
564 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
565# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
566 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
567# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
568 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
569# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
570 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
571# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
572 call mpi_bcast(acoustic_source, 1, mpi_logical, 0, mpi_comm_world, ierr)
573# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
574 call mpi_bcast(probe_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
575# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
576 call mpi_bcast(integral_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
577# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
578 call mpi_bcast(prim_vars_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
579# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
580 call mpi_bcast(weno_avg, 1, mpi_logical, 0, mpi_comm_world, ierr)
581# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
582 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
583# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
584 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
585# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
586 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
587# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
588 call mpi_bcast(adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
589# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
590 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
591# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
592 call mpi_bcast(bodyforces, 1, mpi_logical, 0, mpi_comm_world, ierr)
593# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
594 call mpi_bcast(bf_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
595# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
596 call mpi_bcast(bf_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
597# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
598 call mpi_bcast(bf_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
599# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
600 call mpi_bcast(bc_x%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
601# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
602 call mpi_bcast(bc_x%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
603# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
604 call mpi_bcast(bc_x%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
605# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
606 call mpi_bcast(bc_y%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
607# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
608 call mpi_bcast(bc_y%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
609# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
610 call mpi_bcast(bc_y%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
611# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
612 call mpi_bcast(bc_z%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
613# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
614 call mpi_bcast(bc_z%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
615# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
616 call mpi_bcast(bc_z%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
617# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
618 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
619# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
620 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
621# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
622 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
623# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
624 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
625# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
626 call mpi_bcast(shear_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
627# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
628 call mpi_bcast(bulk_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
629# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
630 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
631# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
632 call mpi_bcast(hyperelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
633# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
634 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
635# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
636 call mpi_bcast(int_comp, 1, mpi_logical, 0, mpi_comm_world, ierr)
637# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
638 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
639# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
640 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
641# 120 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
642
643 if (chemistry) then
644# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
645 call mpi_bcast(chem_params%diffusion, 1, mpi_logical, 0, mpi_comm_world, ierr)
646# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
647 call mpi_bcast(chem_params%reactions, 1, mpi_logical, 0, mpi_comm_world, ierr)
648# 125 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
649
650# 127 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
651 call mpi_bcast(chem_params%gamma_method, 1, mpi_integer, 0, mpi_comm_world, ierr)
652# 127 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
653 call mpi_bcast(chem_params%transport_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
654# 129 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
655 end if
656
657 if (bubbles_lagrange) then
658# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
659 call mpi_bcast(lag_params%heatTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
660# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
661 call mpi_bcast(lag_params%massTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
662# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
663 call mpi_bcast(lag_params%pressure_corrector, 1, mpi_logical, 0, mpi_comm_world, ierr)
664# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
665 call mpi_bcast(lag_params%write_bubbles, 1, mpi_logical, 0, mpi_comm_world, ierr)
666# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
667 call mpi_bcast(lag_params%write_bubbles_stats, 1, mpi_logical, 0, mpi_comm_world, ierr)
668# 136 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
669
670# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
671 call mpi_bcast(lag_params%solver_approach, 1, mpi_integer, 0, mpi_comm_world, ierr)
672# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
673 call mpi_bcast(lag_params%cluster_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
674# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
675 call mpi_bcast(lag_params%smooth_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
676# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
677 call mpi_bcast(lag_params%nBubs_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
678# 140 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
679
680# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
681 call mpi_bcast(lag_params%epsilonb, 1, mpi_p, 0, mpi_comm_world, ierr)
682# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
683 call mpi_bcast(lag_params%charwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
684# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
685 call mpi_bcast(lag_params%valmaxvoid, 1, mpi_p, 0, mpi_comm_world, ierr)
686# 144 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
687 end if
688
689# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
690 call mpi_bcast(dt, 1, mpi_p, 0, mpi_comm_world, ierr)
691# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
692 call mpi_bcast(weno_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
693# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
694 call mpi_bcast(teno_ct, 1, mpi_p, 0, mpi_comm_world, ierr)
695# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
696 call mpi_bcast(pref, 1, mpi_p, 0, mpi_comm_world, ierr)
697# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
698 call mpi_bcast(rhoref, 1, mpi_p, 0, mpi_comm_world, ierr)
699# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
700 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
701# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
702 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
703# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
704 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
705# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
706 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
707# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
708 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
709# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
710 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
711# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
712 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
713# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
714 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
715# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
716 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
717# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
718 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
719# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
720 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
721# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
722 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
723# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
724 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
725# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
726 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
727# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
728 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
729# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
730 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
731# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
732 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
733# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
734 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
735# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
736 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
737# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
738 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
739# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
740 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
741# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
742 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
743# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
744 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
745# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
746 call mpi_bcast(bc_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
747# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
748 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
749# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
750 call mpi_bcast(bc_z%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
751# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
752 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
753# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
754 call mpi_bcast(bc_x%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
755# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
756 call mpi_bcast(bc_x%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
757# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
758 call mpi_bcast(bc_y%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
759# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
760 call mpi_bcast(bc_y%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
761# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
762 call mpi_bcast(bc_z%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
763# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
764 call mpi_bcast(bc_z%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
765# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
766 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
767# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
768 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
769# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
770 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
771# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
772 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
773# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
774 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
775# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
776 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
777# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
778 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
779# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
780 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
781# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
782 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
783# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
784 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
785# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
786 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
787# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
788 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
789# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
790 call mpi_bcast(t_stop, 1, mpi_p, 0, mpi_comm_world, ierr)
791# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
792 call mpi_bcast(t_save, 1, mpi_p, 0, mpi_comm_world, ierr)
793# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
794 call mpi_bcast(cfl_target, 1, mpi_p, 0, mpi_comm_world, ierr)
795# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
796 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
797# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
798 call mpi_bcast(alf_factor, 1, mpi_p, 0, mpi_comm_world, ierr)
799# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
800 call mpi_bcast(tau_star, 1, mpi_p, 0, mpi_comm_world, ierr)
801# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
802 call mpi_bcast(cont_damage_s, 1, mpi_p, 0, mpi_comm_world, ierr)
803# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
804 call mpi_bcast(alpha_bar, 1, mpi_p, 0, mpi_comm_world, ierr)
805# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
806 call mpi_bcast(adap_dt_tol, 1, mpi_p, 0, mpi_comm_world, ierr)
807# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
808 call mpi_bcast(ic_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
809# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
810 call mpi_bcast(ic_beta, 1, mpi_p, 0, mpi_comm_world, ierr)
811# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
812 call mpi_bcast(hyper_cleaning_speed, 1, mpi_p, 0, mpi_comm_world, ierr)
813# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
814 call mpi_bcast(hyper_cleaning_tau, 1, mpi_p, 0, mpi_comm_world, ierr)
815# 160 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
816
817 do i = 1, 3
818# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
819 call mpi_bcast(bc_x%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
820# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
821 call mpi_bcast(bc_x%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
822# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
823 call mpi_bcast(bc_y%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
824# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
825 call mpi_bcast(bc_y%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
826# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
827 call mpi_bcast(bc_z%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
828# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
829 call mpi_bcast(bc_z%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
830# 166 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
831 end do
832
833# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
834 call mpi_bcast(mapped_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
835 call mpi_bcast(wenoz, 1, mpi_logical, 0, mpi_comm_world, ierr)
836 call mpi_bcast(teno, 1, mpi_logical, 0, mpi_comm_world, ierr)
837 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
838 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
839 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
840 call mpi_bcast(wenoz_q, 1, mpi_p, 0, mpi_comm_world, ierr)
841 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
842 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
843 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
844 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
845 call mpi_bcast(igr_pres_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
846 call mpi_bcast(igr_iter_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
847 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
848 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
849 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
850 call mpi_bcast(muscl_lim, 1, mpi_integer, 0, mpi_comm_world, ierr)
851# 187 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
852
853 do i = 1, num_fluids_max
854# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
855 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
856# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
857 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
858# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
859 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
860# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
861 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
862# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
863 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
864# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
865 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
866# 192 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
867 call mpi_bcast(fluid_pp(i)%Re(1), 2, mpi_p, 0, mpi_comm_world, ierr)
868 end do
869
870 if (bubbles_euler .or. bubbles_lagrange) then
871# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
872 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
873# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
874 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
875# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
876 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
877# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
878 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
879# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
880 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
881# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
882 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
883# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
884 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
885# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
886 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
887# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
888 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
889# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
890 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
891# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
892 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
893# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
894 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
895# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
896 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
897# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
898 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
899# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
900 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
901# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
902 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
903# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
904 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
905# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
906 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
907# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
908 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
909# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
910 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
911# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
912 end if
913
914 do i = 1, num_fluids_max
915# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
916 call mpi_bcast(bc_x%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
917# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
918 call mpi_bcast(bc_x%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
919# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
920 call mpi_bcast(bc_y%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
921# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
922 call mpi_bcast(bc_y%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
923# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
924 call mpi_bcast(bc_z%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
925# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
926 call mpi_bcast(bc_z%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
927# 207 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
928 end do
929
930 do i = 1, num_ibs
931# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
932 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
933# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
934 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
935# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
936 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
937# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
938 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
939# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
940 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
941# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
942 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
943# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
944 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
945# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
946 call mpi_bcast(patch_ib(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
947# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
948 call mpi_bcast(patch_ib(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
949# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
950 call mpi_bcast(patch_ib(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
951# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
952 call mpi_bcast(patch_ib(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
953# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
954 call mpi_bcast(patch_ib(i)%theta, 1, mpi_p, 0, mpi_comm_world, ierr)
955# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
956 call mpi_bcast(patch_ib(i)%slip, 1, mpi_p, 0, mpi_comm_world, ierr)
957# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
958 call mpi_bcast(patch_ib(i)%mass, 1, mpi_p, 0, mpi_comm_world, ierr)
959# 214 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
960# 215 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
961 call mpi_bcast(patch_ib(i)%vel, 3, mpi_p, 0, mpi_comm_world, ierr)
962# 215 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
963 call mpi_bcast(patch_ib(i)%angular_vel, 3, mpi_p, 0, mpi_comm_world, ierr)
964# 215 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
965 call mpi_bcast(patch_ib(i)%angles, 3, mpi_p, 0, mpi_comm_world, ierr)
966# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
967 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
968 call mpi_bcast(patch_ib(i)%moving_ibm, 1, mpi_integer, 0, mpi_comm_world, ierr)
969 end do
970
971 do j = 1, num_probes_max
972 do i = 1, 3
973 call mpi_bcast(acoustic(j)%loc(i), 1, mpi_p, 0, mpi_comm_world, ierr)
974 end do
975
976 call mpi_bcast(acoustic(j)%dipole, 1, mpi_logical, 0, mpi_comm_world, ierr)
977
978# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
979 call mpi_bcast(acoustic(j)%pulse, 1, mpi_integer, 0, mpi_comm_world, ierr)
980# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
981 call mpi_bcast(acoustic(j)%support, 1, mpi_integer, 0, mpi_comm_world, ierr)
982# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
983 call mpi_bcast(acoustic(j)%num_elements, 1, mpi_integer, 0, mpi_comm_world, ierr)
984# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
985 call mpi_bcast(acoustic(j)%element_on, 1, mpi_integer, 0, mpi_comm_world, ierr)
986# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
987 call mpi_bcast(acoustic(j)%bb_num_freq, 1, mpi_integer, 0, mpi_comm_world, ierr)
988# 231 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
989
990# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
991 call mpi_bcast(acoustic(j)%mag, 1, mpi_p, 0, mpi_comm_world, ierr)
992# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
993 call mpi_bcast(acoustic(j)%length, 1, mpi_p, 0, mpi_comm_world, ierr)
994# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
995 call mpi_bcast(acoustic(j)%height, 1, mpi_p, 0, mpi_comm_world, ierr)
996# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
997 call mpi_bcast(acoustic(j)%wavelength, 1, mpi_p, 0, mpi_comm_world, ierr)
998# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
999 call mpi_bcast(acoustic(j)%frequency, 1, mpi_p, 0, mpi_comm_world, ierr)
1000# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1001 call mpi_bcast(acoustic(j)%gauss_sigma_dist, 1, mpi_p, 0, mpi_comm_world, ierr)
1002# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1003 call mpi_bcast(acoustic(j)%gauss_sigma_time, 1, mpi_p, 0, mpi_comm_world, ierr)
1004# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1005 call mpi_bcast(acoustic(j)%npulse, 1, mpi_p, 0, mpi_comm_world, ierr)
1006# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1007 call mpi_bcast(acoustic(j)%dir, 1, mpi_p, 0, mpi_comm_world, ierr)
1008# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1009 call mpi_bcast(acoustic(j)%delay, 1, mpi_p, 0, mpi_comm_world, ierr)
1010# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1011 call mpi_bcast(acoustic(j)%foc_length, 1, mpi_p, 0, mpi_comm_world, ierr)
1012# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1013 call mpi_bcast(acoustic(j)%aperture, 1, mpi_p, 0, mpi_comm_world, ierr)
1014# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1015 call mpi_bcast(acoustic(j)%element_spacing_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1016# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1017 call mpi_bcast(acoustic(j)%element_polygon_ratio, 1, mpi_p, 0, mpi_comm_world, ierr)
1018# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1019 call mpi_bcast(acoustic(j)%rotate_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1020# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1021 call mpi_bcast(acoustic(j)%bb_bandwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
1022# 237 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1023 call mpi_bcast(acoustic(j)%bb_lowest_freq, 1, mpi_p, 0, mpi_comm_world, ierr)
1024# 239 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1025
1026# 241 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1027 call mpi_bcast(probe(j)%x, 1, mpi_p, 0, mpi_comm_world, ierr)
1028# 241 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1029 call mpi_bcast(probe(j)%y, 1, mpi_p, 0, mpi_comm_world, ierr)
1030# 241 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1031 call mpi_bcast(probe(j)%z, 1, mpi_p, 0, mpi_comm_world, ierr)
1032# 243 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1033
1034# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1035 call mpi_bcast(integral(j)%xmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1036# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1037 call mpi_bcast(integral(j)%xmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1038# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1039 call mpi_bcast(integral(j)%ymin, 1, mpi_p, 0, mpi_comm_world, ierr)
1040# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1041 call mpi_bcast(integral(j)%ymax, 1, mpi_p, 0, mpi_comm_world, ierr)
1042# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1043 call mpi_bcast(integral(j)%zmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1044# 245 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1045 call mpi_bcast(integral(j)%zmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1046# 247 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1047 end do
1048
1049 ! NVIDIA UVM variables
1050 call mpi_bcast(nv_uvm_out_of_core, 1, mpi_logical, 0, mpi_comm_world, ierr)
1051 call mpi_bcast(nv_uvm_igr_temps_on_gpu, 1, mpi_integer, 0, mpi_comm_world, ierr)
1052 call mpi_bcast(nv_uvm_pref_gpu, 1, mpi_logical, 0, mpi_comm_world, ierr)
1053
1054#endif
1055
1056 end subroutine s_mpi_bcast_user_inputs
1057
1058 !> @brief Packs, exchanges, and unpacks immersed boundary marker buffers between neighboring MPI ranks.
1059 subroutine s_mpi_sendrecv_ib_buffers(ib_markers, mpi_dir, pbc_loc)
1060
1061 type(integer_field), intent(inout) :: ib_markers
1062
1063 integer, intent(in) :: mpi_dir, pbc_loc
1064
1065 integer :: i, j, k, l, r, q !< Generic loop iterators
1066
1067 integer :: buffer_counts(1:3), buffer_count
1068
1069 type(int_bounds_info) :: boundary_conditions(1:3)
1070 integer :: beg_end(1:2), grid_dims(1:3)
1071 integer :: dst_proc, src_proc, recv_tag, send_tag
1072
1073 logical :: beg_end_geq_0, qbmm_comm
1074
1075 integer :: pack_offset, unpack_offset
1076
1077#ifdef MFC_MPI
1078 integer :: ierr !< Generic flag used to identify and report MPI errors
1079
1080 call nvtxstartrange("IB-MARKER-COMM-PACKBUF")
1081
1082 buffer_counts = (/ &
1083 buff_size*(n + 1)*(p + 1), &
1084 buff_size*(m + 2*buff_size + 1)*(p + 1), &
1085 buff_size*(m + 2*buff_size + 1)*(n + 2*buff_size + 1) &
1086 /)
1087
1088 buffer_count = buffer_counts(mpi_dir)
1089 boundary_conditions = (/bc_x, bc_y, bc_z/)
1090 beg_end = (/boundary_conditions(mpi_dir)%beg, boundary_conditions(mpi_dir)%end/)
1091 beg_end_geq_0 = beg_end(max(pbc_loc, 0) - pbc_loc + 1) >= 0
1092
1093 ! Implements:
1094 ! pbc_loc bc_x >= 0 -> [send/recv]_tag [dst/src]_proc
1095 ! -1 (=0) 0 -> [1,0] [0,0] | 0 0 [1,0] [beg,beg]
1096 ! -1 (=0) 1 -> [0,0] [1,0] | 0 1 [0,0] [end,beg]
1097 ! +1 (=1) 0 -> [0,1] [1,1] | 1 0 [0,1] [end,end]
1098 ! +1 (=1) 1 -> [1,1] [0,1] | 1 1 [1,1] [beg,end]
1099
1100 send_tag = f_logical_to_int(.not. f_xor(beg_end_geq_0, pbc_loc == 1))
1101 recv_tag = f_logical_to_int(pbc_loc == 1)
1102
1103 dst_proc = beg_end(1 + f_logical_to_int(f_xor(pbc_loc == 1, beg_end_geq_0)))
1104 src_proc = beg_end(1 + f_logical_to_int(pbc_loc == 1))
1105
1106 grid_dims = (/m, n, p/)
1107
1108 pack_offset = 0
1109 if (f_xor(pbc_loc == 1, beg_end_geq_0)) then
1110 pack_offset = grid_dims(mpi_dir) - buff_size + 1
1111 end if
1112
1113 unpack_offset = 0
1114 if (pbc_loc == 1) then
1115 unpack_offset = grid_dims(mpi_dir) + buff_size + 1
1116 end if
1117
1118 ! Pack Buffer to Send
1119# 320 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1120 if (mpi_dir == 1) then
1121# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1122
1123# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1124
1125# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1126#if defined(MFC_OpenACC)
1127# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1128!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1129# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1130#elif defined(MFC_OpenMP)
1131# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1132
1133# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1134
1135# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1136
1137# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1138!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1139# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1140#endif
1141# 322 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1142
1143 do l = 0, p
1144 do k = 0, n
1145 do j = 0, buff_size - 1
1146 r = (j + buff_size*(k + (n + 1)*l))
1147 ib_buff_send(r) = ib_markers%sf(j + pack_offset, k, l)
1148 end do
1149 end do
1150 end do
1151
1152# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1153
1154# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1155#if defined(MFC_OpenACC)
1156# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1157!$acc end parallel loop
1158# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1159#elif defined(MFC_OpenMP)
1160# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1161
1162# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1163
1164# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1165!$omp end target teams loop
1166# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1167#endif
1168# 331 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1169
1170# 357 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1171 end if
1172# 320 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1173 if (mpi_dir == 2) then
1174# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1175
1176# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1177
1178# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1179#if defined(MFC_OpenACC)
1180# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1181!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1182# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1183#elif defined(MFC_OpenMP)
1184# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1185
1186# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1187
1188# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1189
1190# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1191!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1192# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1193#endif
1194# 333 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1195
1196 do l = 0, p
1197 do k = 0, buff_size - 1
1198 do j = -buff_size, m + buff_size
1199 r = ((j + buff_size) + (m + 2*buff_size + 1)* &
1200 (k + buff_size*l))
1201 ib_buff_send(r) = ib_markers%sf(j, k + pack_offset, l)
1202 end do
1203 end do
1204 end do
1205
1206# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1207
1208# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1209#if defined(MFC_OpenACC)
1210# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1211!$acc end parallel loop
1212# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1213#elif defined(MFC_OpenMP)
1214# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1215
1216# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1217
1218# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1219!$omp end target teams loop
1220# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1221#endif
1222# 343 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1223
1224# 357 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1225 end if
1226# 320 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1227 if (mpi_dir == 3) then
1228# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1229
1230# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1231
1232# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1233#if defined(MFC_OpenACC)
1234# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1235!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1236# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1237#elif defined(MFC_OpenMP)
1238# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1239
1240# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1241
1242# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1243
1244# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1245!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1246# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1247#endif
1248# 345 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1249
1250 do l = 0, buff_size - 1
1251 do k = -buff_size, n + buff_size
1252 do j = -buff_size, m + buff_size
1253 r = ((j + buff_size) + (m + 2*buff_size + 1)* &
1254 ((k + buff_size) + (n + 2*buff_size + 1)*l))
1255 ib_buff_send(r) = ib_markers%sf(j, k, l + pack_offset)
1256 end do
1257 end do
1258 end do
1259
1260# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1261
1262# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1263#if defined(MFC_OpenACC)
1264# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1265!$acc end parallel loop
1266# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1267#elif defined(MFC_OpenMP)
1268# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1269
1270# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1271
1272# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1273!$omp end target teams loop
1274# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1275#endif
1276# 355 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1277
1278# 357 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1279 end if
1280# 359 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1281 call nvtxendrange ! Packbuf
1282
1283# 362 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1284 if (rdma_mpi .eqv. .false.) then
1285# 376 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1286 call nvtxstartrange("IB-MARKER-DEV2HOST")
1287
1288# 377 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1289#if defined(MFC_OpenACC)
1290# 377 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1291!$acc update host(ib_buff_send)
1292# 377 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1293#elif defined(MFC_OpenMP)
1294# 377 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1295!$omp target update from(ib_buff_send)
1296# 377 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1297#endif
1298 call nvtxendrange
1299
1300 call nvtxstartrange("IB-MARKER-SENDRECV-NO-RMDA")
1301 call mpi_sendrecv( &
1302 ib_buff_send, buffer_count, mpi_integer, dst_proc, send_tag, &
1303 ib_buff_recv, buffer_count, mpi_integer, src_proc, recv_tag, &
1304 mpi_comm_world, mpi_status_ignore, ierr)
1305 call nvtxendrange
1306
1307 call nvtxstartrange("IB-MARKER-HOST2DEV")
1308
1309# 388 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1310#if defined(MFC_OpenACC)
1311# 388 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1312!$acc update device(ib_buff_recv)
1313# 388 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1314#elif defined(MFC_OpenMP)
1315# 388 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1316!$omp target update to(ib_buff_recv)
1317# 388 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1318#endif
1319 call nvtxendrange
1320# 391 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1321 end if
1322# 362 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1323 if (rdma_mpi .eqv. .true.) then
1324# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1325
1326# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1327
1328# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1329#if defined(MFC_OpenACC)
1330# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1331!$acc host_data use_device(ib_buff_send, ib_buff_recv)
1332# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1333
1334# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1335 call nvtxstartrange("IB-MARKER-SENDRECV-RDMA")
1336# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1337 call mpi_sendrecv( &
1338# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1339 ib_buff_send, buffer_count, mpi_integer, dst_proc, send_tag, &
1340# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1341 ib_buff_recv, buffer_count, mpi_integer, src_proc, recv_tag, &
1342# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1343 mpi_comm_world, mpi_status_ignore, ierr)
1344# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1345 call nvtxendrange
1346# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1347
1348# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1349!$acc end host_data
1350# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1351#elif defined(MFC_OpenMP)
1352# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1353!$omp target data use_device_addr(ib_buff_send, ib_buff_recv)
1354# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1355
1356# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1357 call nvtxstartrange("IB-MARKER-SENDRECV-RDMA")
1358# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1359 call mpi_sendrecv( &
1360# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1361 ib_buff_send, buffer_count, mpi_integer, dst_proc, send_tag, &
1362# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1363 ib_buff_recv, buffer_count, mpi_integer, src_proc, recv_tag, &
1364# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1365 mpi_comm_world, mpi_status_ignore, ierr)
1366# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1367 call nvtxendrange
1368# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1369
1370# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1371!$omp end target data
1372# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1373#else
1374# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1375
1376# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1377 call nvtxstartrange("IB-MARKER-SENDRECV-RDMA")
1378# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1379 call mpi_sendrecv( &
1380# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1381 ib_buff_send, buffer_count, mpi_integer, dst_proc, send_tag, &
1382# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1383 ib_buff_recv, buffer_count, mpi_integer, src_proc, recv_tag, &
1384# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1385 mpi_comm_world, mpi_status_ignore, ierr)
1386# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1387 call nvtxendrange
1388# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1389
1390# 364 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1391#endif
1392# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1393
1394# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1395#if defined(MFC_OpenACC)
1396# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1397!$acc wait
1398# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1399#elif defined(MFC_OpenMP)
1400# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1401!$omp barrier
1402# 374 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1403#endif
1404# 391 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1405 end if
1406# 393 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1407
1408 ! Unpack Received Buffer
1409 call nvtxstartrange("IB-MARKER-COMM-UNPACKBUF")
1410# 397 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1411 if (mpi_dir == 1) then
1412# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1413
1414# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1415
1416# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1417#if defined(MFC_OpenACC)
1418# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1419!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1420# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1421#elif defined(MFC_OpenMP)
1422# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1423
1424# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1425
1426# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1427
1428# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1429!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1430# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1431#endif
1432# 399 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1433
1434 do l = 0, p
1435 do k = 0, n
1436 do j = -buff_size, -1
1437 r = (j + buff_size*((k + 1) + (n + 1)*l))
1438 ib_markers%sf(j + unpack_offset, k, l) = ib_buff_recv(r)
1439 end do
1440 end do
1441 end do
1442
1443# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1444
1445# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1446#if defined(MFC_OpenACC)
1447# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1448!$acc end parallel loop
1449# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1450#elif defined(MFC_OpenMP)
1451# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1452
1453# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1454
1455# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1456!$omp end target teams loop
1457# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1458#endif
1459# 408 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1460
1461# 436 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1462 end if
1463# 397 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1464 if (mpi_dir == 2) then
1465# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1466
1467# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1468
1469# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1470#if defined(MFC_OpenACC)
1471# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1472!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1473# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1474#elif defined(MFC_OpenMP)
1475# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1476
1477# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1478
1479# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1480
1481# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1482!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1483# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1484#endif
1485# 410 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1486
1487 do l = 0, p
1488 do k = -buff_size, -1
1489 do j = -buff_size, m + buff_size
1490 r = ((j + buff_size) + (m + 2*buff_size + 1)* &
1491 ((k + buff_size) + buff_size*l))
1492 ib_markers%sf(j, k + unpack_offset, l) = ib_buff_recv(r)
1493 end do
1494 end do
1495 end do
1496
1497# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1498
1499# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1500#if defined(MFC_OpenACC)
1501# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1502!$acc end parallel loop
1503# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1504#elif defined(MFC_OpenMP)
1505# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1506
1507# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1508
1509# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1510!$omp end target teams loop
1511# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1512#endif
1513# 420 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1514
1515# 436 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1516 end if
1517# 397 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1518 if (mpi_dir == 3) then
1519# 422 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1520 ! Unpacking buffer from bc_z%beg
1521
1522# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1523
1524# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1525#if defined(MFC_OpenACC)
1526# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1527!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, r)
1528# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1529#elif defined(MFC_OpenMP)
1530# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1531
1532# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1533
1534# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1535
1536# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1537!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1538# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1539#endif
1540# 423 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1541
1542 do l = -buff_size, -1
1543 do k = -buff_size, n + buff_size
1544 do j = -buff_size, m + buff_size
1545 r = ((j + buff_size) + (m + 2*buff_size + 1)* &
1546 ((k + buff_size) + (n + 2*buff_size + 1)* &
1547 (l + buff_size)))
1548 ib_markers%sf(j, k, l + unpack_offset) = ib_buff_recv(r)
1549 end do
1550 end do
1551 end do
1552
1553# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1554
1555# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1556#if defined(MFC_OpenACC)
1557# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1558!$acc end parallel loop
1559# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1560#elif defined(MFC_OpenMP)
1561# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1562
1563# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1564
1565# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1566!$omp end target teams loop
1567# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1568#endif
1569# 434 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1570
1571# 436 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1572 end if
1573# 438 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1574 call nvtxendrange
1575#endif
1576
1577 end subroutine s_mpi_sendrecv_ib_buffers
1578
1579 !> @brief Broadcasts random phase numbers from rank 0 to all MPI processes.
1580 impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
1581 integer, intent(in) :: num_freq
1582 real(wp), intent(inout), dimension(1:num_freq) :: phi_rn
1583
1584#ifdef MFC_MPI
1585 integer :: ierr !< Generic flag used to identify and report MPI errors
1586 call mpi_bcast(phi_rn, num_freq, mpi_p, 0, mpi_comm_world, ierr)
1587#endif
1588
1589 end subroutine s_mpi_send_random_number
1590
1591 !> @brief Deallocates immersed boundary MPI communication buffers.
1593
1594#ifdef MFC_MPI
1595 if (ib) then
1596#ifdef MFC_DEBUG
1597# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1598 block
1599# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1600 use iso_fortran_env, only: output_unit
1601# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1602
1603# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1604 print *, 'm_mpi_proxy.fpp:460: ', '@:DEALLOCATE(ib_buff_send, ib_buff_recv)'
1605# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1606
1607# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1608 call flush (output_unit)
1609# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1610 end block
1611# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1612#endif
1613# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1614
1615# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1616#if defined(MFC_OpenACC)
1617# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1618!$acc exit data delete(ib_buff_send, ib_buff_recv)
1619# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1620#elif defined(MFC_OpenMP)
1621# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1622!$omp target exit data map(release:ib_buff_send, ib_buff_recv)
1623# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1624#endif
1625# 460 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1626 deallocate (ib_buff_send, ib_buff_recv)
1627 end if
1628#endif
1629
1630 end subroutine s_finalize_mpi_proxy_module
1631
1632end module m_mpi_proxy
integer, intent(in) j
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer buff_size
The number of cells that are necessary to be able to store enough boundary conditions data to march t...
type(cell_num_bounds) cells_bounds
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
MPI communication layer: domain decomposition, halo exchange, reductions, and parallel I/O setup.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
subroutine s_initialize_mpi_proxy_module()
Allocates immersed boundary communication buffers for MPI halo exchanges.
subroutine s_mpi_sendrecv_ib_buffers(ib_markers, mpi_dir, pbc_loc)
Packs, exchanges, and unpacks immersed boundary marker buffers between neighboring MPI ranks.
integer, dimension(:), allocatable, private ib_buff_send
This variable is utilized to pack and send the buffer of the immersed boundary markers,...
integer, dimension(:), allocatable, private ib_buff_recv
q_cons_buff_recv is utilized to receive and unpack the buffer of the immersed boundary markers,...
impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
Broadcasts random phase numbers from rank 0 to all MPI processes.
subroutine s_finalize_mpi_proxy_module()
Deallocates immersed boundary MPI communication buffers.
impure subroutine s_mpi_bcast_user_inputs()
Since only the processor with rank 0 reads and verifies the consistency of user inputs,...
NVIDIA NVTX profiling API bindings for GPU performance instrumentation.
Definition m_nvtx.f90:6