projects
/
unres.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
corrections to numerical and sccor analytical gradient
[unres.git]
/
source
/
unres
/
src_MD
/
intcartderiv.F
diff --git
a/source/unres/src_MD/intcartderiv.F
b/source/unres/src_MD/intcartderiv.F
index
2068031
..
e3ae39d
100644
(file)
--- a/
source/unres/src_MD/intcartderiv.F
+++ b/
source/unres/src_MD/intcartderiv.F
@@
-149,9
+149,14
@@
c Obtaining the gamma derivatives from cosine derivative
endif
enddo
endif
enddo
+ do i=1,nres-1
+ do j=1,3
+ dc_norm2(j,i+nres)=-dc_norm(j,i+nres)
+ enddo
+ enddo
Calculate derivative of Tauangle
#ifdef PARINTDER
Calculate derivative of Tauangle
#ifdef PARINTDER
- do i=iphi1_start-1,iphi1_end
+ do i=itau_start,itau_end
#else
do i=3,nres
#endif
#else
do i=3,nres
#endif
@@
-165,10
+170,10
@@
c the conventional case
cost=dcos(theta(i))
cost1=dcos(omicron(2,i-1))
cosg=dcos(tauangle(1,i))
cost=dcos(theta(i))
cost1=dcos(omicron(2,i-1))
cosg=dcos(tauangle(1,i))
- do j=1,3
- dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
+C do j=1,3
+C dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
cc write(iout,*) dc_norm2(j,i-2+nres),"dcnorm"
cc write(iout,*) dc_norm2(j,i-2+nres),"dcnorm"
- enddo
+C enddo
scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1))
fac0=1.0d0/(sint1*sint)
fac1=cost*fac0
scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1))
fac0=1.0d0/(sint1*sint)
fac1=cost*fac0
@@
-194,7
+199,7
@@
c Obtaining the gamma derivatives from sine derivative
dsintau(j,1,2,i)=
& -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*dtheta(j,1,i))
& -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
dsintau(j,1,2,i)=
& -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*dtheta(j,1,i))
& -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
-c write(iout,*) "dsintau", dsintau(j,1,2,i)
+c write(iout,*) "dsintau", dsintau(j,1,1,i),dsintau(j,1,2,i)
dtauangle(j,1,2,i)=cosg_inv*dsintau(j,1,2,i)
c Bug fixed 3/24/05 (AL)
dsintau(j,1,3,i)=-sing*ctgt*dtheta(j,2,i)
dtauangle(j,1,2,i)=cosg_inv*dsintau(j,1,2,i)
c Bug fixed 3/24/05 (AL)
dsintau(j,1,3,i)=-sing*ctgt*dtheta(j,2,i)
@@
-221,12
+226,14
@@
c write (iout,*) "else",i
enddo
endif
c do k=1,3
enddo
endif
c do k=1,3
-c write(iout,*) "tu",i,k,(dtauangle(j,1,k,i),j=1,3)
+c write(iout,*) "tu",1,i,k,(dtauangle(j,1,k,i),j=1,3)
+c write(iout,*) "tu",2,i,k,(dtauangle(j,2,k,i),j=1,3)
+c write(iout,*) "tu",3,i,k,(dtauangle(j,3,k,i),j=1,3)
c enddo
enddo
CC Second case Ca...Ca...Ca...SC
#ifdef PARINTDER
c enddo
enddo
CC Second case Ca...Ca...Ca...SC
#ifdef PARINTDER
- do i=iphi1_start,iphi1_end
+ do i=itau_start,itau_end
#else
do i=4,nres
#endif
#else
do i=4,nres
#endif
@@
-291,7
+298,7
@@
c Obtaining the gamma derivatives from cosine derivative
& dcosomicron(j,1,2,i)-fac0*(dc_norm(j,i-3)-scalp*
& dc_norm(j,i-1+nres))/vbld(i-1+nres)
dtauangle(j,2,3,i)=-1/sing*dcostau(j,2,3,i)
& dcosomicron(j,1,2,i)-fac0*(dc_norm(j,i-3)-scalp*
& dc_norm(j,i-1+nres))/vbld(i-1+nres)
dtauangle(j,2,3,i)=-1/sing*dcostau(j,2,3,i)
- write(iout,*) i,j,"else", dtauangle(j,2,3,i)
+c write(iout,*) i,j,"else", dtauangle(j,2,3,i)
enddo
endif
enddo
enddo
endif
enddo
@@
-300,7
+307,7
@@
c Obtaining the gamma derivatives from cosine derivative
CCC third case SC...Ca...Ca...SC
#ifdef PARINTDER
CCC third case SC...Ca...Ca...SC
#ifdef PARINTDER
- do i=iphi1_start-1,iphi1_end
+ do i=itau_start,itau_end
#else
do i=3,nres
#endif
#else
do i=3,nres
#endif
@@
-313,10
+320,10
@@
c the conventional case
cost=dcos(omicron(1,i))
cost1=dcos(omicron(2,i-1))
cosg=dcos(tauangle(3,i))
cost=dcos(omicron(1,i))
cost1=dcos(omicron(2,i-1))
cosg=dcos(tauangle(3,i))
- do j=1,3
- dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
+C do j=1,3
+C dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
c dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
c dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
- enddo
+C enddo
scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres))
fac0=1.0d0/(sint1*sint)
fac1=cost*fac0
scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres))
fac0=1.0d0/(sint1*sint)
fac1=cost*fac0
@@
-334,13
+341,13
@@
c Obtaining the gamma derivatives from sine derivative
ctgt=cost/sint
ctgt1=cost1/sint1
cosg_inv=1.0d0/cosg
ctgt=cost/sint
ctgt1=cost1/sint1
cosg_inv=1.0d0/cosg
- dsintau(j,3,1,i)=-sing*ctgt1*domicron(j,2,1,i-1)
- & -(fac0*vp1(j)+sing*dc_norm2(j,i-2+nres))
+ dsintau(j,3,1,i)=-sing*ctgt1*domicron(j,2,2,i-1)
+ & -(fac0*vp1(j)-sing*dc_norm(j,i-2+nres))
& *vbld_inv(i-2+nres)
dtauangle(j,3,1,i)=cosg_inv*dsintau(j,3,1,i)
dsintau(j,3,2,i)=
& *vbld_inv(i-2+nres)
dtauangle(j,3,1,i)=cosg_inv*dsintau(j,3,1,i)
dsintau(j,3,2,i)=
- & -sing*(ctgt1*domicron(j,2,2,i-1)+ctgt*domicron(j,1,1,i))
- & -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1+nres)
+ & -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*domicron(j,1,1,i))
+ & -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
dtauangle(j,3,2,i)=cosg_inv*dsintau(j,3,2,i)
c Bug fixed 3/24/05 (AL)
dsintau(j,3,3,i)=-sing*ctgt*domicron(j,1,2,i)
dtauangle(j,3,2,i)=cosg_inv*dsintau(j,3,2,i)
c Bug fixed 3/24/05 (AL)
dsintau(j,3,3,i)=-sing*ctgt*domicron(j,1,2,i)
@@
-352,18
+359,19
@@
c & +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
c Obtaining the gamma derivatives from cosine derivative
else
do j=1,3
c Obtaining the gamma derivatives from cosine derivative
else
do j=1,3
- dcostau(j,3,1,i)=fac1*dcosomicron(j,2,1,i-1)+fac3*
- & dcostheta(j,1,i-1)-fac0*(dc_norm(j,i-1+nres)-scalp*
+ dcostau(j,3,1,i)=fac1*dcosomicron(j,2,2,i-1)+fac3*
+ & dcosomicron(j,2,2,i-1)-fac0*(dc_norm(j,i-1+nres)-scalp*
& dc_norm2(j,i-2+nres))/vbld(i-2+nres)
dtauangle(j,3,1,i)=-1/sing*dcostau(j,3,1,i)
& dc_norm2(j,i-2+nres))/vbld(i-2+nres)
dtauangle(j,3,1,i)=-1/sing*dcostau(j,3,1,i)
- dcostau(j,3,2,i)=fac1*dcosomicron(j,2,2,i-1)+fac2*
- & dcosomicron(j,1,1,i)+fac3*dcosomicron(j,2,2,i-1)+fac4*
+ dcostau(j,3,2,i)=fac1*dcosomicron(j,2,1,i-1)+fac2*
+ & dcosomicron(j,1,1,i)+fac3*dcosomicron(j,2,1,i-1)+fac4*
& dcosomicron(j,1,1,i)
dtauangle(j,3,2,i)=-1/sing*dcostau(j,3,2,i)
dcostau(j,3,3,i)=fac2*dcosomicron(j,1,2,i)+fac4*
& dcosomicron(j,1,1,i)
dtauangle(j,3,2,i)=-1/sing*dcostau(j,3,2,i)
dcostau(j,3,3,i)=fac2*dcosomicron(j,1,2,i)+fac4*
- & dcostau(j,3,2,i)-fac0*(dc_norm2(j,i-2+nres)-scalp*
+ & dcosomicron(j,1,2,i)-fac0*(dc_norm2(j,i-2+nres)-scalp*
& dc_norm(j,i-1+nres))/vbld(i-1+nres)
dtauangle(j,3,3,i)=-1/sing*dcostau(j,3,3,i)
& dc_norm(j,i-1+nres))/vbld(i-1+nres)
dtauangle(j,3,3,i)=-1/sing*dcostau(j,3,3,i)
+c write(iout,*) "else",i
enddo
endif
enddo
enddo
endif
enddo
@@
-457,12
+465,12
@@
c obtaining the derivatives of omega from cosines
#if defined(MPI) && defined(PARINTDER)
if (nfgtasks.gt.1) then
#ifdef DEBUG
#if defined(MPI) && defined(PARINTDER)
if (nfgtasks.gt.1) then
#ifdef DEBUG
-cd write (iout,*) "Gather dtheta"
+ write (iout,*) "Gather dtheta"
cd call flush(iout)
cd call flush(iout)
- write (iout,*) "dtheta before gather"
- do i=1,nres
- write (iout,'(i3,3(3f8.5,3x))') i,((dtheta(j,k,i),k=1,3),j=1,2)
- enddo
+c write (iout,*) "dtheta before gather"
+c do i=1,nres
+c write (iout,'(i3,3(3f8.5,3x))') i,((dtheta(j,k,i),k=1,3),j=1,2)
+c enddo
#endif
call MPI_Gatherv(dtheta(1,1,ithet_start),ithet_count(fg_rank),
& MPI_THET,dtheta(1,1,1),ithet_count(0),ithet_displ(0),MPI_THET,
#endif
call MPI_Gatherv(dtheta(1,1,ithet_start),ithet_count(fg_rank),
& MPI_THET,dtheta(1,1,1),ithet_count(0),ithet_displ(0),MPI_THET,