[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
971121: compiling netcdf on VPP 300
- Subject: 971121: compiling netcdf on VPP 300
- Date: Fri, 21 Nov 97 08:57:29 -0700
Peter,
>Date: Fri, 21 Nov 1997 12:50:37 +0000 (GMT)
>From: P M Oliver <address@hidden>
>Organization: DCI Systems & User Support Group, RAL
>To: Steve Emmerson <address@hidden>
>Subject: Re: 971117: compiling netcdf on VPP 300
>Keywords: 199711141550.IAA06528
In the above message, you wrote:
> > Please pardon my ignorance, but what the heck is a vpp300?
>
> It's a Fujitsu Supercomputer , parallel vector, 2.2Gflops per node, 2 Gb
> per node.
...
> > Ouch! The above looks like a problem with your compiler environment.
> > What does your systems administrator say about this problem?
>
> I'm the system admin and I don't say alot :-) I'll have a chat with our
> fujitsu friends
...
> > Interesting. That constant was carefully chosen to be a valid
> > floating-point value on IEEE systems (which, apparently, the vpp300
> > is). I note, however, that FLT_MAX on our SunOS 5.6 system is
> > 3.402823466E+38F -- a slightly smaller value. One possible cause for
> > the warning is that the vcc compiler uses an algorithm for converting
> > a decimal floating-point value into a binary one that is slightly
> > different than that of most IEEE machines.
> >
> > I suggest manually modifying the file libsrc/ncx.h: change the line
> >
> > #define X_FLOAT_MAX 3.40282347e+38f
> >
> > to
> >
> > #define X_FLOAT_MAX 3.402823466e+38f
> >
> > or even
> >
> > #define X_FLOAT_MAX 3.40282346e+38f
> >
> > and excute the command "make" in the libsrc/ directory. Does the
> > warning dissapear?
>
> Yep , but I had to be a bit more forceful ie force FLT_MAX
> 3.40282346e+38f else it kept using the one in /usr/include/float.h set to
> 3.40282347e+38f
...
> > Interesting! Would you please go into the libsrc directory, execute
> > the following test program, and send me the output:
> >
> > #include <stddef.h>
> > #include "ncx.h"
> >
> > void
> > main()
> > {
> > ptrdiff_t stride = -1;
> >
> > puts((unsigned long)stride >= X_INT_MAX
> > ? "(unsigned long)(ptrdiff_t)-1 >= X_INT_MAX"
> > : "(unsigned long)(ptrdiff_t)-1 < X_INT_MAX");
> > }
> >
> > It should print the first string.
>
> Yep, OK here
>
> (unsigned long)(ptrdiff_t)-1 >= X_INT_MAX
...
Hmmm...
What's the size (in bytes) of the C type "ptrdiff_t" on the system?
Would you please send me the "typedef" declaration of "ptrdiff_t".
--------
Steve Emmerson <http://www.unidata.ucar.edu>