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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
subroutine execute_cm_ordering(start_node,node_adj,degree,visited,Q,R,R_count)implicit noneinteger(int32),intent(in)::start_nodeclass(type_node_adjacency),intent(in)::node_adjinteger(int32),intent(in)::degree(:)logical,intent(inout)::visited(:)integer(int32),intent(inout)::Q(:),R(:),R_countinteger(int32)::q_head,q_tail,current_nodeq_head=1q_tail=1Q(1)=start_nodevisited(start_node)=.true.do while(q_head<=q_tail)current_node=Q(q_head)q_head=q_head+1R_count=R_count+1R(R_count)=current_nodecall sort_and_enqueue_neighbors(current_node,node_adj,degree,visited,Q,q_tail)end do end subroutine execute_cm_ordering