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

ドキュメントの情報

はじめに

1.  概要

2.  Solaris Studio Fortran の使用

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

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 の書式付き入出力機能

4.6.10 Fortran 2003 の IMPORT

4.6.11 Fortran 2003 の FLUSH 入出力文

4.6.12 Fortran 2003 POINTER INTENT 機能

4.6.13 Fortran 2003 拡張配列構成子

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.6 Fortran 200x の機能

今回の Solaris Studio Fortran コンパイラのリリースには、Fortran 2003 規格の多数の新機能が含まれています。詳細は、Fortran 2003 規格を参照してください。また、Fortran 2008 ドラフト規格で提案されている機能もいくつか含まれています。これらの機能の詳細は、該当するドラフト出版物を参照してください。

4.6.1 C 関数との相互運用性

Fortran の新しい規格には次のものが含まれています。

ISO_C_BINDING モジュールは、C の型と互換のデータを表す種別パラメータである名前付き定数へのアクセスを可能にします。

この規格は、BIND(C) 属性も取り入れています。Fortran の構造型は、BIND 属性を持つものならば、C と相互に利用できます。

Fortran コンパイラの今回のリリースでは、規格の第 15 章に記述されている機能を実現します。また、規格第 4 章に述べられている、C の型に対応する構造型およびリストを定義する機能を備えます。

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

新しい組み込みモジュール、IEEE_ARITHMETIC および IEEE_FEATURES は、Fortran 言語における例外と IEEE 演算をサポートします。次のように指定すると、これらの機能がすべてサポートされます。

USE, INTRINSIC :: IEEE_ARITHMETIC

USE, INTRINSIC :: IEEE_FEATURES

INTRINSIC キーワードが Fortran 2003 で新しく追加されました。これらのモジュールは、一連の構造型、定数、丸めモード、照会関数、要素別処理関数、種別関数、要素別処理サブルーチン、非要素別処理サブルーチンを定義します。詳細は、Fortran 2003 規格の第 14 章を参照してください。

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

Fortran 2003 規格では、コマンド行引数および環境変数を処理するための新しい組み込み関数が紹介されています。それら組み込み関数は次の 3 つです。

4.6.4 PROTECTED 属性

Fortran コンパイラでは、Fortran 2003 の PROTECTED 属性が受け入れられています。PROTECTED はモジュール要素の使用に制限を設けます。PROTECTED 属性を持つオブジェクトは、それ自身が宣言されるモジュール内でのみ定義可能です。

4.6.5 Fortran 2003 非同期入出力

コンパイラは入出力文中の ASYNCHRONOUS 指定子を認識します。

ASYNCHRONOUS=[’YES’ | ’NO’]

この構文は Fortran 2003 規格の第 9 章で提案されているものです。WAIT 文とともに使うことで、コンピューティングで重複する可能性のある入出力処理を指定することができます。このコンパイラは ASYNCHRONOUS='YES' を認識しますが、規格は、実際の非同期入出力を要求しません。今回のコンパイラのリリースでは、入出力は常に同期化します。

4.6.6 ALLOCATABLE 属性の拡張機能

Fortran 2003 で、ALLOCATABLE 属性に使用できるデータエンティティーが拡張されました。以前、この属性はローカルに格納された配列変数に制限されていました。現在では、次の要素を使用できます。

割り付け要素は、記憶領域に関連付けられているすべての場所で使用が禁止されています。COMMON ブロックと EQUIVALENCE 文。割り付け配列成分は SEQUENCE 型になることがありますが、そのような型のオブジェクトは COMMON および EQUIVALENCE で使用できません。

4.6.7 VALUE 属性

f95 コンパイラは、Fortran 2003 VALUE 型の宣言属性を受け入れます。

この属性とともに副プログラムのダミー入力引数を指定すると、実際の引数は「値」によって渡されます。次の例では、リテラル値を引数とする Fortran 副プログラムを呼び出す C 言語の主プログラムにおいて VALUE 属性を使用しています。

