init_levelBuffers Subroutine

private subroutine init_levelBuffers(send, recv, pdf, pattern, offset, requireAll, scheme, stat, comm, haloRequired)

Initialize the communication buffers for a single level

Arguments

TypeIntentOptionalAttributesName
type(tem_communication_type) :: send

Communication structure to initialize

type(tem_communication_type) :: recv

Communication structure to initialize

type(pdf_data_type), intent(in) :: pdf

iLevel pdf info with neigh array

type(tem_commPattern_type), intent(in) :: pattern

communication pattern

integer, intent(in) :: offset(2,eT_minRelevant:eT_maxRelevant)
logical, intent(in) :: requireAll

different place to take values from for interpolation

type(mus_scheme_type), intent(in) :: scheme

fluid, bnd and flow info

type(mus_statistics_type), intent(inout) :: stat

Statistics

integer, intent(in) :: comm

mpi communication enviroment with mpi communicator

logical, intent(in) :: haloRequired(:)

Calls

proc~~init_levelbuffers~~CallsGraph proc~init_levelbuffers init_levelBuffers none~init_bitmask init_bitmask proc~init_levelbuffers->none~init_bitmask proc~init_recvbuffers init_recvBuffers proc~init_levelbuffers->proc~init_recvbuffers none~communicate_bitmask communicate_bitmask proc~init_levelbuffers->none~communicate_bitmask none~destroy_bitmask destroy_bitmask proc~init_levelbuffers->none~destroy_bitmask proc~init_sendbuffers init_sendBuffers proc~init_levelbuffers->proc~init_sendbuffers mpi_waitall mpi_waitall none~communicate_bitmask->mpi_waitall mpi_isend mpi_isend none~communicate_bitmask->mpi_isend mpi_irecv mpi_irecv none~communicate_bitmask->mpi_irecv

Called by

proc~~init_levelbuffers~~CalledByGraph proc~init_levelbuffers init_levelBuffers proc~mus_construct mus_construct proc~mus_construct->proc~init_levelbuffers proc~mus_initialize mus_initialize proc~mus_initialize->proc~mus_construct program~mus_harvesting mus_harvesting program~mus_harvesting->proc~mus_construct proc~mus_perform_dynloadbal mus_perform_dynLoadBal proc~mus_perform_dynloadbal->proc~mus_construct none~do_balance do_balance none~do_balance->proc~mus_perform_dynloadbal program~musubi musubi program~musubi->proc~mus_initialize proc~mus_solve mus_solve proc~mus_solve->none~do_balance

Contents


Variables

TypeVisibilityAttributesNameInitial
type(halo_commBitmask_type), private, allocatable:: myHalos(:)
type(halo_commBitmask_type), private, allocatable:: remoteHalos(:)

Subroutines

subroutine init_bitmask(halos, comm, nScalars)

Initialize myHalos and remoteHalos bitmasks. myHalos bitmask are from my halo elements which are to be received from remote process and remoteHalos bitmask are remote process halos which are requested by remote process.

Arguments

TypeIntentOptionalAttributesName
type(halo_commBitmask_type), intent(out), allocatable:: halos(:)

contains bitmask of my halos with array size of recv%nProcs

type(tem_communication_type), intent(in) :: comm

Communication structure to initialize

integer, intent(in) :: nScalars

number of scalars in variable system to communicate

subroutine destroy_bitmask(Halos, nProcs)

Destroy allocated send and recv bitmask buffer

Arguments

TypeIntentOptionalAttributesName
type(halo_commBitmask_type), intent(inout), allocatable:: Halos(:)

contains bitmask of my halos with array size of recv%nProcs

integer, intent(in) :: nProcs

Communication structure to initialize

subroutine communicate_bitmask()

Arguments

None