anchor.diff:    character(len=:), allocatable       :: fmt
     character(len=:), allocatable       :: type
     character(len=:), allocatable       :: data
  -  integer(I4P)                        :: np, i, j, offs, N_Byte
  +  integer(I4P)                        :: np, i, j, offs, N_Byte, pos
   
     !---------------------------------------------------------------------------------------------------------------------------------
   
  
positive.code: 
        rewind(unit=vtk(rf)%u, iostat=E_IO)
        E_IO = move(inside='UnstructuredGrid', to_find='Piece', repeat=np, cf=rf, buffer=s_buffer) ! find the 'np' piece
        call get_int(buffer=s_buffer, attrib='NumberOfPoints', val=NN, E_IO=E_IO)
        if(E_IO == 0) then
          call get_int(buffer=s_buffer, attrib='NumberOfCells', val=NC, E_IO=E_IO)
          E_IO = search(inside='Points', to_find='DataArray', with_attribute='Name', of_value='Points', &
                        buffer=s_buffer,content=data)
          call get_char(buffer=s_buffer, attrib='format', val=fmt,  E_IO=E_IO)
          call get_char(buffer=s_buffer, attrib='type', val=type,  E_IO=E_IO)
  
negative.code: 
        rewind(unit=vtk(rf)%u, iostat=E_IO)
        E_IO = move(inside='UnstructuredGrid', to_find='Piece', repeat=np, cf=rf, buffer=s_buffer) ! find the 'np' piece
        inquire(unit=vtk(rf)%u, pos=pos, iostat=E_IO) !annotate the current position in the file
        call get_int(buffer=s_buffer, attrib='NumberOfPoints', val=NN, E_IO=E_IO)
        if(E_IO == 0) then
          call get_int(buffer=s_buffer, attrib='NumberOfCells', val=NC, E_IO=E_IO)
          E_IO = search(from=pos, inside='Points', to_find='DataArray', with_attribute='Name', of_value='Points', &
                        buffer=s_buffer)
          call get_int(buffer=s_buffer,  attrib='offset', val=offs, E_IO=E_IO)
          call get_char(buffer=s_buffer, attrib='format', val=fmt,  E_IO=E_IO)
          call get_char(buffer=s_buffer, attrib='type', val=type,  E_IO=E_IO)
  