Page 1 of 1

Fail to compile phys-excitons branch of lumen fork

Posted: Tue Jul 15, 2025 3:40 pm
by shelly
Hello,

I've been trying to compile the phys-excitons branch of the lumen fork of yambo for a user who is interested in implementing the ARPES as BSE post processing described in the following tutorial https://wiki.yambo-code.eu/wiki/index.p ... lved_ARPES, but I have not had much success. I see that there are regular updates to this branch and it is clearly still under development. First, I would like to ask if there is a commit ID that you would recommend as a known, working snapshot of this branch. Beyond that, I can provide some details of my efforts and the errors that I've encountered below:

When trying to compile using gcc/13.3.0, openmpi/4.1.6 and mkl/2024.2, "make all" ends with:

Code: Select all

\t[driver] yambo_ph (link)
yambo_ph linking failed. Check log/compile_yambo_ph.log
make[1]: *** [config/mk/global/actions/compile_yambo.mk:43: yambo_ph] Error 1
yambo_ph build failed
make: *** [Makefile:52: all] Error 1
And log/compile_yambo_ph.log ends with:

Code: Select all

/usr/bin/ld: /tmp/mjohns89/build-gcc/lumen/lib/lib_Y_exc-ph.a(EXCPH_gkkp_driver.o): in function `excph_gkkp_driver_':
/tmp/mjohns89/build-gcc/lumen/src/exc-ph/EXCPH_gkkp_driver.f90:197: undefined reference to `build_inverse_bs_eh_table_'
collect2: error: ld returned 1 exit status
My config options for above were:

Code: Select all

MPIFC=mpif90 FC=gfortran F77=gfortran --enable-mpi --enable-open-mp --enable-par-linalg --enable-hdf5-par-io  --with-scalapack-libs=mkl --with-blacs-libs=mkl
I would prefer to compile with gcc and openapi, since that is what I used successfully to compile yambo 5.3 for the user previously. However, after failing to install with gcc, I also attempted to compile this branch with Intel oneAPI (2022.1.2) and failed as well. For completeness, the error was:

Code: Select all

\t[driver] yambo_ph (link)
yambo_ph linking failed. Check log/compile_yambo_ph.log
make[1]: *** [config/mk/global/actions/compile_yambo.mk:43: yambo_ph] Error 1
yambo_ph build failed
make: *** [Makefile:52: all] Error 1
and log/compile_yambo_ph.log stated:

Code: Select all

ld: /tmp/mjohns89/build/lumen/lib/lib_Y_exc-ph.a(EXCPH_gkkp_driver.o): in function `excph_gkkp_driver_':
/tmp/mjohns89/build/lumen/src/exc-ph/EXCPH_gkkp_driver.f90:208: undefined reference to `build_inverse_bs_eh_table_'
So, either way, there seems to be a problem with linking during building of yambo_ph. Am I missing something?

Best,
Shelly

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Wed Jul 16, 2025 8:06 am
by Davide Sangalli
Dear Shelly,
for the ARPES spectra the yambo_ph executable is not needed.

You just need to compile the core, and rt executables

Code: Select all

make core
make rt-project
Best,
D.

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Wed Jul 16, 2025 4:29 pm
by shelly
Hello Davide,

Thanks for your response. I tried installing with only "make core" and "make rt-project" as you recommended. Unfortunately, I am getting stuck on the "make rt-project". It errors out with:

Code: Select all

\t[ypp/real_time] RT_OBSERVABLES_IO
make[2]: *** [/tmp/mjohns89/build-gcc/lumen/config/mk/local/rules.mk:15: RT_TR_ARPES.o] Error 1
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
\t[driver] ypp_rt (setup)
ypp_rt linking failed. Check log/compile_ypp_rt.log
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
make[1]: *** [config/mk/global/actions/compile_ypp.mk:58: ypp_rt] Error 1
ypp_rt build failed
make: *** [Makefile:46: rt-project] Error 1
The compile_ypp_rt.log file is showing:

Code: Select all

