この実習では以下の要領で成績を評価します.
この授業では,プログラミング言語の習得を目標とします.習得すると何ができるようになるのでしょうか? 大きくわけると二つのことができるようになります.
私が最近行った数値シミュレーションの例と研究の背景を下に示します.
研究の背景:「原始惑星系円盤」とよばれる、原始太陽の周囲を取り囲む円盤の中で惑星は形成されます。円盤に含まれる「ダスト微粒子」が何らかのメカニズムで集合する必要があるのですが、そのメカニズムはまだわかっていません。古くから、「重力不安定説」「直接合体説」と二つの有力な仮説があるものの、未だ混迷をきわめています。
太陽系のある程度外側では主成分は氷です.そこで、ある程度に大きくなった氷ダスト微粒子集合体の力学応答を数値シミュレーションしました.
両方の図ともに微粒子の集合体が衝突した結果です.左は通常の集合体,右は「焼結」と呼ばれるプロセスが進行した集合体です.「焼結」とは,粘土を加熱すると焼物になる原理で,微粒子の間の結合を強くするプロセスです.原始惑星系円盤の中では広い範囲で焼結が進行することが考えられており,焼結が進行すると衝突合体がしにくくなることが考えられます.このことから,「焼結が進行しない限られた領域で形成された」もしくは「焼結した成長できない小さい集合体が何らかのメカニズムで集められた」という二つの惑星形成の可能性が考えられます.
プログラムは「エディタ」とよばれるアプリケーションで作成します。エディタとは、文字列のみ作成できるもので、ワード等のワープロとは根本的に異なります。この授業では、Mac OS Xに標準で搭載されている「emacs(イーマックス)」を用います。
画面下のアイコンが並んでいる中に,バックがうすむらさき色の上にペンの絵があるアイコンがあります.一度クリックすると起動します.
以下で C-x とは CTRLキーを押しながら「x」キーを押すことを意味します. 次の3つは最低限覚えましょう!
ここで練習をしてみましょう. test.txtというファイルを開いてください. 今の場合, test.txtはまだ存在しません. その場合は新たにファイルが作成されます. 開くことができたら, ローマ字を入力してみましょう. 日本語も入力できます. 日本語を入力するためには, スペースキー右の「かな」ボタンを押す(英数字に戻すには「英数」)か,アップルキーとスペースを同時に押すと入力できるようになります. 一通り書いたらセーブしてみましょう.
昔は大型コンピュータ(メインフレーム)で作業をしていました.本来はそこにある専用端末で操作をするのですが,それは面倒ですから手元にあるコンピュータで作業をしたいと考えます.そこで専用端末を模擬したソフトウェアを手元のコンピュータで動作させ,まるでメインフレームの専用端末を使っているのと同じ環境を実現するのが端末エミュレータ(ターミナル)です.
黒い画面の左上に>が見えるアイコンがあります.一度クリックしてください.
コマンドを入力することによってファイルの移動,コピーなどをします.したがっていくつかのコマンドを覚える必要があります.また,ファイルがどのように格納されているか構造を知っておく必要があります.
とりあえず覚えてもらいたいコマンドは以下の通り:
pwd | いま自分がいるディレクトリ名の表示 |
---|
cd ディレクトリ名 | ディレクトリ間の移動 |
---|---|
cd Mail | Mailディレクトリに移動 |
cd ../ | 一つ上のディレクトリに移動 |
mkdir ディレクトリ名 | ディレクトリの作成 |
---|---|
mkdir hoge | hogeディレクトリを作成 |
rm ファイル名 | ファイルの削除 |
---|---|
rm hogehoge | ファイルhogehogeを削除 |
ls | ファイルのリスト表示 |
---|
毎週必ず行なう手順を示します.
こうしておくと後で見返すことが容易にできます.
次のプログラムを書いてみましょう.example.fという名前でさきほど作成したディレクトリの中に保存してください.
c program 14/10/02 implicit none real*8 a,b,c a=1.D0 b=2.D0 c=a+b write(6,*) a,b,c end
まず覚えてほしいフォートランのきまり:
さて作成したプログラムはこのままでは計算機は理解できません. 実行形式(バイナリ)に変換する必要があります. この操作をコンパイルと呼びます. コンパイルはエディタ上ではできません. ターミナル上で入力します.
gfortran example.fで行われます.するとa.outと言うファイルが作成されます.以下のコマンドで実行してみましょう.
./a.out
c program 2 14/10/02 implicit none real*8 a,b real c integer n a=2.1D0 b=2.1 c=2.1 n=2.1 write(6,'(D24.16,1x,D24.16,1x,D24.16)') a,b,c write(6,'(I3)') n endモニタ上の表示はどうなったでしょうか? 何桁目まで正しく表示されていますか? nの表示はどうなっていますか? 再度注意点をまとめると:
c program 2 14/10/02 implicit none real*8 a,b,c,d a=1.D0 b=2.D0 c=a+b read(5,*) d write(6,*) d write(6,*) a,b,c endと変更して実行してみよう.
open(1,FILE='test.dat')を追加してください. こうするとその後write(1,*)とすることによりtest.datに結果が 出力されます.番号に6(モニタ),5(キーボード)は使ってはいけない.これは標準入出力の番号である.
この実習ではメールのやり取りに情報メディア教育システムのWEBメールを使います.情報メディア教育システムのページ上にある「WEBメール」からログインしてください.メールアドレス,ドメイン名,パスワードが必要です.
ログインができたら,城野,諸田,野上あてにメールを出してください. アドレスは:sirono@eps.nagoya-u.ac.jp,morota@eps.nagoya-u.ac.jp,katou.shinsuke@h.mbox.nagoya-u.ac.jp です.
作業が終わったら必ずログアウトすること.次の人が使えません.
左上のアップルマークをクリックするとメニューが表示されます.その中から ログアウトを選択してください.
レポートは毎回とも城野,諸田、野上にメール で送ること.二人以上に同時にメールを送るときは sirono@eps.nagoya-u.ac.jp,morota@eps.nagoya-u.ac.jp,dosakenn5@yahoo.co.jpとコンマをつけて並べれば良い.
日程表へ戻る <<