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