Overview
ISO/IEC 1539-1:2018/Cor.2:2023 is Technical Corrigendum 2 to the ISO/IEC 1539-1:2018 Fortran base language standard. It provides corrections, clarifications and small normative changes to the Fortran language definition-covering coarray semantics, intrinsic procedures, interoperability with C, formatted I/O syntax, constraints for pure procedures, and several intrinsic-procedure and descriptor behaviors. This corrigendum is intended to tighten language rules to improve portability, compiler conformance, and predictable behavior for parallel and interoperable Fortran code.
Key Topics and Technical Requirements
- Coarray semantics and constraints
- Clarifies correspondence of coarrays when passed as dummy arguments, ultimate components, or unsaved local variables in recursive procedures.
- Adds rules for ALLOCATE on coarrays and cross-image definitions/references.
- Interoperability with C (ISO_C_BINDING)
- Adds C_F_PROCPOINTER to lists of interoperable procedures.
- Restricts use of C_FUNLOC in pure subprograms when argument is impure.
- Adjusts requirements for C descriptors (elem_len, base_addr) for character pointers.
- Pure and elemental procedure restrictions
- New constraints on types with default initialization and pointer-to-target defaults for pure subprogram entities.
- Changes labeling of elemental classes to “pure elemental” where applicable.
- Formatted I/O and lexical syntax
- Updates format-token tables (E/D/EN/ES forms) to refine allowed forms (e.g., Ew.d with w > 0, new D0.d row).
- Adds constraint prohibiting SIZE= specifier in list-directed or namelist input.
- Intrinsic procedures and argument constraints
- Tightens argument type/kind and allocatable/coarray/pointer restrictions for several intrinsics (e.g., noncoarray/nonpointer requirements).
- Examples and normative text updates
- Replaces sample program in Annex C illustrating recoverable-simulation usage.
Applications
- Fortran compiler implementers: apply the corrigendum to update parser, semantic checks, code generation, and conformance test suites.
- Static analysis and tooling vendors: adjust diagnostics for coarray, descriptor and pure-procedure constraints.
- HPC developers and library authors: rely on clarified coarray and interoperability rules to write portable parallel code.
- Language standards bodies and educators: use updated normative text for teaching and for drafting further amendments.
Who should use this standard
- Compiler and toolchain developers
- High-performance computing (HPC) application engineers using coarrays
- Developers of Fortran–C interoperable libraries
- QA teams producing conformance tests and certification
Related standards