sub_mkidx.f90

Go to the documentation of this file.
00001 SUBROUTINE make_index_kpt(NTK,nkb1,nkb2,nkb3,SK0,index_kpt)      
00002   implicit none 
00003   integer::NTK,nkb1,nkb2,nkb3
00004   real(8)::SK0(3,NTK)  
00005   integer::ik,ix,iy,iz
00006   real(8)::x,y,z
00007   integer::index_kpt(nkb1,nkb2,nkb3)    
00008   ! 
00009   !if(MOD(NTK,2)/=0)then 
00010   ! !write(6,*)'i am in make_index for odd'
00011   ! do ik=1,NTK 
00012   !  x=SK0(1,ik)*dble(nkb1) 
00013   !  y=SK0(2,ik)*dble(nkb2)
00014   !  z=SK0(3,ik)*dble(nkb3)  
00015   !  x=x+(dble(nkb1)-1.0d0)/2.0d0 
00016   !  y=y+(dble(nkb2)-1.0d0)/2.0d0
00017   !  z=z+(dble(nkb3)-1.0d0)/2.0d0 
00018   !  ix=idnint(x)+1
00019   !  iy=idnint(y)+1
00020   !  iz=idnint(z)+1
00021   !  index_kpt(ix,iy,iz)=ik
00022   ! enddo 
00023   !else!20170316 
00024   ! !write(6,*)'i am in make_index for even'
00025   ! do ik=1,NTK 
00026   !  x=SK0(1,ik)*dble(nkb1) 
00027   !  y=SK0(2,ik)*dble(nkb2)
00028   !  z=SK0(3,ik)*dble(nkb3)  
00029   !  x=x+dble(nkb1)/2.0d0 
00030   !  y=y+dble(nkb2)/2.0d0
00031   !  z=z+dble(nkb3)/2.0d0 
00032   !  ix=idnint(x)
00033   !  iy=idnint(y)
00034   !  iz=idnint(z)
00035   !  index_kpt(ix,iy,iz)=ik
00036   ! enddo 
00037   !endif 
00038   !--
00039   !
00040   !20190520 Kazuma Nakamura
00041   !
00042   do ik=1,NTK 
00043    x=SK0(1,ik)*dble(nkb1) 
00044    y=SK0(2,ik)*dble(nkb2)
00045    z=SK0(3,ik)*dble(nkb3)  
00046    x=x+(dble(nkb1)-dble(mod(nkb1,2)))/2.0d0 
00047    y=y+(dble(nkb2)-dble(mod(nkb2,2)))/2.0d0 
00048    z=z+(dble(nkb3)-dble(mod(nkb3,2)))/2.0d0 
00049    ix=idnint(x)+mod(nkb1,2)
00050    iy=idnint(y)+mod(nkb2,2)
00051    iz=idnint(z)+mod(nkb3,2)
00052    index_kpt(ix,iy,iz)=ik
00053   enddo 
00054   ! 
00055   RETURN  
00056 END SUBROUTINE make_index_kpt  

Generated on 17 Nov 2020 for respack by  doxygen 1.6.1