Sun[tm] Studio 9: Fortran 95 Readme
Description: Sun Studio 9 Fortran 95 Compiler Readme
Keywords: readme, documentation, publication,

更新日付： 2004 年 5 月 26 日

### Sun Studio 9: Fortran 95 Readme

> #### 目次

> 1. はじめに
> 2. Sun Studio 9 Fortran 95 について
> 3. 新規および変更された機能
> 4. ソフトウェアの修正事項
> 5. 問題点と回避策
> 6. 制限事項と互換性の問題
> 7. 記述の誤りの訂正
> 8. Fortran 95 の必須パッチ
> 9. ライブラリの再配布について

> #### A. はじめに

> この文書では、Sun[tm] Studio 9 Fortran 95 コンパイラ、`f95` に関する情報を提供しています。記載内容は、このリリースで導入された新機能とソフトウェアの修正事項、既知の問題点、制限事項、互換性の問題などです。また、本書の記載内容はソフトウェアマニュアルの情報を更新ないし補充します。

> 製品マニュアル
> - リリースノート: http://docs.sun.com から入手可能です。リリースノートの情報は、各製品の Readme ファイルの情報に優先します。
> - コンパイラおよびツールのドキュメント: 製品のマニュアルページ、README の HTML バージョン、およびマニュアルは、`/installation_directory/SUNWspro/docs/ja/index.html` からアクセスできます。Solaris プラットフォームの場合、デフォルトの installation_directory は、`/opt` です。Sun Studio 9 ソフトウェアが `/opt` 以外のディレクトリにインストールされている場合は、ご使用のシステムにおける実際のパスを、システム管理者に確認してください。index.html ページから以下のマニュアルにアクセスできます。
> - Fortan ユーザーズガイド
> - Fortran プログラミングガイド
> - OpenMP API ユーザーズガイド
> - 数学ライブラリ Readme
> - 数値計算ガイド
> - インクリメンタルリンカー Readme
> - Sun Performance Library Readme
> - Sun Performance Library Reference Manual
> - Sun Performance Library User's Guide
> - IDE のドキュメント: IDE にある「ヘルプ」メニューから Sun Studio 9 IDE の各コンポーネントのオンラインヘルプにアクセスできます。
> - 開発者向けリソースのポータル : 技術資料、サンプルコード、ドキュメント、ナレッジベースについては、開発者向けポータルの `http://developers.sun.com/prodtech/cc` を参照してください。

> 注 - Compiler Collection ソフトウェアがデフォルトの `/opt` 以外のディレクトリにインストールされている場合は、ご使用のシステムにおける実際のパスを、システム管理者に確認してください。

> #### B. Sun Studio 9 Fortran 95 について

> この文書は、今回のリリースのバージョン 8.0 の f95 で新たに追加された機能と変更された機能に関する最新情報を提供します。

> バージョン 8.0 の Fortran 95 コンパイラ f95 は、Sun Studio 9 のコンポーネントの 1 つとしてリリースされ、SPARC(R) プラットフォームおよび x86 プラットフォームの Solaris[tm] オペレーティングシステム (Solaris OS) のバージョン 8、9、および 10 で使用できます。

> このコンパイラの前のバージョンは 7.1 で、Sun Studio 8 とともにリリースされました。

> #### C. 新規および変更された機能

> ここでは、このリリースの Fortran 95 で新たに追加された機能と変更された機能を説明しています。 各コンパイラオプションの詳細は、『Fortran ユーザーズガイド』と f95(1) のマニュアルページを参照してください。

> 1. x86 プラットフォーム版 Solaris OS 用の `f95`
> 2. 実行時パフォーマンスの向上
> 3. Fortran 2003 のコマンド行組み込み関数
> 4. `f95` コマンド行オプションの追加および変更
> 5. デフォルトの SPARC アーキテクチャを v8plus に変更
> 6. OpenMP: 最大スレッド数を増加
> 7. OpenMP: 変数の自動スコープ
> 1. x86 プラットフォーム版 Solaris OS 用の `f95`
>    このリリースの Sun Studio では、x86 プラットフォーム版 Solaris OS で Fortran 95 コンパイラが使用できるようになっています。`-xtarget` 値として `generic`、`native`、`386`、`486`、`pentium`、`pentium_pro`、`pentium3`、`pentium4` のいずれかを使ってコンパイルし、Solaris x86 プラットフォーム用の実行可能ファイルを生成できます。x86 プラットフォームでのデフォルトは `-xtarget=generic` です。

