By Adam
[unres.git] / source / unres / src_MD / minimize_p.F
index 1de3824..da97f60 100644 (file)
@@ -17,6 +17,7 @@
       include 'COMMON.VAR'
       include 'COMMON.GEO'
       include 'COMMON.MINIM'
+      include 'COMMON.CONTROL'
       common /srutu/ icall
       dimension iv(liv)                                               
       double precision minval,x(maxvar),d(maxvar),v(1:lv),xx(maxvar)
@@ -44,14 +45,14 @@ c     DO WHILE (NOT_DONE)
 * controls output                                                       
       iv(19)=2                                                          
 * selects output unit                                                   
-c     iv(21)=iout                                                       
       iv(21)=0
+      if (print_min_ini+print_min_stat+print_min_res.gt.0) iv(21)=iout
 * 1 means to print out result                                           
-      iv(22)=0                                                          
+      iv(22)=print_min_res
 * 1 means to print out summary stats                                    
-      iv(23)=0                                                          
+      iv(23)=print_min_stat
 * 1 means to print initial x and d                                      
-      iv(24)=0                                                          
+      iv(24)=print_min_ini
 * min val for v(radfac) default is 0.1                                  
       v(24)=0.1D0                                                       
 * max val for v(radfac) default is 4.0                                  
@@ -83,6 +84,8 @@ c     call var_to_geom(nvar,x)
 c     call chainbuild
 c     call etotal(energia(0))
 c     etot = energia(0)
+c      icheckgrad=3
+c      call exec_checkgrad
       IF (mask_r) THEN
        call x2xx(x,xx,nvar_restr)
        call sumsl(nvar_restr,d,xx,func_restr,grad_restr,
@@ -91,6 +94,8 @@ c     etot = energia(0)
       ELSE
        call sumsl(nvar,d,x,func,gradient,iv,liv,lv,v,idum,rdum,fdum)      
       ENDIF
+c      icheckgrad=3
+c      call exec_checkgrad
       etot=v(10)                                                      
       iretcode=iv(1)
 cd    print *,'Exit SUMSL; return code:',iretcode,' energy:',etot
@@ -435,14 +440,14 @@ c      common /przechowalnia/ v
 * controls output                                                       
       iv(19)=2                                                          
 * selects output unit                                                   
-c     iv(21)=iout                                                       
-       iv(21)=0
+      iv(21)=0
+      if (print_min_ini+print_min_stat+print_min_res.gt.0) iv(21)=iout 
 * 1 means to print out result                                           
-      iv(22)=0                                                         
+      iv(22)=print_min_res
 * 1 means to print out summary stats                                    
-      iv(23)=0                                                          
+      iv(23)=print_min_stat
 * 1 means to print initial x and d                                      
-      iv(24)=0                                                         
+      iv(24)=print_min_ini
 * min val for v(radfac) default is 0.1                                  
       v(24)=0.1D0                                                       
 * max val for v(radfac) default is 4.0                                  
@@ -482,6 +487,9 @@ c     v(25)=4.0D0
         enddo
         endif
       enddo
+      print *,"check_ecart before sumsl"
+c      icheckgrad=2
+c      call exec_checkgrad
 
       call sumsl(k,d,x,func_dc,grad_dc,iv,liv,lv,v,idum,rdum,fdum)      
 
@@ -517,6 +525,9 @@ cd      enddo
       etot=v(10)                                                      
       iretcode=iv(1)
       nfun=iv(6)
+      print *,"check_ecart"
+c      icheckgrad=2
+c      call exec_checkgrad
       return  
       end