To: J3 J3/25-201r1 From: Steve Lionel Subject: US-09 - Further edit for Allow I/O of Enumerator Names Date: 2026-January-15 Reference: 25-126r1, 25-007r1 Van Snyder pointed out that paper 25-126r1, containing edits to implement US-09 and passed at meeting 235, neglected to remove constraint C8109 forbidding objects of enumeration-type or that contain an enumeration type component, from appearing in a namelist-group-object list. This paper removes that constraint. Most of these edits are those from 25-126r1, but additional edits were added in m238 to add clarity. Edits ===== [xv] Introduction p2 Add under the Input/Output bullet: "Entities of enumeration type (7.6.2) can appear in the I/O list of list-directed and namelist-directed input/output statements, and can correspond to a G format edit descriptor in formatted input/output statements." [140:11, C8109] 8.9 NAMELIST statement Delete constraint C8109 which reads: C8109 A namelist-group-object shall not be of enumeration type, or have a direct component that is of enumeration type. [300:19] 13.7.2.1p1 Data edit descriptors > General rules In the sentence "The I, B, O, and Z edit descriptors can be used to specify input/output of enumeration type data.", insert "G," in an appropriate place in the list of edit descriptors." [309:30] 13.7.5.1p1 Generalized editing Overview After "enum type" insert ", enumeration type, " so that the sentence reads: The Gw, Gw.d and Gw.d Ee edit descriptors are used with an effective item of enum type, enumeration type, or any intrinsic type. [310:31+] After 13.7.5.3 "Generalized logical editing", a new subclause: 13.7.5.x Generalized enumeration editing For input with a Gw, Gw.d, or Gw.dEe edit descriptor, the character string consists of a valid enumerator name for the type of the input list item, irrespective of case, with trailing blanks ignored. If the input field does not contain such a name, an error condition occurs. The value assigned to the effective item is the enumeration value with that name. For output, the field is the enumerator name for the output list value, in uppercase and padded with blanks to the right if necessary to satisfy a nonzero w field. If w is nonzero but is shorter than the width of the enumerator-name, the output field is filled with asterisks. If w is zero, the output field is the exact length of the enumerator name. The enumerator name is the name in the enumeration definition. It need not be accessible in the scope of the input/output statement. NOTE An enumerator name consists of the characters of the name in the Fortran character set; the default character set is required to include those characters. [316:15+] 13.10.3.1p6+ List-directed input forms Insert a new paragraph: When the next effective item is of an enumeration type, the value in the input record is interpreted as if a Gw edit descriptor with a suitable value of w were used. [318:27+] 13.10.4p7+ List-directed output Insert a new paragraph: Enumeration type output values are produced with the effect of a G0 edit descriptor. [321:7] 13.11.3.3p1 Namelist input values In "where c is a literal constant" insert "or enumerator name" after "constant". so that the sentence reads: Each value is either a null value (13.11.3.4), c, r*c, or r*, where c is a literal constant or enumerator name, optionally signed if integer or real, and r is an unsigned, nonzero, integer literal constant. --END--