Issue when compiling with "make all"

Having trouble compiling the Yambo source? Using an unusual architecture? Problems with the "configure" script? Problems in GPU architectures? This is the place to look.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan, Nicola Spallanzani

Forum rules
If you have trouble compiling Yambo, please make sure to list:
(1) the compiler (vendor and release: e.g. intel 10.1)
(2) the architecture (e.g. 64-bit IBM SP5)
(3) if the problems occur compiling in serial/in parallel
(4) the version of Yambo (revision number/major release version)
(5) the relevant compiler error message
remi.lacroix
Posts: 13
Joined: Wed Feb 03, 2021 3:17 pm
Contact:

Issue when compiling with "make all"

Post by remi.lacroix » Wed Feb 03, 2021 4:03 pm

Hello,

I am trying to compile Yambo 4.5.3 for a user but I am running into some issues when doing make all.

Code: Select all

>>>[Making elph]<<<
Warning #2216: '=' assumed following macro name "_lib_ypp_elph" in command-line definition

make[2]: Entering directory '/tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src/ypp/elph'
cd /tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src/ypp/elph; /tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src/sbin/moduledep.sh ELPH_databases.o ELPH_eliashberg_dos.o                ELPH_general_gFsq.o ELPH_gkkp_expand.o > /tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src/ypp/elph/make.dep
ELPH_databases.f90(36): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [YPP_ELPH]
 use YPP_ELPH,            ONLY:ph_freqs_file,ph_modes_file
-----^
ELPH_databases.f90(323): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [YPP_ELPH]
   use YPP_ELPH,       ONLY:elph_dbs_path
-------^
ELPH_databases.f90(163): error #6404: This name does not have a type, and must have an explicit type.   [PH_FREQS_FILE]
 if (file_exists(trim(ph_freqs_file))) then
----------------------^
ELPH_databases.f90(163): error #6362: The data types of the argument(s) are invalid.   [TRIM]
 if (file_exists(trim(ph_freqs_file))) then
