2次元マントル対流計算基本コード (その1)

What's new?

About this software

このコードは、マントル対流に特徴的な、高粘性でかつ粘性率が大きく変化する非圧縮性流体の熱対流の時間発展のようすを計算するものです。 マントル対流シミュレーションで最も計算時間のかかる運動方程式の解法には、流体の非圧縮性を利用して、流線関数を用いた直接解法を使っています。 2次元問題は非常に高速に解くことができますが、3次元問題への拡張はできません。

プログラムの動作確認は亀山の PC (Debian GNU/Linux) で行なっています。 またコンパイル及び実行には、Fortran 90 が必要です。 特殊な機能はほとんど使っていないので、おそらくどんな環境でもコンパイルはできると思います。

ただし、実際にプログラムを動かすには、 行列演算ライブラリ LAPACK が必要 です。 具体的には、対称帯行列を係数行列にもつ連立一次方程式を、直接解法の一種である「コレスキー分解」を用いて解くためのサブルーチン (dpbtrf と dpbtrs) を使っています。 以下のソース一式では、Debian GNU/Linux 8.2 で使われている gfortran (4.9.2) と OpenBLAS (0.2.12-1) を使ってコンパイル・リンクすることを想定していますが、実際に使用する際にはお使いの計算機環境に合わせて Makefile を修正してください。 あるいは同等の機能を持つ高速演算ライブラリが利用可能であれば、そちらを使うように書き変えることで、多くの場合は圧倒的なスピードアップが得られます。 さもなくば、Netlib のサイト から必要なファイルをダウンロードして使ってください。

資料のダウンロード