Another fix to overlap command

development
Alex Selimov 3 years ago
parent 3ad5e0f5e6
commit 586c1f002c

@ -82,6 +82,7 @@ module opt_delete
integer, dimension(3) :: cell_num integer, dimension(3) :: cell_num
integer, allocatable :: num_in_cell(:,:,:), which_cell(:,:) integer, allocatable :: num_in_cell(:,:,:), which_cell(:,:)
integer, allocatable :: cell_list(:,:,:,:) integer, allocatable :: cell_list(:,:,:,:)
logical :: deleted_atom(atom_num)
allocate(which_cell(3,atom_num)) allocate(which_cell(3,atom_num))
@ -90,6 +91,7 @@ module opt_delete
!Now loop over every atom and figure out if it has neighbors within the rc_off !Now loop over every atom and figure out if it has neighbors within the rc_off
delete_num = 0 delete_num = 0
deleted_atom=.false.
atom_loop: do i = 1, atom_num atom_loop: do i = 1, atom_num
!c is the position of the cell that the atom belongs to !c is the position of the cell that the atom belongs to
@ -113,7 +115,7 @@ module opt_delete
!Check to make sure the atom isn't the same index as the atom we are checking !Check to make sure the atom isn't the same index as the atom we are checking
!and that the neighbor hasn't already been deleted !and that the neighbor hasn't already been deleted
if((nei /= i).and.(nei/= 0)) then if((nei /= i).and.(.not.deleted_atom(nei))) then
!Now check to see if it is in the cutoff radius, if it is add it to the delete code !Now check to see if it is in the cutoff radius, if it is add it to the delete code
if (norm2(r_atom(:,nei)-r_atom(:,i)) < rc_off) then if (norm2(r_atom(:,nei)-r_atom(:,i)) < rc_off) then
@ -121,8 +123,10 @@ module opt_delete
delete_num = delete_num + 1 delete_num = delete_num + 1
if(first) then if(first) then
for_delete(delete_num) = min(i,nei) for_delete(delete_num) = min(i,nei)
deleted_atom(min(i,nei)) = .true.
else else
for_delete(delete_num) = max(i,nei) for_delete(delete_num) = max(i,nei)
deleted_atom(max(i,nei)) = .true.
end if end if
!Now zero out the larger index !Now zero out the larger index

Loading…
Cancel
Save