To: J3 J3/18-148 From: Anton Schterenlikht Subject: Logical kinds, another real kind Date: 2018-February-15 Reference: 18-122, 18-131, N2147 Introduction ------------ N2146 has 16.10.2.14 INT8, INT16, INT32, and INT64 16.10.2.25 REAL32, REAL64, and REAL128 Some users demand a better control of logical kind, in particular a 1 byte logical. The primary motivation is to save space occupied by logical data objects. The proposed solution is to add LOG8, LOG16, LOG32, and LOG64 constants to ISO_FORTRAN_ENV. In addition some users advocate for REAL16, as it is supported by some modern hardware. Edits to N2146 -------------- Immediately before 16.10.2.20 LOGICAL_KINDS insert a new section with text closely mirroring 16.10.2.14 INT8, INT16, INT32, and INT64, e.g: "The values of these default integer scalar constants shall be those of the kind type parameters that specify an LOGICAL type whose storage size expressed in bits is 8, 16, 32, and 64 respectively. If, for any of these constants, the processor supports more than one kind of that size, it is processor dependent which kind value is provided. If the processor supports no kind of a particular size, that constant shall be equal to -2 if the processor supports a kind with larger size and -1 otherwise." Section 16.10.2.25 REAL32, REAL64, and REAL128, 1st sentence, insert "16, " before "32". The complete new sentence will read: "The values of these default integer scalar named constants shall be those of the kind type parameters that specify a REAL type whose storage size expressed in bits is 16 32, 64, and 128 respectively."