|
|
|
@ -10,11 +10,11 @@ module mode_metric
|
|
|
|
|
|
|
|
|
|
integer :: nfiles
|
|
|
|
|
character(len=100) :: metric_type
|
|
|
|
|
real(kind=dp), allocatable :: met(:,:)
|
|
|
|
|
real(kind=dp) :: rc_off
|
|
|
|
|
|
|
|
|
|
!Save reference positions
|
|
|
|
|
integer :: np, npreal, nmet
|
|
|
|
|
real(kind=dp), allocatable :: r_zero(:,:), r_curr(:,:)
|
|
|
|
|
real(kind=dp), allocatable :: r_zero(:,:), r_curr(:,:), met(:,:)
|
|
|
|
|
|
|
|
|
|
public
|
|
|
|
|
contains
|
|
|
|
@ -37,7 +37,6 @@ module mode_metric
|
|
|
|
|
!Now read the first file
|
|
|
|
|
call read_in(1, (/ 0.0_dp, 0.0_dp, 0.0_dp /), temp_box_bd)
|
|
|
|
|
np = atom_num + max_basisnum*max_ng_node*ele_num
|
|
|
|
|
print *,np
|
|
|
|
|
allocate(r_zero(3,atom_num+max_basisnum*max_ng_node*ele_num), &
|
|
|
|
|
r_curr(3,atom_num+max_basisnum*max_ng_node*ele_num))
|
|
|
|
|
r_zero(:,:) = -huge(1.0_dp)
|
|
|
|
@ -101,18 +100,23 @@ module mode_metric
|
|
|
|
|
stop 3
|
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
!Now read the cutoff radius
|
|
|
|
|
call get_command_argument(3,textholder,arglen)
|
|
|
|
|
if (arglen == 0) stop "Incomplete mode metric command, check documentation"
|
|
|
|
|
read(textholder, *) rc_off
|
|
|
|
|
|
|
|
|
|
!Now read the number of files to read and allocate the variables
|
|
|
|
|
call get_command_argument(3, textholder, arglen)
|
|
|
|
|
call get_command_argument(4, textholder, arglen)
|
|
|
|
|
if (arglen == 0) stop "Incomplete mode metric command, check documentation"
|
|
|
|
|
read(textholder, *) nfiles
|
|
|
|
|
|
|
|
|
|
!Now read the files to be read
|
|
|
|
|
do i = 1, nfiles
|
|
|
|
|
call get_command_argument(3+i, textholder, arglen)
|
|
|
|
|
call get_command_argument(4+i, textholder, arglen)
|
|
|
|
|
call get_in_file(textholder)
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
arg_pos = 4+nfiles
|
|
|
|
|
arg_pos = 5+nfiles
|
|
|
|
|
return
|
|
|
|
|
end subroutine parse_command
|
|
|
|
|
|
|
|
|
@ -184,8 +188,6 @@ module mode_metric
|
|
|
|
|
integer :: i, inod, ibasis
|
|
|
|
|
|
|
|
|
|
npoints=0
|
|
|
|
|
print *, atom_num + max_ng_node*max_basisnum*ele_num
|
|
|
|
|
print *, rout(:,1)
|
|
|
|
|
|
|
|
|
|
if(atom_num > 0) then
|
|
|
|
|
do i = 1, atom_num
|
|
|
|
|