init_recvBuffers Subroutine

private subroutine init_recvBuffers(me, myHalos, pattern, requireAll, haloRequired, halo_offset, scheme, stat, neigh, nSize)

Create the communication buffers

Assign the positions in state vectors, where to fetch from or save to Solver specific part to identify the actual data locations to send use within the communication buffers.

Access to state array: SAVE

Why? Because we need to work on the pdfs on which the compute kernel was working. The kernel stored to SAVE All actions taking place on the state array after the kernel need to be performed with SAVE access


type(tem_communication_type), intent(inout) :: me

receive communication buffer

type(halo_commBitmask_type), intent(inout) :: myHalos(:)

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

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

communication pattern

logical, intent(in) :: requireAll

requires complete element information or only required links?

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

Level descriptor

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

Scheme information on fluid, boundary and flow properties

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


integer, intent(in) :: neigh(:)

PDF neighbor array

integer, intent(in) :: nSize

number of Elements in neigh array

Called by

proc~~init_recvbuffers~~CalledByGraph proc~init_recvbuffers init_recvBuffers proc~init_levelbuffers init_levelBuffers proc~init_levelbuffers->proc~init_recvbuffers 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



integer, private, allocatable:: pos(:)
integer, private :: iElem
integer, private :: iDir
integer, private :: iProc
integer, private :: elemPos
integer, private :: counter
integer, private :: iField
integer, private :: nScalars
integer, private :: varPos
integer, private :: neighDir
integer, private :: QQ
logical, private :: includeInComm
integer, private :: nghElem
integer, private :: neighPos