search_Rmin.f90

Go to the documentation of this file.
00001 subroutine search_Rmin(i,j,k,nkb1,nkb2,nkb3,a1,a2,a3,imin,jmin,kmin)
00002 implicit none
00003 integer::i,j,k,nkb1,nkb2,nkb3
00004 integer::imin,jmin,kmin
00005 real(8)::a1(3),a2(3),a3(3) 
00006 integer::nmin,mmin,lmin
00007 integer::n,m,l 
00008 real(8)::R_pos(3),R_abs,R_min,R_bfr
00009 R_pos(:)=dble(i)*a1(:)+dble(j)*a2(:)+dble(k)*a3(:)
00010 nmin=0;mmin=0;lmin=0
00011 R_bfr=dsqrt(R_pos(1)**2+R_pos(2)**2+R_pos(3)**2) 
00012 R_min=R_bfr 
00013 do n=-3,3
00014  do m=-3,3
00015   do l=-3,3
00016    R_pos(:)=dble(i+n*nkb1)*a1(:)+dble(j+m*nkb2)*a2(:)+dble(k+l*nkb3)*a3(:)
00017    R_abs=dsqrt(R_pos(1)**2+R_pos(2)**2+R_pos(3)**2) 
00018    if(R_min>R_abs)then 
00019     R_min=R_abs
00020     nmin=n
00021     mmin=m
00022     lmin=l
00023    endif 
00024   enddo
00025  enddo
00026 enddo
00027 imin=i+nmin*nkb1
00028 jmin=j+mmin*nkb2
00029 kmin=k+lmin*nkb3
00030 !if(nmin/=0.or.mmin/=0.or.lmin/=0)then 
00031 ! write(6,'(a15,f15.8)')'R_before      ',R_bfr 
00032 ! write(6,'(a15,f15.8)')'R_after       ',R_min 
00033 ! write(6,'(a15,3i5)')  'i   ,j   ,k   ',i,j,k
00034 ! write(6,'(a15,3i5)')  'nmin,mmin,lmin',nmin,mmin,lmin
00035 ! write(6,'(a15,3i5)')  'imin,jmin,kmin',imin,jmin,kmin
00036 !endif 
00037 return
00038 end

Generated on 17 Nov 2020 for respack by  doxygen 1.6.1