JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: Fortran ユーザーズガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  概要

2.  Solaris Studio Fortran の使用

3.  Fortran コンパイラオプション

4.  Solaris Studio Fortran の機能および拡張機能

4.1 ソース言語の機能

4.1.1 継続行の制限

4.1.2 固定形式のソースの行

4.1.3 タブ形式

4.1.4 想定するソースの書式

4.1.4.1 書式の混在

4.1.4.2 大文字・小文字の区別

4.1.5 制限とデフォルト

4.2 データ型

4.2.1 ブール型

4.2.1.1 ブール型に関する規則

4.2.1.2 ブール型定数の代替書式

8 進

16 進

ホレリス

4.2.1.3 別の場所におけるブール型定数の使用

4.2.2 数値データ型のサイズの略記法

4.2.3 データ型のサイズおよび整列

4.3 Cray ポインタ

4.3.1 構文

4.3.2 Cray ポインタの目的

4.3.3 Cray ポインタと Fortran 95 のポインタ

4.3.4 Cray ポインタの機能

4.3.5 Cray ポインタの制限事項

4.3.6 Cray ポインタの指示先の制限事項

4.3.7 Cray ポインタの使用法

4.4 STRUCTURE および UNION (VAX Fortran)

4.5 符号なし整数

4.5.1 演算式

4.5.2 関係式

4.5.3 制御構文

4.5.4 入出力構文

4.5.5 組み込み関数

4.6 Fortran 200x の機能

4.6.1 C との相互運用性

4.6.2 IEEE 浮動小数点の例外処理

4.6.3 コマンド行引数用組み込み関数

4.6.4 PROTECTED 属性

4.6.5 Fortran 2003 非同期入出力

4.6.6 ALLOCATABLE 属性の拡張機能

4.6.7 VALUE 属性

4.6.8 Fortran 2003 ストリーム入出力

4.6.9 Fortran 2003 の IMPORT

4.6.10 Fortran 2003 の FLUSH 入出力文

4.6.11 Fortran 2003 POINTER INTENT 機能

4.6.12 Fortran 2003 拡張配列構成子

4.6.13 オブジェクト指向の Fortran サポート

4.6.14 その他の Fortran 2003 および Fortran 2008 機能

4.7 新しい入出力拡張機能

4.7.1 入出力エラー処理ルーチン

4.7.2 可変フォーマット式

4.7.3 NAMELIST 入力形式

4.7.4 書式なしバイナリ入出力

4.7.5 その他の入出力拡張機能

4.8 指令

4.8.1 f95 の特殊な指令行の書式

4.8.1.1 ソースが固定形式の場合

4.8.1.2 ソースが自由形式の場合

4.8.2 FIXED 指令と FREE 指令

4.8.2.1 スコープ

4.8.2.2 使用法

4.8.2.3 制限事項

4.8.3 並列化の指令

4.9 モジュールファイル

4.9.1 モジュールの検索

4.9.2 -use=list オプションフラグ

4.9.3 fdumpmod コマンド

4.10 組み込み関数

4.11 将来のバージョンとの互換性

4.12 言語の混在

5.  FORTRAN 77 の互換性: Solaris Studio Fortran への移行

A.  実行時のエラーメッセージ

B.  各リリースにおける機能変更

C.  Fortran 指令の要約

索引

4.2 データ型

ここでは、Fortran データ型の機能と拡張子について説明します。

4.2.1 ブール型

f95 では、ブール型の定数と式をサポートしています。ただし、ブール型の変数、配列、文はサポートしていません。

4.2.1.1 ブール型に関する規則

4.2.1.2 ブール型定数の代替書式

f95 では、ブール型定数 (8 進、16 進、ホレリス) を、次のような書式 (2 進ではありません) で使用することができます。ただし変数はブール型として宣言できません。標準の Fortran では、このような書式は許されていません。

8 進

書式は ddddddB です。d は任意の 8 進数です。

入出力の書式指定では、B という文字は 2 進数であることを示しますが、それ以外の場合は 8 進数であることを表します。

16 進

X'ddd' または X"ddd"d が任意の 16 進数である の書式です。

ホレリス

ホレリスデータには、次の書式を使用できます。

nH
''H
""H
nL
''L
""L
nR
''R
""R

前述の「…」は文字列を表し、n は文字数を表します。

例: 8 進と 16 進の定数の表現例を示します。

ブール型定数
1 ワード 32 ビットでの内部の 8 進数
0B
00000000000
77740B
00000077740
X"ABE"
00000005276
X"-340"
37777776300
X’1 2 3’
00000000443
X’FFFFFFFFFFFFFFFF’
37777777777

