1 subroutine Econstr_back
2 c MD with umbrella_sampling using Wolyne's distance measure as a constraint
3 implicit real*8 (a-h,o-z)
5 include 'COMMON.CONTROL'
9 include 'COMMON.LANGEVIN'
11 include 'COMMON.LANGEVIN.lang0'
13 include 'COMMON.CHAIN'
14 include 'COMMON.DERIV'
15 include 'COMMON.QRESTR'
17 include 'COMMON.LOCAL'
18 include 'COMMON.INTERACT'
19 include 'COMMON.IOUNITS'
20 include 'COMMON.NAMES'
21 include 'COMMON.TIME1'
32 ii = ifrag_back(2,i,iset)-ifrag_back(1,i,iset)
34 c Deviations from theta angles
37 do j=ifrag_back(1,i,iset)+2,ifrag_back(2,i,iset)
38 dtheta_i=theta(j)-thetaref(j)
39 utheta_i=utheta_i+0.5d0*dtheta_i*dtheta_i
40 dutheta(j-2)=dutheta(j-2)+wfrag_back(1,i,iset)*dtheta_i/(ii-1)
42 utheta(i)=utheta_i/(ii-1)
44 c Deviations from gamma angles
47 do j=ifrag_back(1,i,iset)+3,ifrag_back(2,i,iset)
48 dgamma_i=pinorm(phi(j)-phiref(j))
49 c write (iout,*) j,phi(j),phi(j)-phiref(j)
50 ugamma_i=ugamma_i+0.5d0*dgamma_i*dgamma_i
51 dugamma(j-3)=dugamma(j-3)+wfrag_back(2,i,iset)*dgamma_i/(ii-2)
52 c write (iout,*) i,j,dgamma_i,wfrag_back(2,i,iset),dugamma(j-3)
54 ugamma(i)=ugamma_i/(ii-2)
56 c Deviations from local SC geometry
59 do j=ifrag_back(1,i,iset)+1,ifrag_back(2,i,iset)-1
63 uscdiff(i)=uscdiff(i)+dxx*dxx+dyy*dyy+dzz*dzz
65 duscdiff(k,j-1)=duscdiff(k,j-1)+wfrag_back(3,i,iset)*
66 & (dXX_C1tab(k,j)*dxx+dYY_C1tab(k,j)*dyy+dZZ_C1tab(k,j)*dzz)/
68 duscdiff(k,j)=duscdiff(k,j)+wfrag_back(3,i,iset)*
69 & (dXX_Ctab(k,j)*dxx+dYY_Ctab(k,j)*dyy+dZZ_Ctab(k,j)*dzz)/
71 duscdiffx(k,j)=duscdiffx(k,j)+wfrag_back(3,i,iset)*
72 & (dXX_XYZtab(k,j)*dxx+dYY_XYZtab(k,j)*dyy+dZZ_XYZtab(k,j)*dzz)
75 c write (iout,'(i5,6f10.5)') j,xxtab(j),yytab(j),zztab(j),
76 c & xxref(j),yyref(j),zzref(j)
78 uscdiff(i)=0.5d0*uscdiff(i)/(ii-1)
79 c write (iout,*) i," uscdiff",uscdiff(i)
81 c Put together deviations from local geometry
83 Uconst_back=Uconst_back+wfrag_back(1,i,iset)*utheta(i)+
84 & wfrag_back(2,i,iset)*ugamma(i)+wfrag_back(3,i,iset)*uscdiff(i)
85 c write(iout,*) "i",i," utheta",utheta(i)," ugamma",ugamma(i),
86 c & " uconst_back",uconst_back
87 utheta(i)=dsqrt(utheta(i))
88 ugamma(i)=dsqrt(ugamma(i))
89 uscdiff(i)=dsqrt(uscdiff(i))