mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

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

[ プログラミング, 数学 ] [ Fortran ]

こんばんは。

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

0. 前提条件

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

1. Fortran コードの作成

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. コンパイル

1
$ gfortran double_precision_real.f95 -o double_precision_real

3. 実行

1
2
$ ./double_precision_real
  a, b =    3.14159274       3.1415926535897323

4. 参考サイト


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

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

以上。

プログラミング, 数学 Fortran



« Fortran - 級数計算! Fortran - 素数一覧の算出! »

Comments