Comments
Description
Transcript
マテリアルシミュレーション I 後半 第 1 回 (6/5)
マテリアルシミュレーション I 後半 第 1 回 (6/5) - 端末の利用、エディタ、コンパイル、実行 今日の目標 iMac 端末の使い方、エディタでのプログラム入力、プログラムのコンパイル(実 行ファイルの作成)と実行方法を理解する。 0. Simulation [英]:シミュレーション[日] 1. 授業の概要 1) 目的 前半で Excel を用いた統計計算、数値計算法 を学んだ。 後半では FORTRAN77 の文法 を学ぶ。代表的な数値計算用言語である FORTRAN の文法を初歩から学び、プロ グラムを自作できるようにする。 冬学期のマテリアルシミュレーション II において、 マテリアル工学で現れる偏微分方程式についてのシミュレーション を行う。 • マテリアルシミュレーション I - プログラミングの基礎と統計計算の習得 時間:夏学期金曜日 5 時限 場所:情報基盤センター(略称:ECC) 1 階 大演習室1 • マテリアルシミュレーション II 担当:渡邉先生、神原先生 冬学期火曜日 4 時限、ECC 大演習室または 88 号講義室 偏微分方程式(拡散方程式等)に関するシミュレーション、プログラミング演習 2) マテリアルシミュレーション I の具体的な内容 後半(6/5~):FORTRAN によるプログラミングの基礎 (1) 担当:石川 (2) プログラムの入力、コンパイル、実行によるプログラミングの理解 演習やレポート課題を通じたフローチャート、プログラムの記述 (3) 内容(予定) 6/5 端末の使い方、エディタによるプログラム入力、コンパイル、実行 6/12 フローチャート・アルゴリズム[コンピュータによる処理手順]、変数、 型宣言、入出力、四則演算 1 6/19 繰り返し、条件判断 6/26 配列、ファイル処理 7/3 関数、サブルーチン 7/10 最終問題 (4) 成績評価:出席およびレポート提出 3) 講義ノート 次のアドレスのホームページに公開しています。 http://www.emat.t.u-tokyo.ac.jp/Lecture 確認して下さい。 2. FORTRAN FORmula TRANslation の略称。1957 年に IBM 社によって開発された科学技術計 算用の言語。コンパイラ言語(ソースプログラムを機械語に翻訳するプログラム) のひとつであり、実行速度が速い。 FORTRAN77 は 1977 年に米国で規格化された。 その後、Fortran90 や Fortran95 などへ機能を増強しつつ進化している。科学技術計 算においては過去の資産が多いため、現在でも FORTRAN は主要な言語として用 いられている。 FORTRAN とともに、よく用いられる言語として C 言語がある。C 言語はシス テム開発などにも用いられており用途が幅広い。UNIX も C 言語で記述されてい る。ただし、C 言語では当初複素数を直接取り扱うことができなかった(現在は可)。 講義では FORTRAN によるプログラミングを行うが、一つの言語に習熟すれば 別の言語の習得も比較的容易となる。 参考書の例: 浦昭二 編、FORTRAN77 入門(改訂版) 培風館、1999. 3. 計算機による数値計算の流れ (1) 動機となる問題を方程式の形で数学的に表現する。 例えば、電磁界を知りたいならば Maxwell 方程式 ↓ (2) 数値計算で解くための方法を問題に対して適用し、解く手続きをアルゴリズ ム(Algorism)に翻訳する。 命令の実行手順を示す「フローチャート」(詳細は次週以降)を書く。 ↓ (3) プログラムを作成し、計算機に入力する。 標準的なものであれば、計算機ライブラリと呼ばれるソフトウェアの形でプ ログラムが提供されている場合がある。この場合はライブラリを利用したほ うが効率的である。 ↓ (4) プログラムをコンパイルし、計算機が直接理解できる機械語に翻訳する。 2 ↓ (5) 計算の途中経過や最終結果をディスプレイやファイルに出力する。 ↓ (6) 得られた結果がおかしい場合がある。原因がプログラムの記述ミスにあれば、 そのミスを取り除く。それでもおかしい場合は、アルゴリズムや最初の問題 設定、数学的表現などを根本的に見直す。 ↓ (7) 計算結果を吟味して満足な解が得られたとすれば、作業終了となる。 4. 具体的なプログラムの実行 (1) プログラムの実行手順を示すフローチャートを書く ↓ (2) エディタ [注 1] により FORTRAN のソースプログラムを書く ↓ (3) FORTRAN コンパイラ [注 2] によりソースプログラムをコンパイル ↓ (4) 実行 ・例 入力した文字列をそのまま出力するプログラムの作成 (1) プログラムの実行手順をフローチャートとして示す。 (書き方のルールは次週以降に説明) 図 1-1 入力した文字列をそのまま出力するプログラムのフローチャート. 3 (2) エディタによりフォートランのソースプログラムを入力 UNIX [注 3]の立ち上げ 2-1) 本体の左側後ろにある丸いボタンを押して、電源を入れる。 2-2) ユーザ名とパスワードを入力する。 2-3) 画面のターミナルのアイコンをクリックすると、UNIX のウィンドウが現れる。 図 1-2 ターミナルのアイコン. 図 1-3 UNIX のウィンドウ. 注 1: UNIX AT&T(米国電話電信会社)のベル研究所により 1969 年、DEC 社のミニコン PDP7 で開発さ れたもので、C 言語で記述されたワークステーションの標準的な OS となった。カリフォルニ ア大学バークレー校で改良されたバークレー版 UNIX もある。異なる機種に移植が容易、仕 様が一般公開されている、階層的なファイルシステム、ネットワークが組み易い、という特 長を持つ。 4 作業ディレクトリの作成 2-4) 入力モードの切替 画面右上に と出ている場合は、日本語入力になっているため、 をクリックし、 あるいは に変更する。 英数字が直接入力できるようになる。 補足 1:日本語入力ができない場合[Fortran の授業ではあまり必要ありませんが] 画面右上の をクリックしても、日本語入力 のマークが現れず、日本語の入力ができない場合は、以下の設定を変更する。 クリック チェック を入れる 図 1-4 使用言語の追加. 5 その他の設定は、主に「システム環境設定」から変更可能。 クリック 図 1-5 システム環境設定. 2-5) UNIX ウィンドウに現れた行の最後の文字「$」をプロンプトと呼ぶ(システムに よっては「%」や「¥」などの場合もあり)。 プロンプト「$」に続いて、コマンド(命令文)を入力する。 2-6) mkdir fortran↵ ディレクトリ「fortran」を作成 (パソコンでいうフォルダ)。 今後使うプログラムファイルを格納しておくフォルダを作る。 一回作れば次回以降は作る必要はない。 エル 2-7) ls↵ ディレクトリ fortran が作成されたことを確認 (“list”の略):ファイルの一覧を表示。 以下のコマンドも後で比較してみよ。 ls -l ↵:詳細表示 ls -F ↵:ファイルの型を示して表示 実行形式ファイルには*が、ディレクトリには、/が付く ls -l -F ↵:ls -l と ls -F の同時実行 2-8) pwd↵ 現在の作業ディレクトリ(自分がどのディレクトリにいるのか)の確認。 2-9) cd fortran↵ ディレクトリ fortran へ移動する。 2-10) pwd↵ 作業ディレクトリ fortran へ移動したことを確認。 2-11) ls↵ ディレクトリ fortran の中身を確認 (作ったばかりなので空のはず)。 6 補足 2:ディレクトリの移動 現在作業しているディレクトリから「下」の階層のディレクトリ「fortran」に移 動する UNIX コマンド cd fortran↵ 現在作業しているディレクトリから「上」の階層のディレクトリに戻る UNIX コ マンド cd .. ↵ ピリオド「.」を二個続ける 現在作業しているディレクトリ「fortran」と同じ階層のディレクトリ「simulation」 に「直接」移動する UNIX コマンド cd ../simulation ↵ 図 1-6 ディレクトリの移動. 補足 3:ディレクトリ作成の別の方法(Mac OS X 上でのフォルダ作成) ・「Finder」(顔のアイコン)をクリックする。 図 1-7 Finder のアイコン. 7 ・以下のようなウィンドウが現れる。 ホームフォルダが選 択されている。この 中身が右側に表示さ れている。 図 1-8 ホームフォルダのウィンドウ. ・画面左上の「ファイル」から「新規フォルダ」を選択。 図 1-9 新規フォルダの作成. ・「名称未設定フォルダ」ができるので、フォルダ名を入力。 図 1-10 名称未設定フォルダ. 8 プログラムの入力 2-11) 次のアイコンをクリックすると Emacs が起動する。保存先のディレクトリが 「fortran」になるように注意する。 図 1-11 Emacs のアイコン. ① ② フ ォ ル ダ 「 fortran」 に フ ァ イ ル 「 prog1.f」 を作成 図 1-12 Emacs の起動画面の例. 注 2: エ デ ィ タ (editor) 文字データ(テキストファイル)の作成、変更、追加、削除などを行うプログラム。本来、プ ログラムを記述するために作られているので、機能が限定されている。 2-12) 以下のプログラムを Emacs 上で入力する。「キーボードで入力した文字と同じ 文字をディスプレイに出力する」プログラムである。 C■■■■■PROGRAM1 ■■■■■■CHARACTER■NAME*10 ■■■■■■READ■*, NAME 9 “C”をつけるとコメント文、注釈行 変数(文字変数)の定義 キーボードから文字を入力 ■■■■■■PRINT■*, NAME ■■■■■■STOP ■■■■■■END ディスプレイに出力 プログラム終了 コンパイラに終了を伝える スペース(英字の半角スペース) 命令文は第 7 カラムから第 72 カラムの間に書く 「tab」キーを押すと何回もスペースを押さなくてすむ わかりやすくするために、最初の行に以下のような記述をしておいてもよい Cーーー+ーーーー1ーーーー+ーーーー2ーー・・・ ・・・ーー7ーー C■■■■■PROGRAM1 図 1-13 Emacs でのプログラム入力. 10 2-13) 入力が終わったら、保存する。 ウインドウを 閉じる 保存 (上書き保存) 図 1-14 Emacs でのプログラム保存. (3) ソースプログラムをコンパイル(実行ファイルの作成) 3-1) g95 prog1.f↵ プログラム prog1.f をコンパイルし、実行ファイルを作成する。 3-2) ls –l↵ 実行ファイル、「a.out」が出来たことを確認。 注 3: コ ン パ イ ラ (compiler) プログラムを計算機に理解できる機械語に変換するプログラムのこと。 コンパイラの作業:(1)プログラムを構成する単語を分析する、(2)プログラムの文法的な誤 りをチェックして、解析を進める、(3)プログラムの意味を解析する、(4)機械語のコードを作 る。 (4) 実行 4-1) ./a.out↵ 実行したいファイルの前に「./」を入れる。 入力した文字列と同じ文字列が出力されることを確認。 11 例えば:abcdefg↵ と入力すると、abcdefg と出力が返ってくる。 入力 出力 図 1-15 プログラムの実行例. (5) 終了 5-1) 必要ならば、a.out のファイル名を変更 mv a.out prog1.out↵ (a.out のファイル名が prog1.out になる) その他 cp prog1.f prog2.f↵: prog1.f と同じ内容のファイル prog2.f を作成 ctrl + c:コマンドの中止 (プロンプト$が戻ってこなくなってしまったときなど) 「 control」 キ ー と 「 c」 を 同 時 に 押 す 5-2) exit↵ ウインドウが閉じる。 5-3) 画面左上のターミナルをクリックし、”ターミナルを終了”。 5-4) 画面左上のアップルマークをクリックし、システム終了。 端末を使用し終わったら、ログアウトし、電源を切ってから終わる。 使ったまま放置しない。 12