ISO/IEC 1539-1:2018/Cor 2:2023
(Corrigendum)Information technology — Programming languages — Fortran — Part 1: Base language — Technical Corrigendum 2
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
Relations
Buy Standard
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
baseRECTIFICATIF 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.2Delete 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 samename 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 ofrecursion 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 atany 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
baseRECTIFICATIF 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.2Delete 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 samename 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 ofrecursion 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 atany 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.