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.

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

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) :: 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

Statistics

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

PDF neighbor array

integer, intent(in) :: nSize

number of Elements in neigh array