nAG Fortran コンパイラ 7.2 マニュアル

 
ナビゲーション:前へ   上へ   次へ

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 指数幅指定子は、指数幅を指定できるすべての編集記述子(つまり EEN など、ただし D は除く)で使用できます。 これは指数の最小幅の書式設定を指定します。 例えば、
           Print '(7X,3ES10.2E0)', 1.23, 4.56E24, 7.89D101
    
    は以下を出力します
              1.23E+0  4.56E+24 7.89E+101
    
  • [7.2] EDEN および 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 ] 0X x0 . x1x2exponent

    ここで、s はオプションのプラスまたはマイナス符号(+ または −)、 各 xi は16進数(09 または AF)、 そして exponent は10進数で表された2のべき乗(二進指数)で、フォーマットは P s z1zn です。オプションの Ee が現れる場合、ne と等しく、そうでない場合は指数を表すのに必要な最小の桁数です。 指数がゼロに等しい場合、符号 s はプラス符号です。

    数字 d の桁数がゼロの場合、生成される仮数桁 xi の数は内部値を正確に表す最小の数です。 内部値の基数が2のべき乗でない場合、d はゼロであってはなりません。

    入力において、EX 編集記述子の効果は F 編集記述子と同一です。

    最初の16進数桁の値はゼロでないことを除いて標準化されていません。 したがって、コンパイラによっては、EX0.1 で 1.0 の値を書くと 0X1.0P+00X2.0P-10X4.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 と同じ値を生成します。

Privacy Policy  /  Trademarks