マニュアルページ f95.1




名前

     f95, f90 - Fortran 95 コンパイラ


形式

     f95 と f90 のどちらのコマンドでも起動できます (f95 と f90 は
     同じ意味です)。

     f95 [ -a ] [ -aligncommon[=a] ] [ -ansi ] [ -arg=local ]
          [ -autopar ] [ -Bx ] [ -C ] [ -c ] [ -cg89 ] [ -cg92 ]
          [ -copyargs ] [ -Dnm[=def] ] [ -dalign ]
          [ -dbl_align_all[={yes|no}] ] [ -depend[={yes|no}] ]
          [ -dryrun ] [ -d{y|n} ] [ -e ] [ -erroff[=taglist] ]
          [ -errtags[={yes|no}] ] [ -errwarn[=taglist] ]
          [ -explicitpar ] [ -ext_names=e ] [ -F ] [ -f ]
          [ -f77[=list] ] [ -fast ] [ -fixed ] [ -flags ]
          [ -fma={none|fused} ] [ -fnonstd ] [ -fns[={yes|no}] ]
          [ -fpover[={yes|no}] ] [ -fpp ] [ -fprecision=p ]
          [ -free ] [ -fround=r ] [ -fsimple[=n] ] [ -fstore ]
          [ -ftrap=t ] [ -G ] [ -g ]
          [ -hnm ] [ -help ] [ -Ipath ]
          [ -inline=rl ] [ -iorounding[=r] ] [ -KPIC ] [ -Kpic ]
          [ -Lpath ] [ -lx ] [ -libmil ] [ -loopinfo ] [ -Mpath ]
          [ -m32|-m64 ] [ -moddir=path ] [ -mp=x ] [ -mt ]
          [ -native ] [ -noautopar ] [ -nodepend ]
          [ -noexplicitpar ] [ -nofstore ] [ -nolib ]
          [ -nolibmil ] [ -noreduction ] [ -norunpath ]
          [ -O[n] ] [ -o nm ] [ -onetrip ]
          [ -openmp[=a] ] [ -PIC ] [ -p ]
          [ -pad[=a] ] [ -parallel] [ -pg ] [ -pic ]
          [ -Qoption pr ls ] [ -qp ] [ -R list ] [ -r8const ]
          [ -reduction ] [ -S ] [ -s ] [ -sb ] [ -sbfast ]
          [ -silent ] [ -stackvar ] [ -stop_status={yes|no} ]
          [ -temp=path ] [ -time ] [ -U ] [ -Uname ] [ -u ]
          [ -unroll=n ] [ -use=list ] [ -V ] [ -v ] [ -vax=v ]
          [ -vpara ] [ -w[n] ] [ -Xlist[z] ]
          [ -xa ] [ -xalias[=a[,a]...] ] [ -xarch=a ]
          [ -xassume_control[=a[,a]...] ] [ -xautopar ]
          [ -xbinopt={prepare|off} ] [ -xcache=c ] [ -xcg89 ]
          [ -xcg92 ] [ -xcheck=v ] [ -xchip=c ] [ -xcode=v ]
          [ -xcommonchk[={no|yes}] ] [ -xcrossfile=n ]
          [ -xdebugformat={stabs|dwarf} ] [ -xdepend ]
          [ -xdryrun ] [ -xexplicitpar ] [ -xF ]
          [ -xfilebyteorder=options ]
          [ -xhasc[={yes|no}] ] [ -xhelp=h ]
          [ -xhwcprof[=e] ] [ -xia[=i] ]
          [ -xinline=rl ] [ -xinstrument=d ]
          [ -xinterval=i ] [ -xipo[=n] ]
          [ -xipo_archive=a ] [ -xjobs=n ] [ -xknown_lib=lib ]
          [ -xlang=f77 ] [ -xlibmil ] [ -xlibmopt ] [ -xlicinfo ]
          [ -xlic_lib=sunperf ] [ -xlinkopt[=level] ]
          [ -xloopinfo ] [ -xmaxopt[=n] ]
          [ -xmemalign[=ab] ] [ -xmodel=[a] ] [ -xnolib ]
          [ -xnolibmil ] [ -xnolibmopt ] [ -xO[n] ]
          [ -xopenmp[=a] ] [ -xpad[=a] ] [ -xpagesize=n ]
          [ -xpagesize_heap=n ] [ -xpagesize_stack=n ]
          [ -xparallel ] [ -xpg ] [ -xpp=p ] [ -xprefetch=a[,a]]
          [ -xprefetch_auto_type=[no%]indirect_array_access ]
          [ -xprefetch_level=n ]
          [ -xprofile=p ] [ -xprofile_ircache=path ]
          [ -xrecursive ] [ -xreduction ] [ -xregs=r ] [ -xs ]
          [ -xsafe=mem ] [ -xsb ] [ -xsbfast ]
          [ -xspace ] [ -xtarget=t ] [ -xtime ]
          [ -xtypemap=spec ] [ -xunroll=n ]
          [ -xvector[={v}] ] [ -ztext ]
            source file(s) ...  [ -lx ]



