init_sendBuffers Subroutine

private subroutine init_sendBuffers(send, remoteHalos, neigh, pattern, scheme, nSize)

Create the communication buffers

Receive buffers were before created. Now receive the buffers as send buffers from the remote processes. Assign the positions, where to fetch from and where to 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) :: send

send communication buffer

type(halo_commBitmask_type), intent(in) :: remoteHalos(:)

contains bitmask of remote halos with array size send%nProcs

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

neighbor array for state array

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

communication pattern

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

fluid, boundary and flow information

integer, intent(in) :: nSize

Called by

proc~~init_sendbuffers~~CalledByGraph proc~init_sendbuffers init_sendBuffers proc~init_levelbuffers init_levelBuffers proc~init_levelbuffers->proc~init_sendbuffers 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 :: counter
integer, private :: elemPos
integer, private :: iField
integer, private :: nScalars
integer, private :: QQ
integer, private :: varPos