### asama_dcpam6_build_utf8.txt ### DCPAM6 インストールログ ### 2026/04/05 吉川颯真 作成 ### asama に DCPAM6 をインストールしたログ ### asama では以前から DCPAM5 を利用していたため,DCPAM5 非対応かつ DCPAM6 に必要な ispack3 と spml2 のインストールログも併記する. --- ispack3 --- $ wget https://www.gfd-dennou.org/library/ispack/ispack-3.2.2.tar.gz $ tar zxvf ispack-3.2.2.tar.gz $ ls CHANGELOG CHANGELOG.ja COPYRIGHT LGPL Makefile Mkinclude Mkinclude.sub README README.ja VERSION fxpack lxpack mxpack sample shared sxpack sypack $ cp ispack3.2.2 ispack-3.2.2-mpi # mkdir /work00/lib-mpi/ispack-3.2.2-mpi $ cd ispack-3.2.2-mpi make の際の変数設定 参考: https://www.ep.sci.hokudai.ac.jp/~kodama/nozomi/src/nozomi_dcpam_build_euc.txt $ vi Mkinclude DESTDIR = /work00/lib-mpi/ispack-3.2.2-mpi # 5 行目 SHELL = /bin/bash # 8 行目 #-- for asama # 11 行目以降 FC = mpif90 FFLAGS = -O3 -fast -fPIC -fno-range-check # -fno-range-check を書かないと asama 環境だとエラーがでた. MPIFC = mpif90 CC = mpicc CFLAGS = -O3 -fast -fPIC SSE = avx $ sudo -Es # mkdir /work00/lib-mpi/ispack-3.2.2-mpi/shared # これをしないと asama 環境ではエラーが出てしまう. # make --- spml2 --- $ git clone git+ssh://yoshis@dennou-k.gfd-dennou.org/GFD_Dennou_Club/ftp/arch/spmodel/git_repos/spml.git spml2.git $ cd spm2.git $ git checkout spml/2.0 $ export FC=mpif90 $ export FCFLAGS="-O3" spml2 はソースコードを修正しないと make が通らなかった. $ vi spml2.git/libsrc/utils/spml_utils.F #if EIG_LAPACK !<- #ifdef EIG_LAPACK ! 32 行目 #endif !<- 字下げ解除 ! 51 行目 #if EIG_LAPACK !<- #ifdef EIG_LAPACK ! 78 行目 #endif !<- 字下げ解除 ! 448 行目 $ ./autogen.sh # どうやらこれで configure が生成されたらしい $ ./configure --prefix=/work00/lib-mpi/spml-2.0.0-mpi --with-gt5config=/work00/lib-mpi/gtool5-20160613-mpi/bin/gt5config.mpi --with-ispack=/work00/lib-mpi/ispack-3.2.2-mpi/libispack3.a --with-lapack=/usr/lib/x86_64-linux-gnu/lapack/liblapack.a --with-lumatrix=OMP --enable-mpi --disable-shared --with-mpiexec=mpirun.mpich --with-mpiexec-opts=-n configure を実行すると,以下のような Summary が出力された. ----------------------------------------------------------------------- Summary of build options: version: 2.0.0.rc1 Host type: x86_64-pc-linux-gnu Install prefix: /work00/lib-mpi/spml-2.0.0-mpi bindir: ${exec_prefix}/bin libdir: ${exec_prefix}/lib includedir: ${prefix}/include C Compiler: mpicc -fPIC C Flags: -O2 C Preprocessor: mpicc -fPIC -E CPP Flags: -I/work00/lib-mpi/spml-0.8.0-mpi/include -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include -I/work00/lib-mpi/netcdf-c-4.7.4-mpi/include -I/work00/lib-mpi/netcdf-fortran-4.6.1-mpi/include -I/work00/lib-mpi/gtool5-20160613-mpi/include -DF03_FEATURE -DLIB_MPI -DEIG_LAPACK -DLUMATRIX_OMP Fortran Compiler: mpif90 Fortran Flags: -I/work00/lib-mpi/gtool5-20160613-mpi/include -I/work00/openmpi1/include -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include -I/work00/lib-mpi/netcdf-c-4.6.3-mpi/include -I/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/include -I/work00/openmpi1/include -pthread -I/work00/openmpi1/lib -Wl,-rpath -Wl,/work00/openmpi1/lib -Wl,--enable-new-dtags -O3 FC Mod Type: .mod FC Mod include: -I FC Mod Output: -J MINT enable: no MPI Support: yes MPI Executer: mpirun.mpich MPI Executer option: -n -np MPI Executer number: 4 Linker: /usr/bin/ld Linker Flags: -L/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib -L/work00/openmpi1/lib -L/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib -L/work00/lib-mpi/gtool5-20160613-mpi/lib -L/work00/lib-mpi/spml-0.8.0-mpi/lib -L/work00/lib-mpi/gtool5-20160613-mpi/lib -L/work00/lib-mpi/netcdf-fortran-4.6.1-mpi/lib -L/work00/lib-mpi/netcdf-c-4.7.4-mpi/lib -L/work00/lib-mpi/ispack-3.2.2-mpi -L/work00/lib-mpi/ispack-3.2.2-mpi/shared -L/work00/lib-mpi/ispack-3.2.2-mpi -L/usr/lib/x86_64-linux-gnu/lapack Linking Libraries: -lgtool5-mpi -lnetcdf -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lnetcdff -lispack3 -llapack Eigen Value Solver: LAPACK LU Solver: OMP SPML Library name: spml-lapack-omp ---------------------------------------------------------------------- $ make $ make install --- DCPAM6 --- git clone https://www.gfd-dennou.org/arch/dcpam/git_repos/dcpam6.git cd dcpam6/ ./configure --help Usage: ./configure [OPTIONS] Configure script to generate Config.mk from Config.mk.in. Options: --help Display this help and exit. --prefix=DIR Install files in DIR [/usr/local/dcpam6]. --enable-mpi Enable MPI support. Adds -DLIB_MPI to CPPFLAGS. Environment Variables: FC Specify spmfrt script for SPML ver.2.0 [spmfrt] FCFLAGS Fortran compiler flags (e.g., -g -O0). CPPFLAGS C preprocessor flags. LDFLAGS Linker flags. LDLIBS Linker flags for specifying link libraries. MODSUFFIX Fortran module file suffix [mod] MODPATHFLAG Fortran module file path flag [-I] DCPAMLIBNAME DCPAM6 Library name [dcpam6] Example: ./configure --prefix=/opt/my-app FC=/opt/my-app/spml2/spmfrt FCFLAGS="-g -fbacktrace" Example のように FC, FCFLAGS をコマンド実行時に指定するのがうまくできず, 私は .bashrc で読み込ませて環境変数を設定した. 以下のように export FC=~~~ としても同じ結果になるはずである. $ export FC="mpif90 " $ export FCFLAGS="-O2 -cpp -I/work00/lib-mpi/gtool5-20160613-mpi/include" $ export CPPFLAGS="-I/work00/lib-mpi/spml-2.0.0-mpi/include -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include -I/work00/lib-mpi/netcdf-c-4.7.4-mpi/include -I/work00/lib-mpi/netcdf-fortran-4.6.1-mpi/include -I/work00/lib-mpi/gtool5-20160613-mpi/include" $ export LDFLAGS="-L/work00/lib-mpi/spml-2.0.0-mpi/lib -L/work00/lib-mpi/gtool5-20160613-mpi/lib -L/work00/lib-mpi/netcdf-fortran-4.6.1-mpi/lib -L/work00/lib-mpi/netcdf-c-4.7.4-mpi/lib -L/work00/lib-mpi/ispack-3.2.2-mpi -L/work00/lib-mpi/ispack-3.2.2-mpi/shared" $ export LDLIBS="-lspml-lapack-omp -lgtool5-mpi -lnetcdf -lispack3 -lnetcdff" $ ./configure --prefix=/work00/soma/dcpam6 --enable-mpi $ make $ make install : You have successfully built DCPAM6 library. $ cd execsrc/hs94 # ここでは例として hs94 のビルドを行う.DCPAM6 は考える系の設定や問題設定に応じて別のメインプログラムが作られている. $ make $ ls dcpam_init_data_hs94 dcpam_init_data_mpi_hs94 dcpam_main_hs94 dcpam_main_mpi_hs94 dcpam_init_data_zonal_hs94 dcpam_main_zonal_hs94 # 実行ファイルができていることが確認できれば OK DCPAM6 の実行はまだできていないため,取り急ぎやってみる.