mus_init_longBuffers Subroutine

public subroutine mus_init_longBuffers(comm, pattern)

Wrapper around the actual communication, to avoid copy-in, copy-out by the Intel compiler. (At least the intel compiler on pigeon (v12.0) seems to do copying here, if a sub-array is passed to an assumed size dummy argument. Therefore we use this wrapping with an assumed shape dummy argument, so we can pass a complete field to the actual exchange which has an assumed size argument, without copying complete state field around, just for communication. Ugly, but it doesn't seem to have an impact on performance, and right it seems to be the most suitable solution.

Copy the element position in send and recv buffer to pos array in long type buffer


type(tem_communication_type), intent(inout) :: comm
type(tem_commPattern_type), intent(in) :: pattern

Called by

proc~~mus_init_longbuffers~~CalledByGraph proc~mus_init_longbuffers mus_init_longBuffers proc~communicate_property communicate_property proc~communicate_property->proc~mus_init_longbuffers proc~mus_construct mus_construct proc~mus_construct->proc~communicate_property 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 :: iProc