FORMAT

目的

FORMAT ステートメントは入出力ステートメントに形式仕様を提供します。

構文



>>-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
文字ストリング編集記述子です。

規則

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

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

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

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

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 ステートメントの 実行中に入出力項目を処理するたびに、式の値は再計算されます。

+------------------------------End of 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

関連情報

IBM Copyright 2003