chap05/sample3.f90

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

 1program sample
 2  implicit none
 3
 4  integer :: n
 5
 6  ! 動的配列(実行時にしかサイズが分からない場合)
 7  integer, allocatable :: x(:)
 8
 9  ! 以下は動的(allocatable)配列の使い方
10  write(*, *) 'Input array size: '
11
12  ! 配列サイズ
13  read(*, *) n
14
15  ! allocateされていないことを確認してからallocate
16  if(.not. allocated(x)) then
17    allocate(x(n))
18  else
19    write(*, *) 'Error: already allocated'
20  endif
21
22  ! 確かにallocateされたか?
23  if(allocated(x)) then
24    write(*, *) 'Successfully allocated'
25  endif
26
27  ! 配列の各要素を読み込み
28  write(*, *) 'Input array elements: '
29  read(*, *) x
30
31  ! 出力
32  write(*, *) 'allocatable array : ', x
33
34  ! メモリを解放
35  deallocate(x)
36
37  stop
38endprogram sample