update
[unres.git] / source / unres / src_MD-M / lagrangian_lesyng.F
index f9a48fc..024c6d1 100644 (file)
@@ -46,7 +46,7 @@ c-------------------------------------------------------------------------
       enddo
       if (lprn) write (iout,*) "Potential forces sidechain"
       do i=nnt,nct
-        if (itype(i).ne.10 .and. itype(i).ne.21) then
+        if (itype(i).ne.10 .and. itype(i).ne.ntyp1) then
           if (lprn) write (iout,'(i5,3e15.5,5x,3e15.5)') 
      &       i,(-gcart(j,i),j=1,3)
           do j=1,3
@@ -69,7 +69,7 @@ c-------------------------------------------------------------------------
         enddo
       enddo
       do i=nnt,nct
-        if (itype(i).ne.10 .and. itype(i).ne.21) then
+        if (itype(i).ne.10 .and. itype(i).ne.ntyp1) then
           do j=1,3
             ind=ind+1
             d_a(j,i+nres)=d_a_work(ind)
@@ -212,17 +212,17 @@ c  Diagonal elements of the dX part of A and the respective friction coefficient
       m1=nct-nnt+1
       ind=0
       ind1=0
-      msc(21)=1.0d0
+      msc(ntyp1)=1.0d0
       do i=nnt,nct
         ind=ind+1
         ii = ind+m
         iti=itype(i)
-        massvec(ii)=msc(iti)
-        if (iti.ne.10 .and. iti.ne.21) then
+        massvec(ii)=msc(iabs(iti))
+        if (iti.ne.10 .and. iti.ne.ntyp1) then
           ind1=ind1+1
           ii1= ind1+m1
           A(ii,ii1)=1.0d0
-          Gmat(ii1,ii1)=ISC(iti)
+          Gmat(ii1,ii1)=ISC(iabs(iti))
         endif
       enddo
 c  Off-diagonal elements of the dX part of A
@@ -476,7 +476,7 @@ c---------------------------------------------------------------------------
       include 'COMMON.TIME1'
       include 'COMMON.MD'
       double precision z(dimen3),d_a_tmp(dimen3),temp(maxres6),time00
-     &time01
+     &,time01,zcopy(dimen3)
 #ifdef MPI
       if (nfgtasks.gt.1) then
         if (fg_rank.eq.0) then
@@ -497,11 +497,12 @@ c        call MPI_Barrier(FG_COMM,IERROR)
         time00=MPI_Wtime()
         call MPI_Scatterv(z,ng_counts(0),ng_start(0),
      &    MPI_DOUBLE_PRECISION,
-     &    z,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
+     &    zcopy,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
 c        write (2,*) "My chunk of z"
-c        do i=1,3*my_ng_count
+        do i=1,3*my_ng_count
+          z(i)=zcopy(i)
 c          write (2,*) i,z(i)
-c        enddo
+        enddo
 c        write (2,*) "After SCATTERV"
 c        call flush(2)
 c        write (2,*) "MPI_Wtime",MPI_Wtime()
@@ -628,7 +629,7 @@ c---------------------------------------------------------------------------
       include 'COMMON.LANGEVIN.lang0'
 #endif
       double precision z(dimen3),d_a_tmp(dimen3),temp(maxres6),time00
-     &time01
+     &,time01,zcopy(dimen3)
 #ifdef MPI
       if (nfgtasks.gt.1) then
         if (fg_rank.eq.0) then
@@ -642,11 +643,12 @@ c        call MPI_Barrier(FG_COMM,IERROR)
         time00=MPI_Wtime()
         call MPI_Scatterv(z,ng_counts(0),ng_start(0),
      &    MPI_DOUBLE_PRECISION,
-     &    z,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
+     &    zcopy,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
 c        write (2,*) "My chunk of z"
-c        do i=1,3*my_ng_count
+        do i=1,3*my_ng_count
+          z(i)=zcopy(i)
 c          write (2,*) i,z(i)
-c        enddo
+        enddo
         time_scatter=time_scatter+MPI_Wtime()-time00
 #ifdef TIMING
         time_scatter_fmatmult=time_scatter_fmatmult+MPI_Wtime()-time00