例: 代入文での 8 進と 16 進の使用例を示します。

i = 1357B
j = X"28FF"
k = X’-5A’

算術式の中で 8 進数または 16 進数の定数を使用すると、結果が未定義になることがあります。ただし、構文エラーにはなりません。

4.2.1.3 別の場所におけるブール型定数の使用

f95 では、DATA 文以外の場所で BOZ 定数を使用することができます。

Bbbb
Oooo
Zzzz
B"bbb"
O"ooo"
Z"zzz"

このような BOZ 定数が実数変数に代入されている場合には、型は変換されません。

標準の Fortran では、BOZ 定数は DATA 文でのみ使用できます。

4.2.2 数値データ型のサイズの略記法

f95 では、宣言文、関数文、IMPLICIT 文において、次のような非標準の書式で型を宣言することができます。1 列目の形式は一般に使用されていますが、非標準の Fortran です。2 列目の種別番号はベンダーにより変わります。

表 4-2 数値データ型のサイズの表記法

非標準
宣言子
短縮書式
意味
INTEGER*1
INTEGER(KIND=1)
INTEGER(1)
1 バイトの符号付き整数
INTEGER*2
INTEGER(KIND=2)
INTEGER(2)
2 バイトの符号付き整数
INTEGER*4
INTEGER(KIND=4)
INTEGER(4)
4 バイトの符号付き整数
LOGICAL*1
LOGICAL(KIND=1)
LOGICAL(1)
1 バイト論理型
LOGICAL*2
LOGICAL(KIND=2)
LOGICAL(2)
2 バイト論理型
LOGICAL*4
LOGICAL(KIND=4)
LOGICAL(4)
4 バイト論理型
REAL*4
REAL(KIND=4)
REAL(4)
IEEE の単精度浮動小数点数 (4 バイト)
REAL*8
REAL(KIND=8)
REAL(8)
IEEE の倍精度浮動小数点数 (8 バイト)
REAL*16
REAL(KIND=16)
REAL(16)
IEEE の 4 倍精度浮動小数点数 (16 バイト)
COMPLEX*8
COMPLEX(KIND=4)
COMPLEX(4)
単精度複素数 (各部に 4 バイト)
COMPLEX*16
COMPLEX(KIND=8)
COMPLEX(8)
倍精度複素数 (各部に 8 バイト)
COMPLEX*32
COMPLEX(KIND=16)
COMPLEX(16)
4 倍精度複素数 (各部に 16 バイト)

4.2.3 データ型のサイズおよび整列

記憶領域および整列は常にバイト単位で表されます。シングルバイトに収まる値は、バイト整列です。

データ型のサイズおよび整列は、コンパイラのオプションとプラットフォーム、および変数の宣言方法に依存します。COMMON ブロック内のデフォルトの最大の整列は、4 バイトの境界整列です。

デフォルトのデータ整列および記憶領域の割り当ては、-aligncommon -f-dalign-dbl_align_all-xmemalign、および -xtypemap などの特別なオプションを指定してコンパイルすることにより、変更できます。このマニュアルは、これらのオプションが有効でないものとして記述されています。

いくつかのプラットフォームにおける特殊ケースのデータ型および整列については、『Fortran プログラミングガイド』に追加の説明があります。

デフォルトのサイズおよび整列を次の表にまとめます (データ型のその他の点およびオプションは考慮していません)。

表 4-3 デフォルトのデータサイズおよび整列 (バイト)

Fortran のデータ型
サイズ
デフォルトの整列
COMMON 内の整列
BYTE X

CHARACTER X

CHARACTER*n X

1

1

n

1

1

1

1

1

1

COMPLEX X

COMPLEX*8 X

DOUBLE COMPLEX X

COMPLEX*16 X

COMPLEX*32 X

8

8

16

16

32

4

4

8

8

8/16

4

4

4

4

4

DOUBLE PRECISION X

REAL X

REAL*4 X

REAL*8 X

REAL*16 X

8

4

4

8

16

8

4

4

8

8/16

4

4

4

4

4

INTEGER X

INTEGER*2 X

INTEGER*4 X

INTEGER*8 X

4

2

4

8

4

2

4

8

4

2

4

4

LOGICAL X

LOGICAL*1 X

LOGICAL*2 X

LOGICAL*4 X

LOGICAL*8 X

4

1

2

4

8

4

1

2

4

8

4

1

2

4

4

次の点に注意してください。

オプション -f または -dalign は、8、16、または 32 バイトのデータすべてを、強制的に 8 バイト境界で整列させます。オプション -dbl_align_all の場合は、すべてのデータが 8 バイト境界で整列します。これらのオプションを使用するプログラムには、移植性がない場合があります。