RT_TR_ARPES.f90:129:23:

  129 |  & stat=MEM_err,errmsg=MEM_msg)
      |                       1
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
RT_TR_ARPES.f90:188:23:

  188 |  & stat=MEM_err,errmsg=MEM_msg)
      |                       1
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
RT_TR_ARPES.f90:196:23:

  196 |  & stat=MEM_err,errmsg=MEM_msg)
      |                       1
Error: ERRMSG variable at (1) shall be a scalar default CHARACTER variable
RT_TR_ARPES.f90:355:59:

  355 |  & call MEM_free("INTERP_obj(ID_bands)%INTERP",int(-1,KIND=IPL))
      |                                                           1
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
RT_TR_ARPES.f90:355:59:

  355 |  & call MEM_free("INTERP_obj(ID_bands)%INTERP",int(-1,KIND=IPL))
      |                                                           1
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
RT_TR_ARPES.f90:357:85:

  357 |  & call MEM_free("INTERP_obj(ID_bands)%INTERP",size(INTERP_obj(ID_bands)%INTERP,KIND=IPL))
      |                                                                                     1
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
RT_TR_ARPES.f90:357:85:

  357 |  & call MEM_free("INTERP_obj(ID_bands)%INTERP",size(INTERP_obj(ID_bands)%INTERP,KIND=IPL))
      |                                                                                     1
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
RT_TR_ARPES.f90:368:41:

  368 |  & call MEM_free("ARPES_int",int(-1,KIND=IPL))
      |                                         1
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
RT_TR_ARPES.f90:368:41:

  368 |  & call MEM_free("ARPES_int",int(-1,KIND=IPL))
      |                                         1
Error: 'kind' argument of 'int' intrinsic at (1) must be a constant
RT_TR_ARPES.f90:370:49:

  370 |  & call MEM_free("ARPES_int",size(ARPES_int,KIND=IPL))
      |                                                 1
Error: Parameter 'ipl' at (1) has not been declared or is a variable, which does not reduce to a constant expression
RT_TR_ARPES.f90:370:49:

  370 |  & call MEM_free("ARPES_int",size(ARPES_int,KIND=IPL))
      |                                                 1
Error: 'kind' argument of 'size' intrinsic at (1) must be a constant
RT_TR_ARPES.f90:190:30:

  131 |  & call MEM_count("GreenF_T_and_W%W",GreenF_T_and_W%W)
      |                                     2
......
  190 |  & call MEM_count("ARPES_int",ARPES_int)
      |                              1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
RT_TR_ARPES.f90:198:48:

  131 |  & call MEM_count("GreenF_T_and_W%W",GreenF_T_and_W%W)
      |                                     2
......
  198 |  & call MEM_count("INTERP_obj(ID_ARPES)%INTERP",INTERP_obj(ID_ARPES)%INTERP)
      |                                                1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(4)/COMPLEX(4)).
Should I be buiding with:

Code: Select all

export FCFLAGS="-fallow-argument-mismatch" FFLAGS="-fallow-argument-mismatch"
Or is there some other issue...?

UPDATE: I tried adding the exports above, and I still have the same errors.

Best,
Shelly

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Fri Jul 25, 2025 3:13 pm
by shelly
Hello Davide,

Just checking back to see if you had seen my previous response (from July 16th) and if you have any other ideas that I could try to get this to compile. Thanks, in advance, for whatever advice you may be able to offer.

Best,
Shelly

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Mon Jul 28, 2025 9:52 pm
by Davide Sangalli
Dear Shelly,
sorry I missed the previous reply.

Those messages are indeed due to an issue in the source code which was left after an incomplete merge.
I've just updated the source. Could you please try again?

Best
D.

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Mon Jul 28, 2025 10:29 pm
by shelly
Dear Davide,

Super. Thanks for taking another look and for making the required update to the source code. I'll give it another try and let you know how it goes.

Best,
Shelly

Re: Fail to compile phys-excitons branch of lumen fork

Posted: Tue Jul 29, 2025 4:56 pm
by shelly
Hello Davide,

Just a quick note to let you know that I was finally able to get `rt-project` (in the `pys-excitons` branch of the `lumen` fork) to compile successfully after your recent updates to the source code. Many thanks.

Best,
Shelly