skip to Main Content

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


  1. make[1]: mpif90: Command not found

    The shell can’t find mpif90 in PATH either because it is not installed or the appropriate dir is not set in the PATH. The most likely cause of this is the use of sudo.

    Short answer: don’t use sudo when already running as root and double check that mpif90 is in fact installed and available on PATH


    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 use sudo -E the command is run in a fresh environment.

    export FOO=bar
    echo FOO=$FOO
    # FOO=bar
    
    bash -c 'echo FOO=$FOO'
    # FOO=bar
    
    sudo bash -c 'echo FOO=$FOO'
    # FOO=
    
    sudo -E bash -c 'echo FOO=$FOO'
    # FOO=bar
    

    Using sudo -E make all instead of sudo 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.

    Login or Signup to reply.
  2. Likely the gfortran version you used is too old and does not understand the syntax "ALLOCATE(some_array,mold=some_other_array)".

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search