>    x86 プラットフォーム版の場合、次の `f95` 機能はまだ実装されていません。使用できるのは、SPARC プラットフォーム上だけです。

>    - 区間演算 (コンパイラオプション `-xia` および `-xinterval`)
>    - Quad (128 ビット) 演算 (`REAL*16` など)
>    - IEEE 組み込みモジュール の `IEEE_EXCEPTIONS、IEEE_ARITHMETIC`、および `IEEE_FEATURES`
>    - `sun_io_handler` モジュール
>    - `-autopar`、`-parallel`、`-explitipar`、`-openmp` などの並列化オプション

>    次の `f95` コマンド行オプションは、x86 プラットフォームでのみ使用できます。SPARC プラットフォーム では使用できません。

>    - `-fprecision、-fstore、および -nofstore`

>    次の `f95` コマンド行オプションは、SPARC プラットフォームでのみ使用できます。x86 プラットフォーム では使用できません。

>    - `-xcode、-xmemalign、-xprefetch、-xcheck、-xia、-xinterval、-xipo、-xjobs、-xlang、-xlinkopt、-xloopinfo、-xpagesize、-xprofile_ircache、-xreduction、-xvector、-depend、-openmp、-parallel、-autopar、-explicitpar、-vpara、-XlistMP`

>    また、x86 プラットフォーム版の場合、`-fast` を指定することによって `-nofstore` が追加されます。

>    x86 プラットフォームでのコンパイルについて

>    - x86 プラットフォームにおける `-xtarget` 値と展開
>      x86 プラットフォームの場合は、2 つの `-xtarget` 値が新たに使用できるようになっています。
>      `-xtarget=pentium3` は、`-xarch=sse -xchip=pentium3 -xcache=16/32/4:256/32/4` に展開されます。
>      `-xtarget=pentium4` は、`-xarch=sse2 -xchip=pentium4 -xcache=8/64/4:256/128/8` に展開されます。
>    - 次の `-xarch` および `-xchip` 値が新たに追加されています。
>      `-xchip=pentium3` - Pentium 3 プロセッサ用に最適化します。
>      `-xchip=pentium4` - Pentium 4 プロセッサ用に最適化します。
>      `-xarch=sse` は、`pentium_pro` 命令セットに `sse` 命令セットを追加します。
>      `-xarch=sse2` は、`pentium_pro` 命令セットに `sse2` 命令セットを追加します。
>    - `-fns` は、`pentium3` または `pentium4` プロセッサでのみ有効です。`-xarch` が `sse` か `sse2` でない場合、`-fns=yes` は無視されます。`-xarch` が `sse` か `sse2` の場合、SSE および SSE2 浮動小数点演算命令に対し、`-fns=yes` は、アンダーフローをゼロにフラッシュし (FTZ)、非正規化オペランドをゼロとして扱う (DAZ) ことを意味します。`-fns=yes` は、従来の x86 浮動小数点演算命令には影響しません。
>    - x86 に関する特記事項
>      Solaris x86 SSE/SSE2 Pentium 4 互換プラットフォームで動作するよう `-xarch=`{`sse` | `sse2`} を使ってコンパイルしたプログラムは、SSE/SSE2 対応のプラットフォームでのみ実行する必要があります。SSE/SSE2 に対応していないプラットフォームでそうしたプログラムを実行すると、セグメント例外が発生したり、明示的な警告メッセージなしに不正な結果が発生することがあります。SSE/SSE2 でコンパイルされたバイナリが SSE/SSE2 に対応していないプラットフォームで実行されることのないようにするための OS およびコンパイラに対するパッチが、後日提供される可能性があります。
>      Pentium 4 互換のプラットフォームの場合は、Solaris 9 update 6 以降の OS リリースは SSE/SSE2 に対応しています。これより前のバージョンの Solaris OS は SSE/SSE2 に対応していません。
>      このことは、`.il` インラインアセンブリ言語関数を使用しているプログラムや、SSE/SSE2 命令を利用している `__asm()` アセンブラコードにも当てはまります。
>      コンパイルとリンクを別々に行う場合は、必ずコンパイラを使ってリンクし、`-xarch=`{`sse` | `sse2`} で適切な起動ルーチンがリンクされるようにしてください。
>      x86 の浮動小数点レジスタのサイズが 80 バイトであるため、x86 上と SPARC 上での算術演算結果が異なることがあります。こうした違いが出ないようにするには、`-fstore` オプションを使用してください。あるいは、ハードウェアが SSE2 をサポートしている場合は、`-xarch=sse2` を付けてコンパイルしてください。
> 2. 実行時パフォーマンスの向上
>    今回のリリースでは、多くのアプリケーションの実行時パフォーマンスが向上するとみられます。最良の結果を得るには、最適化レベルを高くして (`-xO4` または `-xO5`)、コンパイルしてください。これらのレベルでは、コンパイラが内部手続きや、形状引き継ぎ、割り付け、あるいはポインタ引数を持つ手続きをインライン化することができます。

