eigen1d.f90

来自「Ground state of the time-independent Gro」· F90 代码 · 共 39 行

F90
39
字号
!***! The following code is for use with the LAPACK library!***subroutine eigen(n,H,eigenval,eigenvec)  !  ! Return the eigenvector of H with the smallest eigenvalue  ! H assumed symmetric  !  implicit none  integer, parameter :: dp=kind(1.d0)  integer, intent(in) :: n  real(dp), dimension(n,n), intent(in) :: H  real(dp), intent(out) :: eigenval  real(dp), dimension(n), intent(out) :: eigenvec  integer :: lwork,info  real(dp), dimension(n) :: eval  real(dp), dimension(n,n) :: evec  real(dp), dimension(3*n) :: work  character(len=1) :: jobz = 'V', uplo = 'U'  lwork = 3*n  evec = H  call dsyev(jobz,uplo,n,evec,n,eval,work,lwork,info)  if(info /= 0) then     write(*,*) "Error with dsyev in subroutine eigen"     stop  end if  eigenval = eval(1)  eigenvec = evec(:,1)  returnend subroutine eigen

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?