Sun Studio 12: Fortran プログラミングガイド

第 1 章 概要

このマニュアルおよび関連マニュアル『Fortran ユーザーズガイド』に説明されている SunTM Studio Fortran 95 コンパイラ、f95 は、SPARC®、UltraSPARC® および x64/x86 プラットフォーム上の SolarisTM オペレーティング環境で利用できます。このコンパイラは、公開されている Fortran 言語規格に準拠しています。また、マルチプロセッサ並列化、最適化されたコードコンパイル、C と Fortran 言語の混在のサポートなど、さまざまな拡張機能を提供します。

また、f95 コンパイラは FORTRAN 77 と互換性があり、古い FORTRAN 77 のソースコードのほとんどを利用できます。このコンパイラコレクションには、独立した FORTRAN 77 コンパイラは含まれていません。FORTRAN 77 との互換性および FORTRAN 77 からの移行に関する問題については、『Fortran ユーザーズガイド』の第 5 章を参照してください。

1.1 規格への準拠

前述の規格は、標準化団体の責任によって改訂される場合があります。これらのコンパイラが準拠する適用可能な規格のバージョンは改訂されたりほかの規格バージョンで置き換えられることがあります。その結果、Sun Fortran コンパイラの将来のバージョンが、それ以前のバージョンと機能的に互換性を持たなくなる場合があります。

1.2 Fortran 95 コンパイラの機能

Sun Studio の Fortran 95 コンパイラは、次の機能と拡張を提供します。

各ソフトウェアリリースのコンパイラに追加された新規および拡張機能についての詳細は、『Fortran ユーザーズガイド』の付録 B を参照してください。

1.3 そのほかの Fortran ユーティリティー

次のユーティリティーは、Fortran でソフトウェアプログラムを開発するときに役立ちます。

1.4 デバッグユーティリティー

次のデバッグユーティリティーを使用できます。

1.5 Sun Performance Library

Sun Performance LibraryTM は、線形代数やフーリエ変換の数値計算用に最適化されたサブルーチンや関数のライブラリです。これは、LAPACK、BLAS1、BLAS2、BLAS3、FFTPACK、VFFTPACK、一般に Netlib (www.netlib.org) から使用できる LINPACK といった標準ライブラリが基になっています。

Sun Performance Library の各サブルーチンは、標準ライブラリと同じ処理を実行し、同じインタフェースを持っていますが、一般に処理速度が格段に速く、より正確で、多重処理環境で使用できます。

詳細については、performance_library の README ファイルと『Sun Performance Library User's Guide』を参照してください。Performance Library ルーチンのマニュアルページは、セクション 3P にあります。

1.6 区間演算

Fortran 95 コンパイラでは、-xia-xinterval の 2 つのコンパイルフラグが提供されます。これにより、コンパイラは新しい言語拡張機能を使用し、適切なコードを生成して区間演算を実装することが可能です。詳細については、『Fortran 95 Interval Arithmetic Programming Reference』を参照してください。区間演算機能は SPARC/UltraSPARC プラットフォームでのみサポートされます。

1.7 マニュアルページ

オンラインマニュアル (man) ページでは、コマンド、関数、サブルーチンなどの説明を簡単に参照できます。Sun Studio のマニュアルページにアクセスするには、ユーザの MANPATH 環境変数に、インストールされた Sun Studio の man ディレクトリへのパスを設定するようにします。Solaris では、通常は /opt/SUNWspro/man です。

次のコマンドを実行すれば、マニュアルページを表示できます。


demo% man topic

Fortran 文書では、マニュアルページのリファレンスはトピック名と man セクション番号で表されています。たとえば、f95(1) にアクセスするには、man f95 というコマンドを使用します。また、たとえば ieee_flags のように表記されているセクションにアクセスするには、次のように 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 のソースルーチンを分割し、1 ファイル 1 ルーチンとします 

ieee_flags(3M)

浮動小数点の例外ビットを調査、設定、クリアします 

ieee_handler(3M)

浮動小数点の例外を処理します 

matherr(3M)

数学ライブラリのエラー処理ルーチン 

ild(1)

オブジェクトファイルのインクリメンタルリンクエディタ 

ld(1)

オブジェクトファイルのリンクエディタ 

1.8 README ファイル

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

パフォーマンスプロファイリングツール、profgproftcov の使用法。

runtime_libraries

エンドユーザーライセンスの観点から再配布可能なライブラリと実行可能プログラム。 

performance_library

Sun Performance Library の概要。 

openmp

OpenMP 並列化 API の新機能と変更された機能。 

各コンパイラの README ページへの URL は、-xhelp=readme コマンド行オプションを使用して表示できます。たとえば、次のようなコマンドを使用します。


% f95 -xhelp=readme

SDN ポータル上のこのリリースの fortran_95 README を表示できる URL が表示されます。

1.9 コマンド行ヘルプ

次に示すように、コンパイラの -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                  ファイルを生成し、リンクは行わない