> 3. Fortran 2003 のコマンド行組み込み関数
>    Fortran 2003 規格草案では、コマンド行引数および環境変数を処理するための新しい組み込み関数が紹介されています。今回のリリースの `f95` コンパイラには、これらの組み込み関数が実装されています。新しい組み込み関数は以下のとおりです。
>    - `GET_COMMAND(`コマンド, 長さ, ステータス`)`
>      コマンド で、プログラムを呼び出しコマンド行全体を返します。
>    - `GET_COMMAND_ARGUMENT(`コマンド, 値, 長さ, ステータス`)`
>      値でコマンド行引数を返します。
>    - `GET_ENVIRONMENT_VARIABLE(`名前, 値, 長さ, ステータス, トリム名`)`
>      環境変数の値を返します。

> 4. `f95` コマンド行オプションの追加および変更
>    このリリースの `f95` では、次のコマンド行オプションが新しく追加されています。詳細は `f95`(1) のマニュアルページを参照してください。

>    - `-xipo_archive={ none | readonly | writeback }`
>      クロスファイル最適化でアーカイブ (.a) ライブラリを取り込むことができます (SPARC のみ)。

>      `-xipo_archive=none`
>      アーカイブファイルを処理しません。

>      `-xipo_archive=readonly`
>      実行可能ファイルを生成する前に、アーカイブライブラリ (.a) に存在するオブジェクトファイル (`-xipo` でコンパイルしたファイル) を使ってリンカーに渡すオブジェクトファイルを最適化します。

>      `-xipo_archive=writeback`
>      実行可能ファイルを生成する前に、アーカイブライブラリ (.a) に存在するオブジェクトファイル (`-xipo` でコンパイルしたファイル) を使ってリンカーに渡すオブジェクトファイルを最適化します。コンパイル中に最適化されたライブラリに含まれるオブジェクトファイルはすべて、その最適化されたバージョンに置き換えられます。

>      `-xipo` の値が指定されていない場合、コンパイラは `-xipo_archive=none` とみなします。

>    - `-xprefetch_auto_type=[no%]indirect_array_access`
>      間接アクセスされるデータ配列に対して間接プリフェッチを生成します (SPARC のみ)。

>      `[no%]indirect_array_access`
>      直接メモリーアクセスに対してプリフェッチが生成されるのと同じ方法で、`-xprefetch_level=[1|2|3]` オプションが指示するループに対して間接プリフェッチを生成します (または生成しません)。

>      `-xprefetch_auto_type` の値が指定されていない場合、コンパイラは `-xprefetch_auto_type=[no%]indirect_array_access` に設定します。

