Fortran - 倍精度浮動小数点数の指定方法!

Updated:


今回は、 Fortran95 での倍精度浮動小数点数の指定方法についてです。

0. 前提条件

  • LMDE2(Linux Mint Debian Edition 2; 64bit) での作業を想定。
  • GCC 6.3.0 (GFortran) でのコンパイルを想定。
  • Fortran には長けていないので、コードに誤りがあるかもしれない。

1. Fortran コードの作成

File: double_precision_real.f95

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
!****************************************************
! 単精度・倍精度浮動小数点数の確認
!
! date          name            version
! 2017.04.10    mk-mode.com     1.00 新規作成
!
! Copyright(C) 2017 mk-mode.com All Rights Reserved.
!****************************************************
!
program double_precision_real
  implicit none
  integer, parameter ::  SP = kind(1.0)
  integer, parameter ::  DP = selected_real_kind(2*precision(1.0_SP))
  real(SP) :: a
  real(DP) :: b
  a = 3.1415926535897323846264338327950288_SP
  b = 3.1415926535897323846264338327950288_DP
  print *,' a, b = ', a, b
end program double_precision_real
  • 上記の SP は、単精度浮動小数点数の精度に関係した整数定数
  • 上記の DP は、SP を使って単精度として指定した浮動小数点数の2倍の精度を持つ浮動小数点数、つまり倍精度浮動小数点数に関係した整数定数
  • real(SP), real(DP) で単精度浮動小数点と倍精度浮動小数点数を宣言

  • Gist - Fortran code to specify floating-point numbers.

2. コンパイル

$ gfortran double_precision_real.f95 -o double_precision_real

3. 実行

$ ./double_precision_real
  a, b =    3.14159274       3.1415926535897323

4. 参考サイト


学生時代に使用した Fortran (当時は大文字の FORTRAN77 )を思い出すべく、簡単なコードを書いてみた次第です。(当時覚えたことはほとんど忘れているので、初心者レベル)

少し前に円周率計算を行ったことはありますが、いずれは、他の複雑な計算等も行ってみたいと考えております。

以上。





 

Sponsored Link

 

Comments