spml ビルドログ @ pifront

  • 作業日 2021/10/07
  • 作業者 高橋芳幸

準備

必要なファイルの取得

必要なファイル

  • spmodel
http://www.gfd-dennou.org/library/spmodel/spml-0.8.0.tar.gz
ver. 0.8.0

ビルド

spml

ビルドは, ~/tmp/spml 以下で行う.

$ tar xvf spml-0.8.0.tar.gz
$ cd spml-0.8.0

佐々木さんに調べてもらって, configure を更新する必要があるらしいのでまずそこから.

$ autoreconf -fi

pifront では autoreconf が使えなかったので, 他の PC で実行してソースを移動.

$ export FC=mpiifort
$ export FCFLAGS="-march=core-avx2 -qopenmp -align array64byte"

-align array64byte を付けないと, make test で segmentation fault が出る.

$ ./configure \
 --with-ispack=/home/G50002/yot/local/ispack-1.0.4-intel+intel/lib/libisp.a \
 --with-netcdf=/home/G50002/yot/local/netcdf-c-4.8.0-fortran-4.5.3-intel+intel/lib/libnetcdf.a \
 --with-netcdff=/home/G50002/yot/local/netcdf-c-4.8.0-fortran-4.5.3-intel+intel/lib/libnetcdff.a \
 --with-gtool5=/home/G50002/yot/local/gtool5-20160613-intel+intel/lib/libgtool5.a  \
 --prefix=/home/G50002/yot/local/spml-0.8.0-intel+intel \
 --with-mpifc=/opt/intel/oneapi/mpi/2021.1.1/bin/mpiifort \
 --with-mpiexec=/opt/intel/oneapi/mpi/2021.1.1/bin/mpirun

$ make
$ make test

精度不足のエラーと, テストプログラムの名前が悪いエラーが出る.

  • 下については, 精度不足のため, test/Makefile の中の SUBDIRS から該当モジュールを消す. (本当は許容誤差を大きくするのが正しそう.)
    • wtq_module_sjpack
    • wtq_mpi_module_sjpack
  • 下については, プログラム名を *_test に変更する.
    • test/w_module_sjpack/w_interpolate_module_sjpack_test.f90
    • test/w_mpi_module_sjpack/w_integral_mpi_module_sjpack_test.f90
    • test/wa_module_sjpack/wa_interpolate_module_sjpack_test.f90
    • test/wa_mpi_module_sjpack/wa_integral_mpi_module_test_sjpack.f90

その上で

$ make test

インストール

$ make install