                                                   更新日付： 2004 年 5 月 26 日

 Sun Studio 9: Fortran 95 Readme 

     目次

       A. はじめに 
       B. Sun Studio 9 Fortran 95 について 
       C. 新規および変更された機能 
       D. ソフトウェアの修正事項 
       E. 問題点と回避策 
       F. 制限事項と互換性の問題 
       G. 記述の誤りの訂正 
       H. Fortran 95 の必須パッチ 
       I. ライブラリの再配布について 



     ------------------------------------------------------------------

     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 ページから以下のマニュアルにアクセスで
          きます。 
             o Fortan ユーザーズガイド 
             o Fortran プログラミングガイド 
             o OpenMP API ユーザーズガイド 
             o 数学ライブラリ Readme 
             o 数値計算ガイド 
             o インクリメンタルリンカー Readme 
             o Sun Performance Library Readme 
             o Sun Performance Library Reference Manual 
             o 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 プラットフォーム上だけです。

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

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

             o -fprecision、-fstore、および -nofstore 

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

             o -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 プラットフォームでのコンパイルについて

             o 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 
               に展開されます。

             o 次の -xarch および -xchip 値が新たに追加されています。
               -xchip=pentium3 - Pentium 3 プロセッサ用に最適化します。
               -xchip=pentium4 - Pentium 4 プロセッサ用に最適化します。
               -xarch=sse は、pentium_pro 命令セットに sse 命令セットを
               追加します。
               -xarch=sse2 は、pentium_pro 命令セットに sse2 命令セット
               を追加します。

             o -fns は、pentium3 または pentium4 プロセッサでのみ有効で
               す。-xarch が sse か sse2 でない場合、-fns=yes は無視さ
               れます。-xarch が sse か sse2 の場合、SSE および SSE2 浮
               動小数点演算命令に対し、-fns=yes は、アンダーフローをゼ
               ロにフラッシュし (FTZ)、非正規化オペランドをゼロとして扱
               う (DAZ) ことを意味します。-fns=yes は、従来の x86 浮動
               小数点演算命令には影響しません。たとえば long double 型
               のオペランドまたは結果に対する浮動小数点演算では、従来の
               x86 浮動小数点演算命令が使用され、-fns=yes の影響を受け
               ません。 

             o 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 コンパイラには、これらの組み込み関数が実装されていま
          す。新しい組み込み関数は以下のとおりです。 
             o GET_COMMAND(コマンド, 長さ, ステータス) 
               コマンド で、プログラムを呼び出しコマンド行全体を返しま
               す。 
             o GET_COMMAND_ARGUMENT(コマンド, 値, 長さ, ステータス) 
               値でコマンド行引数を返します。 
             o GET_ENVIRONMENT_VARIABLE(名前, 値, 長さ, ステータス, ト
               リム名)
               環境変数の値を返します。 

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

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

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

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

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

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

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

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

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

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

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

             o 32 ビットコンパイルの場合: 
               -xarch=v8 -xmemalign=4s -xprefetch=no
             o 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 および llibabc.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 言語と S
          CCS ソースコード管理システムの衝突である可能性があります。

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


     ------------------------------------------------------------------

     G. 記述の誤りの訂正

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


     ------------------------------------------------------------------

     H. Fortran 95 の必須パッチ

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


     ------------------------------------------------------------------

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

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

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

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

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

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


     ------------------------------------------------------------------

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