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 populate_coloring_result(self)implicit none class(type_coloring),intent(inout)::selfinteger(int32)::i,j,counts,num_nodesnum_nodes=size(self%color)if(num_nodes==0)thenself%num_colors=0return end ifself%num_colors=maxval(self%color)if(self%num_colors==0)return if(allocated(self%colored))deallocate(self%colored)allocate(self%colored(self%num_colors))do i=1,self%num_colorscounts=count(self%color==i)self%colored(i)%num_elements=countsif(counts>0)then allocate(self%colored(i)%elements(counts))self%colored(i)%elements=pack([(j,j=1,num_nodes)],self%color==i)end if end do end subroutine populate_coloring_result