I created the Fortran 2023 status table based on the The new features of Fortran 2023 by John Reid <https://wg5-fortran.org/N2201-N2250/N2212.pdf>.
I have no permission to add pages to wiki. So I've sent it here to review and find someone to add to the wiki. Best regards -- *Ghorban M. Tavakoly* Phone number: +98 (902) (2²⁰+2¹⁹+2¹⁸+…+2²+2¹+2⁰)
# Chart of Fortran 2023 Features supported by GNU Fortran See also: * [Fortran 2018 implementation status](https://gcc.gnu.org/wiki/Fortran2018Status) · * [Fortran 2008 implementation status](https://gcc.gnu.org/wiki/Fortran2008Status) · * [Fortran 2003 implementation status](https://gcc.gnu.org/wiki/Fortran2003Status) · * [TS 29113 status](https://gcc.gnu.org/wiki/TS29113Status) The listed items follow the sections of the writeup [**The new features of Fortran 2023**](https://wg5-fortran.org/N2201-N2250/N2212.pdf) by John Reid (WG5 N2212). ## Language elements (N2212 §2) | Feature | Status | |---|---| | Longer lines (10 000 chars) and longer statements (1 000 000 chars, no 255-continuation limit) (US 01/02) | **Yes** (since 14.0) | | Automatic allocation of deferred-length character variables in new contexts (US 14) | **Partial** (Intrinsic assignment has worked since F2003 support. The new F2023 contexts do **not** work.) | | `TYPEOF` and `CLASSOF` declaration specifiers (US 16) | **No** | | Conditional expressions `( c ? a : b )` (US 22) | **Partial** (since 16.0, Scalars of intrinsic type work. Array/DT operands are not supported.) | | Conditional arguments with `.NIL.` (US 22) | **No** | | BOZ literals in initialization, intrinsic assignment, typed array constructors and enum constructors (US 23) | **No** | ## Intrinsic procedures and intrinsic modules (N2212 §3) | Feature | Status | |---|---| | `SPLIT` intrinsic subroutine (US 03) | **Yes** (since 16.0, Including `BACK=`) | | `TOKENIZE` intrinsic subroutine, both forms (US 03) | **No** | | Trigonometric functions in degrees (US 04) | **Yes** (since 14.0, PR112873, Available as a GNU extension behind `-fdec-math` since 7.0) | | Trigonometric functions in half revolutions (US 05) | **Yes** (since 16.0, Lowered to the C23 libm functions, so the runtime needs a libm that provides them (glibc ≥ 2.41). | | `SELECTED_LOGICAL_KIND` (US 06) | **Yes** (since 15.0) | | | `SYSTEM_CLOCK`: all integer arguments must have the same kind, at least default integer | **Yes** (since 14.0) | | `IEEE_MAX`, `IEEE_MAX_MAG`, `IEEE_MIN`, `IEEE_MIN_MAG` in `IEEE_ARITHMETIC` | **No** | | `IEEE_MAX_NUM`, `IEEE_MAX_NUM_MAG`, `IEEE_MIN_NUM`, `IEEE_MIN_NUM_MAG` with ISO/IEC 60559:2020 semantics | **Partial** | | `LOGICAL8`, `LOGICAL16`, `LOGICAL32`, `LOGICAL64`, `REAL16` in `ISO_FORTRAN_ENV` (US 07/08) | **Yes** (since 15.0) | ## Interoperability with C (N2212 §4) | Feature | Status | |---|---| | `C_F_POINTER` with `LOWER=` argument (UK 01) | **Yes** (since 16.0) | | `F_C_STRING` (US 09) | **Yes** (since 15.0, Including `ASIS=`) | | `C_F_STRPOINTER`, both forms (US 09) | **Yes** (since 17.0) | ## Input/output (N2212 §5) | Feature | Status | |---|---| | `AT` edit descriptor (US 10) | **No** | | `LEADING_ZERO=` specifier in `OPEN` and `INQUIRE` (US 11) | **No** | | `LZ`, `LZP`, `LZS` edit descriptors (US 11) | **No** | | Public namelist group may contain a private namelist object | **No** | ## Coarrays (N2212 §6) | Feature | Status | |---|---| | Object of a type with a coarray ultimate component may be an array or allocatable (US 12) | **No** | | Put with notify: `NOTIFY_TYPE`, `NOTIFY=` in image selectors, `NOTIFY WAIT` (US 13) | **No** | | Per-image error conditions in collective subroutines | Unknown | ## Procedures (N2212 §7) | Feature | Status | |---|---| | `SIMPLE` procedures (US 15) | **No** | ## Array features (N2212 §8) | Feature | Status | |---|---| | Multiple subscripts and multiple subscript triplets `A(@v)`, `A(@l:u:s)` (US 17) | **No** | | Integer arrays specifying rank and bounds in declarations, `ALLOCATE` and pointer remapping (US 18) | **No** | | `RANK(n)` clause in type declarations | **No** | | `REDUCE` locality specifier for `DO CONCURRENT` (US 20) | **Yes** (since 15.0) | ## Enumerations (N2212 §9, US 21) | Feature | Status | |---|---| | Enumeration types: `ENUMERATION TYPE`, enumeration constructor, comparisons, `INT`/`HUGE` extensions, `NEXT`, `PREVIOUS`, `SELECT CASE`, formatted I/O | **No** | | Named interoperable enum types: `ENUM, BIND(C) :: name`, enum constructor, integer-conformant assignment | **No** (Only the F2003/F2018 anonymous `ENUM, BIND(C)` is supported.) | ## Obsolete and deleted features (N2212 §10) | Feature | Status | |---|---| | No features were added to the obsolescent or deleted lists | n/a | ## Related, beyond Fortran 2023 | Feature | Status | |---|---| | `UNSIGNED` integers (J3/24-116, a Fortran 202Y proposal) | Experimental (since 15.0, `-funsigned`) |
