|
|
|
@ -379,7 +379,7 @@ module io
|
|
|
|
|
!NOTE: This code doesn't work for arbitrary number of basis atoms per node. It assumes that the
|
|
|
|
|
!each element has only 1 atom type at the node.
|
|
|
|
|
character(len=100), intent(in) :: file
|
|
|
|
|
integer :: interp_max, i, j, inod, ibasis, ip, unique_index(50), unique_size(50), unique_num, &
|
|
|
|
|
integer :: interp_max, i, j, inod, ibasis, ip, unique_index(50), unique_size(50), unique_type(50), unique_num, &
|
|
|
|
|
etype
|
|
|
|
|
real(kind=dp) :: box_vec(3)
|
|
|
|
|
|
|
|
|
@ -426,6 +426,7 @@ module io
|
|
|
|
|
unique_num = unique_num + 1
|
|
|
|
|
unique_index(unique_num) = i
|
|
|
|
|
unique_size(unique_num) = size_ele(i)
|
|
|
|
|
unique_type(unique_num) = lat_ele(i)
|
|
|
|
|
end do eleloop
|
|
|
|
|
|
|
|
|
|
!Calculate the max number of atoms per element
|
|
|
|
@ -486,7 +487,7 @@ module io
|
|
|
|
|
do i = 1, ele_num
|
|
|
|
|
!Figure out the ele type
|
|
|
|
|
do j = 1, unique_num
|
|
|
|
|
if ( unique_size(j) == size_ele(i)) then
|
|
|
|
|
if ( (unique_size(j) == size_ele(i)).and.(unique_type(j) == lat_ele(i))) then
|
|
|
|
|
etype = j
|
|
|
|
|
exit
|
|
|
|
|
endif
|
|
|
|
@ -670,7 +671,7 @@ module io
|
|
|
|
|
temp_box_bd(2*i-1) = temp_box_bd(2*i-1) + newdisplace(i)
|
|
|
|
|
temp_box_bd(2*i) = temp_box_bd(2*i) + newdisplace(i)
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call grow_box(temp_box_bd)
|
|
|
|
|
!Read in the number of sub_boxes and allocate the variables
|
|
|
|
|
read(11, *) n
|
|
|
|
|