|
|
@ -405,7 +405,7 @@ module elements
|
|
|
|
|
|
|
|
|
|
|
|
!Internal variables
|
|
|
|
!Internal variables
|
|
|
|
integer :: it, is, ir, ibasis, inod, ia, bnum, lat_type_temp
|
|
|
|
integer :: it, is, ir, ibasis, inod, ia, bnum, lat_type_temp
|
|
|
|
real(kind=dp), allocatable :: a_shape(:)
|
|
|
|
real(kind=dp) :: a_shape(max_ng_node)
|
|
|
|
real(kind=dp) :: t, s, r
|
|
|
|
real(kind=dp) :: t, s, r
|
|
|
|
|
|
|
|
|
|
|
|
!Initialize some variables
|
|
|
|
!Initialize some variables
|
|
|
@ -428,7 +428,6 @@ module elements
|
|
|
|
|
|
|
|
|
|
|
|
select case(trim(adjustl(type)))
|
|
|
|
select case(trim(adjustl(type)))
|
|
|
|
case('fcc','bcc')
|
|
|
|
case('fcc','bcc')
|
|
|
|
allocate(a_shape(8))
|
|
|
|
|
|
|
|
!Now loop over all the possible sites
|
|
|
|
!Now loop over all the possible sites
|
|
|
|
do it = 1, esize
|
|
|
|
do it = 1, esize
|
|
|
|
t = (1.0_dp*(it-1)-(esize-1)/2)/(1.0_dp*(esize-1)/2)
|
|
|
|
t = (1.0_dp*(it-1)-(esize-1)/2)/(1.0_dp*(esize-1)/2)
|
|
|
@ -468,7 +467,7 @@ module elements
|
|
|
|
subroutine rhombshape(r,s,t, shape_fun)
|
|
|
|
subroutine rhombshape(r,s,t, shape_fun)
|
|
|
|
!Shape function for rhombohedral elements
|
|
|
|
!Shape function for rhombohedral elements
|
|
|
|
real(kind=8), intent(in) :: r, s, t
|
|
|
|
real(kind=8), intent(in) :: r, s, t
|
|
|
|
real(kind=8), intent(out) :: shape_fun(8)
|
|
|
|
real(kind=8), intent(out) :: shape_fun(:)
|
|
|
|
|
|
|
|
|
|
|
|
shape_fun(1) = (1.0-r)*(1.0-s)*(1.0-t)/8.0
|
|
|
|
shape_fun(1) = (1.0-r)*(1.0-s)*(1.0-t)/8.0
|
|
|
|
shape_fun(2) = (1.0+r)*(1.0-s)*(1.0-t)/8.0
|
|
|
|
shape_fun(2) = (1.0+r)*(1.0-s)*(1.0-t)/8.0
|
|
|
|