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)
10 include 'DIMENSIONS.ZSCOPT'
12 include 'COMMON.CHAIN'
19 vnorm=dsqrt(x12*x12+y12*y12+z12*z12)
20 wnorm=dsqrt(x23*x23+y23*y23+z23*z23)
21 scalar=(x12*x23+y12*y23+z12*z23)/(vnorm*wnorm)
26 C------------------------------------------------------------------------------
28 double precision function beta(i1,i2,i3,i4)
30 c Calculates the dihedral angle between atoms (i1), (i2), (i3) and (i4)
32 implicit real*8 (a-h,o-z)
34 include 'DIMENSIONS.ZSCOPT'
36 include 'COMMON.CHAIN'
46 cd print '(2i3,3f10.5)',i1,i2,x12,y12,z12
47 cd print '(2i3,3f10.5)',i2,i3,x23,y23,z23
48 cd print '(2i3,3f10.5)',i3,i4,x34,y34,z34
52 wnorm=dsqrt(wx*wx+wy*wy+wz*wz)
56 vnorm=dsqrt(vx*vx+vy*vy+vz*vz)
57 if (vnorm.gt.1.0D-13 .and. wnorm.gt.1.0D-13) then
58 scalar=(vx*wx+vy*wy+vz*wz)/(vnorm*wnorm)
59 if (dabs(scalar).gt.1.0D0)
60 &scalar=0.99999999999999D0*scalar/dabs(scalar)
62 cd print '(2i4,10f7.3)',i2,i3,vx,vy,vz,wx,wy,wz,vnorm,wnorm,
67 c if (angle.le.0.0D0) angle=pi+angle
71 scalar=tx*x23+ty*y23+tz*z23
72 if (scalar.lt.0.0D0) angle=-angle
77 C------------------------------------------------------------------------------
79 double precision function dist(i1,i2)
81 c Calculates the distance between atoms (i1) and (i2).
83 implicit real*8 (a-h,o-z)
85 include 'DIMENSIONS.ZSCOPT'
87 include 'COMMON.CHAIN'
91 dist=dsqrt(x12*x12+y12*y12+z12*z12)