Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
subroutine lb_senduse mod_global_parametersuse mod_comm_lib,only:mpistop! Record the block; the pack and the post both happen in! exchange_migrated_blocks. The key is the receiving block index, so it! matches the one the receiver derives from its own getnode().isend=isend+1n_lb_snd=n_lb_snd+1if(n_lb_snd>size(lb_snd_igrid))then call mpistop('load_balance: more departures than max_blocks')end iflb_snd_igrid(n_lb_snd)=send_igridlb_snd_dest(n_lb_snd)=recv_ipelb_snd_key(n_lb_snd)=recv_igrid! The staggered branch below is NOT aggregated and is left as found: it is! unreachable (stagger_grid is false throughout this fork and fix_edges has! no caller). Its tag, recv_igrid+max_blocks, is sound but doubles the tag! range, so it would be the first thing to hit MPI_TAG_UB.if(stagger_grid)thenitag=recv_igrid+max_blockscall mpi_isend_wrapper(ps(send_igrid)%ws,1,type_block_io_stg,recv_ipe,itag,&icomm,sendrequest_stg(isend),ierrmpi)end if end subroutine lb_send