- Fortran Builder は Windows のどのバージョンに対応していますか? [答え]
- USB キーを破損/紛失してしまいました.再発行して貰えますか? [答え]
- フローティングライセンスなど,USB キー以外のライセンス形態での利用は可能ですか? [答え]
- プロジェクトとは何ですか? [答え]
- プロジェクトは必ず作らなければいけないのですか? [答え]
- 「multiple definition of `main'」というリンクエラーが出てプログラムがビルドできません. [答え]
- 「実行」ボタンが灰色のままでボタンが押せず,プログラムの実行ができません. [答え]
- プロジェクトマネージャーの「依存ファイル」とは何ですか? [答え]
- 「コンパイル」,「ビルド」,「リビルド」の違いを教えてください. [答え]
- 「実行」と「デバッグ実行」の違いを教えてください. [答え]
- デバッグ実行時の「ステップ実行」と「トレース実行」の違いを教えてください. [答え]
- 実行時引数の設定はできますか? [答え]
- プログラムを実行するとコマンドプロンプトが一瞬で消えてしまいます. [答え]
- テキストの矩形選択はできますか? [答え]
- プログラムの実行時診断(実行時エラー検出)機能を使うにはどうすれば良いですか? [答え]
- メモリリークがあるかどうかを調べる方法を教えてください. [答え]
- プログラムの最適化(-On )を行うにはどうすれば良いですか? [答え]
- 固定形式のプログラム(*.f, *.for)を自由形式のプログラム(*.f95)に変換できますか? [答え]
- ソースプログラムの整形機能(C で言うところの cb の様な機能)はありますか? [答え]
- コールグラフとは何ですか? [答え]
- コマンドラインからコンパイラを単体で使用することはできますか? [答え]
- Fortran Builder には,連立一次方程式,線形最小二乗問題,固有値問題などが扱える数値計算ライブラリはバンドルされていますか? [答え]
- C の main 関数から Fortran の手続き(サブルーチン,関数)を呼べますか? [答え]
- 混合言語プログラミング時の f90_init と f90_io_finish という関数は何ですか? [答え]
- Fortran 77 のプログラムをコンパイルするには,何らかのコンパイラオプションを指定する必要がありますか? [答え]
- Fortran Builder が私の古い(レガシーな)Fortran 77 のプログラムを受け付けてくれません. [答え]
- Fortran 77 と Fortran 90/95 のソースファイルが混在しているプロジェクトなのですが,コンパイルは大丈夫でしょうか? [答え]
- CDABS(A),DCMPLX(X,Y),DCONJG(Z),DIMAG(Z),DREAL(Z) はどうすれば利用できますか? [答え]
- 関数 system はありますか? [答え]
- 関数 getenv はありますか? [答え]
- 関数 flush はありますか? [答え]
- 関数 fdate を含むプログラムのコンパイルができません. [答え]
- 関数 dtime や etime を含むプログラムのコンパイルができません. [答え]
- 「TAB 書式入力です」という警告メッセージが出ます. [答え]
- 「数値データ型にバイト数が指定されました」という警告メッセージが出ます. [答え]
- 「KIND 値 (*) が有効な表現方法ではありません」というエラーが出てプログラムがコンパイルできません.他のコンパイラでは問題なく動いているプログラムです. [答え]
- 「入力バッファにおいてレコードが長すぎます」または「出力においてバッファオーバーフローが発生しました」というエラーはどういうことでしょうか? [答え]
- 「実行終了時の一時停止」を指定したプログラムであるのに,コマンドプロンプトからこれを実行すると「Press ENTER to continue--」が表示されずに終了してしまいます. [答え]
- 「変数 ** のサイズ (*********** バイト) が大きすぎます」というエラーが出てプログラムがコンパイルに通りません. [答え]
- 「C:¥...¥*.exe は有効な Win32 アプリケーションではありません.」というエラーが出てプログラムが実行できません. [答え]
- デバッグ実行時に「ステップ実行」や「トレース実行」を行っているのにプログラムが最後まで走ってしまい1ステップで停止しません. [答え]
- OpenGL のテンプレートプログラムを実行したのですが,ウィンドウを「閉じる」ボタンで閉じてもプログラムが終了しません. [答え]
- 実行ファイル(*.exe)を他のマシンで実行しようとするとエラーが出て実行ができません.Fortran Builder では,正しく実行できていたプログラムです. (「libf53.dll が見つからなかったため,このアプリケーションを開始できませんでした. ... 」と言ったエラーが表示されます.) [答え]
- 「警告:浮動小数アンダーフローが発生しました」という警告メッセージがプログラムの実行時に出ます. アンダーフローがどこで発生したかを調べる方法はありますか? [答え]
- 「警告:浮動小数アンダーフローが発生しました」という警告メッセージがプログラムの実行時に出ます. この警告メッセージの出力を抑止することはできますか? [答え]
- 4倍精度をサポートしていますか? [答え]
- 編集記述子 $(改行抑止)はサポートしていないのですか? [答え]
- Fortran Builder で作成したアプリケーションの再配布は可能ですか? [答え]
- Fortran の組込み関数(例えば CDEXP)をコンパイラが認識しません(コンパイルに通りません). [答え]
- 「外部例外 EEFFACE」->「メモリが足りません」というエラーが出てビルドに通りません. [答え]
![]() |
USB キーを破損/紛失してしまいました.再発行して貰えますか? |
![]() |
USB キーを破損/紛失した場合の再発行は,所定の料金をお支払いただき,1ライセンスに付き最大1回まで行うことが可能です. 再発行をご希望のお客様は,日本 NAG(株)までお気軽にお問い合わせください. |
![]() |
「multiple definition of `main'」というリンクエラーが出てプログラムがビルドできません. |
![]() |
これは1つのプロジェクトに対して複数の主プログラムが存在しているために出ているリンクエラーです.
1つの実行ファイルに対して1つのプロジェクトが対応します. |
![]() |
「実行」ボタンが灰色のままでボタンが押せず,プログラムの実行ができません. |
![]() |
プログラムが実行中になっていませんか? プログラムの終了は Fortran Builder メニュー「実行|プログラムの終了」から行うことができます. |
![]() |
プロジェクトマネージャーの「依存ファイル」とは何ですか? |
![]() |
プロジェクトマネージャーの「依存ファイル」には Fortran プログラムから生成/利用される(プロジェクトフォルダに格納されている)モジュールファイル(*.mod)が表示されます. また,C プログラムから生成/利用される(プロジェクトフォルダに格納されている)ヘッダーファイル(*.h)が表示されます. |
![]() |
デバッグ実行時の「ステップ実行」と「トレース実行」の違いを教えてください. |
![]() |
「ステップ実行」と「トレース実行」は,デバッグ実行時にプログラムが一時停止した状態からプログラムを1行ずつ実行します. |
![]() |
実行時引数の設定はできますか? |
![]() |
はい,可能です. (設定例: 入出力リダイレクション) < input.txt > output.txt |
![]() |
プログラムを実行するとコマンドプロンプトが一瞬で消えてしまいます. |
![]() |
実行時引数の入力リダイレクションに存在していないファイルが指定されていませんか? |
![]() |
テキストの矩形選択はできますか? |
![]() |
はい,可能です. |
![]() |
プログラムの実行時診断(実行時エラー検出)機能を使うにはどうすれば良いですか? |
![]() |
プログラムの実行時診断(実行時エラー検出)機能を有効にするには,Fortran Builder メニュー「プロジェクト|プロジェクトの設定|Fortran コンパイラ|実行時診断|実行時診断オプション (-C=)」を設定してください.
「標準」はコンパイラオプション -C に相当し,「ダングリングポインタ (=dangling)」,「未定義の変数 (=undefined)」を除く全てのチェック項目が有効になります.
「全部」はコンパイラオプション -C=all に相当し,「未定義の変数 (=undefined)」を除く全てのチェック項目が有効になります. 「オプション選択」はコンパイラオプション -C=check に相当し,チェック項目(check )を選択できます. ※ オプションの詳細は Fortran Builder ヘルプ「NAG Fortran Compiler, Release 5.3 マニュアル - 2.4 コンパイラオプション」をご参照ください. Fortran Builder は検出された実行時エラーのメッセージをメッセージウィンドウに出力します.
補足: |
![]() |
メモリリークがあるかどうかを調べる方法を教えてください. |
![]() |
プログラムのメモリトレース(メモリリーク検出)機能を有効にするには,Fortran Builder メニュー「プロジェクト|プロジェクトの設定|Fortran コンパイラ|実行時診断|メモリトレースオプション (-mtrace=)」を設定してください. 「全て」はコンパイラオプション -mtrace=all に相当し,全ての詳細設定が有効になります. 「オプション選択」はコンパイラオプション -C=trace_opt_list に相当し,詳細設定(trace_opt_list )を選択できます. ※ オプションの詳細は Fortran Builder ヘルプ「NAG Fortran Compiler, Release 5.3 マニュアル - 2.4 コンパイラオプション」をご参照ください. 「ファイル出力と IDE 表示」にチェックを入れますと,メモリトレースの結果がテキストファイル fbrmtrace.log に書き出され,編集エリアに表示されます(デフォルトでは標準出力へ出力されます). (メモリ診断の出力例) 3 allocations No memory leaked [Allocated item 1 (size 1025) = Z'2BB0010'] [Allocated item 2 (size 1025) = Z'2BB0430'] [Allocated item 3 (size 1025) = Z'2BB0850'] [Deallocated item 2 (size 1025, at Z'2BB0430')] [Deallocated item 3 (size 1025, at Z'2BB0850')] [Deallocated item 1 (size 1025, at Z'2BB0010')]
注意: |
![]() |
プログラムの最適化(-On )を行うにはどうすれば良いですか? |
![]() |
プログラムの最適化は Fortran Builder メニュー「プロジェクト|プロジェクトの設定|基本設定|最適化設定」を指定してください. Fortran Builder(NAG Fortran Compiler)はデフォルトでは「最適化なし」(-O0 に相当)が設定されています. ※ オプションの詳細は Fortran Builder ヘルプ「NAG Fortran Compiler, Release 5.3 マニュアル - 2.4 コンパイラオプション」をご参照ください. |
![]() |
コマンドラインからコンパイラを単体で使用することはできますか? |
![]() |
はい,コマンドラインからコンパイラ(NAG Fortran Compiler)を単体で使用することも可能です.
スタートメニュー「すべてのプログラム|NAG|Fortran Builder 5.3|NAG Fortran コマンドプロンプト」からコンパイラにパスが通った状態でコマンドプロンプトを起動することができます.
|
![]() |
関数 system はありますか? |
![]() |
はい,Fortran Builder(NAG Fortran Compiler)は多くの POSIX システムコールを独自の組込みモジュールで提供しています. サブルーチン system を利用したプログラム例を以下に示します.
program system_example
use f90_unix_proc
call system('echo hello')
end program
|
![]() |
関数 getenv はありますか? |
![]() |
はい,Fortran Builder(NAG Fortran Compiler)は多くの POSIX システムコールを独自の組込みモジュールで提供しています.
しかしながら標準準拠の観点からは,Fortran 2003 から導入された組込みサブルーチン get_environment_variable の利用が推奨されます.
program environment_example
!
! This program displays the values of the environment variables FRED and USERNAME
! (if they exist).
!
implicit none
call show('FRED')
call show('USERNAME')
contains
subroutine show(name)
character(*), intent(in) :: name
character(:), allocatable :: value
integer len, status
intrinsic get_environment_variable
call get_environment_variable(name, status=status, length=len)
if (status == 1) then
print *, 'Environment variable "', name, '" does not exist.'
else if (status /= 0) then
print *, 'Unexpected status', status, 'for environment variable "', name, '"'
else
allocate(character(len) :: value)
call get_environment_variable(name, value=value)
print *, 'The value of environment variable "', name, '" is "', value, '".'
end if
end subroutine
end program
|
![]() |
関数 flush はありますか? |
![]() |
はい,Fortran Builder(NAG Fortran Compiler)は多くの POSIX システムコールを独自の組込みモジュールで提供しています.
しかしながら標準準拠の観点からは,Fortran 2003 から導入された flush 文の利用が推奨されます.
program slow_dots
!
! This program prints 10 dots, one per second, then finishes.
!
use iso_fortran_env, only : output_unit
implicit none
integer i
do i = 1, 10
write (*, '(a)', advance='no') '.'
call delay
flush (output_unit)
end do
print *, 'Done.'
contains
subroutine delay
integer cps,start,now
intrinsic system_clock
call system_clock(count=start, Count_Rate=cps)
if (start == -huge(start)) stop 'No clock.'
do
call system_clock(count = now)
if (now < start .or. now >= start + cps) exit
end do
end subroutine
end program
|
![]() |
「TAB 書式入力です」という警告メッセージが出ます. |
![]() |
TAB 書式は Fortran 言語標準では拡張機能に位置づけられます. |
![]() |
実行ファイル(*.exe)を他のマシンで実行しようとするとエラーが出て実行ができません.Fortran Builder では正しく実行できていたプログラムです. (「libf53.dll が見つからなかったため、このアプリケーションを開始できませんでした。 ... 」といったエラーが表示されます.) |
![]() |
Fortran Builder メニュー「プロジェクト|プロジェクトの設定|リンク|オプション|Fortran ランタイムライブラリの非共有(静的)バージョンを結合 (-unsharedrts)」(コンパイラオプション -unsharedrts に相当)にチェックを入れて,再度ビルドを行ってください.
このオプション(-unsharedrts)を指定しますと,NAG Fortran Compiler の実行時ライブラリがスタティック(静的)にリンク(結合)されます.
また,実行時ライブラリをスタティック(静的)にリンク(結合)したくない場合(つまり,このオプション(-unsharedrts)を付けない場合)は,実行ファイルと共に実行時ライブラリが必要となります. 32-bit アプリケーション(実行ファイル)の場合:
64-bit アプリケーション(実行ファイル)の場合:
※ オプションの詳細は Fortran Builder ヘルプ「NAG Fortran Compiler, Release 5.3 マニュアル - 2.4 コンパイラオプション」をご参照ください.
補足:
注意: |
![]() |
4倍精度をサポートしていますか? |
![]() |
はい,サポートしています. Fortran Builder(NAG Fortran Compiler)が提供するデータ型の詳細は Fortran Builder ヘルプ「NAG Fortran Compiler, Release 5.3 マニュアル - 2.16 データ型」をご参照ください. 《 補足1: 変数宣言や定数表現について 》
ポータビリティなどを考えると selected_real_kind 組込み関数を用いて,必要な有効桁数を持つ型の kind 番号を取得する方法が推奨されます. プログラム例: module my_precision implicit none ! 有効桁数から種別番号を求めるために selected_real_kind を用いる. ! 例えば p=5 等とすると単精度 p=15 等とすると倍精度の種別番号が取得される. integer, parameter :: wp = selected_real_kind(p=30) end module my_precision program precision use my_precision implicit none real(wp) x ! wp には指定された有効桁数を持つ型の種別番号が格納される. complex(wp) c ! real と complex で種別番号は対応している. x = 0.1_wp ! このような方法で指定種別の定数表現が可能である. c = (0.5_wp, 1.2_wp) print *, x print *, c end program 出力例(p=5): 0.1000000 (0.5000000,1.2000000) 出力例(p=15): 0.1000000000000000 (0.5000000000000000,1.2000000000000000) 出力例(p=30): .10000000000000000000000000 (0.5000000000000000000000000,1.20000000000000000000000000) 《 補足2: 組込み関数の個別名について 》
Fortran 言語標準では4倍精度に対応した個別名は定義されていません. |


