はじめに
FrontFlow/red を gfortran でコンパイルする手順を示す。
バージョン
- FrontFlow/red Ver. 3.1.004 (2015.9.24 修正版)
- Ubuntu 14.04 LTS (Docker コンテナ 版, Docker 1.8.3, Windows 7 64 bit)
必要なもの
- Fortran 90 コンパイラ (ここでは gfortran を使用)
- MPI ライブラリ (ここでは Open MPI を使用)
それぞれ apt-get でインストールしておく。
FrontFlow/red の準備
パッケージを ここ から入手し、展開する。
FrontFlow/red のコンパイル
FrontFlow/red はいくつかのプログラムから構成される。コンパイルはそれぞれの Mekefile.in を環境に合わせて修正して make を実行すればよい。基本的には付属の文書 ("OPEN_FFR/FFR_V3.1.004/readMe") 通りに実行すればよいはずだが、いくつか問題にぶつかったので、手順を自動化した。
以下の手順でコンパイルする。
- 上記のパッケージを展開して、その中のファイルをすべて FrontFlow/red のディレクトリ (OPEN_FFR) に放り込む。
$ cp FFR_V3.1.004-gfortran/* OPEN_FFR
- プログラムを修正するためにパッチを当てる。
$ cd OPEN_FFR
$ patch -p1 < FFR_V3.1.004-gfortran.patch
- Makefile.in を書き換える。C コンパイラについてはそのままでよいはず。Fortran コンパイラについては、gfortran 以外のものを使用する場合は修正する。ソースの行の文字数は 128 まで許容するように指定する。mpif90 のオプションに関しても同様。MPI は環境に合わせて書き換える。
###
### macro definitions
###
###
### compile for OS
OS = Linux
### Fortran compiler related macros
F90 = gfortran
F90LINKER = gfortran
FOPTIONS = -O2 -ffixed-line-length-128
### C compiler related macros
CC = gcc
COPTIONS = -O2
### C linker related macros
LDOPTIONS =
AR = ar rv
RANLIB = ar -ts
### MPI related macros
MPI_F90 = mpif90 -O2 -ffixed-line-length-128
MPI_INC = -I/usr/include/mpi
MPI_LIBS = -lmpi
# eof
- Makefile.in の修正が済んだら、コンパイルを実行。
$ make
コンパイルに成功したら、"OPEN_FFR/FFR_V3.1.004/bin_FFR" にパスを通すなり、適当なところにインストールするなりする。
|