X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fintcartderiv.F;h=889bedd5417dabc72f4282c5ce79070a93a7b835;hb=83bfd1e75fe4d7f79f4ec4b52f17743cb16a1fb2;hp=20680315789a1560a42431f8abfbc812f323ee33;hpb=ba3b4257f01c3857bbae7927ed7815ab7f5419d6;p=unres.git diff --git a/source/unres/src_MD/intcartderiv.F b/source/unres/src_MD/intcartderiv.F index 2068031..889bedd 100644 --- 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 + 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,