[Fortran] 纯文本查看 复制代码 Program www_fcode_cn
Implicit None
Real(kind=kind(0.0d0))::x(3),y(3),z(3),angle,A,B,C,D
Integer::i,j,k
Character(len=30) :: cstr
write(*,*) 'Input the name of xyz:(e.g. a)'
read(*,*) cstr
cstr=trim(cstr)//'.xyz'
open(12,file=cstr)
read(12,*)
open(13,file='result.txt')
do i=1,3
write(*,"(a,i1,a)") 'Input the atom number',i ,':(e.g.1)'
read(*,*) j
Do k = 1 , j-1
read(12,*)
End Do
read(12,*) k , cstr , x(i),y(i),z(i)
rewind(12)
read(12,*)
end do
A=(x(1)-x(2))+(y(1)-y(2))+(z(1)-z(2)) !//!first vector
B=(x(3)-x(2))+(y(3)-y(2))+(z(3)-z(2)) !//!second vector
C=sqrt((x(1)-x(2))**2+(y(1)-y(2))**2+(z(1)-z(2))**2) !//!quantities of first vector
D=sqrt((x(3)-x(2))**2+(y(3)-y(2))**2+(z(3)-z(2))**2) !//!quantities of second vector
angle=acos(A*B/C/D)
write(13,"(a,f12.4)") "The angle is:",angle/3.141592653589793238462d0*180
end program www_fcode_cn |