1 subroutine kinetic_CASC(KE_total)
2 c----------------------------------------------------------------
3 c Compute the kinetic energy of the system using the Calpha-SC
5 c-----------------------------------------------------------------
10 include 'COMMON.DERIV'
12 include 'COMMON.LOCAL'
13 include 'COMMON.INTERACT'
16 include 'COMMON.LAGRANGE.5diag'
18 include 'COMMON.LAGRANGE'
20 include 'COMMON.IOUNITS'
21 double precision KE_total
23 integer i,j,k,iti,ichain,innt,inct
24 double precision KEt_p,KEt_sc,KEr_p,KEr_sc,incr(3),
31 c write (iout,*) "ISC",(isc(itype(i)),i=1,nres)
32 c The translational part for peptide virtual bonds
35 innt=chain_border(1,ichain)
36 inct=chain_border(2,ichain)
37 c write (iout,*) "Kinetic_CASC chain",ichain," innt",innt,
41 c write (iout,*) i,(d_t(j,i),j=1,3),(d_t(j,i+1),j=1,3)
43 v(j)=0.5d0*(d_t(j,i)+d_t(j,i+1))
45 c write (iout,*) "Kinetic trp i",i," v",(v(j),j=1,3)
46 KEt_p=KEt_p+(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
48 c write(iout,*) 'KEt_p', KEt_p
49 c The translational part for the side chain virtual bond
50 c Only now we can initialize incr with zeros. It must be equal
51 c to the velocities of the first Calpha.
55 c write (iout,*) i,iti,(d_t(j,i),j=1,3)
60 c write (iout,*) i,iti,(d_t(j,nres+i),j=1,3)
65 c write (iout,*) "Kinetic trsc:",i,(incr(j),j=1,3)
66 c write (iout,*) "i",i," msc",msc(iti)," v",(v(j),j=1,3)
67 KEt_sc=KEt_sc+msc(iti)*(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
70 c write(iout,*) 'KEt_sc', KEt_sc
71 c The part due to stretching and rotation of the peptide groups
74 incr(j)=d_t(j,i+1)-d_t(j,i)
76 c write (iout,*) i,(incr(j),j=1,3)
77 c write (iout,*) "Kinetic rotp:",i,(incr(j),j=1,3)
78 KEr_p=KEr_p+(incr(1)*incr(1)+incr(2)*incr(2)
82 c write(iout,*) 'KEr_p', KEr_p
83 c The rotational part of the side chain virtual bond
88 incr(j)=d_t(j,nres+i)-d_t(j,i)
90 c write (iout,*) "Kinetic rotsc:",i,(incr(j),j=1,3)
91 KEr_sc=KEr_sc+Isc(iti)*(incr(1)*incr(1)+incr(2)*incr(2)+
97 c The total kinetic energy
99 c write(iout,*) ' KEt_p',KEt_p,' KEt_sc',KEt_sc,' KEr_p',KEr_p,
100 c & ' KEr_sc', KEr_sc
101 KE_total=0.5d0*(mp*KEt_p+KEt_sc+0.25d0*Ip*KEr_p+KEr_sc)
102 c write (iout,*) "KE_total",KE_tota
104 write (iout,*) "Need to compile with -DFIVEDIAG to use this sub!"