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.
Variables
Type
Visibility
Attributes
Name
Initial
integer,
private
::
i
Source Code
function next_combination(combination,k,n)result(has_next)!! Generate next combination in lexicographic order!! Returns .true. if there's a next combination, .false. if we've exhausted allinteger,intent(inout)::combination(:)integer,intent(in)::k,nlogical::has_nextinteger::ihas_next=.true.! Find the rightmost element that can be incrementedi=kdo while(i>=1)if(combination(i)<n-k+i)thencombination(i)=combination(i)+1! Reset all elements to the rightdo while(i<k)i=i+1combination(i)=combination(i-1)+1end do return end ifi=i-1end do! No more combinationshas_next=.false.end function next_combination