[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NetCDF 3.5.1 beta version on Cray T3E



Helen,

>Date: Thu, 26 Sep 2002 17:34:39 +0100
>From: Helen Fairhurst <address@hidden>
>Organization: Met Office
>To: address@hidden,
>To: address@hidden
>Subject: Re: NetCDF 3.5.1 beta version on Cray T3E
>Keywords: 200209191302.g8JD21122412

The above message contained the following:

> I recompiled with a -g on the C compiler too, i.e. 'CC='-O3 -g' 
> and got the following (with line numbers) from the FPE. 
> 
> 
> Making `test' in directory /tmp/netcdf/netcdf-3.5.1-beta/src/f90
> 
>         /opt/ctl/bin/f90 -o netcdf_test   netcdf_test.f90 netcdf.o
> typeSizes.o ../libsrc/libnetcdf.a 
> SIGNAL: Floating point exception (invalid floating point operation)
> 
>  Beginning of Traceback (PE 0):
>   Interrupt at address 0x800068d68 in routine 'ncx_put_float_double'.

Unfortunately, the above still doesn't tell us where in
"ncx_put_float_double" the floating-point exception occurred.

I suspect, however, that the exception occurs in the line

    float xx = (float) *ip;

and results from attempting to cram a too-large or too-small double value
into a float.

>   Called from line 3600 (address 0x80007245c) in routine
> 'ncx_putn_float_double'.
>   Called from line 975 (address 0x800057534) in routine
> 'ncx_pad_putn_Idouble'.
>   Called from line 2123 (address 0x80005b70c) in routine
> 'nc_put_att_double'.

This might be the problem.  The routine below (NF_PUT_ATT_REAL) is calling
the routine above (nc_put_att_double).  If a Fortran REAL isn't a C
double on the T3E, then this won't work.

Look at the file "fortran/nfconfig.h".  Is NF_REAL_IS_C_DOUBLE defined?

>   Called from line 117 (address 0x8000b4370) in routine 'NF_PUT_ATT_REAL'.
>   Called from line 244 (address 0x800006394) in routine
> 'NF90_PUT_ATT_FOURBYTEREAL_in_NETCDF'.
>   Called from line 51 (address 0x800001d74) in routine 'NETCDFTEST'.
>   Called from line 475 (address 0x800000c94) in routine '$START$'.
>  End of Traceback.
> sh: 54577 Floating exception(coredump)
> Make: "./netcdf_test; \

To check the configure script's determination of the mapping between
Fortran and C types, would you please send me the standard output of the
configure script's execution. Please do a "make distclean" first.

...
> When I reread the Install instrs it seemed to me that "libsrc/ncx_cray.c" 
> was only needed on Cray vector architectures and the T3E is scalar, IEEE. 
> When I reverted back to the normal "libsrc/ncx.c" file I was able to get 
> much further with 'make test', so it seemed the right thing to do. 
> Please let me know if you disagree here. 

You are correct.  You should use the regular "ncx.c" file on non-vector
CRAY systems.

> Any further input/ideas appreciated. Shall I still try modifying 
> the code in "libsrc/ncx.c" as suggested by Steve or would the 
> above errors/line nos imply something else? Sorry I haven't got 
> back to you sooner, but I have been taking some training this week. 
> Also, I am away for the next couple of days, so this is as far as 
> I have got with this problem this week. I thought I would send 
> you an update and see if this sparked off any other thoughts. 
> When I get back I will try building again and get back to you. 
> 
> 
> Many thanks, 
> Helen
> -- 
> Helen Fairhurst    Supercomputer Support Analyst
> Met Office  London Road  Bracknell  Berkshire  RG12 2SZ  United Kingdom
> Tel: +44 (0)1344 856097    Fax: +44 (0)1344 854412
> E-mail: address@hidden    http://www.metoffice.com

Regards,
Steve Emmerson   <http://www.unidata.ucar.edu>