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/pre_process/m_mpi_proxy.fpp"
2!>
3!! @file
4!! @brief Contains module m_mpi_proxy
5
6!> @brief Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing
8
9#ifdef MFC_MPI
10 use mpi
11#endif
12
13 use m_helper
16 use m_mpi_common
17
18 implicit none
19
20contains
21 !> Since only processor with rank 0 is in charge of reading and checking the consistency of the user provided inputs, these are
22 !! not available to the remaining processors. This subroutine is then in charge of broadcasting the required information.
23 impure subroutine s_mpi_bcast_user_inputs
24
25#ifdef MFC_MPI
26 integer :: i, j
27 integer :: ierr
28
29 ! Generated: case_dir, namelist scalars (INT/LOG/REAL), fluid_rho, fluid_pp loop, bub_pp
30# 1 "/home/runner/work/MFC/MFC/build/include/pre_process/generated_bcast.fpp" 1
31! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
32!
33 call mpi_bcast(case_dir, len(case_dir), mpi_character, 0, mpi_comm_world, ierr)
34
35 ! Character scalars
36 call mpi_bcast(file_extension, len(file_extension), mpi_character, 0, mpi_comm_world, ierr)
37 call mpi_bcast(files_dir, len(files_dir), mpi_character, 0, mpi_comm_world, ierr)
38
39 ! Integer scalars
40 call mpi_bcast(dist_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
41 call mpi_bcast(elliptic_smoothing_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
42 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
43 call mpi_bcast(loops_x, 1, mpi_integer, 0, mpi_comm_world, ierr)
44 call mpi_bcast(loops_y, 1, mpi_integer, 0, mpi_comm_world, ierr)
45 call mpi_bcast(loops_z, 1, mpi_integer, 0, mpi_comm_world, ierr)
46 call mpi_bcast(m, 1, mpi_integer, 0, mpi_comm_world, ierr)
47 call mpi_bcast(mixlayer_perturb_nk, 1, mpi_integer, 0, mpi_comm_world, ierr)
48 call mpi_bcast(model_eqns, 1, mpi_integer, 0, mpi_comm_world, ierr)
49 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
50 call mpi_bcast(n, 1, mpi_integer, 0, mpi_comm_world, ierr)
51 call mpi_bcast(n_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
52 call mpi_bcast(n_start_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
53 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
54 call mpi_bcast(num_bc_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
55 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
56 call mpi_bcast(num_ibs, 1, mpi_integer, 0, mpi_comm_world, ierr)
57 call mpi_bcast(num_particle_clouds, 1, mpi_integer, 0, mpi_comm_world, ierr)
58 call mpi_bcast(num_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
59 call mpi_bcast(num_stl_models, 1, mpi_integer, 0, mpi_comm_world, ierr)
60 call mpi_bcast(p, 1, mpi_integer, 0, mpi_comm_world, ierr)
61 call mpi_bcast(perturb_flow_fluid, 1, mpi_integer, 0, mpi_comm_world, ierr)
62 call mpi_bcast(perturb_sph_fluid, 1, mpi_integer, 0, mpi_comm_world, ierr)
63 call mpi_bcast(precision, 1, mpi_integer, 0, mpi_comm_world, ierr)
64 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
65 call mpi_bcast(relax_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
66 call mpi_bcast(t_step_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
67 call mpi_bcast(t_step_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
68 call mpi_bcast(thermal, 1, mpi_integer, 0, mpi_comm_world, ierr)
69 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
70
71 ! Logical scalars
72 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
73 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
74 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
75 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
76 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
77 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
78 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
79 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
80 call mpi_bcast(elliptic_smoothing, 1, mpi_logical, 0, mpi_comm_world, ierr)
81 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
82 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
83 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
84 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
85 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
86 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
87 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
88 call mpi_bcast(mixlayer_perturb, 1, mpi_logical, 0, mpi_comm_world, ierr)
89 call mpi_bcast(mixlayer_vel_profile, 1, mpi_logical, 0, mpi_comm_world, ierr)
90 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
91 call mpi_bcast(old_grid, 1, mpi_logical, 0, mpi_comm_world, ierr)
92 call mpi_bcast(old_ic, 1, mpi_logical, 0, mpi_comm_world, ierr)
93 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
94 call mpi_bcast(perturb_flow, 1, mpi_logical, 0, mpi_comm_world, ierr)
95 call mpi_bcast(perturb_sph, 1, mpi_logical, 0, mpi_comm_world, ierr)
96 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
97 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
98 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
99 call mpi_bcast(reactive_burn, 1, mpi_logical, 0, mpi_comm_world, ierr)
100 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
101 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
102 call mpi_bcast(simplex_perturb, 1, mpi_logical, 0, mpi_comm_world, ierr)
103 call mpi_bcast(stretch_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
104 call mpi_bcast(stretch_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
105 call mpi_bcast(stretch_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
106 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
107 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
108
109 ! Real scalars
110 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
111 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
112 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
113 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
114 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
115 call mpi_bcast(a_x, 1, mpi_p, 0, mpi_comm_world, ierr)
116 call mpi_bcast(a_y, 1, mpi_p, 0, mpi_comm_world, ierr)
117 call mpi_bcast(a_z, 1, mpi_p, 0, mpi_comm_world, ierr)
118 call mpi_bcast(mixlayer_perturb_k0, 1, mpi_p, 0, mpi_comm_world, ierr)
119 call mpi_bcast(mixlayer_vel_coef, 1, mpi_p, 0, mpi_comm_world, ierr)
120 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
121 call mpi_bcast(perturb_flow_mag, 1, mpi_p, 0, mpi_comm_world, ierr)
122 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
123 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
124 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
125 call mpi_bcast(rhorv, 1, mpi_p, 0, mpi_comm_world, ierr)
126 call mpi_bcast(sigr, 1, mpi_p, 0, mpi_comm_world, ierr)
127 call mpi_bcast(sigv, 1, mpi_p, 0, mpi_comm_world, ierr)
128 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
129 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
130 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
131 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
132 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
133 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
134 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
135
136 ! Array broadcasts (dimension from FORTRAN_ARRAY_DIMS)
137 call mpi_bcast(fluid_rho(1), num_fluids_max, mpi_p, 0, mpi_comm_world, ierr)
138
139 ! fluid_pp member loop
140 do i = 1, num_fluids_max
141 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
142 call mpi_bcast(fluid_pp(i)%K, 1, mpi_p, 0, mpi_comm_world, ierr)
143 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
144 call mpi_bcast(fluid_pp(i)%eos, 1, mpi_integer, 0, mpi_comm_world, ierr)
145 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
146 call mpi_bcast(fluid_pp(i)%hb_m, 1, mpi_p, 0, mpi_comm_world, ierr)
147 call mpi_bcast(fluid_pp(i)%jwl_a, 1, mpi_p, 0, mpi_comm_world, ierr)
148 call mpi_bcast(fluid_pp(i)%jwl_b, 1, mpi_p, 0, mpi_comm_world, ierr)
149 call mpi_bcast(fluid_pp(i)%jwl_omega, 1, mpi_p, 0, mpi_comm_world, ierr)
150 call mpi_bcast(fluid_pp(i)%jwl_r1, 1, mpi_p, 0, mpi_comm_world, ierr)
151 call mpi_bcast(fluid_pp(i)%jwl_r2, 1, mpi_p, 0, mpi_comm_world, ierr)
152 call mpi_bcast(fluid_pp(i)%jwl_rho0, 1, mpi_p, 0, mpi_comm_world, ierr)
153 call mpi_bcast(fluid_pp(i)%jwl_t0, 1, mpi_p, 0, mpi_comm_world, ierr)
154 call mpi_bcast(fluid_pp(i)%k_therm, 1, mpi_p, 0, mpi_comm_world, ierr)
155 call mpi_bcast(fluid_pp(i)%mg_c0, 1, mpi_p, 0, mpi_comm_world, ierr)
156 call mpi_bcast(fluid_pp(i)%mg_gruneisen, 1, mpi_p, 0, mpi_comm_world, ierr)
157 call mpi_bcast(fluid_pp(i)%mg_gruneisen_a, 1, mpi_p, 0, mpi_comm_world, ierr)
158 call mpi_bcast(fluid_pp(i)%mg_rho0, 1, mpi_p, 0, mpi_comm_world, ierr)
159 call mpi_bcast(fluid_pp(i)%mg_s, 1, mpi_p, 0, mpi_comm_world, ierr)
160 call mpi_bcast(fluid_pp(i)%mg_s2, 1, mpi_p, 0, mpi_comm_world, ierr)
161 call mpi_bcast(fluid_pp(i)%mg_s3, 1, mpi_p, 0, mpi_comm_world, ierr)
162 call mpi_bcast(fluid_pp(i)%mg_t0, 1, mpi_p, 0, mpi_comm_world, ierr)
163 call mpi_bcast(fluid_pp(i)%mu_bulk, 1, mpi_p, 0, mpi_comm_world, ierr)
164 call mpi_bcast(fluid_pp(i)%mu_max, 1, mpi_p, 0, mpi_comm_world, ierr)
165 call mpi_bcast(fluid_pp(i)%mu_min, 1, mpi_p, 0, mpi_comm_world, ierr)
166 call mpi_bcast(fluid_pp(i)%nn, 1, mpi_p, 0, mpi_comm_world, ierr)
167 call mpi_bcast(fluid_pp(i)%non_newtonian, 1, mpi_logical, 0, mpi_comm_world, ierr)
168 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
169 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
170 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
171 call mpi_bcast(fluid_pp(i)%tau0, 1, mpi_p, 0, mpi_comm_world, ierr)
172 call mpi_bcast(fluid_pp(i)%vinet_gruneisen, 1, mpi_p, 0, mpi_comm_world, ierr)
173 call mpi_bcast(fluid_pp(i)%vinet_gruneisen_a, 1, mpi_p, 0, mpi_comm_world, ierr)
174 call mpi_bcast(fluid_pp(i)%vinet_k0, 1, mpi_p, 0, mpi_comm_world, ierr)
175 call mpi_bcast(fluid_pp(i)%vinet_k0p, 1, mpi_p, 0, mpi_comm_world, ierr)
176 call mpi_bcast(fluid_pp(i)%vinet_rho0, 1, mpi_p, 0, mpi_comm_world, ierr)
177 call mpi_bcast(fluid_pp(i)%vinet_t0, 1, mpi_p, 0, mpi_comm_world, ierr)
178 end do
179
180 ! bub_pp members (under bubbles guard)
181 if (bubbles_euler .or. bubbles_lagrange) then
182 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
183 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
184 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
185 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
186 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
187 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
188 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
189 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
190 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
191 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
192 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
193 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
194 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
195 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
196 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
197 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
198 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
199 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
200 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
201 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
202 end if
203
204# 30 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp" 2
205
206 ! manual: m/n/p_glb (computed from m/n/p post-read, not namelist-bound)
207 call mpi_bcast(m_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
208 call mpi_bcast(n_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
209 call mpi_bcast(p_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
210
211 ! manual: bc_x/y/z member broadcasts (struct members not in NAMELIST_VARS)
212# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
213 call mpi_bcast(bc_x%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
214# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
215 call mpi_bcast(bc_y%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
216# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
217 call mpi_bcast(bc_z%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
218# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
219 call mpi_bcast(bc_x%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
220# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
221 call mpi_bcast(bc_y%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
222# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
223 call mpi_bcast(bc_z%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
224# 41 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
225
226 ! manual: domain bounds and wall temperatures (REAL struct members, not in NAMELIST_VARS)
227# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
228 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
229# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
230 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
231# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
232 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
233# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
234 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
235# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
236 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
237# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
238 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
239# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
240 call mpi_bcast(bc_x%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
241# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
242 call mpi_bcast(bc_x%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
243# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
244 call mpi_bcast(bc_y%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
245# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
246 call mpi_bcast(bc_y%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
247# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
248 call mpi_bcast(bc_z%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
249# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
250 call mpi_bcast(bc_z%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
251# 50 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
252
253 ! manual: BC type codes (INTEGER struct members)
254# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
255 call mpi_bcast(bc_x%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
256# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
257 call mpi_bcast(bc_x%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
258# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
259 call mpi_bcast(bc_y%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
260# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
261 call mpi_bcast(bc_y%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
262# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
263 call mpi_bcast(bc_z%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
264# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
265 call mpi_bcast(bc_z%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
266# 55 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
267
268 ! wall-velocity members consumed by s_slip_wall/s_no_slip_wall on all ranks
269# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
270# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
271 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
272 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
273# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
274 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
275 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
276# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
277 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
278 call mpi_bcast(bc_x%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
279# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
280# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
281# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
282 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
283 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
284# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
285 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
286 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
287# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
288 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
289 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
290# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
291# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
292# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
293 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
294 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
295# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
296 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
297 call mpi_bcast(bc_z%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
298# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
299 call mpi_bcast(bc_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
300 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
301# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
302# 63 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
303
304 ! manual: cfl_dt (runtime-computed logical), bc_io (BC-file existence)
305 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
306 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
307
308 ! manual: patch_bc (complex array members broadcast with size())
309 do i = 1, num_bc_patches_max
310# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
311 call mpi_bcast(patch_bc(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
312# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
313 call mpi_bcast(patch_bc(i)%type, 1, mpi_integer, 0, mpi_comm_world, ierr)
314# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
315 call mpi_bcast(patch_bc(i)%dir, 1, mpi_integer, 0, mpi_comm_world, ierr)
316# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
317 call mpi_bcast(patch_bc(i)%loc, 1, mpi_integer, 0, mpi_comm_world, ierr)
318# 73 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
319
320 call mpi_bcast(patch_bc(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
321
322# 77 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
323 call mpi_bcast(patch_bc(i)%centroid, size(patch_bc(i)%centroid), mpi_p, 0, mpi_comm_world, ierr)
324# 77 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
325 call mpi_bcast(patch_bc(i)%length, size(patch_bc(i)%length), mpi_p, 0, mpi_comm_world, ierr)
326# 79 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
327 end do
328
329 ! manual: patch_icpp (complex members: alter_patch, sph_har_coeff, size() arrays)
330 do i = 1, num_patches_max
331# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
332 call mpi_bcast(patch_icpp(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
333# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
334 call mpi_bcast(patch_icpp(i)%smooth_patch_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
335# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
336 call mpi_bcast(patch_icpp(i)%hcid, 1, mpi_integer, 0, mpi_comm_world, ierr)
337# 86 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
338
339 call mpi_bcast(patch_icpp(i)%smoothen, 1, mpi_logical, 0, mpi_comm_world, ierr)
340 call mpi_bcast(patch_icpp(i)%non_axis_sym, 1, mpi_logical, 0, mpi_comm_world, ierr)
341 call mpi_bcast(patch_icpp(i)%alter_patch(0), num_patches_max, mpi_logical, 0, mpi_comm_world, ierr)
342
343# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
344 call mpi_bcast(patch_icpp(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
345# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
346 call mpi_bcast(patch_icpp(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
347# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
348 call mpi_bcast(patch_icpp(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
349# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
350 call mpi_bcast(patch_icpp(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
351# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
352 call mpi_bcast(patch_icpp(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
353# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
354 call mpi_bcast(patch_icpp(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
355# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
356 call mpi_bcast(patch_icpp(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
357# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
358 call mpi_bcast(patch_icpp(i)%epsilon, 1, mpi_p, 0, mpi_comm_world, ierr)
359# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
360 call mpi_bcast(patch_icpp(i)%beta, 1, mpi_p, 0, mpi_comm_world, ierr)
361# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
362 call mpi_bcast(patch_icpp(i)%smooth_coeff, 1, mpi_p, 0, mpi_comm_world, ierr)
363# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
364 call mpi_bcast(patch_icpp(i)%rho, 1, mpi_p, 0, mpi_comm_world, ierr)
365# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
366 call mpi_bcast(patch_icpp(i)%p0, 1, mpi_p, 0, mpi_comm_world, ierr)
367# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
368 call mpi_bcast(patch_icpp(i)%m0, 1, mpi_p, 0, mpi_comm_world, ierr)
369# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
370 call mpi_bcast(patch_icpp(i)%r0, 1, mpi_p, 0, mpi_comm_world, ierr)
371# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
372 call mpi_bcast(patch_icpp(i)%v0, 1, mpi_p, 0, mpi_comm_world, ierr)
373# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
374 call mpi_bcast(patch_icpp(i)%pres, 1, mpi_p, 0, mpi_comm_world, ierr)
375# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
376 call mpi_bcast(patch_icpp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
377# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
378 call mpi_bcast(patch_icpp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
379# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
380 call mpi_bcast(patch_icpp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
381# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
382 call mpi_bcast(patch_icpp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
383# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
384 call mpi_bcast(patch_icpp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
385# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
386 call mpi_bcast(patch_icpp(i)%cf_val, 1, mpi_p, 0, mpi_comm_world, ierr)
387# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
388 call mpi_bcast(patch_icpp(i)%Bx, 1, mpi_p, 0, mpi_comm_world, ierr)
389# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
390 call mpi_bcast(patch_icpp(i)%By, 1, mpi_p, 0, mpi_comm_world, ierr)
391# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
392 call mpi_bcast(patch_icpp(i)%Bz, 1, mpi_p, 0, mpi_comm_world, ierr)
393# 98 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
394
395# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
396 call mpi_bcast(patch_icpp(i)%a(2), 1, mpi_p, 0, mpi_comm_world, ierr)
397# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
398 call mpi_bcast(patch_icpp(i)%a(3), 1, mpi_p, 0, mpi_comm_world, ierr)
399# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
400 call mpi_bcast(patch_icpp(i)%a(4), 1, mpi_p, 0, mpi_comm_world, ierr)
401# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
402 call mpi_bcast(patch_icpp(i)%a(5), 1, mpi_p, 0, mpi_comm_world, ierr)
403# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
404 call mpi_bcast(patch_icpp(i)%a(6), 1, mpi_p, 0, mpi_comm_world, ierr)
405# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
406 call mpi_bcast(patch_icpp(i)%a(7), 1, mpi_p, 0, mpi_comm_world, ierr)
407# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
408 call mpi_bcast(patch_icpp(i)%a(8), 1, mpi_p, 0, mpi_comm_world, ierr)
409# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
410 call mpi_bcast(patch_icpp(i)%a(9), 1, mpi_p, 0, mpi_comm_world, ierr)
411# 102 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
412
413# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
414 call mpi_bcast(patch_icpp(i)%normal, size(patch_icpp(i)%normal), mpi_p, 0, mpi_comm_world, ierr)
415# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
416 call mpi_bcast(patch_icpp(i)%radii, size(patch_icpp(i)%radii), mpi_p, 0, mpi_comm_world, ierr)
417# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
418 call mpi_bcast(patch_icpp(i)%vel, size(patch_icpp(i)%vel), mpi_p, 0, mpi_comm_world, ierr)
419# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
420 call mpi_bcast(patch_icpp(i)%tau_e, size(patch_icpp(i)%tau_e), mpi_p, 0, mpi_comm_world, ierr)
421# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
422 call mpi_bcast(patch_icpp(i)%alpha_rho, size(patch_icpp(i)%alpha_rho), mpi_p, 0, mpi_comm_world, ierr)
423# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
424 call mpi_bcast(patch_icpp(i)%alpha, size(patch_icpp(i)%alpha), mpi_p, 0, mpi_comm_world, ierr)
425# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
426 call mpi_bcast(patch_icpp(i)%fourier_cos, size(patch_icpp(i)%fourier_cos), mpi_p, 0, mpi_comm_world, ierr)
427# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
428 call mpi_bcast(patch_icpp(i)%fourier_sin, size(patch_icpp(i)%fourier_sin), mpi_p, 0, mpi_comm_world, ierr)
429# 107 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
430
431 call mpi_bcast(patch_icpp(i)%sph_har_coeff, size(patch_icpp(i)%sph_har_coeff), mpi_p, 0, mpi_comm_world, ierr)
432 call mpi_bcast(patch_icpp(i)%modal_clip_r_to_min, 1, mpi_logical, 0, mpi_comm_world, ierr)
433 call mpi_bcast(patch_icpp(i)%modal_r_min, 1, mpi_p, 0, mpi_comm_world, ierr)
434 call mpi_bcast(patch_icpp(i)%modal_use_exp_form, 1, mpi_logical, 0, mpi_comm_world, ierr)
435
436 call mpi_bcast(patch_icpp(i)%model_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
437
438 if (chemistry) then
439 call mpi_bcast(patch_icpp(i)%Y, size(patch_icpp(i)%Y), mpi_p, 0, mpi_comm_world, ierr)
440 end if
441 end do
442
443 ! manual: patch_ib (per-target member subset; pre uses size() for vel/angular_vel/angles)
444 do i = 1, num_ibs
445# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
446 call mpi_bcast(patch_ib(i)%vel, size(patch_ib(i)%vel), mpi_p, 0, mpi_comm_world, ierr)
447# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
448 call mpi_bcast(patch_ib(i)%angular_vel, size(patch_ib(i)%angular_vel), mpi_p, 0, mpi_comm_world, ierr)
449# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
450 call mpi_bcast(patch_ib(i)%angles, size(patch_ib(i)%angles), mpi_p, 0, mpi_comm_world, ierr)
451# 125 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
452 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
453
454# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
455 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
456# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
457 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
458# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
459 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
460# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
461 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
462# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
463 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
464# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
465 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
466# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
467 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
468# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
469 call mpi_bcast(patch_ib(i)%v_blow, 1, mpi_p, 0, mpi_comm_world, ierr)
470# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
471 call mpi_bcast(patch_ib(i)%burn_rate_exp, 1, mpi_p, 0, mpi_comm_world, ierr)
472# 130 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
473 call mpi_bcast(patch_ib(i)%burn_rate_pref, 1, mpi_p, 0, mpi_comm_world, ierr)
474# 132 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
475 call mpi_bcast(patch_ib(i)%airfoil_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
476 call mpi_bcast(patch_ib(i)%model_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
477 call mpi_bcast(patch_ib(i)%inj_species, 1, mpi_integer, 0, mpi_comm_world, ierr)
478 call mpi_bcast(patch_ib(i)%slip, 1, mpi_logical, 0, mpi_comm_world, ierr)
479 end do
480
481 ! manual: particle_cloud (runtime loop to num_particle_clouds; irregular member subset)
482 do i = 1, num_particle_clouds
483# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
484 call mpi_bcast(particle_cloud(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
485# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
486 call mpi_bcast(particle_cloud(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
487# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
488 call mpi_bcast(particle_cloud(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
489# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
490 call mpi_bcast(particle_cloud(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
491# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
492 call mpi_bcast(particle_cloud(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
493# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
494 call mpi_bcast(particle_cloud(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
495# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
496 call mpi_bcast(particle_cloud(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
497# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
498 call mpi_bcast(particle_cloud(i)%mass, 1, mpi_p, 0, mpi_comm_world, ierr)
499# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
500 call mpi_bcast(particle_cloud(i)%min_spacing, 1, mpi_p, 0, mpi_comm_world, ierr)
501# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
502 call mpi_bcast(particle_cloud(i)%shell_inner_radius, 1, mpi_p, 0, mpi_comm_world, ierr)
503# 142 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
504 call mpi_bcast(particle_cloud(i)%shell_outer_radius, 1, mpi_p, 0, mpi_comm_world, ierr)
505# 144 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
506 call mpi_bcast(particle_cloud(i)%num_particles, 1, mpi_integer, 0, mpi_comm_world, ierr)
507 call mpi_bcast(particle_cloud(i)%moving_ibm, 1, mpi_integer, 0, mpi_comm_world, ierr)
508 call mpi_bcast(particle_cloud(i)%seed, 1, mpi_integer, 0, mpi_comm_world, ierr)
509 call mpi_bcast(particle_cloud(i)%cloud_geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
510 call mpi_bcast(particle_cloud(i)%packing_method, 1, mpi_integer, 0, mpi_comm_world, ierr)
511 call mpi_bcast(particle_cloud(i)%periodic, 1, mpi_integer, 0, mpi_comm_world, ierr)
512 end do
513
514 ! manual: ib_airfoil (kept manual alongside patch_ib)
515 do i = 1, num_ib_airfoils_max
516# 155 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
517 call mpi_bcast(ib_airfoil(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
518# 155 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
519 call mpi_bcast(ib_airfoil(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
520# 155 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
521 call mpi_bcast(ib_airfoil(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
522# 155 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
523 call mpi_bcast(ib_airfoil(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
524# 157 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
525 end do
526
527 ! manual: stl_models loop (num_stl_models scalar is generated; grouped array members)
528 do i = 1, num_stl_models_max
529 call mpi_bcast(stl_models(i)%model_filepath, len(stl_models(i)%model_filepath), mpi_character, 0, mpi_comm_world, ierr)
530 call mpi_bcast(stl_models(i)%model_threshold, 1, mpi_p, 0, mpi_comm_world, ierr)
531# 164 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
532 call mpi_bcast(stl_models(i)%model_translate, 3, mpi_p, 0, mpi_comm_world, ierr)
533# 164 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
534 call mpi_bcast(stl_models(i)%model_scale, 3, mpi_p, 0, mpi_comm_world, ierr)
535# 166 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
536 end do
537
538 ! Hardcoded-patch variables (#1290; not namelist-bound, set on rank 0)
539 call mpi_bcast(interface_file, len(interface_file), mpi_character, 0, mpi_comm_world, ierr)
540 call mpi_bcast(normfac, 1, mpi_p, 0, mpi_comm_world, ierr)
541 call mpi_bcast(normmag, 1, mpi_p, 0, mpi_comm_world, ierr)
542 call mpi_bcast(g0_ic, 1, mpi_p, 0, mpi_comm_world, ierr)
543 call mpi_bcast(p0_ic, 1, mpi_p, 0, mpi_comm_world, ierr)
544
545 ! manual: simplex_params density perturbation (nested i-j loops; irregular structure)
546 do i = 1, num_fluids_max
547 call mpi_bcast(simplex_params%perturb_dens(i), 1, mpi_logical, 0, mpi_comm_world, ierr)
548 call mpi_bcast(simplex_params%perturb_dens_freq(i), 1, mpi_p, 0, mpi_comm_world, ierr)
549 call mpi_bcast(simplex_params%perturb_dens_scale(i), 1, mpi_p, 0, mpi_comm_world, ierr)
550
551 do j = 1, 3
552 call mpi_bcast(simplex_params%perturb_dens_offset(i, j), 1, mpi_p, 0, mpi_comm_world, ierr)
553 end do
554 end do
555
556 ! manual: simplex_params velocity perturbation
557 do i = 1, 3
558 call mpi_bcast(simplex_params%perturb_vel(i), 1, mpi_logical, 0, mpi_comm_world, ierr)
559 call mpi_bcast(simplex_params%perturb_vel_freq(i), 1, mpi_p, 0, mpi_comm_world, ierr)
560 call mpi_bcast(simplex_params%perturb_vel_scale(i), 1, mpi_p, 0, mpi_comm_world, ierr)
561
562 do j = 1, 3
563 call mpi_bcast(simplex_params%perturb_vel_offset(i, j), 1, mpi_p, 0, mpi_comm_world, ierr)
564 end do
565 end do
566#endif
567
568 end subroutine s_mpi_bcast_user_inputs
569
570end module m_mpi_proxy
integer, intent(in) j
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Defines global parameters for the computational domain, simulation algorithm, and initial conditions.
integer p_glb
Global number of cells in each direction.
type(int_bounds_info) bc_z
Boundary conditions in the x-, y- and z-coordinate directions.
logical bc_io
whether or not to save BC data
type(bounds_info) z_domain
Locations of the domain bounds in the x-, y- and z-coordinate directions.
character(len=2 *path_len) interface_file
type(int_bounds_info) bc_y
type(int_bounds_info) bc_x
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.
Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing.
impure subroutine s_mpi_bcast_user_inputs
Since only processor with rank 0 is in charge of reading and checking the consistency of the user pro...