anchor.diff:          rewind(unit=vtk(rf)%u, iostat=E_IO)
           read(unit=vtk(rf)%u,iostat=E_IO) c1
           do 
  -          read(unit=vtk(rf)%u,iostat=E_IO) c2
  +          read(unit=vtk(rf)%u,iostat=E_IO) c2; if(E_IO /= 0) exit
             if (iachar(c1)==10 .and. c2 =='_') exit
             c1 = c2
           enddo
  
positive.code: !    s_buffer(n:n) = c 
      buffer = buffer//c
      n = n + 1
      read(unit=vtk(rf)%u, iostat=E_IO) c
    enddo
    !---------------------------------------------------------------------------------------------------------------------------------
    end function
  
negative.code:   endif
  
    do !search the beginnig of the mark 'inside' 
      E_IO = read_record(buffer, cf=rf); if(E_IO /= 0) exit
      buffer = trim(adjustlt(Upper_Case(buffer)))
      if (index(buffer, '<'//trim(adjustlt(Upper_Case(inside)))) > 0) exit !Mark 'inside' founded once
    enddo
  
    if(E_IO == 0 .and. present(to_find)) then
      n = 1; if(present(repeat)) n = repeat
      do !search 'repeat' times the mark 'to_find'
        E_IO = read_record(buffer, cf=rf); if(E_IO /= 0) exit
        buffer = trim(adjustlt(Upper_Case(buffer)))
        if (index(buffer, '</'//trim(adjustlt(Upper_Case(inside)))) > 0) exit
        if (index(buffer, '<'//trim(adjustlt(Upper_Case(to_find)))) > 0) n = n - 1 !Mark 'to_find' founded once 
        if (n == 0) exit !Mark 'to_find' founded 'repeat' times
      enddo
      if (n > 0 ) E_IO = -1_I4P
    endif
    !---------------------------------------------------------------------------------------------------------------------------------
    end function move
  