ナビゲーション:前へ 上へ 次へ
11.4 Input/output
-
[7.0]
接続されていない装置またはファイルの
INQUIRE
文のRECL=
指定子は、値−1を変数に割り当てるようになりました。ACCESS='STREAM'
に接続されている装置またはファイルの場合、変数に値−2を割り当てます。 以前のFortran標準では、変数は未定義になりました。 -
[7.1]
SIZE=
指定子は、ADVANCE='NO'
なしのREAD
文で使用できます。つまり、ADVANCE=
指定子なしのREAD
文、または明示的なADVANCE='YES'
を持つ場合に使用できます。
例)Character(65536) buf Integer nc Read(*,'(A)',Size=nc) buf Print *,'The number of characters on that line was',nc
SIZE=
は並び変数群形式では許可されていないことに注意してください。 このような書式の編集記述子がなく、SIZE=
でカウントされる文字がないため、無意味だからです。 -
[7.2]
E0
指数幅指定子は、指数幅を指定できるすべての編集記述子(つまりE
、EN
など、ただしD
は除く)で使用できます。 これは指数の最小幅の書式設定を指定します。 例えば、Print '(7X,3ES10.2E0)', 1.23, 4.56E24, 7.89D101
は以下を出力します1.23E+0 4.56E+24 7.89E+101
-
[7.2]
E
、D
、EN
およびES
編集記述子は出力で幅ゼロを持つことができます。 これはI
およびその他の編集記述子と同様に、最小幅編集を提供します。つまり、 処理系はフィールドがアスタリスクで埋められることなく幅 w の最小値を選択します。 これは、先頭の空白が抑制され、E
およびD
については、スケール ファクターがゼロ以下の場合、小数記号の前のオプションのゼロが抑制されることを意味します。例えば、以下に示すフォーマットで 12.3 を印刷すると、先頭および末尾の空白なしで以下の結果が表示されます。
E0.4
.1230E+02
E0.4E3
.1230E+002
1PE0.4
1.2300E+01
EN0.4
12.3000E+00
ES0.4
1.2300E+01
E0.4E0
.1230E+2
フィールド幅は指数の形式に影響しません。つまり、数字を最小幅で印刷するには、指数幅ゼロも使用する必要があります(上記の最後の例で示されているように)。
これらの編集記述子の仮数部分の末尾のゼロを除去する手段はありません(新しい
EX
編集記述子では可能です)。 -
[7.2]
G0.d
編集記述子は、整数、論理、および文字型で許可されます。 Fortran 2008 ではこれは入出力エラーでした。 Fortran 2018 では、整数の場合はI0
、論理の場合はL1
、文字の場合はA
と同じ効果があります。 例えば、Print '(7X,"start:",3G0.17,":end")', 123, .True., 'ok'
はstart:123Tok:end
を印刷します。 -
[7.2]
新しい編集記述子
EXw.d
およびEXw.dEe
は、 16進仮数部を持つ浮動小数点数の出力に使用することができます。 フォーマットは[ s ]
ここで、s はオプションのプラスまたはマイナス符号(+ または −)、 各 xi は16進数(0X
x0.
x1x2… exponent0
…9
またはA
…F
)、 そして exponent は10進数で表された2のべき乗(二進指数)で、フォーマットはP
s z1…zn です。オプションのE
e が現れる場合、n は e と等しく、そうでない場合は指数を表すのに必要な最小の桁数です。 指数がゼロに等しい場合、符号 s はプラス符号です。数字 d の桁数がゼロの場合、生成される仮数桁 xi の数は内部値を正確に表す最小の数です。 内部値の基数が2のべき乗でない場合、d はゼロであってはなりません。
入力において、
EX
編集記述子の効果はF
編集記述子と同一です。最初の16進数桁の値はゼロでないことを除いて標準化されていません。 したがって、コンパイラによっては、
EX0.1
で 1.0 の値を書くと0X1.0P+0
、0X2.0P-1
、0X4.0P-2
、または0X8.0P-3
を生成するかもしれません。 nAG Fortran コンパイラは常に最上位ビットをセットするように仮数をシフトするため、 この場合は0X8.0P-3
を出力します。 -
[7.2]
並び、変数群、および明示的書式設定(例:
F
編集記述子)を使用した浮動小数点数の入力は、16進数仮数部形式の入力値を受け入れます。 これは、EX
編集記述子によって生成される形式です。 16進数仮数部値は常にオプションの符号に続いて数字のゼロと文字X
で始まります。 つまり、+0X
、-0X
、または0X
であり、明確な曖昧さはありません。例えば、‘
-0XA.P-3
’ を読み取ると値-1.25
を生成します。数値入力の通常の規則として、小文字入力は大文字と同様に扱われます。したがって
-0xa.p-3
は-0XA.P-3
と同じ値を生成します。