Hi: We're reading a file using a format recommended by the supplier of the file. The simplified code is:
real a
read ( 10, '(e11.0)' ) a
When this is compiled with ifort 13.1.1 (linux) or 13.1.0.149 (windows), the compiler produces the remark 8577:
remark #8577: The scale factor (k) and number of fractional digits (d) do not have the allowed combination of either -d < k < 0 or 0 < k < d+2. Expect asterisks as output.
read ( 10, '(e11.0)' ) a
-------------------^
This message is curious for two reasons:
- It is in an input statement, not an output statement.
- By default, the scale factor k is 0, so clearly neither case can succeed with d=0:
-0 < 0 < 0 (false)
0 < 0 < 2 (false)
However, if we change the format to e11.1, then this remark goes away. But, even in that case, it should still not pass the stated conditions:
-1 < 0 < 0 (false)
0 < 0 < 3 (false)
It seems like unless you change the scale factor, you can't ever avoid this remark.
Our old IBM AIX XL Fortran manual gives the condition:
-d < k <= 0 or 0 < k < d+2
which would at least allow the e11.1 case
So, we're a bit confused by the remark. Are we misunderstanding what it is trying to tell us?
Thanks,
Allen