NetCDFのインストール

注意点

通常/usr/local/や/opt/の中にインストールするが,こうするとroot権限でmakeを行う必要がある.
このため環境変数がrootでも適切に設定されているか確認する.
特に .bashrcでパスの追加をしている場合は,rootの.bashrcも同様のことをしておかないとエラーが出る可能性がある.

NetCDF3.6.3

インストールを行う前に,環境に合わせてコンパイラを指定する.
gfortran(GNU)を使うのであれば,

export FC=gfortran
export CC=gcc

PGIなら

export FC=pgf90
export CC=pgcc

ifort(Intel)なら

export FC=ifort
export CC=gcc

netcdf-3.6.3.tar.gzをどこかで解凍し,解凍されたnetcdf-3.6.3に移動する.

tar -zxf netcdf-3.6.3.tar.gz
cd netcdf-3.6.3

その次に,prefixで保存する場所を指定しつつ,configureを実行し,下準備はOK.
どのコンパイラでinstallしたかわかるようにしておくと混同しない.下記"_gnu"のように.

./configure --prefix=/usr/local/netcdf-3.6.3_gnu

ディレクトリはそのままで,

make
sudo make install

をして,インストール完了.

NetCDF4

環境変数

NetCDF4のインストールには,事前にHDF5のインストールがされていることが必須.
パスが設定されていないとconfigureの時点で失敗するので,echoで確認するなどして,なければ環境変数にパスを追加する.
HDF5が/usr/local/hdf5 にあるとして,(ユーザーはrootで)

export CPATH=$CPATH:/usr/local/hdf5/include
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/hdf5/lib

NetCDF-C

NetCDF Downloadsのページでsourceをダウンロードする(例えば.tar.gz).

tar -zxf netcdf-c-4.6.0
cd netcdf-c-4.6.0

または,GitHubからリポジトリをクローンする.今後バージョンを更新するならこちらの方が楽.

git clone https://github.com/Unidata/netcdf-c
cd netcdf-c
git checkout v4.6.0

更新の時は

git checkout v4.6.1

その後,環境変数の関係でrootにログインしてからやる.
szipやhdf5のinclude path指定は各自の環境に合わせる.

su
export NCDIR=/usr/local/netcdf-4.6.1
export CPPFLAGS="-I/usr/local/szip/include -I/usr/local/hdf5/include"
export LDFLAGS="-L/usr/local/szip/lib -L/usr/local/hdf5/lib"
./configure --prefix=${NCDIR} --enable-netcdf-4 --enable-shared --enable-dap
make
make check
make install
  • エラーその1
    laptopではbuild(make)の際にエラーになった.エラー内容は以下の通り.
    undefined reference to `curl_easy_init'
    undefined reference to `curl_easy_setup'
    curlのライブラリをうまくリンクできていないようだったので,
    locate libcurl
    でlibcurlの場所を確認して,LDFLAGSにつけ足した.

  • エラーその2
    また別の時に再インストールしようとすると,
    /usr/bin/ld: indent.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
    /usr/bin/ld: final link failed: Nonrepresentable section on output
    というエラーが出たので,一度cleanをしてから
    export CFLAGS=-fPIC
    を新たに定義して上記の操作をやり直したら成功.

  • 参考1 Getting and Building netCDF
  • 参考2 Running the configure Script


NetCDF-Fortran

まずはNetCDF-Cと同様,NetCDF Downloadsからダウンロードするか,リポジトリをcloneするか.

git clone https://github.com/Unidata/netcdf-fortran
cd netcdf-fortran
git checkout v4.4.4

コンパイルの前に環境変数を設定しておく.

su
export CC=gcc
export FC=ifort
export NCDIR=/usr/local/netcdf-4.6.1
export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH}

既にインストールされているNetCDF-Cのライブラリのパスやprefixを指定し,configure, make を実行する.

export CPPFLAGS=-I${NCDIR}/include
export LDFLAGS=-L${NCDIR}/lib
export NFDIR=${NCDIR}
./configure --prefix=${NFDIR} --disable-fortran-type-check
make check
make install

バージョンを更新しても残しておきたいので,NetCDF-CとNetCDF-Fortranのインストール後,リンクを作成しておく.

cd /usr/local
sudo ln -fs netcdf-c-4.6.1 netcdf4

そして .bashrc では下記のように書いておく.

# NetCDF 4
export PATH=${PATH}:/usr/local/netcdf4/bin
export NETCDF_CONFIG='nc-config'
export NETCDF_ROOT="$(${NETCDF_CONFIG} --prefix)"
export NETCDF_F_CONFIG='nf-config'
export NETCDF_F_ROOT="$(${NETCDF_F_CONFIG} --prefix)"
export LD_LIBRARY_PATH="${NETCDF_ROOT}/lib":${LD_LIBRARY_PATH}

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-12-13 (Thu) 10:32:22 (1d)