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 if ((vnorm.eq.0.0).or.(wnorm.eq.0.0)) then
23 scalar=(x12*x23+y12*y23+z12*z23)/(vnorm*wnorm)
29 C------------------------------------------------------------------------------
31 double precision function beta(i1,i2,i3,i4)
33 c Calculates the dihedral angle between atoms (i1), (i2), (i3) and (i4)
35 implicit real*8 (a-h,o-z)
38 include 'COMMON.CHAIN'
48 cd print '(2i3,3f10.5)',i1,i2,x12,y12,z12
49 cd print '(2i3,3f10.5)',i2,i3,x23,y23,z23
50 cd print '(2i3,3f10.5)',i3,i4,x34,y34,z34
54 wnorm=dsqrt(wx*wx+wy*wy+wz*wz)
58 vnorm=dsqrt(vx*vx+vy*vy+vz*vz)
59 if (vnorm.gt.1.0D-13 .and. wnorm.gt.1.0D-13) then
60 scalar=(vx*wx+vy*wy+vz*wz)/(vnorm*wnorm)
61 if (dabs(scalar).gt.1.0D0)
62 &scalar=0.99999999999999D0*scalar/dabs(scalar)
64 cd print '(2i4,10f7.3)',i2,i3,vx,vy,vz,wx,wy,wz,vnorm,wnorm,
69 c if (angle.le.0.0D0) angle=pi+angle
73 scalar=tx*x23+ty*y23+tz*z23
74 if (scalar.lt.0.0D0) angle=-angle
79 C------------------------------------------------------------------------------
83 c Calculates the distance between atoms (i1) and (i2).
85 implicit real*8 (a-h,o-z)
88 include 'COMMON.CHAIN'
92 dist=dsqrt(x12*x12+y12*y12+z12*z12)