gfortran segmentation fault checkgrad cart
[unres.git] / source / unres / src_MD / unres.F
index 067f4d8..b8dd5ec 100644 (file)
@@ -52,7 +52,7 @@ c      call memmon_print_usage()
 
       call init_task
       if (me.eq.king)
-     & write(iout,*)'### LAST MODIFIED  11/03/09 1:19PM by czarek'  
+     & write(iout,*)'### LAST MODIFIED  03/28/12 23:29 by czarek'  
       if (me.eq.king) call cinfo
 C Read force field parameters and job setup data
       call readrtns
@@ -190,6 +190,7 @@ c---------------------------------------------------------------------------
       common /srutu/ icall
       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
 #ifdef MPI
       time00=MPI_Wtime()
@@ -247,6 +248,7 @@ crc overlap test
           time1=tcpu()
 #endif
           call minim_dc(etot,iretcode,nfun)
+          if(iretcode.eq.8) call check_ecartint
         else
           if (indpdb.ne.0) then 
             call bond_regular
@@ -396,7 +398,7 @@ c---------------------------------------------------------------------------
       include 'COMMON.SBRIDGE'
       double precision varia(maxvar)
       dimension ind(6)
-      double precision energy(0:max_ene)
+      double precision energy(0:n_ene)
       logical eof
       eof=.false.
 #ifdef MPI
@@ -407,14 +409,14 @@ c---------------------------------------------------------------------------
 
       close (intin)
       open(intin,file=intinname,status='old')
-      write (istat,'(a5,20a12)')"#    ",
+      write (istat,'(a5,30a12)')"#    ",
      &  (wname(print_order(i)),i=1,nprint_ene)
       if (refstr) then
-        write (istat,'(a5,20a12)')"#    ",
+        write (istat,'(a5,30a12)')"#    ",
      &   (ename(print_order(i)),i=1,nprint_ene),
-     &   "ETOT total","RMSD","nat.contact","nnt.contact"        
+     &   "ETOT total","RMSD","nat.contact","nnt.contact","cont.order"
       else
-        write (istat,'(a5,20a12)')"#    ",
+        write (istat,'(a5,30a12)')"#    ",
      &    (ename(print_order(i)),i=1,nprint_ene),"ETOT total"
       endif
 
@@ -442,12 +444,12 @@ c Broadcast the order to compute internal coordinates to the slaves.
           etot=energy(0)
           if (refstr) then 
             call rms_nac_nnc(rms,frac,frac_nn,co,.true.)
-            write (istat,'(i5,20(f12.3))') iconf,
+            write (istat,'(i5,30(f12.3))') iconf,
      &      (energy(print_order(i)),i=1,nprint_ene),etot,
      &       rms,frac,frac_nn,co
 cjlee end
           else
-            write (istat,'(i5,16(f12.3))') iconf,
+            write (istat,'(i5,30(f12.3))') iconf,
      &     (energy(print_order(i)),i=1,nprint_ene),etot
           endif
         enddo
@@ -480,8 +482,9 @@ c Broadcast the order to compute internal coordinates to the slaves.
             call geom_to_var(nvar,varia)
             call chainbuild
           endif
-          write (iout,'(a,i7)') 'Conformation #',iconf
+
           n=n+1
+          write (iout,*) 'Conformation #',iconf,' read'
          imm=imm+1
          ind(1)=1
          ind(2)=n
@@ -518,7 +521,8 @@ c         print *,'result received from worker ',man,' sending now'
           iconf=ind(2)
           write (iout,*)
           write (iout,*)
-          write (iout,'(a,2i7)') 'Conformation #',iconf,ind(5)
+          write (iout,*) 'Conformation #',iconf," sumsl return code ",
+     &                      ind(5)
 
           etot=energy(0)
           call enerprint(energy(0))
