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# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 244 "/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# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 377 "/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# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 311 "/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! GPU parallel region (scalar reductions, maxval/minval)
238# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240! GPU parallel loop over threads (most common GPU macro)
241# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242
243! Required closing for GPU_PARALLEL_LOOP
244# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246! Mark routine for device compilation
247# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249! Declare device-resident data
250# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252! Inner loop within a GPU parallel region
253# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255! Scoped GPU data region
256# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258! Host code with device pointers (for MPI with GPU buffers)
259# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261! Allocate device memory (unscoped)
262# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264! Free device memory
265# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267! Atomic operation on device
268# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270! End atomic capture block
271# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273! Copy data between host and device
274# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275
276! Synchronization barrier
277# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! Import GPU library module (openacc or omp_lib)
280# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Emit code only for AMD compiler
283# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Emit code for non-Cray compilers
286# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Emit code only for Cray compiler
289# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Emit code for non-NVIDIA compilers
292# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296! New line at end of file is required for FYPP
297# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
298
299# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
300
301! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
302! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
303! example see misc/nvidia_uvm/bind.sh. NVIDIA unified memory page placement hint
304# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305
306! Allocate and create GPU device memory
307# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308
309! Free GPU device memory and deallocate
310# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311
312! Cray-specific GPU pointer setup for vector fields
313# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314
315! Cray-specific GPU pointer setup for scalar fields
316# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317
318! Cray-specific GPU pointer setup for acoustic source spatials
319# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320
321# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322
323# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
324! New line at end of file is required for FYPP
325# 7 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp" 2
326
327!> @brief MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver
329
330#ifdef MFC_MPI
331 use mpi !< message passing interface (mpi) module
332#endif
333
335 use m_helper
338 use m_mpi_common
339 use m_nvtx
340 use ieee_arithmetic
341
342 implicit none
343
344 integer, private, allocatable, dimension(:) :: ib_buff_send !< IB marker send buffer for halo exchange
345 integer, private, allocatable, dimension(:) :: ib_buff_recv !< IB marker receive buffer for halo exchange
346 integer :: i_halo_size
347
348# 28 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
349#if defined(MFC_OpenACC)
350# 28 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
351!$acc declare create(i_halo_size)
352# 28 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
353#elif defined(MFC_OpenMP)
354# 28 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
355!$omp declare target (i_halo_size)
356# 28 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
357#endif
358
359contains
360
361 !> Initialize the MPI proxy module
363
364#ifdef MFC_MPI
365 if (ib) then
366 if (n > 0) then
367 if (p > 0) then
368 i_halo_size = -1 + buff_size*(m + 2*buff_size + 1)*(n + 2*buff_size + 1)*(p + 2*buff_size + 1) &
369 & /(cells_bounds%mnp_min + 2*buff_size + 1)
370 else
371 i_halo_size = -1 + buff_size*(cells_bounds%mn_max + 2*buff_size + 1)
372 end if
373 else
375 end if
376
377
378# 48 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
379#if defined(MFC_OpenACC)
380# 48 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
381!$acc update device(i_halo_size)
382# 48 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
383#elif defined(MFC_OpenMP)
384# 48 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
385!$omp target update to(i_halo_size)
386# 48 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
387#endif
388#ifdef MFC_DEBUG
389# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
390 block
391# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
392 use iso_fortran_env, only: output_unit
393# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
394
395# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
396 print *, 'm_mpi_proxy.fpp:49: ', '@:ALLOCATE(ib_buff_send(0:i_halo_size), ib_buff_recv(0:i_halo_size))'
397# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
398
399# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
400 call flush (output_unit)
401# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
402 end block
403# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
404#endif
405# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
407# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
408
409# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
410
411# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
412
413# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
414#if defined(MFC_OpenACC)
415# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
416!$acc enter data create(ib_buff_send, ib_buff_recv)
417# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
418#elif defined(MFC_OpenMP)
419# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
420!$omp target enter data map(always,alloc:ib_buff_send, ib_buff_recv)
421# 49 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
422#endif
423 end if
424#endif
425
426 end subroutine s_initialize_mpi_proxy_module
427
428 !> Since only the processor with rank 0 reads and verifies the consistency of user inputs, these are initially not available to
429 !! the other processors. Then, the purpose of this subroutine is to distribute the user inputs to the remaining processors in
430 !! the communicator.
431 impure subroutine s_mpi_bcast_user_inputs()
432
433#ifdef MFC_MPI
434 integer :: i, j !< Generic loop iterator
435 integer :: ierr !< Generic flag used to identify and report MPI errors
436
437 call mpi_bcast(case_dir, len(case_dir), mpi_character, 0, mpi_comm_world, ierr)
438
439# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
440 call mpi_bcast(k_x, 1, mpi_p, 0, mpi_comm_world, ierr)
441# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
442 call mpi_bcast(k_y, 1, mpi_p, 0, mpi_comm_world, ierr)
443# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
444 call mpi_bcast(k_z, 1, mpi_p, 0, mpi_comm_world, ierr)
445# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
446 call mpi_bcast(w_x, 1, mpi_p, 0, mpi_comm_world, ierr)
447# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
448 call mpi_bcast(w_y, 1, mpi_p, 0, mpi_comm_world, ierr)
449# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
450 call mpi_bcast(w_z, 1, mpi_p, 0, mpi_comm_world, ierr)
451# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
452 call mpi_bcast(p_x, 1, mpi_p, 0, mpi_comm_world, ierr)
453# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
454 call mpi_bcast(p_y, 1, mpi_p, 0, mpi_comm_world, ierr)
455# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
456 call mpi_bcast(p_z, 1, mpi_p, 0, mpi_comm_world, ierr)
457# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
458 call mpi_bcast(g_x, 1, mpi_p, 0, mpi_comm_world, ierr)
459# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
460 call mpi_bcast(g_y, 1, mpi_p, 0, mpi_comm_world, ierr)
461# 68 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
462 call mpi_bcast(g_z, 1, mpi_p, 0, mpi_comm_world, ierr)
463# 70 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
464
465# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
466 call mpi_bcast(t_step_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
467# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
468 call mpi_bcast(m, 1, mpi_integer, 0, mpi_comm_world, ierr)
469# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
470 call mpi_bcast(n, 1, mpi_integer, 0, mpi_comm_world, ierr)
471# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
472 call mpi_bcast(p, 1, mpi_integer, 0, mpi_comm_world, ierr)
473# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
474 call mpi_bcast(m_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
475# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
476 call mpi_bcast(n_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
477# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
478 call mpi_bcast(p_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
479# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
480 call mpi_bcast(t_step_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
481# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
482 call mpi_bcast(t_step_stop, 1, mpi_integer, 0, mpi_comm_world, ierr)
483# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
484 call mpi_bcast(t_step_save, 1, mpi_integer, 0, mpi_comm_world, ierr)
485# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
486 call mpi_bcast(t_step_print, 1, mpi_integer, 0, mpi_comm_world, ierr)
487# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
488 call mpi_bcast(model_eqns, 1, mpi_integer, 0, mpi_comm_world, ierr)
489# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
490 call mpi_bcast(time_stepper, 1, mpi_integer, 0, mpi_comm_world, ierr)
491# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
492 call mpi_bcast(riemann_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
493# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
494 call mpi_bcast(low_mach, 1, mpi_integer, 0, mpi_comm_world, ierr)
495# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
496 call mpi_bcast(wave_speeds, 1, mpi_integer, 0, mpi_comm_world, ierr)
497# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
498 call mpi_bcast(avg_state, 1, mpi_integer, 0, mpi_comm_world, ierr)
499# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
500 call mpi_bcast(precision, 1, mpi_integer, 0, mpi_comm_world, ierr)
501# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
502 call mpi_bcast(bc_x%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
503# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
504 call mpi_bcast(bc_x%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
505# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
506 call mpi_bcast(bc_y%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
507# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
508 call mpi_bcast(bc_y%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
509# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
510 call mpi_bcast(bc_z%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
511# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
512 call mpi_bcast(bc_z%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
513# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
514 call mpi_bcast(fd_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
515# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
516 call mpi_bcast(num_probes, 1, mpi_integer, 0, mpi_comm_world, ierr)
517# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
518 call mpi_bcast(num_integrals, 1, mpi_integer, 0, mpi_comm_world, ierr)
519# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
520 call mpi_bcast(bubble_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
521# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
522 call mpi_bcast(thermal, 1, mpi_integer, 0, mpi_comm_world, ierr)
523# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
524 call mpi_bcast(num_source, 1, mpi_integer, 0, mpi_comm_world, ierr)
525# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
526 call mpi_bcast(relax_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
527# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
528 call mpi_bcast(num_ibs, 1, mpi_integer, 0, mpi_comm_world, ierr)
529# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
530 call mpi_bcast(n_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
531# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
532 call mpi_bcast(num_bc_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
533# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
534 call mpi_bcast(num_igr_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
535# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
536 call mpi_bcast(num_igr_warm_start_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
537# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
538 call mpi_bcast(adap_dt_max_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
539# 80 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
540 call mpi_bcast(collision_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
541# 82 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
542
543# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
544 call mpi_bcast(run_time_info, 1, mpi_logical, 0, mpi_comm_world, ierr)
545# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
546 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
547# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
548 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
549# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
550 call mpi_bcast(mp_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
551# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
552 call mpi_bcast(rdma_mpi, 1, mpi_logical, 0, mpi_comm_world, ierr)
553# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
554 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
555# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
556 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
557# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
558 call mpi_bcast(weno_re_flux, 1, mpi_logical, 0, mpi_comm_world, ierr)
559# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
560 call mpi_bcast(alt_soundspeed, 1, mpi_logical, 0, mpi_comm_world, ierr)
561# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
562 call mpi_bcast(null_weights, 1, mpi_logical, 0, mpi_comm_world, ierr)
563# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
564 call mpi_bcast(mixture_err, 1, mpi_logical, 0, mpi_comm_world, ierr)
565# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
566 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
567# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
568 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
569# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
570 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
571# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
572 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
573# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
574 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
575# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
576 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
577# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
578 call mpi_bcast(acoustic_source, 1, mpi_logical, 0, mpi_comm_world, ierr)
579# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
580 call mpi_bcast(probe_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
581# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
582 call mpi_bcast(integral_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
583# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
584 call mpi_bcast(prim_vars_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
585# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
586 call mpi_bcast(weno_avg, 1, mpi_logical, 0, mpi_comm_world, ierr)
587# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
588 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
589# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
590 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
591# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
592 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
593# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
594 call mpi_bcast(adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
595# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
596 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
597# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
598 call mpi_bcast(bodyforces, 1, mpi_logical, 0, mpi_comm_world, ierr)
599# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
600 call mpi_bcast(bf_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
601# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
602 call mpi_bcast(bf_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
603# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
604 call mpi_bcast(bf_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
605# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
606 call mpi_bcast(bc_x%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
607# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
608 call mpi_bcast(bc_x%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
609# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
610 call mpi_bcast(bc_x%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
611# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
612 call mpi_bcast(bc_y%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
613# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
614 call mpi_bcast(bc_y%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
615# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
616 call mpi_bcast(bc_y%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
617# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
618 call mpi_bcast(bc_z%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
619# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
620 call mpi_bcast(bc_z%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
621# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
622 call mpi_bcast(bc_z%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
623# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
624 call mpi_bcast(bc_x%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
625# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
626 call mpi_bcast(bc_y%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
627# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
628 call mpi_bcast(bc_z%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
629# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
630 call mpi_bcast(bc_x%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
631# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
632 call mpi_bcast(bc_y%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
633# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
634 call mpi_bcast(bc_z%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
635# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
636 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
637# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
638 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
639# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
640 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
641# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
642 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
643# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
644 call mpi_bcast(shear_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
645# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
646 call mpi_bcast(bulk_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
647# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
648 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
649# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
650 call mpi_bcast(hyperelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
651# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
652 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
653# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
654 call mpi_bcast(int_comp, 1, mpi_logical, 0, mpi_comm_world, ierr)
655# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
656 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
657# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
658 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
659# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
660 call mpi_bcast(ib_state_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
661# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
662
663 if (chemistry) then
664# 104 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
665 call mpi_bcast(chem_params%diffusion, 1, mpi_logical, 0, mpi_comm_world, ierr)
666# 104 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
667 call mpi_bcast(chem_params%reactions, 1, mpi_logical, 0, mpi_comm_world, ierr)
668# 106 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
669
670# 108 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
671 call mpi_bcast(chem_params%gamma_method, 1, mpi_integer, 0, mpi_comm_world, ierr)
672# 108 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
673 call mpi_bcast(chem_params%transport_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
674# 110 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
675 end if
676
677 if (bubbles_lagrange) then
678# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
679 call mpi_bcast(lag_params%heatTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
680# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
681 call mpi_bcast(lag_params%massTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
682# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
683 call mpi_bcast(lag_params%pressure_corrector, 1, mpi_logical, 0, mpi_comm_world, ierr)
684# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
685 call mpi_bcast(lag_params%write_bubbles, 1, mpi_logical, 0, mpi_comm_world, ierr)
686# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
687 call mpi_bcast(lag_params%write_bubbles_stats, 1, mpi_logical, 0, mpi_comm_world, ierr)
688# 117 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
689
690# 119 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
691 call mpi_bcast(lag_params%solver_approach, 1, mpi_integer, 0, mpi_comm_world, ierr)
692# 119 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
693 call mpi_bcast(lag_params%cluster_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
694# 119 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
695 call mpi_bcast(lag_params%smooth_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
696# 119 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
697 call mpi_bcast(lag_params%nBubs_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
698# 121 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
699
700# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
701 call mpi_bcast(lag_params%epsilonb, 1, mpi_p, 0, mpi_comm_world, ierr)
702# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
703 call mpi_bcast(lag_params%charwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
704# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
705 call mpi_bcast(lag_params%valmaxvoid, 1, mpi_p, 0, mpi_comm_world, ierr)
706# 125 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
707 end if
708
709# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
710 call mpi_bcast(dt, 1, mpi_p, 0, mpi_comm_world, ierr)
711# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
712 call mpi_bcast(weno_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
713# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
714 call mpi_bcast(teno_ct, 1, mpi_p, 0, mpi_comm_world, ierr)
715# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
716 call mpi_bcast(pref, 1, mpi_p, 0, mpi_comm_world, ierr)
717# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
718 call mpi_bcast(rhoref, 1, mpi_p, 0, mpi_comm_world, ierr)
719# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
720 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
721# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
722 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
723# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
724 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
725# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
726 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
727# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
728 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
729# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
730 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
731# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
732 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
733# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
734 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
735# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
736 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
737# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
738 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
739# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
740 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
741# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
742 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
743# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
744 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
745# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
746 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
747# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
748 call mpi_bcast(bc_x%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
749# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
750 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
751# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
752 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
753# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
754 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
755# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
756 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
757# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
758 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
759# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
760 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
761# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
762 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
763# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
764 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
765# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
766 call mpi_bcast(bc_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
767# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
768 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
769# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
770 call mpi_bcast(bc_z%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
771# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
772 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
773# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
774 call mpi_bcast(bc_x%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
775# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
776 call mpi_bcast(bc_x%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
777# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
778 call mpi_bcast(bc_y%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
779# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
780 call mpi_bcast(bc_y%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
781# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
782 call mpi_bcast(bc_z%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
783# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
784 call mpi_bcast(bc_z%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
785# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
786 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
787# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
788 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
789# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
790 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
791# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
792 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
793# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
794 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
795# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
796 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
797# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
798 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
799# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
800 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
801# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
802 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
803# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
804 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
805# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
806 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
807# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
808 call mpi_bcast(bc_x%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
809# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
810 call mpi_bcast(bc_x%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
811# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
812 call mpi_bcast(bc_y%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
813# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
814 call mpi_bcast(bc_y%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
815# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
816 call mpi_bcast(bc_z%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
817# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
818 call mpi_bcast(bc_z%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
819# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
820 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
821# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
822 call mpi_bcast(t_stop, 1, mpi_p, 0, mpi_comm_world, ierr)
823# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
824 call mpi_bcast(t_save, 1, mpi_p, 0, mpi_comm_world, ierr)
825# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
826 call mpi_bcast(cfl_target, 1, mpi_p, 0, mpi_comm_world, ierr)
827# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
828 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
829# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
830 call mpi_bcast(alf_factor, 1, mpi_p, 0, mpi_comm_world, ierr)
831# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
832 call mpi_bcast(tau_star, 1, mpi_p, 0, mpi_comm_world, ierr)
833# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
834 call mpi_bcast(cont_damage_s, 1, mpi_p, 0, mpi_comm_world, ierr)
835# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
836 call mpi_bcast(alpha_bar, 1, mpi_p, 0, mpi_comm_world, ierr)
837# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
838 call mpi_bcast(adap_dt_tol, 1, mpi_p, 0, mpi_comm_world, ierr)
839# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
840 call mpi_bcast(ic_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
841# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
842 call mpi_bcast(ic_beta, 1, mpi_p, 0, mpi_comm_world, ierr)
843# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
844 call mpi_bcast(hyper_cleaning_speed, 1, mpi_p, 0, mpi_comm_world, ierr)
845# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
846 call mpi_bcast(hyper_cleaning_tau, 1, mpi_p, 0, mpi_comm_world, ierr)
847# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
848 call mpi_bcast(coefficient_of_restitution, 1, mpi_p, 0, mpi_comm_world, ierr)
849# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
850 call mpi_bcast(collision_time, 1, mpi_p, 0, mpi_comm_world, ierr)
851# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
852 call mpi_bcast(ib_coefficient_of_friction, 1, mpi_p, 0, mpi_comm_world, ierr)
853# 144 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
854
855 do i = 1, 3
856# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
857 call mpi_bcast(bc_x%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
858# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
859 call mpi_bcast(bc_x%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
860# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
861 call mpi_bcast(bc_y%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
862# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
863 call mpi_bcast(bc_y%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
864# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
865 call mpi_bcast(bc_z%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
866# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
867 call mpi_bcast(bc_z%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
868# 150 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
869 end do
870
871# 153 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
872 call mpi_bcast(mapped_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
873 call mpi_bcast(wenoz, 1, mpi_logical, 0, mpi_comm_world, ierr)
874 call mpi_bcast(teno, 1, mpi_logical, 0, mpi_comm_world, ierr)
875 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
876 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
877 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
878 call mpi_bcast(wenoz_q, 1, mpi_p, 0, mpi_comm_world, ierr)
879 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
880 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
881 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
882 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
883 call mpi_bcast(igr_pres_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
884 call mpi_bcast(igr_iter_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
885 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
886 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
887 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
888 call mpi_bcast(muscl_lim, 1, mpi_integer, 0, mpi_comm_world, ierr)
889# 171 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
890
891 do i = 1, num_fluids_max
892# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
893 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
894# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
895 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
896# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
897 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
898# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
899 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
900# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
901 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
902# 174 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
903 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
904# 176 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
905 call mpi_bcast(fluid_pp(i)%Re(1), 2, mpi_p, 0, mpi_comm_world, ierr)
906 end do
907
908 if (bubbles_euler .or. bubbles_lagrange) then
909# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
910 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
911# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
912 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
913# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
914 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
915# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
916 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
917# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
918 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
919# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
920 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
921# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
922 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
923# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
924 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
925# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
926 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
927# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
928 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
929# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
930 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
931# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
932 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
933# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
934 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
935# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
936 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
937# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
938 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
939# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
940 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
941# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
942 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
943# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
944 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
945# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
946 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
947# 183 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
948 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
949# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
950 end if
951
952 do i = 1, num_fluids_max
953# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
954 call mpi_bcast(bc_x%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
955# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
956 call mpi_bcast(bc_x%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
957# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
958 call mpi_bcast(bc_y%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
959# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
960 call mpi_bcast(bc_y%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
961# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
962 call mpi_bcast(bc_z%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
963# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
964 call mpi_bcast(bc_z%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
965# 192 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
966 end do
967
968 do i = 1, num_ibs
969# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
970 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
971# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
972 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
973# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
974 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
975# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
976 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
977# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
978 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
979# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
980 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
981# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
982 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
983# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
984 call mpi_bcast(patch_ib(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
985# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
986 call mpi_bcast(patch_ib(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
987# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
988 call mpi_bcast(patch_ib(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
989# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
990 call mpi_bcast(patch_ib(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
991# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
992 call mpi_bcast(patch_ib(i)%theta, 1, mpi_p, 0, mpi_comm_world, ierr)
993# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
994 call mpi_bcast(patch_ib(i)%slip, 1, mpi_p, 0, mpi_comm_world, ierr)
995# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
996 call mpi_bcast(patch_ib(i)%mass, 1, mpi_p, 0, mpi_comm_world, ierr)
997# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
998 call mpi_bcast(patch_ib(i)%model_threshold, 1, mpi_p, 0, mpi_comm_world, ierr)
999# 200 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1000# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1001 call mpi_bcast(patch_ib(i)%vel, 3, mpi_p, 0, mpi_comm_world, ierr)
1002# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1003 call mpi_bcast(patch_ib(i)%angular_vel, 3, mpi_p, 0, mpi_comm_world, ierr)
1004# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1005 call mpi_bcast(patch_ib(i)%angles, 3, mpi_p, 0, mpi_comm_world, ierr)
1006# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1007 call mpi_bcast(patch_ib(i)%model_translate, 3, mpi_p, 0, mpi_comm_world, ierr)
1008# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1009 call mpi_bcast(patch_ib(i)%model_scale, 3, mpi_p, 0, mpi_comm_world, ierr)
1010# 203 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1011 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
1012 call mpi_bcast(patch_ib(i)%moving_ibm, 1, mpi_integer, 0, mpi_comm_world, ierr)
1013 call mpi_bcast(patch_ib(i)%model_spc, 1, mpi_integer, 0, mpi_comm_world, ierr)
1014 call mpi_bcast(patch_ib(i)%model_filepath, len(patch_ib(i)%model_filepath), mpi_character, 0, mpi_comm_world, ierr)
1015 end do
1016
1017 do j = 1, num_probes_max
1018 do i = 1, 3
1019 call mpi_bcast(acoustic(j)%loc(i), 1, mpi_p, 0, mpi_comm_world, ierr)
1020 end do
1021
1022 call mpi_bcast(acoustic(j)%dipole, 1, mpi_logical, 0, mpi_comm_world, ierr)
1023
1024# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1025 call mpi_bcast(acoustic(j)%pulse, 1, mpi_integer, 0, mpi_comm_world, ierr)
1026# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1027 call mpi_bcast(acoustic(j)%support, 1, mpi_integer, 0, mpi_comm_world, ierr)
1028# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1029 call mpi_bcast(acoustic(j)%num_elements, 1, mpi_integer, 0, mpi_comm_world, ierr)
1030# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1031 call mpi_bcast(acoustic(j)%element_on, 1, mpi_integer, 0, mpi_comm_world, ierr)
1032# 217 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1033 call mpi_bcast(acoustic(j)%bb_num_freq, 1, mpi_integer, 0, mpi_comm_world, ierr)
1034# 219 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1035
1036# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1037 call mpi_bcast(acoustic(j)%mag, 1, mpi_p, 0, mpi_comm_world, ierr)
1038# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1039 call mpi_bcast(acoustic(j)%length, 1, mpi_p, 0, mpi_comm_world, ierr)
1040# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1041 call mpi_bcast(acoustic(j)%height, 1, mpi_p, 0, mpi_comm_world, ierr)
1042# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1043 call mpi_bcast(acoustic(j)%wavelength, 1, mpi_p, 0, mpi_comm_world, ierr)
1044# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1045 call mpi_bcast(acoustic(j)%frequency, 1, mpi_p, 0, mpi_comm_world, ierr)
1046# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1047 call mpi_bcast(acoustic(j)%gauss_sigma_dist, 1, mpi_p, 0, mpi_comm_world, ierr)
1048# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1049 call mpi_bcast(acoustic(j)%gauss_sigma_time, 1, mpi_p, 0, mpi_comm_world, ierr)
1050# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1051 call mpi_bcast(acoustic(j)%npulse, 1, mpi_p, 0, mpi_comm_world, ierr)
1052# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1053 call mpi_bcast(acoustic(j)%dir, 1, mpi_p, 0, mpi_comm_world, ierr)
1054# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1055 call mpi_bcast(acoustic(j)%delay, 1, mpi_p, 0, mpi_comm_world, ierr)
1056# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1057 call mpi_bcast(acoustic(j)%foc_length, 1, mpi_p, 0, mpi_comm_world, ierr)
1058# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1059 call mpi_bcast(acoustic(j)%aperture, 1, mpi_p, 0, mpi_comm_world, ierr)
1060# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1061 call mpi_bcast(acoustic(j)%element_spacing_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1062# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1063 call mpi_bcast(acoustic(j)%element_polygon_ratio, 1, mpi_p, 0, mpi_comm_world, ierr)
1064# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1065 call mpi_bcast(acoustic(j)%rotate_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1066# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1067 call mpi_bcast(acoustic(j)%bb_bandwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
1068# 225 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1069 call mpi_bcast(acoustic(j)%bb_lowest_freq, 1, mpi_p, 0, mpi_comm_world, ierr)
1070# 227 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1071
1072# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1073 call mpi_bcast(probe(j)%x, 1, mpi_p, 0, mpi_comm_world, ierr)
1074# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1075 call mpi_bcast(probe(j)%y, 1, mpi_p, 0, mpi_comm_world, ierr)
1076# 229 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1077 call mpi_bcast(probe(j)%z, 1, mpi_p, 0, mpi_comm_world, ierr)
1078# 231 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1079
1080# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1081 call mpi_bcast(integral(j)%xmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1082# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1083 call mpi_bcast(integral(j)%xmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1084# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1085 call mpi_bcast(integral(j)%ymin, 1, mpi_p, 0, mpi_comm_world, ierr)
1086# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1087 call mpi_bcast(integral(j)%ymax, 1, mpi_p, 0, mpi_comm_world, ierr)
1088# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1089 call mpi_bcast(integral(j)%zmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1090# 233 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1091 call mpi_bcast(integral(j)%zmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1092# 235 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1093 end do
1094
1095 ! NVIDIA UVM variables
1096 call mpi_bcast(nv_uvm_out_of_core, 1, mpi_logical, 0, mpi_comm_world, ierr)
1097 call mpi_bcast(nv_uvm_igr_temps_on_gpu, 1, mpi_integer, 0, mpi_comm_world, ierr)
1098 call mpi_bcast(nv_uvm_pref_gpu, 1, mpi_logical, 0, mpi_comm_world, ierr)
1099#endif
1100
1101 end subroutine s_mpi_bcast_user_inputs
1102
1103 !> Broadcast random phase numbers from rank 0 to all MPI processes
1104 impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
1105
1106 integer, intent(in) :: num_freq
1107 real(wp), intent(inout), dimension(1:num_freq) :: phi_rn
1108
1109#ifdef MFC_MPI
1110 integer :: ierr !< Generic flag used to identify and report MPI errors
1111
1112 call mpi_bcast(phi_rn, num_freq, mpi_p, 0, mpi_comm_world, ierr)
1113#endif
1114
1115 end subroutine s_mpi_send_random_number
1116
1117 !> Finalize the MPI proxy module
1119
1120#ifdef MFC_MPI
1121 if (ib) then
1122#ifdef MFC_DEBUG
1123# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1124 block
1125# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1126 use iso_fortran_env, only: output_unit
1127# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1128
1129# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1130 print *, 'm_mpi_proxy.fpp:264: ', '@:DEALLOCATE(ib_buff_send, ib_buff_recv)'
1131# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1132
1133# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1134 call flush (output_unit)
1135# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1136 end block
1137# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1138#endif
1139# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1140
1141# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1142#if defined(MFC_OpenACC)
1143# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1144!$acc exit data delete(ib_buff_send, ib_buff_recv)
1145# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1146#elif defined(MFC_OpenMP)
1147# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1148!$omp target exit data map(release:ib_buff_send, ib_buff_recv)
1149# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1150#endif
1151# 264 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1152 deallocate (ib_buff_send, ib_buff_recv)
1153 end if
1154#endif
1155
1156 end subroutine s_finalize_mpi_proxy_module
1157
1158end 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
Number of ghost cells for boundary condition storage.
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()
Initialize the MPI proxy module.
integer, dimension(:), allocatable, private ib_buff_send
IB marker send buffer for halo exchange.
integer, dimension(:), allocatable, private ib_buff_recv
IB marker receive buffer for halo exchange.
impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
Broadcast random phase numbers from rank 0 to all MPI processes.
subroutine s_finalize_mpi_proxy_module()
Finalize the MPI proxy module.
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