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 ! Integer scalars
36 call mpi_bcast(dist_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
37 call mpi_bcast(elliptic_smoothing_iters, 1, mpi_integer, 0, mpi_comm_world, ierr)
38 call mpi_bcast(igr_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
39 call mpi_bcast(loops_x, 1, mpi_integer, 0, mpi_comm_world, ierr)
40 call mpi_bcast(loops_y, 1, mpi_integer, 0, mpi_comm_world, ierr)
41 call mpi_bcast(loops_z, 1, mpi_integer, 0, mpi_comm_world, ierr)
42 call mpi_bcast(m, 1, mpi_integer, 0, mpi_comm_world, ierr)
43 call mpi_bcast(mixlayer_perturb_nk, 1, mpi_integer, 0, mpi_comm_world, ierr)
44 call mpi_bcast(model_eqns, 1, mpi_integer, 0, mpi_comm_world, ierr)
45 call mpi_bcast(muscl_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
46 call mpi_bcast(n, 1, mpi_integer, 0, mpi_comm_world, ierr)
47 call mpi_bcast(n_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
48 call mpi_bcast(n_start_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
49 call mpi_bcast(nb, 1, mpi_integer, 0, mpi_comm_world, ierr)
50 call mpi_bcast(num_bc_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
51 call mpi_bcast(num_fluids, 1, mpi_integer, 0, mpi_comm_world, ierr)
52 call mpi_bcast(num_ibs, 1, mpi_integer, 0, mpi_comm_world, ierr)
53 call mpi_bcast(num_patches, 1, mpi_integer, 0, mpi_comm_world, ierr)
54 call mpi_bcast(num_stl_models, 1, mpi_integer, 0, mpi_comm_world, ierr)
55 call mpi_bcast(p, 1, mpi_integer, 0, mpi_comm_world, ierr)
56 call mpi_bcast(perturb_flow_fluid, 1, mpi_integer, 0, mpi_comm_world, ierr)
57 call mpi_bcast(perturb_sph_fluid, 1, mpi_integer, 0, mpi_comm_world, ierr)
58 call mpi_bcast(precision, 1, mpi_integer, 0, mpi_comm_world, ierr)
59 call mpi_bcast(recon_type, 1, mpi_integer, 0, mpi_comm_world, ierr)
60 call mpi_bcast(relax_model, 1, mpi_integer, 0, mpi_comm_world, ierr)
61 call mpi_bcast(t_step_old, 1, mpi_integer, 0, mpi_comm_world, ierr)
62 call mpi_bcast(t_step_start, 1, mpi_integer, 0, mpi_comm_world, ierr)
63 call mpi_bcast(thermal, 1, mpi_integer, 0, mpi_comm_world, ierr)
64 call mpi_bcast(weno_order, 1, mpi_integer, 0, mpi_comm_world, ierr)
65
66 ! Logical scalars
67 call mpi_bcast(adv_n, 1, mpi_logical, 0, mpi_comm_world, ierr)
68 call mpi_bcast(bubbles_euler, 1, mpi_logical, 0, mpi_comm_world, ierr)
69 call mpi_bcast(bubbles_lagrange, 1, mpi_logical, 0, mpi_comm_world, ierr)
70 call mpi_bcast(cfl_adap_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
71 call mpi_bcast(cfl_const_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
72 call mpi_bcast(cont_damage, 1, mpi_logical, 0, mpi_comm_world, ierr)
73 call mpi_bcast(cyl_coord, 1, mpi_logical, 0, mpi_comm_world, ierr)
74 call mpi_bcast(down_sample, 1, mpi_logical, 0, mpi_comm_world, ierr)
75 call mpi_bcast(elliptic_smoothing, 1, mpi_logical, 0, mpi_comm_world, ierr)
76 call mpi_bcast(fft_wrt, 1, mpi_logical, 0, mpi_comm_world, ierr)
77 call mpi_bcast(file_per_process, 1, mpi_logical, 0, mpi_comm_world, ierr)
78 call mpi_bcast(hyper_cleaning, 1, mpi_logical, 0, mpi_comm_world, ierr)
79 call mpi_bcast(hyperelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
80 call mpi_bcast(hypoelasticity, 1, mpi_logical, 0, mpi_comm_world, ierr)
81 call mpi_bcast(ib, 1, mpi_logical, 0, mpi_comm_world, ierr)
82 call mpi_bcast(igr, 1, mpi_logical, 0, mpi_comm_world, ierr)
83 call mpi_bcast(mhd, 1, mpi_logical, 0, mpi_comm_world, ierr)
84 call mpi_bcast(mixlayer_perturb, 1, mpi_logical, 0, mpi_comm_world, ierr)
85 call mpi_bcast(mixlayer_vel_profile, 1, mpi_logical, 0, mpi_comm_world, ierr)
86 call mpi_bcast(mpp_lim, 1, mpi_logical, 0, mpi_comm_world, ierr)
87 call mpi_bcast(old_grid, 1, mpi_logical, 0, mpi_comm_world, ierr)
88 call mpi_bcast(old_ic, 1, mpi_logical, 0, mpi_comm_world, ierr)
89 call mpi_bcast(parallel_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
90 call mpi_bcast(perturb_flow, 1, mpi_logical, 0, mpi_comm_world, ierr)
91 call mpi_bcast(perturb_sph, 1, mpi_logical, 0, mpi_comm_world, ierr)
92 call mpi_bcast(polydisperse, 1, mpi_logical, 0, mpi_comm_world, ierr)
93 call mpi_bcast(polytropic, 1, mpi_logical, 0, mpi_comm_world, ierr)
94 call mpi_bcast(pre_stress, 1, mpi_logical, 0, mpi_comm_world, ierr)
95 call mpi_bcast(qbmm, 1, mpi_logical, 0, mpi_comm_world, ierr)
96 call mpi_bcast(relativity, 1, mpi_logical, 0, mpi_comm_world, ierr)
97 call mpi_bcast(relax, 1, mpi_logical, 0, mpi_comm_world, ierr)
98 call mpi_bcast(simplex_perturb, 1, mpi_logical, 0, mpi_comm_world, ierr)
99 call mpi_bcast(stretch_x, 1, mpi_logical, 0, mpi_comm_world, ierr)
100 call mpi_bcast(stretch_y, 1, mpi_logical, 0, mpi_comm_world, ierr)
101 call mpi_bcast(stretch_z, 1, mpi_logical, 0, mpi_comm_world, ierr)
102 call mpi_bcast(surface_tension, 1, mpi_logical, 0, mpi_comm_world, ierr)
103 call mpi_bcast(viscous, 1, mpi_logical, 0, mpi_comm_world, ierr)
104
105 ! Real scalars
106 call mpi_bcast(bx0, 1, mpi_p, 0, mpi_comm_world, ierr)
107 call mpi_bcast(ca, 1, mpi_p, 0, mpi_comm_world, ierr)
108 call mpi_bcast(r0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
109 call mpi_bcast(re_inv, 1, mpi_p, 0, mpi_comm_world, ierr)
110 call mpi_bcast(web, 1, mpi_p, 0, mpi_comm_world, ierr)
111 call mpi_bcast(a_x, 1, mpi_p, 0, mpi_comm_world, ierr)
112 call mpi_bcast(a_y, 1, mpi_p, 0, mpi_comm_world, ierr)
113 call mpi_bcast(a_z, 1, mpi_p, 0, mpi_comm_world, ierr)
114 call mpi_bcast(mixlayer_perturb_k0, 1, mpi_p, 0, mpi_comm_world, ierr)
115 call mpi_bcast(mixlayer_vel_coef, 1, mpi_p, 0, mpi_comm_world, ierr)
116 call mpi_bcast(palpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
117 call mpi_bcast(perturb_flow_mag, 1, mpi_p, 0, mpi_comm_world, ierr)
118 call mpi_bcast(pi_fac, 1, mpi_p, 0, mpi_comm_world, ierr)
119 call mpi_bcast(poly_sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
120 call mpi_bcast(pref, 1, mpi_p, 0, mpi_comm_world, ierr)
121 call mpi_bcast(ptgalpha_eps, 1, mpi_p, 0, mpi_comm_world, ierr)
122 call mpi_bcast(rhorv, 1, mpi_p, 0, mpi_comm_world, ierr)
123 call mpi_bcast(rhoref, 1, mpi_p, 0, mpi_comm_world, ierr)
124 call mpi_bcast(sigr, 1, mpi_p, 0, mpi_comm_world, ierr)
125 call mpi_bcast(sigv, 1, mpi_p, 0, mpi_comm_world, ierr)
126 call mpi_bcast(sigma, 1, mpi_p, 0, mpi_comm_world, ierr)
127 call mpi_bcast(x_a, 1, mpi_p, 0, mpi_comm_world, ierr)
128 call mpi_bcast(x_b, 1, mpi_p, 0, mpi_comm_world, ierr)
129 call mpi_bcast(y_a, 1, mpi_p, 0, mpi_comm_world, ierr)
130 call mpi_bcast(y_b, 1, mpi_p, 0, mpi_comm_world, ierr)
131 call mpi_bcast(z_a, 1, mpi_p, 0, mpi_comm_world, ierr)
132 call mpi_bcast(z_b, 1, mpi_p, 0, mpi_comm_world, ierr)
133
134 ! Array broadcasts (dimension from FORTRAN_ARRAY_DIMS)
135 call mpi_bcast(fluid_rho(1), num_fluids_max, mpi_p, 0, mpi_comm_world, ierr)
136
137 ! fluid_pp member loop
138 do i = 1, num_fluids_max
139 call mpi_bcast(fluid_pp(i)%G, 1, mpi_p, 0, mpi_comm_world, ierr)
140 call mpi_bcast(fluid_pp(i)%K, 1, mpi_p, 0, mpi_comm_world, ierr)
141 call mpi_bcast(fluid_pp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
142 call mpi_bcast(fluid_pp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
143 call mpi_bcast(fluid_pp(i)%hb_m, 1, mpi_p, 0, mpi_comm_world, ierr)
144 call mpi_bcast(fluid_pp(i)%mu_bulk, 1, mpi_p, 0, mpi_comm_world, ierr)
145 call mpi_bcast(fluid_pp(i)%mu_max, 1, mpi_p, 0, mpi_comm_world, ierr)
146 call mpi_bcast(fluid_pp(i)%mu_min, 1, mpi_p, 0, mpi_comm_world, ierr)
147 call mpi_bcast(fluid_pp(i)%nn, 1, mpi_p, 0, mpi_comm_world, ierr)
148 call mpi_bcast(fluid_pp(i)%non_newtonian, 1, mpi_logical, 0, mpi_comm_world, ierr)
149 call mpi_bcast(fluid_pp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
150 call mpi_bcast(fluid_pp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
151 call mpi_bcast(fluid_pp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
152 call mpi_bcast(fluid_pp(i)%tau0, 1, mpi_p, 0, mpi_comm_world, ierr)
153 end do
154
155 ! bub_pp members (under bubbles guard)
156 if (bubbles_euler .or. bubbles_lagrange) then
157 call mpi_bcast(bub_pp%M_g, 1, mpi_p, 0, mpi_comm_world, ierr)
158 call mpi_bcast(bub_pp%M_v, 1, mpi_p, 0, mpi_comm_world, ierr)
159 call mpi_bcast(bub_pp%R0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
160 call mpi_bcast(bub_pp%R_g, 1, mpi_p, 0, mpi_comm_world, ierr)
161 call mpi_bcast(bub_pp%R_v, 1, mpi_p, 0, mpi_comm_world, ierr)
162 call mpi_bcast(bub_pp%T0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
163 call mpi_bcast(bub_pp%cp_g, 1, mpi_p, 0, mpi_comm_world, ierr)
164 call mpi_bcast(bub_pp%cp_v, 1, mpi_p, 0, mpi_comm_world, ierr)
165 call mpi_bcast(bub_pp%gam_g, 1, mpi_p, 0, mpi_comm_world, ierr)
166 call mpi_bcast(bub_pp%gam_v, 1, mpi_p, 0, mpi_comm_world, ierr)
167 call mpi_bcast(bub_pp%k_g, 1, mpi_p, 0, mpi_comm_world, ierr)
168 call mpi_bcast(bub_pp%k_v, 1, mpi_p, 0, mpi_comm_world, ierr)
169 call mpi_bcast(bub_pp%mu_g, 1, mpi_p, 0, mpi_comm_world, ierr)
170 call mpi_bcast(bub_pp%mu_l, 1, mpi_p, 0, mpi_comm_world, ierr)
171 call mpi_bcast(bub_pp%mu_v, 1, mpi_p, 0, mpi_comm_world, ierr)
172 call mpi_bcast(bub_pp%p0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
173 call mpi_bcast(bub_pp%pv, 1, mpi_p, 0, mpi_comm_world, ierr)
174 call mpi_bcast(bub_pp%rho0ref, 1, mpi_p, 0, mpi_comm_world, ierr)
175 call mpi_bcast(bub_pp%ss, 1, mpi_p, 0, mpi_comm_world, ierr)
176 call mpi_bcast(bub_pp%vd, 1, mpi_p, 0, mpi_comm_world, ierr)
177 end if
178
179# 30 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp" 2
180
181 ! manual: m/n/p_glb (computed from m/n/p post-read, not namelist-bound)
182 call mpi_bcast(m_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
183 call mpi_bcast(n_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
184 call mpi_bcast(p_glb, 1, mpi_integer, 0, mpi_comm_world, ierr)
185
186 ! manual: bc_x/y/z member broadcasts (struct members not in NAMELIST_VARS)
187# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
188 call mpi_bcast(bc_x%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
189# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
190 call mpi_bcast(bc_y%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
191# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
192 call mpi_bcast(bc_z%isothermal_in, 1, mpi_logical, 0, mpi_comm_world, ierr)
193# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
194 call mpi_bcast(bc_x%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
195# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
196 call mpi_bcast(bc_y%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
197# 39 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
198 call mpi_bcast(bc_z%isothermal_out, 1, mpi_logical, 0, mpi_comm_world, ierr)
199# 41 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
200
201 ! manual: domain bounds and wall temperatures (REAL struct members, not in NAMELIST_VARS)
202# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
203 call mpi_bcast(x_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
204# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
205 call mpi_bcast(x_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
206# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
207 call mpi_bcast(y_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
208# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
209 call mpi_bcast(y_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
210# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
211 call mpi_bcast(z_domain%beg, 1, mpi_p, 0, mpi_comm_world, ierr)
212# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
213 call mpi_bcast(z_domain%end, 1, mpi_p, 0, mpi_comm_world, ierr)
214# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
215 call mpi_bcast(bc_x%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
216# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
217 call mpi_bcast(bc_x%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
218# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
219 call mpi_bcast(bc_y%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
220# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
221 call mpi_bcast(bc_y%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
222# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
223 call mpi_bcast(bc_z%Twall_in, 1, mpi_p, 0, mpi_comm_world, ierr)
224# 48 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
225 call mpi_bcast(bc_z%Twall_out, 1, mpi_p, 0, mpi_comm_world, ierr)
226# 50 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
227
228 ! manual: BC type codes (INTEGER struct members)
229# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
230 call mpi_bcast(bc_x%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
231# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
232 call mpi_bcast(bc_x%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
233# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
234 call mpi_bcast(bc_y%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
235# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
236 call mpi_bcast(bc_y%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
237# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
238 call mpi_bcast(bc_z%beg, 1, mpi_integer, 0, mpi_comm_world, ierr)
239# 53 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
240 call mpi_bcast(bc_z%end, 1, mpi_integer, 0, mpi_comm_world, ierr)
241# 55 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
242
243 ! wall-velocity members consumed by s_slip_wall/s_no_slip_wall on all ranks
244# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
245# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
246 call mpi_bcast(bc_x%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
247 call mpi_bcast(bc_x%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
248# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
249 call mpi_bcast(bc_x%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
250 call mpi_bcast(bc_x%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
251# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
252 call mpi_bcast(bc_x%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
253 call mpi_bcast(bc_x%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
254# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
255# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
256# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
257 call mpi_bcast(bc_y%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
258 call mpi_bcast(bc_y%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
259# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
260 call mpi_bcast(bc_y%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
261 call mpi_bcast(bc_y%ve2, 1, mpi_p, 0, mpi_comm_world, ierr)
262# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
263 call mpi_bcast(bc_y%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
264 call mpi_bcast(bc_y%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
265# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
266# 58 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
267# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
268 call mpi_bcast(bc_z%vb1, 1, mpi_p, 0, mpi_comm_world, ierr)
269 call mpi_bcast(bc_z%ve1, 1, mpi_p, 0, mpi_comm_world, ierr)
270# 59 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
271 call mpi_bcast(bc_z%vb2, 1, mpi_p, 0, mpi_comm_world, ierr)
272 call mpi_bcast(bc_z%ve2, 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_z%vb3, 1, mpi_p, 0, mpi_comm_world, ierr)
275 call mpi_bcast(bc_z%ve3, 1, mpi_p, 0, mpi_comm_world, ierr)
276# 62 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
277# 63 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
278
279 ! manual: cfl_dt (runtime-computed logical), bc_io (BC-file existence)
280 call mpi_bcast(cfl_dt, 1, mpi_logical, 0, mpi_comm_world, ierr)
281 call mpi_bcast(bc_io, 1, mpi_logical, 0, mpi_comm_world, ierr)
282
283 ! manual: patch_bc (complex array members broadcast with size())
284 do i = 1, num_bc_patches_max
285# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
286 call mpi_bcast(patch_bc(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
287# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
288 call mpi_bcast(patch_bc(i)%type, 1, mpi_integer, 0, mpi_comm_world, ierr)
289# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
290 call mpi_bcast(patch_bc(i)%dir, 1, mpi_integer, 0, mpi_comm_world, ierr)
291# 71 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
292 call mpi_bcast(patch_bc(i)%loc, 1, mpi_integer, 0, mpi_comm_world, ierr)
293# 73 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
294
295 call mpi_bcast(patch_bc(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
296
297# 77 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
298 call mpi_bcast(patch_bc(i)%centroid, size(patch_bc(i)%centroid), mpi_p, 0, mpi_comm_world, ierr)
299# 77 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
300 call mpi_bcast(patch_bc(i)%length, size(patch_bc(i)%length), mpi_p, 0, mpi_comm_world, ierr)
301# 79 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
302 end do
303
304 ! manual: patch_icpp (complex members: alter_patch, sph_har_coeff, size() arrays)
305 do i = 1, num_patches_max
306# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
307 call mpi_bcast(patch_icpp(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
308# 84 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
309 call mpi_bcast(patch_icpp(i)%smooth_patch_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
310# 86 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
311
312 call mpi_bcast(patch_icpp(i)%smoothen, 1, mpi_logical, 0, mpi_comm_world, ierr)
313 call mpi_bcast(patch_icpp(i)%non_axis_sym, 1, mpi_logical, 0, mpi_comm_world, ierr)
314 call mpi_bcast(patch_icpp(i)%alter_patch(0), num_patches_max, mpi_logical, 0, mpi_comm_world, ierr)
315
316# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
317 call mpi_bcast(patch_icpp(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
318# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
319 call mpi_bcast(patch_icpp(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
320# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
321 call mpi_bcast(patch_icpp(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
322# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
323 call mpi_bcast(patch_icpp(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
324# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
325 call mpi_bcast(patch_icpp(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
326# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
327 call mpi_bcast(patch_icpp(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
328# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
329 call mpi_bcast(patch_icpp(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
330# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
331 call mpi_bcast(patch_icpp(i)%epsilon, 1, mpi_p, 0, mpi_comm_world, ierr)
332# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
333 call mpi_bcast(patch_icpp(i)%beta, 1, mpi_p, 0, mpi_comm_world, ierr)
334# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
335 call mpi_bcast(patch_icpp(i)%smooth_coeff, 1, mpi_p, 0, mpi_comm_world, ierr)
336# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
337 call mpi_bcast(patch_icpp(i)%rho, 1, mpi_p, 0, mpi_comm_world, ierr)
338# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
339 call mpi_bcast(patch_icpp(i)%p0, 1, mpi_p, 0, mpi_comm_world, ierr)
340# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
341 call mpi_bcast(patch_icpp(i)%m0, 1, mpi_p, 0, mpi_comm_world, ierr)
342# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
343 call mpi_bcast(patch_icpp(i)%r0, 1, mpi_p, 0, mpi_comm_world, ierr)
344# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
345 call mpi_bcast(patch_icpp(i)%v0, 1, mpi_p, 0, mpi_comm_world, ierr)
346# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
347 call mpi_bcast(patch_icpp(i)%pres, 1, mpi_p, 0, mpi_comm_world, ierr)
348# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
349 call mpi_bcast(patch_icpp(i)%gamma, 1, mpi_p, 0, mpi_comm_world, ierr)
350# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
351 call mpi_bcast(patch_icpp(i)%pi_inf, 1, mpi_p, 0, mpi_comm_world, ierr)
352# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
353 call mpi_bcast(patch_icpp(i)%hcid, 1, mpi_p, 0, mpi_comm_world, ierr)
354# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
355 call mpi_bcast(patch_icpp(i)%cv, 1, mpi_p, 0, mpi_comm_world, ierr)
356# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
357 call mpi_bcast(patch_icpp(i)%qv, 1, mpi_p, 0, mpi_comm_world, ierr)
358# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
359 call mpi_bcast(patch_icpp(i)%qvp, 1, mpi_p, 0, mpi_comm_world, ierr)
360# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
361 call mpi_bcast(patch_icpp(i)%cf_val, 1, mpi_p, 0, mpi_comm_world, ierr)
362# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
363 call mpi_bcast(patch_icpp(i)%Bx, 1, mpi_p, 0, mpi_comm_world, ierr)
364# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
365 call mpi_bcast(patch_icpp(i)%By, 1, mpi_p, 0, mpi_comm_world, ierr)
366# 96 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
367 call mpi_bcast(patch_icpp(i)%Bz, 1, mpi_p, 0, mpi_comm_world, ierr)
368# 98 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
369
370# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
371 call mpi_bcast(patch_icpp(i)%a(2), 1, mpi_p, 0, mpi_comm_world, ierr)
372# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
373 call mpi_bcast(patch_icpp(i)%a(3), 1, mpi_p, 0, mpi_comm_world, ierr)
374# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
375 call mpi_bcast(patch_icpp(i)%a(4), 1, mpi_p, 0, mpi_comm_world, ierr)
376# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
377 call mpi_bcast(patch_icpp(i)%a(5), 1, mpi_p, 0, mpi_comm_world, ierr)
378# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
379 call mpi_bcast(patch_icpp(i)%a(6), 1, mpi_p, 0, mpi_comm_world, ierr)
380# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
381 call mpi_bcast(patch_icpp(i)%a(7), 1, mpi_p, 0, mpi_comm_world, ierr)
382# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
383 call mpi_bcast(patch_icpp(i)%a(8), 1, mpi_p, 0, mpi_comm_world, ierr)
384# 100 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
385 call mpi_bcast(patch_icpp(i)%a(9), 1, mpi_p, 0, mpi_comm_world, ierr)
386# 102 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
387
388# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
389 call mpi_bcast(patch_icpp(i)%normal, size(patch_icpp(i)%normal), mpi_p, 0, mpi_comm_world, ierr)
390# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
391 call mpi_bcast(patch_icpp(i)%radii, size(patch_icpp(i)%radii), mpi_p, 0, mpi_comm_world, ierr)
392# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
393 call mpi_bcast(patch_icpp(i)%vel, size(patch_icpp(i)%vel), mpi_p, 0, mpi_comm_world, ierr)
394# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
395 call mpi_bcast(patch_icpp(i)%tau_e, size(patch_icpp(i)%tau_e), mpi_p, 0, mpi_comm_world, ierr)
396# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
397 call mpi_bcast(patch_icpp(i)%alpha_rho, size(patch_icpp(i)%alpha_rho), mpi_p, 0, mpi_comm_world, ierr)
398# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
399 call mpi_bcast(patch_icpp(i)%alpha, size(patch_icpp(i)%alpha), mpi_p, 0, mpi_comm_world, ierr)
400# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
401 call mpi_bcast(patch_icpp(i)%fourier_cos, size(patch_icpp(i)%fourier_cos), mpi_p, 0, mpi_comm_world, ierr)
402# 105 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
403 call mpi_bcast(patch_icpp(i)%fourier_sin, size(patch_icpp(i)%fourier_sin), mpi_p, 0, mpi_comm_world, ierr)
404# 107 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
405
406 call mpi_bcast(patch_icpp(i)%sph_har_coeff, size(patch_icpp(i)%sph_har_coeff), mpi_p, 0, mpi_comm_world, ierr)
407 call mpi_bcast(patch_icpp(i)%modal_clip_r_to_min, 1, mpi_logical, 0, mpi_comm_world, ierr)
408 call mpi_bcast(patch_icpp(i)%modal_r_min, 1, mpi_p, 0, mpi_comm_world, ierr)
409 call mpi_bcast(patch_icpp(i)%modal_use_exp_form, 1, mpi_logical, 0, mpi_comm_world, ierr)
410
411 call mpi_bcast(patch_icpp(i)%model_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
412
413 if (chemistry) then
414 call mpi_bcast(patch_icpp(i)%Y, size(patch_icpp(i)%Y), mpi_p, 0, mpi_comm_world, ierr)
415 end if
416 end do
417
418 ! manual: patch_ib (per-target member subset; pre uses size() for vel/angular_vel/angles)
419 do i = 1, num_ibs
420# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
421 call mpi_bcast(patch_ib(i)%vel, size(patch_ib(i)%vel), mpi_p, 0, mpi_comm_world, ierr)
422# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
423 call mpi_bcast(patch_ib(i)%angular_vel, size(patch_ib(i)%angular_vel), mpi_p, 0, mpi_comm_world, ierr)
424# 123 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
425 call mpi_bcast(patch_ib(i)%angles, size(patch_ib(i)%angles), mpi_p, 0, mpi_comm_world, ierr)
426# 125 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
427 call mpi_bcast(patch_ib(i)%geometry, 1, mpi_integer, 0, mpi_comm_world, ierr)
428
429# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
430 call mpi_bcast(patch_ib(i)%x_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
431# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
432 call mpi_bcast(patch_ib(i)%y_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
433# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
434 call mpi_bcast(patch_ib(i)%z_centroid, 1, mpi_p, 0, mpi_comm_world, ierr)
435# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
436 call mpi_bcast(patch_ib(i)%length_x, 1, mpi_p, 0, mpi_comm_world, ierr)
437# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
438 call mpi_bcast(patch_ib(i)%length_y, 1, mpi_p, 0, mpi_comm_world, ierr)
439# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
440 call mpi_bcast(patch_ib(i)%length_z, 1, mpi_p, 0, mpi_comm_world, ierr)
441# 129 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
442 call mpi_bcast(patch_ib(i)%radius, 1, mpi_p, 0, mpi_comm_world, ierr)
443# 131 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
444 call mpi_bcast(patch_ib(i)%airfoil_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
445 call mpi_bcast(patch_ib(i)%model_id, 1, mpi_integer, 0, mpi_comm_world, ierr)
446 call mpi_bcast(patch_ib(i)%slip, 1, mpi_logical, 0, mpi_comm_world, ierr)
447 end do
448
449 ! manual: ib_airfoil (kept manual alongside patch_ib)
450 do i = 1, num_ib_airfoils_max
451# 139 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
452 call mpi_bcast(ib_airfoil(i)%c, 1, mpi_p, 0, mpi_comm_world, ierr)
453# 139 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
454 call mpi_bcast(ib_airfoil(i)%p, 1, mpi_p, 0, mpi_comm_world, ierr)
455# 139 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
456 call mpi_bcast(ib_airfoil(i)%t, 1, mpi_p, 0, mpi_comm_world, ierr)
457# 139 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
458 call mpi_bcast(ib_airfoil(i)%m, 1, mpi_p, 0, mpi_comm_world, ierr)
459# 141 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
460 end do
461
462 ! manual: stl_models loop (num_stl_models scalar is generated; grouped array members)
463 do i = 1, num_stl_models_max
464 call mpi_bcast(stl_models(i)%model_filepath, len(stl_models(i)%model_filepath), mpi_character, 0, mpi_comm_world, ierr)
465 call mpi_bcast(stl_models(i)%model_threshold, 1, mpi_p, 0, mpi_comm_world, ierr)
466# 148 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
467 call mpi_bcast(stl_models(i)%model_translate, 3, mpi_p, 0, mpi_comm_world, ierr)
468# 148 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
469 call mpi_bcast(stl_models(i)%model_scale, 3, mpi_p, 0, mpi_comm_world, ierr)
470# 150 "/home/runner/work/MFC/MFC/src/pre_process/m_mpi_proxy.fpp"
471 end do
472
473 ! manual: simplex_params density perturbation (nested i-j loops; irregular structure)
474 do i = 1, num_fluids_max
475 call mpi_bcast(simplex_params%perturb_dens(i), 1, mpi_logical, 0, mpi_comm_world, ierr)
476 call mpi_bcast(simplex_params%perturb_dens_freq(i), 1, mpi_p, 0, mpi_comm_world, ierr)
477 call mpi_bcast(simplex_params%perturb_dens_scale(i), 1, mpi_p, 0, mpi_comm_world, ierr)
478
479 do j = 1, 3
480 call mpi_bcast(simplex_params%perturb_dens_offset(i, j), 1, mpi_p, 0, mpi_comm_world, ierr)
481 end do
482 end do
483
484 ! manual: simplex_params velocity perturbation
485 do i = 1, 3
486 call mpi_bcast(simplex_params%perturb_vel(i), 1, mpi_logical, 0, mpi_comm_world, ierr)
487 call mpi_bcast(simplex_params%perturb_vel_freq(i), 1, mpi_p, 0, mpi_comm_world, ierr)
488 call mpi_bcast(simplex_params%perturb_vel_scale(i), 1, mpi_p, 0, mpi_comm_world, ierr)
489
490 do j = 1, 3
491 call mpi_bcast(simplex_params%perturb_vel_offset(i, j), 1, mpi_p, 0, mpi_comm_world, ierr)
492 end do
493 end do
494#endif
495
496 end subroutine s_mpi_bcast_user_inputs
497
498end 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.
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...