@@ -526,17 +530,17 @@ c         print *,'result received from worker ',man,' sending now'
 c          if (minim) call briefout(it,etot)
           if (refstr) then 
             call rms_nac_nnc(rms,frac,frac_nn,co,.true.)
-            write (istat,'(i5,19(f12.3))') iconf,
+            write (istat,'(i5,30(f12.3))') iconf,
      &     (energy(print_order(i)),i=1,nprint_ene),etot,
      &     rms,frac,frac_nn,co
           else
-            write (istat,'(i5,15(f12.3))') iconf,
+            write (istat,'(i5,30(f12.3))') iconf,
      &     (energy(print_order(i)),i=1,nprint_ene),etot
           endif
 
           imm=imm-1
           if (read_cart) then
-            read (intin,'(e15.10,e15.5)',end=1101,err=1101) 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.
@@ -545,12 +549,13 @@ c Broadcast the order to compute internal coordinates to the slaves.
 #endif
             call int_from_cart1(.false.)
           else
-            read (intin,'(i5)',end=1101,err=1101) iconf
+            read (intin,'(i5)',end=11,err=11) iconf
             call read_angles(intin,*11)
             call geom_to_var(nvar,varia)
             call chainbuild
           endif
           n=n+1
+          write (iout,*) 'Conformation #',iconf,' read'
           imm=imm+1
           ind(1)=1
           ind(2)=n
@@ -588,18 +593,19 @@ c Broadcast the order to compute internal coordinates to the slaves.
         iconf=ind(2)
         write (iout,*)
         write (iout,*)
-        write (iout,'(a,2i7)') 'Conformation #',iconf,ind(5)
+        write (iout,*) 'Conformation #',iconf," sumsl return code ",
+     &                  ind(5)
 
         etot=energy(0)
         call enerprint(energy(0))
         call briefout(it,etot)
         if (refstr) then 
           call rms_nac_nnc(rms,frac,frac_nn,co,.true.)
-          write (istat,'(i5,19(f12.3))') iconf,
+          write (istat,'(i5,30(f12.3))') iconf,
      &   (energy(print_order(i)),i=1,nprint_ene),etot,
      &   rms,frac,frac_nn,co
         else
-          write (istat,'(i5,15(f12.3))') iconf,
+          write (istat,'(i5,30(f12.3))') iconf,
      &    (energy(print_order(i)),i=1,nprint_ene),etot
         endif
         nmin=nmin+1
@@ -692,7 +698,7 @@ c---------------------------------------------------------------------------
       include 'COMMON.MD'
       include 'COMMON.SBRIDGE'
       common /srutu/ icall
-      double precision energy(0:max_ene)
+      double precision energy(0:n_ene)
 c      do i=2,nres
 c        vbld(i)=vbld(i)+ran_number(-0.1d0,0.1d0)
 c        if (itype(i).ne.10) 
@@ -731,6 +737,7 @@ c      enddo
       print *,'icheckgrad=',icheckgrad
       goto (10,20,30) icheckgrad
   10  call check_ecartint
+      call check_ecartint
       return
   20  call check_cartgrad
       return
@@ -754,9 +761,11 @@ c---------------------------------------------------------------------------
 C Conformational Space Annealling programmed by Jooyoung Lee.
 C This method works only with parallel machines!
 #ifdef MPI
-      call together
+csa      call together
+      write (iout,*) "CSA is not supported in this version"
 #else
-      write (iout,*) "CSA works on parallel machines only"
+csa      write (iout,*) "CSA works on parallel machines only"
+      write (iout,*) "CSA is not supported in this version"
 #endif
       return
       end
@@ -766,7 +775,7 @@ c---------------------------------------------------------------------------
       include 'DIMENSIONS'
       include 'COMMON.IOUNITS'
       include 'COMMON.CONTROL'
-      double precision energy(0:max_ene)
+      double precision energy(0:n_ene)
       logical debug /.false./
       call chainbuild
       call etotal(energy(0))