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_accumulate_nested()type(TimeProfiler),target::main,lapclass(AbstractMeterNode),pointer::main_nodeclass(AbstractMeterNode),pointer::childclass(AbstractMeter),pointer::tmain=TimeProfiler('main')call main%start()lap=TimeProfiler('lap')call lap%start()call lap%start('A')call lap%stop('A')call lap%finalize()call main%accumulate(lap)! should now have 'lap' as a subtimer of 'main'@assertEqual(3,main%get_num_meters())main_node=>main%get_root_node()@assertTrue(main_node%has_child('lap'))child=>main_node%get_child('lap')t=>child%get_meter()select type(t)class is(AdvancedMeter)@assertEqual(1,t%get_num_cycles())end select@assertTrue(child%has_child('A'))child=>child%get_child('A')t=>child%get_meter()select type(t)class is(AdvancedMeter)@assertEqual(1,t%get_num_cycles())end select end subroutine test_accumulate_nested