critical change for outer field potential -debug off
[unres.git] / source / unres / src_MD-M / MREMD.F
index f29b6b5..fd83ca0 100644 (file)
@@ -304,8 +304,11 @@ c------------------------------------------------
 #endif
 c Determine the inverse of the inertia matrix.
       call setup_MD_matrices
+      write(iout,*), "TU", dc(1,0)
 c Initialize MD
       call init_MD
+      write(iout,*), "TU2", dc(1,0)
+
       if (rest) then  
        if (me.eq.king .or. .not. out1file)
      &  write (iout,'(a60,f10.5)') "REMD restart Temperature:",t_bath
@@ -572,10 +575,10 @@ C            call enerprint(remd_ene(0,i))
            endif
            open(irest2,file=rest2name,status='unknown')
            write(irest2,*) totT,EK,potE,totE,t_bath
-           do i=1,2*nres
+           do i=0,2*nres
             write (irest2,'(3e15.5)') (d_t(j,i),j=1,3)
            enddo
-           do i=1,2*nres
+           do i=0,2*nres
             write (irest2,'(3e15.5)') (dc(j,i),j=1,3)
            enddo
            if(usampl) then
@@ -1232,8 +1235,8 @@ c-----------------------------------------------------------------------
       include 'COMMON.SBRIDGE'
       include 'COMMON.INTERACT'
                
-      real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres),
-     &     d_restart2(3,2*maxres*maxprocs)
+      real d_restart1(3,0:2*(maxres)*maxprocs),r_d(3,0:2*maxres),
+     &     d_restart2(3,0:2*(maxres)*maxprocs)
       real t5_restart1(5)
       integer iret,itmp
       integer*2 i_index
@@ -1250,23 +1253,26 @@ c-----------------------------------------------------------------------
      &      t_restart1,5,mpi_real,king,CG_COMM,ierr)
 
 
-       do i=1,2*nres
+       do i=0,2*nres
          do j=1,3
            r_d(j,i)=d_t(j,i)
          enddo
        enddo
