プログラミング、計算機利用上のTips
分類 項目 ページ 計算機利用 ホスト計算機への接続方法 Unix (Linux)の基本的なコマンド 容量制限について ターミナルで文字を大きくする方法 xtermで文字を大きくする方法 Fortran プログラミングについて 最近あった事例 : コンパイル・実行時のエラー コンパイルオプション プログラムは正しそうなのに、エラーが出る場合 データファイルは正しそうなのに、エラーが出る場合 描画 グラフィックスの出力方法Mac OSXの画面のキャプチャ (付:Windowsの画面のキャプチャ)
補足資料
ホスト計算機への接続方法 (Mac)
① 文字端末としての利用
・「アプリケーション」→「ユーティリティ」→「ターミナル
」を起動 「ssh -l loginID ah.s.kyushu-u.ac.jp」 → パスワードの入力② X端末としての利用
(日本語が使えないので、文字化けする)
・「アプリケーション」→「ユーティリティ」→「XQuartz
」を起動 → xterm (X11)が開く 「ssh -X -l loginID ah.s.kyushu-u.ac.jp 」 → パスワードの入力③ X端末としての利用
(日本語が見えるので使いやすい)
・「アプリケーション」→「ユーティリティ」→「ターミナル
」を起動 「ssh -Y -l loginID ah.s.kyushu-u.ac.jp」 → パスワードの入力 日本語表示が可能 2ホスト計算機への接続方法 (Windows)
① 文字端末としての利用
・「tera term」等のターミナルソフトを起動 ・下左図のように設定して接続し、下右図の画面で「ユーザ名」にID, 「パスフレーズ」に パスワードを入力する。② X端末としての利用
・「 Xming 」を使用 ・Windowsは標準ではXwindow環境を有しないので、まず、Xmingをインストールする。基本的なLinux(UNIX)のコマンド(1)
ls 現在のディレクトリの内容を表示 ls [ファイル1] [ファイル2] 指定したファイル名の一覧を表示 ls [ディレクトリ] 指定したディレクトリの内容を表示 ls -l [ディレクトリ] 指定したディレクトリ内のファイルの属性の表示 pwd 現在のディレクトリ名を表示 cd [ディレクトリ] 指定したディレクトリにカレントディレクトリを変更 cd ホームディレクトリへ移動 cat [ファイル] 指定したファイルの内容を表示 more [ファイル] 指定したファイルの内容をenterキーで進めながら表示 cp [ファイル1] [ファイル2] ファイル1の内容をファイル2にコピー rm [ファイル1] 指定したファイルを削除 rmdir [ディレクトリ] 指定したディレクトリを削除(ディレクトリが空の場合) rm -r [ディレクトリ] 指定したディレクトリを削除する。(ディレクトリ内の内容も削除) 4基本的なLinux(UNIX)のコマンド(2)
mv [ファイル1] [ファイル2] ファイル名を[ファイル1]から[ファイル2]へ変更 mv [ファイル] [ディレクトリ] 指定したファイルを指定したディレクトリへ移動 mkdir [ディレクトリ] ディレクトリを指定したディレクトリ名で作成 chmod ファイル・ディレクトリのパーミッション変更 ps プロセスの状態を表示 kill [プロセス番号] 指定したプロセスを強制終了 ex [ファイル] ラインエディタ emacs [ファイル] テキストエディタ vi [ファイル] テキストエディタview [ファイル] テキストエディタ (Read only mode) man [コマンド名] 指定したコマンドのマニュアルの表示
容量制限について
~ 教育情報サービスのページの記載
• http://ecs.kyushu-u.ac.jp/?page_id=3509
「ターミナル」で文字を大きくするには、
「xterm」で文字を大きくするには、
(方法その1)
● 次の内容のファイルを作り、「.Xdefaults」という名前で保存する。 ● xterm上で次のコマンドを実行する。 $ xrdb .Xdefaults ● 「アプリケーション」メニューから、新たに「xterm」を実行する。(Mac)(方法その2)
● xtermを実行する際のオプションで、フォントサイズを指定する。 $ xterm -fn 10x20 (新しいウインドウが開く) ◯ 使えるフォントサイズは、5x7 5x8 6x9 6x10 6x12 6x13 7x13 8x13 7x14 9x15 8x16 10x20 12x24 など。 対応していないサイズを指定すると、デフォルト のサイズになってしまう模様。 XTerm*VT100*font: 10x20 8プログラミングについて
・いきなりプログラムを書くのではなく、計算式、計算手順を明
確にしておく。(特に複雑な処理の場合)
・フローチャートを書く。
・プログラム中にwrite文を入れ、変数の値を書き出す。
・簡単な例で検証する。
・サブルーチン毎に動作確認をする。
最近あった事例 : コンパイル、実行時のエラー
・値を代入していない変数の値は、ゼロではなく、不定。
・サブルーチンや関数の引数の型(real, integerなど)の不一致
・宣言した配列サイズを超えて使おうとした。
・fortran95(自由形式)では、1行の文字数が132文字まで。
複数行にわたって1つの式を書く場合は、継続行として、先行
する行の末尾に「&」をつける。
10a = a + b + c
a = a + b
&
+ c
コンパイラオプションについて
・プログラム実行中にエラーが発生した場合にエラー情報を
出力させる方法として、コンパイラオプションの利用がある。
・コンパイラによって、使えるものと使えないものがあるのに注
意。
使用例 目的 f95 ○○.f90 -fbounds-check プログラム実行時に、配列宣言した範囲を超えた 配列要素を使おうとしたときに、警告が表示される。 (gfortranでも使える)プログラムは正しそうなのにコンパイルでエラーが出る場合
エラーメッセージに、「UTF-16がどうしたこうした」と出る場合、Emacsでプ ログラムを編集した際に、ファイルの先頭に妙な文字が入ってしまっているこ とがある。(Emacs上では見えないため、原因がわかりづらい。)確認方法
$ cat ファイル名 として、画面上にファイルの中身が表示されるので、先頭に「??」があるか どうかを確認する。対処方法
(「??」があった場合。根本的な解決ではないが。)
・ 上で、画面に表示されたものの「??」を除く部分をマウスで選択してコピー ・ Emacs等のエディタで、新しいファイルの編集を行い、コピーしたものを貼付け て、別名のファイルとして保存する。 12プログラムは正しそうなのにコンパイルでエラーが出る場合(2)
コンパイル時に、何も文字がない行でエラーが発生する場合は、 全角スペース(日本語文字の空白文字)が入っている可能性がある。 (エディタ上では見えないため、原因がわかりづらい。)対処・確認方法
・エラーが発生している行の左端に、コメント記号を入れてみる。 ・エラーが発生している行を消してみる。 ・ スペースの部分で1文字ずつ、全角文字が入っていないかをチェックする。データは正しそうなのに実行時に読み込みエラーが出る場合
データファイル読み込み時に、プログラムもデータも正しそうなのに、「Fortran
runtime error: End of file」のエラーメッセージが出る場合、Emacsでデータファ イルを編集した際に、中に妙な文字が入ってしまっていることがある。
(Emacs等からではその文字が見えないため、原因がわかりづらい。)
対処方法
・ 怪しげなデータは捨ててしまって、新しくデータファイルを作り直す。
X Window Systemで描画プログラムを実行する場合
● 「XQuarts, X11(xterm)」上で「ssh -X ah.s.kyushu-u.ac.jp」でログインし、 実行。 または、 ● 「ターミナル」でホスト計算機に「ssh -Y ah.s.kyushu-u.ac.jp」でログインし、 実行。 ●コンパイルする場合は、「ターミナル」でも「XQuartz」でもどちらでもよい。