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をインストールします.こちらのサイトからgotmgui-0.1.1-py2-none-any.whlを適当なディレクトリにダウンロードし,そのディレクトリに移動して,以下のようにインストールします.

$ 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

Follow me!