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.3 Cray ポインタ

Cray ポインタとは、別のエンティティーのアドレスを値に持つ変数のことです。この別の言語要素のことを、「指示先」と呼びます。

f95 は、Cray ポインタをサポートしていますが、標準の Fortran 95 はサポートしていません。

4.3.1 構文

Cray ポインタの POINTER 文は次の形式で記述します。

POINTER  ( pointer_name, pointee_name [array_spec] ), …

pointer_namepointee_namearray_spec のそれぞれの意味は、次のとおりです。

pointer_name

対応する pointee_name へのポインタです。

pointer_name には pointee_name のアドレスが含まれます。pointer_name にはスカラー変数名を指定してください (派生型は指定できません)。禁止事項: 定数、構造体の名前、配列、または関数。

pointee_name

対応する pointer_name の指示先です。

制限事項 : 変数名、配列の宣言子、配列名を指定してください。

array_spec

array_spec を指定する場合は、明示的な実体があるもの (定数または非定数のサイズを持つもの)、または仮のサイズを持つものを指定してください。

例: 2 つの指示先に対して Cray ポインタを宣言できます。

    POINTER ( p, b ),  ( q, c )

前述の例では、Cray ポインタ p とその指示先 b、Cray ポインタ q とその指示先 c を宣言しています。

例: 配列に対して Cray ポインタを宣言することもできます。

     POINTER ( ix, x(n, 0:m) )

この例では、Cray ポインタ ix とその指示先 x を宣言しています。同時に、xn × m+1 次元の配列であることを宣言しています。

4.3.2 Cray ポインタの目的

ポインタを使用すると、記憶領域の特定の場所に変数を動的に対応付け、ユーザーが管理する記憶領域にアクセスすることができます。

Cray ポインタでは、メモリーの絶対アドレスにアクセスすることができます。

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

Cray ポインタは次のように宣言します。

POINTER ( pointer_name, pointee_name [array_spec] )

Fortran 95 のポインタは次のように宣言します。

POINTER object_name

この 2 種類のポインタを混在させることはできません。

4.3.4 Cray ポインタの機能

4.3.5 Cray ポインタの制限事項

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

4.3.7 Cray ポインタの使用法

Cray ポインタには次のようにして値を割り当てることができます。

例: Cray ポインタの使用例

    SUBROUTINE  sub ( n )
    COMMON pool(100000)
    INTEGER blk(128), word64
    REAL a(1000), b(n), c(100000-n-1000)
    POINTER ( pblk, blk ), (ia, a ), ( ib, b ), &
            ( ic, c ), ( address, word64 )
    DATA address / 64 /
    pblk = 0
    ia = LOC( pool )
    ib = ia + 4000
    ic = ib + n
    ...

前述の例を説明します。