kt2ki Subroutine

private subroutine kt2ki(i, n, ik, it)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: i
integer, intent(out) :: n
integer, intent(in) :: ik
integer, intent(in) :: it

Contents

Source Code


Source Code

  subroutine kt2ki (i, n, ik, it)
    use mp, only: mp_abort
    use file_utils, only: error_unit
    use kt_grids, only: l_links, r_links
    implicit none
    integer, intent (in) :: ik, it
    integer, intent (out) :: i, n
    integer :: nn, ierr
!
! Get size of this supercell
!
    nn = 1 + l_links(it, ik) + r_links(it, ik)
!
! Find i = N_class**-1(nn)
!
    do i = 1, i_class
       if (N_class(i) == nn) exit
    end do
!
! Consistency check:
!
    if (N_class(i) /= nn) then
       ierr = error_unit()
       write(ierr,*) 'Error in kt2ki:'
       write(ierr,*) 'i = ',i,' ik = ',ik,' it = ',it,&
            ' N(i) = ',N_class(i),' nn = ',nn
       call mp_abort('Error in kt2ki')
    end if
! 
! Get position in this supercell, counting from the left
!
    n = 1 + l_links(it, ik)

  end subroutine kt2ki