last corrections copied to src_MD-M
[unres.git] / source / unres / src_MD-M / intcartderiv.F
index 94b3989..9b4ab6b 100644 (file)
@@ -118,7 +118,7 @@ c the conventional case
 c    Obtaining the gamma derivatives from sine derivative                               
        if (phi(i).gt.-pi4.and.phi(i).le.pi4.or.
      &     phi(i).gt.pi34.and.phi(i).le.pi.or.
-     &     phi(i).gt.-pi.and.phi(i).le.-pi34) then
+     &     phi(i).ge.-pi.and.phi(i).le.-pi34) then
          call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
          call vecpr(dc_norm(1,i-3),dc_norm(1,i-1),vp2)
          call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3) 
@@ -161,6 +161,11 @@ c   Obtaining the gamma derivatives from cosine derivative
          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
       do i=itau_start,itau_end
@@ -179,10 +184,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
@@ -193,7 +198,7 @@ cc         write(iout,*) "faki",fac0,fac1,fac2,fac3,fac4
 c    Obtaining the gamma derivatives from sine derivative                                
        if (tauangle(1,i).gt.-pi4.and.tauangle(1,i).le.pi4.or.
      &     tauangle(1,i).gt.pi34.and.tauangle(1,i).le.pi.or.
-     &     tauangle(1,i).gt.-pi.and.tauangle(1,i).le.-pi34) then
+     &     tauangle(1,i).ge.-pi.and.tauangle(1,i).le.-pi34) then
          call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
          call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1),vp2)
          call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
@@ -253,9 +258,9 @@ c the conventional case
         cost=dcos(omicron(1,i))
         cost1=dcos(theta(i-1))
         cosg=dcos(tauangle(2,i))
-c        do j=1,3
-c        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
-c        enddo
+C        do j=1,3
+C        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
+C        enddo
         scalp=scalar(dc_norm(1,i-3),dc_norm(1,i-1+nres))
         fac0=1.0d0/(sint1*sint)
         fac1=cost*fac0
@@ -265,31 +270,36 @@ c        enddo
 c    Obtaining the gamma derivatives from sine derivative                                
        if (tauangle(2,i).gt.-pi4.and.tauangle(2,i).le.pi4.or.
      &     tauangle(2,i).gt.pi34.and.tauangle(2,i).le.pi.or.
-     &     tauangle(2,i).gt.-pi.and.tauangle(2,i).le.-pi34) then
+     &     tauangle(2,i).ge.-pi.and.tauangle(2,i).le.-pi34) then
          call vecpr(dc_norm2(1,i-1+nres),dc_norm(1,i-2),vp1)
          call vecpr(dc_norm(1,i-3),dc_norm(1,i-1+nres),vp2)
          call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
+C        print *,"chuj"
         do j=1,3
             ctgt=cost/sint
             ctgt1=cost1/sint1
             cosg_inv=1.0d0/cosg
             dsintau(j,2,1,i)=-sing*ctgt1*dtheta(j,1,i-1)
      &        +(fac0*vp1(j)-sing*dc_norm(j,i-3))*vbld_inv(i-2)
-c       write(iout,*) i,j,dsintau(j,2,1,i),sing*ctgt1*dtheta(j,1,i-1),
-c     &fac0*vp1(j),sing*dc_norm(j,i-3),vbld_inv(i-2),"dsintau(2,1)"
+
+C            write(12,*) i,j,dc_norm2(1,i-1+nres),dc_norm(1,i-2)
+
             dtauangle(j,2,1,i)=cosg_inv*dsintau(j,2,1,i)
+
             dsintau(j,2,2,i)=
      &        -sing*(ctgt1*dtheta(j,2,i-1)+ctgt*domicron(j,1,1,i))
      &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
-c            write(iout,*) "sprawdzenie",i,j,sing*ctgt1*dtheta(j,2,i-1),
-c     & sing*ctgt*domicron(j,1,2,i),
-c     & (fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
+
             dtauangle(j,2,2,i)=cosg_inv*dsintau(j,2,2,i)
-c Bug fixed 3/24/05 (AL)
+
             dsintau(j,2,3,i)=-sing*ctgt*domicron(j,1,2,i)
      &       +(fac0*vp3(j)-sing*dc_norm(j,i-1+nres))*vbld_inv(i-1+nres)
+
 c     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
             dtauangle(j,2,3,i)=cosg_inv*dsintau(j,2,3,i)
+
+
+
          enddo
 c   Obtaining the gamma derivatives from cosine derivative
         else
@@ -308,7 +318,7 @@ c   Obtaining the gamma derivatives from cosine derivative
            dtauangle(j,2,3,i)=-1/sing*dcostau(j,2,3,i)
 c        write(iout,*) i,j,"else", dtauangle(j,2,3,i) 
          enddo
-        endif                                    
+        endif
       enddo
 
 CCC third case SC...Ca...Ca...SC
@@ -327,10 +337,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        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
-        enddo
+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        enddo
         scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres))
         fac0=1.0d0/(sint1*sint)
         fac1=cost*fac0
@@ -340,7 +350,7 @@ c        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
 c    Obtaining the gamma derivatives from sine derivative                                
        if (tauangle(3,i).gt.-pi4.and.tauangle(3,i).le.pi4.or.
      &     tauangle(3,i).gt.pi34.and.tauangle(3,i).le.pi.or.
-     &     tauangle(3,i).gt.-pi.and.tauangle(3,i).le.-pi34) then
+     &     tauangle(3,i).ge.-pi.and.tauangle(3,i).le.-pi34) then
          call vecpr(dc_norm(1,i-1+nres),dc_norm(1,i-2),vp1)
          call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres),vp2)
          call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
@@ -362,6 +372,8 @@ c Bug fixed 3/24/05 (AL)
      &        *vbld_inv(i-1+nres)
 c     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
             dtauangle(j,3,3,i)=cosg_inv*dsintau(j,3,3,i)
+
+
          enddo
 c   Obtaining the gamma derivatives from cosine derivative
         else
@@ -380,9 +392,9 @@ c   Obtaining the gamma derivatives from cosine derivative
            dtauangle(j,3,3,i)=-1/sing*dcostau(j,3,3,i)
 c          write(iout,*) "else",i 
          enddo
+
         endif                                                                                            
       enddo
-
 #ifdef CRYST_SC
 c   Derivatives of side-chain angles alpha and omega
 #if defined(MPI) && defined(PARINTDER)
@@ -419,7 +431,7 @@ c             write (iout,*) "i",i," cosa",cosa," sina",sina," sino",sino
 c obtaining the derivatives of omega from sines            
             if(omeg(i).gt.-pi4.and.omeg(i).le.pi4.or.
      &         omeg(i).gt.pi34.and.omeg(i).le.pi.or.
-     &         omeg(i).gt.-pi.and.omeg(i).le.-pi34) then
+     &         omeg(i).ge.-pi.and.omeg(i).le.-pi34) then
                fac15=dcos(theta(i+1))/(dsin(theta(i+1))*
      &        dsin(theta(i+1)))
                fac16=dcos(alph(i))/(dsin(alph(i))*dsin(alph(i)))