5D update
[unres.git] / source / unres / src-HCD-5D / stochfric.F
index dc0b088..b8069d9 100644 (file)
@@ -79,19 +79,25 @@ c     &       " n",n," iposc",iposc,iposc+n-1
             endif
           enddo
 #ifdef DEBUG
-          write (iout,*) "vvec ind",ind
+          write (iout,*) "vvec ind",ind," n",n
           write (iout,'(f10.5)') (vvec(i),i=iposc,ind)
 #endif
 c          write (iout,*) "chain",i," ind",ind," n",n
           call fivediagmult(n,DMfric(iposc),DU1fric(iposc),
-     &     DU2fric(iposc),vvec,rs)
+     &     DU2fric(iposc),vvec(iposc),rs)
+#ifdef DEBUG
+          write (iout,*) "rs"
+          write (iout,'(f10.5)') (rs(i),i=1,n)
+#endif
           do i=iposc,iposc+n-1
-            fric_work(3*(i-1)+j)=-rs(i)
+c            write (iout,*) "ichain",ichain," i",i," j",j,
+c     &       "index",3*(i-1)+j,"rs",rs(i-iposc+1)
+            fric_work(3*(i-1)+j)=-rs(i-iposc+1)
           enddo  
         enddo
       enddo
 #ifdef DEBUG
-      write (iout,*) "Vector fric_work"
+      write (iout,*) "Vector fric_work dimen3",dimen3
       write (iout,'(3f10.5)') (fric_work(j),j=1,dimen3)
 #endif
 #else
@@ -282,6 +288,9 @@ c-----------------------------------------------------
 #endif
 c Compute the stochastic forces acting on bodies. Store in force.
       do i=nnt,nct-1
+#ifdef FIVEDIAG
+        if (itype(i).eq.ntyp1 .or. itype(i+1).eq.ntyp1) cycle
+#endif
         sig=stdforcp(i)
         lowb=-5*sig
         highb=5*sig
@@ -417,7 +426,6 @@ c Compute the stochastic forces acting on virtual-bond vectors.
           ind=ind+3
         endif
       enddo
-#endif
       if (lprn) then
         write (iout,*) "stochforcvec"
         do i=1,3*dimen
@@ -468,8 +476,8 @@ c Compute the stochastic forces acting on virtual-bond vectors.
         enddo
         ind=ind+3
       enddo
-
       endif
+#endif
       return
       end
 c------------------------------------------------------------------
@@ -510,7 +518,7 @@ c      save licznik
       integer IERROR
       integer i,j,k,l,ind,ind1,m,ii,iti,it,nzero,innt,inct
       integer ichain,nind
-      logical lprn /.false./
+      logical lprn /.true./
       double precision dtdi,gamvec(MAXRES2)
       common /syfek/ gamvec
 #ifndef FIVEDIAG
@@ -542,8 +550,8 @@ C      gamsc(ntyp1)=1.0d0
       enddo
       if (surfarea) call sdarea(gamvec)
       if (lprn) then
-        write (iout,*) "Vector gamvec"
-        do i=1,dimen1
+        write (iout,*) "Vector gamvec ii",ii
+        do i=1,ii
           write (iout,'(i5,f10.5)') i, gamvec(i)
         enddo
       endif