anchor.diff:      !FIXME:final::purgeGrid
       ! auxiliary grid procedures
       procedure,public::updateNodeNeibBlock
  +    procedure,public::updateIntf
       procedure,public::updatePointPos
       procedure,public::updateLinePos
       procedure,public::updateFacetPos
  
positive.code:     if(allocated(this%lDmn)) deallocate(this%lDmn)
      if(allocated(this%lPrt)) deallocate(this%lPrt)
      if(allocated(this%NodeNeibBlock)) deallocate(this%NodeNeibBlock)
      if(allocated(this%PointPos)) deallocate(this%PointPos)
      if(allocated(this%LinePos)) deallocate(this%LinePos)
      if(allocated(this%FacetPos)) deallocate(this%FacetPos)
  
negative.code:         end do
        end do
        this%isUpNodeNeibBlock=.true.
      end if
    end subroutine
    
    !> update the interface between blocks
    elemental subroutine updateIntf(this)
      class(typeGrid),intent(inout)::this !< this grid
      
      if(.not.this%isUpIntf)then
        !TODO:count interface num
        this%nIntf=3
        if(allocated(this%Intf))then
          if(size(this%Intf)/=this%nIntf)then
            deallocate(this%Intf)
            allocate(this%Intf(this%nIntf))
          end if
        else
          allocate(this%Intf(this%nIntf))
        end if
        call reallocArr(this%IntfNeibBlock,INTF_NEIB_BLOCK_NUM,this%nIntf)
        !TODO:save interfaces
        this%isUpIntf=.true.
      end if
    end subroutine
    
  