-
Notifications
You must be signed in to change notification settings - Fork 141
Fortran 2008
Gary Klimowicz edited this page Mar 26, 2020
·
3 revisions
This table is a list of features from the Fortran 2008 standard. The right hand column of the table indicates whether or not the feature has been implemented. A "P" in the column indicates a partial implementation.
| Fortran 2008 features | |
|---|---|
| Submodules | Y |
| Coarrays | N |
| Performance enhancements | |
| DO CONCURRENT | Y |
| Contiguous attribute | Y |
| Data Declaration | |
| Maximum rank + corank = 15 | N |
| Long integers | Y |
| Allocatable components of recursive type | N |
| Implied-shape array | N |
| Pointer initialization | P |
| Data statement restrictions lifted | N |
| Kind of a forall index | Y |
| Type statement for intrinsic types | N |
| Declaring type-bound procedures | N |
| Value attribute is permitted for any nonallocatable nonpointer noncoarray | N |
| In a pure procedure the intent of an argument need not be specified if it has the value attribute | N |
| Accessing data objects | |
| Simply contiguous arrays rank remapping to rank>1 target | Y |
| Omitting an ALLOCATABLE component in a structure constructor | N |
| Multiple allocations with SOURCE= | Y |
| Copying the properties of an object in an ALLOCATE statement | Y |
| MOLD= specifier for ALLOCATE | Y |
| Copying bounds of source array in ALLOCATE | Y |
| Polymorphic assignment | Y |
| Accessing real and imaginary parts | Y |
| Pointer function reference is a variable | N |
| Elemental dummy argument restrictions lifted | Y |
| Input/Output | |
| Finding a unit when opening a file | Y |
| g0 edit descriptor | Y |
| Unlimited format item | Y |
| Recursive I/O | Y |
| Execution control | |
| The BLOCK construct | Y |
| Exit statement | Y |
| Stop code | Y |
| ERROR STOP | Y |
| Intrinsic procedures for bit processing | |
| Bit sequence comparison | N |
| Combined shifting | N |
| Counting bits (Implemented leads, popent, and poppar but not trailz) | P |
| Masking bits | N |
| Shifting bits | N |
| Merging bits | N |
| Bit transformational functions | N |
| Intrinsic procedures and modules | |
| Storage size | Y |
| Optional argument RADIX added to SELECTED REAL KIND | N |
| Extensions to trigonometric hyperbolic intrinsics | Y |
| Bessel functions | Y |
| Error and gamma functions | Y |
| Euclidean vector norms | N |
| Parity | N |
| Execute command line | Y |
| Optional back argument added to MAXLOC and MINLOC | Y |
| Find location in an array | Y |
| String comparison | Y |
| Constants | Y |
| COMPILER_VERSION | Y |
| COMPILER_OPTIONS | Y |
| Function for C sizeof | Y |
| Added optional argument for IEEE_SELECTED_REAL_KIND | Y |
| Programs and procedures | |
| Save attribute for module and submodule data | Y |
| Empty contains section | Y |
| Form of end statement for internal and module procedures | Y |
| Internal procedure as an actual argument | Y |
| Null pointer or unallocated allocatable as absent dummy arg. | N |
| Non pointer actual for pointer dummy argument | N |
| Generic resolution by procedureness | N |
| Generic resolution by pointer vs. allocatable | N |
| Impure elemental procedures | Y |
| Entry statement becomes obsolescent | Y |
| Source form | |
| Semicolon at line start | Y |