chap06/sample2.f90

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

 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