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

今回の Oracle Solaris Studio Fortran コンパイラのリリースには、Fortran 2003 および Fortran 2008 規格の多数の新機能が含まれています。詳細は、該当する Fortran 規格を参照してください。

4.6.1 C との相互運用性

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

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

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

Fortran コンパイラは、Fortran 規格の第 15 章に記述されている機能を実装します。第 15 章で定義されているすべての組み込み関数は、Fortran 手続きポインタのサポートが必要な C_F_PROCPOINTER を除いて実装されています。また、規格第 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 の IMPORT

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

4.6.10 Fortran 2003 の FLUSH 入出力文

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

4.6.11 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.12 Fortran 2003 拡張配列構成子

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

X = [ 3.2, 4.01, 6.5 ]

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

配列構成子内部の配列成分は、次の 2 つの形式が可能です。

type-spec ::

または

[type-spec ::] ac-value-list

省略可能な type-spec が存在する場合、配列成分の型および種類は、配列成分の型が type-spec と互換性がある限り、同じである必要がありません。

type-spec は組み込み型または構造型とすることができます。

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

Fortran での多相性のサポートは、型束縛手続きを使用せずにこのリリースで使用できます。サポートされる機能およびキーワードは、次のとおりです。

キーワード EXTENDS による型拡張
CLASS
無制限の多相性
SELECT TYPE 構文
ABSTRACT 構造型
EXTENDS_TYPE_OF および SAME_TYPE_AS 組み込み関数
無制限ポインタへの連続型の割り当て

このリリースでサポートされないオブジェクト指向の機能およびキーワードは、次のとおりです。

型束縛 PROCEDURE 宣言
GENERIC
DEFERRED
NON_OVERRIDABLE
PASS
NOPASS

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

詳細は、公開されている Fortran 2003 および Fortran 2008 規格を参照してください。