调用lapack 中的zheev 这个函数时出现,出现run-time error M6201:Math  -sqrt:DOMAIN error .求教各位高手,我是哪出了问题?下面是源程序
program main
    implicit none
    integer,parameter::k=36
    double precision::H(k,k),v(k,k),work(2*k),w(k),rwork(3*k)
    integer i,j,m,n,info
    real t,u,tr

    open(22,file='lanczosegvl.txt')
    open(23,file='lanczosegvt.txt')
    
    t=-1.0
    u=6.0
    do i=1,36
     do j=1,36
      H(i,j)=0
    end do
    end do
    do i=1,36
      m=(i-1)/6+1
      n=i-6*(m-1)
    if((m==2.or.m==5).and.(n==2.or.n==5)) then
    H(n,i)=H(n,i)+t
    H(n+12,i)=H(n+12,i)+t
    H(n+18,i)=H(n+18,i)+t
    H(n+30,i)=H(n+30,i)+t
    H(6*m-5,i)=H(6*m-5,i)+t
    H(6*m-3,i)=H(6*m-3,i)+t
      H(6*m-2,i)=H(6*m-2,i)+t
      H(6*m,i)=H(6*m,i)+t
    else if((m==2.or.m==5).and.(.not.(n==2.or.n==5))) then
    H(n,i)=H(n,i)+t
      H(n+12,i)=H(n+12,i)+t
    H(n+18,i)=H(n+18,i)+t
    H(n+30,i)=H(n+30,i)+t
    H(6*m-4,i)=H(6*m-4,i)+t
    H(6*m-1,i)=H(6*m-1,i)+t
    else if((.not.(m==2.or.m==5)).and.(n==2.or.n==5)) then 
      H(n+6,i)=H(n+6,i)+t
    H(n+24,i)=H(n+24,i)+t
    H(6*m-5,i)=H(6*m-5,i)+t
    H(6*m-3,i)=H(6*m-3,i)+t
      H(6*m-2,i)=H(6*m-2,i)+t
      H(6*m,i)=H(6*m,i)+t
    else if((.not.(m==2.or.m==5)).and.(.not.(n==2.or.n==5))) then
    H(n+6,i)=H(n+6,i)+t
    H(n+24,i)=H(n+24,i)+t
      H(6*m-4,i)=H(6*m-4,i)+t
    H(6*m-1,i)=H(6*m-1,i)+t
    end if
      if(m==n) then
      H(i,i)=H(i,i)+2*u
    else if((m+n)/=7)  then
      H(i,i)=H(i,i)+u
    end if
    end do  
    do j=1,36
    do i=1,36
    write(*,"(F4.0,$)") H(j,i)
    end do
    write(*,"()/")
    end do
      tr=0
    do i=1,k
      tr=tr+H(i,i)
    end do
      write(*,*)'TrH=',tr
    call zheev('V','U',k,H,k,w,work,2*k,rwork,info)
    write(*,*)'info=',info
    write(22,10)(w(i),i=1,k)
    do i=1,k
    write(23,10)(H(j,i),j=1,k)
    end do
10    format(1x,16f16.8)
   
    close(22)
    close(23)
    end program