本文编译方案通过创建Conda环境安装gcc/gfortran/openmpi/openblas/scalapack/hdf5编写makefile.include设置编译器与链接标记最终完成VASP的编译。环境创建与依赖安装# 创建并激活环境Python 3.10 为推荐版本conda create -n vasp_env python3.10 -yconda activate vasp_env# 安装编译工具链、MPI、数学库、HDF5、FFTW 等conda install -c conda-forge \gcc13 gxx13 gfortran13 \openmpi4.1 \hdf51.14 \openblas scalapack \fftw \cmake make -y设置环境变量编译前执行export CC$CONDA_PREFIX/bin/gccexport CXX$CONDA_PREFIX/bin/gexport FC$CONDA_PREFIX/bin/gfortranexport OMPI_CC$CCexport OMPI_CXX$CXXexport OMPI_FC$FCexport MPICC$CONDA_PREFIX/bin/mpiccexport MPICXX$CONDA_PREFIX/bin/mpicxxexport MPIFC$CONDA_PREFIX/bin/mpif90export HDF5_HOME$CONDA_PREFIXexport PATH$CONDA_PREFIX/bin:$PATHexport LD_LIBRARY_PATH$CONDA_PREFIX/lib:$LD_LIBRARY_PATHmakefile.include# 预处理器选项CPP_OPTIONS -DHOST\LinuxGNU\ \-DMPI -DMPI_BLOCK8000 -Duse_collective \-DscaLAPACK \-DCACHE_SIZE4000 \-Davoidalloc \-Dvasp6 \-Dtbdyn \-Dfock_dblbuf \-DVASP_HDF5# 预处理规则FUFFIX .FSUFFIX .f90CPP $(FC) -E -P -cpp -o $*$(SUFFIX) $*$(FUFFIX) $(CPP_OPTIONS)# 编译器FC mpifortFCL mpifort -no-pie# Fortran 选项-stdlegacy 兼容旧语法-fallow-argument-mismatch 解决参数不匹配FREE -ffree-form -ffree-line-length-noneFFLAGS -w -fbacktrace -fallow-argument-mismatch -stdlegacyOFLAG -O2 -marchnative -mtunenativeOFLAG_IN $(OFLAG)DEBUG -O0 -g# vasp.lib 部分CPP_LIB $(CPP)FC_LIB $(FC)CC_LIB mpiccCFLAGS_LIB -OFFLAGS_LIB -O1FREE_LIB $(FREE)OBJECTS_LIB linpack_double.o# parser 库CXX_PARS mpicLLIBS -lstdc# 数学库OpenBLAS ScaLAPACKLLIBS -L$(CONDA_PREFIX)/lib -lscalapack -lopenblas -lpthread -lm -ldlINCS -I$(CONDA_PREFIX)/include# FFTW 库VASP 需要LLIBS -L$(CONDA_PREFIX)/lib -lfftw3 -lfftw3fINCS -I$(CONDA_PREFIX)/include# HDF5 库LLIBS -L$(CONDA_PREFIX)/lib -lhdf5_fortran -lhdf5 -lzINCS -I$(CONDA_PREFIX)/include# Wannier90 接口若不需要可注释这两行# CPP_OPTIONS -DVASP2WANNIER90v2# LLIBS /path/to/your/libwannier.a# TRIQS 接口# TRIQS_INC -I$(CONDA_PREFIX)/include/triqs# TRIQS_LIB -L$(CONDA_PREFIX)/lib -ltriqs# FFLAGS $(TRIQS_INC)# LDFLAGS $(TRIQS_LIB)# FCL $(LDFLAGS)# 子库构建#LIB lib parser pyamff_fortran最后完成编译make std ncl