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_retrieve_exists()type(ESMF_Grid),target::g1_in,g1_outtype(RegridderSpec)::regridder_spectype(RegridderFactorySpec)::factory_spectype(RegridderFactoryRegistry)::registryclass(AbstractRegridderFactory),pointer::factoryclass(AbstractRegridder),allocatable::regridderg1_in=ESMF_GridEmptyCreate()g1_out=ESMF_GridEmptyCreate()call ESMF_AttributeSet(g1_in,name='GridType',value='A')call ESMF_AttributeSet(g1_out,name='GridType',value='B')regridder_spec=RegridderSpec(g1_in,g1_out)factory_spec=RegridderFactorySpec(regridder_spec)factory=>registry%at(factory_spec)@assertFalse(associated(factory))call registry%insert(factory_spec,MockRegridderFactory('A to B'))factory=>registry%at(factory_spec)@assertTrue(associated(factory))allocate(regridder,source=factory%make_regridder(regridder_spec))select type(regridder)type is(MockRegridder)@assertEqual('A to B::A -> B',regridder%get_name())class defaultcall throw('incorrect type of regridder returned')end select end subroutine test_retrieve_exists