Set up GOTM-FABM on Linux

Table of Content

Linuxでのセットアップ方法はこちらにまとめられています.ソースコードをこちらのサイトから入手します.
[cc lang='bash']
~/fabm/hosts$ git clone https://github.com/gotm-model/code.git gotm
[/cc]
計算例のcasesも入手します.
[cc lang='bash']
~/fabm/hosts/gotm$ git clone https://github.com/gotm-model/cases.git cases
[/cc]
Githubのサイトはこちらです.
[cci]~/fabm/hosts/gotm/scripts/linux[/cci]に存在する,[cci]gotm_configure.sh[/cci]と[cci]gotm_build.sh[/cci]をbuildディレクトリ(例えば,[cci]~/fabm/build/gotm[/cci])にコピーします.それらの中身の環境変数を環境に合わせて編集します.

gotm_congigure.sh

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

gotm_build.sh

コンパイラに合わせた設定を行います.[cci]np=[/cci]はビルドに使用するマシンのコア数を指定します.適切に指定するとビルドの時間が短縮されるようです.以下はコア数が2の場合です.
[cc lang='bash']
# default Fortran compiler is gfortran - overide by setting compuiler like:
export compiler=ifort

np=-j2
[/cc]
成功すると,[cci]~/local/gotm/ifort/bin[/cci]に実行形式[cci]gotm[/cci]が作成されます.実行は入力データを準備したディレクトリで行いますので,実行形式にpathを通しておきましょう.
[cc lang='bash']
$ export PATH=/home/username/usr/local/gotm/ifort/bin:$PATH
[/cc]
さらに,こちらで準備したIntel版netcdfにlinkできるように,[cci]~/.bashrc[/cci]に環境変数を加えます.
[cc lang='bash']
export LD_LIBRARY_PATH=/usr/local/netcdf-ifort/4.4.4/lib:$LD_LIBRARY_PATH
[/cc]
通常,netcdf4ではnc-configが利用されるのですが,GOTMではnetcdf3.6.3が標準的に使われているようで,上記の設定が必要なようです.

casesの準備

GOTMには多くの計算例が用意されています.ソースコードはこちらで,解説はこちらです.これら各caseを[cci]fabm/hosts/gotm/cases/[/cci]以下にダウンロードします.casesの一つであるnns_annualを実行してみます.こちらの記事を参考にさせていただきました.
[cci]cases/nns_annual[/cci]ディレクトリにはデータファイル等がいくつかありますが,必要な[cci]nml[/cci]ファイル等が存在しておらず,Makefileを用いて準備する必要があります.このMakefileで使用されるeditscenario等のパッケージをインストールする必要があります.Python2.7の環境を用意しておきます.Python3.6がbase環境で,condaでPython2.7の仮想環境pyfabmが構築されているとします.
[cc lang='bash']
$ source activate pyfabm
$ pip install xmlplot --upgrade
$ pip install xmlstore --upgrade
$ pip install editscenario --upgrade
[/cc]
次に,gotmguiをインストールします.こちらのサイトから[cci]gotmgui-0.1.1-py2-none-any.whl[/cci]を適当なディレクトリにダウンロードし,そのディレクトリに移動して,以下のようにインストールします.
[cc lang='bash']
$ pip install gotmgui-0.1.1-py2-none-any.whl
[/cc]
さらに,[cci]fabm/hosts/gotm/cases/[/cci]にある[cci]Makefile[/cci]を環境に合わせて編集します.[cci]GOTMDIR[/cci]はGOTMのソースコードが含まれている[cci]src[/cci]を含むディレクトリを指定します.[cci]src[/cci]は含めません.
[cc lang='bash']
export GOTMDIR=$(HOME)/winc/cal/fabm/hosts/gotm
[/cc]
準備が整いましたので,各caseのnmlファイルを作成します.[cci]fabm/hosts/gotm/cases/[/cci]において,以下を実行します.
[cc]
$ make namelist
[/cc]
すべてのcaseで必要なnmlファイルが作成されます.
[cci]cases/nns_annual[/cci]に入り,[cci]gotm-fabm.mml[/cci]と[cci]fabm.yaml[/cci]を用意し,[cci]output.yaml[/cci]を適切に修正してから,実行形式gotmを実行します.gotmにはPATHを通してあるので,どこからでも実行できるはずです.1年分の計算が1.6秒で完了しました.
[cc lang='bash']
$ gotm
[/cc]

コメントを残す

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

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