【文献】
道路環境影響評価の技術的手法「13.動物、植物、生態系」における環境保全のための取り組みに関する事例集(平成27年度版),国土技術政策総合研究所資料,国土交通省 国土技術政策総合研究所,2016年 3月,No.906,p.3-9-9,ISSN 1346-7328,URL,http://www.nilim.go.jp/lab/bcg/siryou/tnn/tnn0906.htm
【文献】
中国珠江口海域環境モニタリング整備計画調査 最終報告書(概要版),国土環境株式会社,2001年 9月,pp.26-30,URL,http://open_jicareport.jica.go.jp/pdf/11667896_04.pdf
【文献】
北村 立実,霞ヶ浦流域モデルによる排出負荷量の算出と河川水質予測,地理情報システム学会講演論文集,2008年10月23日,Vol.17,pp.411-414
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の実施形態に係る水域環境シミュレーション装置の機能構成を示す概略ブロック図である。同図に示すように、水域環境シミュレーション装置100は、表示部110と、操作入力部120と、データ入出力部130と、記憶部180と、制御部190とを備える。記憶部180は、モデル記憶部181と、格子間距離記憶部182と、データ記憶部183と、格子数記憶部184とを備える。制御部190は、シミュレーション処理部191を備える。シミュレーション処理部191は、格子点座標値算出部192と、ループ処理部193とを備える。
【0017】
水域環境シミュレーション装置100は、海洋における水流及び生物の影響をシミュレーションして、海中に溶融する物質の濃度など海洋環境を示す値を算出する。水域環境シミュレーション装置100は、コンピュータを用いて構成される。
なお、以下ではシミュレーション対象が海洋である場合を例に説明するが、水域環境シミュレーション装置100のシミュレーション対象はこれに限らない。例えば、水域環境シミュレーション装置100が湖など海洋以外の水域のシミュレーションを行うようにしてもよい。
【0018】
表示部110は、例えば液晶パネル又はLED(Light Emitting Diode、発光ダイオード)ネル等の表示画面を備えて各種画像を表示する。例えば、表示部110は、海中に溶融する物質の濃度などシミュレーション結果を表示する。
操作入力部120は、例えばキーボード及びマウスなどの入力デバイスを備えてユーザ操作を受ける。
【0019】
データ入出力部130は、水域環境シミュレーション装置100へのデータの入出力を行う。例えば、データ入出力部130は、シミュレーション用の各種データを取得し、また、シミュレーション結果を示すデータを出力する。
データ入出力部130は、例えば、通信回路を含んで構成され、他の機器と通信を行う。あるいは、データ入出力部が、USB(Universal Serial Bus)ポートなど記憶デバイス用のインタフェースを備え、記憶デバイスに対してデータの入出力を行うようにしてもよい。あるいは、データ入出力部130が、通信回路と記憶デバイス用のインタフェースとの両方を含んで構成されていてもよい。
なお、シミュレーション用データの一部又は全部が、操作入力部120からのユーザ操作にて入力されてもよい。また、上記のようにシミュレーション結果の一部又は全部が、データ入出力部130からのデータの出力に加えて、あるいは代えて、表示部110に表示されるようにしてもよい。
【0020】
記憶部180は、各種データを記憶する。記憶部180が、水域環境シミュレーション装置100の本体に内蔵されていてもよい。あるいは、記憶部180が、水域環境シミュレーション装置100の本体に対して外付けの記憶デバイスを用いて構成されていてもよい。
モデル記憶部181は、水域環境シミュレーション装置100が行うシミュレーションのモデル(シミュレーションモデル)を記憶する。特に、モデル記憶部181は、シミュレーション対象の水域に設定された格子毎に、当該格子内に含まれる橋脚の投影面積及び体積をパラメータとして橋脚が水流に及ぼす影響を算出する支配方程式を含む水流のモデルを記憶する。ここでいう格子は、シミュレーション対象の空間(水域)をメッシュに区分した各セル(Cell)である。モデル記憶部181が記憶するシミュレーションモデルの詳細については後述する。
【0021】
格子間距離記憶部182は、シミュレーション対象の水域内の位置毎に設定された格子間距離(格子点間の距離)を記憶する。
データ記憶部183は、シミュレーション対象の水域におけるデータ測定値(観測値)など、シミュレーションのための各種データを記憶する。特に、データ記憶部183は、水位、鉛直渦動粘性係数、鉛直渦動拡散係数が他の数値よりも桁数の多い数値で表されたデータを記憶する。
格子数記憶部184は、シミュレーション対象の水域に設定された格子について、水平方向における格子の行毎及び列毎に格子の数を記憶する。
【0022】
制御部190は、水域環境シミュレーション装置100の各部を制御して各種処理を実行する。制御部190は、水域環境シミュレーション装置100が備えるCPU(Central Processing Unit、中央処理装置)が、記憶部180からプログラムを読み出して実行することで構成される。
【0023】
シミュレーション処理部191は、モデル記憶部181が記憶するシミュレーションモデルを用いて水流及び水質等のシミュレーションを行う。特に、シミュレーション処理部191は、モデル記憶部181が記憶するシミュレーションモデルに基づいてシミュレーション対象の水域における水流を模擬する。また、シミュレーション処理部191は、データ記憶部183が記憶するデータを用いてシミュレーション対象の水域における水流を算出する。また、シミュレーション処理部191は、ループ処理部193が実行するループにて格子毎に当該格子内における水流を算出する。これにより、シミュレーション処理部191はシミュレーションにおける繰り返し処理を実行する。また、シミュレーション処理部191は、シミュレーション対象の水域内に設定された格子毎に水質及び汚濁を算出し、得られた水質及び汚濁に基づいて、格子点毎に透明度を算出する。
【0024】
格子点座標値算出部192は、格子間距離記憶部182が記憶している格子間距離に基づいて格子点の座標を算出する。
ループ処理部193は、プログラムの実行におけるループ処理を行う。特に、ループ処理部193は、シミュレーション処理部191が行うシミュレーションにて、格子数記憶部104が記憶している格子の数の範囲内で行方向のループ及び列方向のループを実行する。また、ループ処理部193は、格子の行及び列のうち少なくともいずれか一方を並列処理にて実行する。
【0025】
図2は、水域環境シミュレーション装置100に対する入出力データの例を示す説明図である。同図に示すように、データ入出力部130が、外界境界データ、各河川日平均データ、各点源日平均データ及び初期設定データの入力を受け、シミュレーション処理部191が、これらのデータを用いて前処理を行う。
外界境界データは、シミュレーション対象の水域と外界との境界条件を示すデータである。外界境界データは、例えば、日月合成半日周潮K2、主太陰半日周潮M2、主太陽半日周潮S2、主太陰日周潮O1、主太陽日周潮P1、日月合成日周潮K1、周太陰長円潮N2等の分潮それぞれの遅角及び振幅等の潮汐データを含む。
また、外界境界データは、例えば、シミュレーション対象の水域と外界との境界における、化学的酸素要求量(Chemical Oxygen Demand;COD)、全窒素(Total Nitrogen;TN)、全りん(燐)(Total Phosphorus;TP)、塩分濃度、水温の各々に関する境界条件を含む。
【0026】
各河川日平均データは、シミュレーション対象の水域に流入する各河川との境界条件を、1日当たりの平均値で示すデータである。各河川日平均データは、例えば、シミュレーション対象の水域と河川との境界における、水等の流量、化学的酸素要求量、全窒素、全りんの各々に関する境界条件を含む。
各点源日平均データは、例えば工場からの排水など、河川以外にシミュレーション対象の水域に影響を及ぼす点源における境界条件を、1日当たりの平均値で示すデータである。各河川日平均データは、例えば、シミュレーション対象の水域と点源との境界における水等の流量、化学的酸素要求量、全窒素、全りんの各々に関する境界条件を含む。
初期設定データは、シミュレーション対象の水域内における初期値を示すデータである。初期設定データは、例えば、シミュレーション対象の水域内の所定の点における、化学的酸素要求量、全窒素、全りん、塩分濃度、水温の各々に関する初期値のデータを含む。
【0027】
シミュレーション処理部191は、これらのデータに対して、換算処理及び分配処理等の前処理を行う。例えば、シミュレーション処理部191は、これらのデータに含まれる化学的酸素要求量を、全有機炭素(Total Organic Carbon;TOC)及び生物化学的酸素要求量(Biochemical oxygen demand;BOD)に換算する換算処理を行う。また、シミュレーション処理部191は、これらのデータに含まれる全窒素(全窒素の濃度)を、懸濁態有機窒素、溶存態有機窒素、アンモニア態窒素、硝酸+亜硝酸態窒素などの各態様(態様毎の濃度)に分配する分配処理を行う。
シミュレーション処理部191は、前処理にて得られたデータを記憶部180に記憶させ、シミュレーションの実行(モデル演算処理)に用いる。
【0028】
また、データ入出力部130は、さらに、地形データ、海表面風データ、日平均気象データ、計算格子・水深データ、橋脚抵抗データ、流動計算基本条件、水質計算基本条件の入力を受ける。
地形データは、例えば、海(例えば海底地形)、陸(特に海岸の地形)、河川(特に河口の位置)等の地形情報と、防波堤の位置等の防波堤情報と、埋立地の位置及び埋立時期等の埋立情報とを含む。
【0029】
海表面風データは、シミュレーション対象の水域の表面(海表面)における風の向き及び強さを示すデータである。海表面風データは、例えば、シミュレーション対象の水域の海表面における毎時風速(例えば16方位)及び風速の情報を含む。シミュレーション対象領域が広い場合、海表面風データが、シミュレーション対象の水域を分割したエリア毎の情報を含むようにしてもよい。
【0030】
日平均気象データは、シミュレーション対象の水域における気象情報を1日当たりの平均値で示すデータである。日平均気象データは、例えば、海上における風力、風向(例えば16方位)、気温、湿度、雲量(例えば、10分比)、降水量、日射量の各情報を含む。シミュレーション対象領域が広い場合、海表面風データが、シミュレーション対象の水域を分割したエリア毎の情報を含むようにしてもよい。
【0031】
計算格子・水深データは、シミュレーション対象の水域に計算格子を設定するためのデータである。計算格子・水深データは、例えば、計算格子の4辺長(格子間距離)及び重心位置のうちいずれか一方又は両方など各格子の情報と、平均水深(計算格子を設定する深さを示す情報)とを含む。
格子間距離記憶部182が計算格子・水深データを記憶し、格子点座標値算出部192は、格子間距離記憶部182が記憶している計算格子・水深データに基づいて格子点の座標を算出する。
なお、後述するように、場所によって格子間距離が異なっていてもよい。
【0032】
橋脚抵抗データは、シミュレーション対象の水域内に橋脚等の構造物が設置されている場合に、水流に対する構造物の影響を模擬するためのデータである。橋脚抵抗データは、例えば、構造物の中心位置、形状及び大きさなど、構造物の位置を立体的に示す情報と、構造物の流水に対する抵抗係数とを含む。
【0033】
ここで、流動計算では拡散と水の流れを計算し、水質計算ではその流れで運ばれる物質の量を計算する。流動計算を行う上で必要な値を流動計算基本条件という。流動計算基本条件の例として、気象データ、外界潮汐水位データ及び河川流量データなどが挙げられる。一方、水質計算を行う上で必要な値を水質計算基本条件という。水質計算基本条件の例として、流動計算で求めた流れデータ、水温データ及び塩分データの他に、河川流入物質データが挙げられる。
【0034】
シミュレーション処理部191は、これらのデータを記憶部180に記憶させる。そして、シミュレーション処理部191は、データ入出力部130が取得したデータ及び前処理で得られたデータを記憶部180から読み出してシミュレーションを実行する。
シミュレーション処理部191は、シミュレーションの実行中に計算ログを記憶部180に記憶させる。ここでいう計算ログは、シミュレーション実行中における水域環境シミュレーション装置100の状態をユーザが確認するための情報である。
【0035】
シミュレーション処理部191は、シミュレーションの実行にて流動三次元分布データ、生態系三次元分布データ、底質二次元分布データ、懸濁態データ及び透明度データ等のシミュレーション結果データを生成する。そして、データ入出力部130が、制御部190の制御に従ってこれらシミュレーション結果データを出力する。
流動三次元分布データは、シミュレーション対象の水域の各部における海水の状態を示すデータである。例えば、流動三次元分布データは、計算格子の各点における流速を3次元座標の各成分(後述するu、v及びw)で示すデータを含む。また、例えば流動三次元分布データは、計算格子の各点における塩分濃度及び水温を示すデータを含む。
【0036】
生態系三次元分布データは、海中における物質の分布を示すデータである。例えば、生態系三次元分布データは、海中の格子点の各々について、溶存酸素、化学的酸素要求量、全有機炭素、全有機りん、全有機窒素、全りん、全窒素、懸濁態有機炭素、懸濁態有機りん、懸濁態有機窒素、溶存態有機炭素、溶存態有機りん、溶存態有機窒素、溶存態無機りん、アンモニア態窒素、硝酸+亜硝酸態窒素、珪藻(炭素)、珪藻(りん)、珪藻(窒素)、珪藻(シリカ)、渦鞭毛藻(炭素)、渦鞭毛藻(りん)、渦鞭毛藻(窒素)、難分解性懸濁態有機炭素(陸源)、難分解性溶存態有機炭素(陸源)、珪藻(単位体積当たりの個体数)、渦鞭毛藻(単位体積当たりの個体数)、溶存態シリカ(Available Silica)、懸濁態シリカ(Particulate Biogenic Silica)、動物プランクトン(炭素)、動物プランクトン(りん)、動物プランクトン(窒素)の各濃度を示すデータを含む。
【0037】
底質二次元分布データは、海底に沈殿した物質及び海底から海中に溶出する物質の分布を示すデータである。例えば、底質二次元分布データは、海底の格子点の各々について、りん酸の溶出量、アンモニア態窒素の溶出量、炭素の沈降量、窒素の沈降量、好気層の炭素含有量、好気層の窒素含有量、嫌気層のりん含有量、嫌気層のりん含有量を、単位面積当たりの量で示すデータを含む。後述するように、好気層及び嫌気層は、海底の泥層を2つに分割した各層である。
【0038】
懸濁態データは、海水中の浮遊物質(Suspended Solid;SS)の濃度分布を示すデータである。例えば、シミュレーション処理部191は、浮遊物質である粒子を大きさ(直径)で4段階に分類し、各大きさの粒子の濃度を海水中の計算格子の各々について算出する。そして、懸濁態データは、各大きさの粒子の濃度を海水中の計算格子の各々について示すデータを含む。
透明度データは、シミュレーション対象の水域の各部における透明度を示すデータである。例えば、透明度データは、シミュレーション対象の水域の海水面に設定された格子点の各々における透明度を示すデータを含む。
【0039】
以下、シミュレーションモデルについて説明する。モデル記憶部181が、このシミュレーションモデルを記憶する。そして、シミュレーション処理部191が、このシミュレーションモデルを用いてシミュレーションを実行する。以下、シミュレーションモデルを単にモデルとも称する。
【0040】
図3は、モデル記憶部181が記憶するシミュレーションモデルの概略構成を示す説明図である。同図に示すように、モデル記憶部181が記憶するシミュレーションモデルは、水流モデルと、水質モデルと、溶出サブモデルと、境界条件とを含む。
水流モデルは、海水の流動を模擬するためのモデルである。さらに、水流モデルは、水温及び塩分濃度の算出式(保存式)を含む。
【0041】
水質モデルは、シミュレーション対象の水域の各部における水質を算出するためのモデルである。特に、水質モデルは、海中における有機物及び栄養塩の濃度分布を算出するための式を含む。ここでいう栄養塩は、生物が生育するために用いられる塩類である。栄養塩の例として、窒素、りん、及びシリカのいろいろな態様を挙げることができる。
溶出サブモデルは、底泥と海水との相互作用が有機物及び栄養塩の濃度分布に及ぼす影響を模擬するためのモデルである。
境界条件は、例えば海面、海底及び海岸など、シミュレーション対象の水域と周囲環境との境界及び周囲環境がシミュレーション対象の水域に及ぼす影響を示す。
【0042】
モデル記憶部181が記憶するシミュレーションモデルでは、シミュレーション対象の水域を区切った格子毎に(すなわち、メッシュ分割したメッシュ毎に)支配方程式を設けてモデルを表している。シミュレーション処理部191は、格子毎の支配方程式を用いて計算を行うことでシミュレーションを実行する。
支配方程式を求めるために、シミュレーション対象の水域にx軸、y軸、z軸の3次元直交座標を設定する。x軸は東を増加方向とし、y軸は北を増加方向とし、z軸は上向きを増加方向とする。さらに、シミュレーション対象の水域に3次元のメッシュを設定し、メッシュの各格子点をx、y、zの3次元座標で示す。関数ηを用いて自由水面をη(x,y,t)と表す。ここで、tは時刻を示す。また、関数Hを用いて海底を−H(x,y)と表す。
シミュレーション処理部191は、格子点毎の連立方程式(支配方程式)でモデルを記載し、サンプリング時間毎に各格子点について連立方程式を解く。支配方程式においては Hydrostaticの仮定とBoussinesq近似を用いる。
以下、スカラー積を「・」、「×」のいずれでも表記する。また、演算子を表記せずに乗算対象を並列することでもスカラー積を示す。
【0043】
<水流モデル>
水流モデルは、海水の流動を算出するための連続方程式及び運動量方程式と、乱流を模擬するための保存式と、水温及び塩分濃度の流動を模擬するための保存式とを含む。
(連続方程式)
連続方程式は式(1)のように示される。
【0045】
ここで、u、v、wは、それぞれx、y、z方向に対応したアンサンブル平均流速である。以下では、アンサンブル平均流速を単に流速とも称する。
(運動量方程式)
流速uに関する運動方程式は式(2)のように示される。
【0047】
上記のように、tは時刻を示す。また、ρ
0は海水の基礎密度を示す。ここでいう基礎密度とは、基準となる圧力(例えば1気圧)における密度である。Pは圧力(水圧)を示す。K
Mは鉛直渦動粘性係数を示す。fはコリオリパラメータを示し、f
u、f
v、f
wは、それぞれコリオリパラメータfのu成分、v成分、w成分を示す。
また、F
uは、モデルのグリッド(サブグリッドスケール)によって直接表現できないsmall-scaleのプロセスによって生じる運動を示す項であり、式(3)のように示される。
【0049】
ここで、A
Mは、水平渦動粘性係数を示す定数である。A
Mの値の決定方法については後述する。
式(3)では、small-scaleのプロセスによって生じる運動を乱流拡散に類似の表現で表している。後述する式(5)、式(8)、式(10)及び式(12)についても同様である。
また、流速vに関する運動方程式は式(4)のように示される。
【0051】
ここで、F
vは、モデルのグリッドによって直接表現できないsmall-scaleのプロセスによって生じる運動を示す項であり、式(5)のように示される。
【0053】
また、流速wに関する運動方程式は式(6)のように示される。
【0055】
ここで、ρは海水の密度を示す。海水の密度ρについては式(16)を参照して後述する。gは重力加速度を示す。
(水温及び塩分の保存式)
水温θの保存式は式(7)のように示される。
【0057】
ここで、K
Hは、鉛直渦動拡散係数を示す定数である。F
θは、モデルのグリッドによって直接表現できないsmall-scaleのプロセスによって生じる運動を示す項であり、式(8)のように示される。
【0059】
ここで、A
Hは、水平渦動拡散係数を示す定数である。A
Hの値の決定方法については後述する。
また、塩分濃度Sの保存式は式(9)のように示される。
【0061】
ここで、F
Sは、モデルのグリッドによって直接表現できないsmall-scaleのプロセスによって生じる運動を示す項であり、式(10)のように示される。
【0063】
また、水質の項目Mに関する拡散方程式は、式(11)のように示される。Mは、具体的には海水中に含まれる物質の濃度を示す。
【0065】
ここで、F
Mは、モデルのグリッドによって直接表現できないsmall-scaleのプロセスによって生じる運動を示す項であり、式(12)のように示される。
【0067】
(乱流エネルギー、乱流スケールの保存式)
流動場に植物群落等がある場合、それが流水や物質混合に影響を及ぼし得る。これらの場合にも、全体として取り扱う必要のある空間スケールに比べて、植物群落内の個々の要素・形状・存在位置などは不規則でスケールも小さいため、それらを個々に表現することはせず、抵抗係数などのパラメータを設定することで表す。個々の要素は局所的に流れを変化させ、乱れを生成し、さらにそのエネルギー(乱流エネルギー)を散逸させる。この乱流エネルギーが物質混合に及ぼす影響を以下の2つの方程式で示す。
1つ目の方程式は、式(13)のように示される。
【0069】
ここで、qは、q
2/2で乱流エネルギーを示す。
また、ベクトルvは、iu+jvを示す。但し、iは実軸を示し、jは虚軸を示す。従って、ベクトルvの実数成分はuであり、ベクトルvの虚数成分はvである。u、vは、それぞれ上述したアンサンブル平均流速である。なお、ベクトルvを、「v」の上に矢印(「→」)を付して示す。また、式(13)では、「・」はベクトルの内積を示す。
また、K
qは乱流エネルギーの鉛直拡散係数(鉛直方向の拡散係数)を示す。
また、B
1は、乱流クロージャー定数の1つを示す。具体的には、B
1は、乱流エネルギーの生成と減衰とが均衡している状態で経験的に求められる定数であり、例えば、B
1=16.6とすることができる。
また、lは、乱流空間スケール(turbulent length scale)を示す。lの値は、流れの状況に応じて実験的にまたは経験的に求められる。
F
qは、乱流エネルギーの水平拡散を示す。
また、2つ目の方程式は、式(14)のように示される。
【0071】
ここでqlは乱流スケール(乱流の長さのスケール)を示す。
また、E
1、E
2は、いずれも、モデルを観測値に整合させるためのパラメータである。E
1及びE
2の値は、流速の観測値に基づいて実験的に決定される。例えば、E
1=1.8、E
2=1.33とすることができる。
また、κはカルマン定数を示す。F
qlは乱流スケールの水平拡散を示す。
また、Lは、海表面から海底面までの距離を表す尺度であり、式(15)のように示される。
【0073】
ここで、ηは、上述した自由水面を示す関数η(x,y,t)である。すなわち、式(15)のηは海面のz座標値(平均水位(z=0)からの高さ)を示す。また、式(15)のhは、海底のz座標値を示す。
式(13)は、平均流の摩擦抵抗に伴う乱流の発生、乱流エネルギーから熱エネルギーへの転換に伴う乱流エネルギーの減衰、乱流エネルギーの平均流による移流と拡散により乱流エネルギーの時間・空間分布が決まることを示している。式(13)は、いわば乱流エネルギーの予報方程式である。
また、式(14)は、乱流空間スケールを予報するための支配方程式である。乱流マクロスケールlは乱流のうち最大規模のスケールを表すものであり、乱流エネルギーの減衰と拡散係数の決定に重要な量である。
海水の密度ρは状態方程式により式(16)のように示される。
【0075】
すなわち、海水の密度ρは、水温θと塩分濃度Sとをパラメータとする関数にて示される。
また、鉛直渦動粘性係数K
M及び鉛直渦動拡散係数K
Hは、式(17)に従い逐次計算される。
【0077】
ここで、lは上記のように乱流マクロスケールである。qは、上記のようにq
2/2で乱流エネルギーを示す。S
M、S
Hは安定関数である。S
M、S
Hは、例えばブラックス・リチャードソン数R
fの関数で示される。l及びqは、実験的にまたは経験的に求められる。
内湾や沿岸域等では流動場に橋脚等の構造物が存在する場合がある。この場合、構造物により流れ場に乱流が発生する。そこで、式(13)及び式(14)に代えて、橋脚による抵抗の影響を示す項F
Dq及びF
Dqlを付け加えた乱流エネルギー式及び乱流スケール式を用いる。
項F
Dqを付け加えた乱流エネルギー式は、式(18)のように示される。
【0079】
項F
Dqは式(19)のように示される。
【0081】
ここで、C
fqは実験定数(実験により定める定数)である。このように、乱流エネルギー式を示す式(18)に、橋脚による抵抗の影響を示す項F
Dqを付け加えることで、構造物が流動場に与える影響を、より正確に表現することができる。
また、F
Dxは式(20)のように示される。
【0083】
ここで、C
dは、杭による流水への抵抗係数を示す。
また、Aは、1格子内の杭の投影面積を示す。1格子内の杭の投影面積とは、1格子内に入る杭の直径と全長の積である。例えば、太さの異なる主杭及び斜杭からなるジャケット構造の場合、1格子内の杭の投影面積Aを式(21)で求める。
【0085】
また、Δxはx方向(x軸方向)の格子間隔を示す。Dは層厚(鉛直方向の格子間隔)を示す。ここで、水域環境シミュレーション装置100では、多層レベルモデル(鉛直方向に複数の格子が設定されるモデル)が用いられており、シミュレーション演算部191は、各層を構成する格子毎に支配方程式の演算を行ってシミュレーション結果を算出する。そこで、シミュレーション演算部191は、は、杭の投影面積及び体積を、1格子内の杭の投影面積及び体積毎(すなわち、各層の1格子毎)に求める。
C
Mは付加質量係数を示す。ここで、海域に柱を立てた場合、形状抵抗と水の加速度運動に伴う圧力勾配が存在する。そして、この柱には、水の加速度運動に伴う圧力勾配に体積を乗算した大きさに比例する力が働く。この係数を付加質量係数C
Mと称する。例えば、円柱の場合、負荷質量計数C
Mの値として2.0を用いることができる。
また、Vは1格子の体積を示す。
また、V
dは1格子内の杭の体積を示す。1格子内の杭の体積とは、1格子内に入る杭の断面積と全長との積である。例えば、太さの異なる主杭及び斜杭からなるジャケット構造の場合、1格子内の杭の体積V
dを式(22)で求める。
【0087】
また、式(19)のF
Dyは式(23)のように示される。
【0089】
また、項F
Dqlを付け加えた乱流スケール式は、式(24)のように示される。
【0091】
項F
Dqlは式(25)のように示される。
【0093】
このように、乱流スケール式を示す式(24)に、項F
Dqlを付け加えることで、構造物が流動場に与える影響を、より正確に表現することができる。
また、水平渦動粘性係数A
Mの値は式(26)に従って求められる。
【0095】
ここで、Δyはy方向(y軸方向)の格子間隔を示す。
また、水平渦動拡散係数A
Hの値は式(27)に従って求められる。
【0097】
また、定数C
M及びC
Hの値は格子のサイズに応じて設定する。例えば、1km(キロメートル)×1kmのグリッドに対して、C
M=0.01、C
H=0.01に設定する。
【0098】
<境界条件>
(自由水面での境界条件の式)
自由水面(海面)での境界条件を以下の第1式〜第3式のように設定する。
自由水面での境界条件の第1式は、式(28)のように示される。
【0100】
ここで、(τ
0x,τ
0y)は水面での風による応力を示す。(τ
0x,τ
0y)の値は、例えば気象データ及び理論値に基づいて予め設定される。
自由水面での境界条件の第2式は、式(29)のように示される。
【0102】
ここで、H’は水面での純熱フラックスを示す。S’は水面での塩分フラックスを示す。ここでいうフラックス(Flux)は、流束、すなわち、単位時間かつ単位面積あたりに流れる量(移動量)である。
水面での純熱フラックスH’は式(30)のように示される。
【0104】
ここで、φ
Sは太陽から地表面に到達する太陽放射量(日射量)を示す。φ
aは、日光が大気中の空気分子、エアロゾル及び雲粒子等により吸収及び散乱を受けた後、地表面に到達する大気放射量を示す。φ
brは地表面が黒体として放つ赤外放射量を示す。φ
S、φ
a及びφ
brの値は、例えば気象データ(気象観測データまたは気象推定値)及び理論値に基づいて予め設定される。
また、φ
Srは地表面で反射される太陽放射量(日射量)を示し、式(31)のように示される。
【0106】
ここで、φ
Scは晴天時の日射量を示す。Cは雲量を示す。φ
Sc及びCの値は、例えば気象データ(気象観測データまたは気象推定値)及び理論値に基づいて予め設定される。
また、φ
arは地表面で反射される大気放射量を示し、式(32)のように示される。
【0108】
ここで、eは水蒸気圧を示す。T
aは気温を示す。e及びT
aの値は、例えば気象データ(気象観測データまたは気象推定値)及び理論値に基づいて予め設定される。
また、φ
eは蒸発散に伴う潜熱輸送量を示し、式(33)のように示される。
【0110】
ここで、W
zは水面上高さzでの風速を示す。e
sは水面上の気温に対する飽和水蒸気圧を示す。e
zは海面上高さzにおける水蒸気圧を示す。T
Sは水表面の水温を示す。
また、φ
cは対流熱伝達量を示し、式(34)のように示される。
【0112】
ここで、T
zは水表面上Zメートル(m)の高さでの気温を示す。例えば、気温T
z及び風速W
zとして、水面上1〜2m程度の高さでの値を用いる。W
z、e
s、e
z、T
S及びT
zの値は、例えば気象データ(気象観測データまたは気象推定値)及び理論値に基づいて予め設定される。
自由水面での境界条件の第3式は、式(35)のように示される。
【0114】
ここで、水面での塩分フラックスS’は式(36)のように示される。
【0116】
ここで、[E’−P’]は、蒸発−降雨による水面での純淡水量フラックスを示す。S(0)は水面での塩分濃度を示す。[E’−P’]の値は、例えば気象データ(気象観測データまたは気象推定値)及び理論値に基づいて予め設定される。S(0)の値は、例えば実測値に基づいて予め定められる。
(海底での境界条件の式)
また、海底における応力、純熱フラックス、塩分フラックスについて以下のように境界条件を設定する。海底では、z=−Hである。また、海底ではθ及びSの鉛直勾配はゼロであり、境界を通しての熱の移動及び塩分の移動は無い。
海底における境界条件の第1式は、式(37)のように示される。
【0118】
ここで、(τ
bx,τ
by)は海底における応力を示す。この(τ
bx,τ
by)は式(38)のように対数近似則で与えられる。
【0120】
ここで、C
Dは抗力係数を示す。抗力係数C
Dの値は0.0025、又は、式(39)による値のいずれか大きい方の値を用いる。
【0122】
ここで、H(x,y)は海底地形(海底面のzの値)を表す。H(x,y)を単にHとも表記する。また、z
bは海底に最も近い計算格子を示す。u
bは、計算格子z
bでのx方向の流速を示す。v
bは、計算格子z
bでのy方向の流速を示す。
また、lnは自然対数を示す。z
0の値は海底の局所的な祖度に依存する。例えば、z
0の値を1センチメートル(cm)とする。
また、海底における境界条件の第2式は、式(40)のように示される。
【0124】
海底における境界条件の第3式は、式(41)のように示される。
【0126】
ここで、Esは、物質粒子の沈降量を示す。
上述した自由水面及び海底面に加え、河川、排水を流す点源等も境界条件にてモデル化することができる。境界条件は、定数又は関数値等の数値で示されていてもよいし、方程式で示されていてもよいし、これらの組み合わせで示されていてもよい。
【0127】
<座標変換>
内湾のように沿岸の急激な水深変化を表現するには直交座標(x,y,z,t)は有効ではない。そこで、上述のように設定した各式について鉛直方向に新しい座標(x
*,y
*,z
*,t
*)を導入し、全ての方程式の座標変換を行う。具体的には、式(42)のように変換を行う。
【0129】
ここで、D=H+ηである。このため、z=η(すなわち、水面)でσ=0となる。また、z=−H(すなわち、海底)でσ=−1となる。
【0130】
<溶出サブモデル>
生態系モデルに閉鎖性海域や浅海域で重要な過程である底泥と海水との相互作用を溶出サブモデルとして取り込む。例えば溶出サブモデルの要素として、懸濁態有機炭素、懸濁態有機窒素、NH
4、NO
3、懸濁態有機りん、PO
4、珪素(シリカ)、硫化水素(海水域)及び溶存酸素を採用することができるが、これに限らない。
水域環境シミュレーション装置100に用いる溶出サブモデルとして、例えばEPA(United States Environmental Protection Agency)で開発されたモデルなど、既存のモデルを用いることができる。
【0131】
モデルでは底泥中を好気層と嫌気層の2層に分割する。上層は直上水の溶存酸素濃度により好気層もしくは嫌気層のいずれかになる。一方、下層は常に嫌気層となる。水中より有機物が底泥に沈降し、底泥中での有機物の無機化(分解)を3種類の速度(易分解性、難分解性、無分解性)で示す。この分解により有機物が栄養塩に回帰し、その過程の中で酸素要求(SOD)が起こることを示している。また、回帰した栄養塩は海水中に溶出する。
【0132】
図4は、溶出サブモデルの概略構成の例を示す説明図である。
図4に示すように溶出サブモデルでは、底泥と海水との間での有機物、栄養塩及び溶存酸素の移動が示される。また、上述したように、底泥は好気層と嫌気層とに分けられる。溶出サブモデルでは好気層と嫌気層との間の有機物及び栄養塩の移動が示される。また、溶出サブモデルでは、有機物から栄養塩への無機化(分解)、及び、埋積物としての堆積が示される。
以下、数式を参照しながら溶出サブモデルについて説明する。
【0133】
(有機物)
有機物の分解について、3種類の分解速度のクラスに分類する。G
1は、20日で半減するクラス、G
2は、1年で半減するクラス、G
3は、堆積層へ沈降するまで分解を受けないクラスである。
好気層における粒子態有機炭素の増減は、式(43)のように示される。
【0135】
ここで、「(T−20)」は、底泥溶出速度試験の標準水温を20℃にしていることを示している。
好気層における粒子態有機窒素の増減は、式(44)のように示される。
【0137】
好気層における粒子態有機りんの増減は、式(45)のように示される。
【0139】
ここで、H
1は好気層の厚さを示す。H
1の値は例えば0.1センチメートル(cm)にする。
また、iは、1、2、3のうちのいずれかの値を取る。iの値1、2、3は、それぞれクラスG
1、G
2、G
3に対応付けられる。POC
,1、PON
,1、POP
,1は、それぞれ好気層での粒子態有機炭素濃度、窒素濃度、りん濃度(単位:mg/l)を示す。POC
,0、PON
,0、POP
,0は、それぞれ海水中での粒子態有機炭素濃度、窒素濃度、りん濃度を示す。POC
,2、PON
,2、POP
,2は、それぞれ嫌気層での粒子態有機炭素濃度、粒子態有機窒素濃度、粒子態有機りん濃度を示す。なお、POC、PON、POPは、それぞれ粒子態有機炭素濃度、粒子態有機窒素濃度、粒子態有機りん濃度を示す。
また、f
POC,i、f
PON,i、f
POP,iは、それぞれ粒子態有機炭素濃度、粒子態有機窒素濃度、粒子態有機りん濃度のクラスG
iへの配分係数を示す。濃度に分配係数を乗算することで、クラス毎の濃度を得られる。分配係数は、例えば予め定数で与えられる。粒子の大きさによって沈降速度が異なるため、クラス毎に分けることでより高精度に演算を行える。
【0140】
例えば、f
POC,1=0.65,f
POC,2=0.20,f
POC,3=0.15とする。
また、例えば、f
PON,1=0.65,f
PON,2=0.28,f
PON,3=0.07とする。
また、例えば、f
POP,1=0.65,f
POP,2=0.255,f
POP,3=0.095とする。
【0141】
また、k
POC,i、k
PON,i、k
POP,iは、それぞれPOC
,i、PON
,i、POP
,iの分解率を示す。k
POC,1、k
PON,1、k
POP,1の値は、例えば0.035(単位:day
−l)に設定する。
また、POC
,2、PON
,2、POP
,2の分解率を、例えば0.0018(単位:day
−1)に設定する。
また、POC
,3、PON
,3、POP
,3の分解率を、例えば0.0(単位:day
−l)に設定する。
【0142】
また、θ
POC,i、θ
PON,i、θ
POP,iは、それぞれ分解の温度係数を示す。
例えば、θ
POC,1、θ
PON,1、θ
POP,1の値をいずれも1.100に設定する。
また、例えば、θ
POC,2、θ
PON,2、θ
POP,2の値をいずれも1.150に設定する。
【0143】
また、例えばθ
POC,3、θ
PON,3、θ
POP,3の値をいずれも0(なし)に設定する。
また、W
2は、堆積速度(単位:m/day(メートル/日))を示す。W
netは、海水から底泥への沈降速度(単位:m/day)を示す。W
12は、混合物質移動係数を示す。堆積速度W
2及び海水から底泥への沈降速度W
netは、例えば定数で予め設定される。混合物質移動係数W
12の算出については、式(58)を参照して後述する。
【0144】
式(43)の右辺の第1項は、分解による粒子態有機炭素濃度の減少を示す。第2項は、好気層から嫌気層への沈降による粒子態有機炭素濃度の減少を示す。第3項は、海水中から好気層への沈降による粒子態有機炭素濃度の増加を示す。第4項は、好気層と嫌気層との混合による粒子態有機炭素濃度の増加を示す。
式(44)、(45)の右辺の各項も、粒子態有機炭素濃度をそれぞれ粒子態有機窒素濃度、粒子態有機りん濃度と読み替えて、式(43)の場合と同様である。
【0145】
また、嫌気層における粒子態有機炭素の増減は、式(46)のように示される。
【0147】
また、嫌気層における粒子態有機窒素の増減は、式(47)のように示される。
【0149】
また、嫌気層における粒子態有機りんの増減は、式(48)のように示される。
【0151】
ここで、H
2は嫌気層の厚さを示す。H
2の値は例えば10センチメートル(cm)にする。
式(46)の右辺の第1項は、分解による粒子態有機炭素濃度の減少を示す。第2項は、埋積物としての堆積による粒子態有機炭素濃度の減少を示す。埋積物として堆積した有機物等は、好気層又は海中へは拡散しないと考えられるため、嫌気層における濃度から除外する。式(46)の第3項は、好気層から嫌気層への沈降による粒子態有機炭素濃度の増加を示す。第4項は、好気層と嫌気層との増加による粒子態有機炭素濃度の減少を示す。
式(47)、(48)の右辺の各項も、粒子態有機炭素濃度をそれぞれ粒子態有機窒素濃度、粒子態有機りん濃度と読み替えて、式(46)の場合と同様である。
また、保存式の第1式は、式(49)のように示される。
【0153】
また、保存式の第2式は、式(50)のように示される。
【0155】
ここで、C
T0、C
T1、C
T2は、有機物の濃度を示す。添え字の値「0」、「1」、「2」は、それぞれ海水中、好気層、嫌気層を示す。K
L12は、好気層と嫌気層との間の拡散係数を示す。f
d0は、海域の溶存態分画(溶存分画係数)を示す。
κ
12については式(72)を参照して後述する。κ
2は、好気層の反応速度(単位:m/day)を示す。κ
2の値は、例えば0.0に設定される。
また、式(49)及び式(50)では、溶存態分画f
dと粒子態分画f
pとに分けて計算する。好気層の溶存態分画f
d1は式(51)のように示される。
【0157】
好気層の粒子態分画f
p1は式(52)のように示される。
【0159】
嫌気層の溶存態分画f
d2は式(53)のように示される。
【0161】
嫌気層の粒子態分画f
p2は式(54)のように示される。
【0163】
ここで、m
1、m
2は、それぞれ好気層、嫌気層における粒子態濃度を示す。π
1、π
2は、それぞれ好気層、嫌気層における分配係数を示す。m
1、m
2、π
1、π
2の値は、例えば定数で予め設定される。
また、海水−底泥間の物質移動係数sは、式(55)のように示される。
【0165】
ここで、SODは、底泥による酸素消費速度を示す。[O2(O)]は水中酸素を示す。
また、J
T1は式(56)のように示される。
【0167】
J
T2は式(57)のように示される。
【0169】
ここで、k
POM,iは、懸濁態有機物の分解速度を示す。iの値「1」、「2」は、それぞれクラスG
1、G
2に対応付けられる。θ
POM,i(T−20)は、分解の温度係数を示す。20℃が標準温度に設定されている。POM
i1、POM
i2は、それぞれ懸濁態有機物の好気層、嫌気層における濃度を示す。
また、混合物質移動係数W
12は式(58)のように示される。
【0171】
ここで、D
pは粒子混合拡散係数(単位:m
2/day)を示す。粒子混合拡散係数D
pの値は、例えば1.2E−04(浮動小数点表示)に設定される。
また、θ
DpはD
pの温度係数を示す。温度係数θ
Dpの値は、例えば1.117に設定される。
また、G
POC,Rは好気層での水温20℃におけるPOC基準濃度(単位:mgC/g)を示す。G
POC,Rの値は例えば0.1に設定される。
また、K
M,Dpは、酸素に対する粒子混合半飽和定数(単位:mg/L)を示す。K
M,Dpの値は、例えば4.0に設定される。
好気層と嫌気層との間の溶存態物質の混合はベントスの活動に伴う混合によって分子拡散よりも大きくなる。この効果を式(59)で組み込む。
【0173】
ここで、D
dは間隙水拡散係数(単位:m
2/day)を示す。D
dの値は例えば1.0E−3(浮動小数点表示)に設定される。
また、θ
DdはDdの温度係数を示す。θ
Ddの値は例えば1.08に設定される。
【0174】
(アンモニア)
好気層におけるアンモニアの溶出は式(60)のように示される。
【0176】
ここで、NH
4(0)、NH
4(1)、NH
4(2)は、それぞれ海水中、好気層、嫌気層におけるアンモニアの濃度を示している。すなわち、カッコ内の0、1、2は、それぞれ海水中、好気層、嫌気層を示している。上述したように、f
d0は、海域の溶存態分画係数を示す。
嫌気層におけるアンモニアの溶出は式(61)のように示される。
【0178】
ここで、J
N1は式(62)のように示される。
【0180】
J
N2は式(63)のように示される。
【0182】
また、アンモニアに関しては、f
d1を表す式として式(51)に代えて式(64)を用いる。
【0184】
ここで、NH
4は、アンモニアの濃度を示す。f
p1については式(52)を用いる。アンモニアに関しては、式(52)のf
d1の値は、式(64)に基づく。
また、アンモニアに関しては、f
d2を表す式として式(53)に代えて式(65)を用いる。
【0186】
f
p2については式(54)を用いる。アンモニアに関しては、式(54)のf
d2の値は、式(65)に基づく。
また、アンモニアが受ける硝化作用は式(66)のように示される。
【0188】
ここで、κ
NH4,1は、硝化反応速度(単位:m/day)を示す。κ
NH4,1の値は例えば0.131に設定される。
また、θ
NH4は、硝化反応の温度係数を示す。θ
NH4の値は例えば1.123に設定される。
また、K
M,NH4は、アンモニアの硝化反応半飽和定数(単位:mgN/m
3)を示す。K
M,NH4の値は、例えば728に設定される。
また、θ
KM,NH4は、硝化反応半飽和定数の温度係数を示す。θ
KM,NH4の値は、例えば1.125に設定される。
また、K
M,NH4,O2は、酸素に対する硝化反応半飽和定数(単位:mgO
2/L)を示す。K
M,NH4,O2の値は、例えば0.37に設定される。
【0189】
また、π
1NH
4は、好気層の分画係数(単位:L/kg)を示す。π
1NH
4の値は例えば1.0に設定される。
また、π
2NH
4は、嫌気層の分画係数(単位:L/kg)を示す。π
2NH
4の値は例えば1.0に設定される。
また、J
N1は、好気層の分解窒素フラックス(単位:Mg・N/m
2/day)を示す。J
N1の値は例えば0.0に設定される。また、J
N2は、嫌気層の分解窒素フラックス(単位:Mg・N/m
2/day)を示す。J
N2をJ
Nとも表記する。海域や計算軌間等の条件に応じてパラメータを設定している。
なお、表記を明確にするために変数を[]でくくる場合がある。例えば、式(66)で、表記を明確にするために「NH
4(1)」を[]でくくっている。
【0190】
(硝酸)
好気層における硝酸の溶出は式(67)のように示される。
【0191】
【数67】
ここで、NO
3(0)、NO
3(1)、NO
3(2)は、それぞれ海水中、好気層、嫌気層における硝酸の濃度を示している。
【0192】
嫌気層における硝酸の溶出は式(68)のように示される。
【0194】
ここで、J
NO31は式(69)のように示される。
【0196】
ここで、J[NH
4]は、海水への溶出フラックスを示す。
また、硝酸に関しては、κ
12は式(70)のように示される。
【0198】
また、硝酸に関しては、κ
2は式(71)のように示される。
【0200】
ここで、κ
NO3,1は好気層の脱窒反応速度(単位:m/day)を示す。κ
NO3,1の値は例えば0.10に設定される。
また、κ
NO3,2は嫌気層の脱窒反応速度(単位:m/day)を示す。κ
NO3,2の値は例えば0.25に設定される。
また、θ
NO3は脱窒の温度係数を示す。θ
NO3の値は例えば1.08に設定される。
また、硝酸に関しては、f
d1を表す式として式(51)に代えて式(72)を用いる。
【0202】
f
p1については式(52)を用いる。硝酸に関しては、式(52)のf
d1の値は、式(72)に基づく。
また、硝酸に関しては、f
d2を表す式として式(53)に代えて式(73)を用いる。
【0204】
f
p2については式(54)を用いる。硝酸に関しては、式(54)のf
d2の値は、式(73)に基づく。
【0205】
(硫化物)
好気層における硫化物の溶出は式(74)のように示される。
【0207】
ここで、S(0)、S(1)、S(2)は、それぞれ海水中、好気層、嫌気層における硫黄の濃度を示している。
嫌気層における硫化物の溶出は式(75)のように示される。
【0209】
ここで、硫黄に関しては、f
d1を表す式として式(51)に代えて式(76)を用いる。
【0211】
f
p1については式(52)を用いる。硫黄に関しては、式(52)のf
d1の値は、式(76)に基づく。
また、硫黄に関しては、f
d2を表す式として式(53)に代えて式(77)を用いる。
【0213】
f
p2については式(54)を用いる。硫黄に関しては、式(54)のf
d2の値は、式(77)に基づく。
ここで、π
1S及びπ
2Sは、分配係数を示す。π
1S、π
2Sの値は、例えば定数で予め設定される。
ここでJ
s2は、式(78)のように示される。
【0215】
また、α
O2,NO3は、脱窒作用による酸素消費量(単位:g O
2/m
3)を示す。α
O2,NO3の値は例えば2.8571に設定される。α
O2,Cは、脱窒作用による有機炭素消費量を示す。JCは、海への炭素フラックスを示す。
また、硫黄に関してはκ
12は、式(79)のように示される。
【0217】
ここで、κ
H2S,d1は、溶存態硫化物の酸化反応速度(単位:m/day)を示す。κ
H2S,d1の値は例えば0.20に設定される。
また、κ
H2S,p1は、粒子態硫化物の酸化反応速度(単位:m/day)を示す。κ
H2S,p1の値は例えば0.40に設定される。
また、θ
H2Sは、硫化物酸化の温度係数を示す。θ
H2Sの値は、例えば1.08に設定される。
【0218】
また、K
M,H2S,O2は、硫化物酸化定数(単位:mg O2/L)を示す。K
M,H2S,O2の値は、例えば4.0に設定される。
また、π
1Sは好気層の分画係数(単位:L/kg)を示す。π
1Sの値は例えば100に設定される。
また、π
2Sは嫌気層の分画係数(単位:L/kg)を示す。π
2Sの値は例えば100に設定される。
【0219】
(溶存酸素)
酸素消費量SOD(単位:g O
2/m
3)は、式(80)のように、メタン酸化による酸素要求量(CSOD、単位:g O
2/gN)と、硝化作用に伴う酸素消費量(NSOD)との和で示される。
【0221】
また、底泥中の有機炭素分解に伴う酸素要求量CSODは、式(81)のように示される。
【0223】
また、底泥中の硝化作用に伴う酸素消費量NSODは、式(82)のように示される。
【0225】
ここで、[ΣH
2S(1)]は、好気層の総硫化物濃度(単位:g O2/m3)を示す。
また、α
O2,NH4は、硝化による酸素消費量(単位:g O2/gN)を示す。α
O2,NH4の値は、例えば4.5714に設定される。θ
NH4(T−20)は、水温20℃時の硝化の温度定数を示す。θ
NH4(T−20)の値として、例えば1.076〜1.127の範囲内の定数を用いることができる。k
NH4,12は、好気層での消化率定数の値を示す。k
NH4,12の値として、例えば0.894を用いることができる。k
M,NH4は、硝化の半飽和定数を示す。k
M,NH4の値として、例えば0.63〜1.19の範囲内の定数を用いることができる。θ
M,NH4(T=20)は、水温20℃時の温度定数を示す。K
O2,NH4は、嫌気層での酸素濃度の半飽和定数を示す。K
O2,NH4の値として、例えば0.25〜2.0の範囲内の定数を用いることができる。
【0226】
(りん)
りんの溶出は、式(83)のように示される。
【0228】
ここで、PO
4(1)は、好気層でのりん酸の濃度を示す。PO
4(2)は、嫌気層でのりん酸の濃度を示す。
また、りんに関しては、好気層における分配係数π
1は式(84)のように示される。
【0230】
ここで、J
P2は、嫌気層の分解りんフラックス(単位:mg P/m
2/day)を示す。
また、Δπ
PO4,1は、好気層のりん酸の段階的分画係数(単位:L/kg)を示す。Δπ
PO4,1の値は、例えば300に設定される。
また、π
PO4,2は、好気層のりん酸の段階的分画係数(単位:L/kg)を示す。Δπ
PO4,1の値は、例えば100に設定される。
また、[O2(0)]
crit,PO4は、好気層での分画係数を段階的に減少開始をさせる海水中酸素濃度(単位:mg/kg)を示す。[O2(0)]
crit,PO4の値は、例えば2.0に設定される。
また、りんに関しては、f
d1、f
p1、f
d2、f
p2を示す式として、それぞれ式(51)、式(52)、式(53)、式(54)を用いる。
(シリカ)
シリカの溶出は、式(85)のように示される。
【0232】
また、H
2(dP
Si/dt)は式(86)のように示される。
【0234】
ここで、P
Siは懸濁態の生物由来シリカの濃度を示す。S
Siは溶存態シリカの生成速度を示す。
また、J
PSiは式(87)のように示される。
【0236】
また、k
2は、式(88)のように示される。
【0238】
また、π
1は、式(89)のように示される。
【0240】
また、k
Siは、藻類由来の粒子態シリカの溶解速度定数(単位:d
−1)を示す。k
Siの値は、例えば0.50に設定される。
また、θ
Si3は、シリカ酸化の温度係数を示す。θ
Si3の値は、例えば1.10に設定される。
また、[Si]
Satは、間隙水中のシリカの飽和濃度(単位:mg Si/m
3)を示す。[Si]
Satの値は例えば40000に設定される。
【0241】
また、K
M,PSiは、粒子態シリカの分解に対する半飽和定数(単位:mg Si/m
3)を示す。K
M,PSiの値は、例えば5.0E+07(50000000)に設定される。あるいは、K
M,PSiの単位としてmg Si/gを用いるようにしてもよい。この場合、K
M,PSiの値は、例えば100に設定される。
また、Δπ
Si,1は、好気層のシリカの段階的分画係数(単位:L/kg)を示す。Δπ
Si,1の値は例えば10に設定される。
また、π
Si,2は、嫌気層のシリカの分画係数(単位:L/kg)を示す。π
Si,2の値は例えば100に設定される。
また、J
PSiは海水中から底泥への粒子態シリカのフラックス(単位:mg Si/m
2−d)を示す。
また、シリカに関しては、f
d2を示す式として式(53)を用いる。
【0242】
<水質モデル>
水質モデルでは、生物の活動の水質への影響を中心に、水中に含まれる物質量(濃度)の変化を演算する。以下では、珪藻類に関連する炭素の循環を例に説明する。
図5は、水質モデルが模擬する珪藻類に関連する物質の循環の例を示す説明図である。
図5に示すように、珪藻が珪藻類に関連する物質量は、珪藻が二枚貝及び動物プランクトンに捕食されることで減少する。また、珪藻の死滅によって懸濁態有機物の量が増加し、珪藻の代謝によって溶存態有機物の量が増加する。また、珪藻の光合成に及び呼吸により、溶存酸素の量が変化する。また、珪藻の呼吸、死滅及び光合成によってりん酸態りん、アンモニア態窒素、及び、シリカの量が変化し、りん酸態りんは、硝酸及び亜硝酸に分解される。
珪藻類に関連する炭素量の変化は式(90)のように示される。
【0244】
ここで、Pdcは珪藻類の炭素量(単位:mgC/l)を示す。Pmdは最適環境下での珪藻類の炭素量の増加速度(単位:day
−1)を示す。Pmdの値は、例えば観測または試験に基づいて予め設定される。Pmdの値として、例えば2.25を用いることができる。
fd(T)は珪藻類の水温制限関数を示す。水温制限関数fd(T)は、珪藻類の増殖速度に対する水温の影響を模擬する関数である。珪藻類など植物プランクトンの増殖は、環境水温が最適水温に達するまで活性化し、最適水温よりも上昇すると活性が落ちる。この成長(活性)と水温変化の関係は、正規分布曲線に類似する。そこで、水温制限関数fd(T)を式(91)のように設定する。
【0246】
ここで、Tは水温(単位:℃)を示す。Toptは最適水温(単位:℃)を示す。KTg1は最適水温以下の成長にかかわる水温係数(単位:℃
−1)を示す。KTg2は、最適水温を超えた場合の成長にかかわる水温係数(単位:℃
−1)を示す。Topt,KTg1、KTg2の値は、例えば観測または試験に基づいて予め設定される。Toptの値として例えば20(℃)を用いることができる。KTg1の値として例えば、0.0042(/℃)を用いることができる。KTg2の値として例えば、0.006(/℃)を用いることができる。
【0247】
また、f(I)は光制限関数を示す。光制限関数f(I)は、生物の増殖速度に対する光の影響を模擬する関数である。植物プランクトンの増殖にかかわる光制限は、光量が最適光量に達するまで活性化し、最適光量よりも増加すると活性が落ちる。そこで、光制限関数f(I)を式(92)のように設定する。
【0249】
ここで、abは式(93)のように示される。
【0251】
また、axは式(94)のように示される。
【0253】
ここで、FDは日照率を示す。日照率FDは、例えば気象データに基づいて予め設定される。FDの値として例えば0.4〜0.6の範囲内の定数を用いることができる。
また、Kessは光の全消散係数(単位:m
−1)を示す。光の全消散係数Kessは、
植物プランクトンの現存量が増加するにつれて、植物プランクトン自らによる光の吸収(細胞による光の吸収)が大きくなり、深いところでの植物プランクトン群集が利用できる光のエネルギーが減少するという関係を示す。光の全消散係数Kessは、式(95)のように示される。
【0255】
ここで、Kebは水中での吸収係数(場の吸光係数)(単位:m
−1)を示す。Kebの値として0.7を用いることができる。また、Kechlは、植物プランクトン(クロロフィルa量)による吸収係数(単位:m
2/mgchl)を示す。Kechlの値として、17を用いることができる。Pcは、大型藻類の炭素量(単位:mgc/l)を示す。Pdcは、上記のように珪藻類の炭素量(単位:mgC/l)を示す。Pccは、渦鞭毛藻類の炭素量(単位:mgC/l)を示す。CChlは、炭素量とクロロフィルa量との比(単位:g C/mg chl)を示す。CChlの値は、例えば観測または試験に基づいて予め設定される。CChlの値として、例えば、5〜100の範囲内の値を用いることができる。
また、Δzは、計算格子の厚さ(すなわち、鉛直方向の格子間距離)を示す。ZDは、水面から計算格子の上面までの距離(単位:m)を示す。
また、Isは、最適光量(単位:ly/day)を示す。植物プランクトンが光の変化に順応するための時間を考慮して、最適光量Isを式(96)のように設定する。
【0257】
ここで、Ioは、水面での日日射量を示す。I1は、前日の日日射量(単位:ly/day)を示す。I2は、2日前の日日射量(単位:ly/day)を示す。Io、I1及びI2の値は、例えば気象データに基づいて設定される。
Doptは、植物プランクトンの最大増殖水深(単位:m)を示す。植物プランクトンの最大増殖水深Doptの値として、1を用いることができる。
また、fd(N)は栄養塩制限関数を示す。栄養塩制限関数fd(N)は、生物の増殖速度に対する栄養塩の濃度の影響を模擬する関数であり、式(97)のように示される。
【0259】
ここで、KHnは、窒素摂取にかかわる半飽和定数(単位:gN/m
3)を示す。KHnの値として、例えば0.01を用いることができる。KHpは、りん摂取にかかわる半飽和定数(単位:g P/m
3)を示す。KHpの値として、例えば0.001を用いることができる。NH
4、NO
3は、それぞれアンモニア態窒素の濃度、硝酸態窒素の濃度(いずれも単位は、g N/m3)を示す。PO
4は、オルトりん酸態りん濃度(単位:g P/m
3)を示す。
【0260】
また、BMrdは、最適水温時の呼吸速度(単位:day
−1)を示す。最適水温時の呼吸速度Mrdの値として、例えば0.01を用いることができる。
また、KTbmは、呼吸にかかわる水温係数(単位:℃
−1)を示す。呼吸にかかわる水温係数KTbmの値として、0.069を用いることができる。また、Tは水温(単位:℃)を示す。水温Tの値は、例えば気象データに基づいて設定される。Toptは、上述したように最適水温を示す。
【0261】
また、BPrdは、最適水温時の死滅速度(単位:℃
−1)を示す。最適水温時の死滅速度BPrdの値は、例えば観測または試験に基づいて予め設定される。最適水温時の死滅速度BPrdの値として0.08〜0.0215の範囲内の定数を用いることができる。
また、KTbpは、死滅にかかわる水温係数(単位:℃
−1)を示す。死滅にかかわる水温係数KTbpの値は、例えば観測または試験に基づいて予め設定される。死滅にかかわる水温係数KTbpの値として、例えば0.069を用いることができる。
【0262】
また、Svpdcは、植物プランクトンの沈降速度(単位:m/day)を示す。植物プランクトンの沈降速度Svpdcの値は、例えば観測または試験に基づいて予め設定される。植物プランクトンの沈降速度Svpdcの値は、例えば0.02〜0.5の範囲内の定数値に設定することができる。
【0263】
また、ZPmは、動物プランクトンの最適環境下での増殖速度(単位:day
−1)を示す。ZPmは、渦鞭毛藻の現存量Pcc、珪藻の現存量Pdc、及び、粒子態有機物の現存量POCに基づいて、式(98)のように示される。
【0265】
ここで、ZPmaxは、動物プランクトンの増殖速度の最大値(単位:day
−1)を示す。ZPmaxの値は、実験によって求めることができる。具体的には、動物プランクトンの成体雌を採集して実験室にて翌朝までに産出された約千個の卵を1つの集団として準備する。培養した植物プランクトンを餌として潤沢に与えながら、一定温度で保ち孵化から成体に発育するまでに要した日数を計測し、成長速度を算出する。成長速度は水温上昇によって増大するが、餌供給量が潤沢な実験条件下で得られたことから、この水温における最大成長速度と見なすことができる。
Prpfcは、植物プランクトンの摂取率を示す。植物プランクトンの摂取率Prpfcの値は、例えば観測または試験に基づいて予め設定される。植物プランクトンの摂取率Prpfcの値として、例えば0.5を用いることができる。
Prpfocは、懸濁態有機物の摂取率を示す。懸濁態有機物の摂取率Prpfocの値は、例えば観測または試験に基づいて予め設定される。懸濁態有機物の摂取率Prpfocの値として、例えば0.5を用いることができる。
Zoominは、動物プランクトンの最少現存量(単位:gC/m
3)を示す。動物プランクトンがゼロになるとその後の計算で増殖できなくなるため最少現存量を設定している。動物プランクトンの最少現存量Zoominの値として、0.001を用いることができる。
Zsp2は、植物プランクトン摂取にかかわる半飽和係数を示す。植物プランクトン摂取にかかわる半飽和係数Zsp2の値は、例えば観測または試験に基づいて予め設定される。植物プランクトン摂取にかかわる半飽和係数Zsp2の値として、0.3を用いることができる。
f(T)は大型藻類の水温制限関数を示す。fd(T)は、上述したように珪藻類の水温制限関数を示す。f(T)として、式(91)のfd(T)をf(T)と読み替えて用いる。
Zcは、動物プランクトンの炭素量(単位:mgC/l)を示す。
Shcは、二枚貝による摂取量(単位:gC/m
2/day)を示す。
【0266】
式(90)の右辺の「Pmd・fd(T)・f(I)・fd(N)」と「Pdc」との積は、珪藻の増殖による炭素量の変化(ここでは、珪藻に関する炭素量の変化)を示す。また、「BMrd・e
KTbm(T−Topt)」と「Pdc」との積は、珪藻の呼吸による炭素量の変化を示す。「BPrd・e
KTbp(T−Topt)」と「Pdc」との積は、珪藻の死滅による炭素量の変化を示す。「Svpdc・(e/dz)と「Pdc」との積は、珪藻の沈降による炭素量の変化を示す。「Zpm・f(T)・Zc」は、動物プランクトンが珪藻を捕食することによる炭素量の変化を示す。「Shc」は、上記のように二枚貝が珪藻を摂取することによる炭素量の変化を示す。
【0267】
水質モデルは、珪藻の場合と同様に、渦鞭毛藻、動物プランクトン、大型藻類の各々に関連する物質の循環を模擬する。また、水質モデルは、懸濁態有機炭素の沈降、及び、懸濁態有機炭素から溶存態有機炭素への分解など有機炭素の循環を模擬する。また、水質モデルは、陸源負荷に関する有機物の量の変化を模擬する。また、水質モデルは、炭素の循環の場合と同様に、りんの循環、窒素の循環、溶存酸素の循環、及び、シリカの循環を模擬する。
【0268】
<透明度の算出>
透明度の算出式は、式(99)のように示される。
【0270】
ここで、式(99)の右辺の分母「0.139×”全SS濃度”+0.019×”クロロフィルa濃度”+0.04」は、光束消散係数(K
d)を示す。従って、海域毎の定数は、透明度×光束消散係数(Kd)となる。透明度を測定し、光束消散係数を算出しておくことで、海域毎の定数を求めることができる。例えば東京湾の場合、海域毎の定数の値を1.5とする。また、伊勢湾の場合及び瀬戸内海の場合、海域毎の定数の値を1.6とする。
式(99)に示されるように、透明度の算出に際し、全SS(Suspended Solid、懸濁物質)濃度とクロロフィルa濃度とを求める必要がある。全SS濃度は無機SS濃度と有機SS濃度との二つに分けて、プログラム演算にて算出する。全SS濃度を求める式は、式(100)のように示される。
【0272】
ここで、上述したようにPOC、PON、POPは、それぞれ粒子態有機炭素濃度、粒子態有機窒素濃度、粒子態有機りん濃度を示す。
無機SSとして、特に流入河川からの無機SSを模擬する。具体的には、河川毎に低水時、出水時それぞれのL−Q式を予め求めておく。L−Q式は、河川の流量Qと、浮遊土砂輸送量Lとの関係を示す式である。
シミュレーション演算部191は、このL−Q式に河川の流量を適用して浮遊土砂輸送量Lを算出し、浮遊土砂輸送量Lに基づいて陸起源SS(河川から流入する無機SS)の量を算出する。例えば、河川から流入する浮遊土砂のうち8%は浮遊砂であり河口付近に沈降することから、シミュレーション演算部191は、残りの92%がシミュレーション対象の水域に流入すると算出する。
【0273】
また、無機SSを粒径に応じて1μm未満、1μm以上〜4μm未満、4μm以上〜16μm未満、16μm以上の4つに区分する。例えば、1μm未満、1μm以上〜4μm未満、4μm以上〜16μm未満の各区分の割合をそれぞれ2%、8%、50%、40%に設定しておく。シミュレーション演算部191は、L−Q式に基づいて算出した無機SS量に割合を乗算して区分毎の無機SS量を算出する。そして、シミュレーション演算部191は、1μm未満、1μm以上〜4μm未満、4μm以上〜16μm未満、16μm以上の各区分の沈降速度(単位:m/day)を、それぞれなし(0)、0.28、4.53、18.07としてシミュレーションを行う。
【0274】
有機SS濃度はPOC、PON及びPOPから求めることができる。POC、PON、POPは、それぞれ水質モデルにて層毎、かつ、メッシュ毎(格子毎)に求められる。層毎、かつ、メッシュ毎に求めたPOC、PON及びPOPを集計することで、有機SS濃度を求めることができる。
また、全ての植物プランクトンがクロロフィルa色素を含むことから、クロロフィルa濃度は、海水にある植物プランクトンの量を指す。例えば、植物プランクトンのうち代表的な珪藻及び渦鞭毛藻の量(珪藻の炭素量Pdc、及び、渦鞭毛藻の炭素量Pcc)を算出し、その合計量をクロロフィルa濃度として用いることができる。
【0275】
次に、シミュレーションを実行するためのプログラムについて説明する。
<可変格子の採用>
図6は、可変格子の設定例を示す説明図である。同図に示すように、詳細に求めたい箇所の格子を細かくし、重要性が薄い所は大きい格子を設定する。これにより、格子を細かく設定した箇所については詳細な演算結果を得ることができる。また、大きい格子を設定した箇所については、演算量を低減させることができる。
【0276】
ここで、格子間の距離(Δx及びΔy)の値を2次元配列の変数に設定する。また、プログラム内で計算に用いる格子間距離を適切に扱うことで、可変格子の計算を可能にしている。
図7は、2次元配列の変数に設定された格子間距離を用いるプログラムの例を示す説明図である。同図は、フラックスを求めるときのループの例を示している。変数H1はx方向の格子間距離(Δx)を示す。変数H2は、y方向の格子間距離(Δy)を示す。
但し、2次元配列の変数に設定された格子間距離を用いる箇所は
図7に示す箇所に限らず複数個所存在する。
【0277】
<安定計算の改良>
コンピュータの計算では丸め誤差が発生する。倍精度浮動小数点数を用いれば、丸め誤差を少なくなり、精度を高めることができる。しかし、すべての項目を倍精度浮動小数点数で計算すると、単精度浮動小数点数で計算する場合と比べて10倍以上の時間かがかるなど演算時間を要し、また、コンピュータに負荷がかかる。
そこで、水位、垂直渦動粘性係数、及び、垂直渦動拡散係数を倍精度浮動小数点数で表現し、他のデータについては単精度浮動小数点で表現して演算を行う。これにより、精度良く演算を行うことができ、かつ、全てのデータを倍精度浮動小数点で表現する場合よりも演算時間及びコンピュータの負荷の増加を抑制することができる。
【0278】
<演算の高速化(1)>
本モデルでは、計算時間の大部分がI,J,Kのループ処理で時間が掛かっている。ループの改良を行うことで、処理速度を改良した。改良したループは生態系を含み100を超えており、同様な処理を行っている。下記に例として、元のプログラムを示し、その後の改良方法を説明する。
【0279】
図8は、高速化処理を行わない場合のプログラムの例を示す説明図である。同図のI、J、Kのループは、それぞれx方向、y方向、z方向の座標を示す。
図8のプログラムでは、I及びJの全範囲に対してループを実行している。
図9は、高速化処理を行った場合のプログラムの例を示す説明図である。
図9のプログラムでは、I、Jの最大値を予めINUM(n)、JNUM(n)に格納しておく。そして、格納した最大値の範囲内でループを実行する。このように、水域の範囲外の部分に対してループの実行を抑制することで、例えば東京湾のシミュレーションでは演算時間を3分の1に短縮することができた。
【0280】
<演算の高速化(2)>
鉛直ループを水平ループの内側に配置して、IF文の実行回数を減少させた。ここでいう鉛直ループは、格子点を鉛直方向(z軸方向)に順に処理するループである。水平ループは、格子点を水平方向(x軸方向、y軸方向それぞれ)に順に処理するループである。
図10は、鉛直ループを水平ループの内側に配置したプログラムの例を示す説明図である。同図に示すプログラムでは、変数I、Jのループが水平方向のループの例に該当し、変数Kのループが鉛直方向のループの例に該当する。変数I,Jのループは、行L11で始まり、行L17で終了する変数nのループによって実行される。変数I、Jの値は、それぞれ行L12、L13で設定される。また、変数Kのループは、行L15で始まり、行L16で終了する。
行L14のIF文は、変数I,Jの値が決まっている状態で行う必要があり、変数I、Jのループの内側で行う必要がある。一方、行L12のIF文には変数Kは出現していない。このため、行L11のIF文が変数Kのループの内側にある必要は無い。
【0281】
水平ループ(変数I、Jのループ)が鉛直ループ(変数Kのループ)の内側に位置する場合、IF文も鉛直ループの内側に位置することになり、鉛直ループを実行する毎にIF文を繰り返し実行する必要がある。
それに対し、
図10の例では、行L12のIF文が、行L15から始まる鉛直ループの外側に位置している。これにより、
図10の例では、鉛直ループを実行する毎にIF文を繰り返し実行する必要がない。
【0282】
このように、IF文が鉛直ループの外に位置することで、鉛直ループの並列化を比較的容易に行うことができる。また、IF文を実行回数が減る点でCPU負荷を軽減させることができる。
また、
図10の例では、配列の宣言についても鉛直ループの方が内側に位置するようにしている。これにより、ベクトル計算が行えるように最適化している。具体的には、
図9の例では、プログラム上部での変数宣言で、AVD(MAXNUM,K)としている。これに対し、
図10の例では、プログラム上部での変数宣言で、AVD(K,MAXNUM)としている。
図10のように鉛直ループを水平ループの内側に位置させ、また、配列の宣言についても鉛直ループの方を内側に位置させることで、実験では、鉛直ループが水平ループの外側に位置し、配列の宣言についても鉛直ループの方が外側に位置している場合よりも処理時間を5分の2に短縮することができた。
【0283】
<演算の高速化(3)>
ループの並列化により処理時間を短縮させる。並列には、例えばOpenMP(Open Multi-Processing)の技術を用いる。
図11はループを並列化したプログラムの例を示す説明図である。同図の例では、変数I、Jのループを変数nのループにて実行している。具体的には、変数nのループは、行L22で開始し、行L25で終了する。このループ内の行L23、L24で、それぞれ変数I、Jの値を設定している。
また、行L21で並列化を宣言しており、変数nのループを並列実行する。これにより、実験では、12コアのCPUを用いて11倍程度の高速化を行うことができた。
【0284】
以上のように、モデル記憶部181は、シミュレーション対象の水域に設定された格子毎に設定され、格子内に含まれる橋脚の投影面積及び体積をパラメータとして橋脚が水流に及ぼす影響を算出する支配方程式を含む水流のモデルを記憶する。また、シミュレーション処理部191は、モデル記憶部181が記憶しているモデルに基づいて、シミュレーション対象の水域における水流を算出する。
これにより、水域環境シミュレーション装置100では、水域に橋が設けられている場合でもシミュレーションを精度良く行うことができる。特に、水域環境シミュレーション装置100では、橋脚の形状にかかわらず投影面積及び体積をパラメータとして用いることができ、従って、橋脚の形状毎に支配方程式をカスタマイズする必要がない。この点で、ユーザの負担を軽減することができる。
【0285】
また、格子間距離記憶部182は、シミュレーション対象の水域内の位置毎に設定された格子間距離を記憶する。格子点座標算出部192は、格子間距離記憶部182が記憶している格子間距離に基づいて、格子点の座標を算出する。
これにより、水域環境シミュレーション装置100では、シミュレーション対象の水域の形状に応じて柔軟に格子を設定することができる。
なお、実験の結果、隣り合う格子間距離の変化率を±8パーセント(%)以内にすることで、計算を安定させることができた。また、水域環境シミュレーション装置100またはユーザが、座標を変数(パラメータ)とする2次関数を用いて格子間距離を算出し、格子を設定するようにしてもよい。これにより、スムーズな水流を再現することができる。
【0286】
また、データ記憶部183は、水位、鉛直渦動粘性係数、及び、鉛直渦動拡散係数が他の数値よりも桁数の多い数値で表されたデータを記憶する。例えば、データ記憶部183は、水位、鉛直渦動粘性係数、及び、鉛直渦動拡散係数を倍精度小数で記憶し、他のデータを単精度小数で記憶する。そして、シミュレーション処理部191は、データ記憶部183が記憶するデータを用いてシミュレーション対象の水域における水流を算出する。
このように、データの種類に応じて精度を使い分けることで、水域環境シミュレーション装置100では、必要な記憶容量の増大を抑制し、かつ、高精度にシミュレーションを行うことができる。
【0287】
また、格子数記憶部184は、水平方向における格子の行毎及び列毎に格子の数を記憶する。そして、ループ処理部193は、格子数記憶部184が記憶する格子の数の範囲内で行方向のループ及び列方向のループを実行する。シミュレーション処理部191は、ループ処理部193が実行するループにて格子毎に当該格子内における水流を算出する。
これにより、水域環境シミュレーション装置100では、格子数にかかわらずループを一定回数実行する場合よりもループの実行回数を低減させることができる。これにより、水域環境シミュレーション装置100では、水域環境シミュレーション装置100の処理負荷を低減させ、かつ、シミュレーションの実行時間を短縮することができる。
【0288】
また、ループ処理部は、水平方向における格子の行及び列の演算を同一のループの並列処理にて実行する。
これにより、水域環境シミュレーション装置100では、鉛直方向のループを水平方向のループの内側に配置することができ、ループの上限を判定するIF文の実行回数を減少させることができる。これにより、水域環境シミュレーション装置100では、ループの並列化率を高め、水域環境シミュレーション装置100の処理負荷を低減させ、かつ、シミュレーションの実行時間を短縮することができる。
【0289】
また、シミュレーション処理部191は、シミュレーション対象の水域内に設定された格子毎に水質及び汚濁を算出し、得られた水質及び汚濁に基づいて、格子点毎に透明度を算出する。
このように、水域環境シミュレーション装置100によれば、シミュレーション対象の水域における透明度を算出し、この透明度に基づいて水域の水質を評価することができる。
【解決手段】水域環境シミュレーション装置が、シミュレーション対象の水域に設定された格子毎に設定され、格子内に含まれる橋脚の投影面積及び体積をパラメータとして橋脚が水流に及ぼす影響を算出する支配方程式を含む水流のモデルを記憶するモデル記憶部と、前記モデルに基づいて前記シミュレーション対象の水域における水流を算出するシミュレーション処理部と、を備える。