X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fgradient_p.F;h=dd59b314e74c2efdba49dcc060719180d808999f;hb=aa4540154949fdfc9ab63442eb6fea09d6c589ad;hp=375fcf4df72dec062c702645b62a9b6c1b100d39;hpb=478a9d9a1c99eb3f4bc4ca676ff3162bdd01d633;p=unres.git diff --git a/source/unres/src_MD/gradient_p.F b/source/unres/src_MD/gradient_p.F index 375fcf4..dd59b31 100644 --- a/source/unres/src_MD/gradient_p.F +++ b/source/unres/src_MD/gradient_p.F @@ -8,6 +8,7 @@ include 'COMMON.FFIELD' include 'COMMON.MD' include 'COMMON.IOUNITS' + include 'COMMON.SCCOR' external ufparm integer uiparm(1) double precision urparm(1) @@ -251,10 +252,15 @@ cd enddo 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' @@ -263,35 +269,79 @@ C------------------------------------------------------------------------- include 'COMMON.MD' include 'COMMON.IOUNITS' include 'COMMON.TIME1' + include 'COMMON.SCCOR' c c This subrouting calculates total Cartesian coordinate gradient. c The subroutine chainbuild_cart and energy MUST be called beforehand. c +c do i=1,nres +c write (iout,*) "przed sum_grad", gloc_sc(1,i,icg),gloc(i,icg) +c enddo + #ifdef TIMING 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 -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 +c do i=1,nres +c write (iout,*) "checkgrad", gloc_sc(1,i,icg),gloc(i,icg) +c 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 @@ -337,6 +387,7 @@ C------------------------------------------------------------------------- include 'COMMON.CHAIN' include 'COMMON.VAR' include 'COMMON.MD' + include 'COMMON.SCCOR' C C Initialize Cartesian-coordinate gradient C @@ -374,6 +425,20 @@ C gradx(j,i,icg)=0.0d0 gscloc(j,i)=0.0d0 gsclocx(j,i)=0.0d0 + do intertyp=1,3 + gloc_sc(intertyp,i,icg)=0.0d0 + enddo + 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