C-------------------------------------------------------------------------
subroutine cartgrad
implicit real*8 (a-h,o-z)
+c
+c integer iistart,iiend
+c
include 'DIMENSIONS'
+ include 'COMMON.LOCAL'
#ifdef MPI
include 'mpif.h'
#endif
+ include 'COMMON.CONTROL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
include 'COMMON.VAR'
time00=MPI_Wtime()
#endif
icg=1
+#ifdef DEBUG
+c write (iout,*) "in cartgrad before sum_: duscdiff and duscdiffx"
+ write (iout,*) "------ Before call sum_ in cargrad ------"
+ do i=1,nres
+ write (iout,*) i,(duscdiff(j,i),j=1,3)
+ write (iout,*) i,(duscdiffx(j,i),j=1,3)
+c write (iout,*) "nphi+i",nphi+i," gloc",gloc(nphi+i,icg)
+c write (iout,*) "i",i," gradc",(gradc(j,i,icg),j=1,3)
+c write (iout,*) "i",i," gradx",(gradx(j,i,icg),j=1,3)
+ enddo
+#endif
call sum_gradient
+c
#ifdef TIMING
#endif
c do i=1,nres
c write (iout,*) "checkgrad", gloc_sc(1,i,icg),gloc(i,icg)
c enddo
-cd write (iout,*) "After sum_gradient"
-cd do i=1,nres-1
-cd write (iout,*) i," gradc ",(gradc(j,i,icg),j=1,3)
-cd write (iout,*) i," gradx ",(gradx(j,i,icg),j=1,3)
-cd enddo
+#ifdef DEBUG
+ write (iout,*) "------ After sum_gradient in cartgrad ------"
+c do i=1,nres-1
+ do i=1,nres
+ write (iout,*) "nphi+i",nphi+i," gloc",gloc(nphi+i,icg)
+ write (iout,*) "i",i," gradc",(gradc(j,i,icg),j=1,3)
+ write (iout,*) "i",i," gradx",(gradx(j,i,icg),j=1,3)
+ enddo
+#endif
c If performing constraint dynamics, add the gradients of the constraint energy
+#ifdef DEBUG
+ write (iout,*) "in cartgrad: dutheta, duscdiff and duscdiffx"
+ do i=1,nres
+ write (iout,*) i,dutheta(i)
+ write (iout,*) i,(duscdiff(j,i),j=1,3)
+ write (iout,*) i,(duscdiffx(j,i),j=1,3)
+ enddo
+#endif
if(usampl.and.totT.gt.eq_time) then
+c if(usampl.and.totT.gt.eq_time .or. constr_homology.gt.0) then
+c
+c Setting suited bounds for HM restrs
+c
do i=1,nct
do j=1,3
- gradc(j,i,icg)=gradc(j,i,icg)+dudconst(j,i)+duscdiff(j,i)
- gradx(j,i,icg)=gradx(j,i,icg)+dudxconst(j,i)+duscdiffx(j,i)
+ gradc(j,i,icg)=gradc(j,i,icg)+dudconst(j,i)
+ gradx(j,i,icg)=gradx(j,i,icg)+dudxconst(j,i)
enddo
+#ifdef DEBUG
+ write (iout,*) "i",i," gradc",(gradc(j,i,icg),j=1,3)
+ write (iout,*) "i",i," gradx",(gradx(j,i,icg),j=1,3)
+#endif
enddo
do i=1,nres-3
gloc(i,icg)=gloc(i,icg)+dugamma(i)
enddo
+c
do i=1,nres-2
gloc(nphi+i,icg)=gloc(nphi+i,icg)+dutheta(i)
+#ifdef DEBUG
+ write (iout,*) "nphi+i",nphi+i," gloc",gloc(nphi+i,icg)
+#endif
enddo
endif
#ifdef TIMING
do intertyp=1,3
gloc_sc(intertyp,i,icg)=0.0d0
enddo
+#ifndef DFA
+ gdfad(j,i)=0.0d0
+ gdfat(j,i)=0.0d0
+ gdfan(j,i)=0.0d0
+ gdfab(j,i)=0.0d0
+#endif
+ enddo
+ enddo
+c
+c Initialize the gradients of local restraints
+c
+ do i=1,nres
+ dutheta(i)=0.0d0
+ dugamma(i)=0.0d0
+ do j=1,3
+ duscdiff(j,i)=0.0d0
+ duscdiffx(j,i)=0.0d0
enddo
enddo
C