C code:
#include <stdlib.h>
int main(int ac, char *av[])
{
    to_fortran(2);
}

Fortran code:
       subroutine to_fortran(i)
       integer, value :: i
       print *, i
       end

4.6.8 Fortran 2003 ストリーム入出力

Fortran 2003 規格では、新しい「ストリーム」入出力方式が定義されています。ストリーム入出力アクセスは、データファイルを連続したバイトのシーケンスとして扱い、1 から始まる正の整数でアドレスを定義できます。データファイルは、書式付きアクセスまたは書式なしアクセス用に結合できます。

OPEN 文で ACCESS=’STREAM’ 指定子を使用して、ストリーム入出力ファイルを宣言します。バイトアドレスにファイルを位置付けるには、READ または WRITE 文に POS=scalar_integer_expression 指定子が必要です。INQUIRE 文は、ACCESS='STREAM'、指定子 STREAM=scalar_character_variable、および POS=scalar_integer_variable を受け入れます。

4.6.9 Fortran 2003 の書式付き入出力機能

3 つの新しい Fortran 2003 書式付き入出力指定子が、f95 に実装されています。これらの指定子は、OPENREADWRITEPRINT、および INQUIRE 文で指定されます。

INQUIRE 文で使用する場合は、これらの指定子は、現在の値を返すための文字変数を宣言します。

新しい編集記述子 DPDCRP、および RC は、単一の FORMAT 文内のデフォルトの設定を、それぞれ、小数点、小数部のコンマ、プロセッサ定義の丸め、および互換性のある丸めに変更します。次に例を示します。

WRITE(*,’(I5,DC,F10.3)’) N, W

F10.3 出力項目のピリオドの代わりにコンマが使用されます。

書式付き入出力の浮動小数点丸めモードの変更については、-iorounding コンパイラコマンド行オプションも参照してください (「3.4.45 -iorounding[={ compatible|processor-defined}]」)。

4.6.10 Fortran 2003 の IMPORT

IMPORT 文は、親子結合によってアクセス可能な親有効域の要素を指定します。この文は、インタフェース本体でのみ使用できます。

4.6.11 Fortran 2003 の FLUSH 入出力文

f95 コンパイラは、Fortran 2003 の FLUSH 文を受け入れます。FLUSH 文を使用すると、外部ファイルに書き込まれたデータをほかのプロセスで利用したり、Fortran 以外の方法で外部ファイルに配置されたデータを READ 文で利用したりすることができるようになります。

4.6.12 Fortran 2003 POINTER INTENT 機能

Fortran コンパイラは、POINTER 仮引数の INTENT 属性をサポートするようになりました。ポインタ仮引数として INTENT(IN)、INTENT(OUT)、または INTENT(INOUT) を指定できます。

たとえば、次を見てください。

subroutine sub(P)
integer, pointer, intent(in) :: p
...

end

ポインタの INTENT 属性はポインタに適用され、指示先には適用されません。したがって、INTENT(IN) ポインタの場合、次のものはポインタを変更するため無効です。

 p => t
 allocate(p)
 deallocate(p)

ただし、INTENT(IN) ポインタの場合、次のものは指示先を変更するため有効です。

 p = 400

4.6.13 Fortran 2003 拡張配列構成子

配列構成子内の (//) に角括弧を使用できるようになりました。

X = [ 3.2, 4.01, 6.5 ]

Fortran 2003 規格では、配列構成子としての角括弧の使用が許可されます。これによって、区間定数との間で衝突が起こる可能性があります。-xia オプション (または区間演算を有効にするための同様のオプション) を指定せずに角括弧を使用すると、配列構成子として処理されます。-xia オプションを使用すると、角括弧は定数として処理されます。区間ユーザーは、コンパイルエラーを回避するために、(/ および /) 配列構成子を継続して使用する必要があります。

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

次に示す Fortran 2003 機能についての詳細は、公開されている Fortran 2003 規格を参照してください。Fortran 2008 機能については、公開されている Fortran 200x ドラフトドキュメントを参照してください。