C
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+ include 'DIMENSIONS.ZSCOPT'
include 'COMMON.SBRIDGE'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
include 'COMMON.VAR'
include 'COMMON.INTERACT'
include 'COMMON.IOUNITS'
+ include 'COMMON.NAMES'
dimension ggg(3)
ehpb=0.0D0
+#ifdef DEBUG
+ do i=1,nres
+ write (iout,'(a4,2x,i4,3f10.5,5x,3f10.5)') restyp(itype(i)),i,
+ & (c(j,i),j=1,3),(c(j,i+nres),j=1,3)
+ enddo
cd write(iout,*)'edis: nhpb=',nhpb,' fbr=',fbr
cd write(iout,*)'link_start=',link_start,' link_end=',link_end
+#endif
if (link_end.eq.0) return
do i=link_start,link_end
C If ihpb(i) and jhpb(i) > NRES, this is a SC-SC distance, otherwise a
iii=ii
jjj=jj
endif
-c write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj,
-c & dhpb(i),dhpb1(i),forcon(i)
+#ifdef DEBUG
+ write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj,
+ & dhpb(i),dhpb1(i),forcon(i)
+#endif
C 24/11/03 AL: SS bridges handled separately because of introducing a specific
C distance and angle dependent SS bond potential.
if (ii.gt.nres .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then
if (dhpb1(i).gt.0.0d0) then
ehpb=ehpb+2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
fac=forcon(i)*gnmr1prim(dd,dhpb(i),dhpb1(i))/dd
-c write (iout,*) "beta nmr",
-c & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+#ifdef DEBUG
+ write (iout,*) "beta nmr",
+ & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+#endif
else
dd=dist(ii,jj)
rdis=dd-dhpb(i)
waga=forcon(i)
C Calculate the contribution to energy.
ehpb=ehpb+waga*rdis*rdis
-c write (iout,*) "beta reg",dd,waga*rdis*rdis
+#ifdef DEBUG
+ write (iout,*) "beta reg",dd,waga*rdis*rdis
+#endif
C
C Evaluate gradient.
C
if (dhpb1(i).gt.0.0d0) then
ehpb=ehpb+2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
fac=forcon(i)*gnmr1prim(dd,dhpb(i),dhpb1(i))/dd
-c write (iout,*) "alph nmr",
-c & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+#ifdef DEBUG
+ write (iout,*) "alph nmr",
+ & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+#endif
else
rdis=dd-dhpb(i)
C Get the force constant corresponding to this distance.
waga=forcon(i)
C Calculate the contribution to energy.
ehpb=ehpb+waga*rdis*rdis
-c write (iout,*) "alpha reg",dd,waga*rdis*rdis
+#ifdef DEBUG
+ write (iout,*) "alpha reg",dd,waga*rdis*rdis
+#endif
C
C Evaluate gradient.
C
nbi=nbondterm(iti)
if (nbi.eq.1) then
diff=vbld(i+nres)-vbldsc0(1,iti)
- write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
- & AKSC(1,iti),AKSC(1,iti)*diff*diff
+c write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
+c & AKSC(1,iti),AKSC(1,iti)*diff*diff
estr=estr+0.5d0*AKSC(1,iti)*diff*diff
do j=1,3
gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
usum=usum+uprod1
usumsqder=usumsqder+ud(j)*uprod2
enddo
- write (iout,*) i,iti,vbld(i+nres),(vbldsc0(j,iti),
- & AKSC(j,iti),abond0(j,iti),u(j),j=1,nbi)
+c write (iout,*) i,iti,vbld(i+nres),(vbldsc0(j,iti),
+c & AKSC(j,iti),abond0(j,iti),u(j),j=1,nbi)
estr=estr+uprod/usum
do j=1,3
gradbx(j,i)=usumsqder/(usum*usum)*dc(j,i+nres)/vbld(i+nres)