Opened 16 years ago

Closed 16 years ago

#217 closed bug (Fixed)

Cray T3E with MPI: error writing to history file

Reported by: m.hadfield Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.2
Component: Nonlinear Version: 3.2
Keywords: Cc:

Description

On a Cray T3E with MPI, I'm getting an error writing to history files. Traceback is shown below. I think this has been caused by code changes in the last few weeks. I'm away from work for 10 days from tomorrow, so I'm creating this ticket now and will investigate when I get back (unless someone else does so in the meantime).

It looks to me like a data type mismatch, probably specific to this platform.

: Floating point exception (invalid floating point operation)

 Beginning of Traceback (PE 0):
  Interrupt at address 0x800154e68 in routine 'ncx_put_float_double'.
  Called from line 3756 (address 0x80015eadc) in routine 'ncx_putn_float_double'.
  Called from line 975 (address 0x80014d274) in routine 'ncx_pad_putn_Idouble'.
  Called from line 2123 (address 0x80015170c) in routine 'nc_put_att_double'.
  Called from line 118 (address 0x8001ae430) in routine 'NF_PUT_ATT_REAL'.
  Called from line 268 (address 0x8001bd6e4) in routine 'NF90_PUT_ATT_ONE_FOURBYTEREAL_in_NETCDF'.
  Called from line 222 (address 0x80009fd58) in routine 'DEF_VAR'.
  Called from line 760 (address 0x80008cf88) in routine 'DEF_INFO'.
  Called from line 189 (address 0x80007cd20) in routine 'DEF_HIS'.
  Called from line 100 (address 0x800010508) in routine 'OUTPUT'.
  Called from line 168 (address 0x80000dbf8) in routine 'MAIN3D'.
  Called from line 159 (address 0x800001b64) in routine 'ROMS_RUN_in_OCEAN_CONTROL_MOD'.
  Called from line 109 (address 0x8000015c0) in routine 'OCEAN'.
  Called from line 475 (address 0x800000c94) in routine '$START$'.
 End of Traceback.

Change History (2)

comment:1 by m.hadfield, 16 years ago

PS: doesn't occur in serial mode.

comment:2 by arango, 16 years ago

Resolution: Fixed
Status: newclosed

Yes, thank you for reporting this problem. The issue here is that some Crays do not support 4-byte (32 bit) floating-point variables. This problem is due to recent changes to def_var.F so the type of the attribute for a variable is the same as the defined variable. This is specially needed for the _FillValue attribute. This is the correct attribute to indicate missing or out-of-bound values in NetCDF file.

An internal switch NO_4BYTE_REALS is defined in globaldefs.h to account for this problem.

Note: See TracTickets for help on using tickets.