davis gtool 4 SPMODEL ISPACK gt 4 f

  • Slides: 21
Download presentation
電脳 davis – gtool 4 に関する ワークショップ SPMODEL - ISPACK と gt 4 f

電脳 davis – gtool 4 に関する ワークショップ SPMODEL - ISPACK と gt 4 f 90 io による数値モデル開発 小高正嗣 SPMODEL 開発グループ http: //www. gfd-dennou. org/arch/spmodel/ -

SPMODEL ライブラリ(spml) n ISPACK の F 90 インターフェース l F 90 の配列関数機能を活用 l 最新版は

SPMODEL ライブラリ(spml) n ISPACK の F 90 インターフェース l F 90 の配列関数機能を活用 l 最新版は spml-0. 2. 2 • http: //www. gfddennou. org/arch/spmodel/spml. tar. gz n 対応環境・コンパイラ l x 86 Linux: Fujitsu frt, Intel ifc (6. 0, 7. 0, 8. 0) l Fujitsu VPP l NEC SX (移植作業中)

ソースコード例:時間積分(1) n 1 次元線形移流拡散方程式 n コード例 (Euler 法で時間積分) l 数式のように数値コードを書ける s_Zeta. A = s_Zeta.

ソースコード例:時間積分(1) n 1 次元線形移流拡散方程式 n コード例 (Euler 法で時間積分) l 数式のように数値コードを書ける s_Zeta. A = s_Zeta. B + & dt*( - U*s_Dx_s(s_Zeta) + D*s_Dx_s(s_Zeta)) http: //www. gfd-dennou. org/arch/spmodel/1 d-cyclic-e/advection-diffusion/sample/f 90/advdiff 1. f 90

ソースコード例:時間積分(2) n 球面浅水方程式(渦度発散型) n 渦度方程式は leapfrog スキームで w_Eta. A=w_Eta. B + 2*dt* & (-

ソースコード例:時間積分(2) n 球面浅水方程式(渦度発散型) n 渦度方程式は leapfrog スキームで w_Eta. A=w_Eta. B + 2*dt* & (- w_Div_xy_xy(xy_w(w_Eta)*xy_Grad. Lon_w(w_Chi)/R, & xy_w(w_Eta)*xy_Grad. Lat_w(w_Chi)/R)/R & + w_Jacobian_w_w(w_Eta, w_Psi)/R**2) http: //www. gfd-dennou. org/arch/spmodel/2 d-sphere-w/shallow-zd/f 90/shallow_zd. f 90

ソースコード例:時間積分(2) call get_d. Hsfc w_Hsfc. A=((1 + dt**2*Grav*H 0*n(: . 1))*w_Hsfc. B & +

ソースコード例:時間積分(2) call get_d. Hsfc w_Hsfc. A=((1 + dt**2*Grav*H 0*n(: . 1))*w_Hsfc. B & + 2*dt*w_d. Hsfc)/(1 - dt**2*Grav*H 0*n(: . 1)) … End

ソースコード例:時間積分(2) soubroutin get_d. Hsfc … w_d. Hsfc=- (w_Div_xy_xy(xy_Hsfc*xy_Grad. Lon_w(w_Chi)/R, xy_Hsfc*xy_Grad. Lat_w(w_Chi)/R)/R - w_Jacobian_w_w(w_Hsfc, w_Psi)/R**2)

ソースコード例:時間積分(2) soubroutin get_d. Hsfc … w_d. Hsfc=- (w_Div_xy_xy(xy_Hsfc*xy_Grad. Lon_w(w_Chi)/R, xy_Hsfc*xy_Grad. Lat_w(w_Chi)/R)/R - w_Jacobian_w_w(w_Hsfc, w_Psi)/R**2) - H 0*w_Div. B -H 0*dt*(w_Div_xy_xy(xy_Eta*xy_Grad. Lon_w(w_Psi)/R, xy_Eta*xy_Grad. Lat_w(w_Psi)/R)/R + w_Jacobian_w_w(w_Eta, w_Chi)/R**2 + w_Lapla_w(w_E)/R**2) & & & &

ソースコード例:データ入出力 use gt 4 history ! モジュール引用 … call History. Create( & ! 出力ファイル作成

ソースコード例:データ入出力 use gt 4 history ! モジュール引用 … call History. Create( & ! 出力ファイル作成 file=“output_file”, title=“Run Number”, source=“shallow” & institution=“GFD Dennou Club SPMODEL project”, & dims=(/‘lon’, ‘lat’, ‘t ’/), dimsizes=(/im, jm, 0/), & longnames=(/‘longitude’, ‘latitude ’, ‘time ’/), & units=(/'deg. ', 'sec. '/), origin=real(tinit), & interval=real(intrst*delt) ) … call History. Add. Variable( varname=“eta”, & ! 出力変数定義 dims=(/’lon’, ’lat’, ’t ’/), logname=‘Vorticity’, units=‘ 1/s’, xtype=‘double’) … do it =1, n ! ループ開始 … call History. Put(‘eta’, xy_Eta) ! 変数出力 end do … call History. Close ! 入出力終了

計算時の CPU 時間 n 球面浅水モデルの場合 l 15 日モデル時間計算 • Δt=1800 sec, 720 ステップ(T 106

計算時の CPU 時間 n 球面浅水モデルの場合 l 15 日モデル時間計算 • Δt=1800 sec, 720 ステップ(T 106 はΔt=900 sec) l l 表示は hh: mm: ss まずまずの実行速度 Xeon 2. 4 GHz T 21 T 42 T 63 T 106 00: 03 00: 33 00: 01: 09 00: 13: 52 00: 03 00: 09 ----- 00: 01: 53 VPP 800

参考 URL n SPMODEL l http: //www. gfd-dennou. org/arch/spmodel/ n ISPACK l http: //www.

参考 URL n SPMODEL l http: //www. gfd-dennou. org/arch/spmodel/ n ISPACK l http: //www. gfd-dennou. org/arch/ispack/ n gt 4 f 90 io l http: //www. gfd-dennou. org/arch/gtool 4/

おまけ n debian パッケージあります l /etc/apt/sources. list に以下の 2 行を追加 deb ftp: //www. gfd-dennou.

おまけ n debian パッケージあります l /etc/apt/sources. list に以下の 2 行を追加 deb ftp: //www. gfd-dennou. org/arch/spmodel/debian woody/ deb-src ftp: //www. gfd-dennou. org/arch/spmodel/debian woody/ n apt でインストール # apt-get install spml l l ISPACK, net. CDF のパッケージも用意 詳細は http: //www/gfddennou. org/arch/spmodel