制御編集記述子

/ (スラッシュ) 編集

目的

スラッシュ編集記述子は、現在のレコードに関するデータ転送の終わりを示します。 繰り返し指定子 (r) は、デフォルト値として 1 を持ちます。

構文

規則

順次アクセスを使用して入力用のファイルを接続する場合、スラッシュ編集記述子を検出するたびに、ファイルは 次のレコードの始めに位置付けられます。

順次アクセスを使用して出力用のファイルを接続する場合、スラッシュ編集記述子を検出するたびに、新しい レコードが作成され、ファイルがその新しいレコードの開始点から書き込まれるように位置付けられます。

直接アクセスを使用して入力または出力用のファイルに接続する場合、スラッシュ編集記述子を検出するたびに レコード番号が 1 つずつ増やされ、そのレコード番号の付いたレコードの先頭にファイルが位置付けられます。

+-------------------------Fortran 2003 ドラフト標準--------------------------+

ストリーム・アクセスを使用して入力用のファイルに接続する場合、スラッシュ編集記述子を検出するたびに、 ファイルは次のレコードの先頭に位置付けられ、現在のレコードの残りの部分がスキップされます。 ストリーム・アクセス用に接続されたファイルへの出力時は、新たに作成された空のレコードが現在のレコードの 後に続きます。 新しいレコードは現在のレコードおよび、ファイルの最後のレコードの両方になり、新しいレコードの先頭が ファイル位置になります。

+----------------------End of Fortran 2003 ドラフト標準----------------------+

500   FORMAT(F6.2 / 2F6.2)
100   FORMAT(3/)

: (コロン) 編集

目的

入出力リストにそれ以上項目がない場合、コロン編集記述子は、形式制御を終了させます。 コロンが検出されたときに、入出力リスト内にまだ項目が残っている場合、コロンは無視されます。

構文

規則

詳細については、I/O リストと形式仕様の相互作用を参照してください。

10    FORMAT(3(:'Array Value',F10.5)/)

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

$ (ドル記号) 編集

目的

ドル記号編集記述子は、順次または定様式ストリーム WRITE ステートメントの レコードの終わり処理を抑制します。

構文

規則

通常、形式仕様の終わりに達すると、現在のレコードのデータ伝送 が停止し、ファイルは、次の入出力操作によって新しいレコードが 処理されるように位置付けられます。 しかし、形式仕様内にドル記号がある場合は、自動的なレコードの終わり 処理は抑止されます。 それ以降の入出力ステートメントで、同じレコードに関する読み取り または書き込みを行うことができます。

ドル記号編集は、通常、応答の指示や、同じ行からの応答の読み取り を行うために使用します。

      WRITE(*,FMT='($,A)')'Enter your age  '
      READ(*,FMT='(BN,I3)')IAGE
      WRITE(*,FMT=1000)
1000  FORMAT('Enter your height:  ',$)
      READ(*,FMT='(F6.2)')HEIGHT

+------------------------------End of IBM 拡張-------------------------------+

アポストロフィ/二重引用符編集 (文字ストリング編集記述子)

目的

アポストロフィ/二重引用符の編集記述子は、出力形式仕様内に 文字リテラル定数を指定します。

構文

規則

出力フィールドの幅は、文字リテラル定数の長さになります。 文字リテラル定数の詳細な内容については、 文字 を参照してください。

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

注:

  1. 円記号は、デフォルトではエスケープ・シーケンスとして認識され、 -qnoescape コンパイラー・オプションが指定されている場合は円記号文字として認識されます。 詳細については、エスケープ・シーケンスを参照してください。

  2. XL Fortran では、文字定数、ホレリス定数、文字ストリング編集記述子、およびコメントの中での マルチバイト文字をサポートします。 このサポートは、-qmbcs オプションによって提供されます。 ストリング全体を保持するには小さすぎる変数にマルチバイト文字が入っている定数を割り当てると、マルチバイト文字の 内部で切り捨てが起こることがあります。

  3. Unicode の文字およびファイル名もサポートします。 環境変数 LANGUNIVERSAL に設定され、-qmbcs コンパイラー・オプションが 指定されている場合、コンパイラーは Unicode 文字およびファイル名の読み取りや書き込みを行うことができます。