>      `-xprefetch` オプションは、SPARC プラットフォームでのみ使用できます。

>      `-xdepend`、`-xrestrict`、`-xalias_level` などのオプションは、メモリー別名のあいまいさを排除する情報の生成に役立つため、間接プリフェッチ候補の決定の積極性に影響し、このため、自動的な間接プリフェッチの挿入が促進されることがあります。

>    - `-xprofile_pathmap=`collect_prefix`:`use_prefix
>      プロファイルデータファイルのパスマッピングを設定します。以前に `-xprofile=collect` を使ってコンパイルしたときに使用したディレクトリとは異なるディレクトリにプロファイリングする場合は、`-xprofile_pathmap` オプションを `-xprofile=use` オプションと併用してください。

>    このリリースの `f95` では、次のコマンド行オプションのデフォルト値が変更されています。

>    - `-xprefetch` のデフォルト値は `-xprefetch=no%auto,explicit` です。
>    - `-xmemalign` のデフォルト値は `-xmemalign=8i` です。 ただし、`-xarch=v9` オプションのいずれかを付けたコンパイルでは、デフォルト値は `-xmemalign=8f` になります。
>    - `-xarch=v9` オプションのいずれかを付けたコンパイルでの `-xcode` のデフォルト値は `abs44` になります。

>    以前のリリースのコンパイラで使用されていたデフォルト値でコンパイルにするには、次のオプションを明示的に指定します。

>    - 32 ビットコンパイルの場合: `-xarch=v8 -xmemalign=4s -xprefetch=no`
>    - 64 ビットコンパイルの場合: `-xcode=abs64 -xprefetch=no`

> 5. デフォルトの SPARC アーキテクチャを v8plus に変更
>    デフォルトの SPARC アーキテクチャは V7 でなくなりました。この Sun Studio 9 リリースでは、`-xarch=v7` のサポートに制限があります。新しいデフォルトは V8PLUS (UltraSPARC) です。`-xarch=v8` 以上をサポートしているのは Solaris 8 OS だけであるため、`-xarch=v7` によるコンパイルは、`-xarch=v8` として扱われます。

>    SPARC V8 システム (SPARCStation 10 など) に配備するには、明示的に `-xarch=v8` を使ってコンパイルします。提供のシステムライブラリは、SPARC V8 アーキテクチャで動作します。

>    SPARC V7 システム (SPARCStation 1 など) に配備するには、明示的に `-xarch=v7` を使ってコンパイルします。提供のシステムライブラリは、SPARC V8 命令セットを利用します。この Sun Studio 9 リリースでは、SPARC V7 アーキテクチャをサポートするのは、Solaris 8 OS だけです。SPARC V8 命令が検出されると、OS はソフトウェアでその命令を解釈します。このためプログラムは実行されますが、パフォーマンスは低下します。

> 6. OpenMP: 最大スレッド数を増加
>    `OMP_NUM_THREADS` およびマルチタスクライブラリの最大スレッド数が 128 から 256 に増加しました。

> 7. OpenMP: 変数の自動スコープ
>    このリリースの Fortran 95 コンパイラに実装されている、共有メモリー並列プログラミング用の OpenMP API には、並列領域における変数の自動スコープ機能があります。詳細は、『OpenMP API ユーザーズガイド』を参照してください。(このリリースでは、OpenMP は SPARC プラットフォームにのみ実装されます。)

> その他の Sun Studio 9 コンポーネントについては、『Sun Studio 9 の新機能』を参照してください。このマニュアルは、ソフトウェアに付属している他のマニュアル同様、`file:/opt/SUNWspro/docs/index.html` からアクセスできます。Sun Studio 9 コレクションの『Sun Studio 9 の新機能』は、`http://docs.sun.com`でも提供しています。

> #### D. ソフトウェアの修正事項

> 現時点では新しい情報はありません。

> #### E. 問題点と回避策

> ここでは、このリリースにおける既知のソフトウェアの問題と、その回避策について説明します。
> 次に示す問題の多くは、このリリースのあとで提供されるパッチで修正される可能性があります。最新情報またはパッチについては、`http://developers.sun.com/prodtech/cc/support_index.html` を参照してください。

