\hyperlink{namespacegtool5}{gtool5} fortran library を利用するには以下のソフトウェアが必要です.


\begin{DoxyItemize}
\item Fortran Compiler\+: support $>$= fortran 2003 standard.
\item \href{https://www.ruby-lang.org/ja/}{\tt Ruby}\+: ソースコードの動的生成に \mbox{[}erb\mbox{]}(E\+R\+Bja) を利用しています.
\item \href{http://www.unidata.ucar.edu/software/netcdf/}{\tt Unidata $\vert$ Net\+C\+DF C Library}
\item \href{http://www.unidata.ucar.edu/downloads/netcdf/index.jsp}{\tt Unidata $\vert$ Net\+C\+DF Fortran Library}
\item Optional\+: ドキュメントの再生成には \href{http://www.stack.nl/~dimitri/doxygen/}{\tt Doxygen} が必要となります.
\end{DoxyItemize}

\subsubsection*{はじめに.}

\hyperlink{namespacegtool5}{gtool5} fortran library は autotools (\href{https://www.gnu.org/software/autoconf/autoconf.html}{\tt autoconf},\href{https://www.gnu.org/software/automake/}{\tt automake},\href{https://www.gnu.org/software/automake/}{\tt libtool}) を利用しています. autotools を利用する典型的なソフトウェアと同様に \begin{DoxyVerb}./configure & make & make install
\end{DoxyVerb}


でインストールすることができるでしょう.

\subsubsection*{環境変数の設定}

先ずは環境変数 {\ttfamily FC} に使用する Fortran コンパイラを, 環境変数 {\ttfamily F\+C\+F\+L\+A\+GS} に最適化やデバッグのためのオプションを指定して下さい. 例えば \begin{DoxyVerb}% FC=gfortran
% FCFLAGS="-g -O2 -fopenmp"
\end{DoxyVerb}


などです.

\subsubsection*{ソースの展開と {\ttfamily configure} の実行}

次に適当な作業ディレクトリでソースアーカイブを展開します. ソースは gtool5-\/{\ttfamily バージョン} というディレクトリに展開されます. \begin{DoxyVerb}$ tar xvf gtool5_current.tar.gz
\end{DoxyVerb}


展開されたディレクトリに移動し, {\ttfamily ./configure}を実行します. \begin{DoxyVerb}% ./configure
\end{DoxyVerb}


out ot tree build にも対応していますので, 例えば {\ttfamily build} 以下でコンパイルをしたい場合には \begin{DoxyVerb}% mkdir build
% cd build
% ../configure
\end{DoxyVerb}


といったことも可能です.

インストール先などを変更したい場合などは, {\ttfamily configure} に {\ttfamily -\/-\/help} オプ ションをつけて, 指定可能なオプションリストをご確認下さい. \begin{DoxyVerb}% ./configure --help
\end{DoxyVerb}


主なオプションは以下の通りです.


\begin{DoxyItemize}
\item {\ttfamily -\/-\/with-\/nf-\/config=A\+RG}
\begin{DoxyItemize}
\item Defatult\+: {\ttfamily P\+A\+TH} から探索.
\item {\ttfamily A\+RG} に {\ttfamily nf-\/config} を明示的に指定することもできます. これによって Net\+C\+DF C Library および Net\+C\+DF Fortran Library に関する 設定が行なわれます.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/netcdf=A\+RG}
\begin{DoxyItemize}
\item {\ttfamily nf-\/config} が使えない場合に Net\+C\+DF C Library の場所を指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/netcdff=A\+RG}
\begin{DoxyItemize}
\item {\ttfamily nf-\/config} が使えない場合に Net\+C\+DF Fortran Library の場所を指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/netcdff-\/include=A\+RG}
\begin{DoxyItemize}
\item {\ttfamily nf-\/config} が使えない場合に Net\+C\+DF Fortran Library の モジュールファイル {\ttfamily netcdf.\+mod} 場所を指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/prefix=A\+RG}
\begin{DoxyItemize}
\item Defatult\+: {\ttfamily /usr/local/gtool5}
\item {\ttfamily A\+RG} にライブラリやモジュール, 実行ファイルのインストール先の ディレクトリのプレフィックスを指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/host=A\+RG}
\begin{DoxyItemize}
\item クロスコンパイルを行う場合には, パッケージが実行されるシステムタイプ名を {\ttfamily A\+RG} に指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/enable-\/mpi}
\begin{DoxyItemize}
\item Defatult\+: enabled
\item M\+PI を有効にします. {\ttfamily FC} に M\+PI 用のコンパイラ(例えば mpif90 等)を指定して下さい.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/mpiexec}
\begin{DoxyItemize}
\item Defatult\+: none
\item テスト時に使用する M\+PI 実行プログラムを指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/mpiexec-\/opts}
\begin{DoxyItemize}
\item Default\+: none
\item テスト時に使用する M\+PI 実行プログラムのオプションを指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/mpiexec-\/procnum}
\begin{DoxyItemize}
\item Default\+: 4
\item テスト時に使用する M\+PI 実行プログラムの並列数を指定します.
\end{DoxyItemize}
\item {\ttfamily -\/-\/with-\/ncdump}
\begin{DoxyItemize}
\item Defatult\+: {\ttfamily \textquotesingle{}P\+A\+TH}\textquotesingle{} から探索
\item テスト時に使用する ncdump を指定します.
\end{DoxyItemize}
\end{DoxyItemize}

