comms_no_sync_bcast_char Subroutine

private subroutine comms_no_sync_bcast_char(array, size, error, comm)

Send character array from root node to all nodes

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: array
integer, intent(in) :: size
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

Called by

proc~~comms_no_sync_bcast_char~~CalledByGraph proc~comms_no_sync_bcast_char comms_no_sync_bcast_char interface~comms_no_sync_bcast comms_no_sync_bcast interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_char proc~comms_bcast_char comms_bcast_char proc~comms_bcast_char->proc~comms_no_sync_bcast_char interface~comms_bcast comms_bcast interface~comms_bcast->proc~comms_bcast_char proc~prterr prterr proc~prterr->interface~comms_no_sync_bcast proc~dis_extract dis_extract proc~dis_extract->interface~comms_bcast proc~geninterp_main geninterp_main proc~geninterp_main->interface~comms_bcast proc~get_hh_r get_HH_R proc~geninterp_main->proc~get_hh_r proc~wham_get_eig_deleig wham_get_eig_deleig proc~geninterp_main->proc~wham_get_eig_deleig proc~get_aa_r get_AA_R proc~get_aa_r->interface~comms_bcast proc~get_aa_r_effective get_AA_R_effective proc~get_aa_r_effective->interface~comms_bcast proc~get_bb_r get_BB_R proc~get_bb_r->interface~comms_bcast proc~get_cc_r get_CC_R proc~get_cc_r->interface~comms_bcast proc~get_ff_r get_FF_R proc~get_ff_r->interface~comms_bcast proc~get_hh_r->interface~comms_bcast proc~get_saa_r get_SAA_R proc~get_saa_r->interface~comms_bcast proc~get_sbb_r get_SBB_R proc~get_sbb_r->interface~comms_bcast proc~get_sh_r get_SH_R proc~get_sh_r->interface~comms_bcast proc~get_shc_r get_SHC_R proc~get_shc_r->interface~comms_bcast proc~get_ss_r get_SS_R proc~get_ss_r->interface~comms_bcast proc~input_reader_special input_reader_special proc~input_reader_special->proc~prterr proc~internal_find_u internal_find_u proc~internal_find_u->interface~comms_bcast proc~k_path k_path proc~k_path->interface~comms_bcast proc~k_path->proc~get_aa_r proc~k_path->proc~get_aa_r_effective proc~k_path->proc~get_bb_r proc~k_path->proc~get_cc_r proc~k_path->proc~get_hh_r proc~k_path->proc~get_shc_r proc~k_path->proc~get_ss_r proc~berry_get_imfgh_klist berry_get_imfgh_klist proc~k_path->proc~berry_get_imfgh_klist proc~berry_get_shc_klist berry_get_shc_klist proc~k_path->proc~berry_get_shc_klist proc~berry_get_imf_klist berry_get_imf_klist proc~k_path->proc~berry_get_imf_klist proc~overlaps overlaps proc~overlaps->proc~prterr proc~print_error_halt print_error_halt proc~print_error_halt->proc~prterr proc~pw90common_wanint_data_dist pw90common_wanint_data_dist proc~pw90common_wanint_data_dist->interface~comms_bcast proc~pw90common_wanint_get_kpoint_file pw90common_wanint_get_kpoint_file proc~pw90common_wanint_get_kpoint_file->interface~comms_bcast proc~pw90common_wanint_setup pw90common_wanint_setup proc~pw90common_wanint_setup->interface~comms_bcast proc~pw90common_wanint_w90_wannier90_readwrite_dist pw90common_wanint_w90_wannier90_readwrite_dist proc~pw90common_wanint_w90_wannier90_readwrite_dist->interface~comms_bcast proc~read_chkpt read_chkpt proc~read_chkpt->proc~prterr proc~w90_readwrite_chkpt_dist w90_readwrite_chkpt_dist proc~read_chkpt->proc~w90_readwrite_chkpt_dist proc~read_eigvals read_eigvals proc~read_eigvals->proc~prterr proc~set_kpoint_distribution set_kpoint_distribution proc~set_kpoint_distribution->proc~prterr proc~w90_create_kmesh w90_create_kmesh proc~w90_create_kmesh->proc~prterr proc~w90_disentangle~2 w90_disentangle proc~w90_disentangle~2->proc~prterr proc~dis_main dis_main proc~w90_disentangle~2->proc~dis_main proc~w90_distribute_kpts w90_distribute_kpts proc~w90_distribute_kpts->proc~prterr proc~w90_get_excl_bands~2 w90_get_excl_bands proc~w90_get_excl_bands~2->proc~prterr proc~w90_get_proj~2 w90_get_proj proc~w90_get_proj~2->proc~prterr proc~w90_input_reader~2 w90_input_reader proc~w90_input_reader~2->proc~prterr proc~w90_input_setopt w90_input_setopt proc~w90_input_setopt->proc~prterr proc~w90_plot w90_plot proc~w90_plot->proc~prterr proc~w90_print_info~2 w90_print_info proc~w90_print_info~2->proc~prterr proc~w90_project_overlap~2 w90_project_overlap proc~w90_project_overlap~2->proc~prterr proc~w90_readwrite_chkpt_dist->interface~comms_bcast proc~w90_transport w90_transport proc~w90_transport->proc~prterr proc~w90_wannierise~2 w90_wannierise proc~w90_wannierise~2->proc~prterr proc~write_chkpt write_chkpt proc~write_chkpt->proc~prterr proc~write_kmesh write_kmesh proc~write_kmesh->proc~prterr proc~write_kmesh->proc~w90_create_kmesh program~postw90 postw90 program~postw90->interface~comms_bcast program~postw90->proc~geninterp_main program~postw90->proc~k_path program~postw90->proc~print_error_halt program~postw90->proc~pw90common_wanint_data_dist program~postw90->proc~pw90common_wanint_get_kpoint_file program~postw90->proc~pw90common_wanint_setup proc~berry_main berry_main program~postw90->proc~berry_main proc~dos_main dos_main program~postw90->proc~dos_main proc~gyrotropic_main gyrotropic_main program~postw90->proc~gyrotropic_main proc~k_slice k_slice program~postw90->proc~k_slice proc~spin_get_moment spin_get_moment program~postw90->proc~spin_get_moment proc~boltzwann_main boltzwann_main program~postw90->proc~boltzwann_main program~wannier wannier program~wannier->proc~prterr program~wannier->proc~input_reader_special program~wannier->proc~overlaps program~wannier->proc~read_chkpt program~wannier->proc~read_eigvals program~wannier->proc~set_kpoint_distribution program~wannier->proc~w90_disentangle~2 program~wannier->proc~w90_distribute_kpts program~wannier->proc~w90_input_reader~2 program~wannier->proc~w90_plot program~wannier->proc~w90_print_info~2 program~wannier->proc~w90_project_overlap~2 program~wannier->proc~w90_transport program~wannier->proc~w90_wannierise~2 program~wannier->proc~write_chkpt program~wannier->proc~write_kmesh proc~w90_get_nn~2 w90_get_nn program~wannier->proc~w90_get_nn~2 proc~berry_main->proc~get_aa_r proc~berry_main->proc~get_aa_r_effective proc~berry_main->proc~get_bb_r proc~berry_main->proc~get_cc_r proc~berry_main->proc~get_hh_r proc~berry_main->proc~get_saa_r proc~berry_main->proc~get_sbb_r proc~berry_main->proc~get_sh_r proc~berry_main->proc~get_shc_r proc~berry_main->proc~get_ss_r proc~berry_main->proc~berry_get_imfgh_klist proc~berry_get_kdotp berry_get_kdotp proc~berry_main->proc~berry_get_kdotp proc~berry_get_kubo_k berry_get_kubo_k proc~berry_main->proc~berry_get_kubo_k proc~berry_get_sc_klist berry_get_sc_klist proc~berry_main->proc~berry_get_sc_klist proc~berry_main->proc~berry_get_shc_klist proc~berry_main->proc~berry_get_imf_klist proc~calctdfanddos calcTDFandDOS proc~calctdfanddos->proc~get_hh_r proc~calctdfanddos->proc~get_ss_r proc~calctdfanddos->proc~wham_get_eig_deleig proc~dis_main->proc~dis_extract proc~dis_main->proc~internal_find_u proc~dos_main->proc~get_hh_r proc~dos_main->proc~get_ss_r proc~dos_main->proc~wham_get_eig_deleig proc~gyrotropic_main->proc~get_aa_r proc~gyrotropic_main->proc~get_aa_r_effective proc~gyrotropic_main->proc~get_bb_r proc~gyrotropic_main->proc~get_cc_r proc~gyrotropic_main->proc~get_hh_r proc~gyrotropic_main->proc~get_ss_r proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_main->proc~gyrotropic_get_k_list proc~k_slice->proc~get_aa_r proc~k_slice->proc~get_aa_r_effective proc~k_slice->proc~get_bb_r proc~k_slice->proc~get_cc_r proc~k_slice->proc~get_hh_r proc~k_slice->proc~get_shc_r proc~k_slice->proc~get_ss_r proc~k_slice->proc~wham_get_eig_deleig proc~k_slice->proc~berry_get_imfgh_klist proc~k_slice->proc~berry_get_shc_klist proc~k_slice->proc~berry_get_imf_klist proc~spin_get_moment->proc~get_hh_r proc~spin_get_moment->proc~get_ss_r proc~w90_disentangle w90_disentangle proc~w90_disentangle->proc~w90_disentangle~2 proc~w90_get_excl_bands w90_get_excl_bands proc~w90_get_excl_bands->proc~w90_get_excl_bands~2 proc~w90_get_gkpb~2 w90_get_gkpb proc~w90_get_gkpb~2->proc~w90_create_kmesh proc~w90_get_nnkp~2 w90_get_nnkp proc~w90_get_nnkp~2->proc~w90_create_kmesh proc~w90_get_nn~2->proc~w90_create_kmesh proc~w90_get_proj w90_get_proj proc~w90_get_proj->proc~w90_get_proj~2 proc~w90_input_reader w90_input_reader proc~w90_input_reader->proc~w90_input_reader~2 proc~w90_input_setopt_f w90_input_setopt_f proc~w90_input_setopt_f->proc~w90_input_setopt proc~w90_print_info w90_print_info proc~w90_print_info->proc~w90_print_info~2 proc~w90_project_overlap w90_project_overlap proc~w90_project_overlap->proc~w90_project_overlap~2 proc~w90_wannierise w90_wannierise proc~w90_wannierise->proc~w90_wannierise~2 proc~wham_get_eig_deleig->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc wham_get_eig_UU_HH_AA_sc proc~wham_get_eig_uu_hh_aa_sc->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_aa_r proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_aa_r_effective proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_hh_r proc~wham_get_eig_uu_hh_jjlist wham_get_eig_UU_HH_JJlist proc~wham_get_eig_uu_hh_jjlist->proc~get_hh_r proc~berry_get_imfgh_klist->proc~wham_get_eig_uu_hh_jjlist proc~berry_get_kdotp->proc~wham_get_eig_deleig proc~berry_get_kdotp->proc~wham_get_eig_uu_hh_aa_sc proc~berry_get_kubo_k->proc~wham_get_eig_deleig proc~berry_get_sc_klist->proc~wham_get_eig_deleig proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv proc~berry_get_shc_klist->proc~wham_get_eig_deleig proc~boltzwann_main->proc~calctdfanddos proc~gyrotropic_get_k_list->proc~wham_get_eig_deleig proc~gyrotropic_get_k_list->proc~berry_get_imfgh_klist proc~gyrotropic_get_k_list->proc~berry_get_imf_klist proc~w90_get_gkpb w90_get_gkpb proc~w90_get_gkpb->proc~w90_get_gkpb~2 proc~w90_get_nn w90_get_nn proc~w90_get_nn->proc~w90_get_nn~2 proc~w90_get_nnkp w90_get_nnkp proc~w90_get_nnkp->proc~w90_get_nnkp~2 proc~berry_get_imf_klist->proc~berry_get_imfgh_klist

Source Code

  subroutine comms_no_sync_bcast_char(array, size, error, comm)
    !! Send character array from root node to all nodes
    implicit none

    character(len=*), intent(inout) :: array
    integer, intent(in) :: size
    type(w90_comm_type), intent(in) :: comm
    type(w90_error_type), allocatable, intent(out) :: error

#ifdef W90_MPI
    integer :: ierr

    call mpi_bcast(array, size, MPI_CHARACTER, root_id, comm%comm, ierr)

    if (ierr .ne. MPI_SUCCESS) then
      call set_base_error(error, 'Error in comms_bcast_char', code_mpi)
      return
    end if
#endif

  end subroutine comms_no_sync_bcast_char