AMBER Archive (2008)

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

From: liu junjun (ljjlp03_at_gmail.com)
Date: Tue Sep 30 2008 - 14:17:26 CDT


Hello Jed,

This AMBER8 I'm compiling is from other people in our group. He
modified some code but totally forgot and thought that was the
original AMBER8. I'm sorry for the trouble.

Thank you very much for your time and your great suggestion!

All the best!

Junjun

On 9/30/08, Jed W Pitera <pitera_at_us.ibm.com> wrote:
>
>
> 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_at_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_at_scripps.edu
> > To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
> > to majordomo_at_scripps.edu
>
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
      to majordomo_at_scripps.edu