anchor.diff:  
         rewind(unit=vtk(rf)%u, iostat=E_IO)
         E_IO = move(inside='RectilinearGrid', 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_char(buffer=s_buffer, attrib='Extent', val=aux, E_IO=E_IO)
         if(E_IO == 0) then      
           read(aux,*, iostat=E_IO) nx1,nx2,ny1,ny2,nz1,nz2
           if(E_IO == 0) then      
             NN = (nx2-nx1+1)*(ny2-ny1+1)*(nz2-nz1+1)
  -          E_IO = search(inside='Coordinates', to_find='DataArray', with_attribute='Name', of_value='X', &
  +          E_IO = search(from=pos, inside='Coordinates', to_find='DataArray', with_attribute='Name', of_value='X', &
                           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)
  
positive.code: 
        rewind(unit=vtk(rf)%u, iostat=E_IO)
        E_IO = move(inside='StructuredGrid', to_find='Piece', repeat=np, cf=rf, buffer=s_buffer) ! find the 'np' piece
        call get_char(buffer=s_buffer, attrib='Extent', val=aux, E_IO=E_IO)
        if(E_IO == 0) then      
          read(aux,*, iostat=E_IO) nx1,nx2,ny1,ny2,nz1,nz2
          if(E_IO == 0) then      
            NN = (nx2-nx1+1)*(ny2-ny1+1)*(nz2-nz1+1)
            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,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)
  