chap06/sample3.f90

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

 1program sample
 2  implicit none
 3
 4  integer :: i, n, ios
 5  real(8) :: x, y
 6
 7  n = 32
 8
 9  !
10  ! アスキー(formatted)で出力(上書き)
11  !
12  open(unit=10, iostat=ios, file='ascii.dat', action='write', &
13       & form='formatted', status='replace')
14
15  if(ios /= 0) then
16    write(*, *) 'Failed to open file for output'
17    stop
18  endif
19
20  ! ファイル(装置番号=10)にデータを書き出し
21  do i = 1, 64
22    x = real(i, 8) / real(n - 1, 8)
23    y = cos(2 * 3.1415_8 * x)
24    write(10, '(e20.8, e20.8)') x, y
25  enddo
26
27  close(10)
28
29  !
30  ! アスキー(formatted)で読み込み (positionはなくても良い)
31  !
32  open(unit=20, iostat=ios, file='ascii.dat', action='read', &
33       & form='formatted', status='old', position='rewind')
34
35  if(ios /= 0) then
36    write(*, *) 'Failed to open file for input'
37    stop
38  endif
39
40  do i = 1, n
41    ! データを読み込んで表示
42    read(20, *) x, y
43    write(*, '(e20.8, e20.8)') x, y
44  enddo
45
46  close(20)
47
48  stop
49endprogram sample