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.
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 delete_tag(self,name)!< Delete tag from XML file.class(xml_file),intent(inout)::self!< XML file.character(*),intent(in)::name!< XML tag name.type(xml_tag),allocatable::tag_new(:)!< New (extended) tags array.integer(I4P)::t!< Counter.if(self%nt>0_I4P)then do t=1,self%ntif(name==self%tag(t)%name())then allocate(tag_new(1:self%nt-1))if(t==1)thentag_new(t:)=self%tag(t+1:)elseif(t==self%nt)thentag_new(:t-1)=self%tag(:t-1)elsetag_new(:t-1)=self%tag(:t-1)tag_new(t:)=self%tag(t+1:)endif call move_alloc(from=tag_new,to=self%tag)self%nt=self%nt-1exit endif enddo endif endsubroutine delete_tag