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 dijkstra(u,inext)integer(ip),intent(in)::u! currentinteger(ip),intent(in)::inext! index in inext array of the next nodeinteger(ip)::idistassociate(next_node=>nodes(u)%inext(inext),&distance_to_next_node=>nodes(u)%idist(inext))if(nodes_visited(next_node))return! already visited this oneidist=node_dist(u)+distance_to_next_node! add distance from u to vif(idist>node_dist(next_node))then!write(*,*) 'highest so far: ', idistnode_dist(next_node)=idistnode_prev(next_node)=uend if end associate end subroutine dijkstra