********> bugfix.37 Correction Author: David A. Pearlman Correction Date: 3/10/92 Programs: SANDER Severity: moderate Problem: When using time-averaged restraints, if you explicitly set the characteristic time for exponential decay (VALUE1) to 0.0, this value will not default to a very large value. The manual claims this will be the default used when VALUE1 is set to 0.0. (Such a large value would result in no exponential decay weighting). Instead, a value of 1.0D-7 will be used, which will result in precipitous exponential decay. If VALUE1 is not specified in the &wt namelist where TYPE=(DISAVE, ANGAVE or TORAVE), or if VALUE1 is explicitly set to any non-0 value, the program will work correctly. In a formatted style weight change line with TYPE=(DISAVE, ANGAVE or TORAVE) one *must* set VALUE1 to a non-zero value. Affects: The md trajectory may become unstable. Alternatively, you may observe that the restraint violations appear to be increasing (or at least not decreasing) as the simulation progresses. Cause: The default value was not being set in accordence with the manual. Fix: Make the following change ***To routine NMRRED in src/sander/nmrred.f: *** OLD nmrred.f --- NEW nmrred.f *************** *** 495,500 C IF (NEXACT(JDX).EQ.0) NEXACT(JDX) = MAX(IMULT,1) IF (IPOWER(JDX).EQ.0) IPOWER(JDX) = NINT(VALUE2) IMULT = 0 VALUE2 = VALUE1 END IF C --- 495,501 ----- C IF (NEXACT(JDX).EQ.0) NEXACT(JDX) = MAX(IMULT,1) IF (IPOWER(JDX).EQ.0) IPOWER(JDX) = NINT(VALUE2) IMULT = 0 + IF (VALUE1.LT.ZERNER) VALUE1 = 1.0D+7 VALUE2 = VALUE1 END IF C Temporary workarounds: If you want the to force no exponential decay weighting, set VALUE1 to a value .GE.1.0D+6. Routines affected: SANDER Routine NMRRED in .../amber4/sander/nmrred.f