********> bugfix.48 Author: Bill Ross Date: 23 Aug 1999 Programs: Leap Severity: Severe if you load a new parmset to modify explicit torsions in a previously-loaded parmset. Description: When loading multiple parmsets (parm.dat/frcmod files), if a term of a torsion with no wildcard atom types exists in two parmsets, the first one loaded is used, rather than the last. NOTE: this fix changes the behavior with respect to duplicate terms in the _same_ parmset; previously, the last instance was used, but now the first instance is used. (These rules will be rationalized in AMBER 6.) Fix: Make the following change to parmSet.c: ------------------------------------------------------------------------------- *** OLD parmSet.c --- NEW parmSet.c *** 447,463 i++, tmPCur++ ) { if ( tmPCur->tpTorsion.iN == tpPTorsion->iN ) { - /* If the torsion that we are supposed to be adding is */ - /* not a general torsion then replace the one that */ - /* was there, whether or not it is general. */ - if ( strcmp( tpPTorsion->sType1, WILD_CARD_TYPE ) != 0 ) { - if ( bUseIndex ) - tmPCur->iIndex = iIndex; - else - tmPCur->iIndex = PARM_NOT_FOUND; - tmPCur->tpTorsion = *tpPTorsion; - RETURN(PARM_FOUND_EXACT); - } RETURN(PARM_NOT_FOUND); } } --- 447,452 ----- i++, tmPCur++ ) { if ( tmPCur->tpTorsion.iN == tpPTorsion->iN ) { RETURN(PARM_NOT_FOUND); } } -------------------------------------------------------------------------------