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 test_get_child()type(ConcreteComposite)::childtype(ConcreteComposite),target::parenttype(NamedComponent)::P,Aclass(AbstractComposite),pointer::ptrP%name='p'A%name='A'parent=ConcreteComposite(P)child=ConcreteComposite(A)ptr=>parent%add_child('A',child)ptr=>parent%get_child('A')@assert_that(associated(ptr),is(true()))select type(ptr)type is(ConcreteComposite)select type(q=>ptr%get_component())type is(NamedComponent)@assert_that(q%name,is('A'))class default@assert_that('incorrect type',.true.,is(false()))end select class default@assert_that('incorrect type',.true.,is(false()))end select end subroutine test_get_child