chap03/sample2.f90

サンプルコードのダウンロード

 1program sample
 2  implicit none ! 暗黙の型宣言禁止
 3
 4  ! 整数型
 5  integer(kind=4) :: i4     ! 4バイト(32ビット)の整数型
 6  integer(kind=8) :: i8     ! 8バイト(64ビット)の整数型
 7
 8  ! 実数型
 9  real(kind=4) :: r4      ! 4バイト(32ビット)の実数型(単精度)
10  real(kind=8) :: r8      ! 8バイト(64ビット)の実数型(倍精度)
11  real(kind=16) :: r16    ! 16バイト(128ビット)の実数型(4倍精度)
12
13  ! 複素数型(実数2つ分の領域が必要になる)
14  complex(kind=4) :: c4     ! 8バイト(64ビット)の複素数型   = 単精度
15  complex(kind=8) :: c8     ! 16バイト(128ビット)の複素数型 = 倍精度
16
17  ! ただし'kind='を省略して例えば以下のように宣言しても良い
18  real(8) :: x, y, z
19
20  ! 文字列型は少し特殊で通常はkind=1である。文字列の長さはlen=で指定する
21  character(len=256) :: char   ! 256文字分
22
23  ! 論理型(このように宣言文で初期化してもよい)
24  logical :: torf = .true.
25
26  ! 4バイト整数に値を代入
27  i4 = 2048
28  write(*, *) i4
29
30  ! 8バイト整数でも同様
31  i8 = 2048
32  write(*, *) i8
33
34  ! 単精度の実数 (デフォルトでは'_4'を指定したのと同じ)
35  r4 = 3.14
36  write(*, *) r4
37
38  ! 倍精度の実数 ('_8'でkind=8を指定)
39  r8 = 3.14_8
40  write(*, *) r8
41
42  ! 複素数型の変数に 2.71 + 0.99 i を代入
43  c4 = (2.71, 0.99)
44  write(*, *) c4
45
46  ! 同様にkindパラメータを指定可能
47  c8 = (2.71_8, 0.99_8)
48  write(*, *) c8
49
50  ! 文字型の変数に文字列を代入
51  char = 'this is text'
52
53  ! 実数を代入して表示
54  x = 3.14
55  write(*, *) 'real (original) => ', x
56
57  ! yにxの値を代入
58  y = x
59
60  ! xの値を変更
61  x = 2.71
62
63  ! yの値を表示(xを変更してもeは変更されない)
64  write(*, *) 'real (not modified) => ', y
65
66  ! 論理型の値を表示
67  write(*, *) 'logical => ', torf
68
69  stop
70endprogram sample