Page 1 of 1

VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Tue Dec 16, 2025 3:03 am
by dcakir

Hello everyone,

We are encountering compilation errors when building VASP 6.5.1 with HDF5 support enabled, using HDF5 1.14.0 and Intel oneAPI 2025.1.1 compilers.

During compilation, we see the following errors:

vhdf5_base.F(7): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [HDF5]
vhdf5_base.F(49): error #6683: A kind type parameter must be a compile-time constant.

Any guidance on these errors would be greatly appreciated.

Thanks,

Deniz


Re: VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Tue Dec 16, 2025 9:09 am
by alexey.tal

Dear Deniz,

This error message indicates that the the path to the HDF5 library is not provided correctly.
You should make sure that HDF5_ROOT in your makefile.include is set and points to the right directory.

Best wishes,
Alexey


Re: VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Thu Jan 08, 2026 5:12 pm
by dcakir

Dear Alexey,

I checked and the HDF5 paths are all correct. I believe the second error is causing the first error.

Best,

Deniz


Re: VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Fri Jan 09, 2026 12:41 pm
by alexey.tal

Dear Deniz,

The second error points to the HID_T type, which is defined in one of the header files of HDF5.
And as the first error suggests one should check 'INCLUDE paths'.
Could you please show your makefile.include?
Best wishes,
Alexey


Re: VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Thu Jan 15, 2026 4:02 am
by dcakir

Dear Alexey,

Here is the makefile.include.

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

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

FC = mpiifort -fc=ifx
FCL = mpiifort -fc=ifx

FREE = -free -names lowercase

FFLAGS = -assume byterecl -w

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

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

OBJECTS_LIB = linpack_double.o

# For the parser library
CXX_PARS = icpx
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=sequential
MKLROOT ?= /opt/intel/oneapi/mkl/2025.1
LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
INCS =-I$(MKLROOT)/include/fftw

# HDF5-support (optional but strongly recommended, and mandatory for some features)
CPP_OPTIONS+= -DVASP_HDF5
HDF5_ROOT ?= /cm/shared/apps/hdf5/1.14.0
LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
INCS += -I$(HDF5_ROOT)/include

# For the VASP-2-Wannier90 interface (optional)
CPP_OPTIONS += -DVASP2WANNIER90
WANNIER90_ROOT ?= /share/apps/wannier90_3.1.0/wannier90-3.1.0
LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier

# For machine learning library vaspml (experimental)
#CPP_OPTIONS += -Dlibvaspml
#CPP_OPTIONS += -DVASPML_USE_CBLAS
#CPP_OPTIONS += -DVASPML_USE_MKL
#CPP_OPTIONS += -DVASPML_DEBUG_LEVEL=3
#CXX_ML = mpiicpc -cxx=icpx
#CXXFLAGS_ML = -O3 -std=c++17 -Wall
#INCLUDE_ML =


Re: VASP 6.5.1 build failure with HDF5 1.14.0 and Intel oneAPI 2025.1.1

Posted: Thu Jan 15, 2026 2:22 pm
by alexey.tal

Thank you. I don’t see anything incorrect here. However, I notice that you set an explicit path for HDF5_ROOT, but you do so only if HDF5_ROOT is not already defined, since you use ?=. If HDF5_ROOT is already set to a different path, that value will take precedence and the path in makefile.include will be ignored. One way to avoid this is to use = instead of ?= when assigning a path to the variable.