diff --git a/src/post_process/m_mpi_proxy.f90 b/src/post_process/m_mpi_proxy.fpp similarity index 91% rename from src/post_process/m_mpi_proxy.f90 rename to src/post_process/m_mpi_proxy.fpp index 6b37e0e269..2410ea7761 100644 --- a/src/post_process/m_mpi_proxy.f90 +++ b/src/post_process/m_mpi_proxy.fpp @@ -245,156 +245,46 @@ end subroutine s_initialize_mpi_proxy_module ! ---------------------------- subroutine s_mpi_bcast_user_inputs() ! --------------------------------- #ifdef MFC_MPI - integer :: i !< Generic loop iterator ! Logistics - call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, & - 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in [ 'm', 'n', 'p', 'm_glb', 'n_glb', 'p_glb', & + & 't_step_start', 't_step_stop', 't_step_save', 'weno_order', & + & 'model_eqns', 'num_fluids', 'bc_x%beg', 'bc_x%end', 'bc_y%beg', & + & 'bc_y%end', 'bc_z%beg', 'bc_z%end', 'flux_lim', 'format', & + & 'precision', 'fd_order', 'thermal', 'nb' ] + call MPI_BCAST(${VAR}$, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + #:endfor + + #:for VAR in [ 'cyl_coord', 'adv_alphan', 'mpp_lim', 'mixture_err', & + & 'alt_soundspeed', 'hypoelasticity', 'parallel_io', 'rho_wrt', & + & 'coarsen_silo', 'E_wrt', 'pres_wrt', 'gamma_wrt', & + & 'heat_ratio_wrt', 'pi_inf_wrt', 'pres_inf_wrt', 'cons_vars_wrt', & + & 'prim_vars_wrt', 'c_wrt', 'schlieren_wrt', 'bubbles', & + & 'polytropic', 'fourier_decomp', 'polydisperse' ] + call MPI_BCAST(${VAR}$, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + #:endfor + + call MPI_BCAST(flux_wrt(1), 3, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(omega_wrt(1), 3, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(mom_wrt(1), 3, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(vel_wrt(1), 3, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(alpha_rho_wrt(1), num_fluids_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(alpha_wrt(1), num_fluids_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - ! Computational domain parameters - call MPI_BCAST(m, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(m_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(cyl_coord, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(t_step_start, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_stop, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_save, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - ! Simulation algorithm parameters - call MPI_BCAST(model_eqns, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(num_fluids, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(adv_alphan, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mpp_lim, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(weno_order, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mixture_err, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(alt_soundspeed, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(hypoelasticity, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(bc_x%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_x%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(parallel_io, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - ! Fluids physical parameters do i = 1, num_fluids_max - call MPI_BCAST(fluid_pp(i)%gamma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%pi_inf, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%G, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) + call MPI_BCAST(fluid_pp(i)%gamma, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(fluid_pp(i)%pi_inf, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(fluid_pp(i)%G, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) end do - ! Formatted database file(s) structure parameters - call MPI_BCAST(format, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(precision, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(coarsen_silo, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(rho_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mom_wrt(1), 3, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(vel_wrt(1), 3, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(flux_lim, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(flux_wrt(1), 3, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(E_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(pres_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(gamma_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(heat_ratio_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(pi_inf_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(pres_inf_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(cons_vars_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(prim_vars_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(c_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(omega_wrt(1), 3, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(schlieren_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(alpha_rho_wrt(1), num_fluids_max, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, & - ierr) - call MPI_BCAST(alpha_wrt(1), num_fluids_max, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, & - ierr) - - call MPI_BCAST(schlieren_alpha(1), num_fluids_max, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(fd_order, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(fourier_decomp, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - - ! Tait EOS - call MPI_BCAST(pref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(rhoref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - ! Bubble modeling - call MPI_BCAST(bubbles, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polytropic, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(thermal, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(R0ref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(nb, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polydisperse, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(poly_sigma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(Web, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Ca, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Re_inv, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - + #:for VAR in [ 'pref', 'rhoref', 'R0ref', 'poly_sigma', 'Web', 'Ca', & + & 'Re_inv' ] + call MPI_BCAST(${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(schlieren_alpha(1), num_fluids_max, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) #endif end subroutine s_mpi_bcast_user_inputs ! ------------------------------- diff --git a/src/pre_process/m_mpi_proxy.f90 b/src/pre_process/m_mpi_proxy.fpp similarity index 65% rename from src/pre_process/m_mpi_proxy.f90 rename to src/pre_process/m_mpi_proxy.fpp index 9657d168f4..6c6c0b3d76 100644 --- a/src/pre_process/m_mpi_proxy.f90 +++ b/src/pre_process/m_mpi_proxy.fpp @@ -139,274 +139,62 @@ subroutine s_mpi_bcast_user_inputs() ! --------------------------------- integer :: i ! Logistics - call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(old_grid, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(old_ic, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_old, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - - ! Computational domain parameters - call MPI_BCAST(m, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(m_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(cyl_coord, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(x_domain%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(x_domain%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(y_domain%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(y_domain%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(z_domain%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(z_domain%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(stretch_x, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(stretch_y, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(stretch_z, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(a_x, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(a_y, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(a_z, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(loops_x, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(loops_y, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(loops_z, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(x_a, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(x_b, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(y_a, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(y_b, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(z_a, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(z_b, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - - ! Simulation algorithm parameters - call MPI_BCAST(model_eqns, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(num_fluids, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(adv_alphan, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mpp_lim, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(weno_order, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(bc_x%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_x%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%beg, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%end, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(hypoelasticity, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(parallel_io, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(precision, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(perturb_flow, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(perturb_flow_fluid, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(perturb_sph, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(perturb_sph_fluid, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_rho(1), num_fluids_max, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, & - ierr) - - ! Initial condition parameters - call MPI_BCAST(num_patches, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in ['t_step_old', 'm', 'n', 'p', 'm_glb', 'n_glb', 'p_glb', & + & 'loops_x', 'loops_y', 'loops_z', 'model_eqns', 'num_fluids', & + & 'weno_order', 'precision', 'perturb_flow_fluid', & + & 'perturb_sph_fluid', 'num_patches', 'thermal', 'nb', 'dist_type',& + & 'R0_type' ] + call MPI_BCAST(${VAR}$, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + #:endfor + + #:for VAR in [ 'old_grid','old_ic','stretch_x','stretch_y','stretch_z',& + & 'cyl_coord','adv_alphan','mpp_lim','hypoelasticity', & + & 'parallel_io', 'perturb_flow','perturb_sph', 'bubbles', & + & 'polytropic', 'polydisperse', 'qbmm' ] + call MPI_BCAST(${VAR}$, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(fluid_rho(1), num_fluids_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + + + #:for VAR in [ 'x_domain%beg', 'x_domain%end', 'y_domain%beg', & + & 'y_domain%end', 'z_domain%beg', 'z_domain%end', 'a_x', 'a_y', & + & 'a_z', 'x_a', 'x_b', 'y_a', 'y_b', 'z_a', 'z_b', 'bc_x%beg', & + & 'bc_x%end', 'bc_y%beg', 'bc_y%end', 'bc_z%beg', 'bc_z%end', & + & 'pref', 'rhoref', 'poly_sigma', 'R0ref', 'Web', 'Ca', 'Re_inv', & + & 'sigR', 'sigV', 'rhoRV' ] + call MPI_BCAST(${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor do i = 1, num_patches_max - call MPI_BCAST(patch_icpp(i)%geometry, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%x_centroid, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%y_centroid, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%z_centroid, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%length_x, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%length_y, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%length_z, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%radius, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%epsilon, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%beta, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%normal(1), 3, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%radii(1), 3, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%smoothen, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%smooth_patch_id, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%smooth_coeff, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%rho, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%vel(1), 3, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%pres, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%gamma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%pi_inf, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%tau_e(1), 6, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%alter_patch(0), & - num_patches_max, MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%alpha_rho(1), & - num_fluids_max, MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%alpha(1), & - num_fluids_max - 1, MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - ! Bubbles - call MPI_BCAST(patch_icpp(i)%r0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%v0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%p0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(patch_icpp(i)%m0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - + call MPI_BCAST(patch_icpp(i)%geometry, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%smooth_patch_id, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + + call MPI_BCAST(patch_icpp(i)%smoothen, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%alter_patch(0), num_patches_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in [ 'x_centroid', 'y_centroid', 'z_centroid', & + & 'length_x', 'length_y', 'length_z', 'radius', 'epsilon', & + & 'beta', 'smooth_coeff', 'rho', 'p0', 'm0', 'r0', 'v0', & + & 'pres', 'gamma', 'pi_inf', ] + call MPI_BCAST(patch_icpp(i)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(patch_icpp(i)%normal(1), 3, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%radii(1), 3, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%vel(1), 3, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%tau_e(1), 6, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%alpha_rho(1), num_fluids_max, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(patch_icpp(i)%alpha(1), num_fluids_max - 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) end do ! Fluids physical parameters do i = 1, num_fluids_max - call MPI_BCAST(fluid_pp(i)%gamma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%pi_inf, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(fluid_pp(i)%mul0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%ss, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%pv, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%gamma_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%M_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%mu_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%k_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%G, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) + #:for VAR in [ 'gamma','pi_inf','mul0','ss','pv','gamma_v','M_v', & + & 'mu_v','k_v', 'G' ] + call MPI_BCAST(fluid_pp(i)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor end do - - ! Tait EOS - call MPI_BCAST(pref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(rhoref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - ! Bubble modeling - call MPI_BCAST(bubbles, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polytropic, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polydisperse, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(poly_sigma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(thermal, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(R0ref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(nb, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(Web, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Ca, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Re_inv, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(qbmm, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(sigR, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(sigV, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(rhoRV, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(dist_type, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(R0_type, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - #endif end subroutine s_mpi_bcast_user_inputs ! ------------------------------- diff --git a/src/simulation/m_data_output.fpp b/src/simulation/m_data_output.fpp index a3557e2abc..e7fcfc5660 100644 --- a/src/simulation/m_data_output.fpp +++ b/src/simulation/m_data_output.fpp @@ -2039,60 +2039,27 @@ contains end if if (num_procs > 1) then - tmp = rho - call s_mpi_allreduce_sum(tmp, rho) + #:for VAR in ['rho','pres','gamma','pi_inf','c','accel'] + tmp = ${VAR}$ + call s_mpi_allreduce_sum(tmp, ${VAR}$) + #:endfor + do s = 1, num_dims tmp = vel(s) call s_mpi_allreduce_sum(tmp, vel(s)) end do - tmp = pres - call s_mpi_allreduce_sum(tmp, pres) - tmp = gamma - call s_mpi_allreduce_sum(tmp, gamma) - tmp = pi_inf - call s_mpi_allreduce_sum(tmp, pi_inf) - tmp = c - call s_mpi_allreduce_sum(tmp, c) - tmp = accel - call s_mpi_allreduce_sum(tmp, accel) if (bubbles) then - tmp = alf - call s_mpi_allreduce_sum(tmp, alf) - tmp = alfgr - call s_mpi_allreduce_sum(tmp, alfgr) - tmp = nbub - call s_mpi_allreduce_sum(tmp, nbub) - tmp = nR(1) - call s_mpi_allreduce_sum(tmp, nR(1)) - tmp = nRdot(1) - call s_mpi_allreduce_sum(tmp, nRdot(1)) - tmp = M00 - call s_mpi_allreduce_sum(tmp, M00) - tmp = R(1) - call s_mpi_allreduce_sum(tmp, R(1)) - tmp = Rdot(1) - call s_mpi_allreduce_sum(tmp, Rdot(1)) - tmp = ptilde - call s_mpi_allreduce_sum(tmp, ptilde) - tmp = ptot - call s_mpi_allreduce_sum(tmp, ptot) + #:for VAR in ['alf','alfgr','nbub','nR(1)','nRdot(1)','M00','R(1)','Rdot(1)','ptilde','ptot'] + tmp = ${VAR}$ + call s_mpi_allreduce_sum(tmp, ${VAR}$) + #:endfor if (qbmm) then - tmp = varR - call s_mpi_allreduce_sum(tmp, varR) - tmp = varV - call s_mpi_allreduce_sum(tmp, varV) - - tmp = M10 - call s_mpi_allreduce_sum(tmp, M10) - tmp = M01 - call s_mpi_allreduce_sum(tmp, M01) - tmp = M20 - call s_mpi_allreduce_sum(tmp, M20) - tmp = M02 - call s_mpi_allreduce_sum(tmp, M02) - + #:for VAR in ['varR','varV','M10','M01','M20','M02'] + tmp = ${VAR}$ + call s_mpi_allreduce_sum(tmp, ${VAR}$) + #:endfor end if end if diff --git a/src/simulation/m_mpi_proxy.fpp b/src/simulation/m_mpi_proxy.fpp index f472d8c9e0..b5b85c5429 100644 --- a/src/simulation/m_mpi_proxy.fpp +++ b/src/simulation/m_mpi_proxy.fpp @@ -190,272 +190,68 @@ contains integer :: i, j !< Generic loop iterator - ! Logistics - call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(run_time_info, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_old, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - - ! Computational domain parameters - call MPI_BCAST(m, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(m_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(n_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(p_glb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(cyl_coord, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(dt, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(t_step_start, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_stop, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(t_step_save, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - ! Simulation algorithm parameters - call MPI_BCAST(model_eqns, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(num_fluids, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(adv_alphan, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mpp_lim, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(time_stepper, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(weno_vars, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(case_dir, len(case_dir), MPI_CHARACTER, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in ['t_step_old', 'm', 'n', 'p', 'm_glb', 'n_glb', 'p_glb', & + & 't_step_start','t_step_stop','t_step_save','model_eqns', & + & 'num_fluids','time_stepper', 'weno_vars', 'riemann_solver', & + & 'wave_speeds', 'avg_state', 'precision', 'bc_x%beg', 'bc_x%end', & + & 'bc_y%beg', 'bc_y%end', 'bc_z%beg', 'bc_z%end', 'bc_x_glb%beg', & + & 'bc_x_glb%end', 'bc_y_glb%beg', 'bc_y_glb%end', 'bc_z_glb%beg', & + & 'bc_z_glb%end', 'fd_order', 'num_probes', 'num_integrals', & + & 'bubble_model', 'thermal', 'R0_type', 'num_mono' ] + call MPI_BCAST(${VAR}$, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(moment_order(1), 5, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in [ 'run_time_info','cyl_coord', 'adv_alphan', 'mpp_lim', & + & 'mapped_weno', 'mp_weno', 'cu_mpi', 'weno_flat', 'riemann_flat', & + & 'weno_Re_flux', 'alt_soundspeed', 'null_weights', 'mixture_err', & + & 'parallel_io', 'hypoelasticity', 'bubbles', 'polytropic', & + & 'polydisperse', 'qbmm', 'monopole', 'probe_wrt', 'integral_wrt' ] + call MPI_BCAST(${VAR}$, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(com_wrt(1), num_fluids_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(cb_wrt(1), num_fluids_max, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + + #:for VAR in [ 'dt','weno_eps','pref','rhoref','R0ref','Web','Ca', & + & 'Re_inv','poly_sigma' ] + call MPI_BCAST(${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(threshold_mf(1), 5, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:if not MFC_CASE_OPTIMIZATION - call MPI_BCAST(weno_order, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(weno_order, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_BCAST(nb, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) #:endif - call MPI_BCAST(weno_eps, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mapped_weno, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mp_weno, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(cu_mpi, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(weno_flat, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(riemann_flat, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(weno_Re_flux, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(riemann_solver, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(wave_speeds, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(avg_state, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(alt_soundspeed, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(null_weights, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(mixture_err, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(parallel_io, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(precision, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(hypoelasticity, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(bc_x%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_x%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(bc_x_glb%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_x_glb%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y_glb%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_y_glb%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z_glb%beg, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(bc_z_glb%end, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) - - ! Fluids physical parameters + do i = 1, num_fluids_max - call MPI_BCAST(fluid_pp(i)%gamma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%pi_inf, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%Re(1), 2, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(fluid_pp(i)%mul0, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%ss, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%pv, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%gamma_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%M_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%mu_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%k_v, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(fluid_pp(i)%G, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) + #:for VAR in [ 'gamma','pi_inf','mul0','ss','pv','gamma_v','M_v', & + & 'mu_v','k_v','G' ] + call MPI_BCAST(fluid_pp(i)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + call MPI_BCAST(fluid_pp(i)%Re(1), 2, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) end do - !Tait EOS - call MPI_BCAST(pref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(rhoref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - !Bubble modeling - call MPI_BCAST(bubbles, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(bubble_model, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polytropic, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(thermal, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(R0ref, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - #:if not MFC_CASE_OPTIMIZATION - call MPI_BCAST(nb, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - #:endif - call MPI_BCAST(R0_type, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Web, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Ca, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(Re_inv, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(polydisperse, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(poly_sigma, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - - call MPI_BCAST(qbmm, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - - !Acoustic monopole - call MPI_BCAST(monopole, 1, & - MPI_LOGICAL, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(num_mono, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - do j = 1, num_probes_max - do i = 1, 3 - call MPI_BCAST(mono(j)%loc(i), 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) + do i = 1,3 + call MPI_BCAST(mono(j)%loc(i), 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) end do - call MPI_BCAST(mono(j)%mag, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%length, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%delay, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%dir, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%npulse, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%pulse, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%support, 1, & - MPI_INTEGER, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%foc_length, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - call MPI_BCAST(mono(j)%aperture, 1, & - MPI_DOUBLE_PRECISION, 0, & - MPI_COMM_WORLD, ierr) - end do - call MPI_BCAST(com_wrt(1), num_fluids_max, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(cb_wrt(1), num_fluids_max, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(fd_order, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - - call MPI_BCAST(num_probes, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(probe_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - do i = 1, num_probes_max - call MPI_BCAST(probe(i)%x, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(probe(i)%y, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(probe(i)%z, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - end do + #:for VAR in [ 'mag', 'length', 'delay', 'dir', 'npulse', 'pulse', & + 'support', 'foc_length', 'aperture' ] + call MPI_BCAST(mono(j)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor - call MPI_BCAST(integral_wrt, 1, MPI_LOGICAL, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(num_integrals, 1, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) - do i = 1, num_probes_max - call MPI_BCAST(integral(i)%xmin, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(integral(i)%xmax, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(integral(i)%ymin, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(integral(i)%ymax, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(integral(i)%zmin, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(integral(i)%zmax, 1, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - end do - - call MPI_BCAST(threshold_mf(1), 5, MPI_DOUBLE_PRECISION, & - 0, MPI_COMM_WORLD, ierr) - call MPI_BCAST(moment_order(1), 5, MPI_INTEGER, & - 0, MPI_COMM_WORLD, ierr) + #:for VAR in [ 'x','y','z' ] + call MPI_BCAST(probe(j)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + #:for VAR in [ 'xmin', 'xmax', 'ymin', 'ymax', 'zmin', 'zmax' ] + call MPI_BCAST(integral(j)%${VAR}$, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) + #:endfor + end do + #endif end subroutine s_mpi_bcast_user_inputs ! -------------------------------