J3/01-235 Date: 2001/06/04 To: J3 From: /Interop Subject: Unresolved issue 213 Ref: 99-179, IEEE TR Edits and references are to J3/01-007r1. Issue 213: [376: 33-42] 1. Summary One of the edits of 99-179 introduces a conflict between the standard document 01-007r1 and the IEEE TR. This paper describes the conflict and gives a solution. 2. Description The standard 01-007r1 has the following restriction on IEEE_SET_ROUNDING_MODE: "Restriction: A program is prohibited from invoking this procedure unless IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is true for some X such that IEEE_SUPPORT_DATATYPE(X) is true." This conflicts with the IEEE TR, which has the following description of the restriction on IEEE_SET_ROUNDING_MODE: "IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) shall be true for any X such that IEEE_SUPPORT_DATATYPE(X) is true." As a result, the IEEE TR disallows using IEEE_SET_ROUNDING_MODE in the following example, but 01-007r1 allows it: ================================================= X IEEE_SUPPORT_DATATYPE(X) ================================================= real (kind=4) .true. real (kind=8) .true. real (kind=16) .true. ================================================= ============================================================ X IEEE_SUPPORT_ROUNDING(ROUND_VALUE, X) ============================================================ real (kind=4) .true. real (kind=8) .true. real (kind=16) .false. ============================================================ The edits repair the conflict, and also repair a typo in section 15.9.29. 3. Edits [376:30-32] Change the sentence: "A program is prohibited from invoking this procedure unless IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is true for some X such that IEEE_SUPPORT_DATATYPE(X) is true." to "A program is prohibited from invoking this procedure with a ROUND_VALUE such that IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is false for some X." [376:33-42] Delete J3 note. [380:20] Replace: "CALL IEEE_SET_ROUNDING(ROUND_VALUE)" to "CALL IEEE_SET_ROUNDING_MODE(ROUND_VALUE)"