Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Incorrect warning on STOP range ?

jcarbaut
Beginner
299 Views

When using IVF with /stand:f08, and a statement like "STOP 2147483647", I get the following warning:

"warning #8090: There are more than 5 decimal digits specified in a STOP or PAUSE statement.  This is an extension to Standard F2008."

However, it looks like this limitation was part of the Fortran 2003 standard. Section 8.4, p. 170, states that stop-code is a scalar-char-constant
or digit [ digit [ digit [ digit [ digit ] ] ] ]
, hence five digits. In the Fortran 2008 standard, however, section 8.4 p. 187 now states that stop-code may be scalar-default-char-constant-expr or scalar-int-constant-expr. There is an additionnal note stating that "the processor might be able to interpret only values within a limited range, or only a limited portion of the integer value", but if I understand correctly, this is not prohibited for a processor to use the full range of the default integer type. The warning seems to be wrong.

Incidentally, IVF does not issue any warning for negative values, which is correct: they are not handled by the Fortran 2003 standard, but they are part of the Fortran 2008 standard.

Note: I'm using IVF 2017.1 on Windows. I got my copies of the standard on the ANSI web site (INCITS/ISO/IEC 1539-1:2004 and 1539-1:2010 respectively). The corrigenda to F2008 and the current draft of F2015 do not seem to reintroduce a limitation. In the draft, the section is now 11.4.

This is really a minor, an infinitesimal concern.

Best regards,

Jean-Claude Arbaut

0 Kudos
1 Reply
Kevin_D_Intel
Employee
298 Views

Thank you for the report. I agree, this is incorrect for the f08 and f15 standards checking. I reported it to Development.

(Internal tracking id: DPD200416545)

0 Kudos
Reply