defcube.f Source File


Source Code

      SUBROUTINE defcube(alfa,npoints,nplanes,polypoints,poi2poi,
     &     poi2plane,
     &     polyplaneA3,polyplaneB3,polyplaneC3,polyplaneD3)
      implicit none
c#@# KKRtags: VORONOI geometry
      integer npoimax,nneimax,nplanemax
      parameter (npoimax=300,nneimax=100,nplanemax=100)
c
      real*8 polypoints(3,npoimax)
      real*8 polyplaneA3(nplanemax),polyplaneB3(nplanemax),
     &     polyplaneC3(nplanemax),polyplaneD3(nplanemax)
      integer poi2poi(0:nneimax,npoimax),
     &     poi2plane(0:nplanemax,npoimax)
      integer npoints,nplanes 
      real*8 alfa
c local
      integer ipoint1,i,iplane
      real*8 ao2
c
c This just defines all arrays for a cube of edge alfa
c
c Initialize added on 26.11.2001
      do ipoint1=0,nneimax
         do i=1,npoimax
            poi2poi(ipoint1,i)  = 0
         end do
      end do
      do ipoint1=0,nplanemax
         do i=1,npoimax
            poi2plane(ipoint1,i)  = 0
         end do
      end do
c added on 26.11.2001

      do ipoint1=1,npoimax
         do i=1,3
            polypoints(i,ipoint1) = 0.d0       
         end do
      end do
      npoints = 8
      ao2 = alfa/2.d0
      polypoints(1,1) =  ao2
      polypoints(2,1) =  ao2
      polypoints(3,1) =  ao2
c  
      polypoints(1,2) =  ao2
      polypoints(2,2) = -ao2
      polypoints(3,2) =  ao2
c
      polypoints(1,3) = -ao2
      polypoints(2,3) = -ao2
      polypoints(3,3) =  ao2
c  
      polypoints(1,4) = -ao2
      polypoints(2,4) =  ao2
      polypoints(3,4) =  ao2
c
      polypoints(1,5) =  ao2
      polypoints(2,5) =  ao2
      polypoints(3,5) = -ao2
c  
      polypoints(1,6) =  ao2
      polypoints(2,6) = -ao2
      polypoints(3,6) = -ao2
c
      polypoints(1,7) = -ao2
      polypoints(2,7) = -ao2
      polypoints(3,7) = -ao2
c  
      polypoints(1,8) = -ao2
      polypoints(2,8) =  ao2
      polypoints(3,8) = -ao2 
c ************************************************      
      poi2poi(0,1) = 3 ! number of neighbors of point 1 
      poi2poi(1,1) = 2 ! point indeces
      poi2poi(2,1) = 4
      poi2poi(3,1) = 5
      poi2plane(0,1) = 3  ! number of planes passing from point 1
      poi2plane(1,1) = 1  ! plane indeces
      poi2plane(2,1) = 3
      poi2plane(3,1) = 5 
c
      poi2poi(0,2) = 3 ! number of neighbors of point 
      poi2poi(1,2) = 1  ! point indeces
      poi2poi(2,2) = 3
      poi2poi(3,2) = 6
      poi2plane(0,2) = 3  ! number of planes passing from point 
      poi2plane(1,2) = 1   ! plane indeces
      poi2plane(2,2) = 4
      poi2plane(3,2) = 5         
c
      poi2poi(0,3) = 3 ! number of neighbors of point 
      poi2poi(1,3) = 2  ! point indeces
      poi2poi(2,3) = 4
      poi2poi(3,3) = 7
      poi2plane(0,3) = 3  ! number of planes passing from point 
      poi2plane(1,3) = 2   ! plane indeces
      poi2plane(2,3) = 4
      poi2plane(3,3) = 5 
c
      poi2poi(0,4) = 3 ! number of neighbors of point 
      poi2poi(1,4) = 1  ! point indeces
      poi2poi(2,4) = 3
      poi2poi(3,4) = 8
      poi2plane(0,4) = 3  ! number of planes passing from point 
      poi2plane(1,4) = 2    ! plane indeces
      poi2plane(2,4) = 3 
      poi2plane(3,4) = 5
c
      poi2poi(0,5) = 3 ! number of neighbors of point 
      poi2poi(1,5) = 1  ! point indeces
      poi2poi(2,5) = 6
      poi2poi(3,5) = 8
      poi2plane(0,5) = 3  ! number of planes passing from point 
      poi2plane(1,5) = 1   ! plane indeces
      poi2plane(2,5) = 3
      poi2plane(3,5) = 6
c
      poi2poi(0,6) = 3 ! number of neighbors of point 
      poi2poi(1,6) = 2  ! point indeces
      poi2poi(2,6) = 5
      poi2poi(3,6) = 7
      poi2plane(0,6) = 3  ! number of planes passing from point 
      poi2plane(1,6) = 1   ! plane indeces
      poi2plane(2,6) = 4
      poi2plane(3,6) = 6
c
      poi2poi(0,7) = 3 ! number of neighbors of point 
      poi2poi(1,7) = 3  ! point indeces
      poi2poi(2,7) = 6
      poi2poi(3,7) = 8
      poi2plane(0,7) = 3  ! number of planes passing from point 
      poi2plane(1,7) = 2   ! plane indeces
      poi2plane(2,7) = 4
      poi2plane(3,7) = 6
c
      poi2poi(0,8) = 3 ! number of neighbors of point 
      poi2poi(1,8) = 4  ! point indeces
      poi2poi(2,8) = 5
      poi2poi(3,8) = 7
      poi2plane(0,8) = 3  ! number of planes passing from point 
      poi2plane(1,8) = 2   ! plane indeces
      poi2plane(2,8) = 3
      poi2plane(3,8) = 6
c ---------------------------
      nplanes = 6
      do iplane=1,nplanes
         polyplaneA3(iplane) = 0.d0
         polyplaneB3(iplane) = 0.d0
         polyplaneC3(iplane) = 0.d0
         polyplaneD3(iplane) = 0.d0
      end do
      polyplaneA3(1) = 1.d0
      polyplaneD3(1) = alfa/2.d0

      polyplaneA3(2) = 1.d0
      polyplaneD3(2) = -alfa/2.d0

      polyplaneB3(3) = 1.d0
      polyplaneD3(3) = alfa/2.d0

      polyplaneB3(4) = 1.d0
      polyplaneD3(4) = -alfa/2.d0
      
      polyplaneC3(5) = 1.d0
      polyplaneD3(5) = alfa/2.d0

      polyplaneC3(6) = 1.d0
      polyplaneD3(6) = -alfa/2.d0
c
c
      return 
      end