anchor.diff:    !> destructor of typeHtr1DIArr
     elemental subroutine purgeHtr1DIArr(this)
       type(typeHtr1DIArr),intent(inout)::this !< this 1D integer allocatable array
  +    
  +    if(allocated(this%dat)) deallocate(this%dat)
  +  end subroutine
  +  
  +  !> destructor of typeHtr2DDArr
  +  elemental subroutine purgeHtr2DDArr(this)
  +    type(typeHtr2DDArr),intent(inout)::this !< this 2D double allocatable array
       
       if(allocated(this%dat)) deallocate(this%dat)
     end subroutine
  
positive.code:     module procedure::realloc2DDArr
      module procedure::reallocStr
      module procedure::realloc1DHtr1DIArr
    end interface
    public::reallocArr
    
  
negative.code:     end if
    end subroutine
    
    !> reallocate the 1D allocatable array arr of the heterogeneous 2D double allocatable array
    !> to have m heterogeneous elements
    pure subroutine realloc1DHtr2DDArr(arr,m)
      type(typeHtr2DDArr),allocatable,intent(inout)::arr(:) !< 1D array to be reallocated
      integer,intent(in)::m !< number of entries
      
      if(allocated(arr))then
        if(size(arr)/=m)then
          deallocate(arr)
          allocate(arr(m))
        end if
      else
        allocate(arr(m))
      end if
    end subroutine
    
    !> extend the integer allocatable array arr by l or by 1
    pure subroutine extendIArr(arr,l)
      integer,allocatable,intent(inout)::arr(:) !< integer array to be extended
  