モデリングは現象を科学的に理解するための、自然科学における一般的な手続きです。自然現象にはたいていの場合、様々な要素が複雑に作用しています。そのすべてを一気に理解することは、通常は容易ではありません。複雑な現実の現象に対して、その本質的な部分を捉えるために必要な要素だけを抽出して表現し、現象を支配する法則性を導き出そうとする手続きがモデリングです。「モデリング」の日本語訳は「模型化」で、その言葉通り、現象そのものを完全に表現するのではなく、その「モデル」=「模型」を構築するという意味です。
例えば、生態学には「Lotka-Volterra モデル」という有名な古典的モデルがあります。これは、食べる(捕食)・食べられる(被食)の関係にある2種類の生物群集について、群集の個体数の増加速度を、
という簡単な形で模型化し、例えば「捕食者が増える→餌(被食者)が減る→捕食者が減る→被食者が増える→捕食者が増える」といったサイクルの特徴を理解しようとするものです。現実の個体数増減にはもちろん様々な複雑な要素が作用するのですが、捕食と被食という関係だけに着目した場合に何が起こるかを考え、それが現実の生態系の振舞をどの程度説明できるかを考えることで、複雑な自然現象に切り込もうとするわけです。
生態学だけでなく、「複雑系」と呼ばれる対象全般について、モデリングは有効な研究手法です。そして、海洋や気候は、我々の身近にある複雑系の代表例と言えます。この Lotka-Volterra モデルと同じように、海洋の循環についても、単純化によって現象を理解するために様々なモデルが考案されてきており、今なおそのような試みは続いています。例えば、「Sverdrup の関係式」として知られる海面風応力と海流の関係式は、古典的な海洋循環モデルの帰結と言えるでしょう。Sverdrup の関係式の表現方法はいくつかありますが、例えば
と表せます。ここでは海洋を「密度一様・海底平坦・非粘性・時間変化なしで、風のみで流れが生じる」ものとして模型化し、その結果としてこのようにシンプルな関係式が導かれています。現実の海洋にはここで無視した要素が含まれるので、Sverdrup の関係式は現実の海流そのものは表しませんが、それでも現実の海流がどうなっているのかを理解するための大きな手がかりとして、発表から数十年以上が経過した現在でも海洋学の基本知識として使われています。
上では海洋のモデルとして Sverdrup の関係式を挙げましたが、実は海洋研究においてモデリングと言った場合、通常はこのようなものを指しません。海洋研究における(狭義の)モデリングとは、(大規模な)数値シミュレーションのことを指します。数値シミュレーションは上述したようなモデリングとは随分趣が異なるように思えるでしょうが、やはりこれも上で述べた意味でのモデリングという手続きなのです。
流体力学の基本的な方程式である Navier-Stokes 方程式は、海流に適用するのに十分なものです。これは、流速(3成分)・密度・圧力という5個の従属変数を持つ3個の偏微分方程式です。同じく、流体力学の基本的な方程式である連続の式(連続体における質量保存則)も、海流に適用されます。これは流速と密度を従属変数とする偏微分方程式です。海水の密度は圧力・温度・塩分に依存し(厳密には塩分以外の溶存物質濃度にも依存しますが、塩分と比べて濃度がきわめて低いため、実用上は考える必要がありません)、それを表す関係式は状態方程式と呼ばれます。海水の温度は海流や拡散によって輸送され、それを表す熱輸送方程式(温度の移流拡散方程式)は、温度と流速を従属変数とする偏微分方程式で表されます。海水の塩分についても、温度と同様な輸送方程式が成り立ちます。以上で、流速・密度・圧力・温度・塩分という7個の従属変数に対して7個の方程式が与えられ、海流を知るための(ほぼ)完全な方程式系が得られたことになります。
この「完全な方程式系」をあらゆる条件に対して解析的に解く事ができれば、モデリングという手続きを経ることなく海流の「正解」が得られると言えます(実際には、仮に解析解が得られたとしても、その中身は複雑すぎるため、現象の理解のためにはやはり Sverdrup の関係式のような単純化モデルが必要とされるでしょうが)。しかし、これは叶わぬ夢です。解析解が得られないことへの対処として、ひとつの方向は、現象に対する洞察をもとに、条件を制約したり方程式系に近似を適用することを通して、解くことができる形の「模型方程式」を作ることです。この方向のモデリングが、上述の Sverdrup の関係式を導く手続きにおいて用いられています。そして、もうひとつの方向が数値計算です。
計算機ができることは基本的には加減乗除計算だけであり、微分方程式そのものを解くことはできません。また、現実の海洋では流速などの変数が時空間に連続に分布していますが、連続ということは無限の情報量を持っていること意味し、無限のデータを計算機で扱うこともやはりできません。したがって、微分方程式を計算機で解くためには、変数を有限個のデータで表現することと、方程式を加減乗除だけで解ける形に変えることが求められます。こうした手続きは方程式の「離散化」と呼ばれ、同じ方程式に対しても発想が大きく異なるいくつかのやり方が存在します。ここではその中でも最も単純と言える「有限差分法」を例にとって、以下の話を進めます。
有限差分法ではまず、変数を有限個のデータで表現するために、時空間を有限の格子に区切り、その格子点におけるデータのみを扱います。例えば、全海洋を空間的に経度1度・緯度1度・深さ100m幅の格子に区切り、その幅のとびとびの値だけが知りうる情報とします。時間的にも、例えば30分ごとのように、有限の時間間隔のデータのみを計算します。この有限個のデータ値を使って微分を表現しようとすると、必然的に差分表現になります。すなわち、空間一階微分(勾配)であれば、例えば隣接する格子点値の差を格子幅で割ったものを微分の代わりとして採用することができ、微分を加減乗除で表現することができます。なお、微分とはそもそも、差分の格子幅を無限に小さくした極限として定義されるものです。格子幅が無限に小さければ差分で得られた値は正解である微分値に一致しますが、有限の格子幅の場合には誤差を生じます。誤差とは、表現される現象が正解である現実の現象からずれることを意味します。このように、数値計算によって得られる解は、連続量である変数を有限個の離散量で表したという点で現実の一部を抽出したものであり、また、誤差の影響を受けない範囲の現象だけが意味を持つという点でも現実の一部を抽出したものです。そのような意味において、数値シミュレーションはやはりモデリングなのです。
以下、「モデリング」と言う場合には、ここに説明した意味での数値シミュレーションを指すことにします。また、「モデル」という語は、そのシミュレーションを計算機上で実行するためのコンピュータプログラムのことを指すことにします。
海洋循環のモデリングにはモデルに加えて境界条件が必要です。すなわち、
という海洋外部の条件を与えることによって、海洋内部の状態を知ることができます。「はじめに」でも述べたように、船舶等によって観測機器を海中に投入する直接観測で海洋を知るのにはまだまだ大きな困難があります。一方、近年は人工衛星からのリモートセンシングにより、海面付近のデータを高解像度・高頻度に得ることが可能になってきました。しかし、海面から離れた海洋内部のデータはリモートセンシングではほとんどわかりませんし、海面付近についても知ることのできる変数は限られます。海洋研究においてモデリングを手段とする最大の利点は、観測ではとても得られないような時空間分解能を持つ海洋内部の情報を得られることにあります。
しかしながら、上に述べた通り、モデルはあくまでも「模型」であって本物ではなく、モデリングの結果として得られた海洋内部の情報が真実であるという保証はありません。適切な観測データに基づいて有効性が検証されることではじめて、モデリングは研究手段として有用なものになります。観測研究はそれ単体で研究として成立します。一方、モデリング研究の場合には確かめようがないことは研究として成立せず、観測研究を無視して前に進むことはできません。それでは、モデリングでは発見的な研究は不可能かというと、決してそうではなく、実際にモデリングで未知の海洋現象を発見するという例は存在します。モデルは現実そのものではない模型ですが、でたらめな模型なわけではありません。モデルの限界をよく理解した上で適切に使えば、発見的研究も可能なのです。
モデリングによる海洋現象の発見的研究の例については説明しだすと長くなるので「研究テーマ」に譲ることにし、ここでは別の喩えを述べておきます。海洋学に限らず、自然科学一般において、現象の発見そのものは観測(ないし実験)によって得られるものです。しかし、ノーベル賞を受賞するような過去の科学的大発見にも見られる通り、観測を伴わない理論的な予言が先行し、それを後から観測が実証するという場合が少なからずあります。この場合の「理論」というのは、通常はここで最初に述べた意味での「モデル」なのです。たとえ理論物理学においても、全宇宙の現象を完全に記述する方程式というものが得られているわけではないのですから。
発見的研究は派手ですが、研究はそれがすべてではありません。海洋観測では様々な現象の断片しか捉えられないことが多いのですが、モデリングによれば全体像を詳しく捉えることが可能となります。対応する観測を適切に再現しているという検証が済みさえすれば、現象を詳細に記述し、それが生じるメカニズムやそれが海洋循環という枠組みの中で持つ意味を探るために、モデリングはこの上なく強力な手段となります。
一口に「海洋のモデリング研究」と言っても、具体的なスタイルは様々です。研究道具である海洋モデル(コンピュータプログラム)を作ることに心血を注ぐ人もいれば、モデル作りは誰かに任せて自分では専ら使うだけの人もいます。あるいは、世界トップクラスのスーパーコンピュータを用いて大規模シミュレーションが行われるようになった昨今では、大規模データとなるモデリング結果を解析することが中心の人もいます。実際のところ、大規模シミュレーションの結果を隅から隅まで一人で調べることは不可能に近く、自分では直接モデルを使わないがモデリング結果の解析をするという人は必要です。
パラメタリゼーション開発
「海洋モデルを作る」ということについて、海洋モデルは既に研究に使われる道具として存在するのに、ずっと作り続けていなければならないのか、という疑問を持たれるかもしれません。上の説明からすると、海洋循環に対する方程式は上に述べた「完全な方程式系」として既に出来上がっていて、それを計算機で解くことができる形にするだけなのだから、一度作れば十分のように思えるでしょう。しかし実際には、海洋モデルの元になっている方程式は、「完全な方程式系」を模型化したものです(この模型化では、方程式はより複雑になってしまいますが)。この模型化は「パラメタリゼーション(パラメータ化)」と呼ばれ、海洋モデルに限らず、様々なモデル(数値モデルでも数値モデル以外でも)で適用されています。
上に述べた通り、海洋モデルでは時空間にとびとびの格子点の情報しか扱うことができませんが、実際にはその格子幅より小さい現象が存在します。格子幅より小さい現象は無視するという模型化がされているわけですが、その小さい現象の中には、格子幅よりも大きい現象に影響を与えるものが存在します。そうした小さい現象を単に無視してしまうと、格子幅よりも大きい現象の再現が現実からかけ離れたものになってしまいます(具体例は「気候の温暖化に伴う黒潮の変化」に挙げられています)。モデルにおいて格子幅より小さい現象そのものは全く表現できないのですが、そうした現象は多くの場合、格子幅より大きい現象の構造と関係しています。その場合、モデルで表現できる構造をからどのような小さい現象が生じ、その小さい現象がモデルで表現できる構造にどう影響を及ぼすかについて、実験や理論に基づいて方程式に取り込むことがある程度可能となり、またそれが必要とされます。それがパラメタリゼーションです。パラメタリゼーションはもちろん万能ではなく、あらゆる状況に適用可能なものは存在しません。それでもできる限りの汎用性と実用性を求めて、よりよいパラメタリゼーションの開発が続けられています。
計算機の能力の向上に伴って格子幅を小さくすることが可能となり、そうするとより小さな現象が表現できるようになります。格子幅を十分に小さくとればパラメタリゼーションは不要になるのですが、大規模な海洋循環のモデリングにおいてその段階に達するのは当分期待できないことです(格子幅より小さい現象が十分にランダムなノイズのようなものしかない段階まで達する必要があり、それを分子粘性・拡散のスケールとするならば数センチメートル、等方的乱流が実現されるスケールとしても数メートル以下となります)。そして、格子幅が大きく変わると、上に述べたような格子幅より大きい現象と小さい現象の相互関係も変わるため、新たなパラメタリゼーションの開発が必要となります。
技術的なモデル開発
モデル作りにはパラメタリゼーションの開発以外の要素もあります。その中でも大きなものは上に述べた離散化を具体的にどうするかに関するものです。離散化の理想は、方程式をできるだけ小さな誤差かつできるだけ短い計算時間で解くことがですが、このふたつの要求は相反します。どこで折り合いをつけるのかは、どのような現象をどのように扱いたいかによります。また、全く同じ結果を出すコンピュータプログラムでも、その書き方次第で計算時間が大きく違うことがあります。特に最近の計算機では、計算機の構造に適したプログラミングをするかしないかで、計算速度が何倍も違ってしまうこともあります。
高速実行を可能にするプログラムの書き方などは、計算機科学という分野の問題になり、それを専門とする研究者・技術者がいます。最近の計算機での高速化の方法は単純ではないため、モデリング研究者自身がすべてを理解して対処するというのはかなり難しくなってきています。最先端のスーパーコンピュータを使って最先端のモデリング研究を行う場合には、計算機科学者の協力を得てモデル開発を行うことが求められています。計算機科学者の人々は、様々な方程式・問題の典型的な解き方については理解がありますが、個々の分野で用いられる最新の離散化手法等をすべて把握することは不可能なため、そうしたモデル開発のためにはモデリング研究者と計算機科学者の間の「対話」が重要となります。対話を成立させるためには、モデリング研究者も計算機科学に関するある程度深い知識を持つ必要があります。
モデリングに限らず、観測や実験でも、研究手法の開発に技術的側面が伴うのは当然のことです。観測や実験において先端的機器の技術的開発が先端的な科学的成果につながるように、モデリングでは計算機科学の理解に基づく技術開発が先端的研究につながります。また、研究手法の技術的な側面の理解は、その研究手法の限界を知るという意味でも重要です。適用限界を知らないと、間違った結果を正しいと信じ込んでしまうことにつながります。科学的研究とそれを可能にする技術開発は表裏一体で、両者のバランスがあればこそ先端的な研究は可能になります。
自分自身ではモデルそのものの開発をしないモデリング研究者であっても、モデルに関するある程度の技術的知識・理解は必要です。
モデルによる実験
モデルを使う大きな目的のひとつは、現実を忠実に再現した上で、その現象がどのように成り立っているのかをモデリング結果を解析して調べることです。そして、もうひとつの大きな目的は、対象とする現象が現実とは違った設定のもとでどうなるかを「実験」してみることです。このように設定を様々に変化させる実験を行うことは、現象の法則性を見つけるためには有効な手段です。海洋の大規模な循環の物理的な特性は、大規模であるからこそそうなるというものが多く、実験室の水槽の中で「小さな模型」を作ることは基本的に不可能です。そしてもちろん、現実の海洋そのものに対して、その大規模な循環を恣意的に変えるような実験を行うことは不可能です。モデルは海洋の大規模な循環に対して実験を行うことができる唯一の手段です。
予測としてのモデリング
モデリングは予測のための手段でもあります。上に述べたような「実験」をする場合でも予測をする場合でも、使うモデルは基本的に同じものです。ただ違うのは、予測の場合は初期条件の設定に特に気を使う必要があり、継続的な予測を行う場合には「データ同化」と呼ばれる手法を用いて継続的に観測データを取り込む必要があります。
これまで述べた通り、モデルはあくまで模型であり、現実のすべてを完全に表現することは決してありません。また、仮にモデルが完全なものであったとしても、観測等によって与えられる予測の初期状態は、空間的なデータ数の意味でも誤差の意味でも、完全ではあり得ません。海洋は非線型複雑系(カオス系)であるため、これらの不完全さに伴って予測には限界が生じます。すなわち、誤差をもった初期状態からの予測結果には当然誤差が存在しますが、非線型系であるためにその誤差は時間とともに増大します。また、モデルが完全でないことによる誤差の増大もあります。そのため、ある程度より長い時間の予測は原理的に不可能です。例えば、現在の天気予報は数値モデリングに基づいていますが、一週間程度より長い時間の予報は、大まかな寒暖の傾向などを越えては基本的に不可能です。
モデリングの初期状態を作成するにあたって、モデルのすべての変数のすべての格子点における値を与えられるほどの観測は通常ありません。したがって、実測値だけで初期条件を作ると、空間的には内挿・外挿などの方法でデータを埋めることになり、また観測されない変数については何らかの仮定に基づいたデータなどを与える必要が生じます。いずれにしても初期状態は大きな誤差を持つことになり、それは予測の限界に早く達してしまうことを意味します。一方、ひとだび何らかの方法でモデルによるある程度妥当な予測を行っていれば、その結果として全変数・全格子点に対してある程度妥当なデータが得られていることになります。予測をそのまま続けていけば上で述べたようにいずれ妥当な予測にならなくなるので、どこかの時点で実測値を反映した予測の修正をしなければなりません。修正をしようという時点である程度妥当な予測データが得られているのならば、モデル予測値を全部捨てて実測値のみから予測を再開するというのは、かなりもったいないことです。
天気予報など、実用的に行われている継続的な予測モデリングにおいては、モデルによる予測データを適当な時間ごとに(天気予報ならば例えば6時間ごとなど、十分な実測データが集まる時間間隔)実測データを取り込むということを行います。このとき、予測データも実測データもそれぞれ別個の誤差を持つので、単に実測データが存在する場所で予測データを置き換えてしまうことや、実測データがあまり存在しない領域で内挿等によって実測データを反映した修正を行うことは好ましくありません。予測が不連続にならないように、そして同時に実測値による修正が十分な効果を発揮するように配慮した修正が求められます。その方法を考えることも、モデリング研究の重要な一部になっています。
海洋循環のモデリング研究のためには、いくつかの分野の知識や技術が必要とされます。
物理学
海洋学は様々な科学的要素を含む学問です。その中で、ここまで述べてきたような循環を扱う分野は海洋物理学と呼ばれます。上で海流を知るための完全な方程式系について述べましたが、その基礎となっている流体力学と熱力学は、海洋循環を扱うために必要な基礎知識になります。流体力学・熱力学の中にも様々なテーマがありますが、流体力学については理想流体・粘性流体・乱流に関する基礎的部分、熱力学については平衡系に関する古典熱力学(大学教養課程程度)が必要でしょう。
地球流体力学
流体力学の中でも、大気や海洋にあてはまる状況について特に詳しく扱う学問分野のことを、地球流体力学と呼びます。大気や海洋にあてはまる状況としては
- 空間規模が地球の大きさ程度であること
- 地球の自転とともに回転していること
- 密度の変化が運動にとって重要な役割を果たすこと。特に鉛直方向に密度変化が大きく、基本的には上方ほど密度が低いという重力的に安定な状態(安定成層)にあること。
が主に挙げられます。地球流体には特有の不安定現象や波動伝播があり、それらは大気や海洋の運動の様々な側面において重要要素として働いています。そうした地球流体特有の現象に関する知識が無いと、海洋物理学の文献を読むこともできません。
数学
物理学の様々な法則は方程式として表され、その理解や適用のために数学が必要とされることは、言うまでもないでしょう。微積分や線型代数といった、大学教養課程までに学ぶような基礎的な数学は大前提の必要知識です。それらに加えて、モデル(パラメタリゼーションを含む)を開発・理解したり、モデリング結果を解析する上で、いくつか知っておくべきことがあります。
方程式は適当な座標系における微分方程式として表されます。地球流体の場合、最も自然な空間座標系は経度・緯度・高度ですが、モデルにする場合にはそれとは違う様々な座標系が用いられることがあります。ある座標系のもとで方程式を書き下してモデルにするために、あるいはその座標系におけるモデリング結果を解析するために、座標変換に関する知識が必要になります。これは数学ではテンソル解析とか微分幾何という分野に相当します。座標変換とも絡んで、複素函数に関する知識も身につけておくと便利です。
数値計算手法
まず前提として、プログラミング言語の習得が必要です。流体力学の数値計算の場合、C もしくは fortran でのプログラミングが一般的で、特にこだわりがなければ fortran が良いと思います。
また、最近の大型計算機では並列計算を行うことが前提です。これは、全体の大規模な計算を多数の小規模な計算に分割し、分割したそれぞれを別の独立した小さい計算機(不正確ですが以下ではこの小さな計算機の単位を「プロセス」と呼びます)で解くというものです。例えば流体計算の場合、計算する全領域(例えば全海洋)を適当な個数の小さな領域に分割し、各領域の計算を別々のプロセスが受け持つという方法を採ります。このとき、それぞれのプロセスは担当する領域内の格子点における変数だけをメモリ上に記憶しており、他の領域の情報は保持していません。しかし、流体は分割された領域を越えてつながっているので、そのつながりに関するデータをプロセス間で交換する必要があります。すなわち、別の分割領域から流れ込んでくるときには、その流れ込んでくるもののデータを取得する必要があります。このデータ交換の仕方は陽にプログラムで指定する必要があり、最も一般的には MPI というライブラリ(プログラムにおけるデータ交換命令の集合と思ってください)を用いるため、その使い方を知る必要もあります。
離散化手法については、実際の海洋モデルでは様々な方法が用いられますが、基礎知識としてまず、有限差分法での移流(流れによる輸送)・拡散方程式の解法については知っておくべきでしょう。
統計解析手法
モデリング結果を使って研究を行うためには、結果のデータに対して統計解析を行う必要があります。場合に応じて様々な高度な統計解析手法を用いることがありますが、まずは基礎的な統計解析(分散分析・回帰分析・スペクトル分析など)を一通り学んでおいて損することはありません。
海洋は、様々な溶存物質を大量に含む物質の貯蔵庫であり、また多様な生命の息づく場でもあります。そしてそれらの存在量や分布は、海洋の物理的な状態、すなわち流れや水温に大きな影響を受けます。またその逆に、溶存物質の輸送や生物活動が、海洋の流れや水温に影響を及ぼす場合もあります。特に、生物活動までを含んだ海洋中の炭素循環は大気中二酸化炭素濃度をコントロールする重要な要素で、海洋のみならず気候システム全体の大規模な変動に関わります。
海洋は流れなどの物理的側面だけを取り上げても面白い研究対象ですが、その物理的側面を物質や生命が存在する場として捉え、それらの関係を考えると、また異なる面白みが現れます。この物理環境と化学・生物過程が組み合わさった問題は、もちろん物理だけを扱う場合よりも高度な複雑系であり、その研究においてもモデリングは今や無くてはならない研究手段になっています。