XL Fortran for AIX V8.1.1

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


制御編集記述子

/ (スラッシュ) 編集

形式:

/
r/

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

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

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

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

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

入力の場合のスラッシュ編集の例

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

: (コロン) 編集

形式:

:

I/O リストにそれ以上項目がない場合、コロン編集記述子は、形式制御を終了させます。コロンが検出されたときに、I/O リスト内にまだ項目が残っている場合、コロンは無視されます。詳細については、 I/O リストと形式仕様の相互作用を参照してください。

コロン編集の例

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

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

$ (ドル記号) 編集

形式:

$

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

ドル記号編集の例

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

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

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

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

形式:

'文字ストリング'
"character string"

アポストロフィ / 二重引用符の編集記述子は、出力形式仕様内に文字リテラル定数を指定します。出力フィールドの幅は、文字リテラル定数の長さになります。文字リテラル定数の詳細な内容については、 文字 を参照してください。

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

注:

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

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

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

+--------------------------------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,'o'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

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 編集記述子で編集されたデータ入力に影響しません。ブランクは、ゼロとして解釈されます。

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

H 編集

形式:

n H str

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

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

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

注:

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

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

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

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

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

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

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

    +------------------------------Fortran 95 の終り------------------------------+

H 編集の例

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

P (スケール因数) 編集

形式:

kP

指定したスケール因数 K は、別のスケール因数を検出するか、形式制御が終了するまで、後で処理されるすべての FEENESDG、および拡張精度 Q 編集記述子に適用されます。各 I/O ステートメントの実行が開始される時点では、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
                     (-qxlf77=noleadzero の指定)  (-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 (符号制御) 編集

形式:

S
SP
SS

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

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

出力における 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 (定位置) 編集

形式:

Tc
TLc
TRc
oX

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

+--------------------------------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')


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