このマニュアルおよび関連マニュアル『Fortran プログラミングガイド』で説明する SunTM Studio Fortran 95 コンパイラ f95 は、SPARC®、UltraSPARC®、および x64/x86 プラットフォーム上の SolarisTM オペレーティング環境で使用可能です。このコンパイラは、公開されている 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) プロセッサアーキテクチャーの機能を利用した最適化をサポートしています。
Sun Studio コンパイラは OpenMP 2.5 共有メモリー並列化 API 仕様に準拠しています。詳細は、『OpenMP API ユーザーズガイド』を参照してください。
このマニュアルで、「規格」は、前述の規格のバージョンに準拠していることを意味します。これらの規格の範囲外の機能を「非標準」または「拡張機能」と呼んでいます。
これらの規格は規格団体によって改訂される場合があります。このコンパイラが準拠している規格のバージョンが改訂されたり、ほかのバージョンと交換されることがあります。 その結果、Sun Fortran コンパイラのリリースが、将来的に、これまでのリリースと互換性を持たなくなる可能性があります。
Sun Studio の Fortran 95 コンパイラは、次の特徴と拡張機能を提供します。
引数、共通ブロック、パラメータなどの整合性をルーチン間で調べる、大域的なプログラム検査機能
マルチプロセッサシステムのための、最適化された明示的自動ループ並列化機能
VAX/VMS Fortran 拡張機能
構造体、記録、共用体、マップ
再帰
OpenMP 2.5 並列化指令
大域的、ピープホール、および潜在的な並列化の最適化によって、パフォーマンスの高いアプリケーションが生成されます。ベンチマークによると、最適化されたアプリケーションは、最適化していないコードに比べると、はるかに高速に実行できます。
呼び出し方式が共通しているので、C または C++ 言語で作成 したルーチンを Fortran プログラムと結合できます。
UltraSPARC および AMD64 プラットフォームで 64 ビットの Solaris の環境をサポートします。
%VAL を使用した値による呼び出し
FORTRAN 77 と Fortran 95 プログラム、およびオブジェクトバイナリ間に互換性があります。
区間演算プログラミング
ストリーム入出力を含む Fortran 2003 のいくつかの機能
ソフトウェアのリリースの際にコンパイラに追加された新機能あるいは拡張機能の詳細は、付録 B を参照してください。
Fortran でソフトウェアプログラムを開発するには、次のユーティリティーを利用できます。
Sun Studio パフォーマンスアナライザ - シングルスレッドアプリケーションやマルチスレッドアプリケーションの強力なパフォーマンス解析ツール。analyzer(1) を参照してください。
asa - この Solaris ユーティリティーは、1 桁目に Fortran のキャリッジ制御文字が入っているファイルを印刷するための Fortran 出力フィルタです。Fortran のキャリッジ制御規則で書式化されたファイルを、UNIX のラインプリンタの規則により書式化されたファイルに変換するときに、asa を使用します。asa(1) を参照してください。
fdumpmod - ファイルまたはアーカイブに含まれるモジュールの名前を表示するユーティリティー。fdumpmod(1) を参照してください。
fpp - Fortran ソースコードプリプロセッサ。fpp(1) を参照してください。
fsplit - 複数のルーチンが含まれる 1 つの Fortran ファイルを複数のファイルに分割し て、1 ファイル 1 ルーチンとします。FORTRAN 77 または Fortran 95 のソースファイルには fsplit を使用します。fsplit(1) を参照してください。
次のデバッグ用ユーティリティーを利用することができます。
Sun Studio dbx - 多機能で安定した実行時および静的デバッガを提供します。パフォーマンスデータコレクタも含まれます。
Sun Performance LibraryTM は、線形代数やフーリエ変換の数値演算に使用できる最適化サブルーチンと関数のライブラリです。このライブラリは、LAPACK、BLAS1、BLAS2、BLAS3、FFTPACK、VFFTPACK、および LINPACK といった標準ライブラリを基盤として構築されており、通常 NetLib ( www.netlib.org) から利用できます。
Sun Performance Library に含まれている各副プログラムは、標準ライブラリのバージョンと同じ演算を行い、同じインタフェースを使用しますが、通常、実行速度も速く、精度もより正確で、マルチプロセッシング環境でも使用することができます。
詳細は、performance_library README ファイル、『Sun Performance Library User’s Guide』を参照してください。パフォーマンスライブラリルーチンのマニュアルページは、3P のセクションにあります。
Fortran 95 のコンパイラは、新しい 2 つのコンパイラフラグである -xia および -xinterval を提供します。これによって、コンパイラは、新しい言語拡張を認識し、適切なコードを生成して、区間演算計算を実行します。詳細は、『Fortran 95 区画演算プログラミングリファレンス』を参照してください。区間演算機能は SPARC/UltraSPARC プラットフォームでのみサポートされます。
オンラインのマニュアル (man) ページで、コマンド、関数、サブルーチン、またはそれらの情報に関する説明を簡単に参照できます。Sun Studio のマニュアルページにアクセスするには、MANPATH 環境変数を、インストールされている Sun Studio の man ディレクトリへのパスに設定する必要があります。通常、このディレクトリは Solaris では /opt/SUNWspro/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) |
Sun 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) |
数学ライブラリエラー処理ルーチン |
ild(1) |
オブジェクトファイルに対して使用するインクリメンタルリンカー |
ld(1) |
オブジェクトファイルに対して使用するリンカー |
Sun Developer Network (SDN) ポータル (http://developers.sun.com/sunstudio/) の README ページには、新機能、ソフトウェアの互換性、バグ、マニュアルが印刷されたあとに判明した情報などがあります。これらの README ページは、このリリースのポータルのマニュアルの一部で、ソフトウェアの一部として file:/opt/SUNWspro/docs にインストールされる HTML のマニュアル索引からもリンクされています。
表 1–1 重要な README ページ
README ページ |
内容 |
---|---|
fortran_95 |
Fortran 95 コンパイラ f95 の本リリースの新機能と変更点、報告されている制限事項、マニュアルの訂正と補足 |
fpp_readme |
fpp 機能の概要 |
interval_arithmetic |
f95 における区間演算機能の概要 |
math_libraries |
最適化された専門の数学ライブラリ |
profiling_tools |
パフォーマンスプロファイルツール prof、gprof、tcov の使用 |
runtime_libraries |
一般ユーザーライセンスで再配布されるライブラリと実行可能ファイル |
performance_library |
Sun Performance Library の概要 |
openmp |
OpenMP 並列化 API の新規機能と変更機能 |
各コンパイラの README ページの URL は、-xhelp=readme コマンド行オプションで表示できます。次にコマンドの例を示します。
% f95 -xhelp=readme |
これによって、SDN ポータルにあるこのリリースの fortran_95 README を表示する URL が表示されます。
次のようにコンパイラの -help オプションを起動すると、f95 のコマンド行オプションの要約を表示できます。
%f95 -help=flags [ ] 中の項目は省略可能。< > 中の項目は変数パラメータ。縦棒「|」は、リテラル値の選択を意味します。 -someoption [={yes|no}] の場合、-someoption は -someoption=yes と同等です。 _______________________________________________________________ -a tcov の基本ブロックごとのプロファイル処理用データ (旧形式) を収集するコードを生成 -aligncommon[=<a>] 共通ブロックエレメントを指定された境界に整列させる。 <a>={1|2|4|8|16} -ansi ANSI 規格以外の拡張機能を報告 -autopar 自動選択によるループの並列化 -Bdynamic 動的なリンクも許容 -Bstatic 静的なリンクのみ許容 -C 実行時の添字の範囲検査を行う -c コンパイルのみ。.o ファイルを生成し、リンクは行わない ...etc. |