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
00031
00032
00033
00034
00035
00036
00037 return
00038 end