public recursive subroutine generate_fragment_list(monomers, max_level, polymers, count)
Generate all possible fragments (combinations of monomers) up to max_level
Uses int64 for count to handle large numbers of fragments that overflow int32.
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.
Variables
Type
Visibility
Attributes
Name
Initial
integer(kind=default_int),
private
::
n
integer(kind=default_int),
private
::
r
Source Code
recursive subroutine generate_fragment_list(monomers,max_level,polymers,count)!! Generate all possible fragments (combinations of monomers) up to max_level!! Uses int64 for count to handle large numbers of fragments that overflow int32.integer(default_int),intent(in)::monomers(:),max_levelinteger(default_int),intent(inout)::polymers(:,:)integer(int64),intent(inout)::countinteger(default_int)::r,nn=size(monomers,1)do r=2,max_levelcall combine(monomers,n,r,polymers,count)end do end subroutine generate_fragment_list