SIESTA コードの多くはFortran90で記述されており、ソースコード形式で配布されています。このため、SIESTAを利用するには、Fortran90コンパイラを用いて実行形式ファイルを作成する必要があります。

ここでは、使用コンパイラにIntel(R) Fortran コンパイラを利用した場合の、実行形式ファイル作成方法、および作成した実行モジュールの動作確認方法を説明します(シリアル版)。

以下の内容は、シリアル版ソルバーのビルド方法のみについて述べています。MPI並列版ソルバーおよび各種ユーティリティ群の説明は含まれておりませんので、ご注意ください。


インストール方法

使用環境  
Intel Fortran Version 10.1.025
MKLライブラリ Version 10.2.5.035
SIESTA siesta-3.0-rc1
OS Fedora release 12 (64-bit)

ライセンス締結後、SIESTA公式HPより、ソースコードをダウンロードします。


1) ライセンス締結後に送付されるユーザID/パスワードを利用し、SIESTA公式HPより、ソースコードファイルをダウンロードし、任意のディレクトリに展開します。

$ tar zxvf siesta-3.0-rc1.tar.gz


2) siesta-3.0-rc1ディレクトリに移動します。

$ cd siesta-3.0-rc1


3) コンパイル用作業ディレクトリObjに移動します。

$ cd Obj

新たにディレクトリを作成し、そちらを作業ディレクトリとすることも可能です。
例) $ mkdir Obj_ifort; cd Obj_ifort


4) スクリプトobj_setup.shを実行し、コンパイル環境を整えます。

$ sh ../Src/obj_setup.sh


5) スクリプトconfigureを実行し、Intel Fortranコンパイラ用のMakefileを作成します。

$ ../Src/configure FC='ifort' FCFLAGS='-w -O2'
LDFLAGS='-L/opt/intel/mkl/10.2.5.035/lib/em64t' --with-blas='-lmkl_solver_lp64_sequential
-Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group
-lpthread /usr/lib64/libc_nonshared.a'

※ 通常のシステムでは、"libc_nonshared.a"のリンクは必須ではないでしょう。


6) make コマンドを実行し、ビルドを開始します。

$ make


7) エラーが出力されず、最後まで処理が進むと、実行ファイルsiestaが作成されます。

必要に応じて、/usr/local/bin等のディレクトリにコピーするとよいでしょう。または、siesta実行ファイル格納用のディレクトリを新規に作成し(e.g. /usr/local/siesta)、ユーティリティプログラム群を含めて、格納してもよいでしょう。


8) 続けてtransiestaをビルドする場合は、次のオプションを指定し、makeコマンドを再実行します。中間ファイルが削除され、ビルドが開始されます。

$ make clean
$ make transiesta


動作チェック

作成した実行ファイルの動作確認のための、サンプル入力ファイルと参照用アウトプットが用意されています。また、作業を簡略化するスクリプトも提供されています。

1) まず、ディレクトリTestsに移動します。

$ cd siesta-3.0-rc1/Tests


2) 変数SIESTAにバイナリのパス、変数ALLで計算ジョブを指定し、makeコマンドを実行します。この例では、h2oのみを指定し実行しています。

$ make SIESTA=/usr/local/bin/siesta ALL=h2o


3) 計算がはじまり、計算結果とリファレンスの比較までが自動的に行われます。標準出力に "SIESTA finished successfully" と表示されれば、作成したモジュールは正常な値を返しています。

4) ALLオプションを外しmakeコマンドを実行すると、Makefile内のALLで定義された全ジョブが逐次実行されます。

$ make SIESTA=/usr/local/bin/siesta