機能説明

     Sun Studio 12  Fortran 95 コンパイラ、バージョン 8.3 。

     f95 コンパイラでは、標準に準拠した Fortran 95 ソースコードプ
     ログラムを使用できます。また、Fortran 2003 のいくつかの機
     能、区画演算の拡張機能、および OpenMP[tm] Fortran 95 API
     version 2.5 も使用できます。さらに、-f77 互換性オプションの
     下の多くの FORTRAN 77 (f77) 言語拡張機能と VAX VMS Fortran
     拡張機能 (-vax) も使用できます。

     Fortran 95 コンパイラ f95 の Version 8.3  は、Sun Studio 12
     のコンポーネントの 1 つとして発表されたバージョンです。これ
     は、Solaris[tm] オペレーティングシステム (Solaris OS)
     Version 9、10 (SPARC(R) および x86 プラットフォームの場合)
     および SuSE Linux Enterprise Server 9 Service Pack 3 以降が
     稼働する Linux x86 プラットフォーム、または Red Hat
     Enterprise Linux 4で使用することができます。

     プラットフォーム、環境、新しい機能、制限事項、問題、回避策、
     およびソフトウェア修正の最新情報については、Sun Studio の
     Web ポータル
      http://developers.sun.com/sunstudio/ を参照してください。

     マニュアルページは、クイックリファレンスです。f95 コンパイラ
     とそのオプションの使用方法についての詳細は、 Fortran 
     Fortran を参照して
     ください。このマニュアルは、Sun Studio のポータル
     http://developers.sun.com/sunstudio/ の「Documentation」の
     ページからアクセスできます。

     f95 コンパイラの使用方法についての詳細は、Fortran 
     を参照してください。このユーザーズガイドには、f95
     が受け入れるすべてのオプション、プラグマ指令、および環境変数
     についての詳細と、標準 Fortran 95 コンパイラとこの Fortran
     95 コンパイラとの相違点の説明があります。

     プログラムのパフォーマンスと最適化、並列化、およびほかの
     Fortran プラットフォームからの移植については、Fortran 
     を参照してください。

     関連する Sun Studio マニュアルの一覧は、本マニュアルページの
     最後にあります。

     すべてのインストール済みの Sun Studio のマニュアル (Sun
     Studio のポータルにあるマニュアルへのリンクも含む) の索引
     は、このソフトウェアがインストールされているホストシステムに
     ある次のファイルを HTML ブラウザで指定して参照できます。
        file:/opt/SUNWspro/docs/index.html
     インストールされているマニュアルの参照方法については、ご使用
     のシステムのシステム管理者にお問い合わせください。

     これ以外の技術的な参考資料や、パッチおよび問題の回避策に関す
     る最新情報は、コンパイラコレクション開発者リソースのポータル
     ( http://developers.sun.com/sunstudio/ ) にあります。



新機能

     このリリースの Sun Studio Fortran 95 コンパイラには、次の新
     しい機能があります。


          o    Linux (x86 および x64) ディストリビューションで
               Fortran コンパイラを使用できるようになりました。こ
               のコンパイラが使用できるのは、SuSe Linux
               Enterprise Server 9 Service Pack 3 以降、Red Hat
               Enterprise Linux 4、2.6 カーネルを使用するその他の
               Linux ディストリビューションです。ただし、正式には
               サポートされていません。

          o    64 ビット実行可能ファイルおよび共有ライブラリを作
               成するための -m64 の使用。

          o    廃止フラグに代わる -xarch の新しいフラグ。

          o    UltraSPARC T2 および SPARC64vi プロセッサ用のコー
               ド生成を可能にする新しい値を -xtarget および
               -xchip に追加。

          o    対応するプロセッサでの fused multiply-add 命令の生
               成を可能にする新しいフラグ -fma=fused。

          o    データ領域のプロファイリングのコンパイラサポートを
               可能にする新しいフラグ -xhwcprof。

          o    スレッドアナライザによるパフォーマンス解析を可能に
               する新しいフラグ -xinstrument

          o    x86 での -fast への -xregs=frameptr の追加。

          o    Solaris x86 プラットフォームでの -xarch=sse2 -xia
               オプションによる区間演算のサポート。

          o    SPARC プラットフォームと同様に x86 プラットフォー
               ムでも受け付けられる明示的な先読み指令の追加 (-
               xprefetch=explicit)。

          o    デバッグ情報のデフォルト形式を "stabs" 規格から
               "dwarf" 形式に変更 (-xdebugformat=dwarf)。

     このリリースのコンパイラの詳細は、Sun Studio Web ポータルサ
     イト (http://developers.sun.com/sunstudio/) のコンパイラド
     キュメントのページを参照してください。

     詳細とこれまでの経緯については、Fortran 
     を参照してください。



64 ビットプラットフォーム向けコンパイル:

     このリリースでは、32 ビットまたは 64 ビットバイナリのコンパ
     イルの指定方法が変更されています。-xarch オプションは、暗黙
     のメモリーモデル、32 ビットILP32 または 64 ビット LP64 とそ
     の定義の指示には使用されなくなりました。このリリースからは、
     ターゲットプロセッサの命令セットの指定にのみ使用されます。

     ターゲットコンパイルのメモリーモデルの指定には、新しいオプ
     ション -m32 および  -m64 を使用します。

     ILP32 モデルでは、C 言語の int、long、およびポインタデータ型
     のすべてが 32 ビット幅になります。LP64 モデルでは、long およ
     びポインタデータ型のすべてが 64 ビット幅になります。Solaris
     および Linux OS は、LP64 メモリーモデルでの大規模ファイルお
     よび大規模配列もサポートします。

     -m64 を指定してコンパイルすると、生成される実行可能ファイル
     は、64 ビットカーネルが動作する Solaris OS または Linux OS
     の 64ビット UltraSPARC(R) または x86 プロセッサでのみ動作し
     ます。64 ビットオブジェクトのコンパイル、リンクおよび実行
     は、64 ビット実行をサポートする Solaris または Linux OS での
     み行うことができます。


x86 に関する特記事項

     x86 Solaris プラットフォーム向けにコンパイルする際に知ってお
     くべき重要事項があります。

     x86では、従来の Sun および Cray 形式の並列化指令は使用できま
     せん。代わりに OpenMP を使用してください。従来の並列化指令の
     OpenMP への変換については、『OpenMP API ユーザーズガイド』を
     参照してください。

     -xarch を sse、sse2、sse2a、または sse3 のどれかに設定してコ
     ンパイルしたプログラムは、それらの拡張および機能を提供するプ
     ラットフォームでのみ実行してください。

     Pentium 4 互換プラットフォームでは、Solaris 9 4/04 以降の OS
     リリースは SSE/SSE2 に対応しています。これ以前のバージョンの
     Solaris OS は SSE/SSE2 に対応していません。-xarch によって選
     択された命令セットが実行中の Solaris で非対応の場合、コンパ
     イラはその命令セット用のコードを生成したり、リンクしたりでき
     ません。

     コンパイルとリンクを別々に行う場合は、必ず、同じ -xarch 設定
     でコンパイラを使用してリンクし、適切な起動ルーチンがリンクさ
     れるようにしてください。

     x86 の浮動小数点レジスタのサイズが 80 バイトであるため、x86
     上と SPARC 上での数値結果が異なることがあります。こうした違
     いが出ないようにするには、-fstore オプションを使用するか、
     ハードウェアが SSE2 をサポートしている場合は、-xarch=sse2 を
     指定してコンパイルしてください。

     組み込み数学ライブラリ (sin(x) など) が同じでないため、
     Solaris と Linux の間でも数値結果が異なることがあります。

     バイナリ互換性の検証
     Sun Studio 11 および Solaris 10 OS 以降、これらの特化された
     -xarch ハードウェアフラグを使用してコンパイルし、構築された
     プログラムバイナリは、適切なプラットフォームで動作するかどう
     か検証されるようになっています。

     Solaris 10 より前のシステムでは、検証が行われず、それらのフ
     ラグを使用して構築されたオブジェクトの適切なハードウェアへの
     配備はユーザーの責任で行うことになっていました。

     適切な機能または命令セット拡張を持たない非対応のプラット
     フォームで、-xarch オプションを指定してコンパイルされたプロ
     グラムを実行すると、明確な警告メッセージなしにセグメント例外
     や不正な結果が発生することがあります。

     この警告は、.il インラインアセンブリ言語関数を使用しているプ
     ログラム、あるいは SSE/SSE2/SSE2a/SSE3 命令および拡張を使用
     している __asm() アセンブラコードにも当てはまります。


オプション

     SPARC プラットフォームでのみ有効なオプションには、 (SPARC)
     と注記されています。

     x86/x64 プラットフォームでのみ有効なオプションには、 (x86)
     と注記されています。

     非推奨オプションは、 (旧式)
      と注記されていて、以降、使わないことを推奨します。それらの
     オプションは、以前のリリースとの互換性を維持する目的にのみ提
     供されています。指示されている代わりのオプションを使ってくだ
     さい。

     リンカーオプションについては、 ld(1) を参照してください。

     f95 でコンパイルを行なった場合、メッセージは表示されません。
     エラーと警告メッセージを除いて、コンパイル中に「進捗」メッ
     セージを出力しません。

     一般的に、コンパイラオプションは左から右に処理されます。その
     ため、特定のマクロオプションを優先させることもできます。この
     規則はリンカーまたはプリプロセッサのオプションには適用されま
     せん。

     コマンド行オプションの項目では、角括弧 ( [] ) で示された項目
     は省略可能です。{yes | no | maybe } のように中括弧で囲まれた
     縦線区切りのリテラル項目のリストは、そのから 1 つを選択しま
     す。リストの最初の項目は、通常、値なしでフラグが現れた場合の
     デフォルト値を示します。

     たとえば、-someoption[={no|yes}] は -someoption
      が -someoption=no
      と同じであることを意味します。



オプション一覧

     -a   (旧式) tcov 用に基本ブロックごとのプロファイルを生成し
          ます。

          各基本ブロックが実行される回数をカウントします。
          tcov(1) をソースファイルに対して実行し、そのプログラム
          の統計を生成します。

          これは、 tcov 用の基本ブロックの古い形式のプロファイル
          です。代わりに -xprofile=tcov を使用してください。

     -aligncommon[={1|2|4|8|16}]
          共通ブロックおよび標準数値シーケンス型内のデータの整列
          を指定します。

          指定された値は、共通ブロックおよび標準数値シーケンス型
          内のデータ要素の整列の最大値 (単位はバイト) を示しま
          す。たとえば、 -aligncommon=4 は、共通ブロックのデータ
          要素を、4 バイトまたはそれ以上の境界の自然配列に整列し
          ます。このオプションは、指定した大きさより小さい自然配
          列データには影響しません。

          -aligncommon を指定しないと、

          共通ブロックのデータおよび標準数値シーケンスのデータ
          は、デフォルトの最大 4 バイト境界に整列されます。

          値なしで -aligncommon が指定された場合のデフォルトは、
          プラットフォームに関係なく 1 です。つまり、要素間のパ
          ディングなしで、すべてのデータがバイト境界で整列しま
          す。

          64 ビット非対応のプラットフォーム用のコンパイルでは、
          -aligncommon=16 は -aligncommon=8 に戻されます。

          -xmemalign も参照してください。

     -ansi
          標準外の拡張機能を識別します。

     -arg=local
          ENTRY 文に対する実際の引数を保持します。

          このオプションを指定し、代替エントリポイントを使って副
          プログラムをコンパイルすると、 f95 は copy restore を使
          用してダミーの引数と実際の引数との対応を保持します。

          このオプションは従来の Fortran 77 プログラムとの互換性
          をもっています。このオプションに依存するコードは標準外
          です。

     -autopar
          自動ループ並列化を有効にします。

          適切なループを見つけ、並列化します。依存関係解析を行い
          ます (データ依存関係についてループを解析します)。ループ
          の再構成を行います。最適化レベルが -O3 よりも低い場合、
          最適化レベルを -O3 に設定します。

          並列化オプションを使用するときには、 -stackvar オプショ
          ンも指定します。 -stackvar オプションは、 -autopar が使
          用されたときに、パフォーマンスの向上をもたらすことがあ
          ります。これは、オプティマイザが並列化対象をさらに検出
          できることがあるためです。メインスレッドスタックおよび
          スレーブスレッドスタックのサイズを設定する方法について
          は、 -stackvar オプションの説明を参照してください。

          独自のスレッド管理を行う場合は、 -autopar は使用しない
          でください。 -mt の注を参照してください。

          また、 -autopar はシングルプロセッサシステムには適して
          おらず、パフォーマンスも低下します

          詳細は、『Fortran プログラミングガイド』の並列化に関す
          る章を参照してください。

          :  マルチスレッド環境で並列化プログラムを実行
          するには、実行前に
           OMP_NUM_THREADS 環境変数を設定する必要があります。この
          環境変数は、プログラムが作成できるスレッドの最大数を実
          行時システムに伝えます。デフォルトは 1 です。一般に、
          OMP_NUM_THREADS には、実行中のシステムで使用可能な仮想
          プロセッサ数を設定します。このプロセッサ数は、Solaris
          の psrinfo(1) コマンドを使用して確認できます。

          -autopar を指定し -explicitpar を指定しない場合、明示的
          な Sun/Cray 並列化指令は無視されます。

          -autopar を使用し、コンパイルとリンクを同じ段階で行う場
          合、リンクはマイクロタスクライブラリとスレッド安全
          FORTRAN 実行時ライブラリを自動的にインクルードします。
          -autopar を使用し、コンパイルとリンクを別の段階で行う場
          合、f95 -autopar でリンクしなければなりません。

     -B{dynamic|static}
          ライブラリのリンク方式を指定します。

          このオプションのあとにコマンド行で指定するライブラリの
          リンク方法として、動的リンクを優先するか、必ず静的リン
          クを実行するかを指定します。これはリンカーのオプション
          です。

          デフォルトは -Bdynamic です。

          -Bdynamic:  動的リンクを優先する (共有ライブラリのリン
          ク)
          -Bstatic :  静的リンクを実行する場合がある (非共有ライ
          ブラリのリンク)

          static を指定した場合に動的ライブラリしか見つからない
          と、ライブラリのリンクは実行されず、警告メッセージが出
          力されます。

          しかし、 dynamic を指定した場合に静的ライブラリしか見つ
          からない場合は、そのライブラリがリンクされ、警告メッ
          セージは出力されません。

          -Bdynamic と -Bstatic は 1 つのコマンド行の中で何回でも
          指定できます。したがって、ライブラリの種類に応じて、リ
          ンク方式を動的と静的の間で切り替えることができます。

          これらはリンカーオプションであるため、 -Bstatic または
          -Bdynamic を指定して、コンパイルとリンクを別々に実行す
          る場合、コンパイルコマンド上に -Bx オプションを指定した
          ら、リンク時にも -Bx オプションを指定する必要がありま
          す。

          64 ビット環境では、システムライブラリの多くは共有動的ラ
          イブラリとしてのみ有効です。これらには、libm.so や
          libc.so (libm.a と libc.a は提供されていません) が含ま
          れます。その結果、 -Bstatic および -dn は 64 ビット
          Solaris OS でリンクエラーを起こす可能性があります。この
          ような場合は、アプリケーションが動的ライブラリとリンク
          しなければなりません。

          注: 静的な Fortran 実行時システムライブラリと動的な
          Fortran 実行時システムライブラリの混在は推奨されませ
          ん。リンカーエラーが発生したり、何のメッセージもなしに
          データが壊れたりすることがあります。必ず、最新の動的共
          有 Fortran 実行時システムライブラリとリンクしてくださ
          い。

     -C   範囲外の添字と構造について配列参照を検査します。

          宣言されたサイズを超える添字を配列に付けると、予想外の
          結果 (セグメント例外も含む) が生じることがあります。 -C
          オプションは、ソースコードと実行時に考えられる配列添字
          違反を検査します。

          With the -C オプションを指定すると、実行時の配列添字違
          反がエラーとして扱われます。コンパイラは、ソースコード
          内の配列添字範囲違反も警告として示します。

          -C を指定してコンパイルしても、配列構文を用いた文中に実
          行時配列違反がないか検査されます。

          このオプションは、実行可能ファイルのサイズを増やし、実
          行パフォーマンスを落とします。デバッグのときだけ使用す
          るようにしてください。

     -c   コンパイルだけを行います。実行可能ファイルは作成しませ
          ん。

          各ソースファイルごとにコンパイルし、.o ファイルを生成し
          ますが、ローダーによるリンクを抑制します。 -o オプショ
          ンを使用すれば、単一のオブジェクトファイルに名前をつけ
          ることができます。

     -cg89
          (旧式、SPARC) 汎用の SPARC アーキテクチャー用のコードを
          生成します。

          このオプションは、
             -xarch=v7 -xchip=old -xcache=64/32/1
          をマクロ化したもので、  -xtarget=ss2 と同義です。このオ
          プションは使わないでください。最新の Solaris オペレー
          ティングシステムは、SPARC V7 アーキテクチャーをサポート
          しません。このオプションを指定してコンパイルしたプログ
          ラムは、最新の SPARC プラットフォームで実行速度が低下し
          ます。




     -cg92
          (旧式, SPARC) SPARC V8 アーキテクチャーで動作するコード
          を生成します。

          このオプションは、
          -xarch=v8 -xchip=super -xcache=16/32/4:1024/32/1
          をマクロ化したもので、 -xtarget=ss1000 と同義です。

     -copyargs
          定数引数への割り当てを許可します。

          副プログラムが、定数の仮引数を変更できるようにします。
          このオプションにより、レガシーコードは、定数を変更する
          のに、実行時エラーなしでコンパイルおよび実行できるよう
          になります。

          -copyargs を指定しないで、副プログラムに定数引数を渡し
          てから、サブルーチン内でその定数を変更しようとした場
          合、異常終了します。

          -copyargs を指定して、副プログラムに定数引数を渡してか
          ら、サブルーチン内でその定数を変更する場合、必ずしもラ
          ンタイムエラーになりません。

          -copyargs フラグを使用するコンパイルを必要とするプログ
          ラムは、Fortran 規格準拠のプログラムではありません。

     -Dname[=def]
          ソースコードプリプロセッサのシンボル name を定義しま
          す。

          これは、ソース内の define 指令と同義です。定義 def が指
          定されない場合、 name は 1 に定義されます。このオプショ
          ンは拡張子 .F .F90 .F95 .F03 が付いたファイルのみに適用
          されます。

          次のシンボルは、それぞれ使用しているシステムに合うよう
          に事前定義されています。下線が先頭に 2 本ついていること
          に注意してください。

             __sparc, __sparcv9, __unix, __sun, __i386, __x86_64,
             __amd64, __SVR4, __SunOS_5_6, __SunOS_5_7,
             __SunOS_5_8, __SunOS_5_9, __SunOS_5_10

          Fortran 構文は、上記のシンボルの実際値をサポートしない
          場合もあるかもしれません。このシンボルは、次のような
          fpp または cpp プリプロセッサ条件文でのみ使用される必要
          があります。
             #ifdef __sparc

          上記に対応する古い値として、以前のリリースでも次のシン
          ボルが事前定義されています。
              sparc, unix, sun,

          これらの古い事前定義値は、将来のリリースでは削除される
          可能性があります。

          f95 は、デフォルトでは fpp(1) プリプロセッサを使用しま
          す。C プリプロセッサ cpp(1) と同様に、fpp はソースコー
          ドマクロを展開し、コードを条件付きでコンパイルすること
          ができます。また cpp とは異なり、 fpp は Fortran 構文を
          認識するので、Fortran プリプロセッサとしては fpp が優先
          して使用されます。 -xpp=cpp フラグを指定すると、 fpp で
          はなく cpp を使用するようにコンパイラに対して強制できま
          す。 -xpp=cpp

     -dalign
          COMMON ブロックデータと標準数値シーケンス型を整列し、高
          速な多重ワードのロード/ストア命令を生成します。

          このフラグは、COMMON ブロック (および EQUIVALENCE クラ
          ス) のデータレイアウトを変更し、コンパイラが更に高速な
          多重ワードのロード/ストア命令を生成するのを可能にしま
          す。

          -dalign はマクロであり、SPARC プラットフォームの場合は
            -xmemalign=8s -aligncommon=16
          32 ビット x86 プラットフォームの場合は   -aligncommon=8
          64 ビット x86 プラットフォームの場合は
          -aligncommon=16 と同じです。

          データレイアウトは -f フラグを使用した時と同じ結果とな
          ります。つまり、COMMON ブロック内や EQUIVALENCE クラス
          の倍精度および 4 倍精度のデータは「自然な」整列でメモ
          リー内に配置されています。この整列は、8 バイト境界 (あ
          るいは、 -m64 で 64 ビット SPARC プラットフォーム向けに
          コンパイルする場合、4 倍精度データは 16 バイト境界) で
          す。COMMON ブロックの整列のデフォルトは、4 バイト境界で
          す。

          また、 -dalign と
          -xtypemap=real:64,double:64,integer:64 を一緒に使用する
          と、SPARC では 64 ビット整数変数は 8 バイトに境界整列さ
          れます。

          -dalign を使用すると、データの境界整列が FORTRAN の標準
          に合わなくなることがあります。これは、EQUIVALENCE や
          COMMON で使用される変数に問題となることがあります。すな
          わち、速度と引き換えに移植性を失うことになります。

          副プログラムおよびファイルを -dalign でコンパイルしたと
          きは、同じプログラム単位内のすべての副プログラムまたは
          ファイルを -dalign でコンパイルしてください。

          -dalign は -aligncommon を起動するので、標準数値シーケ
          ンス型の整列も影響を受けます。

          -fast フラグは -dalign を選択します。

     -dbl_align_all[={yes|no}]
          データを 8 バイト境界に整列させます。

          yes が指定されると、すべての変数は 8 バイト境界に整列し
          ます。デフォルトは、 -dbl_align_all=no です。
          -dbl_align_all だけの指定は -dbl_align_all=yes と同じで
          す。

          -m64 を指定して 64 ビット SPARC 環境のコンパイルを行う
          と、このフラグは 4 倍精度データを 16 バイト境界に整列さ
          せます。

          このフラグは、COMMON ブロックまたはユーザー定義構造体内
          のデータレイアウトは変更しません。

          使用する場合は、すべてのルーチンをこのオプションでコン
          パイルしなければなりません。

     -depend[=yes|no]
          データ依存関係と再構成についてループを解析します。

          -depend は -depend=yes と同じ意味で、依存解析を有効にし
          ます。

          -depend=no は DO ループのデータ依存解析を無効にするもの
          で、デフォルトです。

          データ依存関係についてループを解析し、ループの再構成を
          行います。 -depend データ依存関係の解析は、 -fast 、
          -parallel 、および -autopar の一部として選択されます。

          は、最適化レベルが -O3 よりも低い場合、最適化レベルを
          -O3 に引き上げます。最適化レベル -O3 以上が指定されてい
          れば、データ依存解析は自動的に有効になります。

     -dryrun
          f95 ドライバが構築したコマンドを表示します。コンパイル
          はしません。

          このオプションは、コンパイラがコンパイル時に実行するコ
          マンドを表示するため、デバッグに役立ちます。

     -d{y|n}
          実行可能ファイル全体を生成するときのライブラリのリンク
          形式 (動的または静的) を指定します。

          実行可能ファイル全体について、 リンクを行うかどうか
          を y (動的リンク) または n (静的リンク) で指定します。
          これはリンカーのオプションです。

          デフォルトは -dy です。

          -dy:  動的リンク (共有ライブラリを使用可能)
          -dn:  静的リンク (共有ライブラリは使用不可)

          -B{dynamic|static} とは異なり、このオプションは実行可能
          ファイル全体に適用され、コマンド行で 1 度だけ使用しま
          す。

          -d{y|n} はリンカーのオプションです。このオプションを指
          定してコンパイルとリンクを別々に行う場合は、リンクでも
          同じオプションを指定する必要があります。

          64 ビット環境では、システムライブラリの多くは、共有動的
          ライブラリとしてのみ有効です。これらには libm.so および
          libc.so (libm.a と libc.a は提供されていません) が含ま
          れます。結果として、64 ビット Solaris OS プラットフォー
          ムと 32 ビット Solaris x86 プラットフォーム、Solaris 10
          リリース以降の 32 ビット Solaris プラットフォームのすべ
          てで、 -Bstatic および -dn がリンクエラーを引き起こすこ
          とがあります。この場合、アプリケーションを動的ライブラ
          リとリンクさせる必要があります。

     -e   132 文字まで固定書式ソース行を拡張します。

          コンパイラは (132 桁まで) 右側に空白を埋め込みます。 -e
          でコンパイルするときに継続行を使用する場合、文字定数を
          複数の行に分割しないでください。そうしなければ、定数の
          間に不必要な空白が挿入される可能性があります。

     -erroff[={%all|%none|taglist}]
          タグ名で示される警告メッセージを抑止します。

          このオプションは警告メッセージに影響するだけです。エ
          ラーメッセージは影響を受けません。The taglist には、警
          告メッセージと共に表示されるコンマ区切りのタグ名のリス
          トを指定します。 %all のみ指定された場合はすべての警告
          が抑止されます (これは、 -w オプションと同じです。)
          %none のみ指定された場合、警告は抑止されません。値を付
          けずに -erroff とだけ指定するのは、 -erroff=%all と指定
          したのと同じです。

          ( -errtags も参照してください)。

     -errtags[={yes|no}]
          各警告メッセージと共にメッセージタグを表示します。

          このオプションを付けると、コンパイラの内部エラータグ名
          が表示されます。(-errtags=no と同じことです) 。値を指定
          しない -errtags は、-errtags=yes と同じことを意味しま
          す。

     -errwarn[={%all|%none|taglist}]
          警告メッセージをエラーと見なします。

          は、エラーと見なす警告メッセージのコンマ区切りのタグ名
          リストです。 %all
           のみ指定された場合は、すべての警告がエラーとみなされま
          す。 %none
           のみ指定された場合、警告はエラーと見なされません。

          関連項目: -errtags.

     -explicitpar
          (旧式、SPARC のみ) 指令で明示的に示されたループを並列化
          します。

          このオプションを使用すると、従来の Sun または、Crayの並
          列化指令が有効になります。これらの指令および並列かモデ
          ルは非推奨で、すでにサポートされていません。推奨、そし
          てサポートされている並列化モデルは、OpenMP API です。
          OpenMP への Sun/Cray 指令の変換の詳細は、 -xopenmp オプ
          ションおよび『OpenMP API ユーザーズガイド』を参照してく
          ださい。

          コンパイラは、並列に実行すると正確な結果が生成されない
          ようなデータの依存が DO ループ中にある場合でも、並列
          コードを生成します。明示的な並列化を行う場合は、ループ
          を正しく解析してデータ依存の問題がないことを確認してか
          ら、並列化の指令を使用してください。

          このオプションは、Sun または Cray の明示的な並列化指令
          を有効にします。このオプション付きでコンパイルすると、
          並列化指令の直後にある DO ループから、スレッド化された
          並列コードが生成されます。並列化はマルチプロセッサシス
          テムの場合にのみ適しています。このオプションは、すでに
          libthread ライブラリへの呼び出しによって独自にマルチス
          レッド処理を行っているプログラムをコンパイルする場合に
          は使用できません。

          デフォルトでは、Sun 並列化指令は -explicitpar で有効に
          なります。Cray 形式の指令を使う場合は -mp=cray を追加し
          ます。たとえば次のように指定します。

            -explicitpar -stackvar -mp=cray

          注 :OpenMP 並列化指令を有効にするには、-explicitpar で
          はなく、-xopenmp を指定してコンパイルします。

          :  マルチスレッド環境で並列化プログラムを実行
          するには、実行前に OMP_NUM_THREADS 環境変数を設定する必
          要があります。この環境変数は、プログラムが作成できるス
          レッドの最大数を実行時システムに伝えます。デフォルトは
          1 です。一般に、OMP_NUM_THREADS には、実行中のシステム
          で使用可能な仮想プロセッサ数を設定します。このプロセッ
          サ数は、Solaris の psrinfo(1) コマンドを使用して確認で
          きます。

          -explicitpar を使用してコンパイルとリンクを同時に行う
          と、マイクロタスキングライブラリとスレッド対応の
          Fortran 実行時ライブラリが自動的にリンクされます。
          -explicitpar を使用してコンパイルとリンクを別々に行うと
          きは、リンク時にも必ず -explicitpar を使用してくださ
          い。

          -autopar の説明も参照してください。

          -explicitpar などの並列化オプションを使用する場合にパ
          フォーマンスを改善するには、 -stackvar オプションも指定
          してください。メインスレッドスタックおよびスレーブス
          レッドスタックのサイズを設定する方法については、
          -stackvar オプションの説明を参照してください。

          最適化レベルが -O3 よりも低い場合は、自動的に -O3 に設
          定されます。

          詳細は、『Fortran プログラミングガイド』の並列化に関す
          る章を参照してください。

     -ext_names=e
          下線付きまたは下線なしの外部名を作成します。

          e は、 plain か underscores でなければなりません。デ
          フォルトは underscores です。

          plain:  末尾に下線を追加しません。
          underscores:  末尾に下線を追加します。

          外部名は、サブルーチン、関数、ブロックデータ副プログラ
          ム、または名前付き共通ブロックの名前です。このオプショ
          ンは、ルーチン自体で使用されている名前だけでなく、呼び
          出し側の文 (symdefs と symrefs の両方) で使用されている
          名前にも作用します。

     -F   ソースファイルプリプロセッサを起動します。ただしコンパ
          イルは行いません。

          拡張子 .F90、 .F95、 .F03、および .F が付いたファイルに
          fpp プリプロセッサを適用し、拡張子を .f90、 .f95、
          .f03、または .f に変更したファイルにその結果を出力しま
          す。ただし、コンパイルは行いません。

          fpp は Fortran のデフォルトのプリプロセッサです。C のプ
          リプロセッサ cpp は、 -xpp=cpp を指定すると選択されま
          す。

     -f   COMMON ブロックにおいて、倍精度または 4 倍精度のデータ
          を整列します。

          このフラグは、COMMON ブロック (および、EQUIVALENCE クラ
          ス) におけるデータのレイアウトを変更します。COMMON ブ
          ロック (および、EQUIVALENCE クラス) における倍精度デー
          タと 4 倍精度データはメモリー内で「自然」に、つまり、8
          バイト境界 (あるいは、64 ビット SPARC 環境で -m64 を指
          定してコンパイルした場合は 16 バイト境界) に整列されま
          す。デフォルトでは、COMMON ブロックにおけるデータは 4
          バイト境界に整列されます。

          -f は -aligncommon=16 と同じ意味です。

          これは、実数と複素数の両方のデータに適用されます。

          ただし、結果のコードは標準のものと異なる可能性があり、
          そのために移植できない場合があります。

          1 つの副プログラムを -f でコンパイルした場合は、同じプ
          ログラムのすべての副プログラムも -f でコンパイルしてく
          ださい。

          このオプションを単独で使用しても、コンパイラは倍精度と
          4 倍精度のデータに対して高速のダブルワードの先読み/スト
          ア命令を生成することはできません。これを実行させるには
          -dalign を指定する必要があります。

     -f77[=list]
          Fortran 77 互換モードを選択します。

          list はコンマで区切ったリストで、次のキーワードで構成さ
          れます。

          %all    すべての f77 互換機能を選択します。

          %none   f77 互換機能を無効にします。

          output  リスト指定出力や名前リスト出力を含む、f77 スタ
                  イルの書式付き出力を生成します。

          input   f77 で使用可能な入力書式を受け入れます。

          tab     tab  無制限のソース行長さを含む、f77 スタイルの
                  TAB 書式を有効にします。また 72 文字以下のソー
                  ス行に空白文字パディングを追加しません。

          backslash
                  文字列内のエスケープシーケンスの始まりとして、
                  バックスラッシュ文字を受け入れます。

          intrinsics
                  組み込みの認識を Fortran 77 組み込みに限定しま
                  す。

          logical Fortran 77 が次のように論理変数を使用できるよう
                  にします。

                  - 論理変数への整数値の割り当てを許可します。

                  - .TRUE. を表す .NE.0 を使用して、条件文に論理
                    式の代わりに算術式を使用することを許可しま
                    す。

                  - 論理オペランドに関係演算子 .EQ. と .NE. の使
                    用を許可します。

          subscript
                  非整数式を配列添字として使用可能にします。

          misc    Fortran 95 によりサポートされていないそのほかの
                  Fortran 77 拡張機能を使用可能にします。

          すべてのキーワードに次のように no% の接頭辞を付けること
          により、対応する機能を無効にできます。

             -f77=%all,no%backslash

          -f77 が指定されない場合は、デフォルトで -f77=%none が指
          定されます。-f77 がリストなしで使用されると、-f77=%all
          を指定した場合と同じ結果になります。

          例外のトラップ

          -f77 を指定すると、Fortran 95 トラップモードが変更され
          ません。これは -ftrap=common です。Fortran 95 と
          Fortran 77 は、演算例外トラップの動作が異なります。
          Fortran 77 の場合、これは、演算例外の発生後も実行を継続
          できるようにするためでした。また、このためには、プログ
          ラム終了時、プログラム呼び出しの ieee_retrospective
          は、に発生した演算例外を報告できていました。

          Fortran 77 の動作をまねたトラップに戻すには、-f77 のあ
          とに -ftrap=%none を指定します。

          FORTRAN 77 プログラムの Fortran への移行
          -f77 とその互換機能の詳細については、 Fortran 
          の FORTRAN 77 互換に関する章を参照してく
          ださい。また、不正な結果を出す可能性のある非標準
          FORTRAN 77 プログラミングの処理については、-xalias フラ
          グも参照してください。
          f77 によるコンパイル
          使い勝手を考え、Fortran 77 コンパイラスクリプトが用意さ
          れています。 f77
           コマンド行スクリプトは、Fortran 77 との互換性を維持す
          るための一群の適切なオプションを指定して f95
           を呼び出します。詳細は、f77(1) のマニュアルページを参
          照してください。

     -fast

          実行パフォーマンスを最適化するオプションを選択します。

          -fast は、ある種のアプリケーションのパフォーマンスを向
          上させます。しかし、アプリケーションによっては、特定の
          オプションが選択されることが適切ではない場合があるかも
          しれません。アプリケーションのパフォーマンスを最大化す
          るための最初の手順として -fast を使用してアプリケーショ
          ンをコンパイルしてみてください。しかし、更に調整が必要
          な場合があります。 -fast を指定してコンパイルしたプログ
          ラムが正しく動作しない場合、 -fast を形成している個々の
          オプションを調査して、プログラムを正しく動作させるオプ
          ションだけを呼び出してください。

          -fast でコンパイルされたプログラムが、あるデータセット
          を使うと最適なパフォーマンスと正確な結果を出し、別の
          データセットではそうならないという可能性もあります。浮
          動小数点演算の特定のプロパティーに依存しているプログラ
          ムは、 -fast を指定してコンパイルしないでください。

          -fast は次のオプションを選択します。

          o -xtarget=native は、ハードウェアターゲットを設定しま
            す。
            コンパイルマシンとは異なるターゲットマシンでプログラ
            ムを実行する場合は、 -fast のあとに適切な -xtarget=
            オプションを指定してください。次はその例です。
                  f95 -fast -xtarget=ultra ...

          o -O5 は、レベル 5 の最適化を選択します。

          o -libmil は、特定の数学ライブラリルーチンをインライン
            化します。

          o -fsimple=2 は、より広範囲の浮動小数点の最適化を行いま
            す。このオプションは、厳密な IEEE 754 標準に準拠する
            必要のあるプログラムには適合しないことがあります。

          o -dalign は、より高速なダブルワードのロード/ストア命令
            や、共通ブロック内の自然境界の倍精度と 4 倍精度データ
            の配列を生成します。このオプションを使用すると、非標
            準の Fortran データ配列が生成される場合があります。

          o -xlibmopt は、最適化された数学ライブラリをリンクしま
            す。 (Solaris のみ)

          o -depend=yes は、DO ループをより最適化するための依存性
            解析を選択します。(このオプションは、最適化レベルが
            .B -O3 以上の場合に必ず選択されます。)

          o -fns は、浮動小数点演算例外および段階的アンダーフロー
            の処理を高速化します (ただし非標準)。

          o -ftrap=common は、共通浮動小数点例外のトラップを選択
            します ( f95 のデフォルト)。

          o -pad=local は、ローカルパディングを選択してキャッシュ
            の使用率を改善します。 (SPARC)

          o -xvector=lib は、ベクトル化数学ライブラリを選択しま
            す。 (SPARC)

          o -xvector および -xlibmopt が必要とするため、
            -fround=nearest が選択されます。 (Solaris のみ) を選
            択します。

          o -nofstore は、式の精度を強制的に結果の精度に合わせる
            のを取り消します。 (x86)

          o -xregs=frameptr 未割り当ての呼び出し先保存レジスタと
            してフレームポインタレジスタを使用することを許可しま
            す。-fast のあとに -xregs=no%frameptr を指定すると、
            フレームポインタレジスタは汎用レジスタとして使用され
            ません。 (x86)

          この構成要素オプションフラグの選択は、コンパイラのリ
          リースごとに変更されることがあるので注意してください。
          -fast により設定されるオプションの詳細については、
          Fortran を参照してください。

          実行中のシステムでの -fast の展開内容を確認するには、次
          のコマンドを実行します。

          f95 -fast -dryrun |& grep ###

          例:

          > f95 -dryrun -fast |& grep ###
          ###     command line files and options (expanded):
          ### -dryrun -xO5 -xarch=sparcvis2 -xcache=64/32/4:1024/64/4
              -xchip=ultra3i -xdepend=yes -xpad=local -xvector=lib
              -dalign -fsimple=2 -fns=yes -ftrap=common -xlibmil
              -xlibmopt -fround=nearest


          -fast オプションの次にその他のオプションを指定して、こ
          のリストから加算したり、減算したりすることができます。
          例えば、次のようにすることができます。
               f95 -fast -fsimple=1 -xnolibmopt
          これは、 -fsimple=2 フラグを無効にし、 -fast により選ば
          れた -xlibmopt が使用できなくなります。 -fast は
               -dalign -fns -fsimple=2
          オプションを選択してプログラムをコンパイルするので、浮
          動小数点演算、データ配列、式評価の順序付けが規格外とな
          ることがあります。この選択は、多くのプログラムで適切で
          はない可能性があります。

          また -fast
           は -xlibmopt
           および -xvector=lib を選択するため、 -fast を使用する
          ときは、デフォルトの丸めモードの -fround=nearest が前提
          とされ、必須です。

          コンパイルとリンクを別々に行う場合は、 -fast でコンパイ
          ルしたら、リンク時にも必ず -fast を指定してください。

     -fixed
          固定書式ソース入力であるとみなします。

          Fortran のあらゆるソースファイルを Fortran 95 の固定書
          式として解釈します。ファイルの接尾辞は無視します。

     -flags
          -help と同義です。

     -fma={none|fused}
          (SPARC) (SPARC) 浮動小数点fused multiply-add 命令の自動
          生成を許可します。-fma=none は、そうした命令の生成を無
          効にします。-fma=fused は、コンパイラが、浮動小数点
          fused multiply-add 命令を使用する機会を見つけることに
          よって、コードのパフォーマンスの向上を図ることを可能に
          します。

          デフォルトは -fma=none です。

          コンパイラが fused multiply-add 命令を生成するには、最
          小要件は、-xarch=sparcfmaf と、最適化レベルを少なくとも
          -xO2 にする必要があります。fused multiply-add 命令が生
          成された場合、コンパイラは、生成するバイナリプログラム
          が非対応のプラットフォームで実行されることのないようプ
          ログラムに印を付けます。

     -fnonstd
          浮動小数点ハードウェアを非標準の設定に初期化します。

          このオプションは、
                 -fns -ftrap=common

          の組み合わせのマクロで、浮動小数点ハードウェアを次のよ
          うに初期化します。

          o  例外時に停止します。
          o  速度が上がる場合は、非正規化数の値をゼロにフラッシュ
          します。

          効率化のために、主プログラムはこのフラグを使用してコン
          パイルしてください。

          アンダーフローと非正規化数の処理については、 -fns を参
          照してください。

          このオプションを指定すると、浮動小数点例外 (オーバーフ
          ロー、ゼロ除算、無効演算など) のトラップが有効になりま
          す。トラップは、SIGFPE シグナルに変換され、プログラムに
          SIGFPE のハンドラが登録されていない場合は、プログラムは
          異常終了します。詳細は ieee_handler (3m)、ieee_funcions
          (3m)、『数値計算ガイド』、および『Fortran ユーザーズガ
          イド』を参照してください。

     -fns[={yes|no}]
           は、非標準の浮動小数点モードを選択します

          デフォルトの -fns=no は、標準の浮動小数点モードを使用し
          ます。

          オプションの =yes または =no を使用すると、ほかのマクロ
          フラグ (-fns を含むもの) に続き -fns フラグを切り替える
          ことができます (-fast など)。

          -fns は -fns=yes と同義です。

          -fns=yes は非標準の浮動小数点を選択します。
          -fns=no は標準の浮動小数点を選択します。

          -fast selects -fns.


          SPARC プラットフォームの場合、非標準の浮動小数点モード
          は「段階的アンダーフロー」を無効にします。つまり、小さ
          な結果は、非正規化数にはならず、ゼロにフラッシュされま
          す。また、非正規化数のオペランドは暗黙のうちにゼロに置
          換えられます。

          x86 プラットフォームの場合、このオプションは、Pentium
          III と Pentium 4 プロセッサ (sse
           または sse2) でのみ有効です。

          x86 の場合、 -fns は SSE flush-to-zero モードが選択さ
          れ、使用可能な場合には、denormals-are-zero モードが選択
          されます。このオプションによって、非正規数の結果がゼロ
          に切り捨てられます。また、使用可能な場合には、非正規数
          の演算対象もゼロと見なされます。

          このオプションは、SSE や SSE2 命令セットを使用しない従
          来の x86 浮動小数点演算には影響しません。

          警告: 非標準モードを有効にすると、浮動小数点演算は IEEE
          754 標準の要求に準拠しない結果を生成する場合がありま
          す。詳細は、『数値計算ガイド』と『Fortran ユーザーズガ
          イド』を参照してください。

          このオプションは、さらに、メインプログラムをコンパイル
          するときに使用する場合だけに有効です。

     -fpover[={yes|no}]
          書式付き入力の浮動小数点オーバーフローを検出します。

          -fpover=yes が指定された場合、入出力ライブラリは書式付
          き入力内の浮動小数点オーバーフローを検出し、演算例外を
          発生させます。完全な診断情報を得るには、-ftrap と組み合
          わせてください。

          デフォルトでは、そうしたオーバーフロー検出は行われませ
          ん (-fpover=no)。 -fpover は -fpover=yes と同等です。

     -fpp 入力ファイルを強制的に fpp で前処理します。

          ファイル拡張子にかかわらず、コマンド行に示されたすべて
          の入力ソースファイルを fpp プリプロセッサに渡します (拡
          張子 .F90、.F95、.F、F03 を持つファイルは自動的に fpp
          によって前処理されます。-xpp も参照してください)。

     -fprecision=p
          (x86)
           デフォルト以外の浮動小数点丸め精度モードを初期設定しま
          す。

          x86 の場合は、浮動小数点精度モードを single か double
          、 extended のいずれかに設定します。

          p
           が single
           か double の場合、このフラグは、プログラムの起動時に丸
          め精度モードをそれぞれ単精度、倍精度に設定します。 p
           が extended
           または -fprecision
           か、フラグがない場合、丸め精度モードは拡張精度モードに
          初期設定されます。

          このオプションは、x86 システムで主プログラムのコンパイ
          ルで使用された場合にのみ有効です。

     -free
          自由形式のソース入力を想定します。

          すべてのソースファイルを Fortran 95 の自由形式として解
          釈します。このオプションを指定すると、ファイル接尾辞は
          無視されます。

     -fround=r
          起動時に有効になる IEEE 丸めモードを選択します。

          r には、
                nearest 、 tozero 、 negative 、 positive のいず
          れかを指定します。

          デフォルトは、 -fround=nearest です。

          r が tozero、 negative、または positive
           のとき、このフラグを設定すると、プログラムが実行を開始
          するときに、丸め方向モードがそれぞれ、「ゼロに向かって
          丸める」、「負の無限に向かって丸める」、または「正の無
          限に向かって丸める」に設定されます。r が nearest
           のとき、あるいは -fround
           フラグを使用しないとき、丸め方向モードは初期値から変更
          されません (デフォルトでは最近似値に丸める)。

          このオプションは、メインプログラムをコンパイルするとき
          に使用する場合だけに有効です。

          -xvector または -xlibmopt を付けたコンパイラでは、デ
          フォルトの丸めが必要であることに注意してください。 -
          xvector か -xlibmopt 、またはその両方を指定してコンパイ
          ルしたライブラリとプログラムをリンクする場合は、必ず、
          デフォルトの丸めを有効にする必要があります。

     -fsimple[=n]
          浮動小数点の最適化設定を選択します。

          オプティマイザが浮動小数点演算に関する仮定を単純化でき
          ます。

          n を指定する場合、n は 0、1、または 2 でなければなりま
          せん。

          デフォルト:
             -fsimple を指定しない場合、 f95 は -fsimple=0 を使用
             します。
             -fsimple だけを指定する場合、 f95 は -fsimple=1 を使
             用します。

          -fsimple=0
             仮定の単純化を許可しません。厳密に IEEE 754 に準拠し
             ます。

          -fsimple=1
             保守的な単純化を行います。作成されるコードは、厳密に
             は IEEE 754 に準拠しません。しかし、ほとんどのプログ
             ラムの数値結果は変わりません。

             -fsimple=1 を指定すると、オプティマイザは次を仮定で
             きます。

                IEEE 754 のデフォルトの丸めモードとトラップモード
                は、プロセス初期化後も変わりません。

                潜在的な浮動小数点例外以外の外に現れない結果を生
                成する計算は、削除される可能性があります。

                オペランドに無限または NaN を持つ計算は、結果に
                NaN を反映する必要はありません。たとえば、x*0 は
                0 に置き換えられるかもしれません。

                計算はゼロの符号には影響されません。

             -fsimple=1 を指定した場合、オプティマイザは、切り捨
             てや例外を完全に無視して最適化を行うことはできませ
             ん。特に、浮動小数点の計算は、実行時に通常適用される
             丸めモードによって結果が異なるものと置き換えることは
             できません。

          -fsimple=2

             -fsimple=1 に加えて、浮動小数点演算の積極的な最適化
             を許可します。こうすると、丸めの違いにより、多くのプ
             ログラムで数値結果が異なることがあります。また、
             -xvector=simd が指定されたコンパイルでは、SIMD 命令
             を使用して縮約計算を行うことを許可します。

             特に、Fortran の標準規則では、コンパイラの二次式の周
             りに明示的な括弧が必要で、式の評価順序を制御します。
             これは、 -fsimple=2 を使用すると破壊される可能性があ
             ります。この結果、この規則に従うプログラムの数値の丸
             め誤差が発生する可能性があります。

             たとえば、 -fsimple=2, を指定すると、コンパイラが
             C-(A-B) を (C-A)+B として評価することがあります。こ
             れは、結果コードがより最適化されている場合、明示的な
             括弧についての標準規則を破ります。コンパイラは、
             z=1/y が一度算出され、一時ファイルに保存され、コスト
             分割操作をなくす場合に、x*z を使用して x/y の反復演
             算を置き換える場合もあります。

             浮動小数点演算の特定のプロパティーに依存するプログラ
             ムは、 -fsimple=2 でコンパイルしてはいけません。

             ただし、 -fsimple=2 を指定しても、本来浮動小数点例外
             を生成しないプログラムには、オプティマイザは浮動小数
             点例外を導入しません。

             -fast は -fsimple=2 を設定します。

     -fstore
          (x86) 浮動小数点式の精度を強制的に設定します。

          代入文の場合、このオプションはあらゆる浮動小数点式を強
          制的に代入先の変数の精度にします。デフォルトは -fstore
          です。ただし、 -fast
           オプションには、このオプションを無効にする -nofstore
           が含まれています。再びこのオプションを有効にするには、
          -fast のあとに -fstore
           を続けてください。

     -ftrap=t
          浮動小数点のトラップモードを設定します。

          起動時に浮動小数点のトラップモードを有効にします。

          t には、1 つ以上の次の項目をコンマで区切って指定しま
          す。

           %all, %none, common, [no%]invalid, [no%]overflow,
           [no%]underflow, [no%]division, [no%]inexact.

          f95 デフォルトは -ftrap=common です。% は省略できませ
          ん。f77 のデフォルトは -ftrap=%none であることに注意し
          てください。

          このオプションは、起動時に IEEE 745 トラップモードを有
          効にしますが、SIGFPE ハンドラを組み込みません。
          ieee_handler(3M)fex_set_handling(3M)
           を使用して、トラップを有効にするのと同時に
           SIGFPE ハンドラを組み込むことができます。複数の値が指
          定された場合、そのリストは、左から右に処理されます。

          例 : すべてのトラップを設定します ( inexact を除く)。

                -ftrap=%all,no%inexact

          次の点を除いて、 ieee_flags() と同じ意味です。

          o %all はすべてのトラップモードをオンにして、予期してい
            る例外にも予期していない例外にもトラップを発生させま
            す。代わりに common を使用してください。

          o デフォルトの %none はすべてのトラップモードをオフにし
            ます。

          o 先頭に付いている no% はそのトラップモードをオフにしま
            す。

          有効にするためには、メインプログラムをコンパイルすると
          きに、このオプションを使用しなければなりません。

     -G   動的共有ライブラリを構築します。

          動的共有ライブラリを作成するようにリンカーに指示しま
          す。 -G を指定しないと、リンカーは実行ファイルを構築し
          ます。 -G を指定すると、動的ライブラリを構築します (実
          行ファイルではありません)。 -G を指定して -o を使用し、
          書き出すファイル名を指定してください。

          動的ライブラリおよびその作成方法の詳細については、
          『Fortran プログラミングガイド』を参照してください。

     -g   デバッグとパフォーマンス解析ができるようコンパイルしま
          す。

          dbx(1) または Sun Studio デバッガを使用してデバッグでき
          るよう、また Sun Studio パフォーマンスアナライザ
          analyzer(1) を使用して解析できるように追加のシンボル
          テーブル情報を生成します。

          -g を指定しなくても、デバッグできることもありますが、
          dbx のすべての機能は、 -g でコンパイルされたオブジェク
          トのみで有効です。


          Sun Studio パフォーマンスアナライザのすべての機能を使用
          するには、 -g でコンパイルしてください。パフォーマンス
          解析の機能には、 -g を必要としないものありますが、注釈
          付きのソース、機能レベル情報、コンパイラコメントメッ
          セージを表示するには、 -g でコンパイルする必要がありま
          す( analyzer(1) マニュアルページを参照)。

          -g で生成されたコメントメッセージは、プログラムをコンパ
          イルする際にコンパイラが生成する最適化と変換について記
          述します。コメントメッセージを表示するには、
          er_src(1)er_print(1)、またはパフォーマンスアナライザ
          analyzer(1) を使用する必要があります。

          コメントメッセージは、コンパイラが実際に最適化を実行す
          る場合にのみ表示されることに注意してください。 -xO4、ま
          たは -fast のような高度な最適化レベルを要求した場合に、
          コメントメッセージが必要になります。


     -h nm
          生成される共有動的ライブラリの名前を指定します。

          ライブラリに "内部名" がある場合は、実行可能ファイルの
          実行中にリンカーは同じ "内部名" を持つライブラリを検索
          パスの中から探します。"内部名" を持っていない場合、リン
          カーは同じパスからライブラリを検索します。したがって、
          内部名を使用すると実行時の柔軟性が高まります。

          注意 :
          o -h と nm の間に空白は入れても入れなくてもかまいませ
          ん。
          o -G オプションを指定しないと、 -hnm は何も実行しませ
          ん。
          o -hnm はリンカーオプションです。
          o -h と -o のあとには通常、同じ名前を指定します。
          o -hnm は、動的共有ライブラリのバージョンを管理する目的
          でも使用できます。

          詳細は、『リンカーとライブラリ』を参照してください。

     -help
          f95 コマンド行オプションのリストを表示します。

          -xhelp も参照してください。

     -Ipath
          インクルードファイル検索パスに path を追加します。

          インクルードファイル検索パスの最初にディレクトリパス
          path を挿入します。 -I と path の間に空白は入れないでく
          ださい。

          インクルードファイル検索パスは、インクルードファイルが
          検索されるディレクトリのリストです。この検索パスは、次
          によって使用されます。

            o プリプロセッサ指令 #include
            o f95 の INCLUDE 文

          例:  /usr/applib でインクルードファイルを検索するには、
          次のようにします。

              f95 -I/usr/applib growth.F

          プリプロセッサを呼び出すためには、 .F .F90 .F95 .F03
           接尾辞を指定してソースファイルをコンパイルする必要があ
          ります。

          -Ipath 検索パスは、INCLUDE 文では、絶対パス名ではなく相
          対パス名の検索に使用されます。相対パス名の検索順序は次
          のとおりです。

           1. ソースファイルが入っているディレクトリ
           2.  -I オプションで指定したディレクトリ
           3. コンパイラのデフォルトリストに入っているディレクト
           リ
           4.  /usr/include


     -i8  (-i8 )

          このコンパイラで 8 バイト INTEGER を指定するには、 -
          xtypemap=integer:64 を使用してください。


     -inline={%auto|[no%]function|...}
          指定したユーザー作成のルーチンのインライン化を要求しま
          す。

          コンマ区切りの関数とサブルーチンのリストで指定されてい
          るユーザー作成のルーチンをインライン化することによって
          最適化します。

          引数リストには、最適化レベルが -O4
           以上の場合の自動的なインライン化を有効にする文字列
          %auto
           が含まれています。通常、 -inline をコマンド行に指定し
          て明示的にインライン化する場合は、自動インライン化は無
          効です。

          リストにおいてルーチンの名前の前に no% を付けると、その
          ルーチンのインライン化が禁止されます。

          たとえば、自動インライン化を有効にするが、特定のルーチ
          ン (gflub) のインライン化だけを無効にする場合、次のよう
          に指定します。

             -O5 -inline=%auto,no%gflub

          リストが空の場合、自動的インライン化は無効になります

             -fast -inline=  sourcefile.f95

          この -fast は、自動インライン化を有効にする -O5 を意味
          します。これに対し、リストが空の -inline= は自動インラ
          イン化を無効にします。

          コンパイルされるファイル内のルーチンだけがインライン化
          の対象となります。オプティマイザは、どのルーチンがイン
          ライン化に適しているかを判断します。

          次のいずれかの状態が適用される場合、ルーチンはインライ
          ン化されません。このとき、警告は発行されません。

          o 最適化レベルが -O3 より低い。

          o ルーチンが見つからない。
          o ルーチンのインライン化に効果がないか、安全でない。

          o -xipo または -xcrossfile を指定しないと、コンパイルさ
            れるファイル内にソースが存在しない。


-iorounding[={compatible | processor-defined}]

          書式付き入力/出力用の丸めモードを設定します。

          すべての書式付き入力/出力に広域的に ROUND= 指示子を設定
          します。

          -iorounding=compatible を使用すると、データ変換結果の値
          は、2つの最近似表現の近い方の値となるか、2 つの表現の中
          間値である場合はゼロから離れた方の値となります。

          -iorounding=processor-defined を使用すると、丸めモード
          はプロセッサのデフォルトモードになります。これは、 -
          iorounding が指定されない場合のデフォルトです。

          引数なしで -iorounding
           を指定するのは、 -iorounding=compatible
           と同等になります。

     -Kpic
          -pic と同義です。

     -KPIC
          -PIC と同義です。

     -Ldir
          ライブラリ検索ディレクトリパスのリストに path を追加し
          ます。

          path は検索リストの先頭に追加されます。 -L と path の間
          の空白文字はあってもなくてもかまいません。

          :
          -Lpath オプションを使って /usr/lib や /usr/ccs/lib を指
          定しないでください。これらのディレクトリはデフォルトで
          検索されます。また、ここで指定すると、バンドルされてい
          ない libm を使用できなくなります。

     -lx  ライブラリ libx.a をリンカーの検索ライブラリリストに追
          加します。

          ローダーに対し、オブジェクトライブラリ libx.a ( x は文
          字列) をリンクするように指示します。詳細は、 ld(1) を参
          照してください。

          例 :  -lsumex とすると、ライブラリ libsumex.a をリンク
          します。

          コマンド行における順序:  -lx オプションは、 .f 、 .F ま
          たは .o ファイルのあとに指定してください。 libx の関数
          を呼び出すときにそれらの関数が liby の関数を参照してい
          る場合、 -lx は -ly の前に置いてください。

          -lx に含まれるファイル検索の順序 :
          リンカーは、複数の場所でライブラリを検索します。詳細に
          ついては、『Fortran プログラミングガイド』のライブラリ
          に関する章を参照してください。詳細は、 ld(1) を参照して
          ください。

     -libmil
          選択した libm 数学ライブラリルーチンをインライン化し、
          最適化します。

          いくつかの単純なライブラリルーチンはコンパイラによりイ
          ンライン化できます。このオプションは、現在使用している
          浮動小数点オプションとプラットフォームに従い、ライブラ
          リ呼び出しをインライン化します。

     -loopinfo
          どのループが並列化されるかを表示します。

          どのループが並列化され、どのループが並列化されないかを
          表示します。このオプションは通常 -autopar や
          -explicitpar オプションと併用します。このオプションは標
          準エラーのメッセージのリストを生成します。

     -Mpath
          MODULE ディレクトリ、アーカイブ、またはファイルを指定し
          ます。

          現在のコンパイルで参照されている Fortran 95 モジュール
          のパスを検索します。このパスが、現在のディレクトリに加
          えて検索されます。

          パスは、ディレクトリ、事前コンパイルされたモジュール
          ファイルの .a アーカイブファイル、事前コンパイルされた
          .mod モジュールファイルのいずれかです。コンパイラは、そ
          の内容を調べてファイルの型を決定します。

          モジュールが検索される .a アーカイブファイルは、 -M オ
          プションフラグに明示的に指定する必要があります。コンパ
          イラは、デフォルトではアーカイブファイルの検索は行いま
          せん。

          USE 文に使用される MODULE 名と同じ名前を持つ .mod ファ
          イルのみが検索されます。たとえば、USE ME 文は、コンパイ
          ラにモジュールファイル me.mod のみを検索させます。

          モジュールを検索する場合、コンパイラはモジュールファイ
          ルが書き込まれるディレクトリを優先します。この優先権
          は、-moddir フラグまたは MODDIR 環境変数によって制御さ
          れます。そのいずれも指定されない場合は、デフォルトの書
          き込みディレクトリが現在のディレクトリとなります。両方
          指定すると、書き込みディレクトリが -moddir フラグにより
          指定されたパスとなります。

          つまり、-M フラグだけが指定される場合、-M フラグにリス
          トされるオブジェクトの前に、まず現在のディレクトリでモ
          ジュールの検索が行われます。前リリースの動作をエミュ
          レートするには、次のコマンドを使用します。

             -moddir=empty-dir -Mdir -M

          empty-dir は、空ディレクトリへのパスです。

          -M と path の間に、空白文字が 1つあってもかまいません。
          次に例を挙げます。
          -M /home/siri/PK15/Modules

          Solaris で、path がアーカイブまたはモジュールファイルの
          どちらでもない通常のファイルを示している場合、コンパイ
          ラはそのオプションをリンカー(ld) に渡し、リンカーはその
          ファイルをリンカーマップファイルとして処理します。この
          機能は、C/C++ コンパイラのものに似た便利な機能として提
          供されています。

     -moddir=path
          コンパイラが .mod MODULE ファイルを書き込むディレクトリ
          へのパスを検索します。パスは、MODDIR 環境変数を使用して
          指定することもできます。両方指定される場合、このオプ
          ションフラグが優先されます。

          デフォルトの .mod ファイル書き込み用ディレクトリは、現
          在のディレクトリです。


     -mp=[%none|sun|cray]
          Sun または Cray の並列化指令用のスタイルを指定します。
          (旧式、SPARC のみ)


          -explicitpar または -parallel を指定しない場合、デフォ
          ルトは -mp=%none です。-explicitpar か -parallel を指定
          する場合、デフォルトは -mp=sun となります。

          -mp=sun:  Sun スタイルの MP 指令だけを受け入れます。
          -mp=cray:  Cray スタイルの MP 指令だけを受け入れます。
          -mp=%none:  すべての並列化指令を無視します。

          Sun スタイルの並列化指令は、 C$PAR または !$PAR で始ま
          ります。Cray スタイルの並列化指令は、 CMIC$ または
          !MIC$ で始まります。どちらのスタイルも、大文字または小
          文字で指定できます。

          同じコンパイル単位で Sun スタイル指令と Cray スタイル指
          令の両方を有効にすることはできません。

          並列化を有効にするためには、-explicitpar または
          -parallel も指定しなければなりません。さらに -stackvar
          も指定する必要があります。次に例を示します。

             -explicitpar -stackvar -mp=cray

          Sun および Cray の並列化モデルは非推奨になっています。
          代わりに OpenMP の並列化を使用してください。Sun/Cray 並
          列化指令を OpenMP に変換する方法については、『OpenMP
          API ユーザーズガイド』を参照してください。

          OpenMP の並列化指令に合わせてコンパイルする場合、 -
          xopenmp フラグを使用してください。

     -mt  MT-safe (マルチスレッド環境で使用しても安全な) ライブラ
          リを使用します。 (SPARC)

          マルチスレッドのコードを書くときに独自のマルチスレッド
          コーディングを行う場合( -autopar 、 -explicitpar または
          -parallel のいずれのオプションも使用しない場合) は、コ
          ンパイル時とリンク時に -mt オプションを使用する必要があ
          ります。並列化処理のためのオプションを指定した場合は、
          -mt が自動的に使用されます。

          シングルプロセッサシステムでは、このオプションで生成さ
          れるコードの実行速度は遅くなります。

     -m32 | -m64
          コンパイルしたバイナリオブジェクトのメモリーモデルを指
          定します。

          32 ビットの実行可能ファイルおよび共有ライブラリを作成す
          る場合は、-m32 を使用します。64 ビット実行可能ファイル
          および共有ライブラリを作成する場合は、-m64 を使用しま
          す。

          64 ビットに対応していないすべての Solaris プラット
          フォームおよび Linux プラットフォームでは、ILP 32 メモ
          リーモデル (32 ビット int、long、ポインタデータ型) がデ
          フォルトです。64 ビットに対応している Linux プラット
          フォームでは、LP64 メモリーモデル (64 ビット long、ポイ
          ンタデータ型) がデフォルトです。-m64 は、LP 64 モデルに
          対応しているプラットフォームでのみ使用できます。

          -m32 を使用してコンパイルされたオブジェクトファイルやラ
          イブラリを、-m64 を使用してコンパイルされたオブジェクト
          ファイルやライブラリとリンクすることはできません。
          -m64 を使用して大量の静的データを持つアプリケーションの
          コンパイルをする場合は、-xmodel=medium も必要になること
          があります。

          一部の Linux プラットフォームは medium モデルをサポート
          していないことに注意してください。

          以前のコンパイラリリースでは、-xarch での命令セットの選
          択により暗黙でメモリーモデル ILP32 または LP64 が指示さ
          れました。Sun Studio 12 のコンパイラからは、これは当て
          はまりません。大部分のプラットフォームで、コマンド行に
          -m64 を追加するだけで 64 ビットオブジェクトを作成できま
          す。

          Solaris の場合、デフォルトは -m32 です。64 ビットプログ
          ラムをサポートする Linux システムの場合は、 -m64
          -xarch=sse2 がデフォルトです。

          -xarch も参照してください。

     -native
          使用中のマシンに合わせた最適化を行います。

          -native オプションは、 -xtarget=native オプションと同義
          です。

     -noautopar
          コマンド行の -autopar を取り消します。

          コマンド行の -autopar で呼び出されるループの自動並列化
          を取り消します。

     -nodepend
          コマンド行の -depend を取り消します。

          コマンド行の前で指定した -depend オプションで呼び出され
          る依存関係解析を取り消します。

     -noexplicitpar
          -explicitpar を取り消します。

          コマンド行の前で指定した -explicitpar で呼び出される明
          示的なループの並列化を取り消します。

     -nofstore
          (x86) コマンド行で -fstore を取り消します。

          -fstore によって、式が強制的な代入先の変数の精度を持つ
          ことを取り消します。

          -nofstore は、 -fast によって呼び出されます。通常は、
          -fstore がデフォルトです。

     -nolib

          システムライブラリとリンクしません。

          任意のシステムライブラリまたは言語ライブラリとは自動的
          にリンクしません。つまり、デフォルトの -lx オプションを
          ld に渡しません。デフォルトでは、システムライブラリや言
          語ライブラリはコマンド行で指定されなくても、実行可能
          ファイルにリンクされます。

          最終的に実行するときには、これらのライブラリが必要にな
          ります。これらのライブラリと手作業でリンクするのは、
          ユーザーの責任です。このオプションを指定すると、すべて
          の制御がユーザーの手にゆだねられますが、同時に、すべて
          の責任もユーザーにかかってきます。

          -nolib オプションにより、これらのライブラリを静的にリン
          クすることが容易になります。

     -nolibmil
          コマンド行の -libmil を取り消します。

          libm 数学ルーチンのインライン化を無効にするには、 -fast
          と併用します。

             demo% f95 -fast -nolibmil  ...

     -noreduction
          コマンド行の -reduction を取り消します。

          -reduction は並列化オプションと併用します。このオプショ
          ンは、コマンド行の前で指定した -reduction を取り消しま
          す。並列化オプションを使用するには、Forte for HPC ライ
          センスが必要です。

     -norunpath
          実行時ライブラリ検索パスを実行可能ファイルに構築しませ
          ん。

          通常、実行可能ファイルが共有ファイルを使用している場
          合、コンパイラは実行時リンカーに知らせるために、その共
          有ライブラリの検索パスを実行可能ファイルに組み込みま
          す。このパスは、コンパイラがインストールされているディ
          レクトリに依存します。 -norunpath オプションを指定する
          と、実行時パスは実行可能ファイルに組み込まれません。

          このオプションは、ライブラリを標準以外の場所にインス
          トールしていて、実行可能ファイルが別のサイトで実行され
          るとき、ローダーがこれらのパスの下を検索しないようにす
          る場合に便利です。 -R と比較してください。


     -O[n]
          最適化レベル (n) を指定します。

          -O[n] を指定しない場合、本当に基本的なレベルの最適化 (
          局所的な共通部分式の削除とデッドコードの解析) だけが実
          行されます。最適化レベルを指定してコンパイルしたとき、
          パフォーマンスが飛躍的に上がるプログラムもあります。

          -On の各レベルには、それよりも低いレベルでの最適化が含
          まれています。一般に、最適化レベルが高いと、実行時のパ
          フォーマンスも向上します。ただし、最適化レベルを高くす
          ると、コンパイル時間が長くなり、実行可能ファイルのサイ
          ズが大きくなります。

          -On と組み合わせて使用できる最適化レベルは 5 つありま
          す。コンパイラが各レベルで実際に行う最適化の内容は、コ
          ンパイラのリリースによって異なります。ほとんどのプログ
          ラムでは、 -O ( -O3 を暗黙指定する) または -fast ( -O5
           を暗黙指定する) を使用することを推奨します。

          -g オプションは、最適化オプションと組み合わせて使用でき
          ます。

          メモリーが不足した場合、オプティマイザはもう一度より低
          いレベルの最適化で処理しようとし、そのあとのルーチンの
          コンパイルを元のレベルで再開します。

          最適化についての詳細は、『Fortran プログラミングガイ
          ド』の「パフォーマンスプロファイリング」の章と「パ
          フォーマンスと最適化」の章を参照してください。

          -O   ほとんどの現実的なアプリケーションで最高に近いパ
               フォーマンスが得られるようなレベルで最適化を行いま
               す (現在は -O3 レベルで最適化されます)。

          -O1  基本的で局所的な (ピープホール) 最適化のみを行ない
               ます

          -O2  基本的な局所的最適化と大域的最適化を行います。通
               常、このレベルでは、コードのサイズが最小になりま
               す。

               -O3 関数レベルの大域的な最適化を追加します。通常、
               -O3 または -O4 レベルで行う場合、-xspace オプショ
               ンと組み合わせるとコードのサイズが最小になります。
               自動的に -depend によるデータ依存解析が有効になり
               ます。

          -O4  同じファイルの関数の自動インライン化を追加します。
               -g は自動インライン化を抑制します。通常、 -O4 で
               は、 -xspace と組み合わせない限り、コードのサイズ
               がさらに大きくなります。
               インライン化されるルーチンの制御については、
               -inline を参照してください。

          -O5  最高レベルの最適化を行います。このレベルは、プログ
               ラムの中でも、その実行にコンピュータ時間の大部分を
               要する、ごく少量のコードに対してのみ使用します。よ
               り長いコンパイル時間を要する最適化アルゴリズム、ま
               たは実行時間が確実に改善されるかが不明な最適化アル
               ゴリズムを使用します。このレベルでより確実にパ
               フォーマンスを向上させるには、プロファイルのフィー
               ドバックを使用してください。 -xprofile=collect|use
               の項を参照してください。

          相互の関連性:

               -g を使用していて、最適化レベルが -O3 以下の場合、
               コンパイラは、ほぼ完全な最適化によって最大限のシン
               ボル情報を提供します。末尾呼び出しの最適化とバック
               エンドのインライン化は無効です。

               詳細については『 dbx コマンドによるデバッグ』を参
               照してください。

               -xcrossfile オプションは、 -O4 または -O5 といっ
               しょに使用した場合にのみ有効です。

               関連項目:

               -fast 、 -xprofile=pcsh(1) マニュアルページ


     -o nm
          実行可能ファイルの名前を指定します。

          -o と nm の間には空白が必要です。このオプションを指定し
          ない場合、デフォルトでは、実行可能ファイルは a.out に書
          き込まれます。 -c と併用したとき、 -o はターゲットの .o
          オブジェクトファイルを指定します。また、 -G と併用した
          とき、 -o はターゲットの .so ライブラリファイルを指定し
          ます。

     -onetrip
          ループを1回実行します。

          DO ループに到達したときに、そのループが少なくとも 1 回
          は実行されるようにコンパイルします。

          Fortran 95 の DO ループは、上限が下限よりも小さいときに
          は 1 度も実行されません。この動作は、従来のFortran にお
          ける DO ループの動作とは異なります。


     -openmp
          -xopenmp と同義です。

     -p   (旧式) prof を使ったプロファイリング用にコンパイルしま
          す。

          prof(1) を使ったプロファイリングのためのオブジェクト
          ファイルを準備します。手続きごとのプロファイルを作成
          し、各手続きの呼び出しの数と、各手続きによって使用され
          た時間の割合を示します。

          コンパイルとリンクを別々に行う場合、 -p でコンパイルし
          たら、リンク時にも必ず -p を使用してください。

          このオプションは廃止されています。代わりに -g およびパ
          フォーマンスアナライザの analyzer(1) を使用してくださ
          い。

     -pad[=p]
          キャッシュを有効に使用するために、パディングを挿入しま
          す。

          このオプションは、配列または文字列が次の状態である場合
          に、配列または文字列の間にパディングを挿入します。
            o 静的、局所的で、初期化されていない。または
            o 共通ブロック内にある

          上記どちらの場合でも、配列または文字列は等値にはなりま
          せん。

          =p を指定する場合、次の 1 つでなければなりません (空白
          なし)。
            %none:  パディングは行なわれません。
            local:  局所変数にパディングを挿入します。
            common:  共通ブロック内にある変数にパディングを挿入し
            ます。
            local,common:  局所変数と共通ブロック内の変数の両方に
            パディングを挿入します。 local
             および common
             の順序は任意です。

          デフォルト:
            コンパイラのデフォルトは、パディングなしです。
            値なしで -pad を指定すると、 -pad=local,common と同等
            です。

            プログラムは、次の制限事項に従っている必要がありま
            す。

          o    -pad=common を共通ブロックを参照するファイルに指定
               する場合、その共通ブロックを参照するほかのすべての
               ファイルにも -pad=common を指定しなければなりませ
               ん。

          o    -pad=common を指定した場合、異なるプログラム単位間
               の同じ共通ブロック内の変数のレイアウトは、変数名以
               外は同じである必要があります。

          o    パディングは -xcache の設定に依存しています。コン
               パイラが配列間に挿入するパディングは、データの仮定
               レイアウトと衝突し、予想外の方法で配列参照が失敗し
               ます。

          o    プログラムが共通ブロックの配列をオーバーインデック
               スする場合、 -pad=common を指定しないでください。
               コンパイラが配列間に挿入するパディングは、データの
               仮定レイアウトと衝突し、予想外の方法で配列参照が失
               敗します。

          o    -pad=common を指定してコンパイルした場合、共通ブ
               ロック変数を持つ EQUIVALENCE 宣言があると「
               EQUIVALENCE 宣言によってパディングが禁止されまし
               た」という内容のエラーメッセージが出力されます。こ
               の場合、配列にパディングは挿入されません。

          プログラマは、 -pad
           が使用されたときに、共通ブロックのコンパイルの一貫性が
          維持されるようにする必要があります。異なるプログラムユ
          ニットの共通ブロックを -pad=common
           を指定してコンパイルしたとき、その一貫性が維持されない
          場合は、エラーになります。 -Xlist を付けたコンパイルで
          は、同じ名前の共通ブロックの長さがプログラムユニットの
          間で異なる場合に、そのことが報告されます。

     -parallel
          自動並列化機能と明示的な並列化機能の組み合わせを有効に
          します。 (旧式、SPARC のみ)

          このオプションを使用すると、従来の Sun または、Crayの並
          列化指令が有効になります。これらの指令および並列かモデ
          ルは非推奨で、すでにサポートされていません。推奨、そし
          てサポートされている並列化モデルは、OpenMP API です。
          OpenMP への Sun/Cray 指令の変換の詳細は、 -xopenmp オプ
          ションおよび『OpenMP API ユーザーズガイド』を参照してく
          ださい。

          このオプションはマクロであり、次のオプションを組み合わ
          せたものです。

             -autopar -explicitpar -depend

          コンパイラが自動的に選択したループと、ユーザーが明示的
          に指令で指定したループを並列化します。最適化レベルが
          -O3 よりも低い場合、最適化レベルは自動的に -O3 まで引き
          上げられます。sp パフォーマンスを上げるために、並列化オ
          プション ( -autopar も含む) を使用するときには、
          -stackvar オプションも指定します。メインスレッドスタッ
          クおよびスレーブスレッドスタックのサイズを設定する方法
          については、 -stackvar オプションの説明を参照してくださ
          い。

          デフォルトでは、Sun 形式の並列化指令が有効になっていま
          す。Cray 形式の指令を使うには、-mp=cray を追加してくだ
          さい。たとえば次のように指定します。

             -parallel -stackvar -mp=cray

          注: OpenMP 並列化には、 -parallel ではなく -xopenmp オ
          プションフラグを使用してください。

          独自のスレッド管理を行う場合は、 -parallel は使用しない
          でください。 -mt を参照してください。

          -parallel などの並列化オプションの目的は、マルチプロ
          セッサシステムで動作する実行可能プログラムを生成するこ
          とです。シングルプロセッサシステムでは、一般的に、並列
          化はパフォーマンスを低下させます。

          コンパイルとリンクを別の段階で行う場合、 -parallel をコ
          ンパイルコマンドに指定した場合は、リンクコマンドにも指
          定しなければなりません。

          -autopar の説明も参照してください。

          詳細は、『Fortran プログラミングガイド』の並列化に関す
          る章を参照してください。

          :  マルチスレッド環境で並列化プログラムを実行
          するには、実行前に OMP_NUM_THREADS 環境変数を設定する必
          要があります。この環境変数は、プログラムが作成できるス
          レッドの最大数を実行時システムに伝えます。デフォルトは
          1 です。一般に、OMP_NUM_THREADS には、実行中のシステム
          で使用可能な仮想プロセッサ数を設定します。このプロセッ
          サ数は、Solaris の psrinfo(1) コマンドを使用して確認で
          きます。


     -pg  gprof(1) によるプロファイリング用のデータを収集するため
          のオブジェクトコードを生成します。

          正常終了時に gmon.out ファイルを生成する実行時記録メカ
          ニズムが起動されます。

          注: -xpg を使用する場合、-xprofile を指定してコンパイル
          するメリットはありません。これら 2 つのオプションは、他
          方が提供するデータを作成、使用しません。
          64 ビット Solaris プラットフォームの場合は、prof または
          gprof を使用してプロファイルを生成します。32 ビット
          Solaris プラットフォームの場合は、gprof だけがユーザー
          CPU 時間の概算値を取り込みます。それらの時間は、主実行
          可能ファイル内のルーチンおよび、実行可能ファイルのリン
          ク時にリンカー引数として指定された共有ライブラリ内の
          ルーチンに関する PC 標本データ (pcsample(2) を参照) か
          ら求められます。ほかの共有ライブラリ (dlopen(3DL) を使
          用してプロセスの起動後に開かれたライブラリ) は、プロ
          ファイリングされません。

          32 ビット Solaris システムの場合、prof(1) を使用して生
          成されるプロファイルは、実行可能ファイル内のルーチンに
          限定されます。32 ビット共有ライブラリは、-xpg を指定し
          て実行可能ファイルをリンクし、gprof(1) を使用することに
          よってプロファイリングできます。

          Solaris 10 ソフトウェアは、-p を指定してコンパイルされ
          たシステムライブラリを取り込みません。このため、Solaris
          10 プラットフォームで収集されたプロファイルには、システ
          ムライブラリルーチンに関する呼び出し回数は含まれませ
          ん。

          注: マルチスレッドプログラムのコンパイルに、コンパイラ
          オプションの -p 、 -pg および -xpg を使用しないでくださ
          い。これは、これらのオプションの実行時サポートがスレッ
          ド安全でないためです。マルチスレッドを使用するプログラ
          ムのコンパイルでこれらのオプションを使用すると、実行時
          に、不正な結果やセグメント例外が発生する可能性がありま
          す。

          コンパイルとリンクを別々に行う場合、 -pg でコンパイルし
          たら、リンク時にも必ず -pg を使用してください。

     -pic 共有ライブラリ用に位置独立コードをコンパイルします。

          SPARC では、 -xcode=pic13 と同義です。

          x86 では、位置独立コードを生成します。共有ライブラリの
          構築時は、このオプションを使用してソースファイルをコン
          パイルしてください。大域オフセットテーブル中、大域デー
          タに対するあらゆる参照はポインタの間接参照として生成さ
          れます。あらゆる関数呼び出しは、プロシージャリンケージ
          テーブル経由の PC 相対アドレッシングモードで生成されま
          す。

     -PIC SPARC では、これは -xcode=pic32と同等です。

          x86 では、 -PIC は -pic と同じです。

     -Qoption pr ls
          オプションリスト ls をコンパイル段階 pr に渡します。
          このオプションは、主に、カスタマサービスにより使用され
          ます。


     -qp  -p と同じ意味です。

     -R list
          ライブラリ検索パスを実行可能ファイルに構築します。

          このオプションを使用すると、リンカー ld(1) は、ライブラ
          リ検索パスのリストを実行可能ファイルに追加します。

          list はコロンで区切ったディレクトリのリストで、ライブラ
          リ検索パスを実行時リンカーに指定するために使用されま
          す。このリストは、f95 がリンカーに渡すデフォルトリスト
          に追加されます。

          -R と list の間の空白はオプションです。

          このオプションの複数のインスタンスは 1 つに連結され、そ
          れぞれのリストはコロンで区切られます。

          このオプションを使用するのは、ユーザーの動的ライブラリ
          へのパスを特別にオプション指定せずに実行できる実行可能
          ファイルをエクスポートする場合です。

          このオプションで実行可能ファイルを構築すると、デフォル
          トのパス (常に最後に検索される) にパスが追加されます。
             /opt/SUNWspro/lib


     -r8const
          単精度の定数を REAL*8 定数に拡張します。

          単精度の定数表現はすべて REAL*8 に拡張されます。倍精度
          の定数 (REAL*8) は拡張されません。

          このフラグは定数にだけ適用されます。定数と変数の両方を
          拡張するには、-xtypemap を使用してください。

          このフラグの使用には注意が必要です。実際の引数として
          REAL*4 定数表現を使用して、REAL*4 の値を期待するルーチ
          ンを呼び出すと、インタフェース障害が発生することがあり
          ます。また、入出力リストに REAL*4 定数表現を含む書き込
          み文で書かれた書式なしデータファイルを読み取るプログラ
          ムに問題が起こることもあります。

     -reduction
          ループ内の縮約演算を並列化します。

          縮約の自動並列化についてループを解析します。縮約ループ
          の並列化処理を可能にするには、 -reduction と -autopar
          を両方指定してください。

          例:  demo% f95 -autopar -reduction any.f

          配列の要素を単一のスカラー値に変換するループのことを縮
          約演算と呼びます。たとえば、ベクトルの要素を合計するな
          どは典型的な縮約演算です。このような演算は並列化の規準
          に違反しますが、-reduction を指定すると、コンパイラはこ
          のような演算を特別なケースとして認識および並列化できま
          す。 f95 が認識する縮約演算については、『Fortran プログ
          ラミングガイド』の並列化に関する章を参照してください。
          -autopar を指定せずに -reduction を指定する場合、コンパ
          イラは警告を発行します。

          シングルプロセッサシステムでは、生成されるコードの実行
          速度は遅くなります。

          縮約には、丸めのエラーが起こる可能性が常にあります。

     -S   コンパイルし、アセンブリコードを生成するだけです。

          指定されたプログラムをコンパイルし、拡張子 .s を付けた
          ファイルにアセンブリ言語出力を保存します ( .o ファイル
          は作成しません)。

     -s   実行可能ファイルからシンボルテーブルを削除します。

          このオプションは、実行可能ファイルを小さくし、逆アセン
          ブルを困難にします。しかし、デバッグが不可能になりま
          す。

     -sb  (旧式) Sun WorkShop ソースブラウザ用のテーブル情報を生
          成します。

          ソースブラウザは現在はサポートされていません。

     -sbfast
          (旧式) -sb に似ていますが、 -sb より高速です。

          ソースブラウザは現在はサポートされていません。

     -silent
          コンパイラメッセージを抑止します。

          通常、 f95 はコンパイル中にエラー診断以外のメッセージを
          出力しません。このオプションは、古いスクリプトと
          Makefile との互換性のためにのみ提供されています。デフォ
          ルトは -silent
           で、その使用は冗長です。

     -stackvar
          すべての局所変数を強制的にスタックに割り当てます。
          特に指定していないかぎり、ルーチン中のすべての局所変数
          と局所配列をメモリースタックに割り当てます。このオプ
          ションにより、これらの変数は、静的ではなく、自動になり
          ます。そして、副プログラムを呼び出してループを並列化す
          るときにオプティマイザの自由度が高くなります。

          副プログラム呼び出しを含む明示的に並列化されたループに
          対しては、 -stackvar の使用は必須で、すべての並列化オプ
          ションに使用することを推奨します。 -stackvar
           を使用すべきケースと使用すべきでないケースについては、
          『Fortran プログラミングガイド』の「並列化」の章を参照
          してください。

          次の場合にあてはまらないかぎり、変数と配列は局所的にな
          ります。

          o    SUBROUTINE 文または FUNCTION 文中の引数
                (すでにスタックに割り当てられている)

          o    COMMON 文、SAVE 文、または STATIC 文中の大域的な項
               目

          o    型宣言文または DATA 文中の初期化された項目
               (たとえば、     REAL X/8.0/ や DATA X/8.0/ など)

          -stackvar で大きな配列をスタックに置くと、スタックが
          オーバーフローし、セグメント例外が発生することがありま
          す。スタックのサイズを増やす必要があります。

          プログラムを実行する初期スレッドはメインスタックを持っ
          ており、マルチスレッド化プログラムの各補助スレッドは独
          自のスレッドスタックを持っています。

          メインスタックのデフォルトのサイズは、約 8 メガバイトで
          す。デフォルトのヘルパースレッドスタックサイズは、32
          ビットプラットフォームで 4 メガバイト、64 ビットプラッ
          トフォームで 8 メガバイトです。

          limit コマンド (パラメータなし) は、現在のメインスタッ
          クのサイズを表示します。

          limit シェルコマンドを使用して、メインスレッドスタック
          のサイズ (K バイト単位) を設定できます。たとえば、次の
          コマンドでメインスタックのサイズを 64 メガバイトに設定
          できます。
             % limit stacksize 65536

          STACKSIZE 環境変数に値 (K バイト単位) を指定すると、各
          スレーブスレッドが使用するスタックサイズを設定できま
          す。
          次のコマンドで、各スレーブスレッドのスタックサイズを 8M
          バイトに設定できます。
             % setenv STACKSIZE 8192

          STACKSIZE 環境変数は、接頭辞付きの数値も受け付けます。
          有効な接頭辞は、 B 、 K 、 M 、 G でそれぞれバイト、キ
          ロバイト、メガバイト、ギガバイトを表します。デフォルト
          はキロバイトです。

          詳細は Fortran の並列化に関する
          章を参照してください。

          関連項目 -xcheck=stkovf
           スタックオーバーフローに関する実行時検査を有効にします

     -stop_status[={yes|no}]
          STOP 文により整数のステータス値を戻すことを許可します。

          オプション引数は yes または no のどちらかです。デフォル
          トは yes です。

          -stop_status=yes を指定すると、STOP 文には、プログラム
          の終了時に環境に渡される整数定数を指定できます。この値
          は C シェルでは $status、Bourne シェルや Korn シェルで
          は $? です。

          STOP 文の値には任意の正の整数を指定してください。シェル
          に戻される値は 256 で割った余りになります (つまり、0 か
          ら 255 までの範囲)。

     -temp=dir
          一時ファイル用のディレクトリを定義します。

          f95 で使用される一時ファイル用のディレクトリを /tmp で
          はなく dir に設定します。

     -time
          各コンパイル処理段階の実行時間を表示します。

     -U   ソースファイル内の大文字と小文字を認識します。

          大文字を小文字と同じに扱いません。デフォルトでは、文字
          列定数内を除き、大文字は小文字として扱われます。

          このオプションが指定されると、コンパイラは Delta、
          DELTA、および delta を別々のシンボルとして扱います。

          移植性を考慮する場合や Fortran をほかの言語と混合する場
          合は、必要に応じて -U を使用してください。

          組み込み関数の呼び出しが、このオプションの影響を受ける
          ことはありません。

     -Uname
          プリプロセッサマクロ name を未定義にします。

          同じコマンド行の -Dname が作成したプロプロセッサマクロ
          シンボル name の初期定義を削除します。または、オプショ
          ンの順番に関係なく、コマンド行ドライバにより、暗黙に置
          かれます。ソースファイルのマクロ定義には影響ありませ
          ん。複数の -Uname フラグは、同じ行にあり、 -U と name
          の間には空白文字を置いてはなりません。

          このオプションは、 fpp
           か cpp
           プロプロセッサを呼び出すソースファイルです。


     -u   未宣言変数を報告します。

          各コンパイル単位に IMPLICIT NONE を指定することと同じで
          す。このオプションは、Fortran 標準の暗黙的な型指定を使
          用せずに、変数のデフォルトの型を未宣言の状態にします。
          このオプションは、既存の IMPLICIT 文や明示的な型宣言文
          を無効にすることはありません。

     -unroll=n
          可能であれば、DO ループの展開を n 回だけ有効にします。

          n は正の整数です。

          n = 1 の場合、このオプションは、すべてのループの展開を
          禁止します。

          n > 1 の場合、このオプションは、 n 回だけループを展開す
          ることをオプティマイザに指示します。

          任意のループが実際に展開されると、実行可能ファイルはよ
          り大きくなります。

     -use=list
          暗黙的な MODULE 使用法をグローバルに指定します。
          list は、コンマで区切ったモジュール名またはモジュール
          ファイル名のリストです。 -use=module_name を使用するコ
          ンパイルは、実際にはコンパイルされる各副プログラムに
          USE module_name を追加します。同様に、
          -use=module_file_name を使用するコンパイルは、実際には
          コンパイルされる各副プログラムに、module_file_name ファ
          イルに含まれる各モジュールの USE module_name を追加しま
          す。






     -V   各コンパイル段階の名前とバージョンを表示します。

     -v   詳細モード。-詳細なコンパイル段階を表示します。

          -V と似ていますが、ドライバが使用するオプション、マクロ
          フラグの拡張、環境変数などの詳細も表示します。

     -vax=v
          VAX VMS Fortran 拡張機能の選択を有効にします。

          v には次のいずれか 1 つの値か、あるいは複数の選択項目を
          コンマで区切り、指定します。

          blank_zero:   書式付き入力の中のブランクを、内部ファイ
                        ル上のゼロと解釈します。

          debug:        文字 'D' で始まる行を注釈行ではなく、VMS
                        Fortran のような通常の Fortran 文と解釈し
                        ます。

          rsize:        書式なしレコードのサイズを、バイトではな
                        くワードで表されていると解釈します。

          struct_align: VMS Fortran のように、メモリー内の VAX 構
                        造のコンポーネントを、パディングせずに配
                        置します。このオプションフラグは f77 -xl
                        フラグに取って代わります。 注:  これによ
                        り、データの不正な境界整列 (「バスエ
                        ラー」) が発生することがあります。こうし
                        たエラーを回避するには、-xmemalign と併用
                        してください。

          %all:         これらのすべての VAX VMS 機能を有効にしま
                        す (デフォルト)。

          %none:        これらすべての VAX VMS 機能を無効にしま
                        す。

          サブオプションは個別に選択したり無効にしたりすることが
          できます (直前に no% を指定) 。

          例:

              -vax=debug,rsize,no%blank_zero

          -vax=
           が省略された場合のデフォルトは、 -vax=%all です。

     -vpara
          並列化警告メッセージを表示します。

          OpenMP または Sun/Cray 並列指令および並列プラグマを使用
          したときに不正な結果を生じする可能性がある潜在的な並列
          プログラミング関連の問題に関する警告を発行します。

          -xopenmp および OpenMP API 指令と併用するか、
          -explictpar および C$MIC DOALL 並列化指令と併用してくだ
          さい。

          警告は、コンパイラが次の状況を検出したときに発行されま
          す。
          o    C$MIC DOALL 指令を使用してループが並列化されてい
               て、ループの繰り返しの間にデータの依存関係がある。

          o    OpenMP データ共有属性句の使われ方に問題ある。たと
               えば、変数が "shared" と宣言されていて、OpenMP 並
               列領域内でのそのアクセスでデータ競合を起こす可能性
               がある、あるいは変数が "private" と宣言されてい
               て、並列領域内のその値が並列領域の後ろで使用される
               など。

          並列化指令がすべて問題なく処理された場合、警告は表示さ
          れません。

          例
          f95 -xopenmp -vpara any.f

          注 :Sun Studio コンパイラは、OpenMP 2.5 API 並列化機能
          をサポートしています。このため、MP プラグマおよび Cray
          指令は非推奨になっています。OpenMP API への移行について
          は、『OpenMP API ユーザーズガイド』を参照してください。


     -w[{0|1|2|3|4}]
          警告メッセージを表示または抑止します。

          -w コンパイラから警告メッセージを抑止します。
          -w0 エラーメッセージだけを表示します。
          -w1 エラーと警告を表示します (これはデフォルトです)。
          -w2 エラー、警告、および注意を表示します。
          -w3 エラー、警告、注意、および注を表示します。
          -w4 エラー、警告、注意、注、およびコメントを表示しま
          す。
          2 つのオプションを指定した際に、2 番目のオプションが 1
          番目のオプションのすべてまたは一部を無効にしてしまう場
          合は、コンパイラは警告を発行します。

     -Xlist[z]
          ソースリストを出力し、大域的にプログラムを検査します。

          潜在的なプログラム上のバグを検索します。大域プログラム
          での呼び出しや共通における整合性を検査するためにその他
          のコンパイラパスを呼び出します。クロスリファレンスのあ
          る行番号付きソースコードを生成します。
          -Xlist からの診断メッセージは、警告で、コンパイルやリン
          クは実行することができます。

          すべての構文エラーを最初に修正してください。構文エラー
          のあるソースプログラムで実行した場合、 -Xlist は予期で
          きない結果を出力する可能性があります。

          結果は、最初に指定されたファイルの名前の拡張子を .lst
          に変えた名前のファイルに出力されます。

          例 : エラー、リスト、クロスリファレンスを file1.lst に
          出力します。

             demo% f95 -Xlist file1.f file2.f

          相互手続きでの問題をチェックするには -Xlist オプション
          を使用してください。ただし、ほかのすべてのコンパイルエ
          ラーと警告が解決されてから使用してください。

          -Xlist のサブオプションの要約を示します。

          -Xlist         デフォルト。リスト、エラー、クロスリファ
                         レンステーブルを出力する。
          -Xlistc        大域的エラーとコールグラフのみを出力す
                         る。
          -XlistE        エラーのみ出力 (クロスリファレンステーブ
                         ルとリストはなし)。
          -Xlisterr      -Xlist によるすべてのエラーメッセージを
                         出力しない。
          -Xlisterr[n]   -Xlist による n 番のエラーメッセージを出
                         力しない。
          -Xlistf        エラー、リスト、クロスリファレンスを表示
                         し、オブジェクトファイルのコンパイルを行
                         わない。
          -Xlisth        エラーが検出された場合は、コンパイルを終
                         了する。
          -XlistI        インクルードファイルも検査する。
          -XlistL        リストのみを出力 (クロスリファレンステー
                         ブルはなし)。
          -Xlistl[n]     1 ページの行数を n 行にする。
          -XlistMP       (SPARC) OpenMP 指令を検査する。
          -Xlisto  nm    file.lst ではなく nm に結果を出力する。
          -Xlists        参照されていない名前をクロスリファレンス
                         に出力しない。
          -Xlistvn       検査レベルを n (1、2、3、4) に設定する (
                         デフォルトは 2)。
          -Xlistw[nnn]   出力行の幅を n 桁に設定する (デフォルト
                         は 79)。
          -Xlistwar      -Xlist によるすべての警告メッセージを出
                         力しない。
          -Xlistwar[n]   -Xlist による n 番の警告メッセージを出力
                         しない。

          -XlistX        クロスリファレンステーブルのみを出力する
                         (リストはなし)。

          詳細は、 Fortran を参照してくだ
          さい。


     -xa  -a と同義です。


     -xalias[=type_list]
          コンパイラが仮定する別名の程度を指定します。

          非標準のプログラミング技法により、コンパイラの最適化戦
          略の妨げとなる状況が発生することがあります。特に、オー
          バーインデックスの使用、ポインタの使用、ならびに大域変
          数または一意でない変数を副プログラム引数として渡すこと
          により、コンパイラが特定の最適化を適用できなくなるあい
          まいな別名状況が発生し、予想外の結果を招くことがありま
          す。

          別名の詳細については、『Fortran ユーザーズガイド』を参
          照してください。

          コンパイラに、プログラムと Fortran 標準の別名要件との違
          いを知らせるには、 -xalias
           フラグを使用します。

          フラグには、リストが付くこともあれば付かないこともあり
          ます。リストに含まれるキーワードはコンマで区切られ、各
          キーワードはプログラムに存在する別名状況を示します。各
          キーワードに接頭辞 no% を付けることにより、存在しない別
          名のタイプを示すことができます。

          次の別名キーワードがあります。

          dummy     ダミー(形式) 副プログラムパラメータは相互に別
                    名となり、大域変数となります。

          no%dummy  (デフォルト)。ダミーパラメータの使用法は
                    Fortran 標準に従い、相互に別名または大域変数
                    となることはありません。

          craypointer
                    (デフォルト)。Cray ポインタは、LOC() 関数でア
                    ドレスが取り出せる任意の大域変数または局所変
                    数を指すことがきます。また、2 つの Cray ポイ
                    ンタが同じデータを指す可能性もあります。この
                    ような仮定に基づいて、ある種の最適化が阻止さ
                    れるため、安全です。

          no%craypointer
                    Cray ポインタは、malloc() で取り出せるような
                    固有のメモリアドレスだけを指します。また、2
                    つの Cray ポインタが同じデータを指すことはあ
                    りません。この仮定に基づくと、コンパイラは
                    Cray ポインタを使った参照を最適化することが可
                    能になります。

          actual    コンパイラは実際の副プログラムの引数を、それ
                    らが大域変数であるかのように扱います。引数を
                    副プログラムに渡すと、Cray ポインタにより別名
                    が発生します。

          no%actual (デフォルト)。引数を渡しても別名にはなりませ
                    ん。

          overindex (a) COMMON ブロック内の配列要素を参照すると、
                    COMMON ブロックまたは同類のグループ内の要素を
                    参照することになります。
                    (b) COMMON ブロックまたは同類のグループの要素
                    を実引数として副プログラムに渡すと、その
                    COMMON ブロックまたは同類のグループへのアクセ
                    ス権が、呼び出される副プログラムに与えられま
                    す。
                    (c) シーケンス構造型の要素は、COMMON ブロック
                    であるかのように処理されます。
                    (d) 個々の配列境界が犯されることがあります
                    が、上記を除くと、参照された配列要素は、その
                    配列内に留まると見なされます。

                    配列構文の WHERE 文と FORALL 文は、オーバーイ
                    ンデックスとはみなされません。

          no%overindex
                    (デフォルト)。配列結合違反はありません。配列
                    参照によりほかの変数が参照されることはありま
                    せん。

          ftnpointer
                    外部関数を呼び出すと、Fortran ポインタはすべ
                    ての型、種類、またはランクの TARGET 変数を指
                    します。

          no%ftnpointer
                    (デフォルト)。Fortran ポインタは標準ルールに
                    従います。

          コンパイラのコマンド行に -xalias が指定されない場合、デ
          フォルトは次のとおりです。

          -xalias=no%dummy,craypointer,no%actual,no%overindex,\
                   no%ftnpointer

          -xalias をリストなしで指定すると、Fortran 別名ルールに
          違反しないほとんどのプログラムで最良のパフォーマンスが
          得られます。これは、次の指定と一致します。

          -xalias=no%dummy,no%craypointer,no%actual,no%overindex,\
                   no%ftnpointer

          -xO3 以上の最適化レベルでコンパイルするときは、効率上
          -xalias を使用するようにしてください。

          詳細については、『Fortran プログラミングガイド』の移植
          の章を参照してください。

     -xarch=isa
          ターゲットの命令セットアーキテクチャー(ISA) を指定しま
          す。

          このオプションは、コンパイラが生成するコードを、指定し
          た命令セットアーキテクチャーの命令だけに制限します。つ
          まり、指定した命令セットだけを許可します。このオプショ
          ンは、ターゲット固有の命令が使用されるとは限りません。
          ただし、このオプションを使用すると、バイナリプログラム
          の移植性に影響がある可能性があります。この項目の最後に
          ある注意と警告を参照してください。

          注:メモリーモデル LP64 (64 ビット) または ILP32 (32
          ビット) を意図的に指定する場合は、それぞれ -m64、-m32
          オプションを使用してください。次に示すように以前のリ
          リースとの互換性を維持する場合を除き、-xarch フラグはメ
          モリーモデルを指示しなくなりました。

          値 (すべてのプラットフォーム) は次のとおりです。


           値    意味

          generic   大部分のプロセッサに共通する命令セットを使用
                    してコンパイルします。


          generic64 ほとんどの 64 ビットプラットフォームでコンパ
                    イルします。(Solaris のみ)

                    次のオプションはこのオプションと同義です。
                    -m64 -xarch=generic
                    このオプションは、以前のリリースとの互換性を
                    維持するために提供されています。64 ビットコン
                    パイルを指定するには、-xarch=generic64 ではな
                    く -m64 を指定してください。


          native    当該システムで良好なパフォーマンスを得られる
                    ようにコンパイルします

                    コンパイラは、自身が実行されているシステムプ
                    ロセッサに合った適切な設定を選択します。


          native64  当該システムで良好なパフォーマンスを得られる
                    ようにコンパイルします (Solaris のみ)

                    次のオプションはこのオプションと同義です。
                    -m64 -xarch=native
                    このオプションは、以前のリリースとの互換性を
                    維持するために提供されています。

          SPARC プラットフォームでの値:

          sparc     SPARC-V7 ISA に合ったコンパイルをします。

                    Visual Instruction Set (VIS) およびその他の実
                    装に固有の ISA 拡張のない V9 ISA 向けにコンパ
                    イルします。このオプションにより、V9 ISA で良
                    好なパフォーマンスを得るためのコードを生成で
                    きます。


          sparcvis  VIS を持つ SPARC-V9 ISA 向けにコンパイルしま
                    す。

                    Visual Instruction Set (VIS) version 1.0 およ
                    び UltraSPARC 拡張を持つ SPARC-V9  向けにコン
                    パイルします。このオプションによって、
                    UltraSPARC アーキテクチャーで良好なパフォーマ
                    ンスを得るためのコードを生成できます。


          sparcvis2 UltraSPARC III 拡張を持つ SPARC-V9 ISA 向けに
                    コンパイルします。

                    このオプションにより、Visual Instruction Set
                    (VIS) version 2.0 と UltraSPARC III 拡張を持
                    つ UltraSPARC アーキテクチャー用のオブジェク
                    トコードを生成できます。


          sparcfmaf sparcfmaf バージョンの SPARC-V9 ISA 向けにコ
                    ンパイルします。

                    このオプションにより、コンパイラは、
                    UltraSPARC 拡張 (Visual Instruction Set (VIS)
                    version 1.0 など) や UltraSPARC-III 拡張
                    (Visual Instruction Set (VIS) version 2.0 な
                    ど)、SPARC64 VI の浮動小数点乗加算の拡張に加
                    えて SPARC-V9 命令セットの命令を使用できま
                    す。

                    -xarch=sparcfmaf は、必ず -fma=fused と組み合
                    わせてください。またコンパイラが自動的に
                    multiply-add 命令を使用する機会を見つけるよ
                    う、適切な最適化レベルを指定してください。


          v9        -m64 -xarch=sparc と同等です。
                    -xarch=v9 を使用して 64 ビットメモリーモデル
                    を取得する従来のメイクファイルおよびスクリプ
                    トは、-m64 を使用すればよいだけです。


          v9a       -m64 -xarch=sparcvis と同等です。以前のリリー
                    スとの互換性を維持するために提供されていま
                    す。


          v9b       -m64 -xarch=sparcvis2 と同等で、以前のリリー
                    スとの互換性を維持するために提供されていま
                    す。


          また、次のことにも注意してください。


          o 従来の 32 ビット SPARC 命令セットアーキテクチャーの
            V7 および V8 は -m32 を意味し、-m64 と組み合わせるこ
            とはできません。

          o sparc または sparcvis を指定してコンパイルされたオブ
            ジェクトバイナリファイル (.o) はまとめてリンクし、実
            行することができますが、そうすることができるのは、
            sparcvis 互換プラットフォーム上だけです。

          o sparc、sparcvis、または sparcvis2 を指定してコンパイ
            ルされたオブジェクバイナリトファイル (.o) はまとめて
            リンクし、実行することができますが、そうすることがで
            きるのは、sparcvis2 互換プラットフォーム上だけです。

            選択によっては、生成された実行可能ファイルの、以前の
            アーキテクチャーでの実行速度が非常に遅くなることがあ
            ります。また、これら命令セットアーキテクチャーの多く
            で 4 倍精度の浮動小数点命令を使用できますが、コンパイ
            ラは生成するコードでそれらの命令を使用しません。


          x86 プラットフォームでの値:

           値    意味

          386       命令セットを Intel 32 ビット 386/486 アーキテ
                    クチャー用に制限します。

          pentium_pro
                    命令セットを 32 ビット pentium_pro アーキテク
                    チャー用に制限します。

          sse       pentium_pro 命令セットに SSE 命令セットを追加
                    します。

          sse2      pentium_pro 命令セットに SSE2 命令セットを追
                    加します。

          amd64     -m64 -xarch=sse2 と同等です (Solaris のみ)。
                    -xarch=amd64 を使用して 64 ビットメモリーモデ
                    ルを取得する従来のメイクファイルおよびスクリ
                    プトは、-m64 を使用すればよいだけです。

          pentium_proa
                     pentium_pro アーキテクチャーに AMD 拡張
                    (3DNow!、3DNow! 拡張、および MMX 拡張) を追加
                    します。

          ssea      32 ビット SSE アーキテクチャーに AMD 拡張
                    (3DNow!、3DNow! 拡張、および MMX 拡張) を追加
                    します。

          sse2a     SSE2 アーキテクチャーに AMD 拡張 (3DNow!、
                    3DNow! 拡張、および MMX 拡張) を追加します。

          amd64a    -m64 -xarch=sse2a と同等です (Solaris のみ)。

          sse3      SSE 命令セットに SSE3 命令セットを追加しま
                    す。

          注:         x86 プラットフォームで、プログラムの一部で
                    も -m64 を使用してコンパイルまたはリンクする
                    場合は、プログラムのすべての部分のコンパイル
                    に、これらオプションの 1 つを併用します。


          デフォルト:
            -xarch=isa が指定されなかった場合、デフォルトは次のと
            おりです。
            SPARC プラットフォームの場合: -xarch=sparc
            x86 プラットフォームの場合: -xarch=386


          相互の関連性:
            このオプションは単独で使用することができますが、
            -xtarget オプションの展開内容に含まれており、特定の
            -xtarget オプションで設定された -xarch 値を無効にする
            目的で使用することもできます。

            たとえば、 -xtarget=ultra4 は次のように展開されます。
            -xarch=sparcvis -xcache=64/32/4:8192/128/2
            -xchip=ultra4

            次にコマンドの例を示します。
            example% f95 -xtarget=ultra4 -xarch=sparcvis2 ...

            この例で、-xarch=sparcvis2 は、-xtarget=ultra2 の展開
            内容の -xarch に優先します。


          警告:
            このオプションを最適化と組み合わせた場合、適切な選択
            をすると、指定のアーキテクチャーでの実行可能ファイル
            のパフォーマンスを高めることができます。ただし、不適
            切な選択をすると、パフォーマンスの深刻な低下を招いた
            り、意図したターゲットプラットフォームでバイナリプロ
            グラムが実行できなくなったりすることがあります。


     -xassume_control[=a[,a]...]
          ASSUME プラグマを制御するパラメータを設定します。

          このフラグを使用すると、コンパイラによる、ソースコード
          の ASSUME プラグマの取り扱いを制御できます。

          ASSUME の説明については『Fortran 』を参
          照してください。

          ASSUME プラグマによって、コンパイラがよりよい最適化を行
          なえるようにするために使用できる特別な情報を、プログラ
          マが表明できます。この表明には確率を指定できます。確率
          が「0」か「1」のものは certain で示し、そのほかは non-
          certain 

          
           DO 
          

          


          optimize  ASSUME プラグマでの表明は、そのプログラムの最
                    適化に影響を与えます。

          check     コンパイラが、certain と指定された表明の正し
                    さをチェックするコードを生成し、その表明の違
                    反について実行時メッセージを出します。 fatal
                    が併せて指定されていなければ、プログラムは続
                    行します。

          fatal     check とともに使用されると、certain が指定さ
                    れた表明に違反が発生した場合、プログラムは終
                    了します。

          retrospective[:d]
                    パラメータ d は耐性値でオプションで指定でき、
                    その値は「1」より小さい正の実定数でなければな
                    りません。デフォルトは「.1」です。
                    retrospective によって、すべての表明について
                    その真偽がカウントされるようコードがコンパイ
                    ルされます。耐性値 d を越えた表明はプログラム
                    終了時の出力に記載されます。

          %none     ASSUME プラグマをすべて無視します。

          コンパイラのコマンド行に指定されなかった場合、デフォル
          トは次のとおりです。      -xassume_control=optimize
          これは、コンパイラは ASSUME プラグマを認識して最適化に
          反映するけれども、チェックはまったく行なわれないという
          意味です。

          パラメータを付けないで指定された場合は、
          -xassume_control は次のような意味になります。
              -xassume_control=check,fatal
          この場合、コンパイラは certain である ASSUME プラグマを
          すべて受け付けますが、最適化には反映されません。表明が
          無効であれば、プログラムは終了します。



     -xautopar
          -autopar と同義です。

     -xbinopt={prepare|off}
          (SPARC) あとで binopt(1) を使って最適化、変換、および解
          析が可能な形式でバイナリを生成するよう指示します。この
          オプションは、実行可能ファイルまたは共有オブジェクトの
          構築に使用でき、有効にするには、最適化レベルを -xO1 以
          上にする必要があります。このオプションを指定して構築す
          ると、バイナリのサイズが少し (約 5%) 増加します。

          コンパイルとリンクを別々に行う場合は、コンパイルとリン
          クの両方で -xbinopt を指定する必要があります。

           example% f95 -o myprog -xbinopt=prepare a.o b.o c.f95

          このオプションは、コンパイルに使用する一部ソースコード
          がない場合でも、残りコードのコンパイルに使用できます。
          その場合は、最終バイナリを作成するリンクステップで、こ
          のオプションを使用してください。こうした状況では、この
          オプションを指定してコンパイルしたコードのみ最適化、変
          換、解析できます。
          -xbinopt=prepare と -g を指定してコンパイルすると、デ
          バッグ情報が含まれるため、実行可能ファイルのサイズが増
          えます。デフォルトは、.BR -xbinopt=off です。


     -xcache=c
          オプティマイザ用のキャッシュを定義します。

          オプティマイザが使用するキャッシュの属性を定義します。

          c は、次の 1 つでなければなりません。
             o generic
             o native
             o s1/l1/a1[/t1]
             o s1/l1/a1[/t1]:s2/l2/a2[/t2]
             o s1/l1/a1[/t1]:s2/l2/a2[/t2]:s3/l3/a3[/t3]

          siliai 、および ti, は、次のように定義されてい
          ます。

          si レベル i におけるデータキャッシュのサイズ (キロバイ
             ト)

          li レベル i におけるデータキャッシュの行サイズ (バイト)

          ai レベル i におけるデータキャッシュの結合規則

          ti i レベルでキャッシュを共有するハードウェアスレッド数
             ti パラメータは省略可能です。省略された場合は、値 1
             が使用されます。

          このオプションは、オプティマイザが使用できるキャッシュ
          の属性を指定します。どのキャッシュの属性が使用されるか
          は保証されません。

          このオプションは単独でも使用できますが、 -xtarget オプ
          ションを展開したものの一部です。主に、 -xtarget オプ
          ションで指定された値を無効にする (変更する) 場合に使用
          します。

          -xcache の値は、次のとおりです。

          generic
                ほとんどのプラットフォームでよいパフォーマンスを
                得るためのキャッシュの属性を定義します。これはデ
                フォルトです。

          native
                当該ホストプラットフォームで良好なパフォーマンス
                を得られるようにキャッシュ特性を定義します。

          s1/l1/a1[/t1]
                レベル 1 のキャッシュ属性を定義します。

          s1/l1/a1[/t1]:s2/l2/a2[/t2]
                レベル 1 と 2 のキャッシュ属性を定義します。

          s1/l1/a1[/t1]:s2/l2/a2[/t2]:s3/l3/a3[/t3]
                レベル 1、2、および 3 のキャッシュ属性を定義しま
                す。


     -xcg89
          (SPARC) -cg89 と同義です。
          このオプションは廃止されています。使用しないでくださ
          い。


     -xcg92
          (SPARC) -cg92 と同義です。
          このオプションは廃止されています。使用しないでくださ
          い。


     -xcheck=v
          特別な実行時チェックを実行します。

          v は次から選択します。

          %all %none stkovf no%stkovf init_local no%init_local

          注: x86 プラットフォームでは、 -xcheck=init_local のみ
          受け付けられます。 %all は特別な実行時チェックを有効に
          します。一方、 %none はこれを無効にします。デフォルト (
          -xcheck がコマンド行に指定されなかった場合) は -
          xcheck=%none となります。

          次のように、サブオプションは複数をコンマで区切って指定
          できます。
                 -xcheck=no%stkovf,init_local

          -xcheck=stkovf
              (SPARC のみ) 実行時にスタックオーバーフローを検出し
              ます。 -xcheck=stkovf を使用してコンパイルを行う
              と、各ルーチンエントリごとにコードが生成され、ス
              レッドスタックオーバーフローが検査されます。

              -xcheck=no%stkovf は、スタックオーバーフローチェッ
              クを無効にします。

              デフォルトでは、実行時スタックオーバーフローチェッ
              クは行われません。

              スタックオーバーフローが検出されると、SIGSEGV 障害
              が発生します。

              -xcheck=stkovf を使用してコンパイルを行う場合、すべ
              てのスタックオーバーフロー状況が検出される保証はあ
              りません。このオプションを使用せずにコンパイルされ
              たルーチンでスタックオーバーフローが発生する可能性
              があるからです。未検出のスタックオーバーフローは、
              近傍スレッドのスタックでデータを破壊する可能性があ
              ります。


          -xcheck=init_local
              局所変数の特別な初期化を実行します。

              このオプションが指定されると、プログラムで値が割り
              当てられる前に使用された場合に算術例外を引き起こす
              可能性のある局所変数を、コンパイラはある値に初期化
              します。 ALLOCATE 文で割り当てられたメモリもこの方
              法で初期化されます。

              SAVE 変数、モジュール変数、 COMMON ブロック内の変数
              は初期化されません。 no%init_local によってこの初期
              化は無効になります。これはデフォルトです。

     -xchip=c
          オプティマイザ用のターゲットプロセッサを指定します。

          このオプションは、ターゲットプロセッサを指定することに
          よって命令タイミングのプロパティーを指定します。

          このオプションは単独でも使用できますが、 -xtarget オプ
          ションを展開したものの一部です。主に -xtarget オプショ
          ンで指定された値を無効にする (変更する) 場合に使用しま
          す。

          次のような影響があります。

          o 命令の順序 (つまり、スケジューリング)

          o コンパイラが飛越しを使用する方法

          o 意味的に等しい代替が使用できる場合に使用する命令

          SPARC で一般的な -xchip
           値は次のとおりです。


               sparc64vi
                        SPARC64 VI プロセッサ向けに最適化します。

               ultra    UltraSPARC(TM) チップ向けに最適化します。

               ultra2   UltraSPARC II チップ向けに最適化します。

               ultra2e  UltraSPARC IIe チップ向けに最適化します。

               ultra2i  UltraSPARC IIi チップ向けに最適化します。

               ultra3   UltraSPARC III チップ向けに最適化します。

               ultra3cu UltraSPARC IIIcu チップ向けに最適化しま
                        す。

               ultra3i  UltraSPARC IIIi チップ向けに最適化しま
                        す。

               ultra4   UltraSPARC IV チップ向けに最適化します。

               ultra4plus
                        UltraSPARC IV+ チップ向けに最適化します。

               ultraT1  UltraSPARC T1 チップ向けに最適化します。

               ultraT2  UltraSPARC T2 チップ向けに最適化します。

               generic  サポートされている大部分の SPARC プラット
                        フォームで良好なパフォーマンスが得られる
                        ように最適化します。(コンパイラデフォルト
                        )。

               native   現在のホストプラットフォームでよいパ
                        フォーマンスが得られるよう、最適化を行な
                        います。

          あまり一般的でない SPARC プロセッサ名:

               super
                    SuperSPARC チップ向けに最適化します。

               super2
                    SuperSPARC II チップ向けに最適化します。

               micro
                    MicroSPARC(TM) チップ向けに最適化します。

               micro2
                    MicroSPARC II チップ向けに最適化します。

               hyper
                    HyperSPARC(TM) チップ向けに最適化します。

               hyper2
                    HyperSPARC II チップ向けに最適化します。

          x86 プラットフォームでの -xchip の値は次のとおりです。

               pentium
                    Pentium 向けに最適化します。

               pentium_pro
                    Pentium Pro 向けに最適化します。

               pentium3
                    Pentium III 向けに最適化します。

               pentium4
                    Pentium 4 向けに最適化します。

               generic
                    大部分の x86 プラットフォーム向けに向けに最適
                    化します。

               native
                    このホストプロセッサ向けに最適化します。

          詳細は、『Fortran ユーザーズガイド』を参照してくださ
          い。


     -xcode=v
          (SPARC) コードアドレス空間を指定します。

          -xcode の値は、次のとおりです。


          abs32   32 ビット絶対アドレスを生成します。
                  コード、データ、および bss を合計したサイズは
                  2**32 バイトに制限されます。これは 32 ビット
                  アーキテクチャーでデフォルトです。


          abs44   44 ビット絶対アドレスを生成します。
                  コード、データ、および bss を合計したサイズは
                  2**44 バイトに制限されます。64 ビットアーキテク
                  チャーだけで使用できます。


          abs64   64 ビット絶対アドレスを生成します。
                  64 ビットアーキテクチャーだけで使用できます。


          pic13   位置独立コード (小規模モデル) を生成します。
                  -pic と同義です。32 ビットアーキテクチャーでは
                  最大 2**11 まで、64 ビットアーキテクチャーでは
                  最大 2**10 までの固有の外部シンボルを参照できま
                  す。

          pic32   位置独立コード (大規模モデル) を生成します。
                  -PIC と同義です。32 ビットアーキテクチャーでは
                  最大 2**30 まで、64 ビットアーキテクチャーでは
                  最大 2**29 までの固有の外部シンボルを参照できま
                  す。

          32 ビットコンパイル時のデフォルトは -xcode=abs32 です。
          64 ビットコンパイル時のデフォルトは -xcode=abs44 です。

          位置独立コード:

             動的共用ライブラリの作成時に -xcode=pic13 または
             -xcode=pic32 を使用すると、実行時のパフォーマンスが
             向上します。

             動的実行ファイル内のコードは通常、メモリー内の固定ア
             ドレスと結合されていますが、位置独立コードはプロセス
             のアドレス空間内のどこにでもロードできます。

             位置独立コードを使用すると、グローバルオフセットテー
             ブル全体の間接参照として再配置可能参照が生成されま
             す。共用オブジェクト内の頻繁にアクセスされる項目は、
             -xcode=pic13 または -xcode=pic32 を使用してコンパイ
             ルすると、位置独立コード以外のコードに必要な多数の再
             配置が不要となるメリットがあります。

             グローバルオフセットテーブルのサイズは、SPARC では
             8K バイトに制限されています。

             -xcode={pic13|pic32} には、2 つのパフォーマンス損失
             があります。

               o -xcode=pic13 または -xcode=pic32 を使用してコン
                 パイルされたルーチンは、共用ライブラリの大域変数
                 または静的変数へのアクセスに使用されるグローバル
                 オフセットテーブルをポイントするために、レジスタ
                 設定のエントリ時に若干の余分な命令を実行します。

               o 大域変数または静的変数にアクセスするたびに、グ
                 ローバルオフセットテーブル全体の余分な間接メモ
                 リー参照が必要です。pic32 を使用してコンパイルを
                 行う場合、広域メモリーおよび静的メモリーの参照ご
                 とに 2 つの追加命令があります。

               上述のパフォーマンス損失を検討する場合、
               -xcode=pic13 または -xcode=pic32 を使用すると、ラ
               イブラリコードの共有の効果により、システムのメモ
               リー所要量が大幅に削減されることに注意してくださ
               い。 -xcode=pic13 または -xcode=pic32 を使用してコ
               ンパイルされた共用ライブラリ内のコードのすべての
               ページは、このライブラリを使用するすべてのプロセス
               で共用できます。共用ライブラリ内のコードのページに
               1 つでも非 pic (すなわち絶対) メモリー参照が含まれ
               ると、そのページは非共用となり、ライブラリを使用す
               るプログラムが実行されるたびにそのページのコピーを
               作成する必要があります。

               コンパイルされているかどうかを示すもっとも簡単な方
               法は、次のように nm コマンドを使用することです。

                   nm <>.o | grep _GLOBAL_OFFSET_TABLE_

               位置独立コードを含む .o ファイルには、文字 U で
               マークされる、未解決の _GLOBAL_OFFSET_TABLE_ への
               外部参照が含まれます。

               -xcode=pic13 または -xcode=pic32 のどちらを使用す
               るか決定する際は、elfdump -c (詳細は elfdump(1) の
               マニュアルページを参照) を使って大域オフセットテー
               ブル (GOT: Global Offset Table) のサイズを調べ、セ
               クション見出し sh_name: .got を確認します。sh_size
               の値が GOT のサイズを示しています。GOT が 8,192 バ
               イトに満たない場合は -xcode=pic13、そうでない場合
               は -xcode=pic32 を指定します。

               一般に、-xcode の使用方法を決める際は、次の指針に
               従います。

               o  実行可能ファイルを構築する場合は、-xcode=pic13
               と -xcode=pic32 のどちらも使わない。

               o  実行可能ファイルへのリンク専用のアーカイブライ
               ブラリを構築する場合は、 -xcode=pic13 と
               -xcode=pic32 のどちらも使わない。

               o  共有ライブラリを構築する場合は、まず
               -xcode=pic13 を使い、GOT サイズが 8,192 バイトを超
               えたら、-xcode=pic32 を使う。

               o  共有ライブラリへのリンク用のアーカイブライブラ
               リを構築する場合は、 -xcode=pic32 だけ使う。

               Solaris OS マニュアル『リンカーとライブラリ』を参
               照してください。


     -xcommonchk[={yes|no}]
          共通ブロック不一致の実行時検査を有効にします。

          このオプションは、TASK COMMON と並列化 (-explicitpar ま
          たは -parallel) を使用するプログラム向けのデバッグ支援
          ツールとして提供されています (task common プラグマを参
          照してください)。

          通常は、矛盾した TASK COMMON 宣言の実行時検査は無効に
          なっています。 -xcommonchk=yes を指定してコンパイルする
          と、実行時検査が有効になります。

          ある共通ブロックが 1 つのソースモジュールで正規の共通ブ
          ロックとして宣言され、別の場所で TASK COMMON プラグマ内
          に出現する場合、プログラムは停止し、最初の不一致を示す
          メッセージが出力されます。

          このオプションによって呼び出される実行時検査はプログラ
          ムパフォーマンスを低下させるため、プログラムの開発とデ
          バッグ時にだけ使用してください。

          -xcommoncheck だけの指定は -xcommoncheck=yes と同じで
          す。


     -xcrossfile[=n]
          複数ソースファイルに渡る最適化とインライン化を有効にし
          ます。

          このオプションが指定される場合、n は 0、または 1 です。

          注: このオプションは、 -xipo に置き換えられています。

          通常、コンパイラの解析範囲はコマンド行上の個々のファイ
          ルに限定されます。たとえば、 -O4 の自動インライン化は、
          同じソースファイル内で定義および参照された副プログラム
          に限定されます。

          -xcrossfile が指定されると、コンパイラはコマンド行に指
          定されたすべてのファイルを、それらが単一のソースファイ
          ルとして結合されているかのように解析します。

          -xcrossfile が有効になるのは、 -O4 または -O5 と共に使
          用される場合だけです。 -xcrossfile フラグは、 -S と共に
          コンパイルされた場合無視されます。

          アセンブリ言語の .s ソースファイルは、ファイルをまたい
          だ解析からは除外されます。

          このコンパイルから生成されるファイルは (インライン化が
          原因で) 相互依存の関係にあり、プログラムにリンクされる
          際には 1 つの単位として使用されなければなりません。ルー
          チンのどれかが変更されたためにファイルを再コンパイルす
          る場合には、すべてのファイルを再コンパイルする必要があ
          ります。

          このオプションを使用すると、結果的に Makefile の構造に
          作用します。

          デフォルト (コマンド行で指定が行われない場合) は、
          -xcrossfile=0 で、複数のファイルを対象とした最適化は行
          われません。 -xcrossfile は -xcrossfile=1 に同じです。

     -xdebugformat={stabs|dwarf}
          Sun Studio コンパイラでは、デバッガ情報の形式が "stabs"
          形式から "dwarf" 形式へと移行しました。このリリースのデ
          フォルト値は
           -xdebugformat=dwarf です。

          このオプションは、移植ツールで使用する際のいずれかの形
          式へのアクセス手段として使用してください。デバッガ情報
          を読み取るソフトウェアを持っているのでない限り、あるい
          は特定のツールがいずれか一方の形式のデバッガ情報を必要
          とするのでない限り、このオプションを使用する必要はあり
          ません。

          -xdebugformat=stabs は、stabs 標準形式でデバッグ情報を
          生成します。

          -xdebugformat=dwarf は、dwarf 標準形式でデバッグ情報を
          生成します。

          -xdebugformat を指定しなかった場合は、
          -xdebugformat=dwarf と見なされます。引数なしでこのオプ
          ションを指定するとエラーになります。

          このオプションは、-g オプションを使って記録されたデータ
          に影響します。 -g なしでも、少量のデバッグ情報が記録さ
          れ、その情報の形式は、このオプションで制御されます。こ
          のため、-xdebugformat は、-g が使用されない場合でも影響
          します。

          dbx およびパフォーマンスアナライザは、stabs および
          dwarf 形式の両方を認識するため、このオプションを使用し
          ても、どちらのツールの機能にも影響はありません。

          これは、過渡的なインタフェースです。マイナーリリースで
          あっても、リリースがのたびに互換性のない方法で変更が発
          生する可能性があります。

          また、stabs と dwarf のどちらも、フィールドまたは値の細
          部仕様が進化しています。

          オブジェクトまたは実行可能ファイルが "dwarf" または
          "stabs" デバッグ情報付きでコンパイルされたかどうかを判
          定するには、dwarfdump(1) コマンドを使用します。

     -xdepend
          -depend と同義です。


     -xdryrun
          -dryrun と同義です。


     -xexplicitpar
          -explicitpar と同義です。


     -xF  Sun Studio パフォーマンスアナライザによる関数レベルの並
          べ替えを許可します。

          コンパイラ、アナライザ、およびリンカーを使用してコアイ
          メージの関数 (副プログラム) を並べ替えることを許可しま
          す。 -xF オプションを指定してコンパイルし、続いてアナラ
          イザを実行すると、メモリー内の関数がどのように使用され
          ているかに応じて、それらの関数の順序を最適化するマップ
          ファイルを生成できます。リンカーの -Mmapfile オプション
          を使用し、実行ファイルを構築する後続のリンクに対して、
          このマップを使用するように指示できます。これにより、実
          行ファイルの各関数が個別のセクションに置かれます。(f95
          -Mpath オプションはまた、通常のファイルをリンカーに渡し
          ます。-Mpath オプションの説明を参照してください。)

          メモリー内の副プログラムの並べ替えは、アプリケーション
          テキストのページフォルトタイムがアプリケーションタイム
          の大部分を消費している場合に便利です。そうでない場合
          は、並べ替えによってアプリケーションの全体的なパフォー
          マンスが向上しないかもしれません。パフォーマンスアナラ
          イザは、Sun Studio の一部です。アナライザの詳細について
          は、マニュアル を参照
          してください。


     -xfilebyteorder=options
          ビッグエンディアンとリトルエンディアンの、異なる方式の
          プラットフォーム間の書式なしのファイルの共有および移植
          をサポートします。

          このフラグは、書式なし入出力ファイルのバイト順序とバイ
          ト列を特定します。options には、次のフラグを組み合わせ
          たものを指定する必要があります。少なくとも 1 つ、指定が
          存在する必要があります。

          littlemax_align:spec
          bigmax_align:spec
          native:spec

          max_align は、ターゲットプラットフォームの最大整列を宣
          言します。指定できる値は 1、2、4、8、16 です。境界整列
          は、C 言語の構造体との互換性を維持するため、プラット
          フォーム依存のバイト列を使用する Fortran VAX 構造体と
          Fortran 95 派生型に適用されます。

          最大整列が max_align プラットフォームでは、little は
          「リトルエンディアン」ファイルを表します。たとえば
          little4 が 32 ビット x86 ファイルを表すのに対し、
          little16 は 64 ビットの x86 ファイルを表します。

          big は、最大整列が max_align の「ビッグエンディアン」
          ファイルを表します。たとえば big8 は 32 ビット SPARC
          ファイルを表すのに対し、big16 は 64 ビット SPARC ファイ
          ルを表します。

          native は、コンパイルしているプロセッサプラットフォーム
          が使用しているのと同じバイト順序、バイト列の「ネイティ
          ブ」ファイルを表します。次の指定は「ネイティブ」と見な
          されます。

              プラットフォーム    「ネイティブ」の指定
              32-bit SPARC         big8
              64-bit SPARC         big16
              32-bit x86           little4
              64-bit x86           little16

          spec には、次をコンマで区切って指定する必要があります。

          %all
          unit
          filename

          %all は、"SCRATCH" として開かれている以外のすべてのファ
          イルおよび論理装置、またはほかの場所で -xfilebyteorder
          に明示的に指定されているすべてのファイルおよび論理装置
          を表します。%all は 1 回だけ指定できます。

          unit は、プログラムによって開かれた特定の Fortran 装置
          番号を表します。

           filename  は、プログラムによって開かれた特定の Fortran
          ファイル名を表します。

          使用例:
           -xfilebyteorder=little4:1,2,afile.in,big8:9,bfile.out,12
           -xfilebyteorder=little8:%all,big16:20

          注:
          このオプションは、STATUS="SCRATCH" を指定して開かれた
          ファイルには適用されません。これらのファイルに対する入
          出力操作は、つねに、ネイティブプロセッサのバイト順序お
          よびバイト列で行われます。

          コマンド行に -xfilebyteorder がない場合は最初のデフォル
          トは、-xfilebyteorder=native:%all です。

          このオプションでは、ファイル名および装置番号をそれぞれ
          1 回だけ宣言できます。

          コマンド行に -xfilebyteorder を含める場合は、little か
          big、または native の少なくとも 1 つの指定と組み合わせ
          る必要があります。

          このフラグで明示的に宣言されていないファイルは、ネイ
          ティブファイルと見なされます。たとえば
          xfilebyteorder=little4:zork.out を指定してコンパイルし
          た場合、zork.out は、最大 4 バイトのバイト列を持つリト
          ルエンディアンの 32 ビット x86 ファイルと見なされます。
          プログラム内のほかのすべてのファイルはネイティブファイ
          ルになります。

          ファイルに指定されたバイト順序はネイティブプロセッサと
          同じであるが、バイト列が異なる場合は、バイトスワップが
          行われないにしても、適切なパディングが使用されます。た
          とえば -m64 を付けた、64 ビット x86 プラットフォーム向
          けのコンパイルで、-xfilebyteorder=little4:filename が指
          定された場合などがそうです。

          ビッグエンディアンとリトルエンディアンの、異なる方式の
          プラットフォーム間で共有されるデータレコード内で宣言す
          る型は、同じサイズである必要があります。たとえば、
          -xtypemap=integer:64,real:64,double:128 を指定してコン
          パイルした SPARC 実行可能ファイルの生成するファイルを、
          -xtypemap=integer:64,real:64,double:64 を指定してコンパ
          イルした x86 実行可能ファイルが読み取ることはできませ
          ん。これは、両者のデフォルトの倍精度データ型のサイズが
          異なるためです。

          REAL*16 データを含む書式なしのファイルは、REAL*16 をサ
          ポートしていない x86 プラットフォームでは使用できないこ
          とに注意してください。

          非ネイティブとして指定されたファイルに対して、UNION/MAP
          データオブジェクト全体を使った入出力操作を行うと、実行
          時入出力エラーになります。非ネイティブファイルに対して
          は、MAP の個別メンバーを使った入出力操作のみ行うことが
          できます。UNION/MAP を含む VAX レコード全体を使った入出
          力操作は行えません。

     -xhasc[={yes|no}]
          実引数リストで、ホレリス定数を文字列として扱う。

          -xhasc=yes を指定すると、コンパイラは、副プログラム呼び
          出しで実引数として出現するホレリス定数を文字列として扱
          います。これは、デフォルトで、Fortran 77 規格でコンパイ
          ルします。

          -xhasc=no を指定すると、ホレリス定数は、副プログラム呼
          び出しリストで型なし値として扱われます。
          このフラグは、古い Fortran プログラムをポートするのを助
          けます。呼び出した副プログラムの引数が INTEGER または
          CHARACTER 以外のほかの型であると想定される場合、 -
          xhasc=no を指定して、ホレリス定数で副プログラムを呼び出
          すルーチンをコンパイルしてください。


     -xhelp=h
          オプションの要約または README ファイルを表示します。

          h は、 readme または flags のどちらかです。

          readme:  オンラインの README ファイルを表示します。
          flags:  コンパイラのフラグ (オプション) を表示します。

          -xhelp=flags -help と同義です。


     -xhwcprof[={enable|disable}]
          (SPARC) データ領域プロファイリング用のコンパイラサポー
          トを有効にします。

          -xhwcprof を有効にすると、コンパイラは、ツールがプロ
          ファイリング対象のロード命令およびストア命令を、それら
          の命令の参照するデータ型および構造体メンバーを
           (-g で生成されるシンボリック情報とともに) 関連付けるの
          に役立つ情報を生成します。プロファイルデータを、ター
          ゲットの命令領域ではなくデータ領域に関連付けて、命令プ
          ロファイリングだけでは簡単には得られない動作に対する見
          通しが得られるようにします。

          -xhwcprof で特定の一組オブジェクトファイルをコンパイル
          することができますが、このオプションが最も有用なのは、
          アプリケーションのすべてのオブジェクトファイルに適用し
          た場合です。そうすることで、アプリケーションのオブジェ
          クトファイルに分散しているすべてのメモリー参照を特定
          し、相関させることができます。

          コンパイルとリンクを個別に行う場合は、リンク時にも
          -xhwcprof を使用してください。

          同じコマンド行上の -xhwcprof=enable または
          -xhwcprof=disable の指定は、それ以前のすべての
          -xhwcprof 指定に優先します。

          デフォルトでは、-xhwcprof は無効です。引数なしの
          -xhwcprof の指定は、-xhwcprof=enable と同等です。

          -xhwcprof を使用する場合は、最適化を有効にして、デバッ
          グデータ形式を dwarf (-xdebugformat=dwarf) に設定します
          (ただし、このリリースの Sun Studio コンパイラでは dwarf
          がデフォルト)。
          -xhwcprof と -g を組み合わせると、-xhwcprof と -g を単
          独で指定した場合に増加する容量の合計以上に、一時ファイ
          ルの容量要件が増大します。

          次は example.f をコンパイルするコマンド例です。ハード
          ウェアカウンタプロファイリングと、DWARF シンボルを使用
          したデータ型および構造体メンバーのシンボリック解析のサ
          ポートを指定しています。

          example% f95 -c -O -xhwcprof -g example.f

          ハードウェアカウンタプロファイリングの詳細は、『
          』を参照してください。


     -xia[={widestneed|strict}]
          (SPARC) 区間演算の拡張機能を有効にし、適切な浮動小数点
          環境を設定します。

          区間演算は、Fortran 95 における数値計算技法の拡張機能で
          す。詳細については、Fortran 95 のマニュアルを参照してく
          ださい。

          -xia は、次のように展開するマクロフラグです:


          -xia と -xia=widestneed は、次のように展開されます:
            -xinterval=widestneed -ftrap=%none -fns=no -fsimple=0


          -xia=strict 次のように展開されます:
            -xinterval=strict -ftrap=%none -fns=no -fsimple=0

            詳細についてはFortran 95 
            を参照してください。


     -xinline=rl
          -inline=rl と同義です。


     -xinstrument=[no%]datarace]

          スレッドアナライザによる解析用にプログラムをコンパイル
          し、計測機構を組み込むには、このオプションを使用しま
          す。スレッドアナライザの詳細は、tha(1) を参照してくださ
          い。

          計測機構の組み込まれたプログラムは、パフォーマンスアナ
          ライザから collect -r races を使用して実行し、データ競
          合検出用実験を作成することができます。計測機構の組み込
          まれたコードはスタンドアロン実行できますが、実行速度が
          遅くなります。

          この機能を無効にするには、-xinstrument=no%datarace を指
          定します。デフォルトは、この設定です。

          -xinstrument には、必ず引数を指定してください。

          コンパイルとリンクを個別に行う場合は、コンパイルとリン
          クの両方で -xinstrument=datarace を指定してください。

          このオプションは、プリプロセッサトークンの __THA_NOTIFY
          を定義します。#ifdef __THA_NOTIFY を指定することで、
          libtha(3) ルーチンの呼び出しを保護できます。

          このオプションはまた、-g も設定します。

     -xinterval[={widestneed|strict|no}]
          (SPARC) 区間演算の拡張機能の処理を有効にします。

          区間演算は、Fortran 95 における数値計算技法の拡張機能で
          す。詳細については、Fortran 95 のマニュアルを参照してく
          ださい。

          このフラグは、許可される式評価構文を制御します。

          -xinterval が値なしで指定されると、デフォルトの
          widestneed が使用されます。


          no が指定されると、区間演算は有効になりません。


          widestneed
            混在モードの式に含まれるすべての非区間変数と非区間リ
            テラルを、その式における最大幅の区間データ型に拡張し
            ます。


          strict
            型または長さが混在した区間式を禁じます。区間の型と長
            さの変換はすべて明示的でなければなりません。



     -xipo[={1|0|2}]
          相互手続きの最適化を行います。

          相互手続き解析パスを起動して、プログラム全体を最適化し
          ます。 -xcrossfile と異なり、 -xipo はリンクステップの
          すべてのオブジェクトファイルを最適化し、コンパイルコマ
          ンドのソースファイルだけに限定しません。

          解析と最適化は、 -xipo でコンパイルされたオブジェクト
          ファイルに限定されます。

          -xipo=0 は、相互手続き解析を無効にします。
          -xipo=1 は、ソースファイル全体のインライン化を有効にし
          ます。
          -xipo=2 は、メモリー割り当ておよびメモリー最適化を含む
          プログラム全体の検出と解析を追加し、キャッシュのパ
          フォーマンスを向上させます。

          デフォルトは、 -xipo=0 です。

          値を指定しない場合、 -xipo=1
           とみなされます。

          -xipo=2 を指定してコンパイルすると、 -xipo=2 を付けずに
          コンパイルされた関数やサブルーチン (たとえばライブラリ)
          から -xipo=2 を指定してコンパイルされた関数やサブルーチ
          ンへの呼び出しはありません。そうでない場合は、呼び出さ
          れた関数の使用法に関するコンパイラの前提が間違っている
          可能性があります。

          -xipo を使用するケースについての詳細は、 Fortran 95
          を参照してください。

          別々のステップでコンパイルとリンクを行なった場合、両方
          のステップに -xipo を指定して、有効化する必要がありま
          す。

          ライブラリは、 -xipo を指定してコンパイルされていた場合
          であっても、ファイルをまたいだ相互手続き解析の対象とな
          ることはできません。また、アセンブリ言語の .s ソース
          ファイルは、解析から除外されます。

          -xipo フラグは、-Sと共にコンパイルされた場合無視されま
          す。

          -xipo に関する追加情報:
            は、少なくとも最適化レベル -xO4 を必要とします。

            -xcrossfile と共に使用しないでください。共に使用する
            と、コンパイルエラーが発生します。

            -xipo を指定してコンパイルされた実行可能ファイルを並
            列 make ツールで構築すると、問題が起きることがありま
            す。この問題が起きるのは、構築に使用されるオブジェク
            トファイルが、並列動作するリンクでも使用される場合で
            す。この問題を回避するには、リンクの実行前にオブジェ
            クトファイルの各リンク専用のコピーが最適化されるよう
            にしてください。

            -xipo を指定しないでコンパイルしたオブジェクトは、こ
            のフラグを使用してコンパイルされていないオブジェクト
            に自由にリンクできます。

            -xjobs も参照してください。

     -xipo_archive={none|readonly|writeback}
          (SPARC) ファイル相互の最適化でアーカイブ (.a) ライブラ
          リを取り込むことを可能にします。

          none    アーカイブファイルの処理を行いません。
                  コンパイラは、-xipo を使用してコンパイルされ、
                  リンク時にアーカイブライブラリから抽出されたオ
                  ブジェクトファイルにモジュール間インライン化や
                  その他のモジュール間最適化を適用しません。アー
                  カイブファイルの処理を行うには、リンク時に
                  -xipo と -xipo_archive=readonly または
                  -xipo_archive=writeback のいずれかを指定しま
                  す。

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

                  -xipo_archive=readonly オプションは、リンク時に
                  指定されたアーカイブライブラリ内のオブジェクト
                  ファイルに対するモジュール間インライン化および
                  相互手続きデータフロー解析を有効にします。ただ
                  し、モジュール間インライン化によってほかのモ
                  ジュールに挿入されたコードを除き、アーカイブラ
                  イブラリのコードのモジュール間の最適化が行われ
                  るわけではありません。

                  アーカイブライブラリ内のコードにモジュール間最
                  適化を適用するには、-xipo_archive=writeback が
                  必要です。このオプションを指定すると、コードの
                  抽出元のアーカイブライブラリの内容が変更されま
                  す。

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

                  アーカイブライブラリセットを共用する並列リンク
                  の場合は、リンクの実行前に、アーカイブライブラ
                  リの各リンク専用のコピーを作成し、それらコピー
                  が最適化されるようにしてください。

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

     -xjobs=n
          複数のプロセッサを使用してコンパイルします。

          -xjobs オプションを使用すると、コンパイラが作業を完了す
          るために作成するプロセスの数を設定できます。このオプ
          ションによって、マルチ CPU のマシンにおける構築時間を削
          減できます。現在、-xjobs は -xipo オプションととも指定
          した場合だけに機能します。-xjobs=n を指定した場合、n
          は、相互手続きオプティマイザがさまざまなファイルをコン
          パイルするために起動できる、コードジェネレータとなるイ
          ンスタンスの最大数です。

          一般に n の安全な値は使用可能なプロセッサ数の 1.5 倍で
          す。使用可能なプロセッサの数の何倍もの数を指定すると、
          生成されたジョブ間でのコンテキスト切り替えにオーバー
          ヘッドがかかり、パフォーマンスが劣化します。また値をあ
          まり大きくすると、スワップ領域などのシステムリソースの
          制限が使い切られてしまう可能性があります。

          -xjobs は必ず値を指定して使います。値を指定しないとエ
          ラー診断が出て、コンパイルが異常終了します。

          コマンド行に -xjobs の複数のインスタンスを指定すると、
          もっとも右にあるインスタンスに達するまで、前の値が上書
          きされていきます。

          次は、プロセッサを 2 つ持つシステム上において、-xjobs
          オプションを指定してコンパイルする例で、同じコマンドで
          このオプションを指定しない場合よりも短時間でコンパイル
          できます。

          example% f95 -xipo -xO4 -xjobs=3 t1.f t2.f t3.f

     -xknown_lib=lib
          既知のライブラリの呼び出しを認識します。

          このフラグが指定されると、コンパイラは特定の既知のライ
          ブラリ参照を組み込みとして扱い、ユーザーが指定するバー
          ジョンを無視します。これによりコンパイラは、ライブラリ
          の特殊な知識に基づいてライブラリルーチンの呼び出しを最
          適化することができます。




          lib には、次のキーワードのいずれか 1 つを指定するか、複
          数をコンマで区切って指定できます。


             blas
             blas1
             blas2
             blas3
             組み込み関数

          -xknown_lib=[blas | blas1 | blas2 | blas3 ]
             コンパイラは次の BLAS ライブラリルーチンへの呼び出し
             を認識し、Sun Performance Library 実装に対して適切に
             なるよう、自由に最適化します。

             -xknown_lib=blas1 が認識する BLAS1 ルーチン:

             caxpy   ccopy   cdotc    cdotu   crotg
             cscal   csrot   csscal   cswap   dasum
             daxpy   dcopy   ddot     drot
             drotg   drotm   drotmg   dscal   dsdot
             dswap   dnrm2   dzasum   dznrm2  icamax
             idamax  isamax  izamax   sasum   saxpy
             scasum  scnrm2  scopy    sdot    sdsdot
             snrm2   srot    srotg    srotm   srotmg
             sscal   sswap   zaxpy    zcopy   zdotc
             zdotu   zdrot   zdscal
             zrotg   zscal   zswap

             -xknown_lib=blas2 が認識する BLAS2 ルーチン:

             cgemv   cgerc   cgeru   ctrmv   ctrsv
             dgemv   dger    dsymv   dsyr    dsyr2
             dtrmv   dtrsv   sgemv   sger
             ssymv   ssyr    ssyr2   strmv   strsv
             zgemv   zgerc   zgeru   ztrmv   ztrsv

             -xknown_lib=blas3 が認識する BLAS3 ルーチン:

             cgemm   csymm   csyr2k  csyrk   ctrmm
             ctrsm   dgemm   dsymm   dsyr2k  dsyrk
             dtrmm   dtrsm   sgemm   ssymm   ssyr2k
             ssyrk   strmm   strsm   zgemm   zsymm
             zsyr2k  zsyrk   ztrmm   ztrsm

             これらはどのように組み合わせて指定することも可能で
             す。たとえば、
                -xknown_lib=blas2,blas3
             は BLAS2 ルーチンと BLAS3 ルーチンだけを選択します。

             BLAS ルーチンすべてを選択するには
                -xknown_lib=blas

             と指定します。これは次の指定と同じことです。
                -xknown_lib=blas1,blas2,blas3

             コンパイラは、これらのライブラリルーチンのユーザー指
             定バージョンを無視して、Sun Performance Library 内の
             BLAS ルーチンへリンクします。


          -xknown_lib=intrinsics
             intrinsics の指定には、Fortran 95 組み込みの明示的
             EXTERNAL 宣言を無視する効果があり、ユーザー指定の組
             み込みルーチンは無視されます。

             コンパイラによって組み込み関数として認識される関数の
             一覧は、『Fortran ライブラリ・リファレンス』の第 2
             章と第 3 章を参照してください。


     -xlang=f77
          (SPARC) 適切な実行時ライブラリをインクルードして、既存
          の Fortran 77 のための正しい実行時環境が確実に設定され
          るようにします。

          相互の関連性:

          -xlang=f77 オプション指定には、 f77compat ライブラリと
          のリンクが暗黙的に含まれているので、Fortran 77 オブジェ
          クトファイルと Fortran 95 オブジェクトファイルを簡単に
          リンクできます。 -xlang=f77 を使用すると、確実に正しい
          実行時環境を設定できます。

          警告:

          -xnolib は -xlang と組み合わせて使用しないでください。

          Fortran オブジェクトファイルと C++ オブジェクトファイル
          を混在させる場合は、C++ コンパイラとリンクして、 -
          xlang=f95 を指定します。

          -mt flag 並列 Fortran オブジェクトと C++ オブジェクトを
          混在させる場合は、リンク行に -mt フラグを指定する必要が
          あります。


     -xlibmil
          -libmil と同義です。


     -xlibmopt
          最適化された数学ルーチンのライブラリを使用します。

          このオプションによって通常は高速なコードが生成されま
          す。結果が若干異なる場合がありますが、このときは普通は
          最終ビットが違っています。このライブラリオプションをコ
          マンド行で指定する順序には意味はありません。

          このオプションを使用する場合は、デフォルトの丸めモード
          の -fround=nearest が前提であり、必須です。


     -xlicinfo
          (廃止) このオプションは、無視され、メッセージも表示され
          ません。


     -xlic_lib=sunperf
          Sun Performance Library とリンクします。

          例 :
             f95 -o pgx -fast pgx.f -xlic_lib=sunperf

          libs はコンマで区切られたライブラリのリストです。

          -l と同様に、コマンド行のすべてのソースファイル名とオブ
          ジェクトファイル名のあとに指定しなければなりません。Sun
          Performance Library とリンクするときは、このオプション
          を指定する必要があります。


     -xlinkopt[=level]
          (SPARC) 再配置可能オブジェクトファイルに対してリンク時
          最適化を実行します。

          ポストオプティマイザが、リンク時にバイナリオブジェクト
          コードに対してパフォーマンス上の高度な最適化を多数、実
          行します。level の値で、実行する最適化のレベルを設定し
          ます。値は 0、1、2 のいずれかです。

          最適化のレベルは次のとおりです。
          0     ポストオプティマイザは無効です (これはデフォルト
                です)。
          1     命令キャッシュカラーリングおよび分岐最適化など、
                制御フロー分析に基づいて、リンク時に最適化しま
                す。
          2     デッドコードの除去とアドレス計算の簡素化など、リ
                ンク時により詳細なデータフロー分析を実行します。

          レベルパラメータを指定せずに -xlinkopt を指定した場合、
          -xlinkopt=1 という意味になります。

          こうした最適化はオブジェクトバイナリコードを分析してリ
          ンク時に実行されます。このオブジェクトファイルは書き直
          されませんが、結果として出力される実行可能コードは元の
          オブジェクトコードとは異なる場合があります。
          このオプションはプログラム全体をコンパイルするときに、
          プロファイルのフィードバックとともに使用すると最も効果
          的です。

          ステップを分けてコンパイルする場合には、 -xlinkopt をコ
          ンパイルとリンク、双方のステップに指定する必要がありま
          す。

            % f95 -c -xlinkopt a.f95 b.f95
            % f95 -o myprog -xlinkopt=2 a.o b.o

          level パラメータはコンパイラがリンクする際だけに使われ
          ることに注意してください。上記の例では、オブジェクトバ
          イナリは暗黙のレベルである 1 でコンパイルされています
          が、ポスト最適化レベルは 2 となっています。

          -xlinkopt を有効に使用できるようにするには、必ずしもす
          べてではありませんが、少なくともプログラム内の一部の
          ルーチンは、このオプションを使用してリンクする必要があ
          ります。それでも、 -xlinkopt 以外を使ってコンパイルされ
          たオブジェクトバイナリに対しても、一部の限定された最適
          化は実行されます。

          -xlinkopt はコンパイラコマンド行に指定された静的ライブ
          ラリからのコードを最適化しますが、コマンド行に指定され
          た共用 (動的) ライブラリから取り込んだコードはスキップ
          して最適化しません。また、共用ライブラリ ( -G でコンパ
          イル) を構築するときに -xlinkopt を使用することも可能で
          す。

          リンク時ポストオプティマイザーは、実行時プロファイルの
          フィードバックとともに使用されるともっとも効果的です。
          プロファイリングによって、もっとも使用されている、ある
          いはもっとも使用されていないコード部分が明らかになり、
          オプティマイザに対してそれに従って最適化するよう指示が
          出されます。このことは、リンク時に行なわれる最適なコー
          ド配置によって命令キャッシュミスが削減できる大きなアプ
          リケーションでは、とくに重要です。こうしたコンパイルは
          通常、次のようにして行ないます。

          % f95 -o progt -xO5 -xprofile=collect:prog file.f95
          % progt
          % f95 -o prog -xO5 -xprofile=use:prog -xlinkopt file.95

          プロファイルフィードバックの使用法についての詳細は、 -
          xprofile を参照してください。

          このオプションを指定してコンパイルすると、リンク時間が
          若干長くなることにご注意ください。オブジェクトファイル
          のサイズも大きくなりますが、実行可能ファイルのサイズは
          変わりません。 -xlinkopt と -g を指定してコンパイルする
          と、デバッグ情報も含まれるため、実行可能ファイルのサイ
          ズは大きくなります。


     -xloopinfo
          -loopinfo と同義です。


     -xmaxopt[=n]
          最適化プラグマを有効にし、最大の最適化レベルを設定しま
          す。

          C$PRAGMA SUN OPT=m 指令によって指定される最適化レベルを
          nに制限します。-xmaxopt フラグ上の n を超えるレベル m
          を指定する指令が出現する場合、コンパイラは n を使用しま
          す。

          値 n は、 -O 最適化レベルフラグの値 1 〜 5 に対応しま
          す。n の値は、ほかのオプションによって指定される最大の
          最適化レベルの値以上でなければなりません。次に適切な例
          を示します。

             f95 ... -O3 -xmaxopt=4

          フラグ  -xmaxopt だけが指定されると、デフォルトの
          -xmaxopt=5 が使用されます。


     -xmemalign[=ab]
          (SPARC) 最大のメモリー引き継ぎ整列と、不正に整列した
          データアクセスの動作を指定します。

          コンパイル時に整列を決定できるメモリーアクセスの場合、
          コンパイラはデータのその整列に対して適切なロード/ストア
          命令シーケンスを生成します。

          コンパイル時に整列を決定できないメモリーアクセスの場
          合、コンパイラは必要な読み込み / 格納シーケンスを生成す
          るために整列を想定しなければなりません。

          -xmemalign フラグを使用すると、このような決定不可能な状
          況において、コンパイラがデータの最大のメモリー配列を想
          定するように指定できます。このフラグは、不正に整列した
          メモリーアクセスが発生する場合に実行時に追跡されるエ
          ラー動作も指定します。

          値:

          値を指定する場合は、2 つの部分、数値で指定される整列値
          a と英字で指定される動作フラグ b を指定する必要がありま
          す。

          整列の値 a には次の値を指定できます:
          1     最大 1 バイトの整列を想定します。
          2     最大 2 バイトの整列を想定します。
          4     最大 4 バイトの整列を想定します。
          8     最大 8 バイトの整列を想定します。
          16    最大 16 バイトの整列を想定します。

          動作の値 b には次の値を指定できます:

          i     アクセスを解釈し、実行を継続します。
          s     シグナル SIGBUS を発生させます。
          f     SPARC 64ビットプラットフォームの場合は、4 バイト
                以下の整列に対してシグナル SIGBUS を発生させ、そ
                れ以外ではアクセスを解釈して実行を継続します。そ
                れ以外の -xarch 値の場合、 f フラグは i と同等で
                す。

          デフォルト:

          -xmemalign フラグが出現しない場合に適用される最初のデ
          フォルトは次のとおりです:

             32 ビット SPARC プラットフォームの場合は
             -xmemalign=8i
             C および C++ の 64 ビットプラットフォームの場合は
             -xmemalign=8s
             Fortran の 64 ビットプラットフォームの場合は
             -xmemalign=8f

          値が指定されていない -xmemalign が出現する場合に適用さ
          れる 2 番目のデフォルトは次のとおりです。

             すべてのプラットフォームとも -xmemalign=1i

          -xmemalign
           そのものは、特定のデータ整列を強制的に行わせるわけでは
          ないことに注意してください。 -dalign または -
          aligncommon を参照してください。



     -xmodel=[a]
          (x86) Solaris x64 プラットフォームでの共有オブジェクト
          のデータアドレスモデルを指定します。

          -xmodel オプションを使用すると、Solaris x64 プラット
          フォーム向けの 64 ビット共有オブジェクトを作成できま
          す。このオプションは、そうしたオブジェクトのコンパイル
          にのみ使用してください。

          このオプションは、64 ビット対応の x64 プロセッサで -m64
          も指定されている場合にのみ有効です。

          a には、次のいずれかを指定します。

          small
               実行するコードの仮想アドレスがリンク時に判明してい
               て、すべてのシンボルが、0 〜 2^31 - 2^24 - 1 の範
               囲の仮想アドレスに配置されることが判明している
               small モデル用のコードを生成します。

          kernel
               すべてのシンボルを 2^64 - 2^31 〜 2^64 - 2^24 の範
               囲に配置すると定義されている kernel モデル用のコー
               ドを生成します。

          medium
               データセクションへのシンボリック参照の範囲に関する
               条件のない medium モデル用のコードを生成します。テ
               キストセクションは、small コードモデルと同じサイズ
               およびアドレスの制限を受けます。大量の静的データが
               あるアプリケーションのコンパイルで -m64 を使用する
               ときは、-xmodel=medium が必要になることがありま
               す。

          -xmodel が指定されていない場合は、-xmodel=small と見な
          されます。引数なしで -xmodel を指定すると、エラーになり
          ます。

          アクセスするオブジェクトが範囲内にあることが保証される
          限り、必ずしも、すべてのルーチンのコンパイルでこのオプ
          ションを使用する必要はありません。

          必ずしもすべての Linux プラットフォームで、medium モデ
          ルがサポートされるわけではありません。

     -xnolib
          -nolib と同義です。


     -xnolibmil
          -nolibmil と同義です。


     -xnolibmopt
          -xlibmopt を取り消します。

          -fast と併用すると、最適化した数学ライブラリとのリンク
          を取り消します。


     -xO[n]
          -O[n] と同義です。


     -xopenmp[={parallel|noopt|none}]
          Fortran 95 OpenMP version 2.5 指令による明示的な並列化
          を有効にします。

          このフラグは、次のサブオブションキーワードを受け付けま
          す。

          parallel
               OpenMP プラグマの検出を有効にします。
               -xopenmp=parallel の最低最適化レベルは -xO3 です。
               最適化レベルがこれより低い場合、コンパイラは -xO3
               に変更し、警告を発行します。

          noopt
               最適化レベルを上げることなく OpenMP プラグマの検出
               を有効にします。

               コンパイルで最適化レベルと -xopenmp=noopt を指定す
               る場合、最適化レベルは -xO3 以上にします。-xO3 以
               上を指定しないと、コンパイルエラーが発行されます。

               -xopenmp=noopt を指定して最適化レベルを指定しな
               かった場合は、OpenMP プラグマが認識され、それに
               従ってプログラムが並列化されますが、最適化は行われ
               ません。

          none
               OpenMP プラグマの検出を無効にします。最適化レベル
               は変更されず、OpenMP 関係のプリプロセッサ文字列は
               定義されません。(これが、-xopenmp が指定されなかっ
               た場合のデフォルトの動作です。)

          サブオプションキーワードのない -xopenmp だけの指定は -
          xopenmp=parallel と同等です。このデフォルトは、今後のリ
          リースで変更される可能性があります。-xopenmp とともに最
          適化レベルを明示的に指定することによって警告メッセージ
          を回避できます。

          サブオブションの parallel 、または noopt は、 _OPENMP
          プリプロセッサ文字列を 200525 と定義します。

          サブオブションの parallel および noopt は、 -stackvar
          を自動的に呼び出します。

          dbx を使用して OpenMP プログラムをデバッグする場合は、
          コンパイル時に
                -g -xopenmp=noopt
          を指定し、並列領域内にブレークポイントを設定して、変数
          の内容を表示できるようにしてください。

          マルチスレッド環境で並列化プログラムを実行する場合は、
          実行前に OMP_NUM_THREADS 環境変数を設定してください。こ
          の変数は、プログラムが作成可能な最大スレッド数を実行時
          システムに指示します。デフォルトは 1 です。一般に、
          OMP_NUM_THREADS には、実行中のシステムで使用可能な仮想
          プロセッサ数を設定します。このプロセッサ数は、Solaris
          の psrinfo(1) コマンドを使用して確認できます。

          入れ子並列を有効にするには、 OMP_NESTED 環境変数を TRUE
          に設定します。デフォルトでは、入れ子並列は無効です。詳
          細は、 Sun Studio OpenMP API の入れ
          子並列に関する章を参照してください。

          コンパイルとリンクを別々に実行する場合は、リンク時にも
          -xopenmp を含めてください。これは、動的ライブラリ (.so)
          のコンパイル時に特に重要です。OpenMP 指令を含むライブラ
          リのコンパイルと、それらライブラリを参照するプログラム
          のコンパイルには、同じリリースのコンパイラを使用してく
          ださい。

          最高のパフォーマンスを機能を得るには、必ず、OpenMP 実行
          時ライブラリ (libmtsk.so) の最新のパッチを実行中のシス
          テムにインストールしてください。

          Fortran 95 OpenMP については、 Sun Studio OpenMP API
          を参照してください。


          -xpad
               -pad と同義です。


          -xpagesize=n
               スタックおよびヒープの優先ページサイズを設定しま
               す。

               The n の値は次のいずれかでなければなりません。

               SPARC の場合:
                8K 64K 512K 4M 32M 256M 2G 16G または default。

               x86 の場合:
                4K 2M 4M

               対象となるプラットフォーム上の Solaris OS 環境で有
               効なページサイズを指定する必要があります。
               getpagesize(3C) を使用するとそのサイズがわかりま
               す。有効なページサイズを指定しなかった場合、その要
               求は実行時に無視され、何もメッセージは出されます。
               Solaris OS 環境ではページサイズ要求が尊重されるこ
               とを保証していません。

               pmap(1) または meminfo(2) を使って、対象となるプ
               ラットフォームのページサイズを判断することができま
               す。

               -xpagesize=default を指定すると、このフラグは無視
               されます。 -xpagesize に引数を指定しない場合、
               -xpagesize=default と同じことになります。

               このオプションは次のためのマクロです。
                   -xpagesize_heap=n -xpagesize_stack=n

               この 2 つのオプションは、 -xpagesize と同じ引数を
               受け付けます。 -xpagesize=n と指定して上記の 2 つ
               のオプションに同じ値を設定することができ、あるいは
               これらを別々に指定して異なる値に設定することも可能
               です。

               このフラグを使ってコンパイルすることは、同じオプ
               ションを使って LD_PRELOAD 環境変数を mpss.so.1 に
               設定すること、またはプログラム実行前に同じオプショ
               ンを使って Solaris OS 9 コマンドの ppgsz(1) 実行す
               るのと同様の効果があります。詳細は Solaris OS 環境
               に関するマニュアルページを参照してください。


          -xpagesize_heap=n
               ヒープのためのメモリーのページサイズを設定します。

               n は、 -xpagesize で説明しているものと同じです。対
               象となるプラットフォームの Solaris OS 環境で有効な
               ページサイズを指定しなければなりません。この値は
               getpagesizes(3C) で確認できます。有効なページサイ
               ズを指定しなかった場合、その要求は実行時に無視さ
               れ、何もメッセージは出力されません。

               この機能は Solaris OS 7 および 8 環境では使用でき
               ません。

               詳細については -xpagesize を参照してください。


          -xpagesize_stack=n
               (SPARC) スタックためのメモリのページサイズを設定し
               ます。

               n は、 -xpagesize で説明しているものと同じです。対
               象となるプラットフォームの Solaris OS 環境で有効な
               ページサイズを指定しなければなりません。この値は
               getpagesizes(3C) で確認できます。有効なページサイ
               ズを指定しなかった場合、その要求は実行時に無視さ
               れ、何もメッセージは出力されません。

               この機能は Solaris OS 7 および 8 環境では使用でき
               ません。
               詳細は -xpagesize を参照してください。


          -xparallel
               -parallel と同義です。

          -xpentium
               (x86) -xtarget=pentium と同じ


          -xpg -pg と同義です。


          -xpp={fpp|cpp}
               .F .F95 .F03 ファイルに使用するソースファイルプリ
               プロセッサを選択します。

               デフォルトは fpp です。Fortran には fpp の使用が適
               しています。旧バージョンのコンパイラでは、標準の C
               言語プリプロセッサ cpp が使用されていました。 cpp
               を選択するには、 -xpp=cpp を指定します。


          -xprefetch[=a[,a]]
               先読み命令 (プリフェッチ) をサポートするアーキテク
               チャー上で先読み命令を使用および調整できるようにし
               ます。

               a は、次のいずれかの値でなくてはなりません。


               値               意味

               auto           先読み命令を自動生成できるようにし
                              ます。


               no%auto        先読み命令を自動生成できないように
                              します。


               explicit       明示的な先読みマクロを有効にしま
                              す。


               no%explicit    は、明示的な先読みマクロを無効にし
                              ます。


               latx:factor    (SPARC) コンパイラによるロード命令
                              とストア命令に対する先読み命令の、
                              「潜在期間」の仮定値を、指定された
                              因数 (factor) で調整します。factor
                              は、正の浮動小数点または整数でなけ
                              ればなりません。

                              先読み命令の「潜在期間」とは、先読
                              み命令が実行された時点から、先読み
                              命令の対象であるデータが実際に
                              キャッシュに入れられる時点までの、
                              ハードウェアに起因する時間のずれを
                              指します。

                              コンパイラは、先読み命令の挿入位置
                              と、先読みされたデータを使用する
                              ロードまたはストアの命令文の位置が
                              どれだけ離れているかを確認して、先
                              読みの潜在期間を仮定します。 注意 -
                              仮定される先読みの潜在期間は、ロー
                              ド命令とストア命令では異なる場合が
                              あります。

                              コンパイラは、広範囲に渡るマシンお
                              よびアプリケーションに対して適切に
                              なるように、先読みのメカニズムを調
                              整しています。このため現在の機能
                              が、すべてのマシンまたはアプリケー
                              ションで最良であるとは限りません。
                              メモリーを大量に消費するアプリケー
                              ション、特に大規模な複数のプロセッ
                              サで実行するアプリケーションの場合
                              は、先読みの潜在期間を示す値を増加
                              させた方が、パフォーマンスが向上す
                              る可能性があります。先読みの潜在期
                              間を増加させるには、 factor の値を
                              1 より大きい値にします。 0.5 から
                              2.0 の間の値にすると、ほぼ確実に最
                              高のパフォーマンスが得られます。

                              完全に外部のキャッシュに存在する
                              データベースを扱うアプリケーション
                              の場合は、先読みの潜在期間を減少さ
                              せた方が、パフォーマンスが向上する
                              可能性があります。先読みの潜在期間
                              を減少させるには、 factor の値を 1
                              より小さい値にします。

                              latx:factor サブオプションを使用す
                              る場合は、まず factor の値を 1.0 に
                              近い値に設定して、対象のアプリケー
                              ションに対するパフォーマンスを調べ
                              ます。そして徐々にその値を変化させ
                              ていき、パフォーマンスの変化を確認
                              します。最良のパフォーマンスが得ら
                              れるまでテストを繰り返し、適切な
                              factor の値を特定します。 factor の
                              値を細かく変更した場合は、しばらく
                              の間パフォーマンスの変化はまったく
                              見られませんが、ある値で突然高くな
                              ります。続けて値を増加または減少さ
                              せていくと、パフォーマンスは再び下
                              がります。

               yes            -xprefetch=auto,explicit と同じで
                              す。ほかのサブオブジェクトは指定で
                              きません。

               no             -xprefetch=no%auto,no%explicit と同
                              じです。ほかのサブオブジェクトは指
                              定できません。


               -xprefetch 、 -xprefetch=auto 、または
               -xprefetch=yes と指定した場合、コンパイラは、生成
               するコード中に先読み命令を必要に応じて挿入します。
               これにより、先読み命令 (プリフェッチ) をサポートす
               るアーキテクチャー上でパフォーマンスが向上します。

               デフォルト:

               -xprefetch が指定されていない場合は、
               -xprefetch=auto,explicit とみなされます。

               -xprefetch だけが指定されている場合は、
               -xprefetch=auto,explicit
                とみなされます。

               -xprefetch または -xprefetch=yes など、自動先読み
               が有効だが遅延要素が指定されない場合は、 latx:1.0
               とみなされます。

               相互の関連性:

               -xprefetch=explicit が指定されると、コンパイラは次
               の指令を認識します:
                  C$PRAGMA SUN_PREFETCH_READ_ONCE (address)
                  C$PRAGMA SUN_PREFETCH_READ_MANY (address)
                  C$PRAGMA SUN_PREFETCH_WRITE_ONCE (address)
                  C$PRAGMA SUN_PREFETCH_WRITE_MANY (address)

               -xchip 設定は、「潜在期間」の仮定値の決定と、それ
               による latx:factor 設定の結果に影響します。

               latx:factor サブオプションは、自動先読みが可能な場
               合のみ、有効です。つまり、 auto と共に使用しない限
               り、 latx:factor は無視されます。
               警告:

               明示的な先読みは、測定方法がサポートする特別な環境
               だけで使用してください。

               コンパイラは、広範囲に渡るマシンおよびアプリケー
               ションで、パフォーマンスを最適にするように先読みメ
               カニズムを調整するので、パフォーマンステストにより
               明らかに利点があるとわかった場合のみ、 latx:factor
               サブオプションを使用してください。先読み命令の「潜
               在期間」の仮定値は、リリース間で異なる可能性があり
               ます。そのため、別のリリースに切り替えるたびに「潜
               在期間」がパフォーマンスに与える影響をテストし直す
               ことを強くお勧めします。

          -xprefetch_auto_type=[no%]indirect_array_access
               間接アクセスされるデータ配列に対する間接先読み命令
               を生成します。

               [no%]indirect_array_access
               直接メモリーアクセス用の先読み命令の生成と同じよう
               にして、 -xprefetch_level=[1|2|3] オプションの指示
               するループに対して間接先読みを生成させるかどうかを
               指定します。

               -xprefetch_auto_type に値が指定されなかった場合、
               コンパイラは
               -xprefetch_auto_type=no%indirect_array_access に設
               定します。

               -xprefetch=auto および最適化レベル -xO3 以上が必要
               です。

               メモリー使用に関する別名解析のあいまいさを排除でき
               る可能性が高まるため、 -xdepend などのオプション
               が、間接先読み命令の候補の計算の積極性、つまりは、
               自動的な間接先読み命令の挿入の積極性に影響すること
               があります。


          -xprefetch_level=n
               prefetch 命令の挿入の程度を制御します。

               このオプションは、-xprefetch=auto を使用して、最適
               化レベル 3 以上 (-xO3) で、prefetch をサポートする
               プラットフォームでコンパイルする場合にのみ有効で
               す。

               n は 1、2、3 のいずれかです。

               -xprefetch=auto でのデフォルトはレベル 2 です。

               prefetch レベル 2 では、レベル 1 を超える prefetch
               命令の追加生成が可能です。prefetch レベル 3 では、
               レベル 2 を超える prefetch 命令の追加生成が可能で
               す。

               古い SPARC および x86 プラットフォームでは、先読み
               レベル 2 および 3 が有効でないことがあります。


          -xprofile=p
               実行時プロファイルデータを収集するか、これらのデー
               タで最適化を行います。

               実行中の実行頻度データを収集および保存します。そし
               て、収集したデータをその後の実行で使用することによ
               り、パフォーマンスを上げます。

               p は collect[:nm]、use[:nm]、または tcov でなけれ
               ばなりません。

               注: Linux システムでの共有ライブラリの構築では、
               -xprofile=collect および -xprofile=tcov を使用しな
               いでください。

               コンパイルとリンクを別の段階で行う場合、リンク時に
               はコンパイル時と同じ -xprofile オプションを使用し
               なければなりません。

               collect[:nm]
                        実行頻度データを収集および保存します。あ
                        とで -xprofile=use を指定すると、オプティ
                        マイザがこのデータを使用できます。コンパ
                        イラは、文の実行頻度を測定するコードを生
                        成します。

                        nm の名前は省略可能です。省略された場合
                        は、実行可能なバイナリの名前が使用されま
                        す。(-o name が指定されなかった場合は、
                        a.out が使用されます。)

                        実行時、 -xprofile=collect:nm でコンパイ
                        ルされたプログラムは、サブディレクトリ
                        nm.profile を作成し、実行時フィードバック
                        情報を保持します。データはこのサブディレ
                        クトリにあるファイル feedback に書き込ま
                        れます。プログラムを何回も実行する場合、
                        実行頻度データは feedback ファイルに累積
                        されます。つまり、以前の実行の出力は失わ
                        れません。

                        プログラムの実行時プロファイルデータの記
                        述を制御するには、環境変数 SUN_PROFDATA
                        および SUN_PROFDATA_DIR を設定してくださ
                        い。設定された場合、プログラムは
                        nm.profile/feedback の代わりにカレント
                        ディレクトリの
                        $SUN_PROFDATA_DIR/$SUN_PROFDATA に書き込
                        みます。

                        プロファイル収集はマルチスレッドに対して
                        安全です。つまり、自身のマルチタスク処理(
                        -mt ) を行なうプログラムをプロファイリン
                        グした場合、正しい結果が生成されます。注:

               use[:nm] 実行頻度データを使用し、計画的に最適化し
                        ます。

                        collect:nm のとき同様、nm は省略可能です
                        が、省略された場合は、-o name が指定され
                        ていても、a.out が使用されます。コンパイ
                        ラは nm.profile/feedback または
                        a.out.profile/feedback (nm が指定されてい
                        ない場合) を検索します。次に例を示しま
                        す。

                         f95 -xprofile=collect -o myexe prog.f
                         f95 -xprofile=use:myexe -xO5 -o myexe prog.f

                        プログラムは、実行頻度データを元に最適化
                        されます。このデータは、
                        -xprofile=collect 付きでコンパイルしたプ
                        ログラムが前回実行された際に作成された
                        フィードバックファイルに生成され、保存さ
                        れます。

                        ソースファイルおよびその他のコンパイルオ
                        プションは、feedback ファイルを生成する実
                        行可能ファイルのコンパイルで使用したのと
                        完全に同じものを指定してください。
                        -xprofile=collect:nm を使用してコンパイル
                        した場合、同じプログラム名 nm を最適化コ
                        ンパイルでも指定しなければなりません (
                        -xprofile=use:nm )。

                        collect 段階と use 段階との間のコンパイル
                        の高速化については -xprofile_ircache も参
                        照してください。

               tcov     新しいスタイルの tcov(1) を使用する基本的
                        なブロックカバレージ解析。

                        コードの使用法は -a と似ていますが、ソー
                        スファイルごとに .d ファイルは生成されま
                        せん。その代わりに、単一のファイルが生成
                        されます。このファイルの名前は、最終実行
                        可能ファイルの名前に基づきます。たとえ
                        ば、 stuff が実行可能ファイルである場合
                        は、 stuff.profile/tcovd がデータファイル
                        です。

                        tcov を実行するときは、 -x オプションを渡
                        し、新しいスタイルのデータを使用するよう
                        に指示しなければなりません。そうしない
                        と、 tcov はデフォルトで古い .d ファイル
                        (もしあれば) をデータとして使用し、予想外
                        の結果を生成します。

                        -a とは異なり、 TCOVDIR 環境変数はコンパ
                        イル時には効果がありません。しかし、その
                        値はプログラムの実行時に使用され、どこに
                        プロファイルのサブディレクトリを作成する
                        のかを指定します。

                        注 -
                        -O4 または -inline を使用したために副プロ
                        グラムのインライン化が存在する場合、 tcov
                        が生成するレポートは不正確である可能性が
                        あります。インライン化されたルーチンへの
                        呼び出しの範囲は記録されません。

          -xprofile_ircache[=path]
               (SPARC) プロファイルの収集段階と使用段階とで、コン
               パイルデータを保存、再利用します。

               -xprofile=collect|use とともに指定すると、プロファ
               イルの collect 段階に保存されたコンパイルデータが
               use 段階で再利用され、コンパイル時間が改善されま
               す。

               このオプションの指定によって、path がキャッシュ化
               されたファイルの保存場所を上書きします。デフォルト
               では、このファイルはオブジェクトファイルと同じディ
               レクトリに保存されます。パスを指定すると、収集
               フェーズと使用フェーズが別のディレクトリで実行され
               る場合に便利です。

               コマンドは一般的に次のような順で指定します。

                 f95 -xO5 -xprofile=collect -xprofile_ircache t1.c t2.c
                 a.out    // run collects feedback data
                 f95 -xO5 -xprofile=use -xprofile_ircache t1.c t2.c

               大きなプログラムの場合、中間データがこのようにして
               保存されているので、使用段階でのコンパイル時間が著
               しく向上します。ただし、ディスクスペースを使うの
               で、その必要量が増えます。

          -xprofile_pathmap=collect_prefix:use_prefix
               (SPARC) プロファイルデータファイルのパスマッピング
               を設定します。

               -xprofile_pathmap オプションは -xprofile=use オプ
               ションと使います。

               -xprofile_pathmap は、コンパイラが -xprofile=use
               でコンパイルされたオブジェクトファイルのプロファイ
               ルデータを見つけられず、かつ次の条件に当てはまる場
               合に使います。

                    レクトリ
               o  -xprofile=collect でコンパイルするときに使用し
                  たディ
                  ではない、別のディレクトリに -xprofile=use でコ
                  ンパイルしようとする場合

                    を
               o  オブジェクトファイルがプロファイル中で共通の
                  ベース名
                  使用しているが、ディレクトリを別にして場所に
                  よってベース名を使い分けている場合

               collect-prefix は、-xprofile=collect を指定してオ
               ブジェクトファイルがコンパイルされたディレクトリツ
               リーの UNIX パス名の接頭辞です。

               use-prefix は、-xprofile=use を指定してオブジェク
               トファイルをコンパイルしようとしているディレクトリ
               ツリーの UNIX パス名の接頭辞です。

               -xprofile_pathmap に複数のインスタンスを指定した場
               合、コンパイラその指定の順序でそれらを処理していき
               ます。 -xprofile_pathmap のインスタンスが指定した
               各 use-prefix は、マッチする use-prefix が特定され
               るか、最後に指定した use-prefix がオブジェクトファ
               イルのパス名と一致しないことがわかるまで、オブジェ
               クトファイルのパス名と比較されます。


          -xrecursive
               RECURSIVE 属性のないルーチンがそれ自体を再帰的に呼
               び出すことを許可します。

               それ自体を再帰的に呼び出すことができるのは、通常、
               RECURSIVE 属性をもつ副プログラムだけです。

               -xrecursive を指定して副プログラムをコンパイルする
               と、属性 RECURSIVE で定義されていなくても副プログ
               ラムはそれ自体を再帰的に呼び出すことができます。た
               だし RECURSIVE 属性と異なり、このフラグは、デフォ
               ルトで局所変数をスタックに割り当てることはできませ
               ん。副プログラムの再帰呼び出しごとに個別の局所変数
               値を割り当てるには、 -stackvar を指定してコンパイ
               ルを行い、局所変数をスタックに設定します。

               -xrecursive を指定してルーチンをコンパイルすると、
               パフォーマンスが低下する場合があります。

          -xreduction
               -reduction と同義です。


          -xregs=r
               レジスタの使用法を指定します。

               生成されるコードのレジスタの使用法を指定します。

               r は、コンマで区切った 1 つまたは複数の [no%]appl
               、 [no%]float 、 [no%]frameptr のリストです。

               例 :  -xregs=appl,no%float

               機能を無効にするには、その機能の前に [no%] を置き
               ます。

               -xregs の値は、 -xarch の値に固有です。

               appl  (SPARC のみ)
                        一時レジスタとしてアプリケーションレジス
                        タを使用するコードを、コンパイラが生成す
                        るのを許可します。レジスタは、32 ビットプ
                        ラットフォームの g2、 g3、 g4 と 64 ビッ
                        トプラットフォームの g2、 g3 です。

               float  (SPARC のみ)
                        整数値のための一時レジスタとして浮動小数
                        点レジスタを使用するコードをコンパイラが
                        生成するのを許可します。このオプションは
                        浮動小数点値のために浮動小数点レジスタを
                        使用することにはまったく影響ありません。

               frameptr  (x86 のみ)
                        フレームポインタレジスタ  (x86 32 ビット
                        プラットフォームの場合は %ebp、64 ビット
                        プラットフォームの場合は %rbp) を未割り当
                        ての呼び出し先保存レジスタとして使用する
                        ことを許可します。

                        未割り当ての呼び出し先保存レジスタとして
                        フレームポインタレジスタを使用すると、プ
                        ログラムの実行時パフォーマンスが向上する
                        ことがあります。ただし、スタックを調べ、
                        追跡するために、パフォーマンスアナライザ
                        や dtrace などの一部ツールの能力の低下を
                        招きます。このスタック調査機能は、システ
                        ムパフォーマンスの測定やチューニングの際
                        に重要です。このため、この最適化を使用す
                        ると、グローバルなシステムパフォーマンス
                        を犠牲にしてローカルのプログラムパフォー
                        マンスが向上することがあります。

                        frameptr は、コンパイルで -xpg または -p
                        と併用すると無視されます。

               デフォルトは SPARC の場合は -xregs=appl,float 、
               x86 の場合は -xregs=appl,float,no%frameptr です。

               アプリケーションとリンクする共有ライブラリ用のコー
               ドは、 -xregs=no%appl,float を指定してコンパイルす
               ることを推奨します。少なくとも、リンクするアプリ
               ケーションでのレジスタ処理に問題がないように、共有
               ライブラリがアプリケーションレジスタを使用する方法
               を明示的に指示する必要があります。

               たとえば、大局的な方法で (重要なデータ構造体を示す
               ためにレジスタを使用するなど) レジスタを使用するア
               プリケーションは、ライブラリと確実にリンクするた
               め、-xregs=no%appl なしでコンパイルされたコードを
               含むライブラリがアプリケーションレジスタをどのよう
               に使用するかを正確に認識しておく必要があります。


          -xs オブジェクトファイルなしで dbx によるデバッグができ
              るようにします。

              このオプションは、デバッグ情報すべてを実行可能ファ
              イルにコピーします。dbx パフォーマンスやプログラム
              の実行時パフォーマンスにはほとんど影響を与えません
              が、使用するディスクスペースの量は増えます。

              -xs を使用すると、実行可能ファイルを別のディレクト
              リに移動した場合に、オブジェクト (.o) ファイルを無
              視して dbx を使用できます。このオプションは、 .o オ
              ブジェクトファイルを保持できない場合に使用してくだ
              さい。


          -xsafe=mem
              (SPARC) メモリー保護違反が発生しないことを前提とし
              て、コンパイラを動作させます。

              このオプションは、コンパイラが、SPARC V9 アーキテク
              チャーでフォルト発生を想定しないロード命令を使用す
              ることを許可します。
              警告:

              フォルト発生を想定しないロード命令は、アドレス割り
              当ての失敗やセグメント違反のようなフォルトが発生し
              た場合でも、トラップを発生させません。そのためこの
              オプションは、そのようなフォルトが起こり得ないプロ
              グラムでのみ使用してください。メモリーに基づいたト
              ラップを発生させるプログラムはごく少数なので、この
              オプションはほとんどのプログラムで安全に使用できま
              す。しかし、例外的な状態を処理するために、メモリー
              に基づいたトラップを明示的に使用しているプログラム
              では、このオプションは使用しないでください。

              相互の関連性:

              このオプションは、 -xO5 の最適化レベルで、かつ、次
              のいずれかの値をとる -xarch オプションと一緒に使用
              された場合にのみ有効です。値:  sparc, sparcvis,
              sparcvis2, for both -m32, and -m64.


          -xsb
              -sb と同義です。


          -xsbfast
              -sbfast と同義です。


          -xspace
              コードのサイズを増やしません。

              コードのサイズを増やす最適化を行いません。
              例: ループは展開しません。


          -xtarget=t
              命令セットと最適化用のターゲットシステムを指定しま
              す。

              t は native 、 native64 、 generic 、 generic64 、
              またはシステム名の 1 つでなければなりません。

              -xtarget オプションを使用すると、実システムで発生す
              る -xarch 、 -xchip 、および -xcache の組み合わせを
              簡単に指定できます。 -xtarget の唯一の意味は、その
              展開の中にあります。

              -xtarget の値は、次のとおりです。

              native:  ホストシステムで最良のパフォーマンスを得る
              ことができます。(32 ビットアーキテクチャー) 次のよ
              うに展開されます。
              -m32 -xarch=native -xchip=native -xcache=native

              native64:  これは廃止されています。代わりに
              -xtarget=native -m64 を使用してください。

              generic:  ほとんどの 32 ビットプラットフォームで最
              良のパフォーマンスを得られるように最適化します。こ
              れがデフォルトで、次のように展開されます。
              -m32 -xarch=generic -xchip=generic -xcache=generic

              generic64:  これは廃止されています。代わりに
              -xtarget=generic -m64 を使用してください。

              :  指定したシステムで最良のパ
              フォーマンスを得ることができます。

              有効な SPARC プラットフォーム名は次のとおりです。

              一般的なプラットフォーム名:
                  ultra, ultra2, ultra2i, ultra1/140, ultra1/170,
                  ultra1/200, ultra2/1170, ultra2/1200,
                  ultra2/1300, ultra2/2170, ultra2/2200,
                  ultra2/2300, ultra2e, ultra2i, ultra3,
                  ultra3cu, ultra3i, ultra4, ultra4plus, ultraT1
                  ultraT2, sparc64vi。

                  次のターゲットプラットフォームは -xtarget=ultra
                   と同等です。
                  entr2, entr2/1170, entr2/2170, entr2/1200,
                  entr2/2200, entr3000, entr4000, entr5000,
                  entr6000

              あまり一般的でないプラットフォーム名:
                  sun4/15, sun4/30, sslc, sslx, sslx2, ss4,
                  ss4/85, ss4/110, ss5, ss5/85, ss5/110, ssvyger,
                  ss10, ss10/hs11, ss10/hs12, ss10/hs14, ss10/20,
                  ss10/hs21, ss10/hs22, ss10/30, ss10/40,
                  ss10/41, ss10/50, ss10/51, ss10/61, ss10/71,
                  ss10/402, ss10/412, ss10/512, ss10/514,
                  ss10/612, ss10/712, ss20, ss20/hs11, ss20/hs12,
                  ss20/hs14, ss20/hs21, ss20/hs22, ss20/50,
                  ss20/51, ss20/61, ss20/71, ss20/151, ss20/152,
                  ss20/502, ss20/512, ss20/514, ss20/612,
                  ss20/712, ss600/41, ss600/51, ss600/61,
                  ss600/412, ss600/512, ss600/514, ss600/612,
                  ss1000, sc2000, cs6400, solb6

              UltraSPARC V9 プラットフォームの 64 ビット Solaris
              ソフトウェア向けコンパイルであることは、-m64 オプ
              ションによって指示されます。-xtarget を指定する場合
              は、次のように -m64 も指定してください。
                 -xtarget=ultra2 ... -m64
              この指定がないと、32 ビットメモリーモデルが使用され
              ます。

              x86 システムの場合は、有効なプラットフォーム名は次
              のとおりです。 generic、 native、 pentium、
              pentium_pro、 pentium3、 pentium4、および opteron。

              64 ビット x86 AMD Opteron プラットフォームの 64
              ビット Solaris ソフトウェア向けコンパイルであること
              は、次に示すように -m64 フラグによって指示されま
              す。
                  -xtarget=opteron -m64
              この指定がない場合は、32 ビット x86 向けのコンパイ
              ルに戻ります。

              -xtarget の展開については、『Fortran ユーザーズガイ
              ド』を参照してください。各プラットフォーム名に対し
              て使用される -xarch -xchip -xarch の値が示されてい
              ます。

              このオプションはマクロです。-xtarget の各値は、
              -xarch 、 -xchip 、および -xcache オプションの特定
              の値に展開されます。たとえば、 -xtarget=ultra4 は、
              -xarch=sparcvis -xcache=64/32/4:8192/128/2
              -xchip=ultra4 と同義です。

              実行中のシステムでの -xtarget の展開内容を確認する
              には、次のコマンドを実行します。

              f95 -xtarget=platform_name -dryrun |& grep ###

              例:

               f95 -dryrun -xtarget=ultra4 |& grep ###
              ###     command line files and options (expanded):
              ### -dryrun -xarch=sparcvis -xcache=64/32/4:8192/128/2 -xchip=ultra4

              あるホストプラットフォームの -xtarget が、そのプ
              ラットフォームでコンパイルするときの
              -xtarget=native と同じ -xarch、-xchip、-xcache の設
              定に展開されない場合があります。


          -xtime
              -time と同義です。


          -xtypemap=spec
              デフォルトのデータマッピングを指定します。

              このオプションを使用すると、デフォルトのデータ型に
              対するバイトサイズを柔軟に指定できます。

              文字列 spec の構文は次のとおりです:

              type:bits,type:bits,...

              許可されるデータ型は、 REAL、 DOUBLE、および
              INTEGERです。許可されるデータサイズは、 16、 32、
              64、および 128 です。

              このオプションは、 REAL XYZ のように、明示的なバイ
              トサイズが指定されることなく宣言されるすべての変数
              に適用されます。

              許可される組み合わせを次に示します。

                real:32
                real:64
                double:64
                double:128
                integer:16
                integer:32
                integer:64

              次に、便利なマッピングを示します。

                 -xtypemap=real:64,double:64,integer:64

              これは、REAL と DOUBLE を 8 バイトにマッピングしま
              すが、DOUBLE PRECISION は QUAD PRECISION に拡張しま
              せん。

              INTEGER と LOGICAL は同様に処理されること、および、
              COMPLEX は 2 つの REAL データ要素としてマッピングさ
              れることに注意してください。また、DOUBLE COMPLEX は
              DOUBLE がマッピングされるように処理されます。詳細
              は、 Fortran を参照してくださ
              い。



          -xunroll=n
              -unroll=n と同義です。


          -xvector[=[[no%]lib,[no%]simd, %none] ]
              ベクトルライブラリ関数への呼び出しの自動生成を有効
              にします。

              -xvector を指定してコンパイルする場合は、デフォルト
              の丸めモード -fround=nearest を使用する必要がありま
              すす。
              -xvector=lib により、コンパイラは、ループ内の数学ラ
              イブラリへの呼び出しを、同等のベクトル数学ルーチン
              への単一の呼び出しに変換します (変換が可能な場合)。
              ループカウントが多いループのパフォーマンスが向上す
              ることがあります。-xvector=no%lib は、この機能を無
              効にします。

              -xvector=simd により、ネイティブの x86 SSE SIMD 命
              令を使用し、特定のループのパフォーマンス向上を図る
              ことができます。コンパイラは、ターゲットアーキテク
              チャーが SIMD 命令をサポートしている場合にのみ、こ
              のスイッチを受け付けることができます。たとえば、
              -xarch=sse2 -m64 または -xarch=generic64 を指定する
              必要があります。 -xvector=simd とともに、 -xdepend
              ばかりでなく、最適化レベル -xO3 以上を指定する必要
              もあります。-xvector=no%simd は、この機能を無効にし
              ます。

              -xvector=simd 単独ではなく、 -xvector=simd および
              -fsimple=2 の両方を使用すると、パフォーマンスが向上
              します。ただし、 -fsimple=2 では、浮動小数点演算の
              順序変更が可能になるため、浮動小数点の演算結果が少
              し異なることがあります。

              デフォルトは -xvector=%none です。 -xvector1 とだけ
              指定して、フラグを指定しないと、 -xvector=lib とみ
              なされます。

              コンパイラは、ロードステップで libmvec ライブラリを
              取り込みます。コンパイル時に -xvector=lib を指定し
              た場合は、リンク時にも指定する必要があります。

              このオプションは、それ以前の同じオプションの指定に
              優先するため、 -xvector=lib のあとに -xvector=%none
              を指定すると、 -xvector=lib は取り消されます。


          -ztext
              再配置が残った状態では、ライブラリを作成しません。

              -ztext は、主に、生成されるライブラリが純粋なテキス
              トであるかどうか評価するために使用します。これは、
              命令がすべて位置独立コードであるかを確認することで
              す。したがって、通常はこのオプションは、 -G と -pic
              と併用します。

              -ztext を使用すると、テキストセグメントに不完全な再
              配置を検出した場合、 ld はライブラリを構築しませ
              ん。データセグメントに不完全な再配置を検出した場
              合、 ld は一般的にライブラリを構築します。つまり、
              データセグメントは書き込み可能です。

              -ztext を使用しないと、再配置の状態にかかわらず、
              ld はライブラリを構築します。

              典型的な使用法は、 -pic を指定してオブジェクトファ
              イルを作成したかどうかが判明しない場合に、ソース
              ファイルとオブジェクトファイルの両方からライブラリ
              を作成することです。



          上記以外の引数は、リンカーのオプション引数、 f95 互換オ
          ブジェクトプログラムの名前 (通常は事前に作成されたオブ
          ジェクト)、または f95 と互換性のあるルーチンのライブラ
          リとみなされます。これらのプログラムを指定されたコンパ
          イルの結果とともに (指定された順で) リンクして実行可能
          プログラムを作成し、 -o オプションで指定されたファイル
          ( -o オプションが指定されていない場合は a.out ) に出力
          します。


ファイルの接尾辞

     コンパイラのコマンド行には次の接尾辞を持つファイルを指定でき
     ます。接尾辞は通常、ファイルの型を識別し、コンパイラのファイ
     ル処理方法を決定します。

     .f .for
          固定形式の Fortran ソースファイル。

     .f90 .f95 .f03
          自由形式の Fortran 90、Fortran 95、または Fortran 2003
          ソースファイル。

     .F   プリプロセッサ指令を含む固定形式の Fortran ソース。これ
          らのファイルは、コンパイルの前に fpp(1) により事前処理
          されます (-xpp= オプションも参照)。

     .F90 .F95
          プリプロセッサ指令を含む自由形式の Fortran 95 ソース
          ファイル。これらのファイルは、コンパイルの前に fpp(1)
          により事前処理されます (-xpp= オプションも参照)。

     .s   アセンブラソースファイル。

     .il  インラインアセンブラ展開コードテンプレートファイル。コ
          ンパイラはこのファイルを使用して、選択したルーチンの呼
          び出しをインラインコードに展開します。インラインテンプ
          レートファイルの詳細は、inline(1) マニュアルページと
          -inline オプションフラグを参照してください。

     .o   リンカーに渡されるオブジェクトファイル。

     .so  リンカーに渡される共用オブジェクトファイルまたはライブ
          ラリ。

     .a   リンカーに渡される、すなわち MODULE サププログラムが検
          索されるライブラリファイル (-M オプションフラグを参照
          )。

     .mod 事前コンパイルされた MODULE プログラムユニットを含む
          ファイル。コンパイラによって生成されます。-M オプション
          を参照してください。


指令

     一般的な指令:  f95 は、 C$PRAGMA 、 !$PRAGMA 、または
     *$PRAGMA で始まる一般的なコンパイラ指令行を許可します。大文
     字と小文字は関係ありません。次に例を示します。

       C$PRAGMA C(list_of_subprogram_names)
       C$PRAGMA SUN UNROLL n
       C$PRAGMA WEAK function_name
       C$PRAGMA SUN OPT=n
       C$PRAGMA PIPELOOP=n
       C$PRAGMA SPARC_PREFETCH_READ_ONCE (name)
       C$PRAGMA SPARC_PREFETCH_READ_MANY (name)
       C$PRAGMA SPARC_PREFETCH_WRITE_ONCE (name)
       C$PRAGMA SPARC_PREFETCH_WRITE_MANY (name)
       C$PRAGMA SUN_PREFETCH_READ_ONCE (name)
       C$PRAGMA SUN_PREFETCH_READ_MANY (name)
       C$PRAGMA SUN_PREFETCH_WRITE_ONCE (name)
       C$PRAGMA SUN_PREFETCH_WRITE_MANY (name)
       !$PRAGMA IGNORE_TKR list
       C$PRAGMA ASSUME (expression [, probability])

     :  f95 は、OpenMP API 並列化指令を認識します。
     OpenMP は、すべての Sun Studio コンパイラの明示的並列化のた
     めの推奨モデルです。


     このリリースでは、f95 コンパイラはバージョン 2.5 の OpenMP
     Fortran 95 API を受け入れます。指令標識は !OMP です。

     Sun Studio OpenMP 実装の詳細については、OpenMP API 
     を参照してください。

     f95 (SPARC のみ) 従来の Sun および Cray 形式の並列化指令も認
     識します。ただし、これら指令は廃止されていて、すでにサポート
     されていません。(x86 では、Sun/Cray 並列化指令は認識されませ
     ん。) OpenMP への Sun/Cray 指令の変換の詳細は、『OpenMP API
     ユーザーズガイド』を参照してください。Sun 形式のコンパイラ指
     令行は C$PAR か !$PAR 、または *$PAR のいずれかで開始しま
     す。大文字または小文字のどちらでも使用できます。

       C$PAR DOALL
       C$PAR DOSERIAL
       C$PAR DOSERIAL*
       C$PAR TASKCOMMON

     Cray スタイルの並列化指令も認識されます。指令標識は CMIC$ ま
     たは !MIC$ です。

       CMIC$ DOALL
       CMIC$ TASKCOMMON
       CMIC$ DOSERIAL
       CMIC$ DOSERIAL*

     詳細やバリエーションについては、Fortran 
     を参照してください。

     従来の Sun/Cray 並列化を OpenMP API 指令に変換するガイドライ
     ンについては、OpenMP API も参照してくだ
     さい。



環境

     次に示すパスは /opt/SUNWspro/ への Sun Studio コンパイラの標
     準インストールを仮定しています。コンパイラがその他のディレク
     トリパスへカスタマイズされてインストールされている場合は、シ
     ステム管理者にお問い合わせください。

  PATH
     f95 を使用するには、検索パスの先頭に次のディレクトリを追加し
     てください。

     /opt/SUNWspro/bin/


  MANPATH
     f95 のマニュアルページを使用するには、 MANPATH 環境変数に次
     のディレクトリを追加してください。

     /opt/SUNWspro/man/


  MODDIR
     コンパイラが .mod モジュールファイルを書き込むディレクトリへ
     のパスを指定します。MODDIR 環境変数の設定に優先する -moddir
     も参照してください。


  LD_LIBRARY_PATH
     通常の場合、 LD_LIBRARY_PATH を設定する必要はありません。こ
     の環境変数の設定がないとプログラムが動作しない場合には、イン
     ストールに問題があるか、あるいは、実行プログラムが正しく作成
     されていない場合があります。

     LD_LIBRARY_PATH 環境変数は次のように設定します。

     /opt/SUNWspro/lib/

  LD_LIBRARY_PATH_64
     LD_LIBRARY_PATH 環境変数と同様、LD_LIBRARY_PATH_64 は 64
     ビットのライブラリを検索するためのパスを設定します。

     64 ビット Solaris OS 環境で、32 ビットモードでリンクすると
     き、LD_LIBRARY_PATH_64 は無視されます。LD_LIBRARY_PATH だけ
     が定義されている場合、32 ビットのリンクと 64 ビットのリンク
     の両方にこの値が使用されます。LD_LIBRARY_PATH と
     LD_LIBRARY_PATH_64 の両方が定義されている場合、32 ビットのリ
     ンクには LD_LIBRARY_PATH が使用され、64 ビットのリンクには
     LD_LIBRARY_PATH_64 が使用されます。

     これらの環境変数についての詳細は、『リンカーとライブラリ』を
     参照してください。

  LD_RUN_PATH
     LD_RUN_PATH を使用する場合、 f95 では LD_RUN_PATH が -R と同
     一ではないことに注意してください ( ld.so に対しては同一です
     )。詳細は『Fortran ユーザーズガイド』の -R の説明を参照して
     ください。


  STACKSIZE
     STACKSIZE 環境変数に値 (単位 K バイト) を指定することによ
     り、マルチスレッドプログラム内の各スレーブスレッドが使用する
     スタックサイズを指定できます。
        % setenv STACKSIZE 8192
     上記の指定では、各スレーブスレッドのスタックサイズは 8M バイ
     トに設定されます。

     デフォルトのスレッドスタックサイズは、32 ビットシステムでは
     4M バイト、64 ビットシステムでは 8M バイトです。

     STACKSIZE 環境変数は、接頭辞付きの数値も受け付けます。有効な
     接頭辞は、 B 、 K 、 M 、 G でそれぞれバイト、キロバイト、メ
     ガバイト、ギガバイトを表します。デフォルトはキロバイトです。
     ("キロバイト" は実際には 1024 バイトを意味します。)

     詳細については、Fortran の並列化の章
     を参照してください。


  SUNW_MP_WARN
     OpenMP 実行時ライブラリが出力する警告メッセージを制御しま
     す。 TRUE と設定すると、ライブラリは警告メッセージを stderr
     に出力します。 FALSE と設定すると、警告は無効になります。デ
     フォルトは、 FALSE です。


  SUNW_MP_THR_IDLE
     各ヘルパースレッドのタスクの終わりステータスを制御し、SPIN
     または SLEEP ns に設定できます。デフォルトは SLEEP です。こ
     れらををはじめとする OpenMP 環境変数の詳細は、 OpenMP API
     を参照してください。


  OMP_NUM_THREADS
     アプリケーション実行時に使用するスレッド数を設定します。これ
     らの環境変数とその他 OpenMP 環境変数の詳細は、 OpenMP API
     を参照してください。


ファイル

     コンパイラのコマンド行に指定される名前の接尾辞によって識別さ
     れるファイルについては、上記の「ファイルの接尾辞」の項を参照
     してください。

     そのほかに、コンパイラは次のファイルを使用します。

     /usr/lib/libc.so
          標準の C ライブラリ、
     /usr/lib/libm.so
          標準のシステム数学ライブラリ
     /tmp/*
          コンパイラの一時ファイル
     mon.out
          prof(1) による解析用に生成されるファイル
     gmon.out
          gprof(1) による解析用に生成されるファイル


     次のファイル、Sun Studio インストールディレクトリ (通常は
     /opt/SUNWspro/) にあります。

     bin/fpp
          Fortran プリプロセッサ
     bin/cpp
          C プリプロセッサ
     prod/include/f95
          f95 の INCLUDE 文で検索されるパス
     prod/include/f95/f95_floatingpoint.h
          f95 IEEE 演算型定義

     次のライブラリは、.so と .a の両方のバージョンが存在すること
     があります。 注: 静的 Fortran 実行時ライブラリと共有 Fortran
     実行時ライブラリの混在は避けてください。リンクには、必ず、最
     新の共有 Fortran ライブラリを使用してください。
     libfsu
          f95 サポート組み込み
     libfui
          f95 - UNIX インタフェース
     libfio
          Fortran 95 入出力
     libf*ai
          Fortran 95 配列組み込みライブラリ

     libifai
          Fortran 95 区間配列組み込みライブラリ
     libf77compat
          f77 Fortran 77 互換性ライブラリ
     libsunmath
          Sun 数学ライブラリ
     libsunimath
          Sun 区間数学ライブラリ


README ファイル

     多くの README ファイルが Sun Studio のコンパイラとツール、お
     よびライブラリについての有益な最新情報を提供しています (白書
     も含む)。特に、次の話題に注目しています。

          o   fortran_95
          o   math_libraries

     このリリースの Sun Studio の READNE ファイルは、次の Sun
     Studio のポータルにあります。
     http://developers.sun.com/sunstudio/documentation/ss12/index.html


関連項目

     Sun Studio のマニュアルの完全な索引は、次の URL を HTML ブラ
     ウザで指定して参照できます。
        file:/opt/SUNWspro/docs/index.html

     追加情報については、次のマニュアルページを参照してください。
     asa(1),  cc(1),  dbx(1),  fpp(1),  fpr(1),  fsplit(1),
     gprof(1),  ld(1),  perror(3f),  prof(1),  tcov(1)

     詳細情報については、次のマニュアルを参照してください。
     Fortran 
     Fortran 
     OpenMP API 
     
     Sun Performance Library User's Guide
     
     Fortran 
     Solaris 
     dbx 
     Sun Performance Library User's Guide:  この Sun Studio
     リリースには、線形代数やフーリエ変換に使用されるサブルーチン
     や関数を含む Sun Pefrormance Library が含まれています。

     Sun Studio Developer Network Web サイトでは、さらに多くの情
     報を提供しています。
     http://developers.sun.com/sunstudio/



診断

     f95 が生成する診断メッセージは、それだけで理解できるように
     なっています。メッセージの中にはリンカーによって生成されるも
     のもあります。