pw90common_get_occ Subroutine

public subroutine pw90common_get_occ(ef, eig, occ, num_wann)

Uses

  • proc~~pw90common_get_occ~~UsesGraph proc~pw90common_get_occ pw90common_get_occ module~w90_constants w90_constants proc~pw90common_get_occ->module~w90_constants

Compute the electronic occupancy

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: ef

Fermi level

real(kind=dp), intent(in) :: eig(num_wann)

Eigenvalues

real(kind=dp), intent(out) :: occ(num_wann)

Occupancy of states

integer, intent(in) :: num_wann

Called by

proc~~pw90common_get_occ~~CalledByGraph proc~pw90common_get_occ pw90common_get_occ proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->proc~pw90common_get_occ proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->proc~pw90common_get_occ proc~berry_get_shc_klist berry_get_shc_klist proc~berry_get_shc_klist->proc~pw90common_get_occ proc~spin_get_moment_k spin_get_moment_k proc~spin_get_moment_k->proc~pw90common_get_occ proc~wham_get_d_h_a wham_get_D_h_a proc~wham_get_d_h_a->proc~pw90common_get_occ proc~wham_get_occ_mat_list wham_get_occ_mat_list proc~wham_get_occ_mat_list->proc~pw90common_get_occ proc~berry_get_imfgh_klist berry_get_imfgh_klist proc~berry_get_imfgh_klist->proc~wham_get_occ_mat_list proc~berry_main berry_main proc~berry_main->proc~berry_get_kubo_k proc~berry_main->proc~berry_get_sc_klist proc~berry_main->proc~berry_get_shc_klist proc~berry_main->proc~berry_get_imfgh_klist proc~berry_get_imf_klist berry_get_imf_klist proc~berry_main->proc~berry_get_imf_klist proc~k_path k_path proc~k_path->proc~berry_get_shc_klist proc~k_path->proc~berry_get_imfgh_klist proc~k_path->proc~berry_get_imf_klist proc~k_slice k_slice proc~k_slice->proc~berry_get_shc_klist proc~k_slice->proc~berry_get_imfgh_klist proc~k_slice->proc~berry_get_imf_klist proc~spin_get_moment spin_get_moment proc~spin_get_moment->proc~spin_get_moment_k proc~berry_get_imf_klist->proc~berry_get_imfgh_klist proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->proc~berry_get_imfgh_klist proc~gyrotropic_get_k_list->proc~berry_get_imf_klist program~postw90 postw90 program~postw90->proc~berry_main program~postw90->proc~k_path program~postw90->proc~k_slice program~postw90->proc~spin_get_moment proc~gyrotropic_main gyrotropic_main program~postw90->proc~gyrotropic_main proc~gyrotropic_main->proc~gyrotropic_get_k_list

Source Code

  subroutine pw90common_get_occ(ef, eig, occ, num_wann)
    !================================================!
    !
    !! Compute the electronic occupancy
    !
    !================================================!

    use w90_constants, only: dp

    ! arguments
    integer, intent(in) :: num_wann

    real(kind=dp), intent(in)  :: eig(num_wann)
    !! Eigenvalues
    real(kind=dp), intent(in)  :: ef
    !! Fermi level
    real(kind=dp), intent(out) :: occ(num_wann)
    !! Occupancy of states

    ! local variables
    integer :: i

    ! State occupancies
!    if(smear_temp < eps7) then
    !
    ! Use a step function occupancy (T=0)
    !
    occ(:) = 0.0_dp
    do i = 1, num_wann
      if (eig(i) < ef) occ(i) = 1.0_dp
    end do
!    else
    !
    ! Use a Fermi-Dirac occupancy (T=smear_temp, in Kelvin)
    !
    ! k_B.T in electron-volts
    !
!       kt=k_B_SI*smear_temp/elem_charge_SI
!       do i=1,num_wann
!          occ(i)=1.0_dp/(exp((eig(i)-ef)/kt)+1.0_dp)
!       end do
!    end if

  end subroutine pw90common_get_occ