Set up GOTM-FABM on Linux

Table of Contents

Linuxでのセットアップ方法はこちらにまとめられています.ソースコードをこちらのサイトから入手します.

~/fabm/hosts$ git clone https://github.com/gotm-model/code.git gotm

計算例のcasesも入手します.

~/fabm/hosts/gotm$ git clone https://github.com/gotm-model/cases.git cases

Githubのサイトはこちらです.
~/fabm/hosts/gotm/scripts/linux に存在する,gotm_configure.shgotm_build.sh をbuildディレクトリ(例えば,~/fabm/build/gotm にコピーします.それらの中身の環境変数を環境に合わせて編集します.

gotm_congigure.sh

ソースコードは src ディレクトリに存在することが前提で,具体的に ~/fabm/hosts/gotm/src に存在しているとしますと,最後の /src を除いた部分を環境変数に代入します.また,使用するコンパイラに合わせて編集します.最後に,実行形式をインストールするディレクトリを指定します.

GOTM_BASE=${GOTM_BASE:=~/fabm/hosts/gotm}
FABM_BASE=${FABM_BASE:=~/fabm}
# default Fortran compiler is gfortran - overiden by setting compiler:
export compiler=ifort
compiler=${compiler:=gfortran}
# Make install prefix configurable
install_prefix=${install_prefix:=~/local/gotm/$compiler}
gotm_build.sh

コンパイラに合わせた設定を行います.np= はビルドに使用するマシンのコア数を指定します.適切に指定するとビルドの時間が短縮されるようです.以下はコア数が2の場合です.

# default Fortran compiler is gfortran - overide by setting compuiler like:
export compiler=ifort

np=-j2

成功すると,~/local/gotm/ifort/bin に実行形式 gotm が作成されます.実行は入力データを準備したディレクトリで行いますので,実行形式に path を通しておきましょう.

$ export PATH=/home/username/usr/local/gotm/ifort/bin:$PATH

さらに,こちらで準備したIntel版netcdfにlinkできるように,~/.bashrc に環境変数を加えます.

export LD_LIBRARY_PATH=/usr/local/netcdf-ifort/4.4.4/lib:$LD_LIBRARY_PATH

通常,netcdf4ではnc-configが利用されるのですが,GOTMではnetcdf3.6.3が標準的に使われているようで,上記の設定が必要なようです.

casesの準備

GOTMには多くの計算例が用意されています.ソースコードはこちらで,解説はこちらです.これら各caseをfabm/hosts/gotm/cases/ 以下にダウンロードします.casesの一つである nns_annual を実行してみます.こちらの記事を参考にさせていただきました.
cases/nns_annual ディレクトリにはデータファイル等がいくつかありますが,必要な nml ファイル等が存在しておらず,Makefile を用いて準備する必要があります.このMakefileで使用されるeditscenario等のパッケージをインストールする必要があります.Python2.7の環境を用意しておきます.Python3.6がbase環境で,condaでPython2.7の仮想環境pyfabmが構築されているとします.

$ source activate pyfabm
$ pip install xmlplot --upgrade
$ pip install xmlstore --upgrade
$ pip install editscenario --upgrade

次に,gotmguiをインストールします.こちらのサイトから[cci]gotmgui-0.1.1-py2-none-any.whl[/cci]を適当なディレクトリにダウンロードし,そのディレクトリに移動して,以下のようにインストールします.

$ pip install gotmgui-0.1.1-py2-none-any.whl

さらに,fabm/hosts/gotm/cases/ にある Makefile を環境に合わせて編集します.GOTMDIR はGOTMのソースコードが含まれている src を含むディレクトリを指定します.src は含めません.

export GOTMDIR=$(HOME)/winc/cal/fabm/hosts/gotm

準備が整いましたので,各caseのnmlファイルを作成します.fabm/hosts/gotm/cases/ において,以下を実行します.

$ make namelist

すべてのcaseで必要なnmlファイルが作成されます.
cases/nns_annualに入り,gotm-fabm.mmlfabm.yaml を用意し,output.yaml を適切に修正してから,実行形式 gotm を実行します.gotm には PATH を通してあるので,どこからでも実行できるはずです.1年分の計算が1.6秒で完了しました.

$ gotm

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください