[flang] Fix errors in ISO_FORTRAN_ENV module for REAL128

Some parameters of 128-bit IEEE floating-point numbers were
incorrect, leading to a failure to define REAL128 to 16.

Differential Revision: https://reviews.llvm.org/D95387

GitOrigin-RevId: 03f1c9fa85d426d8638cefdf58496733ae225de1
diff --git a/module/iso_fortran_env.f90 b/module/iso_fortran_env.f90
index 957c3ec..c8dc03b 100644
--- a/module/iso_fortran_env.f90
+++ b/module/iso_fortran_env.f90
@@ -86,7 +86,7 @@
     selectedReal64 = selected_real_kind(15, 307), &   ! IEEE double
     selectedReal80 = selected_real_kind(18, 4931), &  ! 80x87 extended
     selectedReal64x2 = selected_real_kind(31, 307), & ! "double-double"
-    selectedReal128 = selected_real_kind(33, 9863), & ! IEEE quad
+    selectedReal128 = selected_real_kind(33, 4931), & ! IEEE quad
     safeReal16 = merge(selectedReal16, selected_real_kind(0,0), &
                        selectedReal16 >= 0), &
     safeBfloat16 = merge(selectedBfloat16, selected_real_kind(0,0), &
@@ -115,7 +115,7 @@
     real64x2 = merge(selectedReal64x2, merge(-2, -1, selectedReal64x2 >= 0), &
                      digits(real(0,kind=safeReal64x2)) == 106), &
     real128 = merge(selectedReal128, merge(-2, -1, selectedReal128 >= 0), &
-                    digits(real(0,kind=safeReal128)) == 112)
+                    digits(real(0,kind=safeReal128)) == 113)
 
   integer, parameter :: real_kinds(*) = [ &
     [(real16, integer :: j=1, count([real16 >= 0]))], &