MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_mpi_proxy.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
2!>
3!! @file
4!! @brief Contains module m_mpi_proxy
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
7! This file exists so that Fypp can be run without generating case.fpp files for
8! each target. This is useful when generating documentation, for example. This
9! should also let MFC be built with CMake directly, without invoking mfc.sh.
10
11! For pre-process.
12# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
13
14! For moving immersed boundaries in simulation
15# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43! New line at end of file is required for FYPP
44# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
45# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
46# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
47# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52
53# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62
63# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64
65# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66
67# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68
69# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70! New line at end of file is required for FYPP
71# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
72
73# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78
79# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80
81# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82
83# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84
85# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86
87# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88
89# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90
91# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92
93# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94
95# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96
97# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98
99# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100
101# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102
103# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104
105# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106
107# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108
109# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110
111# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112
113# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141
142# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143
144# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145
146# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147
148# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149! New line at end of file is required for FYPP
150# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
151# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
152# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
153# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158
159# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162
163# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164
165# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166
167# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168
169# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170
171# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172
173# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174
175# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176! New line at end of file is required for FYPP
177# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
178
179# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180
181# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182
183# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184
185# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186
187# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188
189# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190
191# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192
193# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194
195# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196
197# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198
199# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200
201# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202
203# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204
205# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206
207# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234! New line at end of file is required for FYPP
235# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
236
237# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238
239# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240
241# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242
243# 104 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244
245# 119 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246
247# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248
249# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250
251# 171 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252
253# 182 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254
255# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256
257# 204 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258
259# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260
261# 225 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262
263# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264
265# 246 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266
267# 252 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268
269# 258 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
270
271# 264 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273# 270 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274
275# 272 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276# 273 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277! New line at end of file is required for FYPP
278# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
279
280# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281
282! Caution:
283! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
284! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
285! For an example see misc/nvidia_uvm/bind.sh.
286# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287
288# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289
290# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
291
292# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293
294# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
295
296# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
297
298# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299
300# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
301! New line at end of file is required for FYPP
302# 7 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp" 2
303
304!> @brief MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver
306
307#ifdef MFC_MPI
308 use mpi !< message passing interface (mpi) module
309#endif
310
311 use m_helper_basic !< functions to compare floating point numbers
312
313 use m_helper
314
315 use m_derived_types !< definitions of the derived types
316
317 use m_global_parameters !< definitions of the global parameters
318
319 use m_mpi_common
320
321 use m_nvtx
322
323 use ieee_arithmetic
324
325 implicit none
326
327 integer, private, allocatable, dimension(:) :: ib_buff_send !<
328 !! This variable is utilized to pack and send the buffer of the immersed
329 !! boundary markers, for a single computational domain boundary at the
330 !! time, to the relevant neighboring processor.
331
332 integer, private, allocatable, dimension(:) :: ib_buff_recv !<
333 !! q_cons_buff_recv is utilized to receive and unpack the buffer of the
334 !! immersed boundary markers, for a single computational domain boundary
335 !! at the time, from the relevant neighboring processor.
336
337 integer :: i_halo_size
338
339# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
340#if defined(MFC_OpenACC)
341# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
342!$acc declare create(i_halo_size)
343# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
344#elif defined(MFC_OpenMP)
345# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
346!$omp declare target (i_halo_size)
347# 42 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
348#endif
349
350contains
351
352 !> @brief Allocates immersed boundary communication buffers for MPI halo exchanges.
354
355#ifdef MFC_MPI
356 if (ib) then
357 if (n > 0) then
358 if (p > 0) then
359 i_halo_size = -1 + buff_size* &
360 & (m + 2*buff_size + 1)* &
361 & (n + 2*buff_size + 1)* &
362 & (p + 2*buff_size + 1)/ &
363 & (cells_bounds%mnp_min + 2*buff_size + 1)
364 else
365 i_halo_size = -1 + buff_size* &
366 & (cells_bounds%mn_max + 2*buff_size + 1)
367 end if
368 else
370 end if
371
372
373# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
374#if defined(MFC_OpenACC)
375# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
376!$acc update device(i_halo_size)
377# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
378#elif defined(MFC_OpenMP)
379# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
380!$omp target update to(i_halo_size)
381# 66 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
382#endif
383#ifdef MFC_DEBUG
384# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
385 block
386# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
387 use iso_fortran_env, only: output_unit
388# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
389
390# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
391 print *, 'm_mpi_proxy.fpp:67: ', '@:ALLOCATE(ib_buff_send(0:i_halo_size), ib_buff_recv(0:i_halo_size))'
392# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
393
394# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
395 call flush (output_unit)
396# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
397 end block
398# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
399#endif
400# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
402# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
403
404# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
405
406# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
407
408# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
409#if defined(MFC_OpenACC)
410# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
411!$acc enter data create(ib_buff_send, ib_buff_recv)
412# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
413#elif defined(MFC_OpenMP)
414# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
415!$omp target enter data map(always,alloc:ib_buff_send, ib_buff_recv)
416# 67 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
417#endif
418 end if
419#endif
420
421 end subroutine s_initialize_mpi_proxy_module
422
423 !> Since only the processor with rank 0 reads and verifies
424 !! the consistency of user inputs, these are initially not
425 !! available to the other processors. Then, the purpose of
426 !! this subroutine is to distribute the user inputs to the
427 !! remaining processors in the communicator.
428 impure subroutine s_mpi_bcast_user_inputs()
429
430#ifdef MFC_MPI
431
432 integer :: i, j !< Generic loop iterator
433 integer :: ierr !< Generic flag used to identify and report MPI errors
434
435 call mpi_bcast(case_dir, len(case_dir), mpi_character, 0, mpi_comm_world, ierr)
436
437# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
438 call mpi_bcast(k_x, 1, mpi_p, 0, mpi_comm_world, ierr)
439# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
440 call mpi_bcast(k_y, 1, mpi_p, 0, mpi_comm_world, ierr)
441# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
442 call mpi_bcast(k_z, 1, mpi_p, 0, mpi_comm_world, ierr)
443# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
444 call mpi_bcast(w_x, 1, mpi_p, 0, mpi_comm_world, ierr)
445# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
446 call mpi_bcast(w_y, 1, mpi_p, 0, mpi_comm_world, ierr)
447# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
448 call mpi_bcast(w_z, 1, mpi_p, 0, mpi_comm_world, ierr)
449# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
450 call mpi_bcast(p_x, 1, mpi_p, 0, mpi_comm_world, ierr)
451# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
452 call mpi_bcast(p_y, 1, mpi_p, 0, mpi_comm_world, ierr)
453# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
454 call mpi_bcast(p_z, 1, mpi_p, 0, mpi_comm_world, ierr)
455# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
456 call mpi_bcast(g_x, 1, mpi_p, 0, mpi_comm_world, ierr)
457# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
458 call mpi_bcast(g_y, 1, mpi_p, 0, mpi_comm_world, ierr)
459# 89 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
460 call mpi_bcast(g_z, 1, mpi_p, 0, mpi_comm_world, ierr)
461# 91 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
462
463# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
464 call mpi_bcast(t_step_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
465# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
466 call mpi_bcast(m, 1, mpi_integer, 0, mpi_comm_world, ierr)
467# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
468 call mpi_bcast(n, 1, mpi_integer, 0, mpi_comm_world, ierr)
469# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
470 call mpi_bcast(p, 1, mpi_integer, 0, mpi_comm_world, ierr)
471# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
472 call mpi_bcast(m_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
473# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
474 call mpi_bcast(n_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
475# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
476 call mpi_bcast(p_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
477# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
478 call mpi_bcast(t_step_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
479# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
480 call mpi_bcast(t_step_stop, 1, mpi_integer, 0, mpi_comm_world, ierr)
481# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
482 call mpi_bcast(t_step_save, 1, mpi_integer, 0, mpi_comm_world, ierr)
483# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
484 call mpi_bcast(t_step_print, 1, mpi_integer, 0, mpi_comm_world, ierr)
485# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
486 call mpi_bcast(model_eqns, 1, mpi_integer, 0, mpi_comm_world, ierr)
487# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
488 call mpi_bcast(time_stepper, 1, mpi_integer, 0, mpi_comm_world, ierr)
489# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
490 call mpi_bcast(riemann_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
491# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
492 call mpi_bcast(low_mach, 1, mpi_integer, 0, mpi_comm_world, ierr)
493# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
494 call mpi_bcast(wave_speeds, 1, mpi_integer, 0, mpi_comm_world, ierr)
495# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
496 call mpi_bcast(avg_state, 1, mpi_integer, 0, mpi_comm_world, ierr)
497# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
498 call mpi_bcast(precision, 1, mpi_integer, 0, mpi_comm_world, ierr)
499# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
500 call mpi_bcast(bc_x%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
501# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
502 call mpi_bcast(bc_x%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
503# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
504 call mpi_bcast(bc_y%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
505# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
506 call mpi_bcast(bc_y%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
507# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
508 call mpi_bcast(bc_z%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
509# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
510 call mpi_bcast(bc_z%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
511# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
512 call mpi_bcast(fd_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
513# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
514 call mpi_bcast(num_probes, 1, mpi_integer, 0, mpi_comm_world, ierr)
515# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
516 call mpi_bcast(num_integrals, 1, mpi_integer, 0, mpi_comm_world, ierr)
517# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
518 call mpi_bcast(bubble_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
519# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
520 call mpi_bcast(thermal, 1, mpi_integer, 0, mpi_comm_world, ierr)
521# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
522 call mpi_bcast(num_source, 1, mpi_integer, 0, mpi_comm_world, ierr)
523# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
524 call mpi_bcast(relax_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
525# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
526 call mpi_bcast(num_ibs, 1, mpi_integer, 0, mpi_comm_world, ierr)
527# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
528 call mpi_bcast(n_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
529# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
530 call mpi_bcast(num_bc_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
531# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
532 call mpi_bcast(num_igr_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
533# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
534 call mpi_bcast(num_igr_warm_start_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
535# 101 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
536 call mpi_bcast(adap_dt_max_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
537# 103 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
538
539# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
540 call mpi_bcast(run_time_info, 1, mpi_logical, 0, mpi_comm_world, ierr)
541# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
542 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
543# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
544 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
545# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
546 call mpi_bcast(mp_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
547# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
548 call mpi_bcast(rdma_mpi, 1, mpi_logical, 0, mpi_comm_world, ierr)
549# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
550 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
551# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
552 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
553# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
554 call mpi_bcast(weno_re_flux, 1, mpi_logical, 0, mpi_comm_world, ierr)
555# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
556 call mpi_bcast(alt_soundspeed, 1, mpi_logical, 0, mpi_comm_world, ierr)
557# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
558 call mpi_bcast(null_weights, 1, mpi_logical, 0, mpi_comm_world, ierr)
559# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
560 call mpi_bcast(mixture_err, 1, mpi_logical, 0, mpi_comm_world, ierr)
561# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
562 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
563# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
564 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
565# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
566 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
567# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
568 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
569# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
570 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
571# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
572 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
573# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
574 call mpi_bcast(acoustic_source, 1, mpi_logical, 0, mpi_comm_world, ierr)
575# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
576 call mpi_bcast(probe_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
577# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
578 call mpi_bcast(integral_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
579# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
580 call mpi_bcast(prim_vars_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
581# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
582 call mpi_bcast(weno_avg, 1, mpi_logical, 0, mpi_comm_world, ierr)
583# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
584 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
585# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
586 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
587# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
588 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
589# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
590 call mpi_bcast(adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
591# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
592 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
593# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
594 call mpi_bcast(bodyforces, 1, mpi_logical, 0, mpi_comm_world, ierr)
595# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
596 call mpi_bcast(bf_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
597# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
598 call mpi_bcast(bf_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
599# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
600 call mpi_bcast(bf_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
601# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
602 call mpi_bcast(bc_x%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
603# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
604 call mpi_bcast(bc_x%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
605# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
606 call mpi_bcast(bc_x%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
607# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
608 call mpi_bcast(bc_y%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
609# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
610 call mpi_bcast(bc_y%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
611# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
612 call mpi_bcast(bc_y%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
613# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
614 call mpi_bcast(bc_z%grcbc_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
615# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
616 call mpi_bcast(bc_z%grcbc_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
617# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
618 call mpi_bcast(bc_z%grcbc_vel_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
619# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
620 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
621# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
622 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
623# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
624 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
625# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
626 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
627# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
628 call mpi_bcast(shear_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
629# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
630 call mpi_bcast(bulk_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
631# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
632 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
633# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
634 call mpi_bcast(hyperelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
635# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
636 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
637# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
638 call mpi_bcast(int_comp, 1, mpi_logical, 0, mpi_comm_world, ierr)
639# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
640 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
641# 118 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
642 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
643# 120 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
644
645 if (chemistry) then
646# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
647 call mpi_bcast(chem_params%diffusion, 1, mpi_logical, 0, mpi_comm_world, ierr)
648# 123 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
649 call mpi_bcast(chem_params%reactions, 1, mpi_logical, 0, mpi_comm_world, ierr)
650# 125 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
651
652# 127 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
653 call mpi_bcast(chem_params%gamma_method, 1, mpi_integer, 0, mpi_comm_world, ierr)
654# 127 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
655 call mpi_bcast(chem_params%transport_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
656# 129 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
657 end if
658
659 if (bubbles_lagrange) then
660# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
661 call mpi_bcast(lag_params%heatTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
662# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
663 call mpi_bcast(lag_params%massTransfer_model, 1, mpi_logical, 0, mpi_comm_world, ierr)
664# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
665 call mpi_bcast(lag_params%pressure_corrector, 1, mpi_logical, 0, mpi_comm_world, ierr)
666# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
667 call mpi_bcast(lag_params%write_bubbles, 1, mpi_logical, 0, mpi_comm_world, ierr)
668# 134 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
669 call mpi_bcast(lag_params%write_bubbles_stats, 1, mpi_logical, 0, mpi_comm_world, ierr)
670# 136 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
671
672# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
673 call mpi_bcast(lag_params%solver_approach, 1, mpi_integer, 0, mpi_comm_world, ierr)
674# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
675 call mpi_bcast(lag_params%cluster_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
676# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
677 call mpi_bcast(lag_params%smooth_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
678# 138 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
679 call mpi_bcast(lag_params%nBubs_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
680# 140 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
681
682# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
683 call mpi_bcast(lag_params%epsilonb, 1, mpi_p, 0, mpi_comm_world, ierr)
684# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
685 call mpi_bcast(lag_params%charwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
686# 142 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
687 call mpi_bcast(lag_params%valmaxvoid, 1, mpi_p, 0, mpi_comm_world, ierr)
688# 144 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
689 end if
690
691# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
692 call mpi_bcast(dt, 1, mpi_p, 0, mpi_comm_world, ierr)
693# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
694 call mpi_bcast(weno_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
695# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
696 call mpi_bcast(teno_ct, 1, mpi_p, 0, mpi_comm_world, ierr)
697# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
698 call mpi_bcast(pref, 1, mpi_p, 0, mpi_comm_world, ierr)
699# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
700 call mpi_bcast(rhoref, 1, mpi_p, 0, mpi_comm_world, ierr)
701# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
702 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
703# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
704 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
705# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
706 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
707# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
708 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
709# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
710 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
711# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
712 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
713# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
714 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
715# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
716 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
717# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
718 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
719# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
720 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
721# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
722 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
723# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
724 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
725# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
726 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
727# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
728 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
729# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
730 call mpi_bcast(bc_x%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
731# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
732 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
733# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
734 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
735# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
736 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
737# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
738 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
739# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
740 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
741# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
742 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
743# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
744 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
745# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
746 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
747# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
748 call mpi_bcast(bc_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
749# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
750 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
751# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
752 call mpi_bcast(bc_z%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
753# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
754 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
755# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
756 call mpi_bcast(bc_x%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
757# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
758 call mpi_bcast(bc_x%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
759# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
760 call mpi_bcast(bc_y%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
761# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
762 call mpi_bcast(bc_y%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
763# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
764 call mpi_bcast(bc_z%pres_in, 1, mpi_p, 0, mpi_comm_world, ierr)
765# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
766 call mpi_bcast(bc_z%pres_out, 1, mpi_p, 0, mpi_comm_world, ierr)
767# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
768 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
769# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
770 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
771# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
772 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
773# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
774 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
775# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
776 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
777# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
778 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
779# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
780 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
781# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
782 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
783# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
784 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
785# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
786 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
787# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
788 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
789# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
790 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
791# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
792 call mpi_bcast(t_stop, 1, mpi_p, 0, mpi_comm_world, ierr)
793# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
794 call mpi_bcast(t_save, 1, mpi_p, 0, mpi_comm_world, ierr)
795# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
796 call mpi_bcast(cfl_target, 1, mpi_p, 0, mpi_comm_world, ierr)
797# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
798 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
799# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
800 call mpi_bcast(alf_factor, 1, mpi_p, 0, mpi_comm_world, ierr)
801# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
802 call mpi_bcast(tau_star, 1, mpi_p, 0, mpi_comm_world, ierr)
803# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
804 call mpi_bcast(cont_damage_s, 1, mpi_p, 0, mpi_comm_world, ierr)
805# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
806 call mpi_bcast(alpha_bar, 1, mpi_p, 0, mpi_comm_world, ierr)
807# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
808 call mpi_bcast(adap_dt_tol, 1, mpi_p, 0, mpi_comm_world, ierr)
809# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
810 call mpi_bcast(ic_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
811# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
812 call mpi_bcast(ic_beta, 1, mpi_p, 0, mpi_comm_world, ierr)
813# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
814 call mpi_bcast(hyper_cleaning_speed, 1, mpi_p, 0, mpi_comm_world, ierr)
815# 158 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
816 call mpi_bcast(hyper_cleaning_tau, 1, mpi_p, 0, mpi_comm_world, ierr)
817# 160 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
818
819 do i = 1, 3
820# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
821 call mpi_bcast(bc_x%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
822# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
823 call mpi_bcast(bc_x%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
824# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
825 call mpi_bcast(bc_y%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
826# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
827 call mpi_bcast(bc_y%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
828# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
829 call mpi_bcast(bc_z%vel_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
830# 164 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
831 call mpi_bcast(bc_z%vel_out (i), 1, mpi_p, 0, mpi_comm_world, ierr)
832# 166 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
833 end do
834
835# 169 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
836 call mpi_bcast(mapped_weno, 1, mpi_logical, 0, mpi_comm_world, ierr)
837 call mpi_bcast(wenoz, 1, mpi_logical, 0, mpi_comm_world, ierr)
838 call mpi_bcast(teno, 1, mpi_logical, 0, mpi_comm_world, ierr)
839 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
840 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
841 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
842 call mpi_bcast(wenoz_q, 1, mpi_p, 0, mpi_comm_world, ierr)
843 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
844 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
845 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
846 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
847 call mpi_bcast(igr_pres_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
848 call mpi_bcast(igr_iter_solver, 1, mpi_integer, 0, mpi_comm_world, ierr)
849 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
850 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
851 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
852 call mpi_bcast(muscl_lim, 1, mpi_integer, 0, mpi_comm_world, ierr)
853# 187 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
854
855 do i = 1, num_fluids_max
856# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
857 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
858# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
859 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
860# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
861 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
862# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
863 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
864# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
865 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
866# 190 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
867 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
868# 192 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
869 call mpi_bcast(fluid_pp(i)%Re(1), 2, mpi_p, 0, mpi_comm_world, ierr)
870 end do
871
872 if (bubbles_euler .or. bubbles_lagrange) then
873# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
874 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
875# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
876 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
877# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
878 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
879# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
880 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
881# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
882 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
883# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
884 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
885# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
886 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
887# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
888 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
889# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
890 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
891# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
892 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
893# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
894 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
895# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
896 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
897# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
898 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
899# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
900 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
901# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
902 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
903# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
904 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
905# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
906 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
907# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
908 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
909# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
910 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
911# 199 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
912 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
913# 201 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
914 end if
915
916 do i = 1, num_fluids_max
917# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
918 call mpi_bcast(bc_x%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
919# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
920 call mpi_bcast(bc_x%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
921# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
922 call mpi_bcast(bc_y%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
923# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
924 call mpi_bcast(bc_y%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
925# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
926 call mpi_bcast(bc_z%alpha_rho_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
927# 205 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
928 call mpi_bcast(bc_z%alpha_in (i), 1, mpi_p, 0, mpi_comm_world, ierr)
929# 207 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
930 end do
931
932 do i = 1, num_ibs
933# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
934 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
935# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
936 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
937# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
938 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
939# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
940 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
941# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
942 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
943# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
944 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
945# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
946 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
947# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
948 call mpi_bcast(patch_ib(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
949# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
950 call mpi_bcast(patch_ib(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
951# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
952 call mpi_bcast(patch_ib(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
953# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
954 call mpi_bcast(patch_ib(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
955# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
956 call mpi_bcast(patch_ib(i)%theta, 1, mpi_p, 0, mpi_comm_world, ierr)
957# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
958 call mpi_bcast(patch_ib(i)%slip, 1, mpi_p, 0, mpi_comm_world, ierr)
959# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
960 call mpi_bcast(patch_ib(i)%mass, 1, mpi_p, 0, mpi_comm_world, ierr)
961# 213 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
962 call mpi_bcast(patch_ib(i)%model_threshold, 1, mpi_p, 0, mpi_comm_world, ierr)
963# 215 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
964# 216 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
965 call mpi_bcast(patch_ib(i)%vel, 3, mpi_p, 0, mpi_comm_world, ierr)
966# 216 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
967 call mpi_bcast(patch_ib(i)%angular_vel, 3, mpi_p, 0, mpi_comm_world, ierr)
968# 216 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
969 call mpi_bcast(patch_ib(i)%angles, 3, mpi_p, 0, mpi_comm_world, ierr)
970# 216 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
971 call mpi_bcast(patch_ib(i)%model_translate, 3, mpi_p, 0, mpi_comm_world, ierr)
972# 216 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
973 call mpi_bcast(patch_ib(i)%model_scale, 3, mpi_p, 0, mpi_comm_world, ierr)
974# 218 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
975 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
976 call mpi_bcast(patch_ib(i)%moving_ibm, 1, mpi_integer, 0, mpi_comm_world, ierr)
977 call mpi_bcast(patch_ib(i)%model_spc, 1, mpi_integer, 0, mpi_comm_world, ierr)
978 call mpi_bcast(patch_ib(i)%model_filepath, len(patch_ib(i)%model_filepath), mpi_character, 0, mpi_comm_world, ierr)
979 end do
980
981 do j = 1, num_probes_max
982 do i = 1, 3
983 call mpi_bcast(acoustic(j)%loc(i), 1, mpi_p, 0, mpi_comm_world, ierr)
984 end do
985
986 call mpi_bcast(acoustic(j)%dipole, 1, mpi_logical, 0, mpi_comm_world, ierr)
987
988# 232 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
989 call mpi_bcast(acoustic(j)%pulse, 1, mpi_integer, 0, mpi_comm_world, ierr)
990# 232 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
991 call mpi_bcast(acoustic(j)%support, 1, mpi_integer, 0, mpi_comm_world, ierr)
992# 232 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
993 call mpi_bcast(acoustic(j)%num_elements, 1, mpi_integer, 0, mpi_comm_world, ierr)
994# 232 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
995 call mpi_bcast(acoustic(j)%element_on, 1, mpi_integer, 0, mpi_comm_world, ierr)
996# 232 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
997 call mpi_bcast(acoustic(j)%bb_num_freq, 1, mpi_integer, 0, mpi_comm_world, ierr)
998# 234 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
999
1000# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1001 call mpi_bcast(acoustic(j)%mag, 1, mpi_p, 0, mpi_comm_world, ierr)
1002# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1003 call mpi_bcast(acoustic(j)%length, 1, mpi_p, 0, mpi_comm_world, ierr)
1004# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1005 call mpi_bcast(acoustic(j)%height, 1, mpi_p, 0, mpi_comm_world, ierr)
1006# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1007 call mpi_bcast(acoustic(j)%wavelength, 1, mpi_p, 0, mpi_comm_world, ierr)
1008# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1009 call mpi_bcast(acoustic(j)%frequency, 1, mpi_p, 0, mpi_comm_world, ierr)
1010# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1011 call mpi_bcast(acoustic(j)%gauss_sigma_dist, 1, mpi_p, 0, mpi_comm_world, ierr)
1012# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1013 call mpi_bcast(acoustic(j)%gauss_sigma_time, 1, mpi_p, 0, mpi_comm_world, ierr)
1014# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1015 call mpi_bcast(acoustic(j)%npulse, 1, mpi_p, 0, mpi_comm_world, ierr)
1016# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1017 call mpi_bcast(acoustic(j)%dir, 1, mpi_p, 0, mpi_comm_world, ierr)
1018# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1019 call mpi_bcast(acoustic(j)%delay, 1, mpi_p, 0, mpi_comm_world, ierr)
1020# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1021 call mpi_bcast(acoustic(j)%foc_length, 1, mpi_p, 0, mpi_comm_world, ierr)
1022# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1023 call mpi_bcast(acoustic(j)%aperture, 1, mpi_p, 0, mpi_comm_world, ierr)
1024# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1025 call mpi_bcast(acoustic(j)%element_spacing_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1026# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1027 call mpi_bcast(acoustic(j)%element_polygon_ratio, 1, mpi_p, 0, mpi_comm_world, ierr)
1028# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1029 call mpi_bcast(acoustic(j)%rotate_angle, 1, mpi_p, 0, mpi_comm_world, ierr)
1030# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1031 call mpi_bcast(acoustic(j)%bb_bandwidth, 1, mpi_p, 0, mpi_comm_world, ierr)
1032# 240 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1033 call mpi_bcast(acoustic(j)%bb_lowest_freq, 1, mpi_p, 0, mpi_comm_world, ierr)
1034# 242 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1035
1036# 244 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1037 call mpi_bcast(probe(j)%x, 1, mpi_p, 0, mpi_comm_world, ierr)
1038# 244 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1039 call mpi_bcast(probe(j)%y, 1, mpi_p, 0, mpi_comm_world, ierr)
1040# 244 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1041 call mpi_bcast(probe(j)%z, 1, mpi_p, 0, mpi_comm_world, ierr)
1042# 246 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1043
1044# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1045 call mpi_bcast(integral(j)%xmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1046# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1047 call mpi_bcast(integral(j)%xmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1048# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1049 call mpi_bcast(integral(j)%ymin, 1, mpi_p, 0, mpi_comm_world, ierr)
1050# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1051 call mpi_bcast(integral(j)%ymax, 1, mpi_p, 0, mpi_comm_world, ierr)
1052# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1053 call mpi_bcast(integral(j)%zmin, 1, mpi_p, 0, mpi_comm_world, ierr)
1054# 248 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1055 call mpi_bcast(integral(j)%zmax, 1, mpi_p, 0, mpi_comm_world, ierr)
1056# 250 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1057 end do
1058
1059 ! NVIDIA UVM variables
1060 call mpi_bcast(nv_uvm_out_of_core, 1, mpi_logical, 0, mpi_comm_world, ierr)
1061 call mpi_bcast(nv_uvm_igr_temps_on_gpu, 1, mpi_integer, 0, mpi_comm_world, ierr)
1062 call mpi_bcast(nv_uvm_pref_gpu, 1, mpi_logical, 0, mpi_comm_world, ierr)
1063
1064#endif
1065
1066 end subroutine s_mpi_bcast_user_inputs
1067
1068 !> @brief Broadcasts random phase numbers from rank 0 to all MPI processes.
1069 impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
1070 integer, intent(in) :: num_freq
1071 real(wp), intent(inout), dimension(1:num_freq) :: phi_rn
1072
1073#ifdef MFC_MPI
1074 integer :: ierr !< Generic flag used to identify and report MPI errors
1075 call mpi_bcast(phi_rn, num_freq, mpi_p, 0, mpi_comm_world, ierr)
1076#endif
1077
1078 end subroutine s_mpi_send_random_number
1079
1080 !> @brief Deallocates immersed boundary MPI communication buffers.
1082
1083#ifdef MFC_MPI
1084 if (ib) then
1085#ifdef MFC_DEBUG
1086# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1087 block
1088# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1089 use iso_fortran_env, only: output_unit
1090# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1091
1092# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1093 print *, 'm_mpi_proxy.fpp:278: ', '@:DEALLOCATE(ib_buff_send, ib_buff_recv)'
1094# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1095
1096# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1097 call flush (output_unit)
1098# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1099 end block
1100# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1101#endif
1102# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1103
1104# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1105#if defined(MFC_OpenACC)
1106# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1107!$acc exit data delete(ib_buff_send, ib_buff_recv)
1108# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1109#elif defined(MFC_OpenMP)
1110# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1111!$omp target exit data map(release:ib_buff_send, ib_buff_recv)
1112# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1113#endif
1114# 278 "/home/runner/work/MFC/MFC/src/simulation/m_mpi_proxy.fpp"
1115 deallocate (ib_buff_send, ib_buff_recv)
1116 end if
1117#endif
1118
1119 end subroutine s_finalize_mpi_proxy_module
1120
1121end module m_mpi_proxy
integer, intent(in) j
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer buff_size
The number of cells that are necessary to be able to store enough boundary conditions data to march t...
type(cell_num_bounds) cells_bounds
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
MPI communication layer: domain decomposition, halo exchange, reductions, and parallel I/O setup.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
subroutine s_initialize_mpi_proxy_module()
Allocates immersed boundary communication buffers for MPI halo exchanges.
integer, dimension(:), allocatable, private ib_buff_send
This variable is utilized to pack and send the buffer of the immersed boundary markers,...
integer, dimension(:), allocatable, private ib_buff_recv
q_cons_buff_recv is utilized to receive and unpack the buffer of the immersed boundary markers,...
impure subroutine s_mpi_send_random_number(phi_rn, num_freq)
Broadcasts random phase numbers from rank 0 to all MPI processes.
subroutine s_finalize_mpi_proxy_module()
Deallocates immersed boundary MPI communication buffers.
impure subroutine s_mpi_bcast_user_inputs()
Since only the processor with rank 0 reads and verifies the consistency of user inputs,...
NVIDIA NVTX profiling API bindings for GPU performance instrumentation.
Definition m_nvtx.f90:6