By Adam
[unres.git] / source / unres / src_MD / intcartderiv.F
index 2068031..889bedd 100644 (file)
@@ -149,9 +149,14 @@ c   Obtaining the gamma derivatives from cosine derivative
         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
-      do i=iphi1_start-1,iphi1_end
+      do i=itau_start,itau_end
 #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))
-        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"
-        enddo
+C        enddo
         scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1))
         fac0=1.0d0/(sint1*sint)
         fac1=cost*fac0
@@ -226,7 +231,7 @@ 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
@@ -291,7 +296,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)
-        write(iout,*) i,j,"else", dtauangle(j,2,3,i) 
+c        write(iout,*) i,j,"else", dtauangle(j,2,3,i) 
          enddo
         endif                                                                                            
       enddo
@@ -300,7 +305,7 @@ c   Obtaining the gamma derivatives from cosine derivative
 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
@@ -313,10 +318,10 @@ c the conventional case
         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)
-        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
@@ -334,13 +339,13 @@ c    Obtaining the gamma derivatives from sine derivative
             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)=
-     &        -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)
@@ -352,18 +357,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
-           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)
-           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*
-     &     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)
+c          write(iout,*) "else",i 
          enddo
         endif                                                                                            
       enddo
@@ -457,12 +463,12 @@ c   obtaining the derivatives of omega from cosines
 #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)
-      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,