Fortran Tip集

前へ   上へ   次へ

21 newunitの使い方(装置番号自動取得機能)

Fortran 2008 以降では、ファイル装置番号を自動的に取得するための `newunit` キーワードが導入されました。 `newunit` キーワードは `open` 文の中で使用され、他の論理装置番号と重ならない新しい特別な装置番号を自動的に割り当てる事が可能となりました。

基本的な書式は以下の通りです:

open(newunit=変数名, file='ファイル名', ...)
もしくは
open(newunit=変数名, status='scratch', ...)
ここで:
  • `変数名`:割り当てられた装置番号を受け取るための整数変数。この変数は、後続の操作(読み込み、書き込み、閉じる等)で使用します。(装置番号は多くの環境で負の値となる)
  • `file="ファイル名"`:開く予定のファイルの名前。`status='scratch'`を使用する場合は必要ありません。
  • [その他のオプション]:form=, access=, action=, position=等

newunitを用いる利点は以下の通りです。

  • 装置番号を明示的に管理する必要がないため、コードがシンプルになります。
  • 無効な装置番号やすでに使用されている装置番号を指定するリスクを減少させます。

以下に `newunit` を使用してテキストファイルを開き、書き込み、閉じるコード例を示します。

[ newunit.f90 ] - newunitによる装置番号自動取得を示すサンプル

program newunit_example
    implicit none
    integer :: unit_number, temp_unit
    character(len=50) :: text

    ! Regular file
    open(newunit=unit_number, file='testfile.txt', action='write')
    write(unit_number, *) 'Hello Fortran!'
    close(unit_number)

    ! Scratch file
    open(newunit=temp_unit, status='scratch', action='readwrite')
    write(temp_unit, '(F8.4)') 1.23
    rewind(temp_unit)
    read(temp_unit, '(A)') text
    print *, 'Read from scratch file:', trim(text)
    close(temp_unit)

end program newunit_example
実行例:
 Read from scratch file:  1.2300



前へ   上へ   次へ
関連情報
ご案内
© 隴鯉ス・隴幢スャ郢昜ケ斟礼ケ晢スシ郢晢ス。郢晢スェ郢ァ�ォ郢晢スォ郢ァ�「郢晢スォ郢ァ�エ郢晢スェ郢ァ�コ郢晢ソス郢ァ�コ郢ァ�ー郢晢スォ郢晢スシ郢晉軸�ス�ェ陟台ク茨スシ螟ゑス、�セ 2024
Privacy Policy  /  Trademarks