+------------------------------End of IBM 拡張-------------------------------+

      ITIME=8
      WRITE(*,5) ITIME
5     FORMAT('The value is -- ',I2) ! The value is -- 8
      WRITE(*,10) ITIME
10    FORMAT(I2,'o''clock') ! 8o'clock
      WRITE(*,'(I2,7Ho''clock)') ITIME ! 8o'clock
      WRITE(*,15) ITIME
15    FORMAT("The value is -- ",I2) ! The value is -- 8
      WRITE(*,20) ITIME
20    FORMAT(I2,"o'clock") ! 8o'clock
      WRITE(*,'(I2,"o''clock")') ITIME ! 8o'clock 

BN (ブランク・ヌル) および BZ (ブランク・ゼロ) 編集

目的

BN および BZ 編集記述子は、引き続いて 処理されると、IFEENESDGBOZ、および拡張精度 Q 編集記述子に、非先行ブランクを どのように解釈させるかを制御します。BN および BZ は入力の場合にのみ機能します。

構文

規則

BN は、数字入力フィールド内のブランクを無視して、残りの文字が右寄せされている場合と同様に 解釈するように指定します。 ブランクだけからなるフィールドの値はゼロとなります。

BZ は、数字入力フィールド内の非先行ブランクをゼロとして解釈するように指定します。

ブランクの解釈の最初の設定は、OPEN ステートメントの BLANK= 指定子により決まります。 (OPENを参照してください。) 最初の設定は、次のように決まります。

ブランクの解釈について、最初に設定された内容は、定様式の READ ステートメントの実行開始点から、 BN または BZ 編集記述子を検出するか、または形式制御が終了するまで有効です。 BN または BZ 編集記述子を検出すると、別の BN または BZ 編集記述子を 検出するか、形式制御が終了するまで、新しい設定は有効となります。

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

-qxlf77 コンパイラー・オプションの oldboz サブオプションを 指定すると、BN および BZ 編集記述子は、BO、または Z 編集記述子で編集されたデータ入力に影響しません。 ブランクは、ゼロとして解釈されます。

+------------------------------End of IBM 拡張-------------------------------+

H 編集

目的

H 編集記述子は、出力形式仕様内で文字ストリング (str) およびその長さ (n) を 指定します。 ストリングは、文字リテラル定数に使用できる任意の文字で構成されます。

構文

規則

H 編集記述子が文字リテラル定数内にあり、定数区切り文字 (たとえば、アポストロフィ) が 2 つ連続している場合、それらの文字は str 内に表されます。 それ以外の場合は、別の区切り文字を使用する必要があります。

H 編集記述子は、入力では使用できません。

注:

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

  1. 円記号は、デフォルトではエスケープ文字として認識され、 -qnoescape コンパイラー・オプションが指定されている場合は円記号文字として認識されます。 詳細については、エスケープ・シーケンスを参照してください。

  2. XL Fortran では、文字定数、ホレリス定数、文字ストリング編集記述子、およびコメントの中での マルチバイト文字をサポートします。 このサポートは、-qmbcs オプションによって提供されます。 ストリング全体を保持するには小さすぎる変数にマルチバイト文字が入っている定数を割り当てると、マルチバイト文字の 内部で切り捨てが起こることがあります。

  3. Unicode の文字およびファイル名もサポートします。 環境変数 LANGUNIVERSAL に設定され、-qmbcs コンパイラー・オプションが 指定されている場合、コンパイラーは Unicode 文字およびファイル名の読み取りや書き込みを行うことができます。

    +------------------------------End of IBM 拡張-------------------------------+

    +---------------------------------Fortran 95---------------------------------+

  4. H 編集記述子は FORTRAN 77 と Fortran 90 の一部でしたが、 Fortran 95 には組み込まれていません。

    +-----------------------------End of Fortran 95------------------------------+

