3

有谁知道后缀“ d+0 ”在下面 M1、M2 和 M4 的作业中是什么意思,或者在网络或书籍上有什么资源很可能找到这些信息吗?


      subroutine plot( t, x, p, q, nga, nt, wron, 
     &                 ngq, gq, ngaq1, ngaq2, gaq, rwh, iwh )
        implicit none

        integer*4 nga, nt, ngq, ngaq1, ngaq2, iwh(*)

        real*8 t, x(*), p(*), q(*), wron(nga,*),
     &         gq(ngq,*), gaq(ngaq1,ngaq2,*), rwh(*)

        real*8 M1, M2, M3, M4, mr, mst, h3, Tc
        integer*8 iflag

c       DISCRETIZE1( Tc, rwh, iwh )

        M1 = 0.1362d+0
        M2 = 0.09806d+0
        M3 = M1 + M2
        M4 = 0.236d+0

        mr = M1*x(1) + M2*x(2) + M3*x(3) + M4*x(4)
        mst =  M1*q(1) + M2*q(2) + M4*q(3)

        call mess3( t, x, h3, p, q, rwh, iwh, iflag )

        write (10,100) t, x(1), x(2), x(3), x(4), Tc, h3, mr-mst
100     format( e20.10, 7(1x,e20.10) ) 

  end
4

1 回答 1

9

它表示“双精度”,+0 表示 10 的零次方(零是指数)。

这是我能找到的第一个参考的引述:

存储在计算机中的数字在大小和精度上都是有限的。限制取决于特定的计算机。因此,REAL 数只有一定数量的有效数字。如果计算需要更多有效数字,则必须使用双精度数字。DOUBLE PRECISION 常数以与单精度 REAL 常数相同的指数形式写入,不同之处在于用 D 而不是 E 将尾数与指数分开。

这里引用了一个更好的参考资料www.fortran.com,特别是 F77 标准。

4.5.2 双精度常数。

双精度常数的形式有:

  1. 基本实常数后跟双精度指数
  2. 整数常量,后跟双精度指数

双精度常量的值是 D 前面的常量和 D 后面的整数所指示的 10 的幂的乘积。形式 (2) 的整数常量部分可以写成比处理器使用的位数更多的数字来近似常数的值。

于 2009-05-27T03:36:45.690 回答