anchor.diff:      Type is (real(list_prec))
           P = Arr
           class default
  -        call this%Error('TRealArrayList_Value: object of wrong type (eg. ifort 2017.4 bug)')
  +        call this%Error('TRealArrayList_Value: object of wrong type (eg. ifort 2017.0.4 bug)')
       end select
   
       end function TRealArrayList_Value
  
positive.code:     allocate(object_array_pointer::Pt)
      call this%AddItemPointer(Pt)
      select type (Pt)
      class is (object_array_pointer)
          if (this%ownsObjects) then
              allocate(Pt%P, source= P)
          else
              Pt%P => P
          end if
      end select
      end subroutine AddArray
  
      subroutine CheckIndex(this,i)
      Class(TObjectList) :: this
  
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)
  