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 amber.scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
Received on Sun May 13 2007 - 06:07:06 PDT