6subroutine dmatuv(n,ef,e,u,v,dvv,duv,vn)
10integer,
intent(in) :: n
11real(8),
intent(in) :: ef,e(n)
12complex(8),
intent(in) :: u(n,n),v(n,n)
13complex(8),
intent(out) :: dvv(n,n),duv(n,n)
14real(8),
intent(out) :: vn(n)
18real(8),
external :: dznrm2
20call zgemm(
'N',
'C',n,n,n,(1.d0,0.d0),v,n,v,n,(0.d0,0.d0),dvv,n)
23 vn(i)=dznrm2(n,v(:,i),1)**2
25 if (e(i) <= ef) dvv(i,i)=dvv(i,i)-1.d0
28call zgemm(
'N',
'C',n,n,n,(1.d0,0.d0),u,n,v,n,(0.d0,0.d0),duv,n)
subroutine dmatuv(n, ef, e, u, v, dvv, duv, vn)