> - `-errwarn` オプションが機能しない
>   このリリースで導入されたオプションフラグの `-errwarn` が正しく実装されていないため、コマンド行エラーになります。パッチを入手して、この問題を解決してください。(5035157)
> - 予期しないインライン化
>   引数リストを空にして `-xinline=` フラグを使用すると、インライン化が完全に無効になるはずです。しかし、実際には一部関数がインライン化されることがあります。回避策は、明示的に `-xinline=%none` を使用することです。(5032991)
> - `-xO4` の位置でセグメント例外
>   `-xO4` を付けてコンパイルしたサブプログラムに対する引数が定数の場合、最適化が不適切であると、間違って定数への書き込みを試みるコードが挿入され、セグメント例外になることがあります。回避策として、最適化レベルを低くしてサブプログラムをコンパイルしてください。 (5040283)

> #### F. 制限事項と互換性の問題

> ここでは、制限事項およびシステムまたはその他のソフトウェアとの互換性の問題について説明します。

> - `-xlinkopt`

>   `-xlinkopt` を指定してコンパイルする場合、`-zcompreloc` リンカーオプションは使用しないでください。[4825600]

> - モジュール情報ファイル (`.mod`) の書式

>   モジュール情報ファイル (`.mod` ファイル) の書式は、このリリースのコンパイラで変更されました。コンパイラは、次に示す 1 つのケースを除き、旧リリースで生成された `.mod` ファイルを問題なく処理します。

>        MODULE NEW
>        USE OLD
>        END MODULE

>   モジュール `OLD` が旧リリースの `f95` コンパイラでコンパイルされていて、モジュール `NEW` を現在のリリースでコンパイルすると、問題が発生する可能性があります。この問題を防ぐには、古いモジュール `OLD` をこのリリースで再コンパイルしてください。
>   コンパイルされた各 `.mod` ファイルには、それを生成したコンパイラに関連するバージョン番号が付けられます。このリリースのコンパイラでコンパイルされたモジュールファイルには、"Version 1.0" が付けられます。コンパイル済みの `.mod` のバージョン番号は、`fdumpmod`(1) ユーティリティーを使用して確認できます。

> f95 コンパイラの以前のリリースで生まれた互換性の問題は、このリリースの 8.0 コンパイラでも継続しています。以前の f95 リリースから 8.0 (Sun Studio 9) にアップグレードするにあたっては注意してください。互換性の問題とは次のとおりです。

> - 区間関数の呼び出し

>   Forte Developer 7 リリースで区間関数の呼び出しのインタフェース (AB) が変更され、Sun WorkShop 2 update 2 およびそれ以前のリリースの ABI とバイナリレベルの互換性がなくなっています。つまり、区間関数を使用したプログラムとライブラリは、現在の f95 で再コンパイルする必要があります。特に、C++ で呼び出される Fortran 区間関数と Fortran で呼び出される C++ 区間関数は、`f95` と `CC` コンパイラで再コンパイルする必要があります。

> - `CHARACTER*1` 「値による呼び出し」インタフェース

>   Fortran 95 バージョン 7.0 では、引用仕様宣言内の `VALUE` 属性で指定された副プログラムの呼び出しで、`CHARACTER*1` を渡す方法について旧リリースとの互換性がありませんでした。

>   Fortran 95 プログラムを正しく記述し、バージョン 7.0 または 8.0 の f95 でコンパイルした場合、旧リリースとの違いは問題になりません。呼び出し側ルーチンと呼び出されたルーチンが異なるリリースのコンパイラでコンパイルされている場合、またはいずれかのルーチンが C で記述されている場合、旧リリースとの違いが問題となります。

>   次の例で考えてみます。

>       main.f:
>               interface
>               subroutine s(c1,c2)
>               character*1, value :: c1   !  c1 is call-by-value
>               character*2 :: c2
>               integer I
>               end subroutine
>               end interface
>               call s('A', 'BC')
>               end

