netcdf ビルドログ @ pifront
- 作業日 2021/10/04
- 作業者 高橋芳幸
準備
必要なファイルの取得
必要なファイル
- netcdf
wget https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-c-4.8.0.tar.gz wget https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.5.3.tar.gz
ビルド
ビルドは ~/tmp/netcdf で行う.
netcdf-c
展開
$ tar xvf netcdf-c-4.8.0.tar.gz $ cd netcdf-c-4.8.0
環境変数の設定, configure, make
$ export NCDIR=$HOME/local/netcdf-c-4.8.0-fortran-4.5.3-cray $ export CC=cc $ export CXX=CC $ export CPP='cc -E' $ export CXXCPP='CC -E' $ ./configure --prefix=${NCDIR} $ make $ make check $ make install
netcdf-fortran
展開
$ tar xvf netcdf-fortran-4.5.3.tar.gz $ cd netcdf-fortran-4.5.3
環境変数の設定, configure, make
$ NFDIR=${NCDIR} $ export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH} $ export F77=ftn $ export FC=ftn $ export CPPFLAGS="-I${NCDIR}/include" $ export LDFLAGS="-L${NCDIR}/lib" $ ./configure --prefix=${NFDIR} $ make check |& tee make_check.log
エラーが出ちゃった.
libtool: link: ftn -I../fortran -g -O2 -o .libs/f90tst_fill2 f90tst_fill2.o -L/home/G50002/yot/local/netcdf-c-4.8.0-fortran-4.5.3-cray/lib ../fortran/.libs/libnetcdff.so /home/G50002/yot/local/netcdf-c-4.8.0-fortran-4.5.3-cray/lib/libnetcdf.so -lhdf5_hl -lhdf5 -lz -lcurl -ldl -lm -Wl,-rpath -Wl,/home/G50002/yot/local/netcdf-c-4.8.0-fortran-4.5.3-cray/lib ftn -I../fortran -g -O2 -c -o f90tst_vars2.o f90tst_vars2.f90 ftn-3059 crayftn: INTERNAL CHECK$F90TST_VARS2_, File = f90tst_vars2.f90, Line = 5509, Column = 78 Expected no overflow in routine. make[2]: *** [Makefile:909: f90tst_vars2.o] Error 1 make[2]: Leaving directory '/home/G50002/yot/tmp/netcdf/netcdf-fortran-4.5.3/nf03_test4' make[1]: *** [Makefile:1289: check-am] Error 2 make[1]: Leaving directory '/home/G50002/yot/tmp/netcdf/netcdf-fortran-4.5.3/nf03_test4' make: *** [Makefile:581: check-recursive] Error 1
何だこれ.
nf03_test4/Makefile の
f90tst_vars2_SOURCES = f90tst_vars2.f90
をコメントアウトしてみる.
$ make check |& tee make_check.log
だめ.
NC4_F90_TESTS = f90tst_vars f90tst_vars_vlen f90tst_grps f90tst_fill \ f90tst_fill2 f90tst_vars2 f90tst_vars3 f90tst_vars4 f90tst_path \ f90tst_rengrps f90tst_nc4 f90tst_types f90tst_types2
から f90tst_vars2 を消してみる.
$ make check |& tee make_check.log
だめだ.
nf03_test4/Makefile の
f90tst_vars2_SOURCES = f90tst_vars2.f90
をコメントアウトして,
NC4_F90_TESTS = f90tst_vars f90tst_vars_vlen f90tst_grps f90tst_fill \ f90tst_fill2 f90tst_vars2 f90tst_vars3 f90tst_vars4 f90tst_path \ f90tst_rengrps f90tst_nc4 f90tst_types f90tst_types2
から f90tst_vars2 を消してみる.
$ make install |& tee install.log
だめ.
加えて
am_f90tst_vars2_OBJECTS = f90tst_vars2.$(OBJEXT) f90tst_vars2_OBJECTS = $(am_f90tst_vars2_OBJECTS) f90tst_vars2_LDADD = $(LDADD) f90tst_vars2_DEPENDENCIES = ${top_builddir}/fortran/libnetcdff.la
をコメントアウトしてみる.
$ make install |& tee install.log
ダメ.
下もコメントアウト.
f90tst_vars2$(EXEEXT): $(f90tst_vars2_OBJECTS) $(f90tst_vars2_DEPENDENCIES) $(EXTRA_f90tst_vars2_DEPENDENCIES) @rm -f f90tst_vars2$(EXEEXT) $(AM_V_FCLD)$(FCLINK) $(f90tst_vars2_OBJECTS) $(f90tst_vars2_LDADD) $(LIBS) f90tst_vars2.log: f90tst_vars2$(EXEEXT) @p='f90tst_vars2$(EXEEXT)'; \ b='f90tst_vars2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT)
.bashrc の編集
$ emacs -nw ~/.bashrc export NCDIR=$HOME/local/netcdf-c-4.8.0-fortran-4.5.3-intel-hpe export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH} export PATH=${NCDIR}/bin:${PATH}
参考情報
- https://www.unidata.ucar.edu/software/netcdf/docs/netCDF-CMake.html
- https://www.unidata.ucar.edu/software/netcdf/docs/building_netcdf_fortran.html