Re: AMBER: XLF problem in compiling AMBER8 on IBM PPC64 SUSE

From: Jed W Pitera <pitera.us.ibm.com>
Date: Tue, 30 Sep 2008 11:56:18 -0700

Junjun --

      The xlf compiler is complaining because the arguments to MAX() in the
code below are of two different types; ct0 is double precision and -0.999
is single (-0.999d0 would be double). If you want xlf to auto-promote
single precision constants to doubles, add the compiler option "-qdpc".

      Also, is this the standard version of AMBER8? In our version of
AMBER8/sander/ene.f, it looks like MAX() is properly called with two double
precision arguments:

  _REAL_ pt999
  data pt999 /0.9990d0/
. . .
  ct1 = max(-pt999,ct0)
  ct2 = min(pt999,ct1)

--Jed

PS: Ross is correct that you should probably use the "xlf90_suse" target;
however, I was able to build AMBER8/sander on a ppc64 SLES box with XLF
10.1 using "xlf90_aix" without modifications. Haven't had a chance to test
it, though. . .

owner-amber.scripps.edu wrote on 09/30/2008 11:07:09 AM:

> Hello everyone,
>
> I got some problem when compiling AMBER8 on IBM ppc64 machine. The OS
> is "SUSE LINUX Enterprise Server 9 (ppc)", the compiler is XLF. Intel
> compiler is not available on this machine(so can't use ./configure
> xlf90_suse). Here's how I did:
>
> 1). ./configure xlf90_aix
> 2). make clean ; make serial
> it exists when compiling ene.f in sander directory with the following
error:
> ======
> "_ene.f", line 1896.31: 1513-041 (S) Arguments of the wrong type were
> specified for the INTRINSIC procedure "max".
> "_ene.f", line 1897.30: 1513-041 (S) Arguments of the wrong type were
> specified for the INTRINSIC procedure "min".
> ======
> The corresponding lines in _ene.f are as follows:
> ct1 = max ( -0.999, ct0 )
> ct2 = min ( 0.999, ct1)
> It seems XLF doesn't like ct0 or ct1 as the argument to max() or
> min(). The compilation on _ene.f with XLF went through if arguments
> were changed like this:
> ct1 = max ( -0.999, 0.1 )
> ct2 = min ( 0.999, 0.1)
>
> ct0 and ct1 are defined as double precision, I don't understand why
> XLF doesn't like a double precision variable being the argument to
> max() or min(). Can somone please help?
>
> Thanks!
>
> Junjun Liu
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to amber.scripps.edu
> To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
> to majordomo.scripps.edu
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber.scripps.edu
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
      to majordomo.scripps.edu
Received on Wed Oct 01 2008 - 05:11:32 PDT
Custom Search