>       sub.f:
>               subroutine s(c1,c2)
>               character*1, value :: c1
>               character*(*) :: c2
>               print *, 'You passed ',c1,' and ',c2
>               END

>   main.f を以前のリリースのコンパイラでコンパイルして、sub.f を今回のリリースでコンパイルした場合、プログラムは誤って次の結果を生成します。

>        You passed A and B

>   このリリースのコンパイラは、文字長パラメータを持たない `CHARACTER *1` データの場合は、値による呼び出しで渡します。それ以外の場合は、コンパイラが呼び出しの一部として自動的に生成する非表示の長さパラメータ付きで文字データは渡されます (Fortran 95 では `CHARACTER` データの値による呼び出しを `CHARACTER*1` に限定しています)。

>   同様に、Fortran 95 ルーチンを呼び出すか Fortran 95 ルーチンに呼び出される C ルーチンで `CHARACTER*1` データが値による呼び出しで渡されることを必要としているものは、それらの引数について長さパラメータを必要としないように書き直す必要があります。

> - Forte Developer 6 アップデート 2 オブジェクトファイルとのバイナリレベルの非互換性

>   バージョン 7.0 の f95 では、明示的な `KIND` と共に入力された構造型または変数を `-aligncommon` フラグが正しく整合しないという問題が修正されています。

>   次のプログラムを例に見てみます。

>           character*26 type

>           logical(1) :: l1 = .true.
>           real(16)   :: r16 = 1
>           integer(2) :: i2 = 1

>           common /A/ l1,r16,i2

>           print *, '--------------------------------------------'
>           print *, ' Fortran 95 COMMON-block alignment in Bytes '
>           print *, '--------------------------------------------'

>           type = 'logical(1)'
>           print *, type, loc(l1)-loc(l1)

>           type = 'real(16)'
>           print *, type, loc(r16)-loc(l1)

>           type = 'integer(2)'
>           print *, type, loc(i2)-loc(l1)

>           end

>   `-aligncommon` を使用して FD6u2 Fortran 95 (バージョン 6.2) でコンパイルすると、次の出力が生成されます。

>        --------------------------------------------
>         Fortran 95 COMMON-block alignment in Bytes
>        --------------------------------------------
>        logical(1)                 0
>        real(16)                   8
>        integer(2)                 24

>   本来なら、次のような出力が得られるはずです (実際、バージョン 8.0 と 7.0 の f95 コンパイラでは、次のように出力します) 。

>        --------------------------------------------
>         Fortran 95 COMMON-block alignment in Bytes
>        --------------------------------------------
>        logical(1)                 0
>        real(16)                   1
>        integer(2)                 17

>   共通ブロックが明示的な kind 値とともに入力された構造型または変数を含む場合、`-aligncommon` オプションを使用してコンパイルする際に、FD6U2 オブジェクトファイルを、バージョン 8.0 または 7.0 コンパイラで生成されたオブジェクトと混在させないでください。

> 以下に示す一般的な事柄にも注意してください。

> - Solaris 7 以降のリリースの OS が動作する SPARC V9 プラットフォーム上でのリンク

>   `libm.a` や `libc.a` といった多くの静的システムライブラリは、最近の Solaris の SPARC V9 プラットフォームでは利用できません。このため、動的共有ライブラリの `libm.so` と `libc.so` のみ提供されています。このため、SPARC V9 プラットフォームでは、`-Bstatic` および `-dn` コンパイラオプションによってリンクエラーが発生する可能性があることを意味します。この場合、アプリケーションは動的ライブラ リを使用する必要があります。

>   システムライブラリを動的にリンクしながら、静的バージョンのユーザーライブラリと明示的にリンクするには、次のようなコマンド行を使用します。

>   `f95 -o prog prog.f -Bstatic -lxyz -labc -Bdynamic`

>   このコマンドは、`libxyz.a` および l`libabc.a` と明示的にリンクする一方、シ ステムライブラリをはじめとする、その他のすべてのライブラリを動的にリン クします。

> - 配列組み込み関数における大域レジスタの使用

