Wrapper routine used to reduce number of Fourier calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | ||
real(kind=dp), | intent(out) | :: | eig(num_wann) | |||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | UU | ||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | HH | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | HH_da | ||
complex(kind=dp), | intent(out), | dimension(:, :, :, :) | :: | HH_dadb |
subroutine wham_get_eig_UU_HH_AA_sc(kpt, eig, UU, HH, HH_da, HH_dadb)
!========================================================!
! !
!! Wrapper routine used to reduce number of Fourier calls
! !
!========================================================!
use w90_parameters, only: num_wann
use w90_get_oper, only: HH_R, get_HH_R
use w90_postw90_common, only: pw90common_fourier_R_to_k_new_second_d
use w90_utility, only: utility_diagonalize
real(kind=dp), dimension(3), intent(in) :: kpt
real(kind=dp), intent(out) :: eig(num_wann)
complex(kind=dp), dimension(:, :), intent(out) :: UU
complex(kind=dp), dimension(:, :), intent(out) :: HH
complex(kind=dp), dimension(:, :, :), intent(out) :: HH_da
complex(kind=dp), dimension(:, :, :, :), intent(out) :: HH_dadb
integer :: i
call get_HH_R
call pw90common_fourier_R_to_k_new_second_d(kpt, HH_R, OO=HH, &
OO_da=HH_da(:, :, :), &
OO_dadb=HH_dadb(:, :, :, :))
call utility_diagonalize(HH, num_wann, eig, UU)
end subroutine wham_get_eig_UU_HH_AA_sc