|
|
|
@ -70,7 +70,11 @@ module opt_disl
|
|
|
|
|
call parse_pos(i, textholder, centroid(i))
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
print *, centroid
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
call get_command_argument(arg_pos, textholder, arglen)
|
|
|
|
|
if (arglen==0) STOP "Missing parameter in dislgen command"
|
|
|
|
|
read(textholder, *) b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
call get_command_argument(arg_pos, textholder, arglen)
|
|
|
|
@ -84,26 +88,6 @@ module opt_disl
|
|
|
|
|
read(textholder, *) poisson
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
call get_command_argument(arg_pos, lattice, arglen)
|
|
|
|
|
if (arglen==0) STOP "Missing lattice in dislgen command"
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
call get_command_argument(arg_pos, textholder, arglen)
|
|
|
|
|
if (arglen==0) STOP "Missing lattice parameter in dislgen command"
|
|
|
|
|
read(textholder, *) lattice_parameter
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
!Now set the vurgers vector based on the lattice paarameter and lattice type
|
|
|
|
|
select case(lattice)
|
|
|
|
|
case('fcc')
|
|
|
|
|
b = lattice_parameter / sqrt(2.0_dp)
|
|
|
|
|
! case('bcc')
|
|
|
|
|
! b = lattice_parameter * sqrt(3.0_dp) / 2.0_dp
|
|
|
|
|
case default
|
|
|
|
|
print *, 'Error: Lattice structure', lattice, ' is not accepted for dislgen option'
|
|
|
|
|
STOP
|
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
end subroutine parse_dislgen
|
|
|
|
|
|
|
|
|
|
subroutine dislgen
|
|
|
|
@ -168,7 +152,7 @@ module opt_disl
|
|
|
|
|
do i = 1, ele_num
|
|
|
|
|
do inod=1, ng_node(lat_ele(i))
|
|
|
|
|
do ibasis = 1, basisnum(lat_ele(i))
|
|
|
|
|
r = r_node(:,ibasis,inod,i)
|
|
|
|
|
r = r_node(:,ibasis,inod,i)-centroid
|
|
|
|
|
r = matmul(inv_transform, r)
|
|
|
|
|
if (r(1) == 0) then
|
|
|
|
|
actan = pi/2
|
|
|
|
|