1program sample
2 implicit none
3
4 integer :: ios
5
6 !
7 ! ファイルを開く
8 !
9 ! unit : 装置番号(ファイルを識別するための数値)
10 ! iostat : 正常時は0
11 ! file : ファイル名
12 ! action : 操作
13 ! form : formatted(アスキー形式) or unformatted(バイナリ形式)
14 ! status : new, old, replace
15 ! position : rewind, append
16 !
17
18 ! * ファイルの新規作成(既に存在する場合はエラー)
19 open(unit=10, iostat=ios, file='ascii.dat', action='write', &
20 & form='formatted', status='new')
21
22 ! * ファイルの新規作成(既に存在する場合は中身を破棄)
23 !open(unit=10, iostat=ios, file='ascii.dat', action='write', &
24 ! & form='formatted', status='replace')
25
26 ! * 既に存在するファイルを開き, 位置をファイル終端に指定する(データの付け足し)
27 !open(unit=10, iostat=ios, file='ascii.dat', action='write', &
28 ! & form='formatted', status='old', position='append')
29
30 ! ファイルが正常に開けたかどうかをチェックする
31 if(ios /= 0) then
32 write(*, *) 'Failed to open file for output'
33 stop
34 endif
35
36 ! ファイルを閉じる
37 close(10)
38
39 !
40 ! 既に存在するファイルを読み込み専用で開き, 位置をファイル先頭に指定する
41 ! (ただしpositionは指定しなくても良い)
42 !
43 open(unit=20, iostat=ios, file='ascii.dat', action='read', &
44 & form='formatted', status='old', position='rewind')
45
46 ! またチェック
47 if(ios /= 0) then
48 write(*, *) 'Failed to open file for input'
49 stop
50 endif
51
52 ! ファイルを閉じる
53 close(20)
54
55 stop
56endprogram sample