FrontFlow/red のコンパイル

2015年11月9日

はじめに

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") 通りに実行すればよいはずだが、いくつか問題にぶつかったので、手順を自動化した。

以下の手順でコンパイルする。

  1. 上記のパッケージを展開して、その中のファイルをすべて FrontFlow/red のディレクトリ (OPEN_FFR) に放り込む。
    $ cp FFR_V3.1.004-gfortran/* OPEN_FFR
    
  2. プログラムを修正するためにパッチを当てる。
    $ cd OPEN_FFR
    $ patch -p1 < FFR_V3.1.004-gfortran.patch
    
  3. 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
    
  4. Makefile.in の修正が済んだら、コンパイルを実行。
    $ make
    
  5. コンパイルに成功したら、"OPEN_FFR/FFR_V3.1.004/bin_FFR" にパスを通すなり、適当なところにインストールするなりする。