Sun Studio 12: Fortran プログラミングガイド

2.5 内部ファイル

内部ファイルは、変数、部分列、配列、配列要素、構造化レコードの欄のような、CHARACTER 型のオブジェクトです。内部ファイルからの READ の場合は、文字列の定数であってもかまいません。内部ファイルにおける入出力は、データをある文字実体からほかのデータ実体に転送し、変換することによって、書式付き READ WRITE 文をシミュレートします。ファイルの入出力は実行されません。

内部ファイルを使用するときには

例: 内部ファイルから書式付きで順番に読み取ります (1 レコードのみ)。


demo% cat intern1.f
      CHARACTER X*80
      READ( *, '(A)' ) X
      READ( X, '(I3,I4)' ) N1, N2 ! 内部ファイル X を読み取る 
      WRITE( *, * )  N1, N2
      END
demo% f95 -o tstintern intern1.f
demo% tstintern
 12 99
 12 99
demo%

例: 内部ファイルから書式付きで順番に読み取ります (3 レコード)。


demo% cat intern2.f
      CHARACTER  LINE(4)*16
      DATA  LINE(1) / ' 81  81 ' /
      DATA  LINE(2) / ' 82  82 ' /
      DATA  LINE(3) / ' 83  83 ' /
      DATA  LINE(4) / ' 84  84 ' /
      READ( LINE,'(2I4)') I,J,K,L,M,N
      PRINT *, I, J, K, L, M, N
      END
demo% f95 intern2.f
demo% a.out
   81  81  82  82  83  83
demo%

例: 内部ファイルから -f77 互換モードで直接探査により読み取ります (1 レコード)。


demo% cat intern3.f
      CHARACTER LINE(4)*16
      DATA  LINE(1) / ' 81  81 ' /
      DATA  LINE(2) / ' 82  82 ' /
      DATA  LINE(3) / ' 83  83 ' /
      DATA  LINE(4) / ' 84  84 ' /
      READ ( LINE, FMT=20, REC=3 ) M, N
20       FORMAT( I4, I4 )
      PRINT *, M, N
      END
demo% f95 -f77 intern3.f
demo% a.out
   83  83
demo%