|
|
@ -133,4 +133,29 @@ module opt_orient
|
|
|
|
box_bd = orig_box_bd
|
|
|
|
box_bd = orig_box_bd
|
|
|
|
end subroutine unorient
|
|
|
|
end subroutine unorient
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subroutine sbox_ori(arg_pos)
|
|
|
|
|
|
|
|
integer, intent(inout) :: arg_pos
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
integer :: i, sbox_in, arg_len
|
|
|
|
|
|
|
|
real(kind = dp) :: new_orient(3,3)
|
|
|
|
|
|
|
|
character(len=100) :: textholder
|
|
|
|
|
|
|
|
character(len=8) :: ori_string
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
|
|
|
call get_command_argument(arg_pos, textholder,arg_len)
|
|
|
|
|
|
|
|
if (arg_len== 0) stop 'Missing sbox in sbox_ori command'
|
|
|
|
|
|
|
|
read(textholder,*) sbox_in
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do i = 1, 3
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
|
|
|
call get_command_argument(arg_pos, ori_string, arg_len)
|
|
|
|
|
|
|
|
if (arg_len == 0) print *, "Missing orientation vector in -orient option"
|
|
|
|
|
|
|
|
call parse_ori_vec(ori_string, new_orient(i,:))
|
|
|
|
|
|
|
|
new_orient(i,:) = new_orient(i,:) / norm2(new_orient(i,:))
|
|
|
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sub_box_ori(:,:,sbox_in) = new_orient
|
|
|
|
|
|
|
|
arg_pos = arg_pos + 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine sbox_ori
|
|
|
|
end module opt_orient
|
|
|
|
end module opt_orient
|