Fortran の実数リテラル式の接尾辞 'd+0'
-
06-09-2019 - |
質問
接尾辞「」が何か知っている人はいますか?d+0「」は、以下の M1、M2、および M4 への課題を意味しますか、それともこの情報を見つける可能性が高い Web または書籍上のリソースはありますか?
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
解決
これは「倍精度」を意味し、+0 は 10 の 0 乗 (ゼロは指数) を意味します。
以下はからの引用です 最初のリファレンス 私は以下を見つけることができました:
コンピューターに保存されている数は、大きさと精度が制限されています。制限は特定のコンピューターに依存します。したがって、実際の数には、一定数の有意な数字しかありません。計算にはもっと重要な数字が必要な場合は、二重精度数を使用する必要があります。二重精度定数は、マンティッサを指数から分離するEを除くDを除き、単一の精度の実数定数と同じ指数形式で記述されます。
そして、これはより良い参考文献からの引用です、 www.fortran.com, 、具体的には F77 規格です。
4.5.2 倍精度定数。
二重精度定数の形式は次のとおりです。
- 基本的な実際の定数に続いて、二重精度指数が続きます
- 整数定数に続いて、二重精度指数が続きます
二重精度定数の値は、dに先行する定数の積です。フォーム(2)の整数定数部分は、プロセッサが定数の値を近似するよりも多くの数字で記述できます。
所属していません StackOverflow