このマニュアルおよび関連マニュアル『Fortran プログラミングガイド』で説明する Solaris Studio Fortran コンパイラ f95 は、SPARC、UltraSPARC、および x64/x86 プラットフォーム上の Solaris オペレーティング環境と、x86/x64 プラットフォーム上の Linux 環境で使用可能です。このコンパイラは、公開されている Fortran 言語規格に準拠しています。また、マルチプロセッサ並列化、最適化されたコードコンパイル、C と Fortran 言語の混在のサポートなど、さまざまな拡張機能を提供します。
また、f95 コンパイラには、従来の FORTRAN 77 ソースコードのほとんどが使用可能な FORTRAN 77 互換性モードもあります。単体の FORTRAN 77 コンパイラの提供はありません。FORTRAN 77 の互換性および移行問題については、第 5 章を参照してください。
f95 は、ISO/IEC 1539-1:1997 Fortran 規格ドキュメントの第 1 部に準拠しています。
浮動小数点演算は、IEEE 754-1985 規格および 国際規格の IEC 60559:1989 に準拠しています。
f95 は、Solaris および Linux (x86) プラットフォームでの SPARC および x86 ファミリ (UltraSPARC、SPARC64、AMD64、Pentium Pro、および Xeon Intel®64) プロセッサアーキテクチャーの機能を利用した最適化をサポートしています。
Solaris Studio コンパイラは、OpenMP 3.0 共有メモリー並列化 API 仕様に準拠しています。詳細は、『OpenMP API ユーザーズガイド』を参照してください。
このマニュアルでは、「標準」は、前述の規格の各バージョンに準拠していることを意味します。これらの規格の範囲外の機能を「非標準」または「拡張機能」と呼んでいます。
これらの標準は、それぞれの標準を策定する組織によって改訂されることがあります。このコンパイラが準拠している規格のバージョンが改訂されたり、ほかのバージョンと交換されることがあります。その結果、Solaris Studio Fortran コンパイラのリリースが、将来的に、これまでのリリースと互換性を持たなくなる可能性があります。
Solaris Studio の Fortran コンパイラ f95 は、次の機能と拡張機能を提供します。
引数、共通ブロック、パラメータなどの整合性をルーチン間で調べる、大域的なプログラム検査機能(Solaris プラットフォームでのみ使用可能)
マルチプロセッサシステムのための、最適化された明示的自動ループ並列化機能
VAX/VMS Fortran 拡張機能
構造体、記録、共用体、マップ
再帰
OpenMP 3.0 並列化指令
大域的、ピープホール、および潜在的な並列化の最適化によって、パフォーマンスの高いアプリケーションが生成されます。ベンチマークによると、最適化されたアプリケーションは、最適化していないコードに比べると、はるかに高速に実行できます。
呼び出し方式が共通しているので、C または C++ 言語で作成 したルーチンを Fortran プログラムと結合できます。
64 ビット対応の Solaris および Linux 環境のサポート
%VAL を使用した値による呼び出し
FORTRAN 77 と Fortran 95/Fortran 2003 プログラム、およびオブジェクトバイナリの間の互換性
区間演算プログラミング
ストリーム入出力を含む Fortran 2003 のいくつかの機能
ソフトウェアのリリースの際にコンパイラに追加された新機能あるいは拡張機能の詳細は、付録 B を参照してください。
このリリースのコンパイラとツールの新機能と拡張機能、および既知の問題、解決策、および制限事項の最新情報については、『Oracle Solaris Studio 12.2 リリースの新機能』ガイドも参照してください。『新機能』ガイドには、このリリースのマニュアルの索引 (http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation) からアクセスできます。
Fortran でソフトウェアプログラムを開発するには、次のユーティリティーを利用できます。
Solaris Studio パフォーマンスアナライザ - シングルスレッドアプリケーションやマルチスレッドアプリケーションの強力なパフォーマンス解析ツール。analyzer(1) を参照してください。
asa - この Solaris ユーティリティーは、1 桁目に Fortran のキャリッジ制御文字が入っているファイルを印刷するための Fortran 出力フィルタです。Fortran のキャリッジ制御規則で書式化されたファイルを、UNIX のラインプリンタの規則により書式化されたファイルに変換するときに、asa を使用します。asa(1) を参照してください。
fdumpmod - ファイルまたはアーカイブに含まれているモジュールの名前を表示するユーティリティー。fdumpmod(1) を参照してください。
fpp - Fortran ソースコードプリプロセッサ。fpp(1) を参照してください。
fsplit このユーティリティーは、複数のルーチンが含まれる Fortran ファイルを複数のファイルに分割して、各ファイルにルーチン 1 つ設定します。fsplit(1) を参照してください。
次のデバッグ用ユーティリティーを利用することができます。
-Xlist - 引数、COMMON ブロックなどの整合性を複数のルーチンについてチェックするコンパイラオプション。(Solaris プラットフォームのみ)
Solaris Studio dbx - 安定した機能豊富な実行時および静的デバッガ。パフォーマンスデータコレクタを含んでいます。
Sun Performance Library は、線形代数やフーリエ変換の数値演算に使用できる最適化サブルーチンと関数のライブラリです。このライブラリは、LAPACK、BLAS1、BLAS2、BLAS3、FFTPACK、VFFTPACK、および LINPACK といった標準ライブラリを基盤として構築されており、通常 NetLib ( www.netlib.org) から利用できます。
Sun Performance Library に含まれている各副プログラムは、標準ライブラリのバージョンと同じ演算を行い、同じインタフェースを使用しますが、通常、実行速度も速く、精度もより正確で、マルチプロセッシング環境でも使用することができます。
詳細は、performance_library README ファイル、『Sun Performance Library User’s Guide』を参照してください。パフォーマンスライブラリルーチンのマニュアルページは、3P のセクションにあります。
f95 コンパイラでは、コンパイラフラグである -xia および -xinterval を提供します。これによって、コンパイラは新しい言語拡張を認識し、適切なコードを生成して、区間演算計算を実行します。詳細は、『Fortran 95 区画演算プログラミングリファレンス』を参照してください。
オンラインのマニュアル (man) ページで、コマンド、関数、サブルーチン、またはそれらの情報に関する説明を簡単に参照できます。Solaris Studio のマニュアルページにアクセスするには、MANPATH 環境変数を、インストールされている Solaris Studio の man ディレクトリへのパスに設定する必要があります。
マニュアルページを表示するには、次のように入力してください。
demo% man topic |
Fortran 関連のマニュアルでは、マニュアルページへの参照が必要な個所では、トピック名とマニュアルセクション番号を示しています。たとえば、f95(1) を参照する場合は、コマンド行で man f95 と入力します。たとえば ieee_flags(3M) など、ほかのセクションを表示するには、man コマンドに -s オプションを使用します。
demo% man -s 3M ieee_flags |
Fortran のライブラリルーチンについては、マニュアルページの 3F セクションに記載されています。
次に Fortran を使用する場合の、関連 マニュアルページを示します。
f95(1) |
Fortran 95 のコマンド行オプション |
analyzer(1) |
Solaris Studio パフォーマンスアナライザ |
asa(1) |
Fortran キャリッジ制御印刷出力ポストプロセッサ |
dbx(1) |
対話形式のコマンド行デバッガ |
fpp(1) |
Fortran ソースコードプリプロセッサ (前処理系) |
cpp(1) |
C ソースコードプリプロセッサ |
fdumpmod(1) |
MODULE (.mod) ファイルの内容を表示する |
fsplit(1) |
Fortran ソースルーチンを単一ファイルに分割するプリプロセッサ |
ieee_flags(3M) |
浮動小数点の例外ビットを検証、設定、解除する |
ieee_handler(3M) |
浮動小数点例外を処理する |
matherr(3M) |
数学ライブラリエラー処理ルーチン |
ld(1) |
オブジェクトファイルに対して使用するリンカー |
次のようにコンパイラの -help オプションを起動すると、f95 のコマンド行オプションの要約を表示できます。
%f95 -help=flags Items within [ ] are optional. Items within < > are variable parameters. Bar | indicates choice of literal values. -someoption[={yes|no}] implies -someoption is equivalent to -someoption=yes _______________________________________________________________ -a Collect data for tcov basic block profiling -aligncommon[=<a>] Align common block elements to the specified boundary requirement; <a>={1|2|4|8|16} -ansi Report non-ANSI extensions. -autopar Enable automatic loop parallelization -Bdynamic Allow dynamic linking -Bstatic Require static linking -C Enable runtime subscript range checking -c Compile only; produce .o files but suppress linking ...etc. |