1 double precision function qwolynes(ib,iref,iprot)
4 include 'DIMENSIONS.ZSCOPT'
5 include 'COMMON.IOUNITS'
6 include 'COMMON.COMPAR'
8 include 'COMMON.INTERACT'
10 include 'COMMON.HEADER'
12 integer i,j,jl,ilnres,jlnres,klnres,k,l,il,kl,nl,np,ip,kp
14 double precision dist,qm
15 double precision qq,qqij,qqijCM,dij,d0ij,dijCM,d0ijCM
16 double precision qcontrib
18 logical lprn /.false./
26 if (itype(il).eq.ntyp1) cycle
28 if (itype(jl).eq.ntyp1) cycle
30 if (itype(il).ne.10) then
35 if (itype(jl).ne.10) then
40 qqijCM = qcontrib(il,jl,ilnres,jlnres,iref,ib,iprot)
43 write (iout,*) "qqijCM",qqijCM
49 write (iout,*) "nl",nl," qq",qq
55 c---------------------------------------------------------------------------
56 double precision function qcontrib(il,jl,il1,jl1,iref,ib,iprot)
59 include 'DIMENSIONS.ZSCOPT'
60 include 'COMMON.IOUNITS'
61 include 'COMMON.COMPAR'
62 include 'COMMON.CHAIN'
63 include 'COMMON.INTERACT'
65 include 'COMMON.HEADER'
66 include 'COMMON.CLASSES'
67 integer i,j,k,il,jl,il1,jl1,nd,iref,ib,iprot
70 double precision dij1,dij2,dij3,dij4,d0ij1,d0ij2,d0ij3,d0ij4,fac,
71 & fac1,ddave,ssij,ddqij
72 logical lprn /.false./
74 & (cref(1,jl,iref,ib,iprot)-cref(1,il,iref,ib,iprot))**2+
75 & (cref(2,jl,iref,ib,iprot)-cref(2,il,iref,ib,iprot))**2+
76 & (cref(3,jl,iref,ib,iprot)-cref(3,il,iref,ib,iprot))**2)
81 d0ij2=dsqrt((cref(1,jl1,iref,ib,iprot)-
82 & cref(1,il,iref,ib,iprot))**2+
83 & (cref(2,jl1,iref,ib,iprot)-cref(2,il,iref,ib,iprot))**2+
84 & (cref(3,jl1,iref,ib,iprot)-cref(3,il,iref,ib,iprot))**2)
86 ddave=ddave+(dij2-d0ij2)**2
90 d0ij3=dsqrt((cref(1,jl,iref,ib,iprot)-
91 & cref(1,il1,iref,ib,iprot))**2+
92 & (cref(2,jl,iref,ib,iprot)-cref(2,il1,iref,ib,iprot))**2+
93 & (cref(3,jl,iref,ib,iprot)-cref(3,il1,iref,ib,iprot))**2)
95 ddave=ddave+(dij3-d0ij3)**2
98 if (il1.ne.il .and. jl1.ne.jl) then
99 d0ij4=dsqrt((cref(1,jl1,iref,ib,iprot)-
100 & cref(1,il1,iref,ib,iprot))**2+
101 & (cref(2,jl1,iref,ib,iprot)-cref(2,il1,iref,ib,iprot))**2+
102 & (cref(3,jl1,iref,ib,iprot)-cref(3,il1,iref,ib,iprot))**2)
104 ddave=ddave+(dij4-d0ij4)**2
109 write (iout,*) "il",il," jl",jl,
110 & " itype",itype(il),itype(jl)," nd",nd
111 write (iout,*)"d0ij",d0ij1,d0ij2,d0ij3,d0ij4,
112 & " dij",dij1,dij2,dij3,dij4," ddave",ddave
115 c ssij = (0.25d0*d0ij1)**2
116 if (il.ne.il1 .and. jl.ne.jl1) then
117 c ssij = 16.0d0/(d0ij1*d0ij4)
118 ssij = sigma2(iprot)*sigma2(iprot)/(d0ij1*d0ij4)
120 c ssij = 16.0d0/(d0ij1*d0ij1)
121 c ssij = sigma2(iprot)*sigma2(iprot)/(d0ij1*d0ij1)
122 ssij = 1.0d0/(sigma2(iprot)*sigma2(iprot))
124 qcontrib = dexp(-0.5d0*ddave*ssij)