AMBER: Re: apparent PMEMD bug -- NTWPRT > 0 & IWRAP = 1

From: Robert Duke <>
Date: Mon, 25 Aug 2003 15:20:48 -0400

Amber Folks -

This is a response for the general Amber community to a pmemd bug report by
Jed Pitera of IBM (see his mail below). Many thanks to Jed for reporting
the problem (segmentation fault if iwrap .gt. 0 and ntwprt or ntwpr0 .gt.
0). It is fairly easy to work around, and the fix hits several files, so I
will release the fix as part of the 3.02 update instead of attempting to
cover it by listing diff's here. If anyone else has any suspect pmemd bugs,
now is a great time to let me take a shot at fixing them, and I will get it
all released as part of 3.02, presumably in about a week. I have sent Jed a
source drop of the fix, and confirmed the fix against test cases he
Regards - Bob

Jed -
I confirm the bug you report below, have done a generic fix, and will post
the fix to the amber community as part of update 3.02 soon. Several notes

NTWPRT - Sander 6, 7, and pmemd (with or without wrapping) now all handle
this option identically, and the behaviour is documented in the Sander 7
manual. The Sander 6 manual also documents a legal value of < 0 (print
coordinates for only the solute option) for this option, but this has never
actually been supported in Sander 6, 7, or pmemd (sigh). In fact, all 3
will probably crash if you specify a value < 0 (based purely on code
inspection, not testing). PMEMD, at least for now, will continue to track
the sander 6 behaviour, including the "crash if < 0" feature.

NTWPR0 - This is an undocumented Sander 6 option, used to specify the first
atom to print coordinates for. This is not supported in Sander 7. Pmemd
now works like Sander 6, with or without wrapping, in either 6 or 7
compatibility mode (ie., I don't filter this out in 7 mode; it is relatively

IWRAP - In checking out the COM velocities fix, I discovered that IWRAP .eq.
1 does not work under sander or pmemd to wrap coordinates once they are out
of range by more than one box length. I have not looked at this hard to
understand the exact nature of the problem; I just have checked that pmemd
and sander do the same thing (seems like it would be good if wrapping worked
regardless of where
the atoms are, but maybe there is something I don't understand about
molecule context here).

Regards - Bob

----- Original Message -----
From: "Jed W Pitera" <>
To: <>
Sent: Monday, August 25, 2003 11:25 AM
Subject: apparent PMEMD bug -- NTWPRT > 0 & IWRAP = 1

> Dr. Duke,
> I have been testing PMEMD on some of our machines (POWER3/POWER4
> under AIX 4 or 5) and discovered an apparent bug. The problem arises if
> NTWPRT > 0 (or NTWPR0 > 0) and IWRAP = 1. In this case, any attempt to
> write to the coordinate archive (via calls to wrapped_corpac) results in a
> segmentation fault.
> As far as I can tell, this is because the crd_copy() array created
> wrapped_corpac only contains 3*NTWPRT elements, but it is passed to
> wrap_molecules, which attempts to wrap the coordinates of all NSPM atoms
> (and accesses 3*NATOM elements from the crd_copy array). I fixed the
> specific case of NTWPRT > 0 for our tests by just passing in the # of
> molecules to be wrapped into wrapped_corpac, but the general case (i.e.
> NTWPRT > 0 & NTWPR0 > 0) would touch more code.
> Topology, restart & mdin files that showed this bug are attached.
> --Jed
> ------------------------------
> Jed Pitera, PhD
> Research Staff Member
> IBM Research
> (See attached file: inpcrd)(See attached file: mdin)(See attached file:
> prmtop)

The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to
Received on Mon Aug 25 2003 - 21:53:01 PDT
Custom Search