FORTRAN フォートラン

本授業で使用するプログラミング言語
FORTRAN フォートラン
・世界最初のプログラミング言語。 ・科学技術計算用の言語。 ・スーパーコンピュータを使った計算では主流。 ・東京大学・理学部・地球惑星物理学科では 三年前期の必修科目
1
この授業で使うプログラム
・プログラム1 (ファイル名) program01.f90 →Fortranプログラムの実行の仕方 ・プログラム2 (ファイル名) program02.f90 →繰り返し計算 ・プログラム3 (ファイル名) tsunami01.f90 →津波の数値シミュレーション&データグラフ化 ・プログラム4 (ファイル名) tsunami02.f90 →東日本大震災の津波シミュレーション1 ・プログラム5 (ファイル名) tsunami02-­‐2.f90 →東日本大震災の津波シミュレーション2 2
プログラム1
program01.f90 (デスクトップのFortranフォルダ) a=1.!
b=2.!
aとbの和、差、積、商 wa=a+b!
を計算して結果を sa=a-b!
表示するプログラム seki=a*b!
syo=a/b!
write(*,*)
'b=',b!
write(*,*)
write(*,*)
write(*,*)
write(*,*)
stop!
end!
'a=',a,
'a+b=',wa!
'a-b=',sa!
'a*b=',seki!
'a/b=',syo!
3
プログラミングの流れ
コンパイラ 人が分かるプログラム を翻訳して、 コンピュータが分かる 実行ファイルを作る プログラムを書く gfortran program01.f90
人が分かるプログラム program01.f90
実行ファイル a.exe
コンピュータが 分かるプログラム 中身は見られない コンピューターで実行
コンピュータは分からない
4
プログラム1の実行の仕方
1. コマンドプロンプトを立ち上げる ダブル
Fortranフォルダ内のCommand Promptアイコンをクリック
ダブル クリック
コマンドプロンプトのアイコン
コマンドプロンプト
5
プログラム1の実行の仕方
2. プログラムのコンパイル gfortran program01.f90 とタイプ & Enterキー Enterキーを押す
3. 実行ファイル a.exe ができる 6
プログラム1の実行の仕方
4. 実行ファイルの実行 a.exeとタイプ& Enterキー Enterキーを押す
7
プログラム1の実行の仕方
Fortran プログラムの実行結果が表示される
8
プログラム2
program02.f90 (デスクトップのFortranフォルダ) wa=0.!
do i=1,100!
i=1からi=100 この間を i=1から100 までの和を計算して wa=wa+i!
まで繰り返す
表示するプログラム end do!
write(*,*) 'wa=',wa!
stop!
end!
wa+iの計算結果を再びwaに代入する という意味(wa+i → wa) 数学的な等式ではないことに注意。 9
プログラム2の実行の仕方
プログラムのコンパイル コマンドプロンプト上で gfortran program02.f90 とタイプ+Enterキー 実行ファイル a.exe ができる。 実行ファイルの実行 コマンドプロンプト上で a.exeとタイプ+Enterキー 計算結果が表示される 10
プログラム3 津波の数値シミュレーション
グリッド数
iq=500
グリッドサイズ dx=200m
時間ステップ dt=1秒
両端が固定壁の海
Z(1)
U(1)
Z(2) Z(3) Z(4)
U(2) U(3)
水深depth=100m
Z(499) Z(500) Z(501)
U(498) U(499) U(500)
幅width=100km
固定壁に接した所で 水平流速はゼロ
固定壁に接した所 水平流速はゼロ
プログラム3 津波シミュレーションプログラム tsunami01.f90 U i ( t − Δt ) → ub(i)
Ui (t )
→ up(i)
U i (t + Δt) → uf(i)
Zi ( t − Δt ) → zb(i)
Zi (t )
→ zp(i)
Zi (t + Δt) → zf(i)
12
U i ( t + Δt ) = U i ( t − Δt ) −
2gΔt
( Zi+1 (t ) − Zi (t ))
Δx
Z i ( t + Δt ) = Z i ( t − Δt ) −
2Δt
( H iUi (t ) − H i−1Ui−1 (t ))
Δx
13
14
プログラム3の実行の仕方
プログラムのコンパイル コマンドプロンプト上で gfortran tsunami01.f90 とタイプ+Enterキー 実行ファイル a.exe ができる。 実行ファイルの実行 コマンドプロンプト上で a.exeとタイプ+Enterキー ファイル(u.data, z.data) に計算データを出力 計算データのグラフ化(Gnuplotを利用) 15
プログラム3の計算データのグラフ化
1. gnuplotを立ち上げる ダブル
Fortranフォルダ内のgnuplotアイコンをクリック ダブル クリック
gnuplotのアイコン
16
プログラム3の計算データのグラフ化
2. 計算データのプロット ・ n=0 とタイプ & Enterキー ・ load “anime01.plt” とタイプ & Enterキー 17
水深(depth)を変えてみる 課題
⇒津波の伝播速度が変化することを観察する。 水深を大きくしすぎると計算が発散する。 その場合は時間ステップΔtを短くする。 Δx
> gH
安定に計算できる条件(CFL条件) Δt
19
プログラム4 38.039439,144.547119 - Google マップ
東日本大震災の津波シミュレーション
仙台空港を横切る(北緯38.13˚)海底地形 仙台空港
×
北緯38.13度
震源
水深(m)
11/05/05 0:57
住所 38.039439,144.547119
震源位置
水平距離(km)
東北地方太平洋沖地震
標高(m)
東北地方太平洋沖地震特設サイト
地震・津波情報を Google マップで見る
http://maps.google.co.jp/maps?q=38.039439,144.547119&num=1&s…=UTF8&ll=37.974515,141.866455&spn=2.814504,4.411011&z=8&pw=2
ページ 1/1
仙台空港
水平距離(km)
・海底水深データ: 日本海洋データセンター(JODC) hUp://jdoss1.jodc.go.jp/cgi-­‐bin/ 1997/depth500_file.jp ・地上標高データ: NASAスペースシャトル地形データ hUp://www2.jpl.nasa.gov/srtm/ 20
20
42°
0
東日本大震災での海底の隆起・沈降
−0.5
40°
0.5
0
38°
5
−0.
05
1
1.5
−1
2
−2
37°
4.5
43.5
32.5
5.5
0
−1
.5
2.5
−1
39°
−1
0.5 1 1.5
2
−0
.5
.5
0
41°
36°
0
0.5
100 km
21
35°
138°
139°
140°
141°
142°
143°
144°
145°
初期条件
初期の海面変位
震源位置
22
プログラム4 東日本大震災・津波シミュレーションプログラムtsunami02.f90 23
24
プログラム4の実行の仕方
プログラムのコンパイル コマンドプロンプト上で gfortran tsunami02.f90 とタイプ+Enterキー 実行ファイルの実行 コマンドプロンプト上で a.exeとタイプ+Enterキー ファイル(u.data, z.data) に計算データを出力 計算データのグラフ化(Gnuplotを利用) 25
プログラム4の計算データのグラフ化
gnuplot で n=0 & load “anime02.plt”を 実行
海面変位
海底地形
26
プログラム4の計算データのグラフ化
gnuplot で n=0 & load “anime02-­‐2.plt”を 実行
海岸線
岸近くの海面変位
岸近くの水平流速
27
→陸上に乗り
上げる
プログラム5 仙台空港
・数値モデルの津波は海岸を 乗り越えて内陸部に約8km進行。 仙台空港
・数値モデルの津波は地震後 約72分(午後 3時58分)で 仙台空港に到達。 水平1次元方向のみを考慮した非常に簡易な数値シミュレーション にも関わらず、実際の津波の振る舞いを大まかに再現している。
海岸から約6km まで津波が進行
4km
午後4時で止まった 仙台空港の時計
28
28
プログラム5の実行の仕方
プログラムのコンパイル コマンドプロンプト上で gfortran tsunami02-­‐2.f90 とタイプ+Enterキー 実行ファイルの実行 コマンドプロンプト上で a.exeとタイプ+Enterキー 計算データのグラフ化 Gnuplotの上で n=0とタイプ+Enter load “anime02-­‐2.plt”とタイプ+Enter 29
今回の授業のスライド資料、fortranプログラム等は hUp://rcme.oa.u-­‐tokyo.ac.jp/reports/post849.html からダウンロードできます。
この授業で使用したソフト
① gfortran :Fortranコンパイラ、無料 計算プログラムの実行に使用
Windowsパソコンへのインストール方法は以下のHPを参考
http://d.hatena.ne.jp/arakik10/20120214/1329167074
② Gnuplot
グニュープロット:グラフ作成ソフト、無料 計算データをプロットするのに使用
Windowsパソコンへのインストール方法は以下のHPを参考
http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa/ contents/program/gnuplot/instraction_win-wizerd.html
30