Refer to the published Fortran 2003 and Fortran 2008 standards for details.
2003 extensions to allocatable arrays — reallocation on assignment, and allocatable scalars.
2003 extensions to ALLOCATE/DEALLOCATE statements — ERRMSG and SOURCE.
2003 extensions MOVE_ALLOC intrinsic.
2003 extensions pointer assignment with remapping.
2003 extensions MIN/MAX, MIN/MAXVAL and MIN/MAXLOC with character arguments.
2003 intrinsics IS_IOSTAT_END, IS_IOSTAT_EOR, NEW_LINE.
2003 intrinsic SELECTED_CHAR_KIND.
2003 REAL type for argument COUNT_RATE of intrinsic SYSTEM_CLOCK.
2003 new restriction on complex SQRT intrinsic result.
2008: Use of null pointers as missing optional arguments.
2008 Bit Intrinsics: BGE, BGT, BLE, BLT, DSHIFTL, DSHIFTR, LEADZ, POPCNT, POPPAR, TRAILZ, MASKL, MASKR, SHIFTA, SHIFTL, SHIFTR, MERGE_BITS, IALL, IANY, IPARITY.
Enhanced structure constructor: using component names to construct a structure constant.
Enhanced PUBLIC/PRIVATE access control on module derived types and components.
More Fortran 2008 math intrinsic function support. Most Fortran 2008 math intrinsic functions are now supported except for ERFC_SCALED, NORM2 and some REAL*16 variants on x86 platforms.
Derived types with no components.
The KIND argument was added to ICHAR, IACHAR, ACHAR, SHAPE, UBOUND, LBOUND, SIZE, MINLOC, MAXLOC, COUNT, LEN, LEN_TRIM, INDEX, SCAN and VERIFY intrinsics.
The BACK argument was added to MINLOC and MAXLOC intrinsics.
New intrinsics FINDLOC and STORAGE_SIZE were added.
New keywords ERRMSG, SOURCE and MOLD were added to ALLOCATE statement, and ERRMSG was added to DEALLOCATE statement.
Enumeration with ENUM.
VOLATILE keyword.
PUBLIC/PRIVATE accessibility on individual components.
Public entities of private types.
Enhanced complex constants.
Fortran 2003 ISO_FORTRAN_ENV module.
New KIND= optional argument to intrinsics.
Names of length up to 127 characters, except for module names, which are limited to 31 characters.
ID= and PENDING= specifier in INQUIRE statement.
POS= specifier in data transfer and INQUIRE statements.
BLANK, DECIMAL, DELIM, PAD, ROUND, SIZE specifiers.
DC, DP, RD, RC, RN, RP, RU, RZ edit descriptors.
INTRINSIC and NON_INTRINSIC keywords in USE.
IS_IOSTAT_END and IS_IOSTAT_EOR intrinsics.
Support for deferred-length character declarations. For example, CHARACTER (LEN=:), POINTER :: STR.
Support passing TARGET objects to INTENT(IN) pointer dummies. This is a Fortran 2008 feature.