docs ドキュメント

クイックリンク:

G95 マニュアル (pdf)
スペイン語の G95 マニュアル (pdf)
入門
G95の実行
g95 プログラムの実行
g95 プログラムへのインターフェース

トップに戻る
入門:
G95 はルート権限なしでインストールできますが、現在、特定のディレクトリからインストール ディレクトリへのシンボリック リンクが必要です。

ダウンロードした tarball (g95-x86-linux.tgz など) を選択したディレクトリに解凍します。
tar -zxvf g95-x86-linux.tgz
便宜上、$PATH 内のディレクトリ (例: ~/bin) から実行可能ファイルへの別のシンボリック リンクを作成できます。
ln -s $PWD/g95-install/bin/*g95* ~/bin/g95
これで、g95 を実行して実行可能ファイルを作成できるはずです。引数「–g95」を指定して g95 でコンパイルされたプログラムを実行し、環境変数とエラー コード番号のリストを取得します。

トップに戻る
G95の実行
基本オプション:
-c コンパイルのみ。リンカは実行しないでください。
-o オブジェクト ファイルまたは実行可能ファイルのいずれかの出力ファイルの名前を指定します。
一度に複数のソース ファイルとオブジェクト ファイルを指定できます。Fortran ファイルは、”.f”、”.F”、”.for”、”.FOR”、”.f90″、”.F90″、”.f95″、”.F95″、”. f03」と「.F03」。複数のソースファイルを指定できます。オブジェクト ファイルも指定でき、実行可能ファイルを形成するためにリンクされます。

大文字で終わるファイルはデフォルトで C プリプロセッサで前処理され、小文字で終わるファイルはデフォルトで前処理されません。

“.f”、”.F”、”.for”、および “.FOR” で終わるファイルは、古い f77 ファイルと互換性のある固定形式のソースと見なされます。”.f90″、”.F90″、”.f95″、”.F95″、”.f03″、”.F03″ で終わるファイルは、フリー ソース形式と見なされます。

簡単な例:

g95 -c hello.f90 hello.f90 を hello.o という名前のオブジェクト ファイルにコンパイルします。
g95 hello.f90 hello.f90 をコンパイルしてリンクし、実行可能ファイル a.out を生成します。
g95 -c h1.f90 h2.f90 h3.f90 複数のソース ファイルをコンパイルします。すべてがうまくいけば、オブジェクト ファイル h1.o、h2.o、および h3.o が作成されます。
g95 -o こんにちは h1.f90 h2.f90 h3.f90 複数のソース ファイルをコンパイルし、それらを「hello」という名前の実行可能ファイルにリンクします。
プリプロセッサ オプション:
G95 は、C プリプロセッサ構造を含むファイルを処理できます。

-cpp 入力ファイルを強制的に C プリプロセッサで実行する
-no-cpp 入力ファイルが前処理されないようにする
-D名前[=値] プリプロセッサ マクロを定義する
-うの名前 プリプロセッサ マクロの定義を解除する
-E 前処理されたソースのみを表示
-Iディレクトリ インクルード ファイルとモジュール ファイルの検索パスに「ディレクトリ」を追加します。ファイルは、さまざまなディレクトリで次の順序で検索されます。メイン ソース ファイルのディレクトリ、現在のディレクトリ、-I で指定されたディレクトリ、G95_INCLUDE_PATH 環境変数で指定されたディレクトリ、最後にシステム ディレクトリです。
-伝統的 従来の C の前処理を実行します (デフォルト)
-非伝統的 最新の C 前処理を実行します
Fortran オプション:
-壁 ほとんどの警告メッセージを有効にする
-エラー 警告をエラーに変更
-エラー=x 警告 x をエラーに変更
-ウェクストラ -Wall によって有効にされない警告を有効にする
-Wグローバル 手順の使用と定義を同じソース ファイル内で照合します。デフォルトではオンになっており、無効にするには -Wno-globals を使用します。
-Wimplicit-なし -fimplicit-none と同じ
-Wimplicit インターフェイス 暗黙的なインターフェースの使用について警告する
-wline-truncation 切り捨てられたソース行について警告する
-Wmissing-intent 正式な引数のインテントの欠落について警告する
-ウォブソセント 廃止された構造について警告する
-Wno=数字 警告番号のコンマ区切りリストを無効にする
-Wuninitialized 初期化前に使用された変数について警告します。-O2 が必要
-Wunused-vars 未使用の変数について警告する
-未使用タイプ 未使用のモジュール タイプについて警告します。-Wall によって暗示されない
-Wunset-vars 設定されていない変数について警告する
-Wunused-module-vars 未使用のモジュール変数について警告します。ONLY 句に便利
-Wunused-module-procs 未使用のモジュール プロシージャについて警告します。ONLY 句に便利
-Wunused-パラメーター 未使用のパラメーターについて警告します。-Wall によって暗示されない
-W精度損失 暗黙の型変換での精度の低下について警告する
-fバックスラッシュ 文字定数のバックスラッシュをエスケープ コードとして解釈します。バックスラッシュを文字どおりに扱うには -fno-backslash を使用します。
-fd-コメント D 行の実行可能なステートメントを固定形式で作成します。
-fdollar-ok エンティティ名にドル記号を許可する
-フェンディアン= フォーマットされていない読み取りと書き込みのエンディアンを強制します。値は ‘big’ または ‘little’ でなければなりません。環境変数をオーバーライドします。
-定形 ソースファイルが固定形式であると仮定します
-固定行長-132 固定モードで 132 文字の行幅
-固定行長-80 固定モードで行幅 80 文字
-f自由形式 ソースファイルは自由形式であると仮定します
-ffree-line-length-huge 非常に大きなソース行 (10k) を許可する
-fimplicit-なし 明示的な IMPLICIT ステートメントによってオーバーライドされない限り、暗黙的な型指定が許可されないことを指定します
-fintrinsic-extensions -std= モードでも g95 固有の組み込み関数を有効にする
-fintrinsic-extensions=proc1,proc2,… -std= モードであっても、選択された組み込み関数を含めます。リストはカンマ区切りで、大文字と小文字は区別されません。
-fmod=ディレクトリ モジュールファイルをディレクトリに置く
-fmodule-private モジュール エンティティのデフォルトのアクセシビリティを PRIVATE に設定する
-f複数保存 SAVE 属性を複数回指定できるようにする
-fone-エラー 最初のエラーの後、強制的にコンパイルを停止します。
-ftr15581 -std=F または -std=f95 モードでも、TR15581 割り当て可能配列拡張を有効にします。
-M 標準出力に Makefile の依存関係の行を生成する
-std=F 非 F 機能について警告する
-std=f2003 厳密な Fortran 2003 チェック
-std=f95 厳密な fortran 95 チェック
-i4 指定のない整数の種類を kind=4 (32 ビット) に設定します。デフォルトの種類は変更されていません。
-i8 指定のない整数の種類を kind=8 (64 ビット) に設定します。デフォルトの種類は変更されていません。
-r8 種類指定のない実数の種類を倍精度に設定する
-d8 -i8 および -r8 を意味します。
コード生成オプション:
-fbounds-チェック 実行時に配列と部分文字列の境界をチェックする
-fcase-アッパー すべてのパブリック シンボルを大文字にする
-fleading-アンダースコア パブリック名の先頭にアンダースコアを追加する
-fonetrip DO ループを少なくとも 1 回実行します。(バグのある fortran 66)
-fpack 由来 派生型をできるだけコンパクトにレイアウトするようにしてください。必要なメモリは少なくなりますが、遅くなる可能性があります
-fqkind= n ‘q’ 指数を持つ実数の種類をnに設定します
-fsecond-アンダースコア アンダースコアを含む名前の末尾に 2 番目のアンダースコアを追加します (デフォルト)。-fno-second-underscore を使用して抑制します。
-f短絡回路 .AND を発生させます。および.OR. 式の値が最初のオペランドからわかっている場合、2 番目のオペランドを計算しない演算子。
-fsloppy-char 非文字データを文字記述子に書き込むときのエラーを抑制します
-fstatic 可能であれば、ローカル変数を静的メモリに配置します。これは、静的にリンクすること (-static) と同じではありません。
-ftrace 「-ftrace=frame」は、プログラムの異常終了時にスタック トレースバックを許可するコードを挿入します。これにより、プログラムが遅くなります。さらに、’-ftrace=full’ を使用すると、算術例外の行番号を見つけることができます (遅くなります)。デフォルトは「-ftrace=none」です。
-資金提供者の採点 グローバル名の末尾にアンダースコアを追加します (デフォルト)。-fno-underscoring を使用して抑制します。
-最大フレームサイズ= n 配列が動的に割り当てられる前に単一のスタック フレームがどのくらい大きくなるか
-finteger=n 初期化されていないスカラー整数変数を n に初期化します
-flogical= 初期化されていないスカラー論理変数を初期化します。有効な値は none、true、および false です。
-freal= 初期化されていないスカラー実数変数と複素数変数を初期化します。有効な値は、none、zero、nan、inf、+inf、および -inf です。
-fpointer= スカラー ポインターを初期化します。有効な値は、none、null、および無効です。
-フロント= コンパイル時の丸めを制御します。有効な値は、最も近いプラス、マイナス、およびゼロです。デフォルトは最も近い値に丸められ、plus はプラスの無限大に丸められ、マイナスはマイナスの無限大に丸められ、ゼロはゼロに向かって丸められます。
-fゼロ 数値型をゼロに、論理値を false に、ポインターを null に初期化します。他の初期化オプションは、これをオーバーライドします。
トップに戻る
g95 プログラムの実行
g95 ランタイム環境は、実行後のプログラムの動作を微調整するための多くのオプションを提供します。これらは、環境変数によって制御できます。–g95 オプションを指定して g95 でコンパイルされたプログラムを実行すると、これらのオプションがすべて標準出力にダンプされます。

さまざまな変数の値は常に文字列ですが、文字列は整数または真偽値として解釈できます。ブール値の最初の文字のみが検査され、’t’、’f’、’y’、’n’、’1’、または ‘0’ (大文字も可) でなければなりません。値が正しくない場合、エラーは発行されず、デフォルトが使用されます。

G95_STDIN_UNIT 整数 標準入力に事前接続されるユニット番号。負の場合、事前接続はありません。デフォルトは 5 です。
G95_STDOUT_UNIT 整数 標準出力に事前接続されるユニット番号。負の場合、事前接続はありません。デフォルトは 6 です。
G95_STDERR_UNIT 整数 標準エラーに事前接続されるユニット番号。負の場合、事前接続はありません。デフォルトは 0 です。
G95_USE_STDERR ブール値 ライブラリ出力を標準出力ではなく標準エラーに送信します。デフォルトははいです。
G95_ENDIAN 弦 フォーマットされていないデータの I/O に使用するエンディアン形式。値は、BIG、LITTLE、または NATIVE です。デフォルトはネイティブです。
G95_CR ブール値 フォーマットされたシーケンシャル レコードのキャリッジ リターンを出力します。Windows ではデフォルトで true、それ以外では false です。
G95_IGNORE_CR ブール値 キャリッジ リターンとラインフィードを単なるラインフィードではなく、レコード マーカーとして扱います。デフォルトは真です。
G95_IGNORE_ENDFILE ブール値 順次アクセス モードで ENDFILE レコードを超えて読み取ろうとする試みを無視します。デフォルト false
G95_TMPDIR 弦 スクラッチ ファイルのディレクトリ。TMP 環境変数をオーバーライドします。TMP が設定されていない場合、/var/tmp が使用されます。デフォルトなし
G95_UNBUFFERED_ALL ブール値 TRUE の場合、すべての出力はバッファリングされません。これにより、大量の書き込みが遅くなりますが、データを強制的にすぐに表示する場合に役立ちます。デフォルトは偽です。
G95_SHOW_LOCUS ブール値 TRUE の場合、実行時エラーが発生したファイル名と行番号を出力します。デフォルトははいです。
G95_OPTIONAL_PLUS ブール値 許可されている場合は、オプションのプラス記号を数字で印刷します。デフォルトは FALSE です。
G95_DEFAULT_RECL 整数 順次ファイルのデフォルトの最大レコード長。事前接続されたユニットのラインの長さを調整するのに最も便利です。デフォルトは 50000000 です。
G95_LIST_SEPARATOR 弦 リスト出力を書き込むときに使用する区切り記号。任意の数のスペースと最大 1 つのコンマを含めることができます。デフォルトは単一のスペースです。
G95_LIST_EXP 整数 リスト出力に指数形式を使用しない最後の 10 の累乗。デフォルトは 6 です。
G95_COMMA ブール値 I/O のデフォルトの小数点としてコンマ文字を使用します。デフォルトは false です。
G95_EXPAND_UNPRINTABLE ブール値 フォーマットされた出力の場合、そうでなければ印刷できない文字を \-sequence で印刷します。デフォルト番号
G95_QUIET ブール値 書式設定された出力でベル文字 (\a) を抑制します。デフォルト番号
G95_SYSTEM_CLOCK 整数 SYSTEM_CLOCK() 組み込み関数によって報告される 1 秒あたりのティック数 (マイクロ秒単位)。ゼロはクロックを無効にします。デフォルトは 100000 です。
G95_SEED_RNG ブール値 true の場合、プログラムの実行時に乱数ジェネレーターに新しいシードをシードします。デフォルトは false です。
G95_MINUS_ZERO ブール値 true の場合、標準に反して、フォーマットされた (非リスト) 出力でマイナス記号なしでマイナス ゼロを出力します。デフォルトは FALSE です。
G95_ABORT ブール値 true の場合、プログラムの異常終了時にコアをダンプします。問題の場所を見つけるのに役立ちます。デフォルトは FALSE です。
G95_MEM_INIT 弦 割り当てられたメモリを初期化する方法。デフォルト値は、初期化なし (高速) の場合は NONE、仮数が 0x40f95 の非数の場合は NAN、またはカスタムの 16 進数値です。
G95_MEM_SEGMENTS 整数 プログラムの終了時に表示する、まだ割り当てられているメモリ セグメントの最大数。0 は何も表示しないことを意味し、0 未満はすべてを表示することを意味します。デフォルト 25
G95_MEM_MAXALLOC ブール値 true の場合、プログラムの実行中にユーザー メモリに割り当てられた最大バイト数を示します。デフォルト番号
G95_MEM_MXFAST 整数 fastbin からのリクエストを処理するための最大リクエスト サイズ。Fastbin はより高速ですが、より簡単にフラグメント化されます。デフォルトは 64 バイトです。
G95_MEM_TRIM_THRESHOLD 整数 オペレーティング システムに返されるまで保持する最上位メモリの量。-1 を指定すると、メモリがシステムに返されなくなります。寿命の長いプログラムで役立ちます。デフォルトは 262144 です。
G95_MEM_TOP_PAD 整数 OS からメモリを取得するときに割り当てる余分なスペース。将来のリクエストを高速化できます。デフォルト 0。
G95_SIGHUP 弦 プログラムが SIGHUP で IGNORE、ABORT、または SUSPEND するかどうか。デフォルトの中止。
G95_SIGINT 弦 プログラムが SIGINT で IGNORE、ABORT、または SUSPEND するかどうか。デフォルトの中止
G95_FPU_ROUND 弦 浮動小数点丸めモードを設定します。値は NEAREST、UP、DOWN、ZERO です。デフォルトは NEAREST です。
G95_FPU_PRECISION 弦 中間結果の精度。値は 24、53、および 64 です。デフォルトは 64 です。x86 および IA64 互換でのみ使用できます。
G95_FPU_DENORMAL ブール値 非正規数が発生したときに浮動小数点例外を発生させます。デフォルト番号
G95_FPU_INVALID ブール値 無効な操作で浮動小数点例外を発生させます。デフォルト番号
G95_FPU_ZERODIV ブール値 ゼロ除算時に浮動小数点例外を発生させます。デフォルト番号
G95_FPU_OVERFLOW ブール値 オーバーフロー時に浮動小数点例外を発生させます。デフォルト番号
G95_FPU_UNDERFLOW ブール値 アンダーフロー時に浮動小数点例外を発生させます。デフォルト番号
G95_FPU_INEXACT ブール値 精度が失われた場合に浮動小数点例外を発生させます。デフォルト いいえ
G95_FPU_EXCEPTIONS ブール値 プログラムの終了後にマスクされた浮動小数点例外を表示するかどうか。デフォルト いいえ
G95_UNIT_x 弦 ユニット x のデフォルトのユニット名を上書きします。
G95_UNBUFFERED_x ブール値 true の場合、ユニット x はバッファリングされていません
G95_UNIT_ENDIAN_x 弦 個々のユニットのエンディアンを設定します。値は「大きい」または「小さい」です。G95_ENDIAN より優先されます
ランタイム エラー コード
-2 記録の終わり
-1 ファイルの終わり
0 返品成功
オペレーティング システムの errno コード (1 ~ 199)
200 相反するステートメント オプション
201 不適切なステートメント オプション
202 ステートメントのオプションがありません
203 ファイルはすでに別のユニットで開かれています
204 未接続ユニット
205 フォーマットエラー
206 誤った ACTION が指定されました
207 過去の ENDFILE レコードを読み取る
208 読み取り中の不正な値
209 読み取り時の数値オーバーフロー
210 メモリ不足
211 配列はすでに割り当てられています
212 不良ポインタの割り当てを解除しました
214 フォーマットされていない順次アクセス ファイルのレコードが破損しています
215 レコードサイズよりも多くのデータを読み取る (RECL)
216 レコードサイズ以上のデータ書き込み(RECL)
トップに戻る
g95 プログラムとのインターフェース
g95 はスタンドアロンの実行可能ファイルを生成しますが、他のプログラム (通常は C) とのインターフェースが望ましい場合もあります。多言語プログラムが直面する最初の問題は、パブリック シンボルの名前です。G95 は、パブリック名にアンダースコアを追加するか、名前にアンダースコアが含まれる場合は 2 つのアンダースコアを追加するという f2c 規則に従います。-fno-second-underscore と -fno-underscoring は、g95 に C コンパイラと互換性のある名前を強制的に生成させるのに役立ちます。

「nm」プログラムを使用して、両方のコンパイラによって生成される .o ファイルを確認します。

-fupper-case が指定されていない限り、G95 はパブリック名も小文字に変換します。この場合、すべてが大文字になります。モジュール名はmodule-name _MP_ nameとして表されます。

リンク後は、Fortran 呼び出し C サブルーチンと C 呼び出し fortran サブルーチンの 2 つの主なケースがあります。

Fortran サブルーチンを呼び出す C の場合、fortran サブルーチンは、ヒープが何らかの方法で初期化されることを期待する fortran ライブラリ サブルーチンを呼び出すことがよくあります。C からの手動初期化を強制するには、g95_runtime_start() を呼び出して fortran ライブラリを初期化し、完了したら g95_runtime_stop() を呼び出します。g95_runtime_start() のプロトタイプは次のとおりです。

void g95_runtime_start(int argc, char *argv[]);
ライブラリは、コマンドライン オプションを処理できる必要があります。これを行うのが面倒で、プログラムにコマンドライン引数が必要ない場合は、argc=0 と argv=NULL を渡します。

OSX/Tiger では、g95 を使用してリンカーを実行し、gcc によってコンパイルされたオブジェクト ファイルをリンクするときに、「-lSystemStubs」を含めます。

OpenGL バインディングに関する情報は、Nick Yasko のG95/OpenGL ページにあります。

タイトルとURLをコピーしました