Re: [AMBER-Developers] Patch for sander hang with missing box

From: Scott Brozell <sbrozell.rci.rutgers.edu>
Date: Sun, 16 Aug 2009 22:52:26 +0100

Hi,

Thanks for reporting this, Tom.
I committed similar patches in amber11:
For check_prime_factors the input is now validated with an assert.
Regarding peek_ewald_inpcrd, it seems best for this to fail,
rather than to return, if box information is not found; this makes
peek_ewald_inpcrd consistent with AM_RUNMD_get_ucell_info.

Note that this commit is untested since I cannot build sander
with ifort or pgf90. I might get back to this later today;
see below for the errors.

Note that this issue might exist for pmemd, but I did not check.

Scott

On Fri, Aug 14, 2009 at 04:56:29PM -0500, Tom Joseph wrote:
> AMBER 10 sander hangs when box information is expected but not present
> in the inpcrd file. I've attached sample input that reproduces this
> problem. Admittedly it's not necessarily the most common mistake but I
> think an error message would be nice.
>
> peek_ewald_inpcrd() in ew_setup.f returns zeros for a, b, c if they
> are not found. This leads to check_prime_factors() being called with
> n=0, which causes it to loop infinitely. Below are a couple of patches
> that fix this. The first gives an error message before the infinite
> loop, and the second fixes the infinite loop itself.
>
> Thanks,
> --Tom
>
> --- orig/src/sander/ew_setup.f 2008-04-16 21:34:52.000000000 -0400
> +++ new/src/sander/ew_setup.f 2009-08-14 17:39:41.000000000 -0400
> .. -974,6 +974,11 ..
> call peek_ewald_inpcrd(inpcrd,ax,bx,cx,alphax,betax,gammax)
> end if
>
> + if ( a == 0.0d0 .and. b == 0.0d0 .and. c == 0.0d0) then
> + call sander_bomb('load_ewald_info', &
> + 'Box information expected but not found', '')
> + end if
> +
> end if
> call read_ewald(ax,bx,cx,alphax,betax,gammax)
>
> --- orig/src/sander/ew_setup.f 2008-04-16 21:34:52.000000000 -0400
> +++ new/src/sander/ew_setup.f 2009-08-14 17:45:39.000000000 -0400
> .. -268,6 +268,8 ..
> ! this routine checks n to see if its a product of powers of 2,3,5
> ! essential for FFTs
> ! result is 1 of it is such a product, 0 if not
> +
> + if (n == 0) return 0
>
> ! don't hurt n
> nl = n


cpp -traditional -P -DNO_SANDER_DIVCON -DBINTRAJ rism_interp.f > _rism_interp.f
ifort -c -w95 -vec_report0 -ip -O3 -axP -FR -o rism_interp.o _rism_interp.f
fortcom: Error: _rism_interp.f, line 68: The statement following a CONTAINS is not a function-stmt or a subroutine-stmt.
end module rism_interp
^
compilation aborted for _rism_interp.f (code 1)


cpp -traditional -P -DNO_SANDER_DIVCON -DBINTRAJ xray_utils.f > _xray_utils.f
pgf90 -c -O1 -Mfree -o xray_utils.o _xray_utils.f
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 80)
  0 inform, 0 warnings, 1 severes, 0 fatal for coordinate_transform_inverse
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 115)
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 116)
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 117)
  0 inform, 0 warnings, 3 severes, 0 fatal for matrix3_inverse_pure
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 131)
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 132)
PGF90-S-0153-Array objects are not conformable (_xray_utils.f: 133)
  0 inform, 0 warnings, 3 severes, 0 fatal for matrix3_inverse_det


_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Wed Aug 19 2009 - 23:13:28 PDT
Custom Search