gfortran segmentation fault checkgrad cart
[unres.git] / source / unres / src_MD / unres.F
index 053eec6..b8dd5ec 100644 (file)
@@ -248,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
@@ -397,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
@@ -408,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
 
@@ -443,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
@@ -481,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
@@ -519,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))
@@ -527,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.
@@ -546,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
@@ -589,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
@@ -693,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) 
@@ -732,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
@@ -769,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))