anchor.diff:    character(len=:),allocatable        :: s_buffer !< Buffer string.
     character(len=:), allocatable       :: fmt
     character(len=:), allocatable       :: type
  -!  character(len=:), allocatable       :: bindata
  +  character(len=:), allocatable       :: data
     integer(I4P)                        :: np, i, offs, N_Byte
     !---------------------------------------------------------------------------------------------------------------------------------
   
  
positive.code:               trim(adjustlt(Upper_Case(type)))/='FLOAT64') then
              E_IO = -1_I4P 
            else
              read(unit=vtk(rf)%u, iostat=E_IO, pos = vtk(rf)%ioffset+offs) N_Byte, &
                  (((X(i,j,k),Y(i,j,k),Z(i,j,k),i=nx1,nx2),j=ny1,ny2),k=nz1,nz2) !get appended array
            endif
  
negative.code:         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)
            if (trim(adjustlt(Upper_Case(fmt)))/='ASCII' .or. &
                trim(adjustlt(Upper_Case(type)))/='FLOAT32') then
              E_IO = -1_I4P 
            else
              allocate(XYZ(3,NN), stat=E_IO)  
              read(data, fmt=*, iostat=E_IO) ((XYZ(i,j),i=1,3),j=1,NN) !get ascii array
            endif
            if(allocated(data)) deallocate(data)
          endif
        endif
  
      case(binary)
  ! not implemented
  
      case(raw)
  
        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)
            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)
  