\subsubsection*{ビルド}

{\ttfamily configure} が正常に終了したならば, 例えば以下の様に結果のサマリが表示されますので, 内容を確認して下さい.


\begin{DoxyCode}
% export FCFLAGS="-g -O2 -Wall -Wextra"
% export FC=mpif90
% ./configure --with-mpiexec-opts=--oversubscribe --with-nf-config=/usr/bin/nf-config
  :
-----------------------------------------------------------------------
Summary of build options:

version:               1.0.0.rc1
Host type:             x86\_64-pc-linux-gnu
Install prefix:        /usr/local/gtool
C Compiler:            gcc
C Flags:               -g -O2
C Preprocessor:        gcc -E
CPP Flags:              -DF03\_FEATURE -DLIB\_MPI
Fortran Compiler:      mpif90
Fortran Flags:         -I/usr/include -I/usr/include -g -O2 -Wall -Wextra
Linker:                /usr/bin/ld
Linker Flags:
Linking Libraries:     -L/usr/lib/x86\_64-linux-gnu -lnetcdff -Wl,-z,relro -Wl,-z,now -lnetcdf -lnetcdf -ldl
       -lm
MPI Fortran Compiler:  mpif90
MPI Executer:          /usr/bin/mpiexec
MPI Executer option:   --oversubscribe -n
MPI Executer number:   4
NetCDF ncdump binary:  /usr/bin/ncdump
-----------------------------------------------------------------------
\end{DoxyCode}


表示された結果が期待通りである場合には \begin{DoxyVerb}% make
\end{DoxyVerb}


でビルドが始まります.

\subsubsection*{テストプログラム実行}

カレントディレクトリにおいて, 以下のコマンドを実行してください. \begin{DoxyVerb}$ make test
\end{DoxyVerb}


\subsubsection*{インストール}

カレントディレクトリで以下のコマンドを実行してください. システム領域にインストールする場合には管理者権限が 必要です(デフォルトの場合は {\ttfamily /usr/local/gtool5} にインストールします). \begin{DoxyVerb}# make install
\end{DoxyVerb}


\subsubsection*{gt5frt へのパスの設定}

上記のように正しくインストールが行われたら, {\ttfamily gt5config}, {\ttfamily gt5frt} というシェルスクリプトが {\ttfamily -\/-\/prefix=A\+RG} で指定されたディレクトリ以下の {\ttfamily bin} ディレクトリ ({\ttfamily A\+R\+G/bin})に作成されているはずです. ( {\ttfamily -\/-\/prefix=} を指定しなかった場合は {\ttfamily /usr/local/gtool5/bin/} 以下). このディレクトリへ {\ttfamily P\+A\+TH} を通してください.

{\ttfamily gt5config} は \hyperlink{namespacegtool5}{gtool5} ライブラリのビルドに利用したコンパイラ等の情報が含まれています. これを用いることで, \hyperlink{namespacegtool5}{gtool5} ライブラリを基盤としたソフトウェアのインストールが簡便になることが期待されています.


\begin{DoxyCode}
This gtool5 1.0.0.rc1 has been built with the following features:

  --fc         -> mpif90
  --mpifc      -> mpif90
  --fcflags    -> -I/usr/local/stow/gtool5-gnu/include -I/usr/include -I/usr/include -g -O2
  --fflags     -> -I/usr/local/stow/gtool5-gnu/include -I/usr/include -I/usr/include -g -O2
  --ldflags    ->  -L/usr/local/stow/gtool5-gnu/lib
  --ldlibs     -> -lgtool -L/usr/lib/x86\_64-linux-gnu -lnetcdff

  --prefix     -> /usr/local/stow/gtool5-gnu
  --includedir -> /usr/local/stow/gtool5-gnu/include
  --version    -> gtool5 1.0.0.rc1
\end{DoxyCode}


{\ttfamily gt5frt} は {\ttfamily gt5cofnig} の情報をベースに, \hyperlink{namespacegtool5}{gtool5} ライブラリを利用した Fortran プログラムを簡単にコンパイル・リンクを行なうためにシェルスクリプトです. {\ttfamily gt5frt} を用いることで, 自動的に \hyperlink{namespacegtool5}{gtool5} ライブラリへのリンクとモジュール群へのディレクトリ指定を行ってくれます.


\begin{DoxyCode}
% gt5frt test.f90
mpif90 -I/usr/local/stow/gtool5-gnu/include -I/usr/include -I/usr/include -g -O2 test.f90 \(\backslash\)
-L/usr/local/stow/gtool5-gnu/lib -lgtool -L/usr/lib/x86\_64-linux-gnu -lnetcdff
\end{DoxyCode}
 