Page 1 of 1

Installation Error with VASP 6.4 in Ubuntu 18.04 'ifort: command not found'

Posted: Sun Jul 07, 2024 10:16 am
by vincent_mathew
We are facing an issue with VASP 6.4.0 installation in UBUNTU 18.04 system. Intel compiler is used.
The error appearing is:

" line 711: ifort: command not found
makefile:167: recipe for target 'ml_ff_abinitio.o' failed "

The complete error log is given as:

Code: Select all

physicstest@workstation1:~/install_here/vasp.6.4.0$ make
if [ ! -d build/std ] ; then mkdir -p build/std  ; fi
cp src/makefile src/.objects src/makedeps.awk makefile.include build/std 
make -C build/std VERSION=std check
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
exit 0
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
make -C build/std VERSION=std cleandependencies -j1
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rm -f .depend
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
make -C build/std VERSION=std all
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rsync -ru ../../src/lib .
cp makefile.include lib
make -C lib -j1
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make libdmy.a
make[3]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make[3]: 'libdmy.a' is up to date.
make[3]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
rsync -ru ../../src/parser .
cp makefile.include parser
make -C parser -j1
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make libparser.a
make[3]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make[3]: 'libparser.a' is up to date.
make[3]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
rsync -u ../../src/*.F ../../src/*.inc .
make build_info
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
printf "    character(len=*), parameter :: cpp_options = '&\n&-DHOST=\"LinuxIFC\" &\n&-DMPI &\n&-DMPI_BLOCK=8000 &\n&-Duse_collective &\n&-DscaLAPACK &\n&-DCACHE_SIZE=4000 &\n&-Davoidalloc &\n&-Dvasp6 &\n&-Duse_bse_te &\n&-Dtbdyn &\n&-Dfock_dblbuf &\n&-D_OPENMP'\n" >  build_info.inc
printf "    character(len=*), parameter :: link_line   = '&\n&mpiifort &\n&-qmkl &\n&-Llib &\n&-ldmy &\n&-Lparser &\n&-lparser &\n&-lstdc++ &\n&-L/path/to/your/mkl/installation/lib/intel64 &\n&-lmkl_scalapack_lp64 &\n&-lmkl_blacs_intelmpi_lp64'\n"   >> build_info.inc
printf "    character(len=*), parameter :: fc     = '&\n&mpiifort &\n&-qopenmp'\n"     >>  build_info.inc
printf "    character(len=*), parameter :: fcl    = '&\n&mpiifort &\n&-qmkl'\n"    >> build_info.inc
printf "    character(len=*), parameter :: fflags = '&\n&-assume &\n&byterecl &\n&-w &\n&-xHOST'\n" >> build_info.inc
printf "    character(len=*), parameter :: llibs  = '&\n&-lstdc++ &\n&-L/path/to/your/mkl/installation/lib/intel64 &\n&-lmkl_scalapack_lp64 &\n&-lmkl_blacs_intelmpi_lp64'\n"  >>  build_info.inc
printf "    character(len=*), parameter :: incs   = '&\n&-I/path/to/your/mkl/installation/include/fftw'\n"   >> build_info.inc
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rm -f vasp ; make vasp ; cp vasp ../../bin/vasp_std
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
mpiifort -qopenmp -free -names lowercase -assume byterecl -w -xHOST -O2 -I/path/to/your/mkl/installation/include/fftw  -c ml_ff_abinitio.f90
/home/physicstest/MD/Linux-x86_64/IntelMPI5/bin/mpiifort: line 711: ifort: command not found
makefile:167: recipe for target 'ml_ff_abinitio.o' failed
make[2]: *** [ml_ff_abinitio.o] Error 127
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
makefile:13: recipe for target 'std' failed
make: *** [std] Error 2



The make.include file is as following:

Code: Select all

# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxIFC\" \
              -DMPI -DMPI_BLOCK=8000 -Duse_collective \
              -DscaLAPACK \
              -DCACHE_SIZE=4000 \
              -Davoidalloc \
              -Dvasp6 \
              -Duse_bse_te \
              -Dtbdyn \
              -Dfock_dblbuf \
              -D_OPENMP

CPP         = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC          = mpiifort -qopenmp
FCL         = mpiifort

FREE        = -free -names lowercase

FFLAGS      = -assume byterecl -w

OFLAG       = -O2
OFLAG_IN    = $(OFLAG)
DEBUG       = -O0

OBJECTS     = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o

# For what used to be vasp.5.lib
CPP_LIB     = $(CPP)
FC_LIB      = $(FC)
CC_LIB      = icc
CFLAGS_LIB  = -O
FFLAGS_LIB  = -O1
FREE_LIB    = $(FREE)

OBJECTS_LIB = linpack_double.o

# For the parser library
CXX_PARS    = icpc
LLIBS       = -lstdc++

##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##

# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -xHOST
FFLAGS     += $(VASP_TARGET_CPU)

# Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK)
# (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
FCL        += -qmkl
MKLROOT    ?= /path/to/your/mkl/installation
LLIBS      += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
INCS        =-I$(MKLROOT)/include/fftw

# HDF5-support (optional but strongly recommended)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT  ?= /path/to/your/hdf5/installation
#LLIBS      += -L$(HDF5_ROOT)/lib -lhdf5_fortran
#INCS       += -I$(HDF5_ROOT)/include

# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS    += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS          += -L$(WANNIER90_ROOT)/lib -lwannier

# For the fftlib library (hardly any benefit in combination with MKL's FFTs)
#FCL         = mpiifort fftlib.o -qmkl
#CXX_FFTLIB  = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
#LIBS       += fftlib

Please help with some solutions. Thank you in advance for your help.

Re: Installation Error with VASP 6.4 in Ubuntu 18.04 'ifort: command not found'

Posted: Mon Jul 08, 2024 9:15 am
by alexey.tal
Dear Vincent,

We have a comprehensive guide on how to install VASP in Ubuntu here.
This error means that there is no ifort command found in your environment.

Re: Installation Error with VASP 6.4 in Ubuntu 18.04 'ifort: command not found'

Posted: Tue Jul 09, 2024 4:14 am
by vincent_mathew
Thank you for the reply.
We have followed the same instructions. But there is no instructions available for VASP installation in UBUNTU 18.04. We are a bit confused that whether VASP 6.4 is compatabile with UBUNTU 18.04 or not.

We also tried the fortran compiler (makefile.include.gnu_omp) and followed the vaspwiki instructions for ubuntu 20.0.
Then the following error appears:

Code: Select all

paw.F:1910:0:

                  // str(SIZE(CL_SHIFT,DIM=1)),__FILE__,__LINE__)
 
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
paw.F:1598:0:

       ion: DO NI=1,T_INFO%NIONS
 
Error: enclosing ‘parallel’
makefile:171: recipe for target 'paw.o' failed
make[2]: *** [paw.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:

                 str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
 
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:

     DO NCOL=1,NCOL_TOT
 
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:

                 str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
 
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:

     DO NCOL=1,NCOL_TOT
 
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:

                 str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
 
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:

     DO NCOL=1,NCOL_TOT
 
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
makefile:13: recipe for target 'std' failed
make: *** [std] Error 2
make: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/gam'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/gam'
makefile:13: recipe for target 'gam' failed
make: *** [gam] Error 2
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/ncl'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/ncl'
makefile:13: recipe for target 'ncl' failed
make: *** [ncl] Error 2

The makefile is given:

Code: Select all

# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxGNU\" \
              -DMPI -DMPI_BLOCK=8000 -Duse_collective \
              -DscaLAPACK \
              -DCACHE_SIZE=4000 \
              -Davoidalloc \
              -Dvasp6 \
              -Duse_bse_te \
              -Dtbdyn \
              -Dfock_dblbuf \
              -D_OPENMP

CPP         = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)

FC          = /usr/bin/mpif90 -fopenmp
FCL         = /usr/bin/mpif90 -fopenmp

FREE        = -ffree-form -ffree-line-length-none

FFLAGS      = -w -ffpe-summary=none

OFLAG       = -O2
OFLAG_IN    = $(OFLAG)
DEBUG       = -O0

OBJECTS     = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o

# For what used to be vasp.5.lib
CPP_LIB     = $(CPP)
FC_LIB      = $(FC)
CC_LIB      = gcc
CFLAGS_LIB  = -O
FFLAGS_LIB  = -O1
FREE_LIB    = $(FREE)

OBJECTS_LIB = linpack_double.o

# For the parser library
CXX_PARS    = g++
LLIBS       = -lstdc++

##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##

# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -march=native
FFLAGS     += $(VASP_TARGET_CPU)

# For gcc-10 and higher (comment out for older versions)
#FFLAGS     += -fallow-argument-mismatch

# BLAS and LAPACK (mandatory)
#OPENBLAS_ROOT ?= /path/to/your/openblas/installation
BLASPACK    = -lopenblas

# scaLAPACK (mandatory)
#SCALAPACK_ROOT ?= /path/to/your/scalapack/installation
SCALAPACK   =  -lscalapack

LLIBS      += $(SCALAPACK) $(BLASPACK)

# FFTW (mandatory)
#FFTW_ROOT  ?= /path/to/your/fftw/installation
LLIBS      +=  -lfftw3 -lfftw3_omp
INCS       += -I/usr/include

# HDF5-support (optional but strongly recommended)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT  ?= /path/to/your/hdf5/installation
#LLIBS      +=  -lhdf5_fortran
#INCS       += -I/usr/include/hdf5/openmpi/

# For the VASP-2-Wannier90 interface (optional)
CPP_OPTIONS    += -DVASP2WANNIER90
WANNIER90_ROOT ?= /home/physicstest/install_here/wannier90-3.1.0/
LLIBS          += -L$(WANNIER90_ROOT)/lib -lwannier

# For the fftlib library (recommended)
#CPP_OPTIONS+= -Dsysv
#FCL        += fftlib.o
#CXX_FFTLIB  = g++ -fopenmp -std=c++11 -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(FFTW_ROOT)/include
#LIBS       += fftlib
#LLIBS      += -ldl

Re: Installation Error with VASP 6.4 in Ubuntu 18.04 'ifort: command not found'

Posted: Tue Jul 09, 2024 12:04 pm
by alexey.tal
What version of GCC are you using? I found the by default Ubuntu 18.04 comes with GCC 7, which is probably too old. We recommend GCC 12 for VASP 6.4.3. See the list of recommended toolchains here. The error seems to be related to OpenMP directives, I would suggest that you try to compile VASP without OMP first and see if that works.

Re: Installation Error with VASP 6.4 in Ubuntu 18.04

Posted: Wed Jul 10, 2024 12:03 pm
by vincent_mathew
alexey.tal wrote: Tue Jul 09, 2024 12:04 pm What version of GCC are you using? I found the by default Ubuntu 18.04 comes with GCC 7, which is probably too old. We recommend GCC 12 for VASP 6.4.3. See the list of recommended toolchains here. The error seems to be related to OpenMP directives, I would suggest that you try to compile VASP without OMP first and see if that works.

Thank you for your suggestion. We successfully built VASP without OpenMP and were able to run calculations without parallelization. We used a modified version of makefile.include.gnu. Our GCC version is 7.5, and the versions of other tools differ from those specified in the tool chain. We hope this will not affect future calculations.

Re: Installation Error with VASP 6.4 in Ubuntu 18.04 'ifort: command not found'

Posted: Mon Jul 15, 2024 9:50 am
by alexey.tal
We successfully built VASP without OpenMP and were able to run calculations without parallelization.
In your makefile.include you have MPI enabled, so even if you compile your code without OpenMP you can still use MPI parallelization.