AMBER: pmemd source issues

From: Thomas Zeiser <>
Date: Wed, 9 May 2007 13:33:11 +0200

Dear All,

I compiled pmemd9 (including Amber9 patches 1-34) using the latest
Intel EM64T compiler and enabled extensive runtime error checking
(-g -traceback -check all). Two types of issues came up:

1) contraints.f90 only allocates "amt_igroup" if "ibelly" is set.
degcnt() is called from runmd.f90 and "amt_igroup" is passed in all
cases. The Intel compiler now complains (if ibelly is not set)
that "integer :: igrp(*)" is not allowed as an unallocated variable
is accessed.
An "allocate(atm_igroup(0))" in constraints.f90 solves this issue.

A similar behaviour is observed for "gbl_loadbal_node_dat" which
gets only allocated on the master process (alltasks_setup.f90).

I did not check the Fortran standard if using "type :: var(*)" is
allowed or not (I guess "no" as an unallocated variable does not
have any defined ranges which can be used for the assumed shape) -
but passing a valid variable seems to be a good idea anyway.

2) The probably more sever issue was detected in find_img_range()
from img.f90. At least for the testcase I got from our chemistry
people, "my_img_lo" is one unit larger than "img_cnt", thus, the
check "img_atm_map(img_i) .lt. 0" causes an array bound violation.
No idea about the implication of that (or a correct fix).

Kind regards,

Thomas Zeiser

Regionales Rechenzentrum Erlangen / HPC-Services
Martensstr. 1, 91058 Erlangen, GERMANY
The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to
Received on Sun May 13 2007 - 06:07:06 PDT
Custom Search