delete_tag Subroutine

private elemental subroutine delete_tag(self, name)

Delete tag from XML file.

Type Bound

xml_file

Arguments

Type IntentOptional Attributes Name
class(xml_file), intent(inout) :: self

XML file.

character(len=*), intent(in) :: name

XML tag name.


Calls

proc~~delete_tag~~CallsGraph proc~delete_tag xml_file%delete_tag proc~name xml_tag%name proc~delete_tag->proc~name chars chars proc~name->chars

Called by

proc~~delete_tag~~CalledByGraph proc~delete_tag xml_file%delete_tag program~foxy_test_delete_tag foxy_test_delete_tag program~foxy_test_delete_tag->proc~delete_tag

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%nt
         if (name==self%tag(t)%name()) then
            allocate(tag_new(1:self%nt - 1))
            if (t==1) then
               tag_new(t:) = self%tag(t+1:)
            elseif (t==self%nt) then
               tag_new(:t-1) = self%tag(:t-1)
            else
               tag_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 - 1
            exit
         endif
      enddo
   endif
   endsubroutine delete_tag