17 integer(kind=kint),
intent(in) :: iter
18 real(kind=
kreal),
intent(in) :: d(:), e(:)
20 #ifdef HECMW_WITH_LAPACK
21 character(len=1) :: jobz, range
23 real(kind=
kreal) :: vl, vu, abstol, z(1,1)
24 integer(kind=kint) :: n, il, iu, m, ldz=1, isuppz(1)
25 integer(kind=kint) :: lwork, liwork, info
26 real(kind=
kreal),
allocatable :: w(:), work(:)
27 integer(kind=kint),
allocatable :: iwork(:)
28 real(kind=
kreal),
allocatable :: d1(:), e1(:)
29 integer(kind=kint) :: i
34 allocate(d1(iter),e1(iter))
54 allocate(work(1),iwork(1))
55 call dstegr(jobz,range,n,d1,e1,vl,vu,il,iu,abstol, &
56 m,w,z,ldz,isuppz,work,lwork,iwork,liwork,info)
58 write(*,*)
'ERROR: dstegr returned with INFO=',info
64 deallocate(work,iwork)
65 allocate(work(lwork),iwork(liwork))
66 call dstegr(jobz,range,n,d1,e1,vl,vu,il,iu,abstol, &
67 m,w,z,ldz,isuppz,work,lwork,iwork,liwork,info)
69 write(*,*)
'ERROR: dstegr returned with INFO=',info
72 write(*,
'("emin=",1pe13.6,", emax=",1pe13.6,", emax/emin=",1pe13.6)') &
74 deallocate(work,iwork)
105 integer(kind=kint),
intent(in) :: i
106 real(kind=
kreal),
intent(in) :: h(:,:)
108 #ifdef HECMW_WITH_LAPACK
110 character(len=1) :: jobz
111 integer(kind=kint) :: n, ldh, ldz=1, lwork, info
112 real(kind=
kreal),
allocatable :: wr(:), work(:), h1(:,:)
113 integer(kind=kint),
allocatable :: iwork(:)
114 real(kind=
kreal) :: z(1,1)
115 integer(kind=kint) :: j, k
171 call dgesdd(jobz,n,n,h1,ldh,wr,z,ldz,z,ldz,work,lwork,iwork,info)
173 write(*,*)
'ERROR: dgesdd returned with INFO=',info
179 allocate(work(lwork))
180 call dgesdd(jobz,n,n,h1,ldh,wr,z,ldz,z,ldz,work,lwork,iwork,info)
182 write(*,*)
'ERROR: dgesdd returned with INFO=',info
189 write(*,
'("emin=",1pe13.6,", emax=",1pe13.6,", emax/emin=",1pe13.6)') &
190 wr(n), wr(1), wr(1)/wr(n)