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-6526calvin@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."