anchor.diff:      do10x01=qA%Quad10%Norm*qB%Quad01%Norm>SpAMM_tolerance
       do11x11=qA%Quad11%Norm*qB%Quad11%Norm>SpAMM_tolerance
   
  -       ELSE
  -
  -    do00x00=.TRUE.
  -    do01x10=.TRUE.
  -    do00x01=.TRUE.
  -    do01x11=.TRUE.
  -    do10x00=.TRUE.
  -    do11x10=.TRUE.
  -    do10x01=.TRUE.
  -    do11x11=.TRUE.
  -
  -       ENDIF
  +!!$    WRITE(*,*)' ---------------------------------------------------'
  +!!$    WRITE(*,33)qA%Box,qB%Box,qC%Box,qA%Norm*qB%Norm
  +!!$    WRITE(*,*)' DO ',do00x00,do01x10,do00x01,do01x11,do10x00,do11x10,do10x01,do11x11
   
       ! 00=00*00+01*10
       IF(do00x00.OR.do01x10)THEN
  
positive.code:   INTEGER, PARAMETER :: SINGLE=KIND(0.0)           !--Real*4
    INTEGER, PARAMETER :: DOUBLE=KIND(0.D0)          !--Real*8
    REAL(DOUBLE),PARAMETER :: Zero=0D0
  
    !
    !----------------------------------------------------------------
    REAL(DOUBLE)       :: SpAMM_tolerance,SpAMM_multiplies
    INTEGER            :: SpAMM_tiles,    SpAMM_levels,     SpAMM_quadcount
    INTEGER, PARAMETER :: BLOCK_SIZE=1
    !----------------------------------------------------------------
    TYPE QuTree
       INTEGER                      :: Siz
  
negative.code:     qC%Lev=1
      SpAMM_multiplies=Zero
      qC%Box(:,1)=(/1,1/)
      qC%Box(:,2)=(/SpAMM_tiles,SpAMM_tiles/)*BLOCK_SIZE
      !
      CALL SpAMM_Multiply(qC,qA,qB)
    END FUNCTION SpAMM
  