anchor.diff:  
     END SUBROUTINE Print_Quad
   
  +  SUBROUTINE NewQuNode(qA,count)
  +    INTEGER :: count
  +    TYPE(QuTree), POINTER :: qA
  +    ALLOCATE(qA);  count=count+1
  +    qA%Num=count
  +    qA%Norm=Zero
  +    NULLIFY(qA%Quad00)
  +    NULLIFY(qA%Quad01)
  +    NULLIFY(qA%Quad10)
  +    NULLIFY(qA%Quad11)
  +  END SUBROUTINE NewQuNode
  +
  +
     FUNCTION SpAMM(qA,qB,tolerance) RESULT(qC)
       IMPLICIT NONE
       TYPE(QuTree), POINTER                :: qA,qB
  
positive.code: PROGRAM SpAMM_TEST
    USE SpAMM_TYPES
    IMPLICIT NONE
    INTEGER           ::  N,I,J,M,II,JJ
    REAL(DOUBLE),ALLOCATABLE, DIMENSION(:,:) ::  A, B, C1,C2,CDiff
    TYPE(QuTree),POINTER  :: qA,qB,qC
    REAL(DOUBLE)          :: CNorm,CDiffNorm,CErrBound,CElementErr
    CHARACTER *100        :: Buffer
  
  
negative.code:   READ(BUFFER,*)N
    CALL GETARG(2,BUFFER)
    READ(BUFFER,*)SpAMM_tolerance
  !  CALL GETARG(3,BUFFER)
  !  OPEN(UNIT=66,FILE=TRIM(ADJUSTL(BUFFER)))
  
  !  WRITE(*,*)N,' READING ',TRIM(ADJUSTL(BUFFER))
  
  
  !!$  ALLOCATE(A_NOPADDING(1:N,1:N))
  !!$
  !!$  DO I=1,N
  !!$     DO J=1,N
  !!$        READ(66,*)L,M,A_NOPADDING(L,M)
  !!$     ENDDO
  !!$  ENDDO
  !!$  !
  !!$
  !!$  K=CEILING(LOG10(DBLE(N))/LOG10(2D0))
  !!$  !
  !!$  N_OLD=N
  !!$  N=2**K
  
  
  
  
    !
    ALLOCATE(A(1:N,1:N))
    ALLOCATE(B(1:N,1:N))
    ALLOCATE(C1(1:N,1:N))
    ALLOCATE(C2(1:N,1:N))
    ALLOCATE(CDiff(1:N,1:N))
    !
    A=Zero
    B=Zero
    A(1:N_OLD,1:N_OLD)=A_NOPADDING(1:N_OLD,1:N_OLD)
    B(1:N_OLD,1:N_OLD)=A_NOPADDING(1:N_OLD,1:N_OLD)
  
  
    CALL RANDOM_SEED
    CALL RANDOM_NUMBER(A)
  