wham_get_eig_UU_HH_AA_sc_TB_conv Subroutine

public subroutine wham_get_eig_UU_HH_AA_sc_TB_conv(kpt, eig, UU, HH, HH_da, HH_dadb)

Uses

  • proc~~wham_get_eig_uu_hh_aa_sc_tb_conv~~UsesGraph proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv module~w90_postw90_common w90_postw90_common proc~wham_get_eig_uu_hh_aa_sc_tb_conv->module~w90_postw90_common module~w90_get_oper w90_get_oper proc~wham_get_eig_uu_hh_aa_sc_tb_conv->module~w90_get_oper module~w90_utility w90_utility proc~wham_get_eig_uu_hh_aa_sc_tb_conv->module~w90_utility module~w90_parameters w90_parameters proc~wham_get_eig_uu_hh_aa_sc_tb_conv->module~w90_parameters module~w90_comms w90_comms module~w90_postw90_common->module~w90_comms module~w90_constants w90_constants module~w90_postw90_common->module~w90_constants module~w90_get_oper->module~w90_constants module~w90_utility->module~w90_constants module~w90_io w90_io module~w90_parameters->module~w90_io module~w90_parameters->module~w90_constants module~w90_io->module~w90_constants module~w90_comms->module~w90_io module~w90_comms->module~w90_constants

Arguments

Type IntentOptional AttributesName
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

Calls

proc~~wham_get_eig_uu_hh_aa_sc_tb_conv~~CallsGraph proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~utility_diagonalize utility_diagonalize proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~utility_diagonalize proc~get_hh_r get_HH_R proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_hh_r proc~get_aa_r get_AA_R proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_aa_r proc~io_error io_error proc~utility_diagonalize->proc~io_error proc~get_win_min get_win_min proc~get_hh_r->proc~get_win_min proc~fourier_q_to_r fourier_q_to_R proc~get_hh_r->proc~fourier_q_to_r proc~get_hh_r->proc~io_error proc~io_file_unit io_file_unit proc~get_hh_r->proc~io_file_unit proc~get_aa_r->proc~io_error proc~get_aa_r->proc~io_file_unit

Called by

proc~~wham_get_eig_uu_hh_aa_sc_tb_conv~~CalledByGraph proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv proc~berry_main berry_main proc~berry_main->proc~berry_get_sc_klist

Contents


Source Code

  subroutine wham_get_eig_UU_HH_AA_sc_TB_conv(kpt, eig, UU, HH, HH_da, HH_dadb)
    !========================================================!
    !                                                        !
    ! modified version of wham_get_eig_UU_HH_AA_sc, calls routines
    ! satisfying the TB phase convention
    !                                                        !
    !========================================================!

    use w90_parameters, only: num_wann
    use w90_get_oper, only: HH_R, get_HH_R, AA_R, get_AA_R
    use w90_postw90_common, only: pw90common_fourier_R_to_k_new_second_d, &
      pw90common_fourier_R_to_k_new_second_d_TB_conv
    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 get_AA_R

    call pw90common_fourier_R_to_k_new_second_d_TB_conv(kpt, HH_R, AA_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_TB_conv