>   配列組み込み関数の `ANY、ALL、COUNT、MAXVAL、MINVAL、SUM、PRODUCT、DOT_PRODUCT`、`MATMUL` は、各 SPARC プラットフォームアーキテクチャ用に高度に調整されています。このため、これらの関数は大域レジスタの %g2、%g3、%g4 をスクラッチレジスタとして利用します。

>   上記の配列組み込み関数を呼び出す場合に、これらのレジスタが一時記憶領域として利用できることを前提にしたユーザーコードを作成しないでください。これらのレジスタ内のデータは、配列組み込み関数を呼び出したときに上書きされます。

> - アーカイブライブラリ内の F95 モジュールが実行可能ファイルに含まれない

>   デバッガ dbx では、コンパイルで使用するオブジェクトファイルがすべて実行可能ファイルに含まれている必要があります。通常のプログラムは、ユーザーが特別な作業をしなくても、この要件を満たします。例外となるのは、モジュールを含むアーカイブを使用する場合です。プログラムがモジュールを使用するが、モジュール内の手順または変数をどれも参照しない場合は、結果として生じるオブジェクトファイルには、モジュール内で定義されるシンボルへの参照は含まれません。リンカーは、オブジェクトファイルで定義されているシンボルへの参照が存在する場合のみ、アーカイブに入っているオブジェクトファイルをリンクします。そのような参照がない場合、オブジェクトファイルは実行可能ファイルに含まれません。dbx は、使用したモジュールと関連するデバッグ情報を検索する際に警告メッセージを表示します。デバッグ情報が見つからないシンボルに関する情報は提供できません。

>   この問題を回避するためには、`-u` リンカーオプションを使用します。このオプションは、1 つのシンボルをそのオプション引数として取ります。そのシンボルを未定義のリンカーシンボルのセットに追加し、問題を解決します。モジュールと関連付けられているリンカーシンボルは通常、小文字の文字列に下線が後続するモジュール名です。

>   たとえば、モジュール`MODULE_1` を含むオブジェクトファイルをアーカイブから取り出すには、リンカーオプション `-u module_1_` を指定します。`f95` コマンドを使用してリンクを実行する場合、コマンド行で `-Qoption ld -umodule_1_` を使用してください。

> - Fortran 95 の構成型および SCCS

>   SCCS ではパーセント記号 (`%`) を単一文字の ID キーワードの区切り文字として使用するため、単一文字の名前で構造体コンポーネントを定義する、Fortran 95 プログラムのユーザーは、SCCS 管理されたソースコードファイルを保持する上で、予期しない結果を受け取ることがあります。

>   これは必ずしもコンパイラのバグとは限らず、Fortran 95 言語と SCCS ソースコード管理システムの衝突である可能性があります。

>   この問題を回避するには、ソースコードを SCCS で管理する計画がある場合は、構造体の構成要素に単一文字の名前を使用しないようにします。またはキーワードを無視する SCCS `get` オプション `-k` でファイルを取得するか、`X % Y % Z` のように `%` の前後に空白を挿入します。

> #### G. 記述の誤りの訂正

> 現時点では情報はありません。

> #### H. Fortran 95 の必須パッチ

> このリリースの必須およびオプションのパッチについては、『リリースノート』を参照してください。

> #### I. ライブラリの再配布について

> 実行可能ファイルが、次のファイルに示されたサンの動的ライブラリを必要とする場合は、ライセンスにもとづいて、それらのライブラリを再配布できます。

> ``/opt/SUNWspro/READMEs/ja/runtime.libraries`
> `

> 注 - ソフトウェアが `/opt` 以外のディレクトリにインストールされている場合は、ご使用のシステムにおける実際のパスを、システム管理者に確認してください。

> どのような形態でも、ヘッダーファイル、ソースコード、オブジェクトモジュール、オブジェクトモジュールの静的ライブラリを第三者に配付、公開することはできません。

> 使用ライセンスは、CD-ROM のケースの裏面にあるエンドユーザーオブジェクトコードライセンスに記載されています。

> Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved.Use is subject to license terms.