Routine to build communication buffer using elemRanks. This routine can be used only if all elements need to be communicated but they need process-wise seperation. Uses nScalars to get position in the value array to communicate. For send buffer: elemRanks contains target ranks to send data to For recv buffer: elemRanks contains source ranks to recv data from
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_communication_type), | intent(out) | :: | commBuffer | send or recv communication buffer to be created |
||
integer, | intent(in) | :: | nScalars | Number of scalars per element |
||
integer, | intent(in) | :: | nElems | Total number of elements or points to communicate |
||
integer, | intent(in) | :: | elemRanks(nElems) | Target or source rank for each element or point |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iElem | ||||
integer, | private | :: | iProc | ||||
integer, | private | :: | iVar | ||||
integer, | private | :: | counter | ||||
integer, | private | :: | pntPos | ||||
type(dyn_intarray_type), | private | :: | partnerProc | ||||
integer, | private, | allocatable | :: | pos(:) |