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 assign_tag(lhs,rhs)!< Assignment between two tags.class(xml_tag),intent(inout)::lhs!< Left hand side.type(xml_tag),intent(in)::rhs!< Right hand side.integer(I4P)::a!< Counter.call lhs%freeif(rhs%tag_name%is_allocated())lhs%tag_name=rhs%tag_nameif(rhs%tag_content%is_allocated())lhs%tag_content=rhs%tag_contentif(rhs%attributes_number>0)then allocate(lhs%attribute(1:2,1:rhs%attributes_number))do a=1,rhs%attributes_numberlhs%attribute(1:2,a)=rhs%attribute(1:2,a)enddo endiflhs%attributes_number=rhs%attributes_numberlhs%indent=rhs%indentlhs%is_self_closing=rhs%is_self_closingendsubroutine assign_tag