ダウンロード - Researchmap

表計算ソフトで動作するNEMUROの開発
照井健志1,2 三輪剛士3 岸道郎1,4, 5
1 北海道大学大学院環境科学, 2CREST/JST, 3 北海道大学水産学部, 4 北海道大学大学院水産研究院, 5 JAMSTEC
1. はじめに
3. モデルの実装
一連のマクロ処理が登録されたボタンを押下することで、
計算とグラフの出力が行われる。
NEMUROを利用した数多くの研究が行われている。一方で、現在公開され
ているNEMUROはFortran 90またはMATLABで開発されており、実行環境
を用意するにはコンパイラやプログラミング環境が必要となる。本研究で
は簡便に利用できる事を目指し、表計算ソフト上で動作するNEMUROの開
発を行った。開発を行うに当たり、ソフトウェア開発における標準設計言
語である統一モデリング言語(UML)*1, 2にてプログラム構造の記述を試みた。
2. モデルの設計
a:パラメータシート
NEMUROの概要や数式につ
いて、文献*3が存在するが、
プログラム構造や仕組みつ
Results
いてはソースコード以外存
在しない。本開発の仕様と
NEMUROの設計図および
ワークフローを、Table 1,
c:Visual BasicによるNEMURO
パラメータシートよりパラメータを読み込み、計算結果を出
力間隔に従い、計算結果シートへ出力を行う
Fig. 2, Fig 3にまとめた。
Fig.1 NEMUROの概要図
Forcing
プロジェクト名
表計算ソフト上で動作するNEMUROの開発
解決方針
開発基盤
Fortran 90版NEMURO, EXCEL 2007
要件1
EXCEL上で利用ができること。
ユーザーフォームを配置
要件2
EXCEL上で開発することができる。
Excel上のVisual Basicを使用する
要件3
利用者がEXCEL上でパラメータの変更が可能である。
パラメータ用のシートを作成する。
要件4
Fortran 90 NEMUROと遜色ない制度の計算結果を出すこと。
計算結果を比較する。
要件5
利用者のワークフローが簡略化されること
ワークフローの比較
b:計算結果出力シート
NEMUROの計算結果を出力するシートを作成する。
d:グラフの出力結果
Table.1 Excel上の開発において設定される要件と解決案
計算結果シートより、計算結果を読み込み、グラフを出力する。
UMLは ソフトウェア開発の汎用設計言語として現在最も普及しており、
ISO/IEC 19501 と標準化されている。複雑で大規模なモデル開発を進める
上で、役立つ可能性がある。UMLは必要に応じて13種類の図を適用するが、
本開発では次の2種類を適用した。Fig. 2aはユースケース図と定義され、
利用者の観点や外部要因を含めた全体の機能要件を示す。Fig. 2bはアク
1
NEMUROマクロ
グラフを出力する
させるようにした。
1
利用者
グラフ出力マクロ
*
*
1
定数を宣言する
*
1
パラメータシート
境界条件を計算する
現在時刻から水温と日射が、
水温から混合層の深さと交換時間が
計算される
[モデルの終了時間ではない]
[else]
計算結果を出力する
Excel
a
TPS
差分を計算する
[出力間隔に達する]
Fig.2 Excel上のNEMUROの動作についてUML
準拠の図を示す。
a:ユーズケース図
b:アクティビティ図
4. モデルの検証
タイムステップを進める
パラメータを保存する
1
モデルの定数を宣言する。
定数ははKishi et al. (2007)のTable 1.
Biomass (µM)
*
*
11要素に初期値を設定する
いて、パラメータの設定からグラフの出力までExcel上で必要な処理を完結
1
*
初期値を入力する
初期値を設定する
しかしExcel上で表示可能な最大行数に限界があり、時間差分を1時間とす
ファイルサイズも膨大なものとなってしまう。そのため、Visual Basicを用
1
モデルを計算する
1
モデルの時間条件を設定する
b
を一行で表現することでプログラミングを用いないNEMUROを目指した。
TPL
Fortran
b
TZS
TZL
PS
TZP
2.5
2.5
2.0
2
Biomass (µM)
NEMURO on Excel
a
開発当初は単純にすべての計算過程をセルに記述し、一つの計算ステップ
ると、膨大な行数を必要としてしまう。また各行に計算式を組み込むと
ティビティ図と定義され、実行されるプロセスを示す。
モデルの時間条件とは、
・モデルの開始時間
・モデルの終了時間
・タイムステップあたりの時間
・ZLの休眠開始時間
・ZLの休眠終了時間
・モデルの出力間隔時間
Fig. 3 モデルの設計を基にNEMUROをExcel上に実装したスクリーンショット。
1.5
1.0
0.0
0
Jul
Aug Sep
Oct Nov Dec
ZL
ZP
1
0.5
Feb Mar Apr May Jun
ZS
1.5
0.5
Jan
PL
Jan
Feb Mar
Apr May Jun
Jul
Aug Sep
Oct
Nov Dec
Fig.4 同じ条件におけるExcel版とFortran版の計算結果。aはExcel版、
bはFortran版の結果。
[else]
a
Excel上で開発したNEMUROの計算結果について、同じ設定のFortranで開
発されたNEMUROと計算上の差異がどの程度発生するか4年間計算を行い、
比較した(Fig. 4)。極値の現れる時期について、FortranとExcelでほぼ同じ
であることも確認できた。誤差が確認された。計算開始から最初の1年間は
10-2(μmolN/ℓ)を超える誤差が発生していたが、2年目以降その差は収束し、
10-5~10-4(μmolN/ℓ)の誤差となった。ナノスケールのモデルをエクセルで開
b
発する際には注意が必要であろう。
5. References
Fig.3 ワークフローについて比較を行った図。aは従来のFotran90のNEMURO
のワークフローを示す。bは今回のExcel上のNEMUROのワークフローを示す。
1.
2.
3.
4.
Booch, G. et al., 1999. The unified modeling language user guide
Miles, R. and Hamilton, K. 2006. Learning UML 2.0
Kishi, M. J. et al., 2007. Ecological Modelling., 202: 12 – 25
McCullough, B. D. and Heiser, D. A., 2008. Computational Statistics and Data
Analysis., 52: 4570–4578
5. CASIO. 高精度計算サイト計算例., http://keisan.casio.jp/keisan/calcsample.php
利用を希望する方は、[email protected]にご連絡ください。