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.

Todo

this should be pattern specific, with typed exchange we do not need to store the pos, as it is done inside MPI with the defined datatype

Todo

does PULL and PUSH give the same results? as SAVE is used here

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

Arguments

Type IntentOptional Attributes Name
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