## public subroutine tem_load_commPattern(me, conf, style)

This subroutine loads the communication pattern from a Lua script and sets the exchange routine to be used accordingly.

The variable read from the script is "commpattern". Several patterns are available: * isend_irecv - Use explicit buffers, copy first the outgoing ones, then post irecvs and isends, wait on all, and copy the incoming buffers to their final locations (default). * isend_irecv_mpimem - Same as isend_irecv, but use memory that is allocatd by MPI_Alloc_mem for the buffers. * isend_irecv_overlap - Similar to isend_irecv, but directly post sends, after filling the outgoing buffer to each process, wait on any incoming messages and only wait on sends, after everything is copied into the final location. * overlap_mpimem - Same as isend_irecv_overlap, but use memory that is allocated by MPI_Alloc_mem for the buffers. * typed_isend_irecv - Instead of copying the memory around, define a indexed MPI datatype and use that in the exchange. * gathered_type - Similar to typed_isend_irecv, but with minimal number of blocks in the indexed type, by tracking only contiguous blocks in the memory layout.

Instead of reading the style from a configuration script, it can also be directly set by the caller. If nothing is specified by the caller, the style will default to isend_irecv.

Usage:

commpattern = 'isend_irecv'


### Arguments

TypeIntentOptionalAttributesName
type(tem_commPattern_type), intent(out) :: me

commpattern to set

type(flu_State), optional :: conf

handle to the Lua script

character(len=*), intent(in), optional :: style

optional communication style

## Variables

TypeVisibilityAttributesNameInitial
integer, private :: iError