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./
28 if (itype(il).ne.10) then
33 if (itype(jl).ne.10) then
38 qqijCM = qcontrib(il,jl,ilnres,jlnres,iref,ib,iprot)
41 write (iout,*) "qqijCM",qqijCM
47 write (iout,*) "nl",nl," qq",qq
53 c---------------------------------------------------------------------------
54 double precision function qcontrib(il,jl,il1,jl1,iref,ib,iprot)
57 include 'DIMENSIONS.ZSCOPT'
58 include 'COMMON.IOUNITS'
59 include 'COMMON.COMPAR'
60 include 'COMMON.CHAIN'
61 include 'COMMON.INTERACT'
63 include 'COMMON.HEADER'
64 include 'COMMON.CLASSES'
65 integer i,j,k,il,jl,il1,jl1,nd,iref,ib,iprot
68 double precision dij1,dij2,dij3,dij4,d0ij1,d0ij2,d0ij3,d0ij4,fac,
69 & fac1,ddave,ssij,ddqij
70 logical lprn /.false./
72 & (cref(1,jl,iref,ib,iprot)-cref(1,il,iref,ib,iprot))**2+
73 & (cref(2,jl,iref,ib,iprot)-cref(2,il,iref,ib,iprot))**2+
74 & (cref(3,jl,iref,ib,iprot)-cref(3,il,iref,ib,iprot))**2)
79 d0ij2=dsqrt((cref(1,jl1,iref,ib,iprot)-
80 & cref(1,il,iref,ib,iprot))**2+
81 & (cref(2,jl1,iref,ib,iprot)-cref(2,il,iref,ib,iprot))**2+
82 & (cref(3,jl1,iref,ib,iprot)-cref(3,il,iref,ib,iprot))**2)
84 ddave=ddave+(dij2-d0ij2)**2
88 d0ij3=dsqrt((cref(1,jl,iref,ib,iprot)-
89 & cref(1,il1,iref,ib,iprot))**2+
90 & (cref(2,jl,iref,ib,iprot)-cref(2,il1,iref,ib,iprot))**2+
91 & (cref(3,jl,iref,ib,iprot)-cref(3,il1,iref,ib,iprot))**2)
93 ddave=ddave+(dij3-d0ij3)**2
96 if (il1.ne.il .and. jl1.ne.jl) then
97 d0ij4=dsqrt((cref(1,jl1,iref,ib,iprot)-
98 & cref(1,il1,iref,ib,iprot))**2+
99 & (cref(2,jl1,iref,ib,iprot)-cref(2,il1,iref,ib,iprot))**2+
100 & (cref(3,jl1,iref,ib,iprot)-cref(3,il1,iref,ib,iprot))**2)
102 ddave=ddave+(dij4-d0ij4)**2
107 write (iout,*) "il",il," jl",jl,
108 & " itype",itype(il),itype(jl)," nd",nd
109 write (iout,*)"d0ij",d0ij1,d0ij2,d0ij3,d0ij4,
110 & " dij",dij1,dij2,dij3,dij4," ddave",ddave
113 c ssij = (0.25d0*d0ij1)**2
114 if (il.ne.il1 .and. jl.ne.jl1) then
115 c ssij = 16.0d0/(d0ij1*d0ij4)
116 ssij = sigma2(iprot)*sigma2(iprot)/(d0ij1*d0ij4)
118 c ssij = 16.0d0/(d0ij1*d0ij1)
119 c ssij = sigma2(iprot)*sigma2(iprot)/(d0ij1*d0ij1)
120 ssij = 1.0d0/(sigma2(iprot)*sigma2(iprot))
122 qcontrib = dexp(-0.5d0*ddave*ssij)