blob: 18bc593e2d350a4054dbfb892c39e6321d768c31 [file] [log] [blame]
! { dg-options "-floop-nest-optimize -O2" }
MODULE dbcsr_geev
INTEGER, PARAMETER :: real_8=8
CONTAINS
SUBROUTINE dbcsr_dgeev(jobvl,jobvr,matrix,ndim,evals,revec,levec)
CHARACTER(1) :: jobvl, jobvr
REAL(real_8), DIMENSION(:, :) :: matrix
INTEGER :: ndim
COMPLEX(real_8), DIMENSION(:) :: evals
COMPLEX(real_8), DIMENSION(:, :) :: revec, levec
INTEGER :: i, info, lwork
REAL(real_8) :: norm, tmp_array(ndim,ndim), &
work(20*ndim)
REAL(real_8), DIMENSION(ndim) :: eval1, eval2
REAL(real_8), DIMENSION(ndim, ndim) :: evec_l, evec_r
DO WHILE (i.le.ndim)
IF(ABS(eval2(i)).LT.EPSILON(REAL(0.0,real_8)))THEN
norm=SQRT(SUM(evec_r(:,i)**2.0_real_8)+SUM(evec_r(:,i+1)**2.0_real_8))
revec(:,i)=CMPLX(evec_r(:,i),evec_r(:,i+1),real_8)/norm
END IF
END DO
END SUBROUTINE dbcsr_dgeev
END MODULE dbcsr_geev