anchor.diff:      allocate(object_array_pointer::Pt)
       call this%AddItemPointer(Pt)
       select type (Pt)
  -    class is (object_array_pointer)
  +    type is (object_array_pointer)
  +        if (this%ownsObjects) then
  +            allocate(Pt%P, source= P)
  +        else
  +            !This would work on ifort, but may not be standard and does not with gfortran
  +            !Pt%P => P
  +            call this%Error('Use AddArrayPointer to add array when ownsObjects if false')
  +        end if
  +    end select
  +    end subroutine AddArray
  +
  +    subroutine AddArrayPointer(this, P)
  +    Class (TObjectList) :: this
  +    class(*), pointer, intent(in) :: P(:)
  +    class(*), pointer :: Pt
  +
  +    allocate(object_array_pointer::Pt)
  +    call this%AddItemPointer(Pt)
  +    select type (Pt)
  +    type is (object_array_pointer)
           if (this%ownsObjects) then
               allocate(Pt%P, source= P)
           else
               Pt%P => P
           end if
       end select
  -    end subroutine AddArray
  +    end subroutine AddArrayPointer
   
       subroutine CheckIndex(this,i)
       Class(TObjectList) :: this
  
positive.code:         end if
      end do
      this%Count = num
      this%OwnsObjects = .true.
  
      end subroutine ReadBinary
  
  
negative.code:         if (k==1) then
              allocate(ArrR(sz))
              read(fid) ArrR
              P => arrR
              call this%AddArrayPointer(P)
          else if (k==2) then
              allocate(ArrD(sz))
              read(fid) ArrD
              P => arrR
              call this%AddArrayPointer(P)
          else if (k==3) then
              allocate(ArrI(sz))
              read(fid) ArrI
              P => arrR
              call this%AddArrayPointer(P)
          else if (k==4) then
              allocate(ArrL(sz))
              read(fid) ArrL
              P => arrR
              call this%AddArrayPointer(P)
          else if (k==5) then
              allocate(character(sz)::St) !Ifort required class(*) pointer
              select type (St)
  