NetCDFライブラリを使うためには、実行ファイルの作成前にリンクしておく必要がある。
この作業をコマンドで書くと面倒であるし、Makefileを使うと間違いを少なくできる。
細かいMakefileの文法は、Makefileの基本的な書き方を参照。
SRCS = hoge1.f90 hoge2.f90 hoge3.f90
FC = ifort
OBJS = ${SRCS:.f90=.o}
NETINC = /usr/local/netcdf-3.6.2/include
NETLIB = /usr/local/netcdf-3.6.2/lib
ALL : EXE
EXE : ${OBJS}
${FC} ${OBJS} -L${NETLIB} -lnetcdf -o $@
${OBJS}: ${SRCS}
${FC} -c ${SRCS} -I${NETINC}
clean :
\rm -f *.o Makefile~ core
netCDFのインクルードファイルの場所をNETINCで、ライブラリの場所をNETLIBで指定している。
これらの行は、NetCDFのインストール先に応じて変更する。
L<dir>:リンカがライブラリを検索するディレクトリのリストに、dir(ここでは$NETLIB)を加える。
l<name>:リンカの探すライブラリとしてlib<name>.soとlib<name>.aを指定する。ここではlibnetcdf.soとlibnetcdf.aのこと。
I<dir>:FortranソースでINCLUDE行で指定されているファイル名またはモジュール名に対するディレクトリ名dirを指定する。
Fortranソース内NetCDFをインクルードする必要がある。 例えばこの例では以下のようにFortranプログラムの中で書く
include "/usr/local/netcdf-3.6.2/include/netcdf.inc"