Re: AMBER: Where is ICO read from the ix array?

From: David A. Case <>
Date: Mon, 21 Jul 2008 16:54:18 -0700

On Mon, Jul 21, 2008, Brad Lambeth wrote:

> I'm looking for the place in the sander code where ICO is assigned based on
> ix. I see that the non-bonded parameter index is read in rdparm.f to the
> array ix, but I can't find where ICO is defined after that.

It sounds like you've figured out that ICO() is the array starting a ix(i06).
This aliasing is done by arguments lists; for example, the fourth
argument in the call to ewald_force() is ix(i06); and the fourth dummy
argument in the definition of the ewald_force() routine is "ico".

All this comes from a time before Fortran supported dynamic allocation, so
the ix() array is essentially a "heap" of integers. Look in locmem.f for
comments on how the heap is used and aliased.

> For my system, I have 5 atom types; 1 atom type interacts with all the
> others with a 6-12 potential, while the other 4 atom types interact with
> each other with the 10-12 potential. This means those 4 atom types have
> 10-12 interactions and 6-12 interactions. When I generate my prmtop and
> analyze it with rdparm, I cannot get it to read the coefficients correctly
> based on ICO and the ASOL and BSOL input. I have tried many different ways
> of assigning ICO without success.

Without knowing what you tried ("without success") it's hard to offer much
advice. I *think* it's possible to do what you want within the current code,
but I'm not sure that every combination of 10/12 vs 6/12 is really allowed.


The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
Received on Wed Jul 23 2008 - 06:07:26 PDT
Custom Search