----------------------^
ELPH_databases.f90(164): error #6362: The data types of the argument(s) are invalid.   [TRIM]
   call msg('s',"Phonon frequencies (re)read from: "//trim(ph_freqs_file))
-----------------------------------------------------------^
ELPH_databases.f90(169): error #6404: This name does not have a type, and must have an explicit type.   [PH_MODES_FILE]
 if (file_exists(trim(ph_modes_file))) then
----------------------^
ELPH_databases.f90(169): error #6362: The data types of the argument(s) are invalid.   [TRIM]
 if (file_exists(trim(ph_modes_file))) then
----------------------^
ELPH_databases.f90(170): error #6362: The data types of the argument(s) are invalid.   [TRIM]
   call msg('s',"Phonon modes (re)read from: "//trim(ph_modes_file))
-----------------------------------------------------^
ELPH_databases.f90(203): error #6362: The data types of the argument(s) are invalid.   [TRIM]
   open(unit=98,file=trim(ph_modes_file))
--------------------------^
ELPH_databases.f90(36): error #6580: Name in only-list does not exist or is not accessible.   [PH_FREQS_FILE]
 use YPP_ELPH,            ONLY:ph_freqs_file,ph_modes_file
-------------------------------^
ELPH_databases.f90(36): error #6580: Name in only-list does not exist or is not accessible.   [PH_MODES_FILE]
 use YPP_ELPH,            ONLY:ph_freqs_file,ph_modes_file
---------------------------------------------^
ELPH_databases.f90(363): error #6404: This name does not have a type, and must have an explicit type.   [ELPH_DBS_PATH]
   io_err=io_connect(desc=trim(elph_dbs_path)//"/"//trim(db_name),type=-2,ID=ID)
-------------------------------^
ELPH_databases.f90(363): error #6362: The data types of the argument(s) are invalid.   [TRIM]
   io_err=io_connect(desc=trim(elph_dbs_path)//"/"//trim(db_name),type=-2,ID=ID)
-------------------------------^
ELPH_databases.f90(484): error #6362: The data types of the argument(s) are invalid.   [TRIM]
     open(unit=99,file=trim(ph_freqs_file))
----------------------------^
ELPH_databases.f90(491): error #6362: The data types of the argument(s) are invalid.   [TRIM]
&        .not.v_is_zero(ph_q(:)+real(Q_DP(:)),zero_=k_iku_zero)) call error("Incorrect q-point in "//trim(ph_freqs_file))
----------------------------------------------------------------------------------------------------------^
ELPH_databases.f90(506): error #6362: The data types of the argument(s) are invalid.   [TRIM]
&        .not.v_is_zero(ph_q(:)+real(Q_DP(:)),zero_=k_iku_zero)) call error("Incorrect q-point in "//trim(ph_modes_file))
----------------------------------------------------------------------------------------------------------^
ELPH_databases.f90(323): error #6580: Name in only-list does not exist or is not accessible.   [ELPH_DBS_PATH]
   use YPP_ELPH,       ONLY:elph_dbs_path
----------------------------^
compilation aborted for ELPH_databases.f90 (code 1)
make[2]: *** [Makefile:222: ELPH_databases.o] Error 1
make[2]: Leaving directory '/tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src/ypp/elph'
make[1]: *** [Makefile:249: ypp_ph] Error 2
make[1]: Leaving directory '/tmp/.../spack-stage/spack-stage-yambo-4.5.3-o6frkdep6vmvso3hpg3dzsolwrdslkvy/spack-src'
ypp_ph build failed
As far as I can tell, there are some issues with the "internal" dependencies handling in the makefile.

For example, ypp is compiled before ypp_ph. Both depends on ypp/modules/ but ypp_ph adds a YPP_ELPH define when compiling the files in this folder. Unfortunately it seems that it doesn't trigger a new recompilation when the folder ypp/modules/ has already been visited when building ypp.

If you look at the content of the folder "ypp/modules":

Code: Select all

$ ll ypp/modules/               
total 132
-rw-r--r-- 1 user grp 12142 Feb  3 15:44 Makefile
-rw-r--r-- 1 user grp  5358 Nov  4 18:38 YPP_SET_defaults.F
-rw-r--r-- 1 user grp 23504 Feb  3 15:44 YPP_SET_defaults.o
-rw-r--r-- 1 user grp     0 Feb  3 15:44 __lock_D_HDF5_LIB_D_HDF5_IO_D_HDF5_COMPRESSION_D_FFTW_D_FFTW_OMP_D_SCALAPACK
-rw-r--r-- 1 user grp   445 Feb  3 15:44 make.dep
-rw-r--r-- 1 user grp  9585 Nov  4 18:38 mod_YPP.F
-rw-r--r-- 1 user grp 33976 Feb  3 15:44 mod_YPP.o
-rw-r--r-- 1 user grp  1791 Nov  4 18:38 mod_YPP_ELPH.F
-rw-r--r-- 1 user grp  1459 Nov  4 18:38 mod_YPP_interfaces.F
-rw-r--r-- 1 user grp  4312 Feb  3 15:44 mod_YPP_interfaces.o
-rw-r--r-- 1 user grp  4626 Nov  4 18:38 mod_YPP_real_time.F
-rw-r--r-- 1 user grp  1341 Nov  4 18:38 mod_YPP_symm.F
-rw-r--r-- 1 user grp  6320 Feb  3 15:44 mod_YPP_symm.o
you can see that there is no "mod_YPP_ELPH.o" which means that the code has not been recompiled with the "YPP_ELPH" define.

You can find the configure report and full compilation log attached.

Any ideas on how to fix that issue or at least work it around?

Best regards,
Rémi
You do not have the required permissions to view the files attached to this post.
Rémi Lacroix
Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
http://www.idris.fr/

User avatar
claudio
Posts: 458
Joined: Tue Mar 31, 2009 11:33 pm
Location: Marseille
Contact:

Re: Issue when compiling with "make all"

Post by claudio » Wed Feb 03, 2021 4:10 pm

Dear Remi

did you try the new version 5.0 that is on github?
maybe the bug is solved there

best
Claudio
    Claudio Attaccalite
    [CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
    Campus de Luminy – Case 913
    13288 MARSEILLE Cedex 09
    web site: http://www.attaccalite.com

    User avatar
    Daniele Varsano
    Posts: 3816
    Joined: Tue Mar 17, 2009 2:23 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by Daniele Varsano » Wed Feb 03, 2021 5:40 pm

    Dear Remi,

    as suggested by Claudio, please try to compile the new release:
    git@github.com:yambo-code/yambo.git

    if you still find problems, please report here.

    It is also easier for us to maintain the last version.

    Then, please add your name and affiliation to your posts, this is a rule of the forum. You can do once for all by filling the signature in the user profile.

    Best,
    Daniele
    Dr. Daniele Varsano
    S3-CNR Institute of Nanoscience and MaX Center, Italy
    MaX - Materials design at the Exascale
    http://www.nano.cnr.it
    http://www.max-centre.eu/

    remi.lacroix
    Posts: 13
    Joined: Wed Feb 03, 2021 3:17 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by remi.lacroix » Wed Feb 03, 2021 6:44 pm

    Dear Claudio and Daniele,

    Thanks for your answers!
    Daniele Varsano wrote: Wed Feb 03, 2021 5:40 pm as suggested by Claudio, please try to compile the new release:
    git@github.com:yambo-code/yambo.git
    It's unclear for me whether version 5.0.0 as been officially released. It's currently not listed in the download page.

    I work for the supercomputing center of CNRS and we usually don't install "beta versions" of software.
    Daniele Varsano wrote: Wed Feb 03, 2021 5:40 pm Then, please add your name and affiliation to your posts, this is a rule of the forum. You can do once for all by filling the signature in the user profile.
    Done!

    Best regards,
    Rémi
    Rémi Lacroix
    Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
    http://www.idris.fr/

    remi.lacroix
    Posts: 13
    Joined: Wed Feb 03, 2021 3:17 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by remi.lacroix » Wed Feb 03, 2021 7:42 pm

    Daniele Varsano wrote: Wed Feb 03, 2021 5:40 pm as suggested by Claudio, please try to compile the new release:
    git@github.com:yambo-code/yambo.git
    I tried compiling the latest version and I still have the same issue.

    Additionally, there is an issue with etsf-io download in both the 4.5.3 release and the master branch. It's an easy fix: https://github.com/yambo-code/yambo/pull/32.

    I also have "e2y" which fails to build on the master branch. It feels like the etsf_io lib is not properly linked but I couldn't figure it out just yet:

    Code: Select all

    >>>[Linking e2y]<<<
    make[1]: Entering directory '/.../yambo/interfaces/e2y'
    
    e2y.o: In function `e2y_':
    /.../yambo/interfaces/e2y/e2y.f90:132: undefined reference to `etsf_io_low_level_mp_etsf_io_low_open_read_'
    /.../yambo/interfaces/e2y/e2y.f90:133: undefined reference to `etsf_io_low_level_mp_etsf_io_low_open_read_'
    /.../yambo/interfaces/e2y/e2y.f90:216: undefined reference to `etsf_io_low_level_mp_etsf_io_low_close_'
    e2y.o: In function `etsf_long_error':
    /.../yambo/interfaces/e2y/e2y.f90:223: undefined reference to `etsf_io_low_level_mp_etsf_io_low_error_handle_'
    e2y.o: In function `etsf_long_error_':
    /.../yambo/interfaces/e2y/e2y.f90:223: undefined reference to `etsf_io_low_level_mp_etsf_io_low_error_handle_'
    e2y_db1.o: In function `e2y_db1_':
    /.../yambo/interfaces/e2y/e2y_db1.f90:71: undefined reference to `etsf_io_mp_etsf_io_dims_get_'
    e2y_db1.o: In function `import_geometry_group':
    /.../yambo/interfaces/e2y/e2y_db1.f90:183: undefined reference to `etsf_io_mp_etsf_io_geometry_get_'
    e2y_db1.o: In function `import_electrons_group':
    /.../yambo/interfaces/e2y/e2y_db1.f90:251: undefined reference to `etsf_io_mp_etsf_io_electrons_get_'
    e2y_db1.o: In function `import_kpoints_group':
    /.../yambo/interfaces/e2y/e2y_db1.f90:424: undefined reference to `etsf_io_mp_etsf_io_kpoints_get_'
    e2y_db1.o: In function `import_miscellaneous_data':
    /.../yambo/interfaces/e2y/e2y_db1.f90:498: undefined reference to `etsf_io_low_level_mp_read_var_double_0d_'
    /.../yambo/interfaces/e2y/e2y_db1.f90:508: undefined reference to `etsf_io_low_level_mp_read_var_double_1d_'
    /.../yambo/interfaces/e2y/e2y_db1.f90:520: undefined reference to `etsf_io_low_level_mp_read_var_integer_1d_'
    /.../yambo/interfaces/e2y/e2y_db1.f90:533: undefined reference to `etsf_io_low_level_mp_read_var_integer_0d_'
    e2y_db1.o: In function `e2y_db1_IP_import_basisdata_group_':
    /.../yambo/interfaces/e2y/e2y_db1.f90:296: undefined reference to `etsf_io_mp_etsf_io_basisdata_get_'
    e2y_wf_components.o: In function `e2y_wf_components_':
    /.../yambo/interfaces/e2y/e2y_wf_components.f90:64: undefined reference to `etsf_io_low_level_mp_read_var_double_4d_'
    e2y_wf.o: In function `e2y_wf_':
    /.../yambo/interfaces/e2y/e2y_wf.f90:91: undefined reference to `etsf_io_low_level_mp_read_var_double_4d_'
    e2y_kb_pp.o: In function `e2y_kb_pp_':
    /.../yambo/interfaces/e2y/e2y_kb_pp.f90:77: undefined reference to `etsf_io_low_level_mp_read_var_double_3d_'
    /.../yambo/interfaces/e2y/e2y_kb_pp.f90:85: undefined reference to `etsf_io_low_level_mp_read_var_double_3d_'
    /.../yambo/interfaces/e2y/e2y_kb_pp.f90:94: undefined reference to `etsf_io_low_level_mp_read_var_integer_2d_'
    make[1]: *** [Makefile:150: e2y] Error 1
    make[1]: Leaving directory '/.../yambo/interfaces/e2y'
    make: *** [config/mk/actions/compile_interfaces.mk:27: e2y] Error 2
    Best,
    Rémi
    Rémi Lacroix
    Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
    http://www.idris.fr/

    User avatar
    Davide Sangalli
    Posts: 614
    Joined: Tue May 29, 2012 4:49 pm
    Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
    Contact:

    Re: Issue when compiling with "make all"

    Post by Davide Sangalli » Wed Feb 03, 2021 9:56 pm

    Dear Rémi,
    the issue with etsf_io libs was fixed in branch 4.5.
    In any case they are not used anymore by yambo. So you can skip it.
    I also suggest *not* to enable

    Code: Select all

    --enable-hdf5-io-compression
    which is just an experimental feature.

    For the compilation.
    I'm not able to reproduce the problem.

    The control on which files are compiled inside a given folder is dictated by the .objects file.
    As you can see in ypp/modules/.objects this is the file:

    Code: Select all

    RT_obj =
    #if defined _YPP_RT || YPP_NL
    RT_obj = mod_YPP_real_time.o
    #endif
    ELPH_obj =
    #if defined _YPP_ELPH || defined _YPP_RT
    ELPH_obj = mod_YPP_ELPH.o
    #endif
    objs = mod_YPP.o mod_YPP_symm.o mod_YPP_interfaces.o $(RT_obj) $(ELPH_obj) YPP_SET_defaults.o
    
    which is the used to define the Makefile.

    My Makefile looks as follows after `make ypp`

    Code: Select all

    RT_obj =
    ELPH_obj =
    objs = mod_YPP.o mod_YPP_symm.o mod_YPP_interfaces.o $(RT_obj) $(ELPH_obj) YPP_SET_defaults.o
    
    while after `make ypp_ph` is

    Code: Select all

    RT_obj =
    ELPH_obj =
    ELPH_obj = mod_YPP_ELPH.o
    objs = mod_YPP.o mod_YPP_symm.o mod_YPP_interfaces.o $(RT_obj) $(ELPH_obj) YPP_SET_defaults.o
    
    and mod_ELPH.o is created in the compilation process.

    The Makefile of the local folder is created by the command `mk_ypp_src` defined in `config/Makefile.in` in branch 4.5 which results in the `Makefile` in the main folder.
    It looks like that in my case

    Code: Select all

    define mk_ypp_src
     if test "$(topdir)" != "$(prefix)" ; then cp -r $(topdir)/include/* include/ ; fi ; \
     for ldir in $$LIBS2DO; do \
      if test ! -f "$(libdir)/lib_ypp_$$ldir.a" || test "$(keep_objs)" = yes  ; then \
       rm -f "$(libdir)/lib_ypp_$$ldir.a" ; \
       echo " " ; \
       echo ">>>[Making $$ldir]<<<" ; \
       if test ! -d "$$XPATH/$$ldir" ; then mkdir -p "$$XPATH/$$ldir" ; fi ; \
       if [ "$(topdir)" != "$(prefix)" ] && [ -f $$VPATH/$$ldir/.objects ] ; then \
        cp $$VPATH/$$ldir/.objects $$XPATH/$$ldir ; \
       fi ; \
       ./sbin/make_makefile.sh $$XPATH/$$ldir lib_ypp_$$ldir.a .objects l $(xcpp) $$ADF ; \
       cd $$XPATH/$$ldir ; $(MAKE) VPATH=$$VPATH/$$ldir || exit "$$?" ; cd ../../; \
      fi ; \
     done
    endef
    
    where $$ADF defines the flags via (see again config/Makefile.in)

    Code: Select all

    ypp_ph: libs
            @+LIBS2DO="$(YPP_MAIN_LIBS)"; XPATH="src"; VPATH="$(topdir)/src"; ADF="-D_ELPH"; $(mksrc)
            @+LIBS2DO="$(YPPPH_LIBS)"; XPATH="ypp"; VPATH="$(topdir)/ypp";  ADF="-D_YPP_ELPH"; $(mk_ypp_src)
            @+X2DO="ypp_ph"; XPATH="driver"; VPATH="$(topdir)/driver"; XLIBS="$(YPP_MAIN_LIBS_LD)"; \
            X_ypp_LIBS="$(YPPPH_LIBS_LD) elph"; ADF="-D_YPP_ELPH"; $(mk_ypp_x)
    
    all this defines 'dopts` in `ypp/modules/Makefile`.
    In my case after `make ypp`

    Code: Select all

    dopts= -D_HDF5_LIB -D_HDF5_IO -D_PAR_IO -D_MPI -D_FFTW -D_SCALAPACK -D_OPENMP -D_TIMING -D_MEM_CHECK -D_YPP_ELPH -D_$(os)
    
    Are these different in our case ?

    Best,
    D.

    P.S.: I notice in your config/report the strange path `/.../` with three dots.
    Is this expected ?
    Davide Sangalli, PhD
    CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
    https://sites.google.com/view/davidesangalli
    http://www.max-centre.eu/

    remi.lacroix
    Posts: 13
    Joined: Wed Feb 03, 2021 3:17 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by remi.lacroix » Thu Feb 04, 2021 5:54 pm

    Dear Davide,
    Davide Sangalli wrote: Wed Feb 03, 2021 9:56 pm the issue with etsf_io libs was fixed in branch 4.5.
    In any case they are not used anymore by yambo. So you can skip it.
    I also suggest *not* to enable

    Code: Select all

    --enable-hdf5-io-compression
    which is just an experimental feature.
    Ok.
    Davide Sangalli wrote: Wed Feb 03, 2021 9:56 pm I'm not able to reproduce the problem.
    (...)
    My Makefile looks as follows after `make ypp` (...) while after `make ypp_ph` is (...)
    I think I wasn't clear enough, to reproduce you need to do `make ypp ypp_ph` (which is a subset of what `make all` does).
    Davide Sangalli wrote: Wed Feb 03, 2021 9:56 pm P.S.: I notice in your config/report the strange path `/.../` with three dots.
    Is this expected ?
    Yes, this is a request from our security team, we have to redact any specific paths.

    Best,
    Rémi
    Rémi Lacroix
    Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
    http://www.idris.fr/

    User avatar
    Davide Sangalli
    Posts: 614
    Joined: Tue May 29, 2012 4:49 pm
    Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
    Contact:

    Re: Issue when compiling with "make all"

    Post by Davide Sangalli » Fri Feb 05, 2021 2:51 pm

    Code: Select all

    make ypp ypp_ph
    worked fine as well in my case

    Did you do

    Code: Select all

    make ypp ypp_ph -j
    instead ?
    That does not work.

    For the three dots.
    yambo, when compiling, checks if the source path matches the compile folder.
    In case it doesn't, this triggers some specific operations.
    I think your ... would trigger them as well.

    Best,
    D.
    Davide Sangalli, PhD
    CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
    https://sites.google.com/view/davidesangalli
    http://www.max-centre.eu/

    remi.lacroix
    Posts: 13
    Joined: Wed Feb 03, 2021 3:17 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by remi.lacroix » Fri Feb 05, 2021 7:55 pm

    Hello,
    Davide Sangalli wrote: Fri Feb 05, 2021 2:51 pm Did you do

    Code: Select all

    make ypp ypp_ph -j
    instead ?
    That does not work.
    No, just `make ypp ypp_ph` but I just noticed that even doing `make ypp` and then `make ypp_ph` fails with the same errors.

    Starting from a clean build dir (git clean -dxf), if I do `make ypp ypp_ph` or `make ypp` and then `make ypp_ph`, then in both cases the compilation fails when building "ypp_ph" and `ypp/modules/Makefile` contains:

    Code: Select all

    dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_$(os)
    Starting again from a clean build dir (git clean -dxf), if I do `make ypp_ph` then the compilation succeeds and `ypp/modules/Makefile` contains:

    Code: Select all

    dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_YPP_ELPH -D_$(os)
    Davide Sangalli wrote: Fri Feb 05, 2021 2:51 pm For the three dots.
    The three dots are purely cosmetics, it's just a search and replace in the log files. They have nothing to do with the compilation itself.

    Best,
    Rémi
    Rémi Lacroix
    Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
    http://www.idris.fr/

    remi.lacroix
    Posts: 13
    Joined: Wed Feb 03, 2021 3:17 pm
    Contact:

    Re: Issue when compiling with "make all"

    Post by remi.lacroix » Fri Feb 05, 2021 10:21 pm

    remi.lacroix wrote: Fri Feb 05, 2021 7:55 pm Starting from a clean build dir (git clean -dxf), if I do `make ypp ypp_ph` or `make ypp` and then `make ypp_ph`, then in both cases the compilation fails when building "ypp_ph" and `ypp/modules/Makefile` contains:

    Code: Select all

    dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_$(os)
    Starting again from a clean build dir (git clean -dxf), if I do `make ypp_ph` then the compilation succeeds and `ypp/modules/Makefile` contains:

    Code: Select all

    dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_YPP_ELPH -D_$(os)
    It seems like I messed up when doing my tests (probably missed at clean-up at some point). It does not change the conclusion but things are actually worst than I though, I think I found another issue.

    Here is the actual behavior when starting from a clean build dir (git clean -dxf):
    • `make ypp` or `make ypp ypp_ph` : compilation fails when building "modules" (full log: "make_ypp.log")

      Code: Select all

      >>>[Making modules]<<<
      Warning #2216: '=' assumed following macro name "_libmodules" in command-line definition
      
      make[1]: Entering directory '/tmp/yambo_RL/src/modules'
      cd /tmp/yambo_RL/src/modules; /tmp/yambo_RL/sbin/moduledep.sh mod_pars.o mod_units.o mod_lexical_sort.o mod_stderr.o mod_memory.o mod_openmp.o mod_parallel.o mod_parallel_interface.o mod_matrix.o mod_SLK.o         mod_linear_algebra.o mod_wrapper.o mod_wrapper_omp.o mod_drivers.o mod_FFT.o       mod_LIVE_t.o  mod_logo.o mod_cutoff_ws.o        mod_descriptors.o mod_com.o mod_com_interfcs.o mod_timing.o mod_R_lattice.o mod_electrons.o mod_wave_func.o        mod_xc_functionals.o mod_global_XC.o        mod_matrix_operate.o mod_D_lattice.o mod_frequency.o        mod_vec_operate.o mod_X.o mod_DIPOLES.o        mod_functions.o  mod_zeros.o mod_atom_proj.o mod_pseudo.o        mod_QP.o mod_collision_el.o        mod_BS.o mod_BS_solvers.o mod_QP_CTL.o mod_TDDFT.o mod_ACFDT.o mod_MAGNONS.o mod_DICHROISM.o mod_PHOTOLUM.o        mod_IO.o mod_ELPH.o mod_PHEL.o mod_X_output.o mod_OUTPUT_simple.o mod_POL_FIT.o  mod_RT_lifetimes.o mod_RT_occupations.o mod_real_time.o        mod_hamiltonian.o               mod_debug.o mod_interfaces.o mod_interpolate_tools.o mod_interpolate.o SET_logicals.o SET_defaults.o mod_cusolverdn_y.o mod_cuda.o > /tmp/yambo_RL/src/modules/make.dep
      mod_pars.F mod_units.F mod_lexical_sort.F mod_stderr.F mod_openmp.F mod_memory.F mod_parallel.F mod_com_interfcs.F mod_com.F mod_cusolverdn_y.F mod_cuda.F mod_matrix_operate.F mod_D_lattice.F mod_descriptors.F mod_R_lattice.F mod_electrons.F mod_DIPOLES.F mod_matrix.F mod_X.F mod_parallel_interface.F mod_SLK.F mod_drivers.F mod_linear_algebra.F mod_wrapper.F mod_wrapper_omp.F mod_FFT.F mod_LIVE_t.f90(88): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [C_DRIVER]
           use C_driver,    ONLY:code_bin
      ---------^
      mod_LIVE_t.f90(109): error #6404: This name does not have a type, and must have an explicit type.   [CODE_BIN]
      &             trim(code_bin),' @ ',host_name(:host_name_length)
      -------------------^
      mod_LIVE_t.f90(109): error #6362: The data types of the argument(s) are invalid.   [TRIM]
      &             trim(code_bin),' @ ',host_name(:host_name_length)
      -------------------^
      mod_LIVE_t.f90(88): error #6580: Name in only-list does not exist or is not accessible.   [CODE_BIN]
           use C_driver,    ONLY:code_bin
      ---------------------------^
      compilation aborted for mod_LIVE_t.f90 (code 1)
      make[1]: *** [Makefile:232: mod_LIVE_t.o] Error 1
      make[1]: Leaving directory '/tmp/yambo_RL/src/modules'
      make: *** [config/mk/actions/compile_ypp.mk:4: ypp] Error 2
    • `make ypp_ph` : compilation works fine (full log: "make_ypp_ph.log") and `ypp/modules/Makefile` contains:

      Code: Select all

      dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_YPP_ELPH -D_$(os)
    • `make core ypp_ph` : compilation fails when building "el-ph" (full log: "make_core_ypp_ph.log")

      Code: Select all

      >>>[Making el-ph]<<<
      Warning #2216: '=' assumed following macro name "_lib_ypp_el" in command-line definition
      
      make[1]: Entering directory '/tmp/yambo_RL/ypp/el-ph'
      cd /tmp/yambo_RL/ypp/el-ph; /tmp/yambo_RL/sbin/moduledep.sh ELPH_databases.o ELPH_databases_IO_elemental.o ELPH_databases_IO_pol_and_freqs.o ELPH_databases_IO_grids_check.o                ELPH_databases_IO_transfer_and_write.o ELPH_databases_IO_gkkp_expand.o                ELPH_eliashberg_dos.o ELPH_general_gFsq.o ELPH_excitonic_gkkp.o ELPH_atomic_amplitude.o  > /tmp/yambo_RL/ypp/el-ph/make.dep
      ELPH_databases.f90(39): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [YPP_ELPH]
       use YPP_ELPH,            ONLY:ELPH_DB_alloc,ELPH_DB_free,DB_kind,DB_nq,DB_ph_K_sym_table,DB_nb,&
      -----^
      ELPH_databases.f90(146): error #6404: This name does not have a type, and must have an explicit type.   [DB_KIND]
       call msg('l',trim(DB_kind)//" ("//trim(what)//')...')
      -------------------^
      ELPH_databases.f90(146): error #6362: The data types of the argument(s) are invalid.   [TRIM]
       call msg('l',trim(DB_kind)//" ("//trim(what)//')...')
      -------------------^
      ELPH_databases.f90(150): error #6404: This name does not have a type, and must have an explicit type.   [DB_NQ]
       DB_nq=1
      -^
      ELPH_databases.f90(167): error #6404: This name does not have a type, and must have an explicit type.   [DB_PH_K_SYM_TABLE]
       allocate(DB_ph_K_sym_table (k%nbz,nsym),  &
      ----------^
      ELPH_databases.f90(169): error #7397: The argument of the ALLOCATED inquiry intrinsic function should have the ALLOCATABLE attribute.   [DB_PH_K_SYM_TABLE]
          if (     allocated(DB_ph_K_sym_table)) &
      -----------------------^
      ELPH_databases.f90(169): error #6830: The argument of the ALLOCATED intrinsic cannot be a constant or an expression.   [DB_PH_K_SYM_TABLE]
          if (     allocated(DB_ph_K_sym_table)) &
      -----------------------^
      ELPH_databases.f90(170): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MEM_COUNT]
       & call MEM_count("DB_ph_K_sym_table",DB_ph_K_sym_table)
      --------^
      ELPH_databases.f90(171): error #7397: The argument of the ALLOCATED inquiry intrinsic function should have the ALLOCATABLE attribute.   [DB_PH_K_SYM_TABLE]
          if (.not.allocated(DB_ph_K_sym_table)) &
      -----------------------^
      ELPH_databases.f90(171): error #6830: The argument of the ALLOCATED intrinsic cannot be a constant or an expression.   [DB_PH_K_SYM_TABLE]
          if (.not.allocated(DB_ph_K_sym_table)) &
      -----------------------^
      ELPH_databases.f90(192): error #6410: This name has not been declared as an array or a function.   [DB_PH_K_SYM_TABLE]
           DB_ph_K_sym_table(ik,is)=k%k_table(k%sstar(ik,1),sop_tab(is,k%sstar(ik,2)))
      -----^
      ELPH_databases.f90(198): error #6404: This name does not have a type, and must have an explicit type.   [USE_EXT_PH_FREQS]
       use_ext_ph_freqs=.false.
      -^
      ELPH_databases.f90(198): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
       use_ext_ph_freqs=.false.
      ------------------^
      ELPH_databases.f90(199): error #6404: This name does not have a type, and must have an explicit type.   [PH_FREQS_FILE]
       if (file_exists(trim(ph_freqs_file))) then
      ----------------------^
      ELPH_databases.f90(199): error #6362: The data types of the argument(s) are invalid.   [TRIM]
       if (file_exists(trim(ph_freqs_file))) then
      ----------------------^
      ELPH_databases.f90(200): error #6362: The data types of the argument(s) are invalid.   [TRIM]
         call msg('s',"Phonon frequencies read from: "//trim(ph_freqs_file))
      -------------------------------------------------------^
      ELPH_databases.f90(201): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
         use_ext_ph_freqs=.true.
      --------------------^
      ELPH_databases.f90(203): error #6404: This name does not have a type, and must have an explicit type.   [USE_EXT_PH_MODES]
       use_ext_ph_modes=.false.
      -^
      ELPH_databases.f90(203): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
       use_ext_ph_modes=.false.
      ------------------^
      ELPH_databases.f90(204): error #6404: This name does not have a type, and must have an explicit type.   [PH_MODES_FILE]
       if (file_exists(trim(ph_modes_file))) then
      ----------------------^
      ELPH_databases.f90(204): error #6362: The data types of the argument(s) are invalid.   [TRIM]
       if (file_exists(trim(ph_modes_file))) then
      ----------------------^
      ELPH_databases.f90(205): error #6362: The data types of the argument(s) are invalid.   [TRIM]
         call msg('s',"Phonon modes read from: "//trim(ph_modes_file))
      -------------------------------------------------^
      ELPH_databases.f90(206): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
         use_ext_ph_modes=.true.
      --------------------^
      ELPH_databases.f90(232): error #6404: This name does not have a type, and must have an explicit type.   [DB_PH_QPT]
           v=DB_PH_qpt(iabs(IDB),:)
      -------^
      ELPH_databases.f90(233): error #6410: This name has not been declared as an array or a function.   [DB_Q_MAP]
           if (v_is_zero(v+q%pt(iq,:),zero_=k_iku_zero)) DB_Q_map(iabs(IDB))=iq
      ---------------------------------------------------^
      ELPH_databases.f90(240): error #6404: This name does not have a type, and must have an explicit type.   [DB_PH_MODES]
       ph_modes   =DB_ph_modes
      -------------^
      ELPH_databases.f90(241): error #6404: This name does not have a type, and must have an explicit type.   [DB_NB]
       elph_nb    =DB_nb
      -------------^
      ELPH_databases.f90(247): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MSG]
       call msg('s',':: Code generator        :',DB_kind)
      ------^
      ELPH_databases.f90(250): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MSG]
       call msg('s',':: Q-points(read)        :',DB_nq)
      ------^
      ELPH_databases.f90(252): error #6404: This name does not have a type, and must have an explicit type.   [DB_NK]
       call msg('s',':: K-points              :',DB_nk)
      -------------------------------------------^
      ELPH_databases.f90(341): catastrophic error: Too many errors, exiting
      compilation aborted for ELPH_databases.f90 (code 1)
      make[1]: *** [Makefile:232: ELPH_databases.o] Error 1
      make[1]: Leaving directory '/tmp/yambo_RL/ypp/el-ph'
      make: *** [config/mk/actions/compile_ypp.mk:14: ypp_ph] Error 2
      and `ypp/modules/Makefile` contains:

      Code: Select all

      dopts= -D_HDF5_LIB -D_HDF5_IO -D_MPI -D_FFTW -D_FFTW_OMP -D_SCALAPACK -D_$(os)
    Rémi
    You do not have the required permissions to view the files attached to this post.
    Rémi Lacroix
    Scientific Computing Engineer @ User support team, CNRS / IDRIS, Orsay, France
    http://www.idris.fr/

    Post Reply