What’s New in Version 6

 

Version 6 is the first major update to Flint in a decade.  It mainly addresses new capabilities in Fortran 2003 (F03) and Fortran 2008 (F08).  It maps well to the state-of-the-art in compilation, primarily non-object-oriented compatibility.  Changes made are:

 

Language Additions

·        VALUE statement and attribute

·        VOLATILE statement and attribute

·        Pointer objects can now have the INTENT attribute

·        Symbol names up to 63 characters

·        Statements up to 256 lines (16,000 character limit for Flint)

·        Square brackets [ ] are permitted to delimit array constructors in addition to previous standard / /

·        Binary, Octal, and Hex (BOZ) constants to intrinsic functions INT,  REAL, DBLE, and CMPLX

 

Intrinsics

·        ISO_C_BINDING

·        ISO_FORTRAN_ENV

·        IEEE_ARITHMETIC

·        IEEE_EXCEPTIONS

·        IEEE_FEATURES

·        BIND statement and attribute

·        Language binding can be specified in FUNCTION, SUBROUTINE, and ENTRY  statements

·        INTRINSIC and NON-INTRINSIC can be specified for modules in USE statements

·        GET_COMMAND, GET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT, and

·        GET_ENVIRONMENT_VARIABLE intrinsics

·        F08 COMPILER_OPTIONS and COMPILER_VERSION intrinsic functions

·        KIND= argument may be supplied to ACHAR, IACHAR, ICHAR, LEN, and LEN_TRIM

 

I/O

·        FLUSH statement

·        WAIT statement (with ASYNCHRONOUS/ASYNCH and DONE extensions from IBM)

·        ASYNCHRONOUS statement and attribute

·        The following I/O specifiers have been added or updated to the F03 standard: ACCESS, ASYNCHRONOUS (along with ASYNCH alias, an IBM extension), BLANK, DECIMAL, DELIM, ENCODING, ID, IOMSG, PAD, PENDING, POS, RECORDTYPE (DEC, HP, Intel extension) ROUND, SIGN, SIZE, and STREAM

·        F08 I/O specifier NEWUNIT

·        Any KIND is permissible with integer specifiers (SIZE, NEXTREC, etc.)

·        Intrinsic functions IS_IOSTAT_END, IS_IOSTAT_EOR

·        Comma after a P-edit descriptor is optional when followed by a repeat

·        NEW_LINE intrinsic function

·        SELECTED_CHAR_KIND intrinsic function

·        F08 extension to SELECTED_REAL_KIND intrinsic function

 

Other Additions/Improvements

·     A new command line switch  -o "message_format" (use single quotes on *nix) to change the format of Flint’s analysis messages, suitable for interfacing to IDE/ editor

·     14 new error messages for a total of 1017 unique Fortran checks

·     Minor bug fixes

·     Various operational enhancements

 

User Interface Changes to Note

·     Separator for cross reference (xref) content selection is now ‘.’ instead of ‘_’; see Section 8.4 of flintman.pdf.  Prior versions of Flint retain the old syntax.