FAQ / よくある質問とその回答
ホームに戻る
a.out と入力してもプログラムが実行できない。
./a.out として下さい (メディアセンターではセキュリティのためにコマンドpathにカレントディレクトリーを加えていません。)
| |
|
./a.out を実行すると、前に作ったプログラムが実行される。
新しいプログラムのコンパイルがうまくいっていません。コンパイル時に何も指定しないと、a.outという実行ファイルができますが、新しいプログラムが正しくコンパイルされないと前の実行ファイルが書き換えられずに残っているのです。プログラムのバグを見つけてもう一度コンパイルして下さい。
| |
|
コンパイルがうまくいかない。
f90 (プログラム名).fとした時に、 nodiagnostics generated と表示されるとうまくコンパイルされてます。以下のミスが目立ちます。
- 固定形式の場合にファイル名の末尾が .f となっているか。 自由形式の場合ファイル名の末尾が .f90 となっているか。
- 主手続きのプログラム名の宣言に . ,など用いてはならない文字を使っていないか? (program examは良いが、 program exam.f はだめ)
- 算術記号(*)を省略していないか。
| |
|
コンパイル時にはエラーメッセージがでなかったのに実行すると異常な結果になる。
文法エラーよりも発見が難しいですが、冷静にプログラムの流れを追えばどこでミスをしたのかが必ず発見できます。必要に応じて print 文をプログラム中に埋め込み、鍵となる変数の値を途中で書き出すこともミスの在処を特定するのに役立ちます。
- 除算を実数で行なう時、5/2と書くと結果として、整数の2として返ってきます。このときには5.0/2.0と書く必要があります。(x=5/2書いた場合、
まず整数型で5/2が評価されて2となったあとに 実数型に変換されてx に代入されるので xの値は2.0となります。)
- 配列を宣言するときには、変数として使う配列のサイズよりも大きくなければいけません。(宣言した配列の範囲を超えて代入がなされると、ほかの変数の値を壊すことになります。)
| |
|
プログラムファイルをプリントアウトするには?
a2ps (program).f | lp として下さい。
2000.5.19
ta@theoc.kuchem.kyoto-u.ac.jp