I have been trying to create a Singularity container with libxc and Quantum Espresso 7.0. I started with a definition file I created myself and then used the sudo singularity build --sandbox QE7-libxcm base.def
option, followed with sudo singularity shell --writable QE7-libxcm
to manually install libxc and QE from the source code. The issue is that libxc compiled and installed successfully but not Quantum Espresso. Quantum Espresso passes the ./configure
stage successfully detecting all the libraries and parallel environment, and it also generates the make.in
file, but it does not pass the sudo make all
stage. I have tried multiple things, but nothing seems to work.
I used this definition file (base.def):
Bootstrap: docker
From: centos:7.9.2009
####################
%help
This container contains the base image for QE with libxc for HPC.
####################
%post
#####
# proxy settings
sudo yum install -y sudo git wget vim which tree
sudo yum install -y hostname lscpu uptime redhat-lsb numactl
#Install needed dependencies
yum install -y epel-release centos-release-scl && yum -y update && yum clean all
sudo yum groupinstall -y "Development Tools" && yum clean all
sudo yum install open-ssl-devel bzip2-devel libffi-devel -y
sudo yum makecache
sudo yum -y install gcc-gfortran
sudo yum -y install blas-devel
sudo yum -y install fftw-devel
sudo yum -y install lapack-devel
sudo yum -y install openmpi-devel
###############
%environment
##############
source /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64
export PATH=/usr/lib64/openmpi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export LD_LIBRARY_PATH=/usr/lib64/openmpi/bin:/usr/lib64
Then, I installed from source code the libxc and QE codes as below
sudo singularity build --sandbox QE7-libxcm base.def
sudo singularity shell --writable QE7-libxcm
# Libxc compilation and installation
wget http://www.tddft.org/programs/libxc/down.php?file=5.2.3/libxc-5.2.3.tar.gz
tar -xvf libxc-5.2.3.tar.gz
cd libxc-5.2.3
sudo ./configure --prefix=/opt/libxc-5.2.3
#Use CFLAGS=-std=c99 to avoid compilation issues
sudo make CFLAGS=-std=c99
sudo make check
sudo make install
# QE compilation
wget https://github.com/QEF/q-e/archive/refs/tags/qe-7.0.tar.gz
tar -xvf qe-7.0.tar.gz
cd qe-7.0
./configure --with-libxc --with-libxc-prefix='/opt/libxc-5.2.3'
Result from ./configure
The following libraries have been found:
BLAS_LIBS= -lblas
LAPACK_LIBS=-L/usr/lib64 -llapack -lblas
FFT_LIBS= -lfftw3
LIBXC_LIBS= -L/opt/libxc-5.2.3/lib -lxcf03 -lxc
Please check if this is what you expect.
If any libraries are missing, you may specify a list of directories
to search and retry, as follows:
./configure LIBDIRS="list of directories, separated by spaces"
Parallel environment detected successfully.
Configured for compilation of parallel executables.
What I get from sudo make all
is below
make install; cd ../; rm -fr fox;fi
fox/
fox/utils/
fox/utils/makefile
fox/utils/fox_m_utils_uri.F90
fox/utils/fox_m_utils_mtprng.F90
fox/utils/fox_m_utils_uuid.F90
fox/utils/FoX_utils.f90
fox/utils/CMakeLists.txt
fox/configure
fox/RELEASE
fox/Changelog
fox/.travis.yml
fox/.gitignore
fox/config/
fox/config/makefile
fox/config/config.sub
fox/config/m4/
fox/config/m4/TW_FC_CHECK_EOL.m4
fox/config/m4/lang.m4
fox/config/m4/TW_CHECK_FC_90.m4
fox/config/m4/TW_PROG_CYGPATH_W.m4
fox/config/m4/TW_CHECK_FC_95.m4
fox/config/m4/TW_FC_CHECK_FLUSH.m4
fox/config/m4/TW_CHECK_FC_TR15580.m4
fox/config/m4/TW_FC_ID_FLAGS.m4
fox/config/m4/TW_CHECK_FC_FPP_90.m4
fox/config/m4/TW_CHECK_FC_TR15581.m4
fox/config/m4/TW_PATH_NETCDF.m4
fox/config/m4/fortran.m4
fox/config/m4/TW_CHECK_FC_FPP.m4
fox/config/m4/TW_FC_KINDS.m4
fox/config/m4/TW_FC_CHECK_ABORT.m4
fox/config/m4/TW_FC_ID.m4
fox/config/m4/TW_CHECK_ASSOCIATED_BUG.m4
fox/config/aclocal.m4
fox/config/install-sh
fox/config/config.guess
fox/config/configure.ac
fox/config/config.guess.orig
fox/cmake/
fox/cmake/flush_xlf.f90
fox/cmake/output_eol.f90
fox/cmake/Fortran_Have_Flush.cmake
fox/cmake/flush_bare.f90
fox/cmake/associated_bug.f90
fox/cmake/abort_bare.f90
fox/cmake/CheckAbortIntrinsic.cmake
fox/cmake/abort_xlf.f90
fox/cmake/abort_nag.f90
fox/cmake/abort_intel.f90
fox/cmake/CheckAssociatedBug.cmake
fox/cmake/DetermineEOL.cmake
fox/cmake/CMakeLists.txt
fox/cmake/flush_nag.f90
fox/cmake/CheckFlushIntrinsic.cmake
fox/m4/
fox/m4/quantity.m4
fox/m4/foreach.m4
fox/m4/common.m4
fox/m4/datatypes.m4
fox/fsys/
fox/fsys/fox_m_fsys_varstr.F90
fox/fsys/makefile
fox/fsys/fox_m_fsys_array_str.F90
fox/fsys/fox_m_fsys_abort_flush.F90
fox/fsys/fox_m_fsys_format.F90
fox/fsys/fox_m_fsys_parse_input.F90
fox/fsys/m_ieee.f90
fox/fsys/fox_m_fsys_parse_input.m4
fox/fsys/fox_m_fsys_count_parse_input.F90
fox/fsys/fox_m_fsys_realtypes.f90
fox/fsys/CMakeLists.txt
fox/fsys/fox_m_fsys_string.F90
fox/fsys/fox_m_fsys_string_list.F90
fox/fsys/fox_m_fsys_count_parse_input.m4
fox/arch.make
fox/release.sh
fox/Makefile
fox/wkml/
fox/wkml/makefile
fox/wkml/rgb.txt
fox/wkml/m_wkml_chart.F90
fox/wkml/m_wkml_styling.F90
fox/wkml/m_wkml_contours.F90
fox/wkml/m_wkml_coverage.m4
fox/wkml/FoX_wkml.f90
fox/wkml/m_wkml_core.F90
fox/wkml/m_wkml_color.F90
fox/wkml/m_wkml_coverage.F90
fox/wkml/m_wkml_features.F90
fox/wkml/m_wkml_color_def.F90
fox/wkml/CMakeLists.txt
fox/wkml/m_wkml_lowlevel.F90
fox/wkml/m_contours.F90
fox/wkml/rgb2wkml.py
fox/LICENSE
fox/arch.make.in
fox/wcml/
fox/wcml/m_wcml_geometry.F90
fox/wcml/m_wcml_inputdec.F90
fox/wcml/makefile
fox/wcml/m_wcml_property.F90
fox/wcml/m_wcml_lattice.m4
fox/wcml/m_wcml_parameter.m4
fox/wcml/FoX_wcml.f90
fox/wcml/m_wcml_stml.F90
fox/wcml/m_wcml_lists.m4
fox/wcml/m_wcml_coma.F90
fox/wcml/m_wcml_stml.m4
fox/wcml/m_wcml_metadata.F90
fox/wcml/m_wcml_lattice.F90
fox/wcml/m_wcml_lists.F90
fox/wcml/m_wcml_molecule.m4
fox/wcml/m_wcml_molecule.F90
fox/wcml/m_wcml_parameter.F90
fox/wcml/m_wcml_coma.m4
fox/wcml/CMakeLists.txt
fox/wcml/m_wcml_geometry.m4
fox/wcml/m_wcml_core.F90
fox/wcml/m_wcml_property.m4
fox/FoX-config.in
fox/Fox.vfproj.README
fox/sax/
fox/sax/makefile
fox/sax/FoX_sax.f90
fox/sax/m_sax_tokenizer.F90
fox/sax/m_sax_operate.F90
fox/sax/m_sax_types.F90
fox/sax/m_sax_parser.F90
fox/sax/m_sax_xml_source.F90
fox/sax/m_sax_reader.F90
fox/sax/ChangeLog
fox/sax/CMakeLists.txt
fox/README
fox/dom/
fox/dom/m_dom_dom.F90
fox/dom/makefile
fox/dom/m_dom_error.f90
fox/dom/m_dom_implementation.m4
fox/dom/m_dom_extras.F90
fox/dom/m_dom_utils.f90
fox/dom/m_dom_document_type.m4
fox/dom/m_dom_object.m4
fox/dom/m_dom_node.m4
fox/dom/m_dom_processing_instruction.m4
fox/dom/m_dom_common.m4
fox/dom/FoX_dom.f90
fox/dom/m_dom_parse.f90
fox/dom/m_dom_dom.m4
fox/dom/m_dom_character_data.m4
fox/dom/m_dom_treewalk.m4
fox/dom/m_dom_document.m4
fox/dom/m_dom_entity.m4
fox/dom/m_dom_exception.m4
fox/dom/m_dom_namednodemap.m4
fox/dom/m_dom_configuration.m4
fox/dom/CMakeLists.txt
fox/dom/m_dom_namespaces.m4
fox/dom/m_dom_parse.m4
fox/dom/m_dom_extras.m4
fox/dom/m_dom_attribute.m4
fox/dom/m_dom_element.m4
fox/dom/m_dom_types.m4
fox/dom/m_dom_text.m4
fox/dom/m_dom_nodelist.m4
fox/dom/m_dom_utils.m4
fox/common/
fox/common/m_common_notations.F90
fox/common/makefile
fox/common/m_common_struct.F90
fox/common/FoX_common.F90
fox/common/m_common_namespaces.F90
fox/common/m_common_elstack.F90
fox/common/m_common_content_model.F90
fox/common/m_common_error.F90
fox/common/m_common_attrs.F90
fox/common/m_common_namecheck.F90
fox/common/m_common_io.F90
fox/common/m_common_charset.F90
fox/common/m_common_entity_expand.F90
fox/common/m_common_entities.F90
fox/common/m_common_element.F90
fox/common/CMakeLists.txt
fox/common/m_common_buffer.F90
fox/CMakeLists.txt
fox/wxml/
fox/wxml/makefile
fox/wxml/m_wxml_overloads.F90
fox/wxml/m_wxml_overloads.m4
fox/wxml/m_wxml_core.F90
fox/wxml/FoX_wxml.f90
fox/wxml/CMakeLists.txt
fox/wxml/m_wxml_escape.F90
fox/FoX.vfproj
fox/CTestConfig.cmake
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for linker flag to name executables... -o
checking for Fortran compiler default output file name... conftest
checking whether the Fortran compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU Fortran compiler... yes
checking whether gfortran accepts -g... yes
checking for Fortran flag needed to allow free-form source for .f90 suffix... none
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for fixed form Fortran preprocessor features... done.
checking whether gfortran compiles programs with cpp directives... yes
checking whether gfortran accepts -D... yes
checking whether gfortran accepts -I... yes
checking whether gfortran fulfils requested features... yes
checking preprocessing mode we may therefore use... direct
checking for Fortran flag needed to allow free-form preprocessed source for .F90 suffix... none
checking for ranlib... ranlib
configure: gfortran seems to be a Gfortran compiler
checking for kind number produced by kind(1.0)... 4
checking for kind number produced by kind(1.0d0)... 8
checking for kind number produced by selected_real_kind(6,34)... 4
checking for kind number produced by selected_real_kind(15,300)... 8
checking how to compile a call to FLUSH... default
checking how to compile a call to ABORT... default
checking for EOR character used by gfortran... LF
checking for ASSOCIATED in restricted expression bug... no
checking for a BSD-compatible install... /bin/install -c
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for flag to alter module search path... -I
checking for suffix of module files... mod
checking whether module filenames are uppercased... no
configure: creating ./config.status
config.status: creating arch.make
config.status: creating FoX-config
cp -p works
make[2]: Entering directory `/opt/qe-7.0/FoX/fox'
mkdir -p objs/lib objs/finclude
(cd fsys; make VPATH=/fsys)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/fsys'
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_abort_flush.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_array_str.F90
gfortran -c fox_m_fsys_realtypes.f90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_format.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_parse_input.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_count_parse_input.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_string.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_string_list.F90
gfortran -c -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_fsys_varstr.F90
==> Creating libFoX_fsys.a with fox_m_fsys_abort_flush.o fox_m_fsys_array_str.o fox_m_fsys_format.o fox_m_fsys_parse_input.o fox_m_fsys_count_parse_input.o fox_m_fsys_string.o fox_m_fsys_string_list.o fox_m_fsys_realtypes.o fox_m_fsys_varstr.o
cp -p libFoX_fsys.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/fsys'
(cd utils; make VPATH=/utils)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/utils'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_utils_mtprng.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_utils_uuid.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF fox_m_utils_uri.F90
gfortran -c -I../objs/finclude FoX_utils.f90
==> Creating libFoX_utils.a with FoX_utils.o fox_m_utils_mtprng.o fox_m_utils_uuid.o fox_m_utils_uri.o
cp -p libFoX_utils.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/utils'
(cd common; make VPATH=/common)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/common'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_charset.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_content_model.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_error.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_namecheck.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_element.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_attrs.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_buffer.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_entities.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_notations.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_struct.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_namespaces.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_elstack.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_io.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF FoX_common.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_common_entity_expand.F90
==> Creating libFoX_common.a with m_common_attrs.o m_common_buffer.o m_common_charset.o m_common_namespaces.o m_common_error.o m_common_elstack.o m_common_io.o FoX_common.o m_common_namecheck.o m_common_entities.o m_common_notations.o m_common_element.o m_common_struct.o m_common_entity_expand.o m_common_content_model.o
cp -p libFoX_common.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/common'
(cd wxml; make VPATH=/wxml)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/wxml'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wxml_escape.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wxml_core.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wxml_overloads.F90
gfortran -c -I../objs/finclude FoX_wxml.f90
==> Creating libFoX_wxml.a with m_wxml_escape.o m_wxml_core.o m_wxml_overloads.o FoX_wxml.o
ar cru libFoX_wxml.a m_wxml_escape.o m_wxml_core.o m_wxml_overloads.o FoX_wxml.o
ranlib libFoX_wxml.a
cp -p libFoX_wxml.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/wxml'
(cd wcml; make VPATH=/wcml)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/wcml'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_stml.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_coma.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_metadata.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_core.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_geometry.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_lattice.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_lists.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_molecule.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_parameter.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_property.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wcml_inputdec.F90
gfortran -c -I../objs/finclude FoX_wcml.f90
==> Creating libFoX_wcml.a with FoX_wcml.o m_wcml_coma.o m_wcml_core.o m_wcml_stml.o m_wcml_parameter.o m_wcml_property.o m_wcml_metadata.o m_wcml_lattice.o m_wcml_geometry.o m_wcml_molecule.o m_wcml_lists.o m_wcml_inputdec.o
cp -p libFoX_wcml.a /opt/qe-7.0/FoX/fox/objs/lib ;
for i in *.mod ; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/wcml'
(cd wkml; make VPATH=/wkml)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/wkml'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_color_def.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_color.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_contours.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_lowlevel.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_styling.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_core.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_chart.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_features.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_contours.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_wkml_coverage.F90
gfortran -c -I../objs/finclude FoX_wkml.f90
==> Updating libFoX_wkml.a with FoX_wkml.o m_wkml_lowlevel.o m_wkml_color.o m_wkml_styling.o m_wkml_features.o m_wkml_coverage.o m_wkml_core.o m_wkml_contours.o m_contours.o m_wkml_color_def.o m_wkml_chart.o
cp -p libFoX_wkml.a /opt/qe-7.0/FoX/fox/objs/lib ;
for i in *.mod ; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/wkml'
(cd sax; make VPATH=/sax)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/sax'
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_xml_source.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_reader.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_types.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_tokenizer.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_parser.F90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_sax_operate.F90
gfortran -c -I../objs/finclude FoX_sax.f90
==> Creating libFoX_sax.a with m_sax_types.o m_sax_tokenizer.o m_sax_reader.o m_sax_parser.o m_sax_operate.o m_sax_xml_source.o FoX_sax.o
cp -p libFoX_sax.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod ; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude;done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/sax'
(cd dom; make VPATH=/dom)
make[3]: Entering directory `/opt/qe-7.0/FoX/fox/dom'
gfortran -c -I../objs/finclude m_dom_error.f90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_dom_dom.F90
gfortran -c -I../objs/finclude m_dom_parse.f90
gfortran -c -I../objs/finclude m_dom_utils.f90
gfortran -c -I../objs/finclude -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DFC_EOR_LF m_dom_extras.F90
gfortran -c -I../objs/finclude FoX_dom.f90
==> Creating libFoX_dom.a with m_dom_error.o m_dom_parse.o m_dom_utils.o m_dom_extras.o m_dom_dom.o FoX_dom.o
ar cru libFoX_dom.a m_dom_error.o m_dom_parse.o m_dom_utils.o m_dom_extras.o m_dom_dom.o FoX_dom.o
ranlib libFoX_dom.a
cp -p libFoX_dom.a /opt/qe-7.0/FoX/fox/objs/lib
for i in *.mod ; do
cp -p $i /opt/qe-7.0/FoX/fox/objs/finclude; done
make[3]: Leaving directory `/opt/qe-7.0/FoX/fox/dom'
/bin/mkdir -p /opt/qe-7.0/FoX/lib /opt/qe-7.0/FoX/finclude /opt/qe-7.0/FoX/bin
/bin/install -c objs/lib/* /opt/qe-7.0/FoX/lib
/bin/install -c -m 644 objs/finclude/* /opt/qe-7.0/FoX/finclude
sed -e s#comp_prefix=.*#comp_prefix=/opt/qe-7.0/FoX# FoX-config > FoX-config.tmp
mv FoX-config FoX-config.old ; mv FoX-config.tmp FoX-config
/bin/install -c FoX-config /opt/qe-7.0/FoX/bin
mv FoX-config.old FoX-config
make[2]: Leaving directory `/opt/qe-7.0/FoX/fox'
make[1]: Leaving directory `/opt/qe-7.0/install'
( cd UtilXlib ; make TLDEPS= all || exit 1 )
make[1]: Entering directory `/opt/qe-7.0/UtilXlib'
mpif90 -O3 -g -cpp -D__FFTW3 -D__LIBXC -D__MPI -I/opt/qe-7.0/external/devxlib/src -I/opt/qe-7.0/include -I/opt/qe-7.0/FoX/finclude -I/opt/libxc-5.2.3/include -I/usr/lib64 -I. -c parallel_include.f90
make[1]: mpif90: Command not found
make[1]: *** [parallel_include.o] Error 127
make[1]: Leaving directory `/opt/qe-7.0/UtilXlib'
make: *** [libutil] Error 1
It seems there is an error with gfortran, but I am not sure how to proceed.
Thank you.
2
Answers
The shell can’t find
mpif90
inPATH
either because it is not installed or the appropriate dir is not set in thePATH
. The most likely cause of this is the use ofsudo
.Short answer: don’t use
sudo
when already running as root and double check thatmpif90
is in fact installed and available onPATH
Long answer:
Since you’ve switched to the root user when running the singularity command (
sudo singularity build ...
,sudo singularity shell ...
), you don’t need to use it when running further commands inside the container. It can also cause unexpected behavior, as unless you usesudo -E
the command is run in a fresh environment.Using
sudo -E make all
instead ofsudo make all
should also fix the problem, but since it is not actually giving you increased privileges it is better to remove it entirely for the sake of simplicity.Likely the gfortran version you used is too old and does not understand the syntax "ALLOCATE(some_array,mold=some_other_array)".