comms_scatterv Interface

public interface comms_scatterv

Calls

interface~~comms_scatterv~~CallsGraph interface~comms_scatterv comms_scatterv proc~comms_scatterv_cmplx_3 comms_scatterv_cmplx_3 interface~comms_scatterv->proc~comms_scatterv_cmplx_3 proc~comms_scatterv_cmplx_4 comms_scatterv_cmplx_4 interface~comms_scatterv->proc~comms_scatterv_cmplx_4 proc~comms_scatterv_int_1 comms_scatterv_int_1 interface~comms_scatterv->proc~comms_scatterv_int_1 proc~comms_scatterv_int_2 comms_scatterv_int_2 interface~comms_scatterv->proc~comms_scatterv_int_2 proc~comms_scatterv_int_3 comms_scatterv_int_3 interface~comms_scatterv->proc~comms_scatterv_int_3 proc~comms_scatterv_real_1 comms_scatterv_real_1 interface~comms_scatterv->proc~comms_scatterv_real_1 proc~comms_scatterv_real_2 comms_scatterv_real_2 interface~comms_scatterv->proc~comms_scatterv_real_2 proc~comms_scatterv_real_3 comms_scatterv_real_3 interface~comms_scatterv->proc~comms_scatterv_real_3 proc~comms_no_sync_scatterv_cmplx_3 comms_no_sync_scatterv_cmplx_3 proc~comms_scatterv_cmplx_3->proc~comms_no_sync_scatterv_cmplx_3 proc~comms_sync_error comms_sync_error proc~comms_scatterv_cmplx_3->proc~comms_sync_error proc~comms_no_sync_scatterv_cmplx_4 comms_no_sync_scatterv_cmplx_4 proc~comms_scatterv_cmplx_4->proc~comms_no_sync_scatterv_cmplx_4 proc~comms_scatterv_cmplx_4->proc~comms_sync_error proc~comms_no_sync_scatterv_int_1 comms_no_sync_scatterv_int_1 proc~comms_scatterv_int_1->proc~comms_no_sync_scatterv_int_1 proc~comms_scatterv_int_1->proc~comms_sync_error proc~comms_no_sync_scatterv_int_2 comms_no_sync_scatterv_int_2 proc~comms_scatterv_int_2->proc~comms_no_sync_scatterv_int_2 proc~comms_scatterv_int_2->proc~comms_sync_error proc~comms_no_sync_scatterv_int_3 comms_no_sync_scatterv_int_3 proc~comms_scatterv_int_3->proc~comms_no_sync_scatterv_int_3 proc~comms_scatterv_int_3->proc~comms_sync_error proc~comms_no_sync_scatterv_real_1 comms_no_sync_scatterv_real_1 proc~comms_scatterv_real_1->proc~comms_no_sync_scatterv_real_1 proc~comms_scatterv_real_1->proc~comms_sync_error proc~comms_no_sync_scatterv_real_2 comms_no_sync_scatterv_real_2 proc~comms_scatterv_real_2->proc~comms_no_sync_scatterv_real_2 proc~comms_scatterv_real_2->proc~comms_sync_error proc~comms_no_sync_scatterv_real_3 comms_no_sync_scatterv_real_3 proc~comms_scatterv_real_3->proc~comms_no_sync_scatterv_real_3 proc~comms_scatterv_real_3->proc~comms_sync_error

Called by

interface~~comms_scatterv~~CalledByGraph interface~comms_scatterv comms_scatterv proc~geninterp_main geninterp_main proc~geninterp_main->interface~comms_scatterv proc~get_aa_r get_AA_R proc~get_aa_r->interface~comms_scatterv proc~get_bb_r get_BB_R proc~get_bb_r->interface~comms_scatterv proc~get_cc_r get_CC_R proc~get_cc_r->interface~comms_scatterv proc~get_saa_r get_SAA_R proc~get_saa_r->interface~comms_scatterv proc~get_sbb_r get_SBB_R proc~get_sbb_r->interface~comms_scatterv proc~k_path k_path proc~k_path->interface~comms_scatterv proc~k_path->proc~get_aa_r proc~k_path->proc~get_bb_r proc~k_path->proc~get_cc_r proc~berry_main berry_main proc~berry_main->proc~get_aa_r proc~berry_main->proc~get_bb_r proc~berry_main->proc~get_cc_r proc~berry_main->proc~get_saa_r proc~berry_main->proc~get_sbb_r proc~berry_get_sc_klist berry_get_sc_klist proc~berry_main->proc~berry_get_sc_klist proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~get_aa_r proc~gyrotropic_main->proc~get_bb_r proc~gyrotropic_main->proc~get_cc_r proc~k_slice k_slice proc~k_slice->proc~get_aa_r proc~k_slice->proc~get_bb_r proc~k_slice->proc~get_cc_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 program~postw90 postw90 program~postw90->proc~geninterp_main program~postw90->proc~k_path program~postw90->proc~berry_main program~postw90->proc~gyrotropic_main program~postw90->proc~k_slice proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv

Module Procedures

private subroutine comms_scatterv_int_1(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter integer data from root node (array of rank 1)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: array(:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

integer, intent(inout) :: rootglobalarray(:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_int_2(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter integer data from root node (array of rank 2)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: array(:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

integer, intent(inout) :: rootglobalarray(:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_int_3(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter integer data from root node (array of rank 3)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: array(:,:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

integer, intent(inout) :: rootglobalarray(:,:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_real_1(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter real data from root node (array of rank 1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: array(:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

real(kind=dp), intent(inout) :: rootglobalarray(:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_real_2(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter real data from root node (array of rank 2)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: array(:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

real(kind=dp), intent(inout) :: rootglobalarray(:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_real_3(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter real data from root node (array of rank 3)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: array(:,:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

real(kind=dp), intent(inout) :: rootglobalarray(:,:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_cmplx_3(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter complex data from root node (array of rank 3)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: array(:,:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

complex(kind=dp), intent(inout) :: rootglobalarray(:,:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine comms_scatterv_cmplx_4(array, localcount, rootglobalarray, counts, displs, error, comm)

Scatter complex data from root node (array of rank 4)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: array(:,:,:,:)

local array for getting data

integer, intent(in) :: localcount

localcount elements will be fetched from the root node

complex(kind=dp), intent(inout) :: rootglobalarray(:,:,:,:)

array on the root node from which data will be sent

integer, intent(in) :: counts(0:)

how data should be partitioned, see MPI documentation or function comms_array_split

integer, intent(in) :: displs(0:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm