Information technology — Programming languages — Fortran — Part 1: Base language — Technical Corrigendum 2

Technologies de l'information — Langages de programmation — Fortran — Partie 1: Langage de base — Technical Corrigendum 2

General Information

Status
Published
Publication Date
08-Mar-2023
Current Stage
6060 - International Standard published
Start Date
09-Mar-2023
Completion Date
09-Mar-2023
Ref Project

Relations

Buy Standard

Standard
REDLINE ISO/IEC 1539-1:2018/Cor 2:2023 - Information technology — Programming languages — Fortran — Part 1: Base language — Technical Corrigendum 2 Released:9. 03. 2023
English language
6 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 1539-1:2018/Cor 2:2023 - Information technology — Programming languages — Fortran — Part 1: Base language — Technical Corrigendum 2 Released:9. 03. 2023
English language
6 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

ISO/IEC 1539-1:2018/Cor.2:2023(E)
ISO/IEC/JTC1/SC22/WG5-N2210
ISO/IEC 1539-1:2018 - TECHNICAL CORRIGENDUM 2
INTERNATIONAL STANDARD ISO/IEC 1539-1:2018
TECHNICAL CORRIGENDUM 2
Published 2023-03

INTERNATIONAL ORGANIZATION FOR STANDARDIZATION • МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ • ORGANISATION INTERNATIONALE DE NORMALISATION

INTERNATIONAL ELECTROTECHNICAL COMMISSION • МЕЖДУНАРОДНАЯ ЭЛЕКТРОТЕХНИЧЕСКАЯ КОМИССИЯ • COMMISSION ÉLECTROTECHNIQUE INTERNATIONALE

Information technology — Programming languages — Fortran —
Part 1: Base language
TECHNICAL CORRIGENDUM 2

Technologies de l'information — Langages de programmation — Fortran — Partie 1: Langage de

base
RECTIFICATIF TECHNIQUE 2

Technical Corrigendum 2 to ISO/IEC 1539-1:2018 was prepared by Joint Technical Committee

ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments

and system software interfaces.
ICS 35.060 Ref. No. ISO/IEC 1539-1:2018/Cor.2:2023(E)
© ISO/IEC 2023 – All rights reserved
Published in Switzerland
---------------------- Page: 1 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Blank page
ii © ISO/IEC 2023 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Information technology — Programming languages — Fortran —
Part 1: Base language
TECHNICAL CORRIGENDUM 2
Introduction

In the second paragraph, in the tenth sentence of bullet point “Intrinsic procedures and modules”, after

“C_F_POINTER” add “and C_F_PROCPOINTER”.

In the second paragraph, in the last sentence of bullet point “Program units and procedures”, after

“dummy argument” add “, or a coarray ultimate component of a dummy argument,”.
Subclause 5.4.7
Append a new sentence to the second paragraph:

“If a coarray is an unsaved local variable of a recursive procedure, its corresponding

coarrays are the ones at the same depth of recursion of that procedure on each image.”

Subclause 9.7.1.2

Delete the last sentence in the third paragraph, that is “If the coarray … on those images.”, and

insert the following three sentences:

“If the coarray is a dummy argument, the ultimate arguments (15.5.2.3) on those images

shall be corresponding coarrays. If the coarray is an ultimate component of a dummy

argument, the ultimate arguments on those images shall be declared with the same

name in the same scoping unit. If the coarray is an unsaved local variable of a recursive

procedure, the execution of the ALLOCATE statement shall be at the same depth of
recursion of that procedure on every active image in the current team.”
Subclause 10.1.11
At the end of the sixth paragraph, add the sentence:

“If a specification inquiry depends on the type of an object of derived type, that type

shall be previously defined.”
Subclause 11.1.7.2

In the first sentence of constraint C1128, after “of finalizable type,” insert “shall not have an

allocatable ultimate component,”
Subclause 12.6.2.1
After constraint C1213 insert a new constraint:

“C1213a A SIZE= specifier shall not appear in a list-directed or namelist input

statement.”
Subclause 13.7.2.3.3
In table 13.1:
change row 1, column 1 from “Ew.d” to “Ew.d with w > 0”;
change row 3, column 1 from “Ew.d E0” to “Ew.d E0 or E0.d”;
© ISO/IEC 2023 – All rights reserved 1
---------------------- Page: 3 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
change row 4, column 1 from “Dw.d” to “Dw.d with w > 0”;
add new row 5 with cells:
column 1: “D0.d”
column 2: “any”
column 3: “D±z z z or E±z z z ”
1 2… s 1 2… s
Subclause 13.7.2.3.4
In Table 13.2:
change row 1, column 1 from “ENw.d” to “ENw.d with w > 0”;
change row 3, column 1 from “ENw.d E0” to “ENw.d E0 or EN0.d”;
Subclause 13.7.2.3.5
In Table 13.3:
change row 1, column 1 from “ESw.d” to “ESw.d with w > 0”;
change row 3, column 1 from “ESw.d E0” to “ESw.d E0 or ES0.d”;
Subclause 15.4.3.4.2

In the final sentence of the first paragraph, after “(10.1.5)” insert “, treating a CLASS(*) dummy

argument as not differing in type or kind”.
Subclause 15.5.2.11

In the second paragraph of the subclause delete the second and third sentences, that is “If the

dummy argument … array element order”. Insert a new (third) paragraph:

“If the dummy argument is not of type character with default or C character kind:

• if the actual argument is an array expression, the element sequence consists of the

elements in array element order;

• if the actual argument is an array element designator of a simply contiguous array, the

element sequence consists of that array element and each element that follows it in array

element order;

• otherwise, if the actual argument is scalar, the element sequence consists of that scalar.”

In the second bullet point of the third (now fourth) paragraph, after “substring designator”

insert “of a simply contiguous array”. In the third bullet point change “if the actual” to

“otherwise, if the actual” and delete “and not an array ... designator”.
Subclause 15.5.2.13
In the first paragraph, at the end of item (3) (c) delete “or”.
At the end of item (3) (d) replace “image.” by “image, or

(e) the dummy argument has a coarray ultimate component and the action is a coindexed

definition of the corresponding coarray by a different image.”.
In the first paragraph, at the end of item (4) (c) delete “or”.
At the end of item (4) (d) replace “image.” by “image, or
(e) the dummy argument has a coarray ultimate component and the reference is a
coindexed reference of the corresponding coarray by a different image.”.
2 © ISO/IEC 2023 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Replace the first sentence of NOTE 5 by:

“The exceptions to the aliasing restrictions for dummy arguments that are coarrays or

have coarray ultimate components enable cross-image access while the procedure is

executing.”
Subclause 15.7

In the second paragraph, following NOTE 1 and before constraint C1590, add a new constraint:

C1589a A named local entity or construct entity of a pure subprogram shall not be of a

type that has default initialization of a data pointer component to a target at
any level of component selection.
In the second paragraph, following constraint C1599, add a new constraint:
C1599a A reference to the function C_FUNLOC from the intrinsic module
ISO_C_BINDING shall not appear in a pure subprogram if its argument is
impure.
Subclause 16.9.46

In paragraph 3, Arguments, in the first sentence of the description for argument A delete

“dynamic”.
In the second sentence, after “It shall not be” insert “polymorphic or”.

In the third paragraph, at the end of the final sentence of the description for argument A add:

“, including (re)allocation of any allocatable ultimate component, and setting the dynamic type

of any polymorphic allocatable ultimate component”.
Subclause 16.9.49

In paragraph 3, Arguments, after the first sentence of the description for argument A add the

new sentence:

“It shall not be of a type with an ultimate component that is allocatable or a pointer.”

In the same paragraph, in the first sentence of the description for argument OPERATION after

“nonallocatable, ” add “noncoarray, ”.
Subclause
...

ISO/IEC 1539-1:2018/Cor.2:2023(E)
INTERNATIONAL STANDARD ISO/IEC 1539-1:2018
TECHNICAL CORRIGENDUM 2
Published 2023-03

INTERNATIONAL ORGANIZATION FOR STANDARDIZATION • МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ • ORGANISATION INTERNATIONALE DE NORMALISATION

INTERNATIONAL ELECTROTECHNICAL COMMISSION • МЕЖДУНАРОДНАЯ ЭЛЕКТРОТЕХНИЧЕСКАЯ КОМИССИЯ • COMMISSION ÉLECTROTECHNIQUE INTERNATIONALE

Information technology — Programming languages — Fortran —
Part 1: Base language
TECHNICAL CORRIGENDUM 2

Technologies de l'information — Langages de programmation — Fortran — Partie 1: Langage de

base
RECTIFICATIF TECHNIQUE 2

Technical Corrigendum 2 to ISO/IEC 1539-1:2018 was prepared by Joint Technical Committee

ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments

and system software interfaces.
ICS 35.060 Ref. No. ISO/IEC 1539-1:2018/Cor.2:2023(E)
© ISO/IEC 2023 – All rights reserved
Published in Switzerland
---------------------- Page: 1 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Blank page
ii © ISO/IEC 2023 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Information technology — Programming languages — Fortran —
Part 1: Base language
TECHNICAL CORRIGENDUM 2
Introduction

In the second paragraph, in the tenth sentence of bullet point “Intrinsic procedures and modules”, after

“C_F_POINTER” add “and C_F_PROCPOINTER”.

In the second paragraph, in the last sentence of bullet point “Program units and procedures”, after

“dummy argument” add “, or a coarray ultimate component of a dummy argument,”.
5.4.7
Append a new sentence to the second paragraph:

“If a coarray is an unsaved local variable of a recursive procedure, its corresponding

coarrays are the ones at the same depth of recursion of that procedure on each image.”

9.7.1.2

Delete the last sentence in the third paragraph, that is “If the coarray … on those images.”, and

insert the following three sentences:

“If the coarray is a dummy argument, the ultimate arguments (15.5.2.3) on those images

shall be corresponding coarrays. If the coarray is an ultimate component of a dummy

argument, the ultimate arguments on those images shall be declared with the same

name in the same scoping unit. If the coarray is an unsaved local variable of a recursive

procedure, the execution of the ALLOCATE statement shall be at the same depth of
recursion of that procedure on every active image in the current team.”
10.1.11
At the end of the sixth paragraph, add the sentence:

“If a specification inquiry depends on the type of an object of derived type, that type

shall be previously defined.”
11.1.7.2

In the first sentence of constraint C1128, after “of finalizable type,” insert “shall not have an

allocatable ultimate component,”
12.6.2.1
After constraint C1213 insert a new constraint:

“C1213a A SIZE= specifier shall not appear in a list-directed or namelist input

statement.”
13.7.2.3.3
In table 13.1:
change row 1, column 1 from “Ew.d” to “Ew.d with w > 0”;
change row 3, column 1 from “Ew.d E0” to “Ew.d E0 or E0.d”;
© ISO/IEC 2023 – All rights reserved 1
---------------------- Page: 3 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
change row 4, column 1 from “Dw.d” to “Dw.d with w > 0”;
add new row 5 with cells:
column 1: “D0.d”
column 2: “any”
column 3: “D±z z z or E±z z z ”
1 2… s 1 2… s
13.7.2.3.4
In Table 13.2:
change row 1, column 1 from “ENw.d” to “ENw.d with w > 0”;
change row 3, column 1 from “ENw.d E0” to “ENw.d E0 or EN0.d”;
13.7.2.3.5
In Table 13.3:
change row 1, column 1 from “ESw.d” to “ESw.d with w > 0”;
change row 3, column 1 from “ESw.d E0” to “ESw.d E0 or ES0.d”;
15.4.3.4.2

In the final sentence of the first paragraph, after “(10.1.5)” insert “, treating a CLASS(*) dummy

argument as not differing in type or kind”.
15.5.2.11

In the second paragraph of the subclause delete the second and third sentences, that is “If the

dummy argument … array element order”. Insert a new (third) paragraph:

“If the dummy argument is not of type character with default or C character kind:

• if the actual argument is an array expression, the element sequence consists of the

elements in array element order;

• if the actual argument is an array element designator of a simply contiguous array, the

element sequence consists of that array element and each element that follows it in array

element order;

• otherwise, if the actual argument is scalar, the element sequence consists of that scalar.”

In the second bullet point of the third (now fourth) paragraph, after “substring designator”

insert “of a simply contiguous array”. In the third bullet point change “if the actual” to

“otherwise, if the actual” and delete “and not an array ... designator”.
15.5.2.13
In the first paragraph, at the end of item (3) (c) delete “or”.
At the end of item (3) (d) replace “image.” by “image, or

(e) the dummy argument has a coarray ultimate component and the action is a coindexed

definition of the corresponding coarray by a different image.”.
In the first paragraph, at the end of item (4) (c) delete “or”.
At the end of item (4) (d) replace “image.” by “image, or
(e) the dummy argument has a coarray ultimate component and the reference is a
coindexed reference of the corresponding coarray by a different image.”.
2 © ISO/IEC 2023 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 1539-1:2018/Cor.2:2023(E)
Replace the first sentence of NOTE 5 by:

“The exceptions to the aliasing restrictions for dummy arguments that are coarrays or

have coarray ultimate components enable cross-image access while the procedure is

executing.”
15.7

In the second paragraph, following NOTE 1 and before constraint C1590, add a new constraint:

C1589a A named local entity or construct entity of a pure subprogram shall not be of a

type that has default initialization of a data pointer component to a target at
any level of component selection.
In the second paragraph, following constraint C1599, add a new constraint:
C1599a A reference to the function C_FUNLOC from the intrinsic module
ISO_C_BINDING shall not appear in a pure subprogram if its argument is
impure.
16.9.46

In paragraph 3, Arguments, in the first sentence of the description for argument A delete

“dynamic”.
In the second sentence, after “It shall not be” insert “polymorphic or”.

In the third paragraph, at the end of the final sentence of the description for argument A add:

“, including (re)allocation of any allocatable ultimate component, and setting the dynamic type

of any polymorphic allocatable ultimate component”.
16.9.49

In paragraph 3, Arguments, after the first sentence of the description for argument A add the

new sentence:

“It shall not be of a type with an ultimate component that is allocatable or a pointer.”

In the same paragraph, in the first sentence of the description for argument OPERATION after

“nonallocatable, ” add “noncoarray, ”.
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.