2 C------------------------------------------------------------------------------
4 double precision function alpha(i1,i2,i3)
6 c Calculates the planar angle between atoms (i1), (i2), and (i3).
8 implicit real*8 (a-h,o-z)
11 include 'COMMON.CHAIN'
18 vnorm=dsqrt(x12*x12+y12*y12+z12*z12)
19 wnorm=dsqrt(x23*x23+y23*y23+z23*z23)
20 scalar=(x12*x23+y12*y23+z12*z23)/(vnorm*wnorm)
25 C------------------------------------------------------------------------------
27 double precision function beta(i1,i2,i3,i4)
29 c Calculates the dihedral angle between atoms (i1), (i2), (i3) and (i4)
31 implicit real*8 (a-h,o-z)
34 include 'COMMON.CHAIN'
44 cd print '(2i3,3f10.5)',i1,i2,x12,y12,z12
45 cd print '(2i3,3f10.5)',i2,i3,x23,y23,z23
46 cd print '(2i3,3f10.5)',i3,i4,x34,y34,z34
50 wnorm=dsqrt(wx*wx+wy*wy+wz*wz)
54 vnorm=dsqrt(vx*vx+vy*vy+vz*vz)
55 if (vnorm.gt.1.0D-13 .and. wnorm.gt.1.0D-13) then
56 scalar=(vx*wx+vy*wy+vz*wz)/(vnorm*wnorm)
57 if (dabs(scalar).gt.1.0D0)
58 &scalar=0.99999999999999D0*scalar/dabs(scalar)
60 cd print '(2i4,10f7.3)',i2,i3,vx,vy,vz,wx,wy,wz,vnorm,wnorm,
65 c if (angle.le.0.0D0) angle=pi+angle
69 scalar=tx*x23+ty*y23+tz*z23
70 if (scalar.lt.0.0D0) angle=-angle
75 C------------------------------------------------------------------------------
79 c Calculates the distance between atoms (i1) and (i2).
81 implicit real*8 (a-h,o-z)
84 include 'COMMON.CHAIN'
88 dist=dsqrt(x12*x12+y12*y12+z12*z12)