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.
Source Code
elemental subroutine get_value(self,source)!< Get the tag value from source after tag_name has been set.class(xml_tag),intent(inout)::self!< XML tag.character(*),intent(in)::source!< String containing data.integer::c1!< Counter.integer::c2!< Counter.call self%tag_content%freeself%is_self_closing=.false.if(index(string=source,substring='<'//self%tag_name)>0)thenc2=index(string=source,substring='</'//self%tag_name//'>')if(c2>0)then! parsing tag valuec1=index(string=source,substring='>')if(c1+1<c2-1)self%tag_content=source(c1+1:c2-1)elseself%is_self_closing=.true.endif endif endsubroutine get_value