Questions regarding the compilation of VASP on various platforms: hardware, compilers and libraries, etc.
Moderators: Global Moderator, Moderator
-
ahsan_javed
- Newbie

- Posts: 32
- Joined: Mon Jun 27, 2022 11:37 am
#1
Post
by ahsan_javed » Mon Jan 06, 2025 6:27 pm
The makefile.include for 6.4.3 is used for 6.5.0 and this error popsup, specifically for elphon which is a new feature in this. No this sort of error "mpi.mod" for 6.4.3 but for this particular verison?
mpif90 -ffree-form -ffree-line-length-none -w -ffpe-summary=none -march=native -O2 -I/usr/local/include -I/home/ahsan.javed/data/codes/libxc/include -c elphon_derivative.f90
elphon_derivative.F:566:13:
566 | use mpi, only: MPI_COMM_SELF
| 1
Fatal Error: Cannot read module file ‘mpi.mod’ opened at (1), because it was created by a different version of GNU Fortran
compilation terminated.
make[2]: *** [makefile:195: elphon_derivative.o] Error 1
-
andreas.singraber
- Global Moderator

- Posts: 273
- Joined: Mon Apr 26, 2021 7:40 am
#2
Post
by andreas.singraber » Wed Jan 08, 2025 7:56 am
Hello!
Please always use the makefile.include template files from the arch directory of the corresponding version, in particular if problems during compilation occur. Also, in this case the error message of the compiler hints at an old mpi.mod, probably from a previous build of VASP. Could you please run make veryclean before trying to compile again? Please also attach your current makefile.include so we can check the difference to the 6.5.0 version. Thank you!
Best,
Andreas Singraber
-
ahsan_javed
- Newbie

- Posts: 32
- Joined: Mon Jun 27, 2022 11:37 am
#3
Post
by ahsan_javed » Mon Feb 24, 2025 1:09 pm
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
CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90
FREE = -ffree-form -ffree-line-length-none
FFLAGS = -w -ffpe-summary=none
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
# 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 += /usr/lib64/
BLASPACK = -L$(OPENBLAS_ROOT) -lopenblas
# scaLAPACK (mandatory)
SCALAPACK_ROOT += /usr/local/scalapack-2.2.0
SCALAPACK = -L$(SCALAPACK_ROOT) -lscalapack
LLIBS += $(SCALAPACK) $(BLASPACK)
# FFTW (mandatory)
FFTW_ROOT += /usr/local
LLIBS += -L$(FFTW_ROOT)/lib -lfftw3
# HDF5-support (optional but strongly recommended, and mandatory for some features)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /path/to/your/hdf5/installation
#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
#INCS += -I$(HDF5_ROOT)/include
..
It has something to do with elphon_derivative
-
andreas.singraber
- Global Moderator

- Posts: 273
- Joined: Mon Apr 26, 2021 7:40 am
#4
Post
by andreas.singraber » Tue Feb 25, 2025 10:49 am
Hello!
Sorry, but this makefile.include does not correspond to the error you showed in your first post (the include paths are different in the file). Please be consistent in your communication with us, otherwise it is impossible to give any useful advice. Did you actually perform a make veryclean before recompilation as I asked you too? Could you please redo the whole build process, log the output to a file and attach it here? For example, like this
Code: Select all
make veryclean
make DEPS=1 -j 2>&1 | tee build.log
cat makefile.include >> build.log
If the error persists please post also the output of:
Code: Select all
gcc --version
g++ --version
mpif90 --version
mpif90 --showme:version
mpif90 -show
Thank you!
Best regards,
Andreas Singraber
-
ahsan_javed
- Newbie

- Posts: 32
- Joined: Mon Jun 27, 2022 11:37 am
#5
Post
by ahsan_javed » Tue Mar 04, 2025 6:21 am
Error persists and build.log is attached.
Other outputs are (in order):
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
g++ (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
GNU Fortran (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
mpif90: Open MPI 1.10.7 (Language: Fortran)
gfortran -I/usr/include/openmpi-x86_64 -pthread -m64 -I/usr/lib64/openmpi/lib -Wl,-rpath -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags -L/usr/lib64/openmpi/lib -lmpi_usempi -lmpi_mpifh -lmpi
You do not have the required permissions to view the files attached to this post.
-
andreas.singraber
- Global Moderator

- Posts: 273
- Joined: Mon Apr 26, 2021 7:40 am
#6
Post
by andreas.singraber » Tue Mar 04, 2025 10:17 am
Hello!
It seems the problem is your very outdated OpenMPI. Version 1.10.7 is from 2017 and the provided mpi.mod file was maybe created with an even older compiler (not your gcc 9.3.1) and hence you get this error message. I would strongly suggest to update your system!! Please really consider to switch to on of our validated toolchains!
If this is not possible and you feel brave you could try to change lines 566-567 in elphon_derivative.F from
Code: Select all
use mpi, only: MPI_COMM_SELF
use mpimy, only: M_initc
to
Code: Select all
use mpimy, only: M_initc
INCLUDE "mpif.h"
However, I cannot test if this will produce a working executable in your case, maybe other issues ensue... again, updating your system is the best option here!
Best,
Andreas Singraber