古い Fortran アプリケーションの多くは、ホレリス ASCII データを数値データオブジェクトに格納します。1977 Fortran 規格および Fortran 95 において、CHARACTER データ型はこの目的のために提供され、その使用が推奨されています。現在でも古い Fortran のホレリス (n H) 機能を使用して変数を初期化できますが、標準的な使い方ではありません。 次の表に、データ型に適合する文字の最大数を示します。この表では、太字のデータ型は、-xtypemap= コマンド行フラグによって昇格させられるデフォルトの型を示します。
表 7–1 データ型の最大文字数
|
標準 ASCII 文字の最大文字数 |
|
|
|
---|---|---|---|---|
データ型 |
デフォルト |
INTEGER:64 |
REAL:64 |
DOUBLE:128 |
BYTE |
1 |
1 |
1 |
1 |
COMPLEX |
8 |
8 |
16 |
16 |
COMPLEX*16 |
16 |
16 |
16 |
16 |
COMPLEX*32 |
32 |
32 |
32 |
32 |
DOUBLE COMPLEX |
16 |
16 |
32 |
32 |
DOUBLE PRECISION |
8 |
8 |
16 |
16 |
INTEGER |
4 |
8 |
4 |
8 |
INTEGER*2 |
2 |
2 |
2 |
2 |
INTEGER*4 |
4 |
4 |
4 |
4 |
INTEGER*8 |
8 |
8 |
8 |
8 |
LOGICAL |
4 |
8 |
4 |
8 |
LOGICAL*1 |
1 |
1 |
1 |
1 |
LOGICAL*2 |
2 |
2 |
2 |
2 |
LOGICAL*4 |
4 |
4 |
4 |
4 |
LOGICAL*8 |
8 |
8 |
8 |
8 |
REAL |
4 |
4 |
8 |
8 |
REAL*4 |
4 |
4 |
4 |
4 |
REAL*8 |
8 |
8 |
8 |
8 |
REAL*16 |
16 |
16 |
16 |
16 |
例: ホレリスを使用して変数を初期化します。
demo% cat FourA8.f double complex x(2) data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/ write( 6, '(4A8, "!")' ) x end demo% f95 -o FourA8 FourA8.f demo% FourA8 abcdefghijklmnopqrstuvwxyz012345! demo% |
そのデータの型で使用しなければならない場合は、ホレリス定数によってデータ項目を初期化し、それをほかのルーチンへ引き渡してください。
ホレリス定数を引数として渡したり、式や比較の中で使用しようとすると、ホレリス定数は文字型の式として解釈されます。コンパイラオプション -xhasc=no を使用して、コンパイラが副プログラム呼び出しにおいて、ホレリス定数を引数の型なしデータとして扱うようにしてください。古い Fortran プログラムを移植するときにこの処理が必要な場合があります。