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# 82 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
540
541# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
542 call mpi_bcast(run_time_info, 1, mpi_logical, 0, mpi_comm_world, ierr)
543# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
544 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
545# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
546 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
547# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
548 call mpi_bcast(mp_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
549# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
550 call mpi_bcast(rdma_mpi, 1, mpi_logical, 0, mpi_comm_world, ierr)
551# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
552 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
553# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
554 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
555# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
556 call mpi_bcast(weno_re_flux, 1, mpi_logical, 0, mpi_comm_world, ierr)
557# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
558 call mpi_bcast(alt_soundspeed, 1, mpi_logical, 0, mpi_comm_world, ierr)
559# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
560 call mpi_bcast(null_weights, 1, mpi_logical, 0, mpi_comm_world, ierr)
561# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
562 call mpi_bcast(mixture_err, 1, mpi_logical, 0, mpi_comm_world, ierr)
563# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
564 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
565# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
566 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
567# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
568 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
569# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
570 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
571# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
572 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
573# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
574 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
575# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
576 call mpi_bcast(acoustic_source, 1, mpi_logical, 0, mpi_comm_world, ierr)
577# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
578 call mpi_bcast(probe_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
579# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
580 call mpi_bcast(integral_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
581# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
582 call mpi_bcast(prim_vars_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
583# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
584 call mpi_bcast(weno_avg, 1, mpi_logical, 0, mpi_comm_world, ierr)
585# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
586 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
587# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
588 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
589# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
590 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
591# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
592 call mpi_bcast(adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
593# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
594 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
595# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
596 call mpi_bcast(bodyforces, 1, mpi_logical, 0, mpi_comm_world, ierr)
597# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
598 call mpi_bcast(bf_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
599# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
600 call mpi_bcast(bf_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
601# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
602 call mpi_bcast(bf_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
603# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
604 call mpi_bcast(bc_x%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
605# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
606 call mpi_bcast(bc_x%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
607# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
608 call mpi_bcast(bc_x%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
609# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
610 call mpi_bcast(bc_y%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
611# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
612 call mpi_bcast(bc_y%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
613# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
614 call mpi_bcast(bc_y%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
615# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
616 call mpi_bcast(bc_z%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
617# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
618 call mpi_bcast(bc_z%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
619# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
620 call mpi_bcast(bc_z%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
621# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
622 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
623# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
624 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
625# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
626 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
627# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
628 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
629# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
630 call mpi_bcast(shear_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
631# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
632 call mpi_bcast(bulk_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
633# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
634 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
635# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
636 call mpi_bcast(hyperelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
637# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
638 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
639# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
640 call mpi_bcast(int_comp, 1, mpi_logical, 0, mpi_comm_world, ierr)
641# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
642 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
643# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
644 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
645# 97 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
646 call mpi_bcast(ib_state_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
647# 99 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
648
649 if (chemistry) then
650# 102 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
651 call mpi_bcast(chem_params%diffusion, 1, mpi_logical, 0, mpi_comm_world, ierr)
652# 102 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
653 call mpi_bcast(chem_params%reactions, 1, mpi_logical, 0, mpi_comm_world, ierr)
654# 104 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
655
656# 106 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
657 call mpi_bcast(chem_params%gamma_method, 1, mpi_integer, 0, mpi_comm_world, ierr)
658# 106 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
659 call mpi_bcast(chem_params%transport_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
660# 108 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
661 end if
662
663 if (bubbles_lagrange) then
664# 113 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
665 call mpi_bcast(lag_params%heatTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
666# 113 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
667 call mpi_bcast(lag_params%massTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
668# 113 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
669 call mpi_bcast(lag_params%pressure_corrector, 1, mpi_logical, 0, mpi_comm_world, ierr)
670# 113 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
671 call mpi_bcast(lag_params%write_bubbles, 1, mpi_logical, 0, mpi_comm_world, ierr)
672# 113 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
673 call mpi_bcast(lag_params%write_bubbles_stats, 1, mpi_logical, 0, mpi_comm_world, ierr)
674# 115 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
675
676# 117 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
677 call mpi_bcast(lag_params%solver_approach, 1, mpi_integer, 0, mpi_comm_world, ierr)
678# 117 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
679 call mpi_bcast(lag_params%cluster_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
680# 117 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
681 call mpi_bcast(lag_params%smooth_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
682# 117 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
683 call mpi_bcast(lag_params%nBubs_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
684# 119 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
685
686# 121 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
687 call mpi_bcast(lag_params%epsilonb, 1, mpi_p, 0, mpi_comm_world, ierr)
688# 121 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
689 call mpi_bcast(lag_params%charwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
690# 121 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
691 call mpi_bcast(lag_params%valmaxvoid, 1, mpi_p, 0, mpi_comm_world, ierr)
692# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
693 end if
694
695# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
696 call mpi_bcast(dt, 1, mpi_p, 0, mpi_comm_world, ierr)
697# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
698 call mpi_bcast(weno_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
699# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
700 call mpi_bcast(teno_ct, 1, mpi_p, 0, mpi_comm_world, ierr)
701# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
702 call mpi_bcast(pref, 1, mpi_p, 0, mpi_comm_world, ierr)
703# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
704 call mpi_bcast(rhoref, 1, mpi_p, 0, mpi_comm_world, ierr)
705# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
706 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
707# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
708 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
709# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
710 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
711# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
712 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
713# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
714 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
715# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
716 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
717# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
718 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
719# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
720 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
721# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
722 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
723# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
724 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
725# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
726 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
727# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
728 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
729# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
730 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
731# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
732 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
733# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
734 call mpi_bcast(bc_x%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
735# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
736 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
737# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
738 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
739# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
740 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
741# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
742 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
743# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
744 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
745# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
746 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
747# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
748 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
749# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
750 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
751# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
752 call mpi_bcast(bc_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
753# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
754 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
755# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
756 call mpi_bcast(bc_z%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
757# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
758 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
759# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
760 call mpi_bcast(bc_x%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
761# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
762 call mpi_bcast(bc_x%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
763# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
764 call mpi_bcast(bc_y%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
765# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
766 call mpi_bcast(bc_y%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
767# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
768 call mpi_bcast(bc_z%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
769# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
770 call mpi_bcast(bc_z%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
771# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
772 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
773# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
774 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
775# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
776 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
777# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
778 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
779# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
780 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
781# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
782 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
783# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
784 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
785# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
786 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
787# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
788 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
789# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
790 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
791# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
792 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
793# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
794 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
795# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
796 call mpi_bcast(t_stop, 1, mpi_p, 0, mpi_comm_world, ierr)
797# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
798 call mpi_bcast(t_save, 1, mpi_p, 0, mpi_comm_world, ierr)
799# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
800 call mpi_bcast(cfl_target, 1, mpi_p, 0, mpi_comm_world, ierr)
801# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
802 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
803# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
804 call mpi_bcast(alf_factor, 1, mpi_p, 0, mpi_comm_world, ierr)
805# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
806 call mpi_bcast(tau_star, 1, mpi_p, 0, mpi_comm_world, ierr)
807# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
808 call mpi_bcast(cont_damage_s, 1, mpi_p, 0, mpi_comm_world, ierr)
809# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
810 call mpi_bcast(alpha_bar, 1, mpi_p, 0, mpi_comm_world, ierr)
811# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
812 call mpi_bcast(adap_dt_tol, 1, mpi_p, 0, mpi_comm_world, ierr)
813# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
814 call mpi_bcast(ic_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
815# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
816 call mpi_bcast(ic_beta, 1, mpi_p, 0, mpi_comm_world, ierr)
817# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
818 call mpi_bcast(hyper_cleaning_speed, 1, mpi_p, 0, mpi_comm_world, ierr)
819# 137 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
820 call mpi_bcast(hyper_cleaning_tau, 1, mpi_p, 0, mpi_comm_world, ierr)
821# 139 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
822
823 do i = 1, 3
824# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
825 call mpi_bcast(bc_x%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
826# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
827 call mpi_bcast(bc_x%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
828# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
829 call mpi_bcast(bc_y%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
830# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
831 call mpi_bcast(bc_y%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
832# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
833 call mpi_bcast(bc_z%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
834# 143 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
835 call mpi_bcast(bc_z%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
836# 145 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
837 end do
838
839# 148 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
840 call mpi_bcast(mapped_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
841 call mpi_bcast(wenoz, 1, mpi_logical, 0, mpi_comm_world, ierr)
842 call mpi_bcast(teno, 1, mpi_logical, 0, mpi_comm_world, ierr)
843 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
844 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
845 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
846 call mpi_bcast(wenoz_q, 1, mpi_p, 0, mpi_comm_world, ierr)
847 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
848 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
849 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
850 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
851 call mpi_bcast(igr_pres_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
852 call mpi_bcast(igr_iter_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
853 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
854 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
855 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
856 call mpi_bcast(muscl_lim, 1, mpi_integer, 0, mpi_comm_world, ierr)
857# 166 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
858
859 do i = 1, num_fluids_max
860# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
861 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
862# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
863 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
864# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
865 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
866# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
867 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
868# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
869 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
870# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
871 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
872# 171 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
873 call mpi_bcast(fluid_pp(i)%Re(1), 2, mpi_p, 0, mpi_comm_world, ierr)
874 end do
875
876 if (bubbles_euler .or. bubbles_lagrange) then
877# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
878 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
879# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
880 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
881# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
882 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
883# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
884 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
885# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
886 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
887# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
888 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
889# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
890 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
891# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
892 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
893# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
894 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
895# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
896 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
897# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
898 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
899# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
900 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
901# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
902 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
903# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
904 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
905# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
906 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
907# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
908 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
909# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
910 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
911# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
912 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
913# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
914 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
915# 178 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
916 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
917# 180 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
918 end if
919
920 do i = 1, num_fluids_max
921# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
922 call mpi_bcast(bc_x%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
923# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
924 call mpi_bcast(bc_x%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
925# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
926 call mpi_bcast(bc_y%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
927# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
928 call mpi_bcast(bc_y%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
929# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
930 call mpi_bcast(bc_z%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
931# 185 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
932 call mpi_bcast(bc_z%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
933# 187 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
934 end do
935
936 do i = 1, num_ibs
937# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
938 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
939# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
940 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
941# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
942 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
943# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
944 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
945# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
946 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
947# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
948 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
949# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
950 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
951# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
952 call mpi_bcast(patch_ib(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
953# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
954 call mpi_bcast(patch_ib(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
955# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
956 call mpi_bcast(patch_ib(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
957# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
958 call mpi_bcast(patch_ib(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
959# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
960 call mpi_bcast(patch_ib(i)%theta, 1, mpi_p, 0, mpi_comm_world, ierr)
961# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
962 call mpi_bcast(patch_ib(i)%slip, 1, mpi_p, 0, mpi_comm_world, ierr)
963# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
964 call mpi_bcast(patch_ib(i)%mass, 1, mpi_p, 0, mpi_comm_world, ierr)
965# 193 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
966 call mpi_bcast(patch_ib(i)%model_threshold, 1, mpi_p, 0, mpi_comm_world, ierr)
967# 195 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
968# 196 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
969 call mpi_bcast(patch_ib(i)%vel, 3, mpi_p, 0, mpi_comm_world, ierr)
970# 196 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
971 call mpi_bcast(patch_ib(i)%angular_vel, 3, mpi_p, 0, mpi_comm_world, ierr)
972# 196 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
973 call mpi_bcast(patch_ib(i)%angles, 3, mpi_p, 0, mpi_comm_world, ierr)
974# 196 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
975 call mpi_bcast(patch_ib(i)%model_translate, 3, mpi_p, 0, mpi_comm_world, ierr)
976# 196 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
977 call mpi_bcast(patch_ib(i)%model_scale, 3, mpi_p, 0, mpi_comm_world, ierr)
978# 198 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
979 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
980 call mpi_bcast(patch_ib(i)%moving_ibm, 1, mpi_integer, 0, mpi_comm_world, ierr)
981 call mpi_bcast(patch_ib(i)%model_spc, 1, mpi_integer, 0, mpi_comm_world, ierr)
982 call mpi_bcast(patch_ib(i)%model_filepath, len(patch_ib(i)%model_filepath), mpi_character, 0, mpi_comm_world, ierr)
983 end do
984
985 do j = 1, num_probes_max
986 do i = 1, 3
987 call mpi_bcast(acoustic(j)%loc(i), 1, mpi_p, 0, mpi_comm_world, ierr)
988 end do
989
990 call mpi_bcast(acoustic(j)%dipole, 1, mpi_logical, 0, mpi_comm_world, ierr)
991
992# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
993 call mpi_bcast(acoustic(j)%pulse, 1, mpi_integer, 0, mpi_comm_world, ierr)
994# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
995 call mpi_bcast(acoustic(j)%support, 1, mpi_integer, 0, mpi_comm_world, ierr)
996# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
997 call mpi_bcast(acoustic(j)%num_elements, 1, mpi_integer, 0, mpi_comm_world, ierr)
998# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
999 call mpi_bcast(acoustic(j)%element_on, 1, mpi_integer, 0, mpi_comm_world, ierr)
1000# 212 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1001 call mpi_bcast(acoustic(j)%bb_num_freq, 1, mpi_integer, 0, mpi_comm_world, ierr)
1002# 214 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1003
1004# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1005 call mpi_bcast(acoustic(j)%mag, 1, mpi_p, 0, mpi_comm_world, ierr)
1006# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1007 call mpi_bcast(acoustic(j)%length, 1, mpi_p, 0, mpi_comm_world, ierr)
1008# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1009 call mpi_bcast(acoustic(j)%height, 1, mpi_p, 0, mpi_comm_world, ierr)
1010# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1011 call mpi_bcast(acoustic(j)%wavelength, 1, mpi_p, 0, mpi_comm_world, ierr)
1012# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1013 call mpi_bcast(acoustic(j)%frequency, 1, mpi_p, 0, mpi_comm_world, ierr)
1014# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1015 call mpi_bcast(acoustic(j)%gauss_sigma_dist, 1, mpi_p, 0, mpi_comm_world, ierr)
1016# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1017 call mpi_bcast(acoustic(j)%gauss_sigma_time, 1, mpi_p, 0, mpi_comm_world, ierr)
1018# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1019 call mpi_bcast(acoustic(j)%npulse, 1, mpi_p, 0, mpi_comm_world, ierr)
1020# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1021 call mpi_bcast(acoustic(j)%dir, 1, mpi_p, 0, mpi_comm_world, ierr)
1022# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1023 call mpi_bcast(acoustic(j)%delay, 1, mpi_p, 0, mpi_comm_world, ierr)
1024# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1025 call mpi_bcast(acoustic(j)%foc_length, 1, mpi_p, 0, mpi_comm_world, ierr)
1026# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1027 call mpi_bcast(acoustic(j)%aperture, 1, mpi_p, 0, mpi_comm_world, ierr)
1028# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1029 call mpi_bcast(acoustic(j)%element_spacing_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1030# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1031 call mpi_bcast(acoustic(j)%element_polygon_ratio, 1, mpi_p, 0, mpi_comm_world, ierr)
1032# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1033 call mpi_bcast(acoustic(j)%rotate_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1034# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1035 call mpi_bcast(acoustic(j)%bb_bandwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
1036# 220 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1037 call mpi_bcast(acoustic(j)%bb_lowest_freq, 1, mpi_p, 0, mpi_comm_world, ierr)
1038# 222 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1039
1040# 224 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1041 call mpi_bcast(probe(j)%x, 1, mpi_p, 0, mpi_comm_world, ierr)
1042# 224 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1043 call mpi_bcast(probe(j)%y, 1, mpi_p, 0, mpi_comm_world, ierr)
1044# 224 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1045 call mpi_bcast(probe(j)%z, 1, mpi_p, 0, mpi_comm_world, ierr)
1046# 226 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1047
1048# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1049 call mpi_bcast(integral(j)%xmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1050# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1051 call mpi_bcast(integral(j)%xmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1052# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1053 call mpi_bcast(integral(j)%ymin, 1, mpi_p, 0, mpi_comm_world, ierr)
1054# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1055 call mpi_bcast(integral(j)%ymax, 1, mpi_p, 0, mpi_comm_world, ierr)
1056# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1057 call mpi_bcast(integral(j)%zmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1058# 228 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1059 call mpi_bcast(integral(j)%zmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1060# 230 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1061 end do
1062
1063 ! NVIDIA UVM variables
1064 call mpi_bcast(nv_uvm_out_of_core, 1, mpi_logical, 0, mpi_comm_world, ierr)
1065 call mpi_bcast(nv_uvm_igr_temps_on_gpu, 1, mpi_integer, 0, mpi_comm_world, ierr)
1066 call mpi_bcast(nv_uvm_pref_gpu, 1, mpi_logical, 0, mpi_comm_world, ierr)
1067#endif
1068
1069 end subroutine s_mpi_bcast_user_inputs
1070
1071 !> Broadcast random phase numbers from rank 0 to all MPI processes
1072 impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
1073
1074 integer, intent(in) :: num_freq
1075 real(wp), intent(inout), dimension(1:num_freq) :: phi_rn
1076
1077#ifdef MFC_MPI
1078 integer :: ierr !< Generic flag used to identify and report MPI errors
1079
1080 call mpi_bcast(phi_rn, num_freq, mpi_p, 0, mpi_comm_world, ierr)
1081#endif
1082
1083 end subroutine s_mpi_send_random_number
1084
1085 !> Finalize the MPI proxy module
1087
1088#ifdef MFC_MPI
1089 if (ib) then
1090#ifdef MFC_DEBUG
1091# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1092 block
1093# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1094 use iso_fortran_env, only: output_unit
1095# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1096
1097# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1098 print *, 'm_mpi_proxy.fpp:259: ', '@:DEALLOCATE(ib_buff_send, ib_buff_recv)'
1099# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1100
1101# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1102 call flush (output_unit)
1103# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1104 end block
1105# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1106#endif
1107# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1108
1109# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1110#if defined(MFC_OpenACC)
1111# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1112!$acc exit data delete(ib_buff_send, ib_buff_recv)
1113# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1114#elif defined(MFC_OpenMP)
1115# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1116!$omp target exit data map(release:ib_buff_send, ib_buff_recv)
1117# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1118#endif
1119# 259 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1120 deallocate (ib_buff_send, ib_buff_recv)
1121 end if
1122#endif
1123
1124 end subroutine s_finalize_mpi_proxy_module
1125
1126end 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