export MPI_HOME=/path/to/HMPI export CPPFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path/to/NETCDF/include -I$MPI_HOME/include" export CFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path/to/NETCDF/include -I$MPI_HOME/include " export CXXFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path-to/NETCDF/include -I$MPI_HOME/include " export FCFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include" export FFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include" export LDFLAGS=" -L/path/to/HDF5/lib -L/path/to/PNETCDF/lib -L/path/to/PNETCDF/lib”
cd /path/to/ABINIT mkdir extral
下载地址:https://www.abinit.org/fallbacks
cd extral tar -xzvf atompaw-4.0.1.0.tar.gz tar -xzvf bigdft-1.7.1.25.tar.gz tar -xzvf libxc-3.0.0.tar.gz tar -xzvf wannier90-2.0.1.1.tar.gz
cd /path/to/ABINIT tar -zxvf abinit-8.10.3.tar.gz
cd abinit-8.10.3
mkdir build cd build
../configure FC=mpif90 --with-mpi-prefix=/path/to/HMPI/ --with-dft-flavor="libxc+atompaw" --with-trio-flavor="netcdf" --with-tardir=/path/to/ABINIT/extral --with-netcdf-incs="-I/path/to/NETCDF/include" --withnetcdf-libs="-L/path/to/NETCDF/lib -lnetcdf -L/path/to/NETCDF/lib -lnetcdff" FCFLAGS="-g -O2 -ffree-line-length-none" --with-linalg-libs="-L/path/to/OPENBLAS/ -lopenblas" CFLAGS="-O2"
sed -i -e "s/shiftr/rshift/g" src/78_effpot/m_random_xoroshiro128plus.F90 sed -i -e "s/shiftl/lshift/g" src/78_effpot/m_random_xoroshiro128plus.F90
cd /path/to/ABINIT/abinit-8.10.3
sed -i 's/#define HAVE_FC_INT_QUAD 1/#undef HAVE_FC_INT_QUAD/' config.h sed -i 's/#define HAVE_FC_LONG_LINES 1/#undef HAVE_FC_LONG_LINES/' config.h sed -i 's/#define atomic_mass_units/at_mass_units/' src/77_ddb/m_phonons.F90 sed -i 's/#define number_of_atom_species/n_atom_species/' src/77_ddb/m_phonons.F90 sed -i 's/alpha = 0.2/!alpha = 0.2/' src/78_eph/m_phgamma.F90
vi src/56_io_mpi/m_hdr.F90
integer,private,parameter :: HDR_KNOWN_HEADFORMS(1) = [123] integer,public,parameter :: size_hdr_known_headforms = size(HDR_KNOWN_HEADFORMS) integer,public,parameter :: HDR_LATEST_HEADFORM = HDR_KNOWN_HEADFORMS(size_hdr_known_headforms)
vi src/62_iowfdenpot/m_io_screening.F90
integer,private,parameter :: HSCR_KNOWN_HEADFORMS(1) = [123] integer,private,parameter :: size_hscr_known_headforms = size(HSCR_KNOWN_HEADFORMS) integer,public,parameter :: HSCR_LATEST_HEADFORM = HSCR_KNOWN_HEADFORMS(size_hscr_known_headforms)
FC=mpif90 CC=mpicc CXX=mpicxx make multi multi_nprocs=32
“multi_nprocs”为并发编译的核数,可根据使用机器的核数和需求自由选择,初次编译建议不要并发。
执行编译命令时,因路径问题可能报“unable to open MODULE file *.mod”错误,解决方法:
vi cp.sh
#!/bin/bash for i in `find -name *.mod` do cp $i src/incs done
./cp.sh
export ABI_TESTS=/path/to/ABINIT/abinit-8.10.3/tests/ export ABI_TUTORIAL=$ABI_TESTS/tutorial/ export ABI_TUTORESPFN=$ABI_TESTS/tutorespfn/ export ABI_TUTOPARAL=$ABI_TESTS/tutoparal/ export ABI_TUTOPLUGS=$ABI_TESTS/tutoplugs/ export ABI_PSPDIR=$ABI_TESTS/Psps_for_tests/ export PATH=/path/to/ABINIT/abinit-8.10.3/build/src/98_main/:$PATH