-       call mpi_gather(r_d,3*2*nres,mpi_real,
-     &           d_restart1,3*2*nres,mpi_real,king,
+       call mpi_gather(r_d,3*2*(nres+1),mpi_real,
+     &           d_restart1,3*2*(nres+1),mpi_real,king,
      &           CG_COMM,ierr)
 
-
-       do i=1,2*nres
+C       write (*,*) dc(j,0),"TU3"
+       do j=1,3
+       dc(j,0)=c(j,1)
+       enddo
+       do i=0,2*nres
          do j=1,3
            r_d(j,i)=dc(j,i)
          enddo
        enddo
-       call mpi_gather(r_d,3*2*nres,mpi_real,
-     &           d_restart2,3*2*nres,mpi_real,king,
+       call mpi_gather(r_d,3*2*(nres+1),mpi_real,
+     &           d_restart2,3*2*(nres+1),mpi_real,king,
      &           CG_COMM,ierr)
 
        if(me.eq.king) then
@@ -1295,16 +1301,18 @@ c-----------------------------------------------------------------------
          enddo
 
          do il=0,nodes-1
-           do i=1,2*nres
+           do i=0,2*nres
             do j=1,3
-             call xdrffloat_(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call 
+     &      xdrffloat_(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
             enddo
            enddo
          enddo
          do il=0,nodes-1
-           do i=1,2*nres
+           do i=0,2*nres
             do j=1,3
-             call xdrffloat_(ixdrf, d_restart2(j,i+2*nres*il), iret)
+             call 
+     & xdrffloat_(ixdrf, d_restart2(j,i+2*(nres+1)*il), iret)
             enddo
            enddo
          enddo
@@ -1355,16 +1363,18 @@ c-----------------------------------------------------------------------
          enddo
 
          do il=0,nodes-1
-           do i=1,2*nres
+           do i=0,2*nres
             do j=1,3
-             call xdrffloat(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call 
+     &    xdrffloat(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
             enddo
            enddo
          enddo
          do il=0,nodes-1
-           do i=1,2*nres
+           do i=0,2*nres
             do j=1,3
-             call xdrffloat(ixdrf, d_restart2(j,i+2*nres*il), iret)
+             call
+     &  xdrffloat(ixdrf, d_restart2(j,i+2*(nres+1)*il), iret)
             enddo
            enddo
          enddo
@@ -1631,7 +1641,7 @@ c end debugging
       include 'COMMON.CHAIN'
       include 'COMMON.SBRIDGE'
       include 'COMMON.INTERACT'
-      real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres),
+      real d_restart1(3,0:2*(maxres)*maxprocs),r_d(3,0:2*(maxres)),
      &                 t5_restart1(5)
       integer*2 i_index
      &            (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200)
@@ -1707,45 +1717,47 @@ c end debugging
 
          if(me.eq.king)then
               do il=0,nodes-1
-               do i=1,2*nres
+               do i=0,2*nres
 c                read(irest2,'(3e15.5)') 
 c     &                (d_restart1(j,i+2*nres*il),j=1,3)
             do j=1,3
 #ifdef AIX
-             call xdrffloat_(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call xdrffloat_(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
 #else
-             call xdrffloat(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call xdrffloat(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
 #endif
             enddo
                enddo
               enddo
          endif
-         call mpi_scatter(d_restart1,3*2*nres,mpi_real,
-     &           r_d,3*2*nres,mpi_real,king,CG_COMM,ierr)
+         call mpi_scatter(d_restart1,3*2*(nres+1),mpi_real,
+     &           r_d,3*2*(nres+1),mpi_real,king,CG_COMM,ierr)
 
-         do i=1,2*nres
+         do i=0,2*nres
            do j=1,3
             d_t(j,i)=r_d(j,i)
            enddo
          enddo
          if(me.eq.king)then 
               do il=0,nodes-1
-               do i=1,2*nres
+               do i=0,2*nres
 c                read(irest2,'(3e15.5)') 
 c     &                (d_restart1(j,i+2*nres*il),j=1,3)
             do j=1,3
 #ifdef AIX
-             call xdrffloat_(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call 
+     &   xdrffloat_(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
 #else
-             call xdrffloat(ixdrf, d_restart1(j,i+2*nres*il), iret)
+             call 
+     &   xdrffloat(ixdrf, d_restart1(j,i+2*(nres+1)*il), iret)
 #endif
             enddo
                enddo
               enddo
          endif
-         call mpi_scatter(d_restart1,3*2*nres,mpi_real,
-     &           r_d,3*2*nres,mpi_real,king,CG_COMM,ierr)
-         do i=1,2*nres
+         call mpi_scatter(d_restart1,3*2*(nres+1),mpi_real,
+     &           r_d,3*2*(nres+1),mpi_real,king,CG_COMM,ierr)
+         do i=0,2*nres
            do j=1,3
             dc(j,i)=r_d(j,i)
            enddo
@@ -1816,7 +1828,7 @@ c     &                (d_restart1(j,i+2*nres*il),j=1,3)
       include 'COMMON.CHAIN'
       include 'COMMON.SBRIDGE'
       include 'COMMON.INTERACT'
-      real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres),
+      real d_restart1(3,0:2*maxres*maxprocs),r_d(3,0:2*maxres),
      &                 t5_restart1(5)
       common /przechowalnia/ d_restart1
          if(me.eq.king)then
@@ -1841,31 +1853,31 @@ c     &                (d_restart1(j,i+2*nres*il),j=1,3)
 
          if(me.eq.king)then
               do il=0,nodes-1
-               do i=1,2*nres
+               do i=0,2*nres
                 read(irest2,'(3e15.5)') 
-     &                (d_restart1(j,i+2*nres*il),j=1,3)
+     &                (d_restart1(j,i+2*(nres+1)*il),j=1,3)
                enddo
               enddo
          endif
-         call mpi_scatter(d_restart1,3*2*nres,mpi_real,
-     &           r_d,3*2*nres,mpi_real,king,CG_COMM,ierr)
+         call mpi_scatter(d_restart1,3*2*(nres+1),mpi_real,
+     &           r_d,3*2*(nres+1),mpi_real,king,CG_COMM,ierr)
 
-         do i=1,2*nres
+         do i=0,2*nres
            do j=1,3
             d_t(j,i)=r_d(j,i)
            enddo
          enddo
          if(me.eq.king)then 
               do il=0,nodes-1
-               do i=1,2*nres
+               do i=0,2*nres
                 read(irest2,'(3e15.5)') 
-     &                (d_restart1(j,i+2*nres*il),j=1,3)
+     &                (d_restart1(j,i+2*(nres+1)*il),j=1,3)
                enddo
               enddo
          endif
-         call mpi_scatter(d_restart1,3*2*nres,mpi_real,
-     &           r_d,3*2*nres,mpi_real,king,CG_COMM,ierr)
-         do i=1,2*nres
+         call mpi_scatter(d_restart1,3*2*(nres+1),mpi_real,
+     &           r_d,3*2*(nres+1),mpi_real,king,CG_COMM,ierr)
+         do i=0,2*nres
            do j=1,3
             dc(j,i)=r_d(j,i)
            enddo