correction in multichain
[unres.git] / source / unres / src_MD-M / unres.F
index 127056b..0aa6efd 100644 (file)
@@ -103,7 +103,12 @@ C Fine-grain slaves just do energy and gradient components.
       else if (modecalc.eq.12) then
         call exec_MD
       else if (modecalc.eq.14) then
+#ifdef MPI
         call exec_MREMD
+#else
+        write (iout,*) "Need a parallel version to run MREMD."
+        stop
+#endif
       else
         write (iout,'(a)') 'This calculation type is not supported',
      &   ModeCalc
@@ -139,6 +144,7 @@ c--------------------------------------------------------------------------
       return
       end
 c---------------------------------------------------------------------------
+#ifdef MPI
       subroutine exec_MREMD
       include 'DIMENSIONS'
 #ifdef MPI
@@ -163,6 +169,7 @@ c---------------------------------------------------------------------------
       endif
       return
       end
+#endif
 c---------------------------------------------------------------------------
       subroutine exec_eeval_or_minim
       implicit real*8 (a-h,o-z)
@@ -189,9 +196,21 @@ c---------------------------------------------------------------------------
       double precision energy(0:n_ene)
       double precision energy_long(0:n_ene),energy_short(0:n_ene)
       double precision varia(maxvar)
-      if (indpdb.eq.0) call chainbuild
+      if (indpdb.eq.0)     call chainbuild
       time00=MPI_Wtime()
+      print *,'dc',c(1,1)
+      if (indpdb.ne.0) then
+      dc(1,0)=c(1,1)
+      dc(2,0)=c(2,1)
+      dc(3,0)=c(3,1)
+      endif
+#ifdef MPI
+      time00=MPI_Wtime()
+#else
+      time00=tcpu()
+#endif
       call chainbuild_cart
+      print *,'dc',dc(1,0),dc(2,0),dc(3,0)
       if (split_ene) then
        print *,"Processor",myrank," after chainbuild"
        icall=1
@@ -209,14 +228,20 @@ c---------------------------------------------------------------------------
        call enerprint(energy(0))
       endif
       call etotal(energy(0))
+#ifdef MPI
       time_ene=MPI_Wtime()-time00
+#else 
+      time_ene=tcpu()-time00
+#endif
       write (iout,*) "Time for energy evaluation",time_ene
       print *,"after etotal"
       etota = energy(0)
       etot =etota
       call enerprint(energy(0))
       call hairpin(.true.,nharp,iharp)
+        print *,'after hairpin'
       call secondary2(.true.)
+        print *,'after secondary'
       if (minim) then
 crc overlap test
         if (overlapsc) then 
@@ -232,7 +257,11 @@ crc overlap test
 
         if (dccart) then
           print *, 'Calling MINIM_DC'
+#ifdef MPI
           time1=MPI_WTIME()
+#else
+          time1=tcpu()
+#endif
           call minim_dc(etot,iretcode,nfun)
         else
           if (indpdb.ne.0) then 
@@ -241,15 +270,25 @@ crc overlap test
           endif
           call geom_to_var(nvar,varia)
           print *,'Calling MINIMIZE.'
+#ifdef MPI
           time1=MPI_WTIME()
+#else
+          time1=tcpu()
+#endif
           call minimize(etot,varia,iretcode,nfun)
         endif
         print *,'SUMSL return code is',iretcode,' eval ',nfun
+#ifdef MPI
         evals=nfun/(MPI_WTIME()-time1)
+#else
+        evals=nfun/(tcpu()-time1)
+#endif
         print *,'# eval/s',evals
         print *,'refstr=',refstr
-        call hairpin(.true.,nharp,iharp)
+        call hairpin(.false.,nharp,iharp)
+        print *,'after hairpin'
         call secondary2(.true.)
+        print *,'after secondary'
         call etotal(energy(0))
         etot = energy(0)
         call enerprint(energy(0))
@@ -600,18 +639,18 @@ c Broadcast the order to compute internal coordinates to the slaves.
       write (istat,'(a5,20a12)')"#    ",
      &   (wname(print_order(i)),i=1,nprint_ene)
       write (istat,'("#    ",20(1pe12.4))')
-         (weights(print_order(i)),i=1,nprint_ene)
+     &   (weights(print_order(i)),i=1,nprint_ene)
       if (refstr) then
         write (istat,'(a5,20a12)')"#    ",
      &   (ename(print_order(i)),i=1,nprint_ene),
-     &   ,"ETOT total","RMSD","nat.contact","nnt.contact"
+     &   "ETOT total","RMSD","nat.contact","nnt.contact"
       else
         write (istat,'(a5,14a12)')"#    ",
      &   (ename(print_order(i)),i=1,nprint_ene),"ETOT total"
       endif
       do while (.not. eof)
           if (read_cart) then
-            read (intin,'(e15.10,e15.5)',end=1100,err=1100) time,ene
+            read (intin,'(e15.10,e15.5)',end=11,err=11) time,ene
             call read_x(intin,*11)
 #ifdef MPI
 c Broadcast the order to compute internal coordinates to the slaves.
@@ -620,7 +659,7 @@ c Broadcast the order to compute internal coordinates to the slaves.
 #endif
             call int_from_cart1(.false.)
           else
-            read (intin,'(i5)',end=1100,err=1100) iconf
+            read (intin,'(i5)',end=11,err=11) iconf
             call read_angles(intin,*11)
             call geom_to_var(nvar,varia)
             call chainbuild