ver. 2018/4/13 プログラミング 計算機利用上の Tips 補足資料 分類 項目 ページ 計算機利用 ホスト計算機への接続方法 Unix (Linux) の基本的なコマンド容量制限についてターミナルで文字を大きくする方法 xtermで文字を大きくする方法 Fortran プログラミングについて最近あった事例 : コンパイル 実行時のエラーコンパイルオプションプログラムは正しそうなのに エラーが出る場合データファイルは正しそうなのに エラーが出る場合 描画 グラフィックスの出力方法 Mac OSXの画面のキャプチャ ( 付 :Windowsの画面のキャプチャ) 1
ホスト計算機への接続方法 (Mac) 1 文字端末としての利用 アプリケーション ユーティリティ ターミナル を起動 ssh -l loginid ah.s.kyushu-u.ac.jp パスワードの入力 2 X 端末としての利用 ( 日本語が使えないので 文字化けする ) アプリケーション ユーティリティ XQuartz を起動 xterm (X11) が開く ssh -X -l loginid ah.s.kyushu-u.ac.jp パスワードの入力 3 X 端末としての利用 ( 日本語が見えるので使いやすい ) アプリケーション ユーティリティ ターミナル を起動 ssh -Y -l loginid ah.s.kyushu-u.ac.jp パスワードの入力 日本語表示が可能 2
ホスト計算機への接続方法 (Windows) 1 文字端末としての利用 tera term 等のターミナルソフトを起動 下左図のように設定して接続し 下右図の画面で ユーザ名 に ID, パスフレーズ にパスワードを入力する 2 X 端末としての利用 Xming を使用 Windows は標準では Xwindow 環境を有しないので まず Xming をインストールする 3
基本的な 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 [ コマンド名 ] 指定したコマンドのマニュアルの表示 5
容量制限について ~ 教育情報サービスのページの記載 http://ecs.kyushu-u.ac.jp/?page_id=3509 6
ターミナル で文字を大きくするには ターミナル メニュー 環境設定 7
( 方法その 1) xterm で文字を大きくするには 次の内容のファイルを作り.Xdefaults という名前で保存する xterm 上で次のコマンドを実行する $ xrdb.xdefaults アプリケーション メニューから 新たに xterm を実行する (Mac) ( 方法その 2) XTerm*VT100*font: 10x20 xterm を実行する際のオプションで フォントサイズを指定する $ xterm -fn 10x20 ( 新しいウインドウが開く ) 使えるフォントサイズは 5x7 5x8 6x9 6x10 6x12 6x13 7x13 8x13 7x14 9x15 8x16 10x20 12x24 など 対応していないサイズを指定すると デフォルトのサイズになってしまう模様 8
プログラミングについて いきなりプログラムを書くのではなく 計算式 計算手順を明確にしておく ( 特に複雑な処理の場合 ) フローチャートを書く プログラム中に write 文を入れ 変数の値を書き出す 簡単な例で検証する サブルーチン毎に動作確認をする 9
最近あった事例 : コンパイル 実行時のエラー 値を代入していない変数の値は ゼロではなく 不定 サブルーチンや関数の引数の型 (real, integer など ) の不一致 宣言した配列サイズを超えて使おうとした fortran95( 自由形式 ) では 1 行の文字数が 132 文字まで 複数行にわたって 1 つの式を書く場合は 継続行として 先行する行の末尾に & をつける a = a + b + c a = a + b & + c 10
コンパイラオプションについて プログラム実行中にエラーが発生した場合にエラー情報を出力させる方法として コンパイラオプションの利用がある コンパイラによって 使えるものと使えないものがあるのに注意 使用例 f95.f90 -fbounds-check 目的 プログラム実行時に 配列宣言した範囲を超えた配列要素を使おうとしたときに 警告が表示される (gfortran でも使える ) 11
プログラムは正しそうなのにコンパイルでエラーが出る場合 エラーメッセージに UTF-16 がどうしたこうした と出る場合 Emacs でプログラムを編集した際に ファイルの先頭に妙な文字が入ってしまっていることがある (Emacs 上では見えないため 原因がわかりづらい ) 確認方法 $ cat ファイル名 として 画面上にファイルの中身が表示されるので 先頭に?? があるかどうかを確認する 対処方法 (?? があった場合 根本的な解決ではないが ) 上で 画面に表示されたものの?? を除く部分をマウスで選択してコピー Emacs 等のエディタで 新しいファイルの編集を行い コピーしたものを貼付け て 別名のファイルとして保存する 12
プログラムは正しそうなのにコンパイルでエラーが出る場合 (2) コンパイル時に 何も文字がない行でエラーが発生する場合は 全角スペース ( 日本語文字の空白文字 ) が入っている可能性がある ( エディタ上では見えないため 原因がわかりづらい ) 対処 確認方法 エラーが発生している行の左端に コメント記号を入れてみる エラーが発生している行を消してみる スペースの部分で1 文字ずつ 全角文字が入っていないかをチェックする 13
データは正しそうなのに実行時に読み込みエラーが出る場合 データファイル読み込み時に プログラムもデータも正しそうなのに Fortran runtime error: End of file のエラーメッセージが出る場合 Emacs でデータファイルを編集した際に 中に妙な文字が入ってしまっていることがある (Emacs 等からではその文字が見えないため 原因がわかりづらい ) 対処方法 怪しげなデータは捨ててしまって 新しくデータファイルを作り直す 14
X Window System で描画プログラムを実行する場合 XQuarts, X11(xterm) 上で ssh -X ah.s.kyushu-u.ac.jp でログインし 実行 または ターミナル でホスト計算機に ssh -Y ah.s.kyushu-u.ac.jp でログインし 実行 これをやらずに ターミナル 上で実行すると Segmentation なんとかというエラーメッセージが表示される コンパイルする場合は ターミナル でも XQuartz でもどちらでもよい ホスト計算機にログインした時に.Xauthority でエラーが発生 とかいうエラーメッセージが表示される場合は 個人の使用容量制限 (100MB?) をオーバーしている可能性がある 不要なファイルを削除 だめなら パソコンから一旦ログアウトしてみる 15
グラフィックスの出力方法 X window でディスプレイ上に表示し 作図結果を見る. eps 形式でファイルに出力 ダブルクリックして プレビュー で開いて確認.(PDF に変換される ) Word に貼付ける場合は 挿入 写真 ファイルからの画像 ファイルを選択. ( または 挿入 図 ファイルを選択 ) 16
Mac OSX で画面のキャプチャ アプリケーション ユーティリティ グラブ グラブを起動したら 取り込み ウインドウ と選択して あとは表示に従って操作 ( 参考 )Windows の場合は Print Screen を押すと 画面全体がクリップボードにコピーされる 後は Word 等で 貼り付け とする Alt + Print Screen をおすと 選択したウインドウのみがコピーされる 17