This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
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>