X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fint_to_cart.f;h=6d0fb1bf63d2100e43e7424eaf9c9b17ea6ea294;hb=83bfd1e75fe4d7f79f4ec4b52f17743cb16a1fb2;hp=149e86f61761b51e54e91714b91c0429fa0b263d;hpb=0da141621f008888c86b52ff8e29f9873cff6dd3;p=unres.git diff --git a/source/unres/src_MD/int_to_cart.f b/source/unres/src_MD/int_to_cart.f index 149e86f..6d0fb1b 100644 --- a/source/unres/src_MD/int_to_cart.f +++ b/source/unres/src_MD/int_to_cart.f @@ -13,9 +13,15 @@ c------------------------------------------------------------- include 'COMMON.INTERACT' include 'COMMON.MD' include 'COMMON.IOUNITS' - + include 'COMMON.SCCOR' c calculating dE/ddc1 if (nres.lt.3) goto 18 +c do i=1,nres +c c do intertyp=1,3 +c write (iout,*) "przed tosyjnymi",i,intertyp,gcart(intertyp,i) +c &,gloc_sc(1,i,icg),gloc(i,icg) +c enddo +c enddo do j=1,3 gcart(j,1)=gcart(j,1)+gloc(1,icg)*dphi(j,1,4) & +gloc(nres-2,icg)*dtheta(j,1,3) @@ -119,9 +125,22 @@ C INTERTYP=2 Ca...Ca...Ca...SC C INTERTYP=3 SC...Ca...Ca...SC c calculating dE/ddc1 18 continue +c do i=1,nres +c gloc(i,icg)=0.0D0 +c write (iout,*) "poczotkoawy",i,gloc_sc(1,i,icg) +c enddo +c write (iout,*) "dtauangle" +c do i=1,nres +c write (iout,*) i +c do j=1,3 +c do k=1,3 +c write (iout,*) (dtauangle(l,k,j,i),l=1,3) +c enddo +c enddo +c enddo if (nres.lt.2) return if ((nres.lt.3).and.(itype(1).eq.10)) return - if (itype(1).ne.10) then + if ((itype(1).ne.10).and.(itype(1).ne.21)) then do j=1,3 cc Derviative was calculated for oposite vector of side chain therefore c there is "-" sign before gloc_sc @@ -129,15 +148,16 @@ c there is "-" sign before gloc_sc & dtauangle(j,1,1,3) gcart(j,1)=gcart(j,1)+gloc_sc(1,0,icg)* & dtauangle(j,1,2,3) - if (itype(2).ne.10) then + if ((itype(2).ne.10).and.(itype(2).ne.21)) then gxcart(j,1)= gxcart(j,1) & -gloc_sc(3,0,icg)*dtauangle(j,3,1,3) gcart(j,1)=gcart(j,1)+gloc_sc(3,0,icg)* - dtauangle(j,3,2,3) + & dtauangle(j,3,2,3) endif enddo endif - if (nres.ge.3).and.(itype(3).ne.10) then + if ((nres.ge.3).and.(itype(3).ne.10).and.(itype(3).ne.21)) + & then do j=1,3 gcart(j,1)=gcart(j,1)+gloc_sc(2,1,icg)*dtauangle(j,2,1,4) enddo @@ -148,36 +168,51 @@ c & +gloc_sc(intertyp,nres-2,icg)*dtheta(j,1,3) c Calculating the remainder of dE/ddc2 do j=1,3 - if(itype(2).ne.10) then - if (itype(1).ne.10) gxcart=(j,2)=gxcart(j,2)+ + if((itype(2).ne.10).and.(itype(2).ne.21)) then + if (itype(1).ne.10) gxcart(j,2)=gxcart(j,2)+ & gloc_sc(3,0,icg)*dtauangle(j,3,3,3) - if ((itype(3).ne.10).and.(nres.ge.3)) then + if ((itype(3).ne.10).and.(nres.ge.3).and.(itype(3).ne.21)) then gxcart(j,2)=gxcart(j,2)-gloc_sc(3,1,icg)*dtauangle(j,3,1,4) cc the - above is due to different vector direction gcart(j,2)=gcart(j,2)+gloc_sc(3,1,icg)*dtauangle(j,3,2,4) endif if (nres.gt.3) then - gxcart(j,2)=gxcart(j,2)-gloc_sc(2,1,icg)*dtauangle(j,1,1,4) + gxcart(j,2)=gxcart(j,2)-gloc_sc(1,1,icg)*dtauangle(j,1,1,4) cc the - above is due to different vector direction - gcart(j,2)=gcart(j,2)+gloc_sc(2,1,icg)*dtauangle(j,1,2,4) + gcart(j,2)=gcart(j,2)+gloc_sc(1,1,icg)*dtauangle(j,1,2,4) +c write(iout,*) gloc_sc(1,1,icg),dtauangle(j,1,2,4),"gcart" +c write(iout,*) gloc_sc(1,1,icg),dtauangle(j,1,1,4),"gx" endif endif - if (itype(1).ne.10) then + if ((itype(1).ne.10).and.(itype(1).ne.21)) then gcart(j,2)=gcart(j,2)+gloc_sc(1,0,icg)*dtauangle(j,1,3,3) +c write(iout,*) gloc_sc(1,0,icg),dtauangle(j,1,3,3) endif - if ((itype(3).ne.10).and(nres.ge.3)) then + if ((itype(3).ne.10).and.(nres.ge.3)) then gcart(j,2)=gcart(j,2)+gloc_sc(2,1,icg)*dtauangle(j,2,2,4) +c write(iout,*) gloc_sc(2,1,icg),dtauangle(j,2,2,4) + endif + if ((itype(4).ne.10).and.(nres.ge.4)) then + gcart(j,2)=gcart(j,2)+gloc_sc(2,2,icg)*dtauangle(j,2,1,5) +c write(iout,*) gloc_sc(2,2,icg),dtauangle(j,2,1,5) endif + +c write(iout,*) gcart(j,2),itype(2),itype(1),itype(3), "gcart2" + enddo c If there are more than five residues if(nres.ge.5) then do i=3,nres-2 do j=1,3 +c write(iout,*) "before", gcart(j,i) if (itype(i).ne.10) then gxcart(j,i)=gxcart(j,i)+gloc_sc(2,i-2,icg) & *dtauangle(j,2,3,i+1) - & -gloc_sc(1,i-1,icg)*dtauangle(j,1,1i+2) - gcart(j,i)=gcart(j,i)+gloc_sc(1,i-1,icg)* + & -gloc_sc(1,i-1,icg)*dtauangle(j,1,1,i+2) + gcart(j,i)=gcart(j,i)+gloc_sc(1,i-1,icg) & *dtauangle(j,1,2,i+2) +c write(iout,*) "new",j,i, +c & gcart(j,i),gloc_sc(1,i-1,icg),dtauangle(j,1,2,i+2) + if (itype(i-1).ne.10) then gxcart(j,i)=gxcart(j,i)+gloc_sc(3,i-2,icg) &*dtauangle(j,3,3,i+1) @@ -196,6 +231,8 @@ c If there are more than five residues if (itype(i+1).ne.10) then gcart(j,i)=gcart(j,i)+gloc_sc(2,i-1,icg)* & dtauangle(j,2,2,i+2) +c write(iout,*) "numer",i,gloc_sc(2,i-1,icg), +c & dtauangle(j,2,2,i+2) endif if (itype(i+2).ne.10) then gcart(j,i)=gcart(j,i)+gloc_sc(2,i,icg)* @@ -207,37 +244,42 @@ c If there are more than five residues c Setting dE/ddnres-1 if(nres.ge.4) then do j=1,3 - if (itype(nres-1).ne.10) then + if ((itype(nres-1).ne.10).and.(itype(nres-1).ne.21)) then gxcart(j,nres-1)=gxcart(j,nres-1)+gloc_sc(2,nres-3,icg) & *dtauangle(j,2,3,nres) +c write (iout,*) "gxcart(nres-1)", gloc_sc(2,nres-3,icg), +c & dtauangle(j,2,3,nres), gxcart(j,nres-1) if (itype(nres-2).ne.10) then gxcart(j,nres-1)=gxcart(j,nres-1)+gloc_sc(3,nres-3,icg) & *dtauangle(j,3,3,nres) endif - if (itype(nres).ne.10) then + if ((itype(nres).ne.10).and.(itype(nres).ne.21)) then gxcart(j,nres-1)=gxcart(j,nres-1)-gloc_sc(3,nres-2,icg) & *dtauangle(j,3,1,nres+1) gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(3,nres-2,icg) & *dtauangle(j,3,2,nres+1) endif endif - if (itype(nres-2).ne.10) then - gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(2,nres-3,icg)* - & *dtauangle(j,2,3,nres) + if ((itype(nres-2).ne.10).and.(itype(nres-2).ne.21)) then + gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(1,nres-3,icg)* + & dtauangle(j,1,3,nres) endif - if (itype(nres).ne.10) then + if ((itype(nres).ne.10).and.(itype(nres).ne.21)) then gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(2,nres-2,icg)* - *dtauangle(j,2,2,nres+1) + & dtauangle(j,2,2,nres+1) +c write (iout,*) "gcart(nres-1)", gloc_sc(2,nres-2,icg), +c & dtauangle(j,2,2,nres+1), itype(nres-1),itype(nres) endif enddo endif c Settind dE/ddnres - if (nres.ge.3).and(itype(nres).ne.10)then + if ((nres.ge.3).and.(itype(nres).ne.10))then do j=1,3 gxcart(j,nres)=gxcart(j,nres)+gloc_sc(3,nres-2,icg) & *dtauangle(j,3,3,nres+1)+gloc_sc(2,nres-2,icg) & *dtauangle(j,2,3,nres+1) enddo + endif c The side-chain vector derivatives return end