50    FORMAT(16HThe value is -- ,I2)
10    FORMAT(I2,7Ho'clock)
      WRITE(*,'(I2,7Ho''clock)') ITIME

P (スケール因数) 編集

目的

指定したスケール因数 K は、別のスケール因数 を検出するか、形式制御が終了するまで、後で処理されるすべて の FEENESDG、および拡張精度 Q 編集記述子に適用されます。 各入出力ステートメントの実行が開始される時点 では、k の値はゼロです。 k の値は、10 の累乗を表す整数値で、必要な場合には符号が付きます。

構文

規則

入力の場合、FEENESDG、 または拡張精度 Q 編集記述子を指定した入力フィールドに指数 が入っていると、そのスケール因数は無視されます。 指数が入っていなければ、 内部値は、外部値 に 10(-k) を掛けた値に等しくなります。

出力の場合:

入力における P 編集の例
Input      Format      Value
98.765     3P,F8.6     .98765E-1
98.765     -3P,F8.6    98765.
.98765E+2  3P,F10.5    .98765E+2

出力における P 編集の例
Value      Format           Output                     Output
                     (with -qxlf77=noleadzero)  (with -qxlf77=leadzero)
5.67       -3P,F7.2         bbbb.01                    bbb0.01
12.34      -2P,F6.4         b.1234                     0.1234
12.34      2P,E10.3         b12.34E+00                 b12.34E+00

S、SP、および SS (符号制御) 編集

目的

SSP、および SS 編集記述子は、後で処理されるすべての IFEENESDG、および拡張精度 Q 編集記述子の正符号の出力を制御します。 これは、別の SSP、または SS 編集記述子を検出するか、あるいは形式制御が 終了するまで有効です。

構文

規則

S および SS は、正符号を書き込まないという 指定です。 (どちらの編集記述子を指定しても、結果は同じになります。) SP は、正符号を書き込む指定です。

Value      Format      Output
12.3456    S,F8.4      b12.3456
12.3456    SS,F8.4     b12.3456
12.3456    SP,F8.4     +12.3456

T、TL、TR、および X (定位置) 編集

目的

TTLTR、および X 編集記述子は、次の文字の転送を、レコード内の どの位置から開始するかを指定します。

構文

規則

T および TL 編集記述子は、ファイル位置で左タブ制限を 使用します。 データ転送の直前、左タブ制限の定義は、ストリーム・ファイルの現在のレコードまたは 現在の位置の文字位置になります。 TTLTR、および X は 文字位置を次のように指定します。

TR および X 編集記述子の結果は同じです。

入力の場合、文字がその位置から転送されていなければ、TR または X 編集記述子によって、 レコードの最後の文字を超えた位置を指定することができます。

出力の場合、TTLTR、 または X 編集記述子だけでは、文字は転送されません。 この編集記述子で指定した位置以降で文字を転送する場合、スキップ した位置および以前に埋められていない位置はブランクで埋められます。 結果は、そのレコード全体が最初からブランクであった場合と同じです。

出力の場合、TTLTR、 または X 編集記述子によって、位置変更されます。 その結果、後から他の編集記述子を使用して編集を行うと、文字が置換されます。

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

X 編集記述子は、文字位置なしで指定することができます。 これは、1X として扱われます。 ソース・ファイルを -qlanglvl=90std または -qlanglvl=95std でコンパイルすると、 この拡張機能はコンパイル時形式仕様すべてで使用不能とされ、 oX が実行されます。 この拡張機能を実行時形式で使用不能にするには、次の 実行時オプションを設定する必要があります。

XLFRTEOPTS="langlvl=90std" or "langlvl=95std" ; export XLFRTEOPTS

+------------------------------End of IBM 拡張-------------------------------+

入力における T、TL、および X 編集の例
150   FORMAT(I4,T30,I4)
200   FORMAT(F6.2,5X,5(I4,TL4))

出力における T、TL、TR、および X 編集の例
50    FORMAT('Column 1',5X,'Column 14',TR2,'Column 25')
100   FORMAT('aaaaa',TL2,'bbbbb',5X,'ccccc',T10,'ddddd')
IBM Copyright 2003