anchor.diff:  c
    200                           return
         end
  -      subroutine reduc(nm,n,a,b,dl,ierr)
  +      subroutine util_reduc(nm,n,a,b,dl,ierr)
   c
         integer i,j,k,n,i1,j1,nm,nn,ierr
         double precision a(nm,n),b(nm,n),dl(n)
  
positive.code: c
        return
        end
        subroutine tred2(nm,n,a,d,e,z)
  c
        integer i,j,k,l,n,ii,nm,jp1
        double precision a(nm,n),d(n),e(n),z(nm,n)
  
negative.code:       ierr = 10 * n
        go to 50
  c
   10    call  util_reduc(nm,n,a,b,fv2,ierr)
        if (ierr .ne. 0) go to 50
        if (matz .ne. 0) go to 20
  c     .......... find eigenvalues only ..........
        call  util_tred1(nm,n,a,w,fv1,fv2)
        call  util_tqlrat(n,w,fv2,ierr)
        go to 50
  c     .......... find both eigenvalues and eigenvectors ..........
   20    call  util_tred2(nm,n,a,w,fv1,z)
        call  util_tql2(nm,n,w,fv1,z,ierr)
        if (ierr .ne. 0) go to 50
        call  util_rebak(nm,n,b,fv2,n,z)
   50    return
        end
        subroutine util_tql2(nm,n,d,e,z,ierr)
  c
        integer i,j,k,l,m,n,ii,l1,l2,nm,mml,ierr
        double precision d(n),e(n),z(nm,n)
  