anchor.diff:    type(string)                                     :: delimiter_    !< Delimiter character.
     type(string)                                     :: buffer        !< A string buffer.
     integer(I4P)                                     :: f             !< File counter.
  -  !---------------------------------------------------------------------------------------------------------------------------------
  -
  -  !---------------------------------------------------------------------------------------------------------------------------------
  +
     delimiter_ = ' ' ; if (present(delimiter)) delimiter_ = delimiter
     buffer = filenames
     call buffer%split(tokens=filenames_, sep=delimiter_%chars())
  
positive.code:   logical,                    intent(in), optional :: one_component  !< Force one component.
    logical,                    intent(in), optional :: is_tuples      !< Use "NumberOfTuples" instead of "NumberOfComponents".
    integer(I4P)                                     :: error          !< Error status.
    !---------------------------------------------------------------------------------------------------------------------------------
    endfunction write_dataarray1_rank4_I2P_interface
  
    function write_dataarray1_rank4_I1P_interface(self, data_name, x, one_component, is_tuples) result(error)
    !---------------------------------------------------------------------------------------------------------------------------------
    !< Write `<DataArray... NumberOfComponents="n"...>...</DataArray>` tag (I1P).
    !---------------------------------------------------------------------------------------------------------------------------------
    import :: xml_writer_abstract, I1P, I4P
    class(xml_writer_abstract), intent(inout)        :: self           !< Writer.
    character(*),               intent(in)           :: data_name      !< Data name.
  
negative.code:        action='WRITE',               &
         status='REPLACE',             &
         iostat=self%error)
    endsubroutine open_xml_file
  
    ! tag methods
    subroutine write_end_tag(self, name)
    !< Write `</tag_name>` end tag.
    class(xml_writer_abstract), intent(inout) :: self !< Writer.
    character(*),               intent(in)    :: name !< Tag name.
  
    self%indent = self%indent - 2
    self%tag = xml_tag(name=name, indent=self%indent)
    call self%tag%write(unit=self%xml, iostat=self%error, is_indented=.true., end_record=end_rec, only_end=.true.)
    endsubroutine write_end_tag
  
    subroutine write_header_tag(self)
    !< Write header tag.
    class(xml_writer_abstract), intent(inout) :: self   !< Writer.
    type(string)                              :: buffer !< Buffer string.
  
    buffer = '<?xml version="1.0"?>'//end_rec
    if (endian==endianL) then
      buffer = buffer//'<VTKFile type="'//self%topology//'" version="1.0" byte_order="LittleEndian">'
  