Merge branch 'devel' into AFM
[unres.git] / source / unres / src_MD-M / unres.F
index 83afd9f..f51b2d7 100644 (file)
@@ -56,7 +56,6 @@ c      call memmon_print_usage()
       if (me.eq.king) call cinfo
 C Read force field parameters and job setup data
       call readrtns
-      call flush(iout)
 C
       if (me.eq.king .or. .not. out1file) then
        write (iout,'(2a/)') 
@@ -103,7 +102,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
@@ -132,13 +136,20 @@ c--------------------------------------------------------------------------
       include 'COMMON.SETUP'
       include 'COMMON.CONTROL'
       include 'COMMON.IOUNITS'
-      if (me.eq.king .or. .not. out1file)
-     &   write (iout,*) "Calling chainbuild"
+c      if (me.eq.king .or. .not. out1file) then
+c        write (iout,*) "Calling chainbuild"
+c        call flush(iout)
+c      endif
       call chainbuild
+c      if (me.eq.king .or. .not. out1file) then
+c        write (iout,*) "Calling MD"
+c        call flush(iout)
+c      endif
       call MD
       return
       end
 c---------------------------------------------------------------------------
+#ifdef MPI
       subroutine exec_MREMD
       include 'DIMENSIONS'
 #ifdef MPI
@@ -163,6 +174,7 @@ c---------------------------------------------------------------------------
       endif
       return
       end
+#endif
 c---------------------------------------------------------------------------
       subroutine exec_eeval_or_minim
       implicit real*8 (a-h,o-z)
@@ -190,13 +202,17 @@ c---------------------------------------------------------------------------
       double precision energy_long(0:n_ene),energy_short(0:n_ene)
       double precision varia(maxvar)
       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
@@ -216,7 +232,11 @@ 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)
@@ -241,7 +261,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 
@@ -250,11 +274,19 @@ 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(.false.,nharp,iharp)
@@ -622,7 +654,7 @@ c Broadcast the order to compute internal coordinates to the slaves.
       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.
@@ -631,7 +663,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
@@ -682,6 +714,7 @@ c---------------------------------------------------------------------------
       include 'COMMON.SBRIDGE'
       common /srutu/ icall
       double precision energy(0:max_ene)
+      print *,"A TU?"
 c      do i=2,nres
 c        vbld(i)=vbld(i)+ran_number(-0.1d0,0.1d0)
 c        if (itype(i).ne.10) 
@@ -707,10 +740,14 @@ c      enddo
       totT=1.d0
       eq_time=0.0d0
       call read_fragments
+      print *, "AFTER read fragments"
       call chainbuild_cart
+      print *,"chainbuild_cart"
       call cartprint
+      print *,"After cartprint"
       call intout
       icall=1
+      print *,"before ETOT"
       call etotal(energy(0))
       etot = energy(0)
       call enerprint(energy(0))
@@ -718,6 +755,7 @@ c      enddo
       print *,'icheckgrad=',icheckgrad
       goto (10,20,30) icheckgrad
   10  call check_ecartint
+      call check_ecartint
       return
   20  call check_cartgrad
       return