ここでは,VASP 5.3.5に関連したことを記載する. VASP全般に関しては,VASPを参考のこと.


現在広く使われている一般的なLinuxマシンで,Intel Fortranコンパイラでコンパイル&インストールする. ここでは,vaspというディレクトリの中に,vasp.5.3.5とvasp.5.libというディレクトリが存在していると仮定して話を進める.

vasp541からはコンパイルのやり方が大幅に変更された.

vasp.5.lib

まずはvasp.5.libを最初にコンパイルしなければいけないらしい.

 $ cd vasp.5.lib
 $ cp makefile.????_???? makefile

ここで,makefile内のコンパイラ指定の部分を各々の環境にあったものに編集する. たとえば,

FC= ifort

そして

 $ make

とすることで,コンパイルが始まり,libdmy.aというライブラリが作られる.

vasp.5.3.5

次に,vasp.5.3.5ディレクトリに移り,makefileを作る.

 $ cp makefile.????_??? makefile

makefile内をいろいろと変更する必要があるらしい.

まず,MKL (Intel Math Kernel Library)を使用するための設定として,makefile内のMKLROOTという変数を設定する.

MKL_PATH=$(MKLROOT)/lib/em64t

並列計算のために,

FC= mpiifort
BLAS= -lguide  -mkl
LAPACK= $(MKL_PATH)/libmkl_intel_lp64.a
BLACS= -lmkl_blacs_intelmpi_lp64
SCA= $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)

のように,BLASやLAPACK,SCALAPACKの設定をする.

上でコンパイルしたvasp.5.libをリンクする.

LIB     = -L../vasp.5.lib -ldmy  \
      ../vasp.5.lib/linpack_double.o \
      $(SCA) $(LAPACK) $(BLAS)

FFT3Dの部分も

FFT3D   = fftmpiw.o fftmpi_map.o  fftw3d.o  fft3dlib.o   $(MKL_FFTW_PATH)/libfftw3xf_intel.a
INCS = -I$(MKLROOT)/include/fftw

のようにしておく.

さらに,CPPの並列計算用の部分をuncommentする.

CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
     -DMPI_BLOCK=500  \
     -DRPROMU_DGEMV  -DRACCMU_DGEMV

これで

 $ make

とすれば,とりあえずコンパイルはできる.