目次


XL Fortran の新機能

はじめに

  • 本書の使用法
  • 構文図およびステートメントの読み方
  • 本書の例についての注意事項
  • 本書のパス名についての注意事項
  • 本書の用語についての注意事項
  • 書体の規則
  • 関連資料
  • XL Fortran およびオペレーティング・システムの資料
  • 規格資料
  • XL Fortran の機能の概要

  • ハードウェアおよびオペレーティング・システム・サポート
  • 言語サポート
  • マイグレーション・サポート
  • ソース・コードの適合性検査
  • 高度な構成が可能なコンパイラー
  • 診断リスト作成
  • シンボリック・デバッガー・サポート
  • プログラムの最適化
  • 文書とオンライン・ヘルプ
  • XL Fortran のセットアップとカスタマイズ

  • インストール手順の指示が記載されている資料
  • ネットワーク・ファイル・システム上でのコンパイラーの使用
  • 環境変数の正しい設定方法
  • 環境変数の原則
  • 各国語サポートのための環境変数
  • ライブラリー検索パスの設定
  • PDFDIR: PDF プロファイル情報用ディレクトリーの指定
  • TMPDIR: 一時ファイルのディレクトリーの指定
  • XLFSCRATCH_unit: スクラッチ・ファイルの名前の指定
  • XLFUNIT_unit: 暗黙に接続されるファイルの名前の指定
  • 構成ファイルのカスタマイズ
  • 属性
  • 構成ファイルの実例
  • インストールした XL Fortran のレベルの判別
  • 2 つのレベルの XL Fortran の実行
  • XL Fortran プログラムの編集、コンパイル、リンク、実行

  • XL Fortran ソース・ファイルの編集
  • XL Fortran プログラムのコンパイル
  • Fortran 90 プログラムまたは Fortran 95 プログラムのコンパイル
  • XL Fortran SMP プログラムのコンパイル
  • Fortran プログラムのコンパイル順序
  • コンパイルの取り消し
  • XL Fortran 入力ファイル
  • XL Fortran 出力ファイル
  • オプション設定の有効範囲と優先順位
  • コマンド行でのオプションの指定
  • ソース・ファイルでのオプションの指定
  • コマンド行オプションの「ld」または「as」コマンドへの引き渡し
  • バイナリー・ファイル内の情報の表示 (strings)
  • 特定アーキテクチャーのためのコンパイル方法
  • C プリプロセッサーによる Fortran ファイルの引き渡し
  • XL Fortran プログラムに対する cpp ディレクティブ
  • C プリプロセッサーへのオプションの引き渡し
  • プリプロセスの問題の回避
  • XL Fortran プログラムのリンク
  • 別個のステップのコンパイルとリンク
  • ld コマンドへのオプションの引き渡し
  • 動的および静的リンク
  • リンク中の命名競合の回避
  • XL Fortran プログラムの実行
  • 実行の取り消し
  • 別のシステム上でのコンパイルと実行
  • POSIX Pthreads がサポートする実行時ライブラリー
  • 実行時メッセージ用の言語の選択
  • 実行時オプションの設定
  • OpenMP 環境変数
  • 実行時の動作に影響を与える他の環境変数
  • XL Fortran 実行時例外
  • XL Fortran コンパイラー・オプションに関する参照事項

  • XL Fortran コンパイラー・オプションの概要
  • コンパイラーへの入力を制御するオプション
  • 出力ファイルの位置を指定するオプション
  • パフォーマンスの最適化のためのオプション
  • エラー・チェックおよびデバッグのためのオプション
  • リストとメッセージを制御するオプション
  • 互換性を維持するためのオプション
  • 浮動小数点処理のためのオプション
  • リンクを制御するオプション
  • 他のコンパイラー操作を制御するオプション
  • 廃止、または不適オプション
  • XL Fortran コンパイラー・オプションの詳細記述
  • -# オプション
  • -1 オプション
  • -B オプション
  • -C オプション
  • -c オプション
  • -D オプション
  • -d オプション
  • -F オプション
  • -g オプション
  • -I オプション
  • -k オプション
  • -L オプション
  • -l オプション
  • -N オプション
  • -O オプション
  • -o オプション
  • -p オプション
  • -Q オプション
  • -q32 オプション
  • -q64 オプション
  • -qalias オプション
  • -qalign オプション
  • -qarch オプション
  • -qassert オプション
  • -qattr オプション
  • -qautodbl オプション
  • -qbigdata オプション
  • -qcache オプション
  • -qcclines オプション
  • -qcheck オプション
  • -qci オプション
  • -qcompact オプション
  • -qcr オプション
  • -qctyplss オプション
  • -qdbg オプション
  • -qddim オプション
  • -qdirective オプション
  • -qdirectstorage オプション
  • -qdlines オプション
  • -qdpc オプション
  • -qenablevmx オプション
  • -qescape オプション
  • -qessl オプション
  • -qextern オプション
  • -qextname オプション
  • -qfixed オプション
  • -qflag オプション
  • -qfloat オプション
  • -qflttrap オプション
  • -qfree オプション
  • -qfullpath オプション
  • -qhalt オプション
  • -qhot オプション
  • -qieee オプション
  • -qinit オプション
  • -qinitauto オプション
  • -qintlog オプション
  • -qintsize オプション
  • -qipa オプション
  • -qkeepparm オプション
  • -qlanglvl オプション
  • -qlibansi オプション
  • -qlibposix オプション
  • -qlist オプション
  • -qlistopt オプション
  • -qlog4 オプション
  • -qmaxmem オプション
  • -qmbcs オプション
  • -qminimaltoc オプション
  • -qmixed オプション
  • -qmoddir オプション
  • -qmodule オプション
  • -qnoprint オプション
  • -qnullterm オプション
  • -qobject オプション
  • -qonetrip オプション
  • -qoptimize オプション
  • -qpdf オプション
  • -qphsinfo オプション
  • -qpic オプション
  • -qport オプション
  • -qposition オプション
  • -qprefetch オプション
  • -qqcount オプション
  • -qrealsize オプション
  • -qrecur オプション
  • -qreport オプション
  • -qsaa オプション
  • -qsave オプション
  • -qsaveopt オプション
  • -qsclk オプション
  • -qshowpdf オプション
  • -qsigtrap オプション
  • -qsmallstack オプション
  • -qsmp オプション
  • -qsource オプション
  • -qspillsize オプション
  • -qstrict オプション
  • -qstrictieeemod オプション
  • -qstrict_induction オプション
  • -qsuffix オプション
  • -qsuppress オプション
  • -qswapomp オプション
  • -qtbtable オプション
  • -qthreaded オプション
  • -qtune オプション
  • -qundef オプション
  • -qunroll オプション
  • -qunwind オプション
  • -qversion オプション
  • -qwarn64 オプション
  • -qxflag=dvz オプション
  • -qxflag=oldtab オプション
  • -qxlf77 オプション
  • -qxlf90 オプション
  • -qxlines オプション
  • -qxref オプション
  • -qzerosize オプション
  • -S オプション
  • -t オプション
  • -U オプション
  • -u オプション
  • -v オプション
  • -V オプション
  • -W オプション
  • -w オプション
  • -y オプション
  • 64 ビット環境での XL Fortran の使用

  • 64 ビット環境のコンパイラー・オプション
  • -q32 オプション
  • -q64 オプション
  • -qwarn64 オプション
  • XL Fortran 浮動小数点処理

  • IEEE 浮動小数点の概要
  • IEEE を厳守するためのコンパイル方法
  • IEEE 単精度値および倍精度値
  • IEEE 拡張精度値
  • 無限大と NaN
  • 例外処理モデル
  • ハードウェア固有の浮動小数点の概要
  • 単精度および倍精度の値
  • 拡張精度値
  • XL Fortran の浮動小数点計算の丸め方
  • 丸めモードの選択
  • 丸め誤差の最小化
  • 全体にわたる丸めの最小化
  • 実行時までの丸めの遅延
  • 丸めモードでの整合性の確保
  • 他のシステムの浮動小数点結果の再現
  • 浮動小数点パフォーマンスの最大化
  • 浮動小数点演算例外の検出とトラッピング
  • 浮動小数点演算例外をトラッピングするためのコンパイラー機能
  • 例外ハンドラーのインストール
  • 浮動小数点状況および制御レジスターの制御
  • xlf_fp_util プロシージャー
  • fpgets および fpsets サブルーチン
  • 例外処理のためのサンプル・プログラム
  • 特定の変数に対して例外を発生させるには
  • 浮動小数点演算例外のトラッピングによるパフォーマンスへの影響の最小化
  • XL Fortran プログラムの最適化

  • XL Fortran の最適化の考え方
  • 最適化のためのコンパイラー・オプションの概要
  • 最適化レベルの選択
  • 最適化レベル -O2
  • 最適化レベル -O3
  • -O2 および -O3 を最大限に活用する
  • -O4 および -O5 オプション
  • ターゲット・マシンまたはターゲット・マシン・クラスの最適化
  • ターゲット・マシン・オプションを最大限に活用する
  • 浮動小数点計算の最適化
  • 高位変換 (-qhot)
  • -qhot を最大限に活用する
  • ループおよび配列言語の最適化
  • プロファイル指示フィードバック (PDF)
  • プロファイル指示フィードバック (PDF) の使用
  • 条件付き分岐の最適化
  • プロシージャー間分析 (-qipa)
  • -qipa を最大限に活用する
  • サブプログラム呼び出しの最適化
  • インライン化の正しいレベルの見つけ方
  • 共用メモリー並列処理 (-qsmp)
  • -qsmp を最大限に活用する
  • その他のプログラム動作オプション
  • その他のパフォーマンス・オプション
  • 最適化したコードのデバッグ
  • 最適化されたプログラムでの異なる結果
  • コンパイラー・フレンドリーなプログラミング
  • XL Fortran 入出力のインプリメンテーションの詳細

  • ファイル形式のインプリメンテーション
  • ファイル名
  • 事前接続ファイルおよび暗黙接続ファイル
  • ファイルの位置決め
  • I/O のリダイレクト
  • パイプ、スペシャル・ファイル、リンクとの XLF I/O 対話方法
  • デフォルトのレコード長
  • ファイル許可
  • エラー・メッセージと回復処置の選択
  • I/O バッファーのフラッシュ
  • 入出力ファイルの位置と名前の選択
  • 明示的な名前に接続されていないファイルの命名
  • スクラッチ・ファイルの命名
  • 非同期 I/O
  • 非同期データ転送操作の実行
  • 使用法
  • パフォーマンス
  • コンパイラーで生成する一時 I/O 項目
  • エラー処理
  • XL Fortran スレッド・セーフ I/O ライブラリー
  • シグナル・ハンドラーでの I/O ステートメントの使用
  • 非同期スレッドの取り消し
  • 言語間呼び出し

  • XL Fortran 外部名の規則
  • 混合言語の入出力
  • Fortran と C++ の混在
  • C 関数の呼び出しを機能させる方法
  • 言語から別の言語にデータを渡す
  • 言語間での引き数の引き渡し
  • 言語間でのグローバル変数の引き渡し
  • 言語間での文字型の引き渡し
  • 言語間での配列の引き渡し
  • 言語間のポインターの引き渡し
  • 参照または値による引き数の引き渡し
  • gcc への複合値の引き渡し
  • Fortran 関数からの値の戻り
  • OPTIONAL 属性を持つ引き数
  • INTENT 属性を持つ引き数
  • 型のエンコードと検査
  • アセンブラー・レベルのサブルーチンのリンケージ規約
  • スタック
  • リンク域および最小スタック・フレーム
  • 入力パラメーター域
  • レジスター保管域
  • ローカル・スタック域
  • 出力パラメーター域
  • 引き数の引き渡しに関するリンケージ規約
  • 引き数の引き渡し規則 (値による)
  • 引き数リスト内の引き数の順序
  • 関数呼び出しのリンケージ規約
  • 関数を指し示すポインター
  • 関数値
  • スタック・フロア
  • スタック・オーバーフロー
  • プロローグとエピローグ
  • トレースバック
  • C を使用した THREADLOCAL 共通ブロックと ILC
  • 問題判別とデバッグ

  • XL Fortran エラー・メッセージに関する情報
  • エラーの重大度
  • コンパイラーの戻りコード
  • 実行時戻りコード
  • XL Fortran メッセージに関する情報
  • コンパイル時メッセージ数の制限
  • メッセージの言語の選択
  • インストールまたはシステム環境の問題の修正
  • コンパイル時の問題の修正
  • 他のシステムからの拡張機能の再現
  • 個々のコンパイル単位の問題の分離
  • スレッド・セーフ・コマンドによるコンパイル
  • マシン・リソースのこ渇
  • リンク時の問題の修正
  • 実行時の問題の修正
  • 他のシステムからの拡張機能の再現
  • 引き数のサイズまたは型の不一致
  • 最適化するときの問題の回避策
  • 入出力エラー
  • トレースバックとメモリー・ダンプ
  • Fortran 90 または Fortran 95 プログラムのデバッグ
  • XL Fortran コンパイラー・リストについて

  • ヘッダー・セクション
  • オプション・セクション
  • ソース・セクション
  • エラー・メッセージ
  • 変換報告書セクション
  • 属性および相互参照セクション
  • オブジェクト・セクション
  • ファイル・テーブル・セクション
  • コンパイル単位エピローグ・セクション
  • コンパイル・エピローグ・セクション
  • XL Fortran へのプログラムの移植

  • 移植プロセスの概要
  • ディレクティブの移植性
  • NEW
  • XL Fortran がサポートしている共通の業界用拡張機能
  • ステートメント内でのデータ型の混在
  • 日付および時刻ルーチン
  • その他の libc ルーチン
  • データ型のデフォルト・サイズの変更
  • ユーザーのプロシージャーと XL Fortran 組み込みプロシージャー間の名前の競合
  • その他のシステムからの結果の再現
  • 非標準拡張機能の検出
  • 付録 A. サンプルの Fortran プログラム

  • 例 1 - XL Fortran ソース・ファイル
  • 実行結果
  • 例 2 - 有効な C ルーチン・ソース・ファイル
  • 例 3 - 有効な Fortran SMP ソース・ファイル
  • 例 4 - 無効な Fortran SMP ソース
  • Pthreads ライブラリー・モジュールを使用したプログラミング例
  • 付録 B. XL Fortran 技術情報

  • コンパイラー・フェーズ
  • XL Fortranライブラリー内の外部名
  • XL Fortran 実行時環境
  • 実行時環境の外部名
  • -qfloat=hsflt オプションの技術情報
  • -qautodbl のプロモーションと埋め込みの実行の詳細
  • 用語
  • -qautodbl サブオプションのストレージの関係の例
  • 付録 C. Mathematical Acceleration Subsystem (MASS) の使用

  • ベクトル・ライブラリーの使用
  • MASS ベクトル関数の一貫性
  • MASS でのプログラムのコンパイルとリンク
  • 付録 D. XL Fortran 内部制限

    用語集

    IBM Copyright 2003