1 subroutine kinetic(KE_total)
2 c----------------------------------------------------------------
3 c This subroutine calculates the total kinetic energy of the chain
4 c-----------------------------------------------------------------
5 implicit real*8 (a-h,o-z)
11 include 'COMMON.LOCAL'
12 include 'COMMON.INTERACT'
13 include 'COMMON.LAGRANGE'
14 include 'COMMON.IOUNITS'
15 double precision KE_total
17 double precision KEt_p,KEt_sc,KEr_p,KEr_sc,incr(3),
22 c write (iout,*) "ISC",(isc(itype(i)),i=1,nres)
23 c The translational part for peptide virtual bonds
28 c write (iout,*) "Kinetic trp:",i,(incr(j),j=1,3)
30 v(j)=incr(j)+0.5d0*d_t(j,i)
32 vtot(i)=v(1)*v(1)+v(2)*v(2)+v(3)*v(3)
33 KEt_p=KEt_p+(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
35 incr(j)=incr(j)+d_t(j,i)
38 c write(iout,*) 'KEt_p', KEt_p
39 c The translational part for the side chain virtual bond
40 c Only now we can initialize incr with zeros. It must be equal
41 c to the velocities of the first Calpha.
47 if (itype(i).eq.10) then
53 v(j)=incr(j)+d_t(j,nres+i)
56 c write (iout,*) "Kinetic trsc:",i,(incr(j),j=1,3)
57 c write (iout,*) "i",i," msc",msc(iti)," v",(v(j),j=1,3)
58 KEt_sc=KEt_sc+msc(iti)*(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
59 vtot(i+nres)=v(1)*v(1)+v(2)*v(2)+v(3)*v(3)
61 incr(j)=incr(j)+d_t(j,i)
65 c write(iout,*) 'KEt_sc', KEt_sc
66 c The part due to stretching and rotation of the peptide groups
69 c write (iout,*) "i",i
70 c write (iout,*) "i",i," mag1",mag1," mag2",mag2
74 c write (iout,*) "Kinetic rotp:",i,(incr(j),j=1,3)
75 KEr_p=KEr_p+(incr(1)*incr(1)+incr(2)*incr(2)
79 c write(iout,*) 'KEr_p', KEr_p
80 c The rotational part of the side chain virtual bond
84 if (itype(i).ne.10) then
88 c write (iout,*) "Kinetic rotsc:",i,(incr(j),j=1,3)
89 KEr_sc=KEr_sc+Isc(iti)*(incr(1)*incr(1)+incr(2)*incr(2)+
93 c The total kinetic energy
95 c write(iout,*) 'KEr_sc', KEr_sc
96 KE_total=0.5d0*(mp*KEt_p+KEt_sc+0.25d0*Ip*KEr_p+KEr_sc)
97 c write (iout,*) "KE_total",KE_total