RE: [AMBER-Developers] Re: [AMBER] AmberTools 1.2 Installation on Ubuntu 9.10 Karmic Koala

From: Ross Walker <ross.rosswalker.co.uk>
Date: Wed, 11 Nov 2009 12:44:52 -0800

Hi Andreas,

> >> I have done this and still get this error when I test.
> >>
> >> ./Run.tp: Program error
> >> make: *** [test.antechamber.hasG77] Error 1
> >
> ...After testing the fresh cvs-checkout I have a suspicion.
> With "-g3 -fbounds-check -Wuninitialized -ftrap -O0" as gfortran-
> options
> and "-O0 -g3" as gcc-options,
> ../../../exe/antechamber -i tp.pdb -fi pdb -o tp.mol2 -fo mol2 -c bcc
> (which is the first thing "Run.tp" really does),
> I get the following error:

Just to be clear this is a very different issue than being able to use
AmberTools 1.2. In v1.2 divcon is used for the charge calculations in
Antechamber. In v1.3 it uses sqm so the code paths are completely different.

> At line 5270 of file _qm2_load_params_and_allocate.f
> Fortran runtime error: Array reference out of bounds for array
> 'reference_index', upper bound of dimension 1 exceeded (4 > 3)
> Error: cannot run "/scr/orgon/svrci/amber11/bin/sqm -O -i sqm.in -o
> sqm.out" of bcc() in charge.c properly, exit
>
> ...unfortunately the offending line (and those around) don't tell me
> much,
> but this might be a clue for the more antechamber-savvy.

This is a false positive caused by the array bounds check. Here is the code:

call qm_print_ref(.true.,reference_index(i), qmmm_struct%qm_type_id(i),
qmmm_nml%qmtheory)
write(6,'(/,"| QMMM: Parameter sets in use:")')
do i=1,qmmm_struct%qm_ntypes
   call qm_print_ref(.false.,reference_index(i), qmmm_struct%qm_type_id(i),
qmmm_nml%qmtheory)
end do

The error comes because 'i' is not initialized in the first call. It is a
false positive since the reference index and the type id are not used when
the first argument to the call is true. However, I have modified it as so to
avoid this:

call qm_print_ref(.true.,1, 1, qmmm_nml%qmtheory)
write(6,'(/,"| QMMM: Parameter sets in use:")')
do i=1,qmmm_struct%qm_ntypes
      call qm_print_ref(.false.,reference_index(i),
qmmm_struct%qm_type_id(i), qmmm_nml%qmtheory)
end do

The Antechamber tests all then pass with the array bounds checking turned
on.

All the best
Ross


/\
\/
|\oss Walker

| Assistant Research Professor |
| San Diego Supercomputer Center |
| Tel: +1 858 822 0854 | EMail:- ross.rosswalker.co.uk |
| http://www.rosswalker.co.uk | http://www.wmd-lab.org/ |

Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues.






_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Wed Nov 11 2009 - 13:00:02 PST
Custom Search