loki@physics.mcgill.ca (Loki Jorgenson Rm421) (12/03/90)
This is being submitted on behalf of another IRIS user in our local group who does not monitor info-iris (at least not until recently). Please let me know if this bug has already mentioned. __ __ Loki Jorgenson / / \ \ node: loki@physics.mcgill.ca Grad, Systems Manager / ////// \\\\\\ \ BITNET: PY29@MCGILLA Physics, McGill University \ \\\\\\ ////// / fax: (514) 398-3733 Montreal Quebec CANADA \_\ /_/ phone: (514) 398-6531 ----------------------------------------------------------------------------- I believe I've discovered an Iris Fortran i/o bug. It only occurs when printing out numbers smaller than E-100, so it only happens with double precision (real*8). If the number is smaller than 1.E-100 the I/O routine 'forgets' to print the letter E. Consider output from the following trivial program: program writetest integer i, j real*8 tmp, temp tmp = 100.d0 temp = 1.e-86 do 100 i=1, 140 temp = temp / tmp write(6,*) temp 100 continue stop end The output is: 1.0000000000000004E-88 1.0000000000000004E-90 1.0000000000000006E-92 1.0000000000000004E-94 1.0000000000000008E-96 1.0000000000000008E-98 1.0000000000000008-100 <--- note the E is missing !!!! 1.0000000000000008-102 1.0000000000000008-104 . . and so on..... Thus any program reading this output gets gibberish. Output also fails if you use an exponential format (eg g14.7) for output. ** HOWEVER. ** 1) You can succesfully do i/o from unformatted files. 2) This problem does NOT occur in C. So, how about it? Anyone else notice this little gem? How about you people at SGI? We are running 3.3.1, by the way, so I don't know if this was a bug in 3.2.1. Ian. ----------------------------------------------------------------------------- Ian Graham ------------ node: igraham@physics.mcgill.ca Physics, McGill University | * * * * * * | fax: (514) 398-3733 Montreal Quebec CANADA ------------ phone: (514) 398-6526
calvin@dinkum.wpd.sgi.com (Calvin H. Vu) (12/04/90)
In <9012030315.AA02428@frodo.Physics.McGill.CA> loki@physics.mcgill.ca (Loki Jorgenson Rm421) writes: | I believe I've discovered an Iris Fortran i/o bug. It only occurs when | printing out numbers smaller than E-100, so it only happens with double | precision (real*8). If the number is smaller than 1.E-100 the I/O routine | 'forgets' to print the letter E. I traced this problem back to the version we had 3 years ago. As far as I know it probably exists in the original Sys V Fortran runtime I/O but somehow nobody has run into it yet so you are the first person who reported it. Thanks for letting us know, - calvin -- ----------------------------------------------------------------------------- Calvin H. Vu | "We are each of us angels with only one Silicon Graphics Computer Systems | wing. And we can only fly embracing calvin@sgi.com (415) 962-3679 | each other."