********> bugfix.53 Correction Author: David A. Pearlman Correction Date: 11/30/92 Programs: SANDER Severity: Slight Problem: If a minimization fails because of repeated LINMIN (line search) failures, or because the time limit for the run is exceeded, the final energy will not be printed, nor will the final list of restraint violations (if restraints have been defined and LISTOUT= has been specified). Affects: This potentially valuable information will not be reported. Cause: The appropriate calls were being skipped when the program terminated due to the above conditions. Fix: Make the following change to routine RUNMIN ---To routine RUNMIN in file runmin.f ----------------------------------------- *** OLD runmin.f --- NEW runmin.f *************** *** 103,108 **** --- 103,110 ---- FOLD = 0.0D0 DXST = DX0 LINMIN = 0 + ITMOUT = 0 + ILMNFL = 0 c c --- dac change 2/90: support bscale parameters: c *************** *** 181,187 **** call closc(7) CALL MINRIT(NPM,NRP,NRES,X,IGRAPH,LBRES,IPRES) CALL TIMIT(1,SKIP,6) ! IF(SKIP) GO TO 980 C C ----- DO SOME STEEPEST STEP BEFORE ENTERING THE CONJUGATE C GRADIENT METHOD ----- --- 183,192 ---- call closc(7) CALL MINRIT(NPM,NRP,NRES,X,IGRAPH,LBRES,IPRES) CALL TIMIT(1,SKIP,6) ! IF(SKIP) THEN ! ITMOUT = 1 ! GO TO 940 ! ENDIF C C ----- DO SOME STEEPEST STEP BEFORE ENTERING THE CONJUGATE C GRADIENT METHOD ----- *************** *** 420,426 **** X(I) = W(IXOPT+I) 175 FG(I) = W(IGOPT+I) 180 CONTINUE ! IF(LINMIN.GT.4) GO TO 990 IF(STEEP) GO TO 5 IF(IER.EQ.0) GO TO 125 900 CONTINUE --- 425,434 ---- X(I) = W(IXOPT+I) 175 FG(I) = W(IGOPT+I) 180 CONTINUE ! IF (LINMIN.GT.4) THEN ! ILMNFL = 1 ! GO TO 940 ! ENDIF IF(STEEP) GO TO 5 IF(IER.EQ.0) GO TO 125 900 CONTINUE *************** *** 453,464 **** * XX(L20),NTB,XX(LNMR01),IX(INMR02),6) END IF call closc(7) ! RETURN ! 980 CONTINUE ! WRITE(6,9068) ! RETURN ! 990 CONTINUE ! WRITE(6,9408) RETURN 9018 FORMAT(' LINE SEARCH ABANDONED ... PROBLEM WITH G') 9028 FORMAT(' SEARCH DIRECTION IS UPHILL ') --- 461,468 ---- * XX(L20),NTB,XX(LNMR01),IX(INMR02),6) END IF call closc(7) ! IF (ITMOUT.EQ.1) WRITE(6,9068) ! IF (ILMNFL.EQ.1) WRITE(6,9408) RETURN 9018 FORMAT(' LINE SEARCH ABANDONED ... PROBLEM WITH G') 9028 FORMAT(' SEARCH DIRECTION IS UPHILL ') ------------------------------------------------------------------------------ Temporary workarounds: You can use the output coordinates from a minimization simulation that ended with one of the above conditions in a subsequent one step minimization run. Such a run will be short enough that neither the timeout nor the maximum LINMIN failure flags will be triggered. Routines affected: SANDER Routine RUNMIN in file ...amber4/src/sander/runmin.f --