subroutine eigen(n,a,evalue,z) implicit double precision (o-z, a-h) include "parameters.dat" double complex evalue dimension a(nd1,nd1),evalue(nd1),z(nd1,nd1) & ,wr(nd1),wi(nd1),fv1(nd1),iv1(nd1) call BALANC(nd1,n,a,is1,is2,fv1) call ELMHES(nd1,n,is1,is2,a,iv1) call ELTRAN(nd1,n,is1,is2,a,iv1,z) call HQR2(nd1,n,is1,is2,a,wr,wi,z,ierr) if (ierr .ne. 0) goto 999 call BALBAK(nd1,n,is1,is2,fv1,n,z) do i = 1, n evalue(i) = dcmplx(wr(i),wi(i)) end do return 999 write(Unit=*,fmt=*) ' ierr = ',ierr stop end