XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

FORMAT

目的

FORMAT ステートメントは I/O ステートメントに形式仕様を提供します。

構文



>>-FORMAT--(--+------------------+--)--------------------------><
              '-format_item_list-'
 
 

format_item



>>-+-+---+--data_edit_desc---------+---------------------------><
   | '-r-'                         |
   +-control_edit_desc-------------+
   +-+---+--(--format_item_list--)-+
   | '-r-'                         |
   '-char_string_edit_desc---------'
 
 

r
無符号の正の整リテラル定数であり、kind 型付きパラメーターは指定できません。または、整数値への計算を行う算術式をかぎ括弧 (< と >) で囲んで指定します。これは繰り返し仕様と呼ばれます。 format_item_list または data_edit_desc を繰り返す回数を指定します。デフォルトは 1 です。

data_edit_desc
データ編集記述子です。

control_edit_desc
制御編集記述子です。

char_string_edit_desc
文字ストリング編集記述子です。

データ編集記述子

形式 使途 ページ
A
Aw
文字値を編集します。 "A (文字) 編集"
Bw
Bw.m
2 進値を編集します。 "B (2 進) 編集"
Ew.d
Ew.dEe
Ew.dDe *
Ew.dQe *
Dw.d
ENw.d
ENw.dEe
ESw.d
ESw.dEe
Qw.d *
指数付き実数および複素数を編集します。 "E、D、および Q (拡張精度) 編集"
Fw.d 指数なしの実数および複素数を編集します。 "F (指数なし実数) 編集"
Gw.d
Gw.dEe
Gw.dDe *
Gw.dQe *
データのタイプに出力形式を適用し、組み込みタイプのデータ・フィールドを編集ます。また、データのタイプが実数の場合、データの絶対値を編集します。 "G (一般) 編集"
Iw
Iw.m
整数を編集します。 "I (整数) 編集"
Lw 論理値を編集します。 "L (論理) 編集"
Ow
Ow.m
8 進値を編集します。 "O (8 進数) 編集"
Q * 入力レコード内に残っている文字のカウントを戻します。 * "Q (文字カウント) 編集"
Zw
Zw.m
16 進値を編集します。 "Z (16 進) 編集"
注:
* IBM 拡張

それぞれの意味は次のとおりです。

w
すべてのブランクを含む、フィールドの幅を指定します。これは正でなければなりません。

FORTRAN 95 の開始ただし、出力で、IBOZ、および F 編集記述子でこれにゼロを指定できる、 Fortran 95 は例外です。 FORTRAN 95 の終了

m
印刷する桁数を示します。

d
小数点以下の桁数を指定します。

e
指数フィールド内の桁数を指定します。

wmde は、以下のように表すこともできます。

wmd、または e に対して kind パラメーターを指定することはできません。

+----------------------------------IBM 拡張----------------------------------+

注:

Q データ編集記述子には 2 つのタイプがあります (Qw.d および Q)。

拡張精度 Q
Qw.d という構文からなる Q 編集記述子です。

文字カウント Q
Q という構文からなる Q 編集記述子です。

+--------------------------------IBM 拡張の終り-------------------------------+

制御編集記述子

形式 使途 ページ
/
r /
現在のレコードに関するデータ転送の終わりを指定します。 "/ (スラッシュ) 編集"
: I/O リスト内にこれ以上項目がない場合に、形式制御の終わりを指定します。 ": (コロン) 編集"
$ * 出力でレコードの終わりを抑制します。* "$ (ドル記号) 編集" *
BN 数値入力フィールド内の非先行ブランクを無視します。 "BN (ブランク・ヌル) および BZ (ブランク・ゼロ) 編集"
BZ 数値入力フィールド内の非先行ブランクをゼロとして解釈します。 "BN (ブランク・ヌル) および BZ (ブランク・ゼロ) 編集"
kP 実数および複素数項目に対してスケール因数を指定します。 "P (スケール因数) 編集"
S SS
正符号を書き込まないように指定します。 "S、SP、および SS (符号制御) 編集"
SP 正符号を書き込むように指定します。 "S、SP、および SS (符号制御) 編集"
Tc 次の文字の転送先または転送元のレコード内での絶対位置を指定します。 "T、TL、TR、および X (定位置) 編集"
TLc 次の文字の転送先または転送元のレコード内での相対位置 (レコード内の現在の位置の左側の位置) を指定します。 "T、TL、TR、および X (定位置) 編集"
TRc 次の文字の転送先または転送元のレコード内での相対位置 (レコード内の現在の位置の右側の位置) を指定します。 "T、TL、TR、および X (定位置) 編集"
oX 次の文字の転送先または転送元のレコード内での相対位置 (レコード内の現在の位置の右側の位置) を指定します。 "T、TL、TR、および X (定位置) 編集"
注:
* IBM 拡張

それぞれの意味は次のとおりです。

r
繰り返し指定子です。これは、無符号かつ正のリテラル整定数です。

k
使用するスケール因数を指定します。これは、オプションの符号付きリテラル整定数です。

c
レコード内の文字位置を指定します。これは、無符号かつゼロ以外のリテラル整定数です。

o
レコード内の相対文字位置です。これは、無符号かつゼロ以外のリテラル整定数です。

+----------------------------------IBM 拡張----------------------------------+

rkc、および o は、整数値に計算される不等号括弧 (<>) で囲まれた算術式としても表すことができます。

+--------------------------------IBM 拡張の終り-------------------------------+

rkco に対して kind 型付きパラメーターを指定することはできません。

文字ストリング編集記述子

形式 使途 ページ
nHstr 文字ストリング (str) を出力します。 "H 編集"
'str'
"str"
文字ストリング (str) を出力します。 "アポストロフィ / 二重引用符編集 (文字ストリング編集記述子)"

n
リテラル・フィールド内の文字数です。これは、無符号かつ正のリテラル整定数です。ブランクは文字のカウントに含まれます。 kind 型付きパラメーターを指定することはできません。

規則

定様式の READWRITE、または PRINT ステートメント内の形式識別子が、ステートメント・ラベルであるか、あるいはステートメント・ラベルが割り当てられた変数である場合、ステートメント・ラベルは FORMAT ステートメントを識別します。

FORMAT ステートメントには、ステートメント・ラベルを付けなければなりません。 FORMAT ステートメントを、 ブロック・データ・プログラム単位、インターフェース・ブロック、モジュールの有効範囲、または派生型定義に指定することはできません。

コンマは編集記述子を分離します。 P 編集記述子と、その直後に続く FEENESDG、または Q (拡張精度と文字カウントの両方) 編集記述子との間のコンマ、オプションの繰り返し指定がない場合の、スラッシュ編集記述子の前のコンマ、スラッシュ編集記述子の後のコンマ、およびコロン編集記述子の前後のコンマは省略できます。

FORMAT 仕様を I/O ステートメントの中で文字式として指定することもできます。

XL Fortran は形式仕様の中で大文字と小文字を同じものとして取り扱います。ただし、文字ストリング編集記述子の場合はその限りではありません。

文字形式仕様

定様式の READWRITE、または PRINT ステートメント内の形式識別子 (READを参照) が文字配列名または文字式の場合、その配列または式の値が文字配列仕様です。

形式識別子が文字配列エレメント名の場合、形式仕様は、その配列エレメントの中に完全に入っていなければなりません。形式識別子が文字配列名の場合、形式仕様は、最初のエレメントから後続のエレメントにまたがっていてもかまいません。

形式仕様の前にブランクがあってもかまいません。形式仕様の終了を示す右括弧の次に文字データを指定してもかまいません。そのようにしても、形式仕様には何の影響もありません。

+----------------------------------IBM 拡張----------------------------------+

変数形式設定式

編集記述子が整定数を必要とするときは、いつでも FORMAT ステートメントに整数式を指定することができます。整数式はかぎ括弧 (<>) で囲まなくてはなりません。変数形式設定式の外側に符号を使用することはできません。次に、使用可能な形式仕様を示します。

      WRITE(6,20) INT1
20    FORMAT(I<MAX(20,5)>)
 
      WRITE(6,FMT=30) INT2, INT3
30    FORMAT(I<J+K>,I<2*M>)

整数式は、有効であれば関数呼び出しおよび仮引き数への参照を含むどんな Fortran 式であってもかまいません。ただし、次の制約があります。

READWRITE、または PRINT ステートメントの実行中に I/O 項目を処理するたびに、式の値は再計算されます。

+--------------------------------IBM 拡張の終り-------------------------------+

      CHARACTER*32 CHARVAR
      CHARVAR="('integer: ',I2,'  binary: ',B8)"  ! Character format
      M = 56                                      ! specification
      J = 1                                       !     OUTPUT:
      X = 2355.95843                              !
      WRITE (6,770) M,X                           !  56   2355.96
      WRITE (6,CHARVAR) M,M                       ! integer: 56
                                                  ! binary: 00111000
      WRITE (6,880) J,M                           !  1
                                                  ! 56
770   FORMAT(I3, 2F10.2)
880   FORMAT(I<J+1>)
      END

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]