Comments
Description
Transcript
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