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.