目的
FORMAT ステートメントは入出力ステートメントに形式仕様を提供します。
構文
>>-FORMAT--(--+------------------+--)-------------------------->< '-format_item_list-' |
>>-+-+---+--data_edit_desc---------+--------------------------->< | '-r-' | +-control_edit_desc-------------+ +-+---+--(--format_item_list--)-+ | '-r-' | '-char_string_edit_desc---------'
規則
定様式の READ、WRITE、または PRINT ステートメント内の形式識別子が ステートメント・ラベルのとき、あるいはステートメント・ラベルを割り当てられた変数のとき、 ステートメント・ラベルは FORMAT ステートメントを識別します。
FORMAT ステートメントには、 ステートメント・ラベルを付けなければなりません。 FORMAT ステートメントを、ブロック・データ・プログラム単位、 インターフェース・ブロック、モジュールの有効範囲、または派生型定義に指定することはできません。
コンマは編集記述子を分離します。 P 編集記述子と、その直後に続く F、E、EN、ES、D、G、または Q (拡張精度と文字カウントの両方) 編集記述子との間のコンマ、オプションの繰り返し指定がない場合の、 スラッシュ編集記述子の前のコンマ、スラッシュ編集記述子の後のコンマ、およびコロン編集記述子の前後のコンマは 省略できます。
FORMAT 仕様を入出力ステートメントの中で文字式として 指定することもできます。
XL Fortran は形式仕様の中で大文字と小文字を同じものとして取り扱います。 ただし、文字ストリング編集記述子の場合はその限りではありません。
定様式の READ、WRITE、 または 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 式であってもかまいません。 ただし、次の制約があります。
READ、WRITE、または 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
関連情報