|
|
@ -42,12 +42,13 @@ module opt_delete
|
|
|
|
call get_command_argument(arg_pos, textholder, arg_len)
|
|
|
|
call get_command_argument(arg_pos, textholder, arg_len)
|
|
|
|
if(arg_len==0) stop "Missing argument to delete overlap command"
|
|
|
|
if(arg_len==0) stop "Missing argument to delete overlap command"
|
|
|
|
print *, textholder
|
|
|
|
print *, textholder
|
|
|
|
read(*, textholder) rc_off
|
|
|
|
read(textholder, *) rc_off
|
|
|
|
|
|
|
|
|
|
|
|
case default
|
|
|
|
case default
|
|
|
|
print *, "Command ", trim(adjustl(textholder)), " is not accepted for option delete"
|
|
|
|
print *, "Command ", trim(adjustl(textholder)), " is not accepted for option delete"
|
|
|
|
stop 3
|
|
|
|
stop 3
|
|
|
|
end select
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
end subroutine parse_delete
|
|
|
|
end subroutine parse_delete
|
|
|
|
|
|
|
|
|
|
|
|
subroutine delete_overlap
|
|
|
|
subroutine delete_overlap
|
|
|
@ -79,6 +80,13 @@ module opt_delete
|
|
|
|
do ci = -1, 1, 1
|
|
|
|
do ci = -1, 1, 1
|
|
|
|
do cj = -1, 1, 1
|
|
|
|
do cj = -1, 1, 1
|
|
|
|
do ck = -1, 1, 1
|
|
|
|
do ck = -1, 1, 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (any((c + (/ ck, cj, ci /)) == 0)) cycle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( (c(1) + ck > cell_num(1)).or.(c(2) + cj > cell_num(2)).or. &
|
|
|
|
|
|
|
|
(c(3) + ci > cell_num(3))) cycle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do num_nei = 1, num_in_cell(c(1) + ck, c(2) + cj, c(3) + ci)
|
|
|
|
do num_nei = 1, num_in_cell(c(1) + ck, c(2) + cj, c(3) + ci)
|
|
|
|
nei = cell_list(num_nei,c(1) + ck, c(2) + cj, c(3) + ci)
|
|
|
|
nei = cell_list(num_nei,c(1) + ck, c(2) + cj, c(3) + ci)
|
|
|
|
|
|
|
|
|
|
|
@ -108,10 +116,10 @@ module opt_delete
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
!Now delete all the atoms
|
|
|
|
|
|
|
|
call delete_atoms(delete_num, for_delete(1:delete_num))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end do atom_loop
|
|
|
|
end do atom_loop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print *, "Overlap command deletes ", delete_num, " atoms"
|
|
|
|
|
|
|
|
!Now delete all the atoms
|
|
|
|
|
|
|
|
call delete_atoms(delete_num, for_delete(1:delete_num))
|
|
|
|
end subroutine delete_overlap
|
|
|
|
end subroutine delete_overlap
|
|
|
|
end module opt_delete
|
|
|
|
end module opt_delete
|