我正在使用Windows Vista 64位。
我需要编译一个Fortran文件,我需要编辑该文件以匹配我的机器的“机器相关常量”
在该文件中,我有以下信息。 任何建议都会有很大帮助。 感谢
C Explanation of machine-dependent constants
C
C XINF = largest positive machine number
C XMAX1 = beta ** (p-1), where beta is the radix for the
C floating-point system, and p is the number of base-beta
C digits in the floating-point significand. This is an
C upper bound on non-integral floating-point numbers, and
C the negative of the lower bound on acceptable negative
C arguments for PSI. If rounding is necessary, round this
C value down.
C XMIN1 = the smallest in magnitude acceptable argument. We
C recommend XMIN1 = MAX(1/XINF,xmin) rounded up, where
C xmin is the smallest positive floating-point number.
C XSMALL = absolute argument below which PI*COTAN(PI*X) may be
C represented by 1/X. We recommend XSMALL < sqrt(3 eps)/pi,
C where eps is the smallest positive number such that
C 1+eps > 1.
C XLARGE = argument beyond which PSI(X) may be represented by
C LOG(X). The solution to the equation
C x*ln(x) = beta ** p
C is a safe value.
C
C Approximate values for some important machines are
C
C beta p eps xmin XINF
C
C CDC 7600 (S.P.) 2 48 7.11E-15 3.13E-294 1.26E+322
C CRAY-1 (S.P.) 2 48 7.11E-15 4.58E-2467 5.45E+2465
C IEEE (IBM/XT,
C SUN, etc.) (S.P.) 2 24 1.19E-07 1.18E-38 3.40E+38
C IEEE (IBM/XT,
C SUN, etc.) (D.P.) 2 53 1.11D-16 2.23E-308 1.79D+308
C IBM 3033 (D.P.) 16 14 1.11D-16 5.40D-79 7.23D+75
C SUN 3/160 (D.P.) 2 53 1.11D-16 2.23D-308 1.79D+308
C VAX 11/780 (S.P.) 2 24 5.96E-08 2.94E-39 1.70E+38
C (D.P.) 2 56 1.39D-17 2.94D-39 1.70D+38
C (G Format) (D.P.) 2 53 1.11D-16 5.57D-309 8.98D+307
C
C XMIN1 XMAX1 XSMALL XLARGE
C
C CDC 7600 (S.P.) 3.13E-294 1.40E+14 4.64E-08 9.42E+12
C CRAY-1 (S.P.) 1.84E-2466 1.40E+14 4.64E-08 9.42E+12
C IEEE (IBM/XT,
C SUN, etc.) (S.P.) 1.18E-38 8.38E+06 1.90E-04 1.20E+06
C IEEE (IBM/XT,
C SUN, etc.) (D.P.) 2.23D-308 4.50D+15 5.80D-09 2.71D+14
C IBM 3033 (D.P.) 1.39D-76 4.50D+15 5.80D-09 2.05D+15
C SUN 3/160 (D.P.) 2.23D-308 4.50D+15 5.80D-09 2.71D+14
C VAX 11/780 (S.P.) 5.89E-39 8.38E+06 1.35E-04 1.20E+06
C (D.P.) 5.89D-39 3.60D+16 2.05D-09 2.05D+15
C (G Format) (D.P.) 1.12D-308 4.50D+15 5.80D-09 2.71D+14
C
答案 0 :(得分:2)
你在睡觉前就抓住了我,所以我会把它缩短(因为我不能在这种情况下写出明智的答案)。 Fortran引入了许多用于确定系统相关常量的函数 - 拿一本书或一个互联网教程,查找SELECTED_REAL_KIND,EPSILON(以及那里经常出现的链接)等函数。
答案 1 :(得分:1)
现代英特尔CPU使用IEEE兼容的浮点运算 - 似乎所有这些机器常数都与浮点值有关,而不是整数。因此,我认为您应该很好地复制您所显示的表中IEEE行的值。 S.P.和D.P引用单精度和双精度,您可能需要在其他地方指定它并在表格中选择相应的行。