表計算ソフトで動作する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が存在するが、プログラム構造や仕組みついてはソースコード以外存在しない。本開発の仕様とNEMUROの設計図およびワークフローを、Table 1, Fig. 2, Fig 3にまとめた。 Results c:Visual BasicによるNEMURO パラメータシートよりパラメータを読み込み、計算結果を出力間隔に従い、計算結果シートへ出力を行う Fig.1 NEMUROの概要図 プロジェクト名 表計算ソフト上で動作するNEMUROの開発 解決方針 開発基盤 Fortran 90版NEMURO, EXCEL 2007 要件1 EXCEL上で利用ができること。 ユーザーフォームを配置 要件2 EXCEL上で開発することができる。 Excel上のVisual Basicを使用する 要件3 利用者がEXCEL上でパラメータの変更が可能である。 パラメータ用のシートを作成する。 要件4 Fortran 90 NEMUROと遜色ない制度の計算結果を出すこと。 計算結果を比較する。 要件5 利用者のワークフローが簡略化されること ワークフローの比較 Forcing b:計算結果出力シート NEMUROの計算結果を出力するシートを作成する。 d:グラフの出力結果 Table.1 Excel上の開発において設定される要件と解決案 計算結果シートより、計算結果を読み込み、グラフを出力する。 UMLは ソフトウェア開発の汎用設計言語として現在最も普及しており、ISO/IEC 19501 と標準化されている。複雑で大規模なモデル開発を進める上で、役立つ可能性がある。UMLは必要に応じて13種類の図を適用するが、本開発では次の2種類を適用した。Fig. 2aはユースケース図と定義され、利用者の観点や外部要因を含めた全体の機能要件を示す。Fig. 2bはアクティビティ図と定義され、実行されるプロセスを示す。 Fig. 3 モデルの設計を基にNEMUROをExcel上に実装したスクリーンショット。 開発当初は単純にすべての計算過程をセルに記述し、一つの計算ステップを一行で表現することでプログラミングを用いないNEMUROを目指した。しかしExcel上で表示可能な最大行数に限界があり、時間差分を1時間とすると、膨大な行数を必要としてしまう。また各行に計算式を組み込むとファイルサイズも膨大なものとなってしまう。そのため、Visual Basicを用いて、パラメータの設定からグラフの出力までExcel上で必要な処理を完結させるようにした。 a 利用者 NEMUROマクロ パラメータシート グラフ出力マクロ 初期値を入力する NEMURO on Excel パラメータを保存する グラフを出力する モデルを計算する 1 * b 4. モデルの検証 a b Fig.2 Excel上のNEMUROの動作についてUML準拠の図を示す。 a:ユーズケース図 b:アクティビティ図 Fig.4 同じ条件におけるExcel版とFortran版の計算結果。aはExcel版、 bはFortran版の結果。 Excel上で開発したNEMUROの計算結果について、同じ設定のFortranで開発されたNEMUROと計算上の差異がどの程度発生するか4年間計算を行い、比較した(Fig. 4)。極値の現れる時期について、FortranとExcelでほぼ同じであることも確認できた。誤差が確認された。計算開始から最初の1年間は10-2(μmolN/ℓ)を超える誤差が発生していたが、2年目以降その差は収束し、10-5~10-4(μmolN/ℓ)の誤差となった。ナノスケールのモデルをエクセルで開発する際には注意が必要であろう。 a b 5. References 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 CASIO. 高精度計算サイト計算例., http://keisan.casio.jp/keisan/calcsample.php Fig.3 ワークフローについて比較を行った図。aは従来のFotran90のNEMUROのワークフローを示す。bは今回のExcel上のNEMUROのワークフローを示す。 利用を希望する方は、tk4terui@ees.hokudai.ac.jpにご連絡ください。