From 5bb4daaf958ccee489d595923b0d46f962a75295 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 1 Jun 2024 22:29:10 +0200 Subject: [PATCH 001/112] Version 5.2.0, Revision 23157, Hash 0b52806c3a MODIFIED * configure include/version/version.m4 lib/archive/package.list Changes: - [yambo] Slepc and Petsc version updated to 3.21 Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- lib/archive/package.list | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 9547f36cef..9ab1f5dea2 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23156 h.c915039006. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23157 h.0b52806c3a. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23156 h.c915039006' -PACKAGE_STRING='Yambo 5.2.0 r.23156 h.c915039006' +PACKAGE_VERSION='5.2.0 r.23157 h.0b52806c3a' +PACKAGE_STRING='Yambo 5.2.0 r.23157 h.0b52806c3a' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1604,7 +1604,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23156 h.c915039006 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23157 h.0b52806c3a to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1670,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23156 h.c915039006:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23157 h.0b52806c3a:";; esac cat <<\_ACEOF @@ -1882,7 +1882,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23156 h.c915039006 +Yambo configure 5.2.0 r.23157 h.0b52806c3a generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2511,7 +2511,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23156 h.c915039006, which was +It was created by Yambo $as_me 5.2.0 r.23157 h.0b52806c3a, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3269,8 +3269,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23156" -SHASH="c915039006" +SREVISION="23157" +SHASH="0b52806c3a" @@ -16606,7 +16606,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23156 h.c915039006, which was +This file was extended by Yambo $as_me 5.2.0 r.23157 h.0b52806c3a, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16670,7 +16670,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23156 h.c915039006 +Yambo config.status 5.2.0 r.23157 h.0b52806c3a configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 1cc4075924..73ae72a895 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23156 h.c915039006, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23157 h.0b52806c3a, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23156" -SHASH="c915039006" +SREVISION="23157" +SHASH="0b52806c3a" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/archive/package.list b/lib/archive/package.list index 8ed6c766f5..6cd99e58fe 100644 --- a/lib/archive/package.list +++ b/lib/archive/package.list @@ -34,8 +34,8 @@ version_libxc=5.2.3 version_lapack=3.12.0 version_blacs=missing version_scalapack=2.2.1 -version_slepc=3.20.2 -version_petsc=3.20.5 +version_slepc=3.21.0 +version_petsc=3.21.0 version_fftw=3.3.10 version_fftqe=missing version_yaml=0.2.2 From 2243a000160f9898cb51197a071709337a0593ae Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 15 Jun 2024 23:00:35 +0200 Subject: [PATCH 002/112] Version 5.2.0, Revision 23240, Hash 89334754e0 MODIFIED * configure include/version/version.m4 bse/K_blocks.F bse/K_kernel.F interface/INIT_load.F io_parallel/io_BS_PAR_block.F io_parallel/io_BS_PAR_init.F modules/mod_BS.F Changes: - [yambo] For runs where the BSE matrix is only constructed, e.g. no solver, the BS_blk(iB)%mat are allocated and de-allocated withing the loops over blocks. This saves a lot of memory if used together with the new I/O mode BSKIOmode="write_all_steps" Patch sent by: Davide Sangalli --- configure | 22 ++++++------ include/version/version.m4 | 6 ++-- src/bse/K_blocks.F | 60 +++++++++++++++++++++++-------- src/bse/K_kernel.F | 40 ++++++++++++++------- src/interface/INIT_load.F | 2 +- src/io_parallel/io_BS_PAR_block.F | 24 +++++++++---- src/io_parallel/io_BS_PAR_init.F | 7 ++-- src/modules/mod_BS.F | 1 + 8 files changed, 111 insertions(+), 51 deletions(-) diff --git a/configure b/configure index efc5015e76..894e41728b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23180 h.e1699b65ed. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23240 h.89334754e0. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23180 h.e1699b65ed' -PACKAGE_STRING='Yambo 5.2.0 r.23180 h.e1699b65ed' +PACKAGE_VERSION='5.2.0 r.23240 h.89334754e0' +PACKAGE_STRING='Yambo 5.2.0 r.23240 h.89334754e0' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23180 h.e1699b65ed to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23240 h.89334754e0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23180 h.e1699b65ed:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23240 h.89334754e0:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23180 h.e1699b65ed +Yambo configure 5.2.0 r.23240 h.89334754e0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23180 h.e1699b65ed, which was +It was created by Yambo $as_me 5.2.0 r.23240 h.89334754e0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23180" -SHASH="e1699b65ed" +SREVISION="23240" +SHASH="89334754e0" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23180 h.e1699b65ed, which was +This file was extended by Yambo $as_me 5.2.0 r.23240 h.89334754e0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23180 h.e1699b65ed +Yambo config.status 5.2.0 r.23240 h.89334754e0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index d464301e5f..41e5835d6a 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23180 h.e1699b65ed, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23240 h.89334754e0, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23180" -SHASH="e1699b65ed" +SREVISION="23240" +SHASH="89334754e0" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 85b38a22e8..c70f570e7e 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -19,7 +19,7 @@ subroutine K_blocks( ) ! complex(SP), allocatable :: mat(:,:) !end type BS_block ! - use pars, ONLY:cZERO,SP,IP,IPL + use pars, ONLY:SP,IP,IPL use parallel_m, ONLY:PAR_IND_T_ordered,myid,ncpu,PAR_COM_HOST use parallel_int, ONLY:PP_wait,PP_redux_wait,PARALLEL_live_message use BS, ONLY:BS_blk,n_BS_blks,n_BS_blks,BS_K_coupling,BS_T_grp,BS_nT_grps,& @@ -128,20 +128,6 @@ subroutine K_blocks( ) ! Allocate the blocks ! YAMBO_PAR_ALLOC_CHECK1(BS_MAT,(/TMP_SIZE/)) - ! - do iB=1,n_BS_blks - YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) - allocate(BS_blk(iB)%done(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) - BS_blk(iB)%mat=cZERO - BS_blk(iB)%done(:,:)="f" - if (BS_blk(iB)%coordinate(1)==BS_blk(iB)%coordinate(2)) then - diag_size=minval(BS_blk(iB)%size(:)) - allocate(BS_blk(iB)%table(5,diag_size)) - allocate(BS_blk(iB)%E(diag_size)) - BS_blk(iB)%E=-1._SP - BS_blk(iB)%table=0 - endif -enddo ! ! Live Timing Blocks !==================== @@ -170,3 +156,47 @@ subroutine K_blocks( ) call PARALLEL_live_message("Kernel matrix elements",ENVIRONMENT="Response_T_space",LOADED_r=N_Ts_local,TOTAL_r=N_Ts_total) ! end subroutine +! +! +subroutine K_block_alloc( iB ) + ! + use pars, ONLY:SP,cZERO + use BS, ONLY:BS_blk + ! +#include + ! + integer, intent(in) :: iB + ! + integer :: diag_size + ! + YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + allocate(BS_blk(iB)%done(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + BS_blk(iB)%mat=cZERO + BS_blk(iB)%done(:,:)="f" + if (BS_blk(iB)%coordinate(1)==BS_blk(iB)%coordinate(2)) then + diag_size=minval(BS_blk(iB)%size(:)) + allocate(BS_blk(iB)%table(5,diag_size)) + allocate(BS_blk(iB)%E(diag_size)) + BS_blk(iB)%E=-1._SP + BS_blk(iB)%table=0 + endif + ! +end subroutine K_block_alloc +! +! +subroutine K_block_free( iB ) + ! + use BS, ONLY:BS_blk + ! +#include + ! + integer, intent(in) :: iB + ! + YAMBO_FREE(BS_blk(iB)%mat) + deallocate(BS_blk(iB)%done) + if (BS_blk(iB)%coordinate(1)==BS_blk(iB)%coordinate(2)) then + deallocate(BS_blk(iB)%table) + deallocate(BS_blk(iB)%E) + endif + ! +end subroutine K_block_free diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 09e082c441..1d81345074 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -10,6 +10,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! K = <2V-W> for n_spin=1; K= for n_spin>1 ! use pars, ONLY:SP,schlen,pi,cZERO,cI + use drivers, ONLY:l_bss use LOGO, ONLY:pickup_a_random use drivers, ONLY:l_bs_fxc,l_tddft,l_rim_w use frequency, ONLY:w_samp @@ -31,7 +32,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) & O_ng,BS_n_g_exch,BS_n_g_fxc,BS_identifier,BS_LiveTiming_steps,& & BS_K_dim,BS_K_is_ALDA,BS_cpl_K_exchange,& & BS_cpl_K_corr,K_EXCH_collision,K_CORR_collision,& -& WF_phase,n_BS_blks,BS_blk,BS_T_grp,& +& WF_phase,n_BS_blks,BS_blk,BS_T_grp,BSK_IO_mode,BSK_IO_sum_value,& & BS_nT_grps,BS_blks_free,l_BS_ares_from_res,& & l_BSE_minimize_memory,l_BSE_restart,l_BSE_kernel_complete,& & BS_perturbative_SOC,BS_K_cutoff,BS_max_val,l_BS_magnons @@ -89,8 +90,8 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) complex(SP), external ::TDDFT_ALDA_eh_space_G_kernel complex(SP), external ::K_exchange_kernel_resonant,K_exchange_kernel_coupling ! - logical :: l_bs_exch,l_bs_corr,l_bs_exch_wf_in_loop,l_bs_tddft_wf_in_loop,l_matrix_init,& - & l_load_kernel,l_write_kernel,l_skip_phases,l_std_alg,l_dir_alg,l_tddft_gsum,l_tddft_rsum + logical :: l_bs_exch,l_bs_corr,l_bs_exch_wf_in_loop,l_bs_tddft_wf_in_loop,l_matrix_init,BS_blk_todo,& + & l_load_kernel,l_write_kernel,l_write_kernel_step,l_skip_phases,l_std_alg,l_dir_alg,l_tddft_gsum,l_tddft_rsum ! ! I/O ! @@ -289,6 +290,9 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) l_matrix_init=.true. l_load_kernel=.true. l_write_kernel=.false. + l_write_kernel_step= index(BSK_IO_mode,"write_all_steps")/=0 + ! + if (l_write_kernel_step) call warning("Experimental mode, IO at every step. Restart not possible") ! BS_blk_done=.false. ! @@ -368,6 +372,8 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) if (m_steps>0) call live_timing("Loading partial kernel",m_steps) ! do i_block=1,n_BS_blks + ! + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) ! ! Read BS_blk to check if the transition was already computed ! @@ -385,17 +391,17 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! check if this block need to be done ! skip this block if already done ! - BS_blk_done(i_block)=.true. - skip_check: do i_Tp=1,BS_T_grp(i_Tgrp_p)%size - do i_Tk=1,BS_T_grp(i_Tgrp_k)%size - if (BS_blk(i_block)%done(i_Tk,i_Tp)=="t") cycle - BS_blk_done(i_block)=.false. - exit skip_check - enddo - enddo skip_check + BS_blk_done(i_block)=all((/BS_blk(i_block)%done=="t"/)) + BS_blk_todo =all((/BS_blk(i_block)%done=="f"/)) ! if (BS_blk_done(i_block)) m_steps=m_steps-i_steps ! + if (.not. (l_bss.or.l_partial_kernel_loaded) ) then + ! + if (BS_blk_done(i_block) .or. BS_blk_todo) call K_block_free(i_block) + ! + endif + ! call live_timing(steps=i_steps) ! enddo @@ -457,11 +463,20 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) if(l_partial_kernel_loaded.and.l_write_kernel) then call io_control(ACTION=WR,ID=ID) call io_BS_PAR_block(iq,i_block,ID,"full") + if (.not.l_bss) call K_block_free(i_block) endif #endif cycle endif ! + if (l_write_kernel_step) then + if (iHxc==1) BSK_IO_sum_value=.false. + if (iHxc==2) BSK_IO_sum_value=l_bs_exch + if (iHxc==3) BSK_IO_sum_value=l_bs_exch.or.BS_K_is_ALDA + endif + ! + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) + ! ! Read BS_blk to check if the transition was already computed ! if (BS_LiveTiming_steps>= 0) i_steps=BS_Block_size(i_block) @@ -787,7 +802,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! if(iHxc==3) call BS_correlation_oscillators_free(i_block,l_std_alg) ! -100 if(l_write_kernel) then +100 if(l_write_kernel.or.l_write_kernel_step) then #if defined _PAR_IO call io_control(ACTION=WR,ID=ID) call io_BS_PAR_block(iq,i_block,ID,"full") @@ -795,6 +810,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR,COM=REP,SEC=(/i_block+1/),ID=ID) io_BS_err=io_BS(iq,X,ID) #endif + if (.not.l_bss) call K_block_free(i_block) endif ! call live_timing(steps=i_steps) diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index fd1f595448..90f46b8442 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -292,7 +292,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) call it(defs,'FxcMode', '[TDDFT] ("G-XXX" or "R-XXX" with XXX=def/full/cut_Gmax/cut_GmGp") ',FXC_mode,verb_level=V_resp) call it(defs,'BSEEhEny','[BSK] Electron-hole energy range',BS_eh_en,E_unit,verb_level=V_resp) call it(defs,'BSKCut', '[BSK] Cutoff on the BSE Kernel, 0=full 1=none',BS_K_cutoff,verb_level=V_resp) - call it(defs,'BSKIOmode','[BSK] ("1D_linear"/"2D_standard" + "norestart")',BSK_IO_mode,verb_level=V_resp) + call it(defs,'BSKIOmode','[BSK] ("1D_linear"/"2D_standard" + "norestart" + "write_all_steps")',BSK_IO_mode,verb_level=V_resp) call it(defs,'BSKmod', '[BSE] IP/Hartree/HF/ALDA/SEX/BSfxc',BSK_mode,protect=.FALSE.,case="A") call it(defs,'Gauge' , '[BSE/X] Gauge (length|velocity)',global_gauge,verb_level=V_resp) call it('f',defs,'NoCondSumRule' ,'[BSE/X] Do not impose the conductivity sum rule in velocity gauge',verb_level=V_resp) diff --git a/src/io_parallel/io_BS_PAR_block.F b/src/io_parallel/io_BS_PAR_block.F index 79131b309f..a55b2bf7bd 100644 --- a/src/io_parallel/io_BS_PAR_block.F +++ b/src/io_parallel/io_BS_PAR_block.F @@ -15,10 +15,10 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) ! use pars, ONLY:IP,IPL,SP,schlen,max_io_vars_open use iso_c_binding, ONLY:C_LOC,C_F_POINTER - use stderr, ONLY:STRING_remove - use BS, ONLY:BS_blk,BSK_IO_mode,MAX_BSK_LIN_size,n_BS_blks_min,BS_K_dim + use stderr, ONLY:STRING_split + use BS, ONLY:BS_blk,BSK_IO_mode,MAX_BSK_LIN_size,n_BS_blks_min,BS_K_dim,BSK_IO_sum_value use timing_m, ONLY:timing - use IO_m, ONLY:io_unit,netcdf_call,nf90_sync,variable_exist,& + use IO_m, ONLY:io_unit,netcdf_call,nf90_sync,variable_exist,io_action,RD,WR,& & write_is_on,read_is_on,io_BS_K,YAMBO_CMPLX_NO_FILL use IO_int, ONLY:io_variable_bulk ! @@ -32,18 +32,20 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) ! integer, parameter :: n_max_tot_vars=6 ! see io_BS_PAR_init ! - character(schlen) :: BSK_IO_local + character(schlen) :: BSK_IO_local,BSK_IO_split(3) logical :: lwrite(3),file_sync integer :: x1,x2,VAR_IDs(2),ID_table,ID_energ,stat,ID_now(2) integer :: n2,i1,i2,idx1,idx2,imax,i_rep(2),ilast integer(IPL) :: idx ! - complex(SP), allocatable :: TMP_IO_VAR(:) + complex(SP), allocatable :: TMP_IO_VAR(:),mat_tmp(:,:) ! if( (.not.io_BS_K) .and. trim(mode)=="full") return ! call timing('io_BS',OPR='start') ! + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) + ! ! Get the type of block that we want to write ! ID_table=max_io_vars_open @@ -61,7 +63,8 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) x1=BS_blk(i_block)%coordinate(1) x2=BS_blk(i_block)%coordinate(2) ! - BSK_IO_local=trim(STRING_remove(BSK_IO_mode,"norestart")) + call STRING_split(BSK_IO_mode,BSK_IO_split) + BSK_IO_local=BSK_IO_split(1) if(index(mode,"compressed")/=0) BSK_IO_local=trim(mode) if(index(mode,"tableonly")/=0) BSK_IO_local=trim(mode) ! @@ -177,6 +180,15 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) ! ! Write one block at a time in 2D ! + if (BSK_IO_sum_value.and.write_is_on(ID)) then + allocate(mat_tmp(BS_blk(i_block)%size(1),BS_blk(i_block)%size(2))) + io_action(ID)=RD + call io_variable_bulk(ID, VAR_IDs(1), C2=mat_tmp , IPOS=(/1,x1,x2/) ) + io_action(ID)=WR + BS_blk(i_block)%mat=BS_blk(i_block)%mat+mat_tmp + deallocate(mat_tmp) + endif + ! call io_variable_bulk(ID, VAR_IDs(1), C2=BS_blk(i_block)%mat , IPOS=(/1,x1,x2/) ) if(read_is_on(ID) .and. .not.trim(mode)=="matonly") then do i2=1,BS_blk(i_block)%size(2) diff --git a/src/io_parallel/io_BS_PAR_init.F b/src/io_parallel/io_BS_PAR_init.F index c28959b971..70b759fdf9 100644 --- a/src/io_parallel/io_BS_PAR_init.F +++ b/src/io_parallel/io_BS_PAR_init.F @@ -7,7 +7,7 @@ ! integer function io_BS_PAR_init(iq,ID,mode) ! - use stderr, ONLY:intc,real2ch,STRING_remove + use stderr, ONLY:intc,real2ch,STRING_split use com, ONLY:msg use pars, ONLY:IP,IPL,SP,IP_YIO,SP_YIO,schlen,lchlen,max_io_vars_open use BS, ONLY:BS_K_dim,BS_H_dim,BS_IO_dim,BS_K_coupling,l_BSE_kernel_complete,& @@ -27,7 +27,7 @@ integer function io_BS_PAR_init(iq,ID,mode) integer, parameter :: n_kind_vars=2 ! mat, done integer, parameter :: n_max_tot_vars=6 ! maximum number is n_max_vars times 2 kinds ! - character(schlen) :: db_name,ch_tmp,dim_names(3,n_max_vars),BSK_IO_local + character(schlen) :: db_name,ch_tmp,dim_names(3,n_max_vars),BSK_IO_local,BSK_IO_split(3) character(lchlen) :: ch(n_max_vars,max_io_vars_open-1) logical :: def_var, io_var integer(IPL) :: BS_lin_size @@ -86,7 +86,8 @@ integer function io_BS_PAR_init(iq,ID,mode) if ( BS_K_coupling ) n_vars=2 if (.not.l_BS_ares_from_res) n_vars=n_vars+1 ! - BSK_IO_local=trim(STRING_remove(BSK_IO_mode,"norestart")) + call STRING_split(BSK_IO_mode,BSK_IO_split) + BSK_IO_local=BSK_IO_split(1) if(index(mode,"compressed")/=0 ) BSK_IO_local=trim(mode) ! select case(trim(BSK_IO_local)) diff --git a/src/modules/mod_BS.F b/src/modules/mod_BS.F index 2812f48647..a7803bc907 100644 --- a/src/modules/mod_BS.F +++ b/src/modules/mod_BS.F @@ -28,6 +28,7 @@ module BS logical :: BS_not_const_eh_f=.FALSE. logical :: BS_perturbative_SOC=.FALSE. logical :: BS_K_has_been_calculated_loaded=.FALSE. + logical :: BSK_IO_sum_value character(schlen) :: BSE_L_kind character(schlen) :: BSE_mode character(schlen) :: BSE_prop From 10f7cbbc1542834325196b8987b157da7854d039 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sun, 16 Jun 2024 14:22:53 +0200 Subject: [PATCH 003/112] Version 5.2.0, Revision 23241, Hash 2243a00016 MODIFIED * configure include/version/version.m4 bse/K_kernel.F bse/K_solvers.F Changes: - [yambo] New mode, controlled with "write_all_steps" is activated also in presence of solvers. In such case, during the calculation of the kernel the blocks are not kept in memory, and only later, when entering the solver, the whole kernel is loaded into memory Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_kernel.F | 13 +++++++------ src/bse/K_solvers.F | 9 +++++++-- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/configure b/configure index 894e41728b..99c67e5a4b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23240 h.89334754e0. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23241 h.2243a00016. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23240 h.89334754e0' -PACKAGE_STRING='Yambo 5.2.0 r.23240 h.89334754e0' +PACKAGE_VERSION='5.2.0 r.23241 h.2243a00016' +PACKAGE_STRING='Yambo 5.2.0 r.23241 h.2243a00016' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23240 h.89334754e0 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23241 h.2243a00016 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23240 h.89334754e0:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23241 h.2243a00016:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23240 h.89334754e0 +Yambo configure 5.2.0 r.23241 h.2243a00016 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23240 h.89334754e0, which was +It was created by Yambo $as_me 5.2.0 r.23241 h.2243a00016, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23240" -SHASH="89334754e0" +SREVISION="23241" +SHASH="2243a00016" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23240 h.89334754e0, which was +This file was extended by Yambo $as_me 5.2.0 r.23241 h.2243a00016, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23240 h.89334754e0 +Yambo config.status 5.2.0 r.23241 h.2243a00016 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 41e5835d6a..93428adb5c 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23240 h.89334754e0, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23241 h.2243a00016, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23240" -SHASH="89334754e0" +SREVISION="23241" +SHASH="2243a00016" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 1d81345074..8c1b0fe975 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -10,7 +10,6 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! K = <2V-W> for n_spin=1; K= for n_spin>1 ! use pars, ONLY:SP,schlen,pi,cZERO,cI - use drivers, ONLY:l_bss use LOGO, ONLY:pickup_a_random use drivers, ONLY:l_bs_fxc,l_tddft,l_rim_w use frequency, ONLY:w_samp @@ -33,12 +32,12 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) & BS_K_dim,BS_K_is_ALDA,BS_cpl_K_exchange,& & BS_cpl_K_corr,K_EXCH_collision,K_CORR_collision,& & WF_phase,n_BS_blks,BS_blk,BS_T_grp,BSK_IO_mode,BSK_IO_sum_value,& -& BS_nT_grps,BS_blks_free,l_BS_ares_from_res,& +& BS_nT_grps,BS_blks_free,l_BS_ares_from_res,BS_K_has_been_calculated_loaded,& & l_BSE_minimize_memory,l_BSE_restart,l_BSE_kernel_complete,& & BS_perturbative_SOC,BS_K_cutoff,BS_max_val,l_BS_magnons use collision_el, ONLY:elemental_collision_free use IO_int, ONLY:io_control - use IO_m, ONLY:REP,OP_WR,RD,WR_CL,OP_APP,deliver_IO_error_message,WR + use IO_m, ONLY:REP,OP_WR,RD,WR,WR_CL,OP_APP,io_BS_K,deliver_IO_error_message use TDDFT, ONLY:FXC_K_diagonal,F_xc_gspace,FXC_n_g_corr,io_BS_Fxc, & & FXC_mode,tddft_wf_t,l_Fxc_from_Vxc use xc_functionals,ONLY:V_xc,F_xc,F_xc_mat,magn,XC_potential_driver @@ -396,7 +395,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! if (BS_blk_done(i_block)) m_steps=m_steps-i_steps ! - if (.not. (l_bss.or.l_partial_kernel_loaded) ) then + if ( (.not.l_partial_kernel_loaded) .and. io_BS_K .and. l_write_kernel_step) then ! if (BS_blk_done(i_block) .or. BS_blk_todo) call K_block_free(i_block) ! @@ -463,7 +462,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) if(l_partial_kernel_loaded.and.l_write_kernel) then call io_control(ACTION=WR,ID=ID) call io_BS_PAR_block(iq,i_block,ID,"full") - if (.not.l_bss) call K_block_free(i_block) + if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block) endif #endif cycle @@ -810,7 +809,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR,COM=REP,SEC=(/i_block+1/),ID=ID) io_BS_err=io_BS(iq,X,ID) #endif - if (.not.l_bss) call K_block_free(i_block) + if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block) endif ! call live_timing(steps=i_steps) @@ -876,6 +875,8 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR_CL,COM=REP,ID=ID_head) call io_control(ACTION=WR_CL,COM=REP,ID=ID) call io_BS_PAR_free(ID_head,ID,"full",.true.) + ! In this mode the blocks are written to disk after each step and the memory is freed + if (io_BS_K.and.l_write_kernel_step) BS_K_has_been_calculated_loaded=.false. #else call io_control(ACTION=WR_CL,COM=REP,SEC=(/n_BS_blks+2/),ID=ID) io_BS_err=io_BS(iq,X,ID) diff --git a/src/bse/K_solvers.F b/src/bse/K_solvers.F index 9408d1313f..370fbfa78b 100644 --- a/src/bse/K_solvers.F +++ b/src/bse/K_solvers.F @@ -31,9 +31,14 @@ subroutine K_solvers(iq,Ken,Xk,q,X_static,W_bss) type(w_samp) ::W_bss integer ::iq ! - ! Check first if the BS database has been calculated/loaded in K.F + integer :: ID(3) + logical :: l_partial_kernel_loaded ! - if (.not. BS_K_has_been_calculated_loaded ) return + ! If the BS database was not loaded in memory, call K_restart + ! + if (.not. BS_K_has_been_calculated_loaded ) call K_restart(iq,X_static,ID(1),ID(2),ID(3),l_partial_kernel_loaded) + ! + if (.not. BS_K_has_been_calculated_loaded ) call error("Something went wrong in K_restart, cannot proceed with solver") ! call section('-','BSE solver(s) @q'//trim(intc(iq))) ! From c1d2561506cbabf55670dbf966dfca06a3aec7d0 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sun, 16 Jun 2024 16:44:37 +0200 Subject: [PATCH 004/112] Version 5.2.0, Revision 23242, Hash 10f7cbbc15 MODIFIED * configure include/version/version.m4 modules/mod_BS.F Changes: - Subroutine for cleaning all blocks uses newly created subruntine which cleans single block Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/modules/mod_BS.F | 3 +-- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 99c67e5a4b..f42647efec 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23241 h.2243a00016. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23242 h.10f7cbbc15. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23241 h.2243a00016' -PACKAGE_STRING='Yambo 5.2.0 r.23241 h.2243a00016' +PACKAGE_VERSION='5.2.0 r.23242 h.10f7cbbc15' +PACKAGE_STRING='Yambo 5.2.0 r.23242 h.10f7cbbc15' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23241 h.2243a00016 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23242 h.10f7cbbc15 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23241 h.2243a00016:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23242 h.10f7cbbc15:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23241 h.2243a00016 +Yambo configure 5.2.0 r.23242 h.10f7cbbc15 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23241 h.2243a00016, which was +It was created by Yambo $as_me 5.2.0 r.23242 h.10f7cbbc15, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23241" -SHASH="2243a00016" +SREVISION="23242" +SHASH="10f7cbbc15" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23241 h.2243a00016, which was +This file was extended by Yambo $as_me 5.2.0 r.23242 h.10f7cbbc15, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23241 h.2243a00016 +Yambo config.status 5.2.0 r.23242 h.10f7cbbc15 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 93428adb5c..b040a37bcc 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23241 h.2243a00016, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23242 h.10f7cbbc15, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23241" -SHASH="2243a00016" +SREVISION="23242" +SHASH="10f7cbbc15" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/modules/mod_BS.F b/src/modules/mod_BS.F index a7803bc907..de9a3a552e 100644 --- a/src/modules/mod_BS.F +++ b/src/modules/mod_BS.F @@ -325,8 +325,7 @@ subroutine BS_blks_free(i_BS_mat) do iB=1,n_BS_blks if(i_BS_mat/=BS_blk(iB)%ira_k) cycle if(.not.allocated(BS_blk(iB)%mat)) cycle - YAMBO_FREE(BS_blk(iB)%mat) - deallocate(BS_blk(iB)%done) + call K_block_free( iB ) enddo end subroutine ! From d87719500132b6a3eceba940c06a6ab1cfaeb8d3 Mon Sep 17 00:00:00 2001 From: Blanca Mellado Pinto Date: Tue, 28 May 2024 14:59:03 +0200 Subject: [PATCH 005/112] Use new slepc interface for BSE --- src/bse/K_diago_driver.F | 18 +++--- src/bse/K_stored_in_a_nest_matrix.F | 93 ++++++++++++++++------------- src/linear_algebra/MATRIX_slepc.F | 18 +++--- src/modules/SET_defaults.F | 3 +- src/modules/mod_BS_solvers.F | 1 + 5 files changed, 77 insertions(+), 56 deletions(-) diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index dab2e09542..ae61143e0a 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -46,7 +46,8 @@ subroutine K_diago_driver(iq,W,X_static) use slepcepsdef use petscmatdef ! - use BS_solvers, ONLY:BSS_slepc_matrix_format,Slepc_v,BS_HAYVEC_free + use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_custom,& +& Slepc_v,BS_HAYVEC_free #endif use BS, ONLY:l_BS_kerr,l_BS_magnons,l_BS_photolum,l_BS_ares_from_res use MAGNONS, ONLY:BSS_MAGN_free @@ -182,24 +183,27 @@ subroutine K_diago_driver(iq,W,X_static) if(l_slepc) then ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication ! using the K_multiply_by_V function used in the Haydock method - if (BSS_slepc_matrix_format=="shell") then + if (BSS_slepc_matrix_format=="shell") then call K_shell_matrix(i_BS_mat,slepc_mat) ! 2. Here we create a distributed PETSC matrix from the BS_blks else if (BSS_slepc_matrix_format=="explicit") then if (BS_K_coupling.and.l_BS_ares_from_res) then - ! 2.1. With memory optimization using nest matrix (only possible for the coupling case) - call K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) + ! 2.1. With memory optimization using nest matrix (only possible for the coupling case) + call K_stored_in_a_nest_matrix(i_BS_mat,.FALSE.,slepc_mat) + BSS_slepc_custom=.TRUE. else - ! 2.2. Explicit PETSc matrix for the rest of the cases + ! 2.2. Explicit PETSc matrix for the rest of the cases call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) endif + else if (BSS_slepc_matrix_format=="nest-debug".AND.BS_K_coupling.AND.l_BS_ares_from_res) then + call K_stored_in_a_nest_matrix(i_BS_mat,.TRUE.,slepc_mat) ! 2.3 No optimization of memory for the coupling case (debug) else if (BSS_slepc_matrix_format=="explicit-debug") then call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! Default option is to use PetscShell - else + else call K_shell_matrix(i_BS_mat,slepc_mat) - endif + endif endif #endif ! diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index a639b06602..20597c50f1 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -44,7 +44,7 @@ subroutine ignore_petsc_error_handler(comm,line,fun,file,n,p,mess,ctx,ierr) return end subroutine ignore_petsc_error_handler -subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) +subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! ! BS_K_coupling and l_BS_ares_from_res are assumed TRUE ! @@ -73,6 +73,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) implicit none ! integer, intent(in) :: i_BS_mat + logical, intent(in) :: nest_debug Mat, intent(out) :: slepc_mat Mat :: RT,CHT Mat :: matArray(4) @@ -176,46 +177,56 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) call MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY,ierr) call MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY,ierr) ! - ! Create the two shell submatrices and define the required operations - ! - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,RT,ierr) - if (have_cuda) then -#ifdef PETSC_HAVE_CUDA - call MatSetVecType(RT,VECCUDA,ierr) -#endif - endif - call MatShellSetOperation(RT,MATOP_GET_DIAGONAL,RT_get_diagonal,ierr) - call MatShellSetOperation(RT,MATOP_MULT,RT_mat_mult,ierr) - call MatShellSetOperation(RT,MATOP_MULT_TRANSPOSE,RT_mat_mult_transpose,ierr) - call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) - call MatShellSetOperation(RT,MATOP_MULT_HERMITIAN_TRANSPOSE,RT_mat_mult_hermitian_transpose,ierr) - call PetscPopErrorHandler(ierr) - ! - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,CHT,ierr) - if (have_cuda) then -#ifdef PETSC_HAVE_CUDA - call MatSetVecType(CHT,VECCUDA,ierr) -#endif - endif - call MatShellSetOperation(CHT,MATOP_GET_DIAGONAL,CHT_get_diagonal,ierr) - call MatShellSetOperation(CHT,MATOP_MULT,CHT_mat_mult,ierr) - call MatShellSetOperation(CHT,MATOP_MULT_TRANSPOSE,CHT_mat_mult_transpose,ierr) - call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) - call MatShellSetOperation(CHT,MATOP_MULT_HERMITIAN_TRANSPOSE,CHT_mat_mult_hermitian_transpose,ierr) - call PetscPopErrorHandler(ierr) - ! - ! Build the nest matrix - ! - matArray(1) = R - matArray(2) = C - matArray(3) = CHT - matArray(4) = RT - itwo = 2 - call MatCreateNest(PETSC_COMM_WORLD,itwo,PETSC_NULL_INTEGER,itwo,PETSC_NULL_INTEGER,matArray,slepc_mat,ierr) - if (have_cuda) then -#ifdef PETSC_HAVE_CUDA - call MatSetVecType(slepc_mat,VECCUDA,ierr) -#endif + if (.NOT.nest_debug) then + ! + ! Folded spectrum + ! + call MatCreateBSE(R,C,slepc_mat,ierr); + else + ! + ! Nested matrix + ! + ! Create the two shell submatrices and define the required operations + ! + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,RT,ierr) + if (have_cuda) then + #ifdef PETSC_HAVE_CUDA + call MatSetVecType(RT,VECCUDA,ierr) + #endif + endif + call MatShellSetOperation(RT,MATOP_GET_DIAGONAL,RT_get_diagonal,ierr) + call MatShellSetOperation(RT,MATOP_MULT,RT_mat_mult,ierr) + call MatShellSetOperation(RT,MATOP_MULT_TRANSPOSE,RT_mat_mult_transpose,ierr) + call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) + call MatShellSetOperation(RT,MATOP_MULT_HERMITIAN_TRANSPOSE,RT_mat_mult_hermitian_transpose,ierr) + call PetscPopErrorHandler(ierr) + ! + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,CHT,ierr) + if (have_cuda) then + #ifdef PETSC_HAVE_CUDA + call MatSetVecType(CHT,VECCUDA,ierr) + #endif + endif + call MatShellSetOperation(CHT,MATOP_GET_DIAGONAL,CHT_get_diagonal,ierr) + call MatShellSetOperation(CHT,MATOP_MULT,CHT_mat_mult,ierr) + call MatShellSetOperation(CHT,MATOP_MULT_TRANSPOSE,CHT_mat_mult_transpose,ierr) + call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) + call MatShellSetOperation(CHT,MATOP_MULT_HERMITIAN_TRANSPOSE,CHT_mat_mult_hermitian_transpose,ierr) + call PetscPopErrorHandler(ierr) + ! + ! Build the nest matrix + ! + matArray(1) = R + matArray(2) = C + matArray(3) = CHT + matArray(4) = RT + itwo = 2 + call MatCreateNest(PETSC_COMM_WORLD,itwo,PETSC_NULL_INTEGER,itwo,PETSC_NULL_INTEGER,matArray,slepc_mat,ierr) + if (have_cuda) then + #ifdef PETSC_HAVE_CUDA + call MatSetVecType(slepc_mat,VECCUDA,ierr) + #endif + endif endif ! end subroutine K_stored_in_a_nest_matrix diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 51eace2d72..4d3a69432b 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -27,7 +27,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm use stderr, ONLY : intc use BS_solvers, ONLY : BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_maxit,& & BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_precondition,& - & BSS_slepc_approach + & BSS_slepc_approach,BSS_slepc_custom ! use petscsys use petscmat @@ -103,12 +103,15 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! !Set operators. In this case, it is a standard eigenvalue problem ! - call EPSSetOperators(eps,M_slepc,PETSC_NULL_MAT,ierr) + call EPSSetOperators(eps,M_slepc,PETSC_NULL_MAT,ierr) if( present(V_left)) then - ! To do: to check if it can be cast in the form of a generalized hermitian problem - call EPSSetProblemType(eps,EPS_NHEP,ierr) - call EPSSetFromOptions(eps,ierr) - call EPSSetTwoSided(eps,PETSC_TRUE,ierr) + if (BSS_slepc_custom) then + call EPSSetProblemType(eps,EPS_BSE,ierr) + else + ! To do: to check if it can be cast in the form of a generalized hermitian problem + call EPSSetProblemType(eps,EPS_NHEP,ierr) + call EPSSetTwoSided(eps,PETSC_TRUE,ierr) + endif else call EPSSetProblemType(eps,EPS_HEP,ierr) endif @@ -229,7 +232,8 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm !Set monitor call EPSMonitorSet(eps,MyEPSMonitor,0,PETSC_NULL_FUNCTION,ierr) ! - + call EPSSetFromOptions(eps,ierr) + ! ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! Solve the eigensystem ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/modules/SET_defaults.F b/src/modules/SET_defaults.F index ae470e2b79..4b2b2c9992 100644 --- a/src/modules/SET_defaults.F +++ b/src/modules/SET_defaults.F @@ -54,7 +54,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) use descriptors,ONLY:IO_desc_reset #if defined _SLEPC && !defined _NL use BS_solvers, ONLY:BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_maxit,& - & BSS_slepc_precondition,BSS_slepc_approach,BSS_slepc_matrix_format + & BSS_slepc_precondition,BSS_slepc_approach,BSS_slepc_matrix_format, BSS_slepc_custom #endif use BS, ONLY:BS_n_g_W,BS_eh_en,BS_identifier,BS_q,BS_eh_win,MAX_BSK_LIN_size,& & BS_K_dim,BS_not_const_eh_f,BSK_mode,l_BSE_kernel_complete,& @@ -474,6 +474,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) BSS_slepc_ncv=0 BSS_slepc_tol=1E-6_SP BSS_slepc_target_E=0._SP + BSS_slepc_custom=.FALSE. #endif ! ! TDDFT diff --git a/src/modules/mod_BS_solvers.F b/src/modules/mod_BS_solvers.F index 334b4cf988..96dfb805ff 100644 --- a/src/modules/mod_BS_solvers.F +++ b/src/modules/mod_BS_solvers.F @@ -97,6 +97,7 @@ module BS_solvers real(SP) :: BSS_slepc_target_E !find eigenvalues close to this energy character(schlen):: BSS_slepc_matrix_format !matrix type ("shell","explicit","explicit-debug") logical :: BSS_slepc_double_grp !duplicate the number of groups for slepc shells solver + logical :: BSS_slepc_custom !use a slepc BSE specific solver ! ! Solvers (Inversion) !========= From b086bd6a9998e6fa7efa686e1d5b4933ea8a10bc Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 27 Jun 2024 12:42:07 +0200 Subject: [PATCH 006/112] Version 5.2.0, Revision 23256, Hash b06be9e3ad MODIFIED * configure include/version/version.m4 Changes: - [yambo]: configure re-generated after merge Patch sent by: Davide Sangalli --- configure | 56 ++++++++++++++++++++++++++++---------- include/version/version.m4 | 6 ++-- 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/configure b/configure index 32999844c6..078d70a574 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23202 h.d35fae3f4e. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23256 h.b06be9e3ad. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23202 h.d35fae3f4e' -PACKAGE_STRING='Yambo 5.2.0 r.23202 h.d35fae3f4e' +PACKAGE_VERSION='5.2.0 r.23256 h.b06be9e3ad' +PACKAGE_STRING='Yambo 5.2.0 r.23256 h.b06be9e3ad' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -772,6 +772,8 @@ def_scalapack enable_scalapack SCALAPACK_LIBS BLACS_LIBS +with_petsc_branch +with_slepc_branch internal_slepc internal_petsc compile_slepc @@ -988,6 +990,8 @@ with_petsc_incs with_petsc_path with_petsc_libdir with_petsc_includedir +with_slepc_branch +with_petsc_branch enable_par_linalg with_blacs_libs with_scalapack_libs @@ -1600,7 +1604,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23202 h.d35fae3f4e to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23256 h.b06be9e3ad to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1670,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23202 h.d35fae3f4e:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23256 h.b06be9e3ad:";; esac cat <<\_ACEOF @@ -1751,6 +1755,8 @@ Optional Packages: --with-petsc-libdir= Path to the Petsc lib directory --with-petsc-includedir= Path to the Petsc include directory + --with-slepc-branch= Use the of the slepc repository. + --with-petsc-branch= Use the of the petsc repository. --with-blacs-libs=(libs|mkl) Use BLACS libraries or setup MKL --with-scalapack-libs=(libs|mkl) Use SCALAPACK libraries or setup MKL @@ -1876,7 +1882,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23202 h.d35fae3f4e +Yambo configure 5.2.0 r.23256 h.b06be9e3ad generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2511,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23202 h.d35fae3f4e, which was +It was created by Yambo $as_me 5.2.0 r.23256 h.b06be9e3ad, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3269,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23202" -SHASH="d35fae3f4e" +SREVISION="23256" +SHASH="b06be9e3ad" @@ -12737,6 +12743,24 @@ then : fi + +# Check whether --with-slepc-branch was given. +if test ${with_slepc_branch+y} +then : + withval=$with_slepc_branch; +else $as_nop + with_slepc_branch=none +fi + + +# Check whether --with-petsc-branch was given. +if test ${with_petsc_branch+y} +then : + withval=$with_petsc_branch; +else $as_nop + with_petsc_branch=none +fi + # def_slepc="" petsc="no" @@ -13129,6 +13153,8 @@ fi + + # # ============================================================================ @@ -15410,7 +15436,7 @@ if test x"$enable_nvtx" = "x"; then enable_nvtx="no" ; fi # def_cuda="" CUDA_FLAGS="" -CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" +CUDA_LIBS="-cudalib=cufft,cublas,cusolver" # Available cc options: # cc20 Compile for compute capability 2.0 @@ -15432,12 +15458,12 @@ CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" printf %s "checking for CUDA support... " >&6; } if test x"$enable_cuda" = "xyes" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=cuda9.0,cc70,nollvm $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=cuda9.0,cc70,nollvm $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } elif ! test x"$enable_cuda" = "x" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=$enable_cuda $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=$enable_cuda $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } fi @@ -15581,6 +15607,7 @@ PETSC_check="-" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi @@ -15589,6 +15616,7 @@ SLEPC_check="-" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -16578,7 +16606,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23202 h.d35fae3f4e, which was +This file was extended by Yambo $as_me 5.2.0 r.23256 h.b06be9e3ad, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16670,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23202 h.d35fae3f4e +Yambo config.status 5.2.0 r.23256 h.b06be9e3ad configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 4970e907be..e2feb3b490 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23255 h.94511a32c9, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23256 h.b06be9e3ad, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23255" -SHASH="94511a32c9" +SREVISION="23256" +SHASH="b06be9e3ad" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From c185a553420073f6363ce45f855d52c4bdfbfa5d Mon Sep 17 00:00:00 2001 From: Blanca Mellado Pinto Date: Thu, 27 Jun 2024 12:40:51 +0200 Subject: [PATCH 007/112] Creation of the "shell-nest" matrix This new type is a "nest" matrix for BSE with two shell blocks R and C. Requires Mult operations for the shell blocks. --- src/bse/K_shell_matrix.F | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/bse/K_shell_matrix.F b/src/bse/K_shell_matrix.F index 111f0af858..a680fd0bb7 100644 --- a/src/bse/K_shell_matrix.F +++ b/src/bse/K_shell_matrix.F @@ -11,7 +11,7 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! function using the routine K_multiply_by_V ! use BS, ONLY:BS_H_dim, BS_nT_grps,BS_res_ares_n_mat,BS_K_coupling,& -& BS_Blocks_symmetrize_K +& BS_Blocks_symmetrize_K,l_BS_ares_from_res ! ! | (K_r) (cI*K_c) | ! K = | | @@ -35,6 +35,7 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! integer, intent(in) :: i_BS_mat Mat, intent(out) :: slepc_mat + Mat :: slepc_mat_R,slepc_mat_C ! integer :: i_B,domk(BS_nT_grps) PetscInt :: SL_H_dim,SL_K_dim @@ -62,19 +63,28 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! TODO: In the future it should be done acording to the BS parallelization ! to avoid the scattering vi (distributed) -> x (local) in K_multiply_by_V_slepc ! - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim,SL_H_dim,0,slepc_mat,ierr) - ! Are the following needed ?? - !call MatAssemblyBegin(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) - !call MatAssemblyEnd(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) - ! - call MatShellSetOperation(slepc_mat,MATOP_MULT,K_multiply_by_V_slepc,ierr) if(BS_K_coupling) then - call MatShellSetOperation(slepc_mat,MATOP_MULT_TRANSPOSE,K_multiply_by_V_transpose_slepc,ierr) - call MatSetOption(slepc_mat,MAT_HERMITIAN,PETSC_FALSE,ierr) + if (l_BS_ares_from_res) then + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,slepc_mat_R,ierr) + call MatSetOption(slepc_mat_R,MAT_HERMITIAN,PETSC_TRUE,ierr) + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,slepc_mat_C,ierr) + call MatSetOption(slepc_mat_C,MAT_SYMMETRIC,PETSC_TRUE,ierr) + call MatShellSetOperation(slepc_mat_R,MATOP_MULT,K_multiply_by_V_slepc_R,ierr) + call MatShellSetOperation(slepc_mat_C,MATOP_MULT,K_multiply_by_V_slepc_C,ierr) + call MatCreateBSE(slepc_mat_R,slepc_mat_C,slepc_mat,ierr) + call MatDestroy(slepc_mat_R,ierr) + call MatDestroy(slepc_mat_C,ierr) + else + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim,SL_H_dim,0,slepc_mat,ierr) + call MatShellSetOperation(slepc_mat,MATOP_MULT,K_multiply_by_V_slepc,ierr) + call MatShellSetOperation(slepc_mat,MATOP_MULT_TRANSPOSE,K_multiply_by_V_transpose_slepc,ierr) + call MatSetOption(slepc_mat,MAT_HERMITIAN,PETSC_FALSE,ierr) + endif else + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim,SL_H_dim,0,slepc_mat,ierr) + call MatShellSetOperation(slepc_mat,MATOP_MULT,K_multiply_by_V_slepc,ierr) call MatSetOption(slepc_mat,MAT_HERMITIAN,PETSC_TRUE,ierr) endif - call MatSetUp(slepc_mat,ierr) ! ! Symmetrize BS_blk%mat to be used in K_multiply_by_V ! From 695622169232f2433885792aed86ed15eac25f98 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 27 Jun 2024 17:22:51 +0200 Subject: [PATCH 008/112] Version 5.2.0, Revision 23271, Hash 7bd3174f68 MODIFIED * include/version/version.m4 bse/K_driver.F bse/K_driver_init.F bse/K_multiply_by_V.F bse/K_shell_matrix.F Changes: - [yambo] Changing K_multiply_by_V structure Patch sent by: Davide Sangalli --- include/version/version.m4 | 6 +- src/bse/K_driver.F | 7 +- src/bse/K_driver_init.F | 7 +- src/bse/K_multiply_by_V.F | 521 ++++++++++++++++++++++--------------- src/bse/K_shell_matrix.F | 3 + 5 files changed, 329 insertions(+), 215 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index 0a81c64a2a..8c7d02c475 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23256 h.c1d2561506, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23271 h.7bd3174f68, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23256" -SHASH="c1d2561506" +SREVISION="23271" +SHASH="7bd3174f68" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_driver.F b/src/bse/K_driver.F index 919c984d78..62ca07f5ed 100644 --- a/src/bse/K_driver.F +++ b/src/bse/K_driver.F @@ -16,7 +16,7 @@ subroutine K_driver(Xen,Ken,Xk,q,X_static_pp,Xw,Dip) use DIPOLES, ONLY:DIPOLE_t use IO_int, ONLY:io_control use IO_m, ONLY:OP_RD_CL,REP - use BS_solvers, ONLY:BSS_n_freqs,BSS_er,BSS_dr,BSS_mode,BSS_damp_reference,BSS_q0,BSS_uses_DbGd,& + use BS_solvers, ONLY:BSS_n_freqs,BSS_er,BSS_dr,BSS_mode,BSS_damp_reference,BSS_q0,& & BSS_Q_dir,BSS_E_dir use BS, ONLY:BS_bands,BS_q,BS_n_g_exch,BS_res_K_corr,BS_n_g_W,BS_cpl_K_corr,& & BS_Blocks_and_Transitions_free,BSqpts,O_ng @@ -79,11 +79,6 @@ subroutine K_driver(Xen,Ken,Xk,q,X_static_pp,Xw,Dip) ! Observables initialization !============================ call K_observables(W_bss) - ! - ! Double Grid support - !===================== - BSS_uses_DbGd = ((Ken%FG%nb>=BS_bands(2)) .and. (index(BSS_mode,'i')/=0)) & -& .or. ((Ken%FG%nb>=BS_bands(2)) .and. (index(BSS_mode,'h')/=0)) ! ! PARALLEL SETUP !================ diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index f92637f164..4a53b7e08d 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -12,7 +12,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) use parser_m, ONLY:parser use parallel_m, ONLY:PARALLEL_default_mode use stderr, ONLY:STRING_match - use BS_solvers, ONLY:BSS_mode,BSS_slepc_matrix_format,BSS_uses_DbGd,& + use BS_solvers, ONLY:BSS_mode,BSS_slepc_matrix_format,BSS_uses_DbGd,BSS_uses_FKE,& & BSS_slepc_double_grp,run_Slepc,BSS_mode, & & l_abs_prop_chi_bse,l_eels_can_be_computed,l_eels_from_inversion use BS, ONLY:BSE_L_kind,BSE_mode,BS_K_is_ALDA,BS_dip_size,l_BSE_minimize_memory,BS_perturbative_SOC,& @@ -258,6 +258,9 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! ! Double Grid support !===================== - BSS_uses_DbGd = (Ken%FG%nb>=BS_bands(2)).and.STRING_match(BSS_mode,'i') + BSS_uses_DbGd = ((Ken%FG%nb>=BS_bands(2)) .and. (index(BSS_mode,'i')/=0)) & + & .or. ((Ken%FG%nb>=BS_bands(2)) .and. (index(BSS_mode,'h')/=0)) + ! + call parser('BSS_FKE',BSS_uses_FKE) ! end subroutine diff --git a/src/bse/K_multiply_by_V.F b/src/bse/K_multiply_by_V.F index ca9b7e189b..4713a1acfb 100644 --- a/src/bse/K_multiply_by_V.F +++ b/src/bse/K_multiply_by_V.F @@ -7,17 +7,15 @@ ! subroutine K_multiply_by_V(Vi,Vo,iter_par) ! - ! Given K distributed on the processors, and Vi distributed on the processors - ! multiply K by Vi. + ! Given K distributed on the processors, and Vi distributed on the processors, multiply K by Vi. ! ! See mod_BS for details on the K structure - ! - use pars, ONLY:SP,cONE,cZERO,cI - use parallel_int, ONLY:PP_redux_wait + ! + use pars, ONLY:cZERO,cI,SP use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_uses_DbGd,FG_factor,BSS_uses_FKE - use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res - use wrapper, ONLY:M_by_V + use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks + use BS_solvers, ONLY:Haydock_vector,BSS_uses_FKE,BSS_slepc_double_grp + use parallel_int, ONLY:PP_redux_wait ! implicit none ! @@ -26,18 +24,12 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par) ! ! Work Space ! - integer ::i_B,i_Tk,i_Tp,i_g,i_ColFG,ColsFG_Tk,ColsFG_Tp - complex(SP) ::alpha - complex(SP) ::FG_factor_c - complex(SP),allocatable ::vtmp_fke(:) - ! - BSS_uses_FKE = .false. + complex(SP) :: alpha + integer :: i_B,i_Tk,i_Tp,i_g,ColsFG_Tk,ColsFG_Tp ! if(.not.BSS_Slepc_double_grp) alpha=-real(iter_par,SP)*cI if( BSS_Slepc_double_grp) alpha=-real(iter_par,SP) - ! - if(BSS_uses_FKE) FG_factor_c = cmplx(FG_factor,0._SP) - ! + ! forall(i_g=1:BS_nT_grps,PAR_IND_T_Haydock%element_1D(i_g)) Vo(i_g)%fragment = cZERO ! do i_B=1,n_BS_blks @@ -50,204 +42,27 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par) select case(BS_blk(i_B)%mode) case("R") ! - if (.not. BSS_uses_FKE) then !Diagonal Kernel Extension - ! - ! Resonant part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tk)%fragment(:,i_ColFG),1) - enddo - ! - ! Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tp)%fragment(:,i_ColFG),1) - enddo - end if - ! - else !Full kernel extension - ! - ! Resonant part - ! - allocate(vtmp_fke(BS_blk(i_B)%size(1))) - vtmp_fke = cZERO - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi(i_Tp)%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tk - Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - ! Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - allocate(vtmp_fke(BS_blk(i_B)%size(2))) - vtmp_fke = cZERO - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi(i_Tk)%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tp - Vo(i_Tp)%fragment(:,i_ColFG) = Vo(i_Tp)%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - end if - ! - endif - ! - ! Add the energy diffs on the diagonal + ! Resonant part ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi(i_Tk)%fragment(:,i_ColFG) - enddo - end if + if ( BSS_uses_FKE) call K_multiply_by_V_R_FKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + if (.not.BSS_uses_FKE) call K_multiply_by_V_R_DKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) ! case("C") ! - ! IA (2022/01/19): - ! Preliminary implementation of DbGd into coupling case does not work - to be tested - ! - if (BSS_uses_DbGd) call error("[Haydock] Double Grid method not yet implemented in & - &coupling (pseudo-Hermitian) case of Haydock solver") - ! - if (l_BS_ares_from_res) then - ! - ! Coupling part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & conjg(Vi(i_Tp)%fragment(:,i_ColFG)),1,cONE,& - & Vo(i_Tk)%fragment(:,i_ColFG),1) - enddo - ! - ! Coupling part can be symmetric - ! - if ( i_Tk.ne.i_Tp ) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('t',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & conjg(Vi(i_Tk)%fragment(:,i_ColFG)),1,cONE,& - & Vo(i_Tp)%fragment(:,i_ColFG),1) - enddo - end if - ! - ! - ! - else - ! - ! Coupling part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tk)%fragment(:,i_ColFG),1) - enddo - ! - ! Anti-coupling Q = -conjg(C) - ! - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),-cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tp)%fragment(:,i_ColFG),1) - enddo - ! - endif + ! Coupling part ! + call K_multiply_by_V_C(Vi(i_Tp),Vo(i_Tk),alpha,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) ! case("A") ! - if (.not. BSS_uses_FKE) then !Diagonal Kernel Extension - ! - ! Anti-Resonant part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tk)%fragment(:,i_ColFG),1) - enddo - ! - ! Anti-Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& - & Vo(i_Tp)%fragment(:,i_ColFG),1) - enddo - end if - ! - else !Full Kernel Extension - ! - ! Anti-Resonant part - ! - allocate(vtmp_fke(BS_blk(i_B)%size(1))) - vtmp_fke = cZERO - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi(i_Tp)%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tk - Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - ! Anti-Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - ! - allocate(vtmp_fke(BS_blk(i_B)%size(2))) - vtmp_fke = cZERO - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi(i_Tk)%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tp - Vo(i_Tp)%fragment(:,i_ColFG) = Vo(i_Tp)%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - end if - ! - endif - ! - ! Add the energy diffs on the diagonal + ! Anti-Resonant part ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi(i_Tk)%fragment(:,i_ColFG) - enddo - end if + if ( BSS_uses_FKE) call K_multiply_by_V_A_FKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + if (.not.BSS_uses_FKE) call K_multiply_by_V_A_DKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) ! end select ! - end do + enddo ! #if defined _MPI do i_g=1,BS_nT_grps @@ -256,4 +71,302 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par) enddo #endif ! -end subroutine +end subroutine K_multiply_by_V +! +! +subroutine K_multiply_by_V_R_DKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! + use pars, ONLY:cONE + use BS_solvers, ONLY:Haydock_vector + use BS, ONLY:BS_blk,BS_T_grp + use wrapper, ONLY:M_by_V + ! + implicit none + ! + type(Haydock_vector) :: Vi,Vo + integer, intent(in) :: i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp + ! + ! Work Space + ! + integer :: i_ColFG + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + ! + ! Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + end if + ! + ! Add the energy diffs on the diagonal + ! + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) + enddo + end if + ! +end subroutine K_multiply_by_V_R_DKE +! +! +subroutine K_multiply_by_V_A_DKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! + use pars, ONLY:cONE + use BS_solvers, ONLY:Haydock_vector + use BS, ONLY:BS_blk,BS_T_grp + use wrapper, ONLY:M_by_V + ! + implicit none + ! + type(Haydock_vector) :: Vi,Vo + integer, intent(in) :: i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp + ! + ! Work Space + ! + integer :: i_ColFG + ! + ! Anti-Resonant part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + ! + ! Anti-Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + end if + ! + ! Add the energy diffs on the diagonal + ! + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) + enddo + end if + ! +end subroutine K_multiply_by_V_A_DKE +! +! +subroutine K_multiply_by_V_R_FKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! + use pars, ONLY:SP,cONE,cZERO,cI + use BS_solvers, ONLY:Haydock_vector,FG_factor + use BS, ONLY:BS_blk,BS_T_grp + use wrapper, ONLY:M_by_V + ! + implicit none + ! + type(Haydock_vector) ::Vi,Vo + integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp + ! + ! Work Space + ! + integer :: i_ColFG + complex(SP) :: FG_factor_c + complex(SP),allocatable ::vtmp_fke(:) + ! + FG_factor_c = cmplx(FG_factor,0._SP) + ! + ! Resonant part + ! + allocate(vtmp_fke(BS_blk(i_B)%size(1))) + vtmp_fke = cZERO + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + ! Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + allocate(vtmp_fke(BS_blk(i_B)%size(2))) + vtmp_fke = cZERO + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tp + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + end if + ! + ! Add the energy diffs on the diagonal + ! + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) + enddo + end if + ! +end subroutine K_multiply_by_V_R_FKE +! +! +subroutine K_multiply_by_V_A_FKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! + use pars, ONLY:SP,cONE,cZERO,cI + use BS_solvers, ONLY:Haydock_vector,FG_factor + use BS, ONLY:BS_blk,BS_T_grp + use wrapper, ONLY:M_by_V + ! + implicit none + ! + type(Haydock_vector) ::Vi,Vo + integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp + ! + ! Work Space + ! + integer :: i_ColFG + complex(SP) :: FG_factor_c + complex(SP),allocatable ::vtmp_fke(:) + ! + FG_factor_c = cmplx(FG_factor,0._SP) + ! + ! Anti-Resonant part + ! + allocate(vtmp_fke(BS_blk(i_B)%size(1))) + vtmp_fke = cZERO + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + ! Anti-Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + ! + allocate(vtmp_fke(BS_blk(i_B)%size(2))) + vtmp_fke = cZERO + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tp + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + end if + ! + ! Add the energy diffs on the diagonal + ! + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) + enddo + end if + ! +end subroutine K_multiply_by_V_A_FKE +! +! +subroutine K_multiply_by_V_C(Vi,Vo,alpha,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! + ! if l_BS_ares_from_res=true, then Vi is defined only in the resonant part + ! for the anti-resonant part, Vi(A)=alpha*Vi(R) + ! + use pars, ONLY:SP,cONE,cZERO,cI + use parallel_int, ONLY:PP_redux_wait + use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock + use BS_solvers, ONLY:Haydock_vector,BSS_uses_DbGd + use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res + use wrapper, ONLY:M_by_V + ! + implicit none + ! + complex(SP) ::alpha + type(Haydock_vector) ::Vi,Vo + integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp + ! + ! Work Space + ! + integer :: i_ColFG + ! + ! IA (2022/01/19): + ! Preliminary implementation of DbGd into coupling case does not work - to be tested + ! + if (BSS_uses_DbGd) call error("[Haydock] Double Grid method not yet implemented in & + & coupling (pseudo-Hermitian) case of Haydock solver") + ! + if (l_BS_ares_from_res) then + ! + ! Coupling part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & conjg(Vi%fragment(:,i_ColFG)),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + ! + ! Coupling part is symmetric + ! + if ( i_Tk.ne.i_Tp ) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('t',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & conjg(Vi%fragment(:,i_ColFG)),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + end if + ! + else + ! + ! Coupling part + ! + do i_ColFG=1,ColsFG_Tk + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + ! + ! Anti-coupling Q = -conjg(C) + ! + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),-cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi%fragment(:,i_ColFG),1,cONE,& + & Vo%fragment(:,i_ColFG),1) + enddo + ! + endif + ! + end subroutine K_multiply_by_V_C \ No newline at end of file diff --git a/src/bse/K_shell_matrix.F b/src/bse/K_shell_matrix.F index 111f0af858..bcabbdd590 100644 --- a/src/bse/K_shell_matrix.F +++ b/src/bse/K_shell_matrix.F @@ -67,6 +67,9 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) !call MatAssemblyBegin(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) !call MatAssemblyEnd(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) ! + ! To extend to the new solvers we need to define K_multiply_by_V for resonant and copupling part + ! The K_multuiply_by_V_transpose will not be needed anymore since we use the fact that R is hermitian and C is symmetric + ! call MatShellSetOperation(slepc_mat,MATOP_MULT,K_multiply_by_V_slepc,ierr) if(BS_K_coupling) then call MatShellSetOperation(slepc_mat,MATOP_MULT_TRANSPOSE,K_multiply_by_V_transpose_slepc,ierr) From b0d4e6ee34b06d3b034fc6eb1214cf1d7911bc2e Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 28 Jun 2024 08:13:09 +0200 Subject: [PATCH 009/112] Version 5.2.0, Revision 23278, Hash 2b7638aab7 MODIFIED * configure include/version/version.m4 bse/.objects bse/K_Haydock.F bse/K_diago_driver.F bse/K_driver_init.F bse/K_multiply_by_V.F bse/K_multiply_by_V_slepc.F bse/K_multiply_by_V_transpose_slepc.F bse/K_shell_matrix.F NEW * bse/K_multiply_by_V_slepc_nest.F Changes: - [yambo] First working version of nested slepc solver with shell approach Patch sent by: Davide Sangalli --- configure | 22 +- include/version/version.m4 | 6 +- src/bse/.objects | 2 +- src/bse/K_Haydock.F | 10 +- src/bse/K_diago_driver.F | 9 +- src/bse/K_driver_init.F | 2 +- src/bse/K_multiply_by_V.F | 534 +++++++++------------- src/bse/K_multiply_by_V_slepc.F | 16 +- src/bse/K_multiply_by_V_slepc_nest.F | 184 ++++++++ src/bse/K_multiply_by_V_transpose_slepc.F | 14 +- src/bse/K_shell_matrix.F | 6 +- 11 files changed, 444 insertions(+), 361 deletions(-) create mode 100644 src/bse/K_multiply_by_V_slepc_nest.F diff --git a/configure b/configure index 3410aa4eaf..c1011056a9 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23275 h.d1e2a5e1ff. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23278 h.2b7638aab7. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23275 h.d1e2a5e1ff' -PACKAGE_STRING='Yambo 5.2.0 r.23275 h.d1e2a5e1ff' +PACKAGE_VERSION='5.2.0 r.23278 h.2b7638aab7' +PACKAGE_STRING='Yambo 5.2.0 r.23278 h.2b7638aab7' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23275 h.d1e2a5e1ff to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23278 h.2b7638aab7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23275 h.d1e2a5e1ff:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23278 h.2b7638aab7:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23275 h.d1e2a5e1ff +Yambo configure 5.2.0 r.23278 h.2b7638aab7 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23275 h.d1e2a5e1ff, which was +It was created by Yambo $as_me 5.2.0 r.23278 h.2b7638aab7, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23275" -SHASH="d1e2a5e1ff" +SREVISION="23278" +SHASH="2b7638aab7" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23275 h.d1e2a5e1ff, which was +This file was extended by Yambo $as_me 5.2.0 r.23278 h.2b7638aab7, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23275 h.d1e2a5e1ff +Yambo config.status 5.2.0 r.23278 h.2b7638aab7 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index dd4d070b3d..6eecf064ae 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23275 h.d1e2a5e1ff, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23278 h.2b7638aab7, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23275" -SHASH="d1e2a5e1ff" +SREVISION="23278" +SHASH="2b7638aab7" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/.objects b/src/bse/.objects index a2f9ee2ab2..1f8fa40f46 100644 --- a/src/bse/.objects +++ b/src/bse/.objects @@ -1,6 +1,6 @@ #if defined _SLEPC && !defined _NL SLEPC_objects = K_stored_in_a_slepc_matrix.o K_shell_matrix.o K_stored_in_a_nest_matrix.o \ - K_multiply_by_V_slepc.o K_multiply_by_V_transpose_slepc.o + K_multiply_by_V_slepc.o K_multiply_by_V_slepc_nest.o K_multiply_by_V_transpose_slepc.o #endif #if defined _PAR_IO PARIO_objects = K_compress.o diff --git a/src/bse/K_Haydock.F b/src/bse/K_Haydock.F index d715448a5f..be2eef856b 100644 --- a/src/bse/K_Haydock.F +++ b/src/bse/K_Haydock.F @@ -260,7 +260,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) #endif enddo ! - if(velocity_correction) call K_multiply_by_V(V_tmp,V0,1) + if(velocity_correction) call K_multiply_by_V(V_tmp,V0,1,"all") ! if(use_left_and_right) then ! @@ -282,7 +282,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) #endif enddo ! - if(velocity_correction) call K_multiply_by_V(V_tmp,W0,1) + if(velocity_correction) call K_multiply_by_V(V_tmp,W0,1,"all") ! endif ! @@ -302,7 +302,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! Cf= cZERO ! - call K_multiply_by_V(V0,Vnp1,-1) + call K_multiply_by_V(V0,Vnp1,-1,"all") call K_dot_product(v0_mod_,V0,Vnp1,1) ! ! For the coupling case if A = -R* (l_BS_ares_from_res=.FALSE.), V0 = (u0, -iu0*) @@ -363,7 +363,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! !|Vn+1> = H |Vn> ! - call K_multiply_by_V(Vn,Vnp1,1) + call K_multiply_by_V(Vn,Vnp1,1,"all") ! ! A(n) = ! @@ -454,7 +454,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! !|Vn+1> = H |Vn> ! - call K_multiply_by_V(Vn,Vnp1,ItParity) + call K_multiply_by_V(Vn,Vnp1,ItParity,"all") ! ! B(n+1)= ^(1/2) (that is ^(1/2)) ! diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 5ed934489b..47ccd2efbe 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -188,9 +188,10 @@ subroutine K_diago_driver(iq,W,X_static) if(l_slepc) then ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication ! using the K_multiply_by_V function used in the Haydock method - if (BSS_slepc_matrix_format=="shell") then + if (index(BSS_slepc_matrix_format,"shell")>0) then + BSS_slepc_custom=(BSS_slepc_matrix_format=="shell").and.BS_K_coupling call K_shell_matrix(i_BS_mat,slepc_mat) - ! 2. Here we create a distributed PETSC matrix from the BS_blks + ! 2. Here we create a distributed PETSC matrix from the BS_blks else if (BSS_slepc_matrix_format=="explicit") then if (BS_K_coupling.and.l_BS_ares_from_res) then ! 2.1. With memory optimization using nest matrix (only possible for the coupling case) @@ -201,8 +202,8 @@ subroutine K_diago_driver(iq,W,X_static) call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) endif else if (BSS_slepc_matrix_format=="nest-debug".AND.BS_K_coupling.AND.l_BS_ares_from_res) then - call K_stored_in_a_nest_matrix(i_BS_mat,.TRUE.,slepc_mat) - ! 2.3 No optimization of memory for the coupling case (debug) + call K_stored_in_a_nest_matrix(i_BS_mat,.TRUE.,slepc_mat) + ! 2.3 No optimization of memory for the coupling case (debug) else if (BSS_slepc_matrix_format=="explicit-debug") then call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) else diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index 4a53b7e08d..d19f4b06ab 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -244,7 +244,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) #if defined _SLEPC && !defined _NL ! ! Special case, slepc with distributed matrix need to explicitly compute the anti-resonant block - l_slepc_special = index(BSS_mode,'s')/=0 .and. BS_K_coupling .and. (BSS_slepc_matrix_format=="shell") + l_slepc_special = index(BSS_mode,'s')/=0 .and. BS_K_coupling .and. (BSS_slepc_matrix_format=="shell-debug") ! ! The doubling is activated unless explicily imposed by input since slepc ! with shells requires the extended K_multiply_by_V for the non hermitian algorithm diff --git a/src/bse/K_multiply_by_V.F b/src/bse/K_multiply_by_V.F index 4713a1acfb..b06251864a 100644 --- a/src/bse/K_multiply_by_V.F +++ b/src/bse/K_multiply_by_V.F @@ -5,31 +5,44 @@ ! ! Authors (see AUTHORS file for details): AM MG DS IMA ! -subroutine K_multiply_by_V(Vi,Vo,iter_par) +subroutine K_multiply_by_V(Vi,Vo,iter_par,mode) ! - ! Given K distributed on the processors, and Vi distributed on the processors, multiply K by Vi. + ! Given K distributed on the processors, and Vi distributed on the processors + ! multiply K by Vi. ! ! See mod_BS for details on the K structure - ! - use pars, ONLY:cZERO,cI,SP - use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks - use BS_solvers, ONLY:Haydock_vector,BSS_uses_FKE,BSS_slepc_double_grp + ! + use pars, ONLY:SP,cONE,cZERO,cI use parallel_int, ONLY:PP_redux_wait + use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock + use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_uses_DbGd,FG_factor,BSS_uses_FKE + use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res + use wrapper, ONLY:M_by_V ! implicit none ! integer ::iter_par type(Haydock_vector) ::Vi(BS_nT_grps),Vo(BS_nT_grps) + character(*),intent(in)::mode ! ! Work Space ! - complex(SP) :: alpha - integer :: i_B,i_Tk,i_Tp,i_g,ColsFG_Tk,ColsFG_Tp + integer ::i_B,i_Tk,i_Tp,i_g,i_ColFG,ColsFG_Tk,ColsFG_Tp + complex(SP) ::alpha + complex(SP) ::FG_factor_c + complex(SP),allocatable ::vtmp_fke(:) ! - if(.not.BSS_Slepc_double_grp) alpha=-real(iter_par,SP)*cI - if( BSS_Slepc_double_grp) alpha=-real(iter_par,SP) + BSS_uses_FKE = .false. ! + if (trim(mode)=="C") then + alpha=cONE + else + if(.not.BSS_Slepc_double_grp) alpha=-real(iter_par,SP)*cI + if( BSS_Slepc_double_grp) alpha=-real(iter_par,SP) + endif + ! + if(BSS_uses_FKE) FG_factor_c = cmplx(FG_factor,0._SP) + ! forall(i_g=1:BS_nT_grps,PAR_IND_T_Haydock%element_1D(i_g)) Vo(i_g)%fragment = cZERO ! do i_B=1,n_BS_blks @@ -42,27 +55,208 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par) select case(BS_blk(i_B)%mode) case("R") ! - ! Resonant part + if (trim(mode)/="R".and.trim(mode)/="all") cycle + ! + if (.not. BSS_uses_FKE) then !Diagonal Kernel Extension + ! + ! Resonant part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tk)%fragment(:,i_ColFG),1) + enddo + ! + ! Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tp)%fragment(:,i_ColFG),1) + enddo + end if + ! + else !Full kernel extension + ! + ! Resonant part + ! + allocate(vtmp_fke(BS_blk(i_B)%size(1))) + vtmp_fke = cZERO + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi(i_Tp)%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tk + Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + ! Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + allocate(vtmp_fke(BS_blk(i_B)%size(2))) + vtmp_fke = cZERO + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi(i_Tk)%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tp + Vo(i_Tp)%fragment(:,i_ColFG) = Vo(i_Tp)%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + end if + ! + endif ! - if ( BSS_uses_FKE) call K_multiply_by_V_R_FKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - if (.not.BSS_uses_FKE) call K_multiply_by_V_R_DKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + ! Add the energy diffs on the diagonal + ! + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi(i_Tk)%fragment(:,i_ColFG) + enddo + end if ! case("C") ! - ! Coupling part + if (trim(mode)/="C".and.trim(mode)/="all") cycle + ! + ! IA (2022/01/19): + ! Preliminary implementation of DbGd into coupling case does not work - to be tested + ! + if (BSS_uses_DbGd) call error("[Haydock] Double Grid method not yet implemented in & + &coupling (pseudo-Hermitian) case of Haydock solver") + ! + if (l_BS_ares_from_res) then + ! + ! Coupling part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & conjg(Vi(i_Tp)%fragment(:,i_ColFG)),1,cONE,& + & Vo(i_Tk)%fragment(:,i_ColFG),1) + enddo + ! + ! Coupling part can be symmetric + ! + if ( i_Tk.ne.i_Tp ) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('t',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & conjg(Vi(i_Tk)%fragment(:,i_ColFG)),1,cONE,& + & Vo(i_Tp)%fragment(:,i_ColFG),1) + enddo + end if + ! + ! + ! + else + ! + ! Coupling part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tk)%fragment(:,i_ColFG),1) + enddo + ! + ! Anti-coupling Q = -conjg(C) + ! + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),-cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tp)%fragment(:,i_ColFG),1) + enddo + ! + endif ! - call K_multiply_by_V_C(Vi(i_Tp),Vo(i_Tk),alpha,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) ! case("A") ! - ! Anti-Resonant part + if (.not. BSS_uses_FKE) then !Diagonal Kernel Extension + ! + ! Anti-Resonant part + ! + do i_ColFG=1,ColsFG_Tk + if ( i_ColFG .gt. ColsFG_Tp ) cycle + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tp)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tk)%fragment(:,i_ColFG),1) + enddo + ! + ! Anti-Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + do i_ColFG=1,ColsFG_Tp + if ( i_ColFG .gt. ColsFG_Tk ) cycle + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & Vi(i_Tk)%fragment(:,i_ColFG),1,cONE,& + & Vo(i_Tp)%fragment(:,i_ColFG),1) + enddo + end if + ! + else !Full Kernel Extension + ! + ! Anti-Resonant part + ! + allocate(vtmp_fke(BS_blk(i_B)%size(1))) + vtmp_fke = cZERO + call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi(i_Tp)%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tk + Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + ! Anti-Resonant part is hermitian + ! + if (i_Tk.ne.i_Tp) then + ! + allocate(vtmp_fke(BS_blk(i_B)%size(2))) + vtmp_fke = cZERO + call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& + & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& + & sum(Vi(i_Tk)%fragment,dim=2),1,cONE,& + & vtmp_fke,1) + ! + do i_ColFG=1,ColsFG_Tp + Vo(i_Tp)%fragment(:,i_ColFG) = Vo(i_Tp)%fragment(:,i_ColFG) + vtmp_fke + enddo + deallocate(vtmp_fke) + ! + end if + ! + endif + ! + ! Add the energy diffs on the diagonal ! - if ( BSS_uses_FKE) call K_multiply_by_V_A_FKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - if (.not.BSS_uses_FKE) call K_multiply_by_V_A_DKE(Vi(i_Tp),Vo(i_Tk),i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) + if (i_Tk.eq.i_Tp) then + do i_ColFG=1,ColsFG_Tk + Vo(i_Tk)%fragment(:,i_ColFG) = Vo(i_Tk)%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi(i_Tk)%fragment(:,i_ColFG) + enddo + end if ! end select ! - enddo + end do ! #if defined _MPI do i_g=1,BS_nT_grps @@ -71,302 +265,4 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par) enddo #endif ! -end subroutine K_multiply_by_V -! -! -subroutine K_multiply_by_V_R_DKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - ! - use pars, ONLY:cONE - use BS_solvers, ONLY:Haydock_vector - use BS, ONLY:BS_blk,BS_T_grp - use wrapper, ONLY:M_by_V - ! - implicit none - ! - type(Haydock_vector) :: Vi,Vo - integer, intent(in) :: i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp - ! - ! Work Space - ! - integer :: i_ColFG - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - ! - ! Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - end if - ! - ! Add the energy diffs on the diagonal - ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) - enddo - end if - ! -end subroutine K_multiply_by_V_R_DKE -! -! -subroutine K_multiply_by_V_A_DKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - ! - use pars, ONLY:cONE - use BS_solvers, ONLY:Haydock_vector - use BS, ONLY:BS_blk,BS_T_grp - use wrapper, ONLY:M_by_V - ! - implicit none - ! - type(Haydock_vector) :: Vi,Vo - integer, intent(in) :: i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp - ! - ! Work Space - ! - integer :: i_ColFG - ! - ! Anti-Resonant part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - ! - ! Anti-Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - end if - ! - ! Add the energy diffs on the diagonal - ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) - enddo - end if - ! -end subroutine K_multiply_by_V_A_DKE -! -! -subroutine K_multiply_by_V_R_FKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - ! - use pars, ONLY:SP,cONE,cZERO,cI - use BS_solvers, ONLY:Haydock_vector,FG_factor - use BS, ONLY:BS_blk,BS_T_grp - use wrapper, ONLY:M_by_V - ! - implicit none - ! - type(Haydock_vector) ::Vi,Vo - integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp - ! - ! Work Space - ! - integer :: i_ColFG - complex(SP) :: FG_factor_c - complex(SP),allocatable ::vtmp_fke(:) - ! - FG_factor_c = cmplx(FG_factor,0._SP) - ! - ! Resonant part - ! - allocate(vtmp_fke(BS_blk(i_B)%size(1))) - vtmp_fke = cZERO - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - ! Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - allocate(vtmp_fke(BS_blk(i_B)%size(2))) - vtmp_fke = cZERO - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tp - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - end if - ! - ! Add the energy diffs on the diagonal - ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) - enddo - end if - ! -end subroutine K_multiply_by_V_R_FKE -! -! -subroutine K_multiply_by_V_A_FKE(Vi,Vo,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - ! - use pars, ONLY:SP,cONE,cZERO,cI - use BS_solvers, ONLY:Haydock_vector,FG_factor - use BS, ONLY:BS_blk,BS_T_grp - use wrapper, ONLY:M_by_V - ! - implicit none - ! - type(Haydock_vector) ::Vi,Vo - integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp - ! - ! Work Space - ! - integer :: i_ColFG - complex(SP) :: FG_factor_c - complex(SP),allocatable ::vtmp_fke(:) - ! - FG_factor_c = cmplx(FG_factor,0._SP) - ! - ! Anti-Resonant part - ! - allocate(vtmp_fke(BS_blk(i_B)%size(1))) - vtmp_fke = cZERO - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - ! Anti-Resonant part is hermitian - ! - if (i_Tk.ne.i_Tp) then - ! - allocate(vtmp_fke(BS_blk(i_B)%size(2))) - vtmp_fke = cZERO - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),FG_factor_c,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & sum(Vi%fragment,dim=2),1,cONE,& - & vtmp_fke,1) - ! - do i_ColFG=1,ColsFG_Tp - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + vtmp_fke - enddo - deallocate(vtmp_fke) - ! - end if - ! - ! Add the energy diffs on the diagonal - ! - if (i_Tk.eq.i_Tp) then - do i_ColFG=1,ColsFG_Tk - Vo%fragment(:,i_ColFG) = Vo%fragment(:,i_ColFG) + BS_T_grp(i_Tk)%E(:,i_ColFG)*Vi%fragment(:,i_ColFG) - enddo - end if - ! -end subroutine K_multiply_by_V_A_FKE -! -! -subroutine K_multiply_by_V_C(Vi,Vo,alpha,i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp) - ! - ! if l_BS_ares_from_res=true, then Vi is defined only in the resonant part - ! for the anti-resonant part, Vi(A)=alpha*Vi(R) - ! - use pars, ONLY:SP,cONE,cZERO,cI - use parallel_int, ONLY:PP_redux_wait - use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS_solvers, ONLY:Haydock_vector,BSS_uses_DbGd - use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res - use wrapper, ONLY:M_by_V - ! - implicit none - ! - complex(SP) ::alpha - type(Haydock_vector) ::Vi,Vo - integer, intent(in) ::i_B,i_Tk,i_Tp,ColsFG_Tk,ColsFG_Tp - ! - ! Work Space - ! - integer :: i_ColFG - ! - ! IA (2022/01/19): - ! Preliminary implementation of DbGd into coupling case does not work - to be tested - ! - if (BSS_uses_DbGd) call error("[Haydock] Double Grid method not yet implemented in & - & coupling (pseudo-Hermitian) case of Haydock solver") - ! - if (l_BS_ares_from_res) then - ! - ! Coupling part - ! - do i_ColFG=1,ColsFG_Tk - if ( i_ColFG .gt. ColsFG_Tp ) cycle - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & conjg(Vi%fragment(:,i_ColFG)),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - ! - ! Coupling part is symmetric - ! - if ( i_Tk.ne.i_Tp ) then - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('t',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),alpha,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & conjg(Vi%fragment(:,i_ColFG)),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - end if - ! - else - ! - ! Coupling part - ! - do i_ColFG=1,ColsFG_Tk - call M_by_V('n',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - ! - ! Anti-coupling Q = -conjg(C) - ! - do i_ColFG=1,ColsFG_Tp - if ( i_ColFG .gt. ColsFG_Tk ) cycle - call M_by_V('c',BS_blk(i_B)%size(1),BS_blk(i_B)%size(2),-cONE,& - & BS_blk(i_B)%mat,BS_blk(i_B)%size(1),& - & Vi%fragment(:,i_ColFG),1,cONE,& - & Vo%fragment(:,i_ColFG),1) - enddo - ! - endif - ! - end subroutine K_multiply_by_V_C \ No newline at end of file +end subroutine diff --git a/src/bse/K_multiply_by_V_slepc.F b/src/bse/K_multiply_by_V_slepc.F index 53b5f8b436..924ce6f52d 100644 --- a/src/bse/K_multiply_by_V_slepc.F +++ b/src/bse/K_multiply_by_V_slepc.F @@ -5,6 +5,13 @@ ! ! Authors (see AUTHORS file for details): HM DS IMA ! +#include +#include +#include +#include +#include +#include +! subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) ! ! Interface with the K_multiply_by_V from the Haydock method @@ -15,13 +22,6 @@ subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim use parallel_m, ONLY : PAR_IND_T_Haydock ! -#include -#include -#include -#include -#include -#include - ! use petscmat use slepcsys use petscmatdef @@ -75,7 +75,7 @@ subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) if(BSS_Slepc_double_grp) fac=(-1)**(Slepc_v%it(1)+1) ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product ! Slepc_v%Vo = H Slepc_v%Vi - call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac) + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"all") ! ! copy output vector Vo -> vo (distributed) ! diff --git a/src/bse/K_multiply_by_V_slepc_nest.F b/src/bse/K_multiply_by_V_slepc_nest.F new file mode 100644 index 0000000000..c703796902 --- /dev/null +++ b/src/bse/K_multiply_by_V_slepc_nest.F @@ -0,0 +1,184 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2018 The Yambo Team +! +! Authors (see AUTHORS file for details): HM DS IMA +! +! +#include +#include +#include +#include +#include +#include +! +subroutine K_multiply_by_V_slepc_R(slepc_mat,vi,vo,ierr) + ! + ! Interface with the K_multiply_by_V from the Haydock method + ! This function has to take the same arguments as MatMult from PETSC + ! + use pars, ONLY : SP,cI + use BS_solvers, ONLY : Slepc_v + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use parallel_m, ONLY : PAR_IND_T_Haydock + ! + use petscmat + use slepcsys + use petscmatdef + use slepcsysdef + ! + implicit none + ! + PetscScalar :: tmp_value(1),tmp_value_star(1) + PetscInt :: H_pos(1), pet_one + PetscErrorCode :: ierr + ! + VecScatter :: ctx + PetscScalar, pointer :: xx(:) + Vec :: vi,vo,x + Mat :: slepc_mat + ! + integer :: fac + integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg + ! + ! create scattering context vi (distributed) -> x (local) + ! + pet_one = 1 + call VecScatterCreateToAll(vi,ctx,x,ierr); + ! + ! scatter from vi (distributed) -> x (local) + ! + call VecScatterBegin(ctx,vi,x,INSERT_VALUES,SCATTER_FORWARD,ierr); + call VecScatterEnd(ctx,vi,x,INSERT_VALUES,SCATTER_FORWARD,ierr); + ! + ! from x (local) build Slepc%Vi + ! + do i_g=1,BS_nT_grps + if (.not.PAR_IND_T_Haydock%element_1D(i_g)) cycle + i_g_start=BS_T_grp(i_g)%i_T_ref + start_index = sum(BS_T_grp(i_g_start:i_g-1)%size)-1+(BS_T_grp(i_g)%i_res_ares-1)*BS_K_dim(1) + do i_c=1,BS_T_grp(i_g)%size + H_pos=start_index+i_c + !SLEPC funcitons expect C indexes both in Fortran and C + call VecGetValues( x, pet_one, H_pos, tmp_value, ierr ) + Slepc_v%Vi(i_g)%fragment(i_c,1)=cmplx(tmp_value(1),kind=SP) + enddo + enddo + ! + ! destroy scatter context and local vector when no longer needed + ! + call VecScatterDestroy(ctx,ierr); + call VecDestroy(x,ierr); + ! + ! fac needed for K_multiply_by_v + fac=1 + ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product + ! Slepc_v%Vo = H Slepc_v%Vi + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"R") + ! + ! copy output vector Vo -> vo (distributed) + ! + do i_g=1,BS_nT_grps + if (.not.PAR_IND_T_Haydock%element_1D(i_g)) cycle + i_g_start=BS_T_grp(i_g)%i_T_ref + start_index = sum(BS_T_grp(i_g_start:i_g-1)%size)-1+(BS_T_grp(i_g)%i_res_ares-1)*BS_K_dim(1) + do i_c=1,BS_T_grp(i_g)%size + H_pos=start_index+i_c + tmp_value=cmplx(Slepc_v%Vo(i_g)%fragment(i_c,1)) + tmp_value_star=real(Slepc_v%Vo(i_g)%fragment(i_c,1))-cI*aimag(Slepc_v%Vo(i_g)%fragment(i_c,1)) + !SLEPC funcitons expect C indexes both in Fortran and C + call VecSetValues( vo, pet_one, H_pos, tmp_value, INSERT_VALUES, ierr ) + enddo + enddo + ! + call VecAssemblyBegin(vo,ierr) + call VecAssemblyEnd(vo,ierr) + ! +end subroutine K_multiply_by_V_slepc_R +! +! +subroutine K_multiply_by_V_slepc_C(slepc_mat,vi,vo,ierr) + ! + ! Interface with the K_multiply_by_V from the Haydock method + ! This function has to take the same arguments as MatMult from PETSC + ! + use pars, ONLY : SP,cI + use BS_solvers, ONLY : Slepc_v + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use parallel_m, ONLY : PAR_IND_T_Haydock + ! + use petscmat + use slepcsys + use petscmatdef + use slepcsysdef + ! + implicit none + ! + PetscScalar :: tmp_value(1),tmp_value_star(1) + PetscInt :: H_pos(1), pet_one + PetscErrorCode :: ierr + ! + VecScatter :: ctx + PetscScalar, pointer :: xx(:) + Vec :: vi,vo,x + Mat :: slepc_mat + ! + integer :: fac + integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg + ! + ! create scattering context vi (distributed) -> x (local) + ! + pet_one = 1 + call VecScatterCreateToAll(vi,ctx,x,ierr); + ! + ! scatter from vi (distributed) -> x (local) + ! + call VecScatterBegin(ctx,vi,x,INSERT_VALUES,SCATTER_FORWARD,ierr); + call VecScatterEnd(ctx,vi,x,INSERT_VALUES,SCATTER_FORWARD,ierr); + ! + ! from x (local) build Slepc%Vi + ! + do i_g=1,BS_nT_grps + if (.not.PAR_IND_T_Haydock%element_1D(i_g)) cycle + i_g_start=BS_T_grp(i_g)%i_T_ref + start_index = sum(BS_T_grp(i_g_start:i_g-1)%size)-1+(BS_T_grp(i_g)%i_res_ares-1)*BS_K_dim(1) + do i_c=1,BS_T_grp(i_g)%size + H_pos=start_index+i_c + !SLEPC funcitons expect C indexes both in Fortran and C + call VecGetValues( x, pet_one, H_pos, tmp_value, ierr ) + Slepc_v%Vi(i_g)%fragment(i_c,1)=conjg(cmplx(tmp_value(1),kind=SP)) + enddo + enddo + ! + ! destroy scatter context and local vector when no longer needed + ! + call VecScatterDestroy(ctx,ierr); + call VecDestroy(x,ierr); + ! + ! fac needed for K_multiply_by_v + fac=1 + ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product + ! Slepc_v%Vo = H Slepc_v%Vi + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"C") + ! + ! copy output vector Vo -> vo (distributed) + ! + do i_g=1,BS_nT_grps + if (.not.PAR_IND_T_Haydock%element_1D(i_g)) cycle + i_g_start=BS_T_grp(i_g)%i_T_ref + start_index = sum(BS_T_grp(i_g_start:i_g-1)%size)-1+(BS_T_grp(i_g)%i_res_ares-1)*BS_K_dim(1) + do i_c=1,BS_T_grp(i_g)%size + H_pos=start_index+i_c + tmp_value=cmplx(Slepc_v%Vo(i_g)%fragment(i_c,1)) + tmp_value_star=real(Slepc_v%Vo(i_g)%fragment(i_c,1))-cI*aimag(Slepc_v%Vo(i_g)%fragment(i_c,1)) + !SLEPC funcitons expect C indexes both in Fortran and C + call VecSetValues( vo, pet_one, H_pos, tmp_value, INSERT_VALUES, ierr ) + enddo + enddo + ! + call VecAssemblyBegin(vo,ierr) + call VecAssemblyEnd(vo,ierr) + ! + end subroutine K_multiply_by_V_slepc_C + \ No newline at end of file diff --git a/src/bse/K_multiply_by_V_transpose_slepc.F b/src/bse/K_multiply_by_V_transpose_slepc.F index f5ca11cd29..d8d96ad678 100644 --- a/src/bse/K_multiply_by_V_transpose_slepc.F +++ b/src/bse/K_multiply_by_V_transpose_slepc.F @@ -5,6 +5,13 @@ ! ! Authors (see AUTHORS file for details): HM DS IMA ! +#include +#include +#include +#include +#include +#include +! subroutine K_multiply_by_V_transpose_slepc(slepc_mat,vi,vo,ierr) ! ! Interface with the K_multiply_by_V from the Haydock method @@ -15,13 +22,6 @@ subroutine K_multiply_by_V_transpose_slepc(slepc_mat,vi,vo,ierr) use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim use parallel_m, ONLY : PAR_IND_T_Haydock ! -#include -#include -#include -#include -#include -#include - ! use petscmat use slepcsys use petscmatdef diff --git a/src/bse/K_shell_matrix.F b/src/bse/K_shell_matrix.F index a680fd0bb7..93ee76f3d0 100644 --- a/src/bse/K_shell_matrix.F +++ b/src/bse/K_shell_matrix.F @@ -41,6 +41,8 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) PetscInt :: SL_H_dim,SL_K_dim PetscErrorCode :: ierr external K_multiply_by_V_slepc + external K_multiply_by_V_slepc_C + external K_multiply_by_V_slepc_R external K_multiply_by_V_transpose_slepc ! if (BS_res_ares_n_mat==2) call error(" Slepc with shells and multiple BS_mat not coded") @@ -65,9 +67,9 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! if(BS_K_coupling) then if (l_BS_ares_from_res) then - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,slepc_mat_R,ierr) + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,slepc_mat_R,ierr) call MatSetOption(slepc_mat_R,MAT_HERMITIAN,PETSC_TRUE,ierr) - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,slepc_mat_C,ierr) + call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,slepc_mat_C,ierr) call MatSetOption(slepc_mat_C,MAT_SYMMETRIC,PETSC_TRUE,ierr) call MatShellSetOperation(slepc_mat_R,MATOP_MULT,K_multiply_by_V_slepc_R,ierr) call MatShellSetOperation(slepc_mat_C,MATOP_MULT,K_multiply_by_V_slepc_C,ierr) From 40ea57b242966512001bf4861ef62fd73c07a5d5 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 31 Jul 2024 15:04:35 +0200 Subject: [PATCH 010/112] Version 5.2.0, Revision 23308, Hash 273bb95c93 MODIFIED * configure include/version/version.m4 lib/slepc/Makefile.loc bse/K_diago_driver.F bse/K_stored_in_a_nest_matrix.F linear_algebra/MATRIX_slepc.F NEW * Changes: - [yambo] Commented call to Slepc get bse type, otherwise it always overwirets what in input Patch sent by: Davide Sangalli --- configure | 32 ++++++++++++--------- include/version/version.m4 | 6 ++-- lib/slepc/Makefile.loc | 2 +- src/bse/K_diago_driver.F | 24 ++++++++-------- src/bse/K_stored_in_a_nest_matrix.F | 19 +++++++------ src/linear_algebra/MATRIX_slepc.F | 44 ++++++++++++++++++++--------- 6 files changed, 76 insertions(+), 51 deletions(-) diff --git a/configure b/configure index 194399327d..849819c607 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23287 h.e9ab2f86a2. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23308 h.273bb95c93. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23287 h.e9ab2f86a2' -PACKAGE_STRING='Yambo 5.2.0 r.23287 h.e9ab2f86a2' +PACKAGE_VERSION='5.2.0 r.23308 h.273bb95c93' +PACKAGE_STRING='Yambo 5.2.0 r.23308 h.273bb95c93' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -690,6 +690,8 @@ MPI_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -1604,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23287 h.e9ab2f86a2 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23308 h.273bb95c93 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23287 h.e9ab2f86a2:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23308 h.273bb95c93:";; esac cat <<\_ACEOF @@ -1882,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23287 h.e9ab2f86a2 +Yambo configure 5.2.0 r.23308 h.273bb95c93 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2511,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23287 h.e9ab2f86a2, which was +It was created by Yambo $as_me 5.2.0 r.23308 h.273bb95c93, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3269,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23287" -SHASH="e9ab2f86a2" +SREVISION="23308" +SHASH="273bb95c93" @@ -15604,19 +15606,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -15696,6 +15700,8 @@ fi + + # @@ -16606,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23287 h.e9ab2f86a2, which was +This file was extended by Yambo $as_me 5.2.0 r.23308 h.273bb95c93, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16670,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23287 h.e9ab2f86a2 +Yambo config.status 5.2.0 r.23308 h.273bb95c93 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 2f64e2a340..a7ad160ee2 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23286 h.86fcda4c45, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23308 h.273bb95c93, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23286" -SHASH="86fcda4c45" +SREVISION="23308" +SHASH="273bb95c93" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/slepc/Makefile.loc b/lib/slepc/Makefile.loc index b3d65298e5..1efad12803 100644 --- a/lib/slepc/Makefile.loc +++ b/lib/slepc/Makefile.loc @@ -57,7 +57,7 @@ compile: uncompress configure install: uncompress configure compile @if ! test -f installed.stamp ; then \ echo "\t[$(PACKAGE)] installation"; \ - ( cd $(PACKAGE); $(make) -j1 SLEPC_DIR=$(PWD)/$(PACKAGE) PETSC_DIR=$(LIBPATH) install >> ${compdir}/log/compile_$(PACKAGE).log 2>&1 ); \ + ( cd $(PACKAGE); $(make) -j1 SLEPC_DIR=$(PWD)/$(PACKAGE) PETSC_DIR=$(LIBPATH) install >> ${compdir}/log/install_$(PACKAGE).log 2>&1 ); \ touch installed.stamp; \ fi diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 47ccd2efbe..009499b034 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -25,7 +25,7 @@ subroutine K_diago_driver(iq,W,X_static) use stderr, ONLY:intc use BS, ONLY:BS_K_coupling,BS_H_dim,BS_K_dim,BS_perturbative_SOC,& & BS_res_ares_n_mat,l_BS_optics,l_BS_dichroism !,BS_Blocks_symmetrize_K,& - use BS_solvers, ONLY:io_BSS_diago,BSS_perturbative_width,BSS_mode,& + use BS_solvers, ONLY:io_BSS_diago,BSS_perturbative_width,BSS_mode,BSS_slepc_double_grp,& & BSS_write_eig_2_db,BSS_eh_W,BS_mat,BSS_n_eig,BS_E use X_m, ONLY:X_t,X_OUTPUT_driver use electrons, ONLY:n_sp_pol,n_spinor @@ -41,19 +41,19 @@ subroutine K_diago_driver(iq,W,X_static) use timing_m, ONLY:timing #if defined _SLEPC && !defined _NL use interfaces, ONLY:MATRIX_slepc - ! - use petscmat - use slepceps - use slepcepsdef - use petscmatdef - ! - use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_custom,& -& Slepc_v,BS_HAYVEC_free + use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_custom,& +& Slepc_v,BS_HAYVEC_free #endif use BS, ONLY:l_BS_kerr,l_BS_magnons,l_BS_photolum,l_BS_ares_from_res use MAGNONS, ONLY:BSS_MAGN_free use PHOTOLUM, ONLY:BSS_PL_free ! +#if defined _SLEPC && !defined _NL + use slepceps, ONLY:SlepcInitialize + use petscmat, ONLY:PETSC_NULL_CHARACTER + use petscmatdef, ONLY:tMat +#endif + ! #include ! type(w_samp) :: W @@ -69,6 +69,7 @@ subroutine K_diago_driver(iq,W,X_static) ! Slepc specific ! #if defined _SLEPC && !defined _NL + ! Mat becomes type(tMat) after source is pre-processed Mat :: slepc_mat PetscErrorCode :: ierr #endif @@ -189,14 +190,15 @@ subroutine K_diago_driver(iq,W,X_static) ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication ! using the K_multiply_by_V function used in the Haydock method if (index(BSS_slepc_matrix_format,"shell")>0) then - BSS_slepc_custom=(BSS_slepc_matrix_format=="shell").and.BS_K_coupling + BSS_slepc_custom=(BSS_slepc_matrix_format=="shell").and.BS_K_coupling.and..not.BSS_slepc_double_grp call K_shell_matrix(i_BS_mat,slepc_mat) ! 2. Here we create a distributed PETSC matrix from the BS_blks else if (BSS_slepc_matrix_format=="explicit") then if (BS_K_coupling.and.l_BS_ares_from_res) then ! 2.1. With memory optimization using nest matrix (only possible for the coupling case) call K_stored_in_a_nest_matrix(i_BS_mat,.FALSE.,slepc_mat) - BSS_slepc_custom=.TRUE. + BSS_slepc_custom=.not.BSS_slepc_double_grp + !BSS_slepc_nested=.TRUE. ! to replace BSS_slepc_custom (?) else ! 2.2. Explicit PETSc matrix for the rest of the cases call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index b37d7bdb09..00e8d8a760 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -165,6 +165,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! Folded spectrum ! call MatCreateBSE(R,C,slepc_mat,ierr); + ! else ! ! Nested matrix @@ -172,11 +173,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! Create the two shell submatrices and define the required operations ! call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,RT,ierr) - if (have_cuda) then #ifdef PETSC_HAVE_CUDA - call MatSetVecType(RT,VECCUDA,ierr) -#endif + if (have_cuda) then + call MatSetVecType(RT,VECCUDA,ierr) endif +#endif call MatShellSetOperation(RT,MATOP_GET_DIAGONAL,RT_get_diagonal,ierr) call MatShellSetOperation(RT,MATOP_MULT,RT_mat_mult,ierr) call MatShellSetOperation(RT,MATOP_MULT_TRANSPOSE,RT_mat_mult_transpose,ierr) @@ -185,11 +186,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) call PetscPopErrorHandler(ierr) ! call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,CHT,ierr) - if (have_cuda) then #ifdef PETSC_HAVE_CUDA - call MatSetVecType(CHT,VECCUDA,ierr) -#endif + if (have_cuda) then + call MatSetVecType(CHT,VECCUDA,ierr) endif +#endif call MatShellSetOperation(CHT,MATOP_GET_DIAGONAL,CHT_get_diagonal,ierr) call MatShellSetOperation(CHT,MATOP_MULT,CHT_mat_mult,ierr) call MatShellSetOperation(CHT,MATOP_MULT_TRANSPOSE,CHT_mat_mult_transpose,ierr) @@ -205,11 +206,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) matArray(4) = RT itwo = 2 call MatCreateNest(PETSC_COMM_WORLD,itwo,PETSC_NULL_INTEGER,itwo,PETSC_NULL_INTEGER,matArray,slepc_mat,ierr) - if (have_cuda) then #ifdef PETSC_HAVE_CUDA - call MatSetVecType(slepc_mat,VECCUDA,ierr) -#endif + if (have_cuda) then + call MatSetVecType(slepc_mat,VECCUDA,ierr) endif +#endif endif ! end subroutine K_stored_in_a_nest_matrix diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 20670a716b..0d276a3131 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -130,16 +130,14 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! * Jacobi-Davidson: EPSJD, NOT WORKING WITH KSP PREONLY ! STPPRECOND + KSPCG SUPER-SLOW + PCJACOBY super slow ! - ! Default + ! Default Krylov-Schur used in case input is mispelled epskind=EPSKRYLOVSCHUR ! From user - if(BSS_slepc_approach=="Krylov-Schur") epskind=EPSKRYLOVSCHUR - if(BSS_slepc_approach=="Generalized-Davidson") epskind=EPSGD - if(BSS_slepc_approach=="Jacobi-Davidson") epskind=EPSJD - !if(BSS_slepc_approach=="Scalapack") epskind=EPSSCALAPACK - !if(BSS_slepc_approach=="ELPA") epskind=EPSELPA - ! In case input is mispelled fallback to Krylov-Schur - if (epskind==EPSKRYLOVSCHUR) BSS_slepc_approach="Krylov-Schur" + if(index(BSS_slepc_approach,"Krylov-Schur")>0) epskind=EPSKRYLOVSCHUR + if(index(BSS_slepc_approach,"Generalized-Davidson")>0) epskind=EPSGD + if(index(BSS_slepc_approach,"Jacobi-Davidson")>0) epskind=EPSJD + !if(index(BSS_slepc_approach,"Scalapack")>0) epskind=EPSSCALAPACK + !if(index(BSS_slepc_approach,"ELPA")>0) epskind=EPSELPA ! if (.not. (epskind==EPSKRYLOVSCHUR .or. epskind==EPSGD .or. epskind==EPSJD )) then call error("wrong slepc approach in input "//trim(BSS_slepc_approach)) @@ -234,15 +232,33 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm !Set monitor call EPSMonitorSet(eps,MyEPSMonitor,0,PETSC_NULL_FUNCTION,ierr) ! + ! Load eps from command line options. It overwrites input file call EPSSetFromOptions(eps,ierr) ! if(present(V_left).and.BSS_slepc_custom.and.epskind==EPSKRYLOVSCHUR) then - call EPSKrylovSchurGetBSEType(eps,epsbsetype,ierr) - if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SHAO) BSS_slepc_approach=trim(BSS_slepc_approach)//", Shao" - if(epsbsetype==EPS_KRYLOVSCHUR_BSE_GRUNING) BSS_slepc_approach=trim(BSS_slepc_approach)//", Gruning" - if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SYMPLECTIC) BSS_slepc_approach=trim(BSS_slepc_approach)//", Symplectic" - else - BSS_slepc_approach=trim(BSS_slepc_approach)//"+NonHermitian" + ! Default Gruning used in case input is mispelled or not set + epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO + ! From user + if(index(BSS_slepc_approach,"Shao")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO + if(index(BSS_slepc_approach,"Gruning")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_GRUNING + !if(index(BSS_slepc_approach,"Symplectic")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_SYMPLECTIC ! To be replaced + if(index(BSS_slepc_approach,"Projected")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE ! New replacement + ! Eventially load epsbsetype from command line options. It overwrites input file + !call EPSKrylovSchurGetBSEType(eps,epsbsetype,ierr) + endif + ! + ! Fix the BSS_slepc_approach string + if (epskind==EPSKRYLOVSCHUR) BSS_slepc_approach="Krylov-Schur" + ! + if(present(V_left)) then + if(BSS_slepc_custom.and.epskind==EPSKRYLOVSCHUR) then + if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SHAO) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Shao" + if(epsbsetype==EPS_KRYLOVSCHUR_BSE_GRUNING) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Gruning" + !if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SYMPLECTIC) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Symplectic" !To be replaced + if(epsbsetype==EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE) BSS_slepc_approach=trim(BSS_slepc_approach)//"+ProjectedBSE" ! New replacement + else + BSS_slepc_approach=trim(BSS_slepc_approach)//"+NonHermitian" + endif endif ! call msg( 'sr', '[SLEPC] Approach ',BSS_slepc_approach) From 161f7b2eed23230acc430bfb2866c9f3307161dd Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 31 Jul 2024 22:32:09 +0200 Subject: [PATCH 011/112] Version 5.2.0, Revision 23309, Hash 40ea57b242 MODIFIED * configure include/version/version.m4 bse/K_stored_in_a_nest_matrix.F linear_algebra/MATRIX_slepc.F NEW * Changes: - [yambo] Few changes in view of shift and invert approach to slepc Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_stored_in_a_nest_matrix.F | 12 ++++++------ src/linear_algebra/MATRIX_slepc.F | 14 +++++++++----- 4 files changed, 29 insertions(+), 25 deletions(-) diff --git a/configure b/configure index 849819c607..ffa36a3f43 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23308 h.273bb95c93. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23309 h.40ea57b242. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23308 h.273bb95c93' -PACKAGE_STRING='Yambo 5.2.0 r.23308 h.273bb95c93' +PACKAGE_VERSION='5.2.0 r.23309 h.40ea57b242' +PACKAGE_STRING='Yambo 5.2.0 r.23309 h.40ea57b242' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23308 h.273bb95c93 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23309 h.40ea57b242 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23308 h.273bb95c93:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23309 h.40ea57b242:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23308 h.273bb95c93 +Yambo configure 5.2.0 r.23309 h.40ea57b242 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23308 h.273bb95c93, which was +It was created by Yambo $as_me 5.2.0 r.23309 h.40ea57b242, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23308" -SHASH="273bb95c93" +SREVISION="23309" +SHASH="40ea57b242" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23308 h.273bb95c93, which was +This file was extended by Yambo $as_me 5.2.0 r.23309 h.40ea57b242, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23308 h.273bb95c93 +Yambo config.status 5.2.0 r.23309 h.40ea57b242 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a7ad160ee2..9fcea3432a 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23308 h.273bb95c93, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23309 h.40ea57b242, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23308" -SHASH="273bb95c93" +SREVISION="23309" +SHASH="40ea57b242" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 00e8d8a760..fd7faaaa11 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -82,22 +82,22 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) call MatCreate(PETSC_COMM_WORLD,R,ierr) call MatSetSizes(R,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) call MatSetType(R,MATMPIDENSE,ierr) - if (have_cuda) then #ifdef PETSC_HAVE_CUDA - call MatSetType(R,MATDENSECUDA,ierr) -#endif + if (have_cuda) then + call MatSetType(R,MATDENSECUDA,ierr) endif +#endif call MatSetFromOptions(R,ierr) call MatSetUp(R,ierr) ! call MatCreate(PETSC_COMM_WORLD,C,ierr) call MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) call MatSetType(C,MATMPIDENSE,ierr) - if (have_cuda) then #ifdef PETSC_HAVE_CUDA - call MatSetType(C,MATDENSECUDA,ierr) -#endif + if (have_cuda) then + call MatSetType(C,MATDENSECUDA,ierr) endif +#endif call MatSetFromOptions(C,ierr) call MatSetUp(C,ierr) ! diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 0d276a3131..39c19f2999 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -162,7 +162,8 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if (epskind==EPSJD) stkind=STPRECOND ! ! Default - if (stkind==STSINVERT) kspkind=KSPBCGS + !if (stkind==STSINVERT) kspkind=KSPBCGS + if (stkind==STSINVERT) kspkind=KSPPREONLY if (stkind==STPRECOND .and. epskind==EPSGD) kspkind=KSPPREONLY if (stkind==STPRECOND .and. epskind==EPSJD) kspkind=KSPBCGS ! From user @@ -170,11 +171,14 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if(index(BSS_slepc_precondition,KSPBCGS)/=0) kspkind=KSPBCGS ! ! Default - pckind=PCJACOBI + if (stkind==STSINVERT) pckind=PCLU + if (stkind==STPRECOND) pckind=PCJACOBI ! From user - if(index(BSS_slepc_precondition,PCJACOBI)/=0) pckind=PCJACOBI + if(index(BSS_slepc_precondition,PCJACOBI)/=0) pckind=PCJACOBI + if(index(BSS_slepc_precondition,PCFIELDSPLIT)/=0) pckind=PCFIELDSPLIT + if(index(BSS_slepc_precondition,PCLU)/=0) pckind=PCLU ! - BSS_slepc_precondition=trim(kspkind)//"+"//trim(pckind) + BSS_slepc_precondition=trim(stkind)//"+"//trim(kspkind)//"+"//trim(pckind) ! call EPSGetST(eps,st,ierr) call STGetKSP(st,ksp,ierr) @@ -236,7 +240,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call EPSSetFromOptions(eps,ierr) ! if(present(V_left).and.BSS_slepc_custom.and.epskind==EPSKRYLOVSCHUR) then - ! Default Gruning used in case input is mispelled or not set + ! Default Shao used in case input is mispelled or not set epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO ! From user if(index(BSS_slepc_approach,"Shao")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO From 2ca81ea0dba6318f913daa6d115a27eba1bffc95 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 1 Aug 2024 09:52:14 +0200 Subject: [PATCH 012/112] Fixed compilation of internal slepc --- lib/slepc/Makefile.loc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/slepc/Makefile.loc b/lib/slepc/Makefile.loc index 1efad12803..0c53043852 100644 --- a/lib/slepc/Makefile.loc +++ b/lib/slepc/Makefile.loc @@ -37,10 +37,10 @@ configure: uncompress @if test -e $(PACKAGE) && ! test -f configured.stamp; then \ echo "\t[$(PACKAGE)] configuration"; \ cd $(PACKAGE); \ - echo "PETSC_DIR=$(LIBPATH)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ - PETSC_DIR=$(LIBPATH) \ - echo "SLEPC_DIR=$(PWD)/$(PACKAGE)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ - SLEPC_DIR=$(PWD)/$(PACKAGE) \ + echo "export PETSC_DIR=$(LIBPATH)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ + export PETSC_DIR=$(LIBPATH) \ + echo "export SLEPC_DIR=$(PWD)/$(PACKAGE)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ + export SLEPC_DIR=$(PWD)/$(PACKAGE) \ echo "python3 ./configure $(CONFFLAGS)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ python3 ./configure $(CONFFLAGS) >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ cd - ; \ From 3d8b18c2a10b88839e53f99db3265c303116f06c Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 1 Aug 2024 10:19:33 +0200 Subject: [PATCH 013/112] slepc Makefile.loc fixed --- lib/slepc/Makefile.loc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/slepc/Makefile.loc b/lib/slepc/Makefile.loc index 0c53043852..bf0ce94985 100644 --- a/lib/slepc/Makefile.loc +++ b/lib/slepc/Makefile.loc @@ -37,10 +37,10 @@ configure: uncompress @if test -e $(PACKAGE) && ! test -f configured.stamp; then \ echo "\t[$(PACKAGE)] configuration"; \ cd $(PACKAGE); \ - echo "export PETSC_DIR=$(LIBPATH)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ - export PETSC_DIR=$(LIBPATH) \ - echo "export SLEPC_DIR=$(PWD)/$(PACKAGE)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ - export SLEPC_DIR=$(PWD)/$(PACKAGE) \ + echo "unset PETSC_DIR;" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ + echo "unset SLEPC_DIR;" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ + unset PETSC_DIR; \ + unset SLEPC_DIR; \ echo "python3 ./configure $(CONFFLAGS)" >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ python3 ./configure $(CONFFLAGS) >> ${compdir}/log/config_$(PACKAGE).log 2>&1; \ cd - ; \ From c167ba1b3e9204d4eb307356101b34f7e2aa57cc Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 1 Aug 2024 10:40:29 +0200 Subject: [PATCH 014/112] Version 5.2.0, Revision 23312, Hash 3d8b18c2a1 MODIFIED * configure include/version/version.m4 bse/K_blocks.F bse/K_kernel.F bse/K_solvers.F bse/K_stored_in_a_big_matrix.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F modules/mod_BS.F Bugs: - [ypp] compilation fixed Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_blocks.F | 13 +++++++++++++ src/bse/K_kernel.F | 2 +- src/bse/K_solvers.F | 2 +- src/bse/K_stored_in_a_big_matrix.F | 2 +- src/bse/K_stored_in_a_nest_matrix.F | 4 ++-- src/bse/K_stored_in_a_slepc_matrix.F | 2 +- src/modules/mod_BS.F | 10 ---------- 9 files changed, 33 insertions(+), 30 deletions(-) diff --git a/configure b/configure index ffa36a3f43..1b6b30d01a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23309 h.40ea57b242. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23312 h.3d8b18c2a1. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23309 h.40ea57b242' -PACKAGE_STRING='Yambo 5.2.0 r.23309 h.40ea57b242' +PACKAGE_VERSION='5.2.0 r.23312 h.3d8b18c2a1' +PACKAGE_STRING='Yambo 5.2.0 r.23312 h.3d8b18c2a1' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23309 h.40ea57b242 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23312 h.3d8b18c2a1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23309 h.40ea57b242:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23312 h.3d8b18c2a1:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23309 h.40ea57b242 +Yambo configure 5.2.0 r.23312 h.3d8b18c2a1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23309 h.40ea57b242, which was +It was created by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23309" -SHASH="40ea57b242" +SREVISION="23312" +SHASH="3d8b18c2a1" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23309 h.40ea57b242, which was +This file was extended by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23309 h.40ea57b242 +Yambo config.status 5.2.0 r.23312 h.3d8b18c2a1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 9fcea3432a..c3fd5e9456 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23309 h.40ea57b242, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23312 h.3d8b18c2a1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23309" -SHASH="40ea57b242" +SREVISION="23312" +SHASH="3d8b18c2a1" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index c70f570e7e..901d9ecd2d 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -200,3 +200,16 @@ subroutine K_block_free( iB ) endif ! end subroutine K_block_free +! +! +subroutine BS_blks_free(i_BS_mat) + use BS, ONLY:BS_blk,n_BS_blks + implicit none + integer, intent(in) :: i_BS_mat + integer :: iB + do iB=1,n_BS_blks + if(i_BS_mat/=BS_blk(iB)%ira_k) cycle + if(.not.allocated(BS_blk(iB)%mat)) cycle + call K_block_free( iB ) + enddo +end subroutine diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 8c1b0fe975..b811215403 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -32,7 +32,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) & BS_K_dim,BS_K_is_ALDA,BS_cpl_K_exchange,& & BS_cpl_K_corr,K_EXCH_collision,K_CORR_collision,& & WF_phase,n_BS_blks,BS_blk,BS_T_grp,BSK_IO_mode,BSK_IO_sum_value,& -& BS_nT_grps,BS_blks_free,l_BS_ares_from_res,BS_K_has_been_calculated_loaded,& +& BS_nT_grps,l_BS_ares_from_res,BS_K_has_been_calculated_loaded,& & l_BSE_minimize_memory,l_BSE_restart,l_BSE_kernel_complete,& & BS_perturbative_SOC,BS_K_cutoff,BS_max_val,l_BS_magnons use collision_el, ONLY:elemental_collision_free diff --git a/src/bse/K_solvers.F b/src/bse/K_solvers.F index 370fbfa78b..8bc0e05787 100644 --- a/src/bse/K_solvers.F +++ b/src/bse/K_solvers.F @@ -15,7 +15,7 @@ subroutine K_solvers(iq,Ken,Xk,q,X_static,W_bss) use BS_solvers, ONLY:BSS_desc,BSS_free,BS_mat,run_Haydock,& & run_inversion,run_Diago,run_Slepc use BS, ONLY:BS_K_has_been_calculated_loaded,& - & BS_blks_free,l_BS_abs,l_BS_kerr,l_BS_magnons,l_BS_dichroism +& l_BS_abs,l_BS_kerr,l_BS_magnons,l_BS_dichroism use parallel_m, ONLY:master_cpu,CPU_structure use IO_int, ONLY:IO_and_Messaging_switch use linear_algebra, ONLY:INV,DIAGO diff --git a/src/bse/K_stored_in_a_big_matrix.F b/src/bse/K_stored_in_a_big_matrix.F index 774e61ff3a..0bcbfe93c9 100644 --- a/src/bse/K_stored_in_a_big_matrix.F +++ b/src/bse/K_stored_in_a_big_matrix.F @@ -13,7 +13,7 @@ subroutine K_stored_in_a_big_matrix(i_BS_mat,iq,what) use pars, ONLY:SP,cI,cZERO,cONE use parallel_int, ONLY:PP_redux_wait use BS, ONLY:BS_K_coupling,n_BS_blks,BS_res_ares_n_mat,& -& l_BS_ares_from_res,BS_blks_free +& l_BS_ares_from_res use BS_solvers, ONLY:BS_mat,BS_blk,BS_H_dim,BS_K_dim,& & BSS_perturbative_width,run_inversion,run_Haydock,& & BSS_eh_E,BSS_eh_W diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index fd7faaaa11..10d7ec111a 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -81,7 +81,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! call MatCreate(PETSC_COMM_WORLD,R,ierr) call MatSetSizes(R,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) - call MatSetType(R,MATMPIDENSE,ierr) + call MatSetType(R,MATDENSE,ierr) #ifdef PETSC_HAVE_CUDA if (have_cuda) then call MatSetType(R,MATDENSECUDA,ierr) @@ -92,7 +92,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! call MatCreate(PETSC_COMM_WORLD,C,ierr) call MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) - call MatSetType(C,MATMPIDENSE,ierr) + call MatSetType(C,MATDENSE,ierr) #ifdef PETSC_HAVE_CUDA if (have_cuda) then call MatSetType(C,MATDENSECUDA,ierr) diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 206b5b0cde..5c195e4353 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -50,7 +50,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! call MatCreate(PETSC_COMM_WORLD,slepc_mat,ierr) call MatSetSizes(slepc_mat,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim,SL_H_dim,ierr) - call MatSetType(slepc_mat, MATMPIDENSE,ierr) + call MatSetType(slepc_mat, MATDENSE,ierr) #if defined(PETSC_HAVE_CUDA) if(have_cuda) call MatSetType(slepc_mat,MATDENSECUDA,ierr) diff --git a/src/modules/mod_BS.F b/src/modules/mod_BS.F index de9a3a552e..86fe59d1e2 100644 --- a/src/modules/mod_BS.F +++ b/src/modules/mod_BS.F @@ -319,16 +319,6 @@ subroutine BS_Blocks_and_Transitions_alloc(E,iT,dom_k_T_group) ! end subroutine ! - subroutine BS_blks_free(i_BS_mat) - integer, intent(in) :: i_BS_mat - integer :: iB - do iB=1,n_BS_blks - if(i_BS_mat/=BS_blk(iB)%ira_k) cycle - if(.not.allocated(BS_blk(iB)%mat)) cycle - call K_block_free( iB ) - enddo - end subroutine - ! subroutine BS_Blocks_and_Transitions_free() use parallel_m, ONLY:PAR_BS_T_grps_index integer :: iT From 41b1c8d3caa2019d2b171104f52b8e20940af9ca Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 1 Aug 2024 14:41:23 +0200 Subject: [PATCH 015/112] Version 5.2.0, Revision 23313, Hash c167ba1b3e MODIFIED * configure include/version/version.m4 linear_algebra/MATRIX_slepc.F Changes: - [yambo] Added missing set bse type Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/linear_algebra/MATRIX_slepc.F | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 1b6b30d01a..bc7605008e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23312 h.3d8b18c2a1. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23313 h.c167ba1b3e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23312 h.3d8b18c2a1' -PACKAGE_STRING='Yambo 5.2.0 r.23312 h.3d8b18c2a1' +PACKAGE_VERSION='5.2.0 r.23313 h.c167ba1b3e' +PACKAGE_STRING='Yambo 5.2.0 r.23313 h.c167ba1b3e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23312 h.3d8b18c2a1 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23313 h.c167ba1b3e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23312 h.3d8b18c2a1:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23313 h.c167ba1b3e:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23312 h.3d8b18c2a1 +Yambo configure 5.2.0 r.23313 h.c167ba1b3e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was +It was created by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23312" -SHASH="3d8b18c2a1" +SREVISION="23313" +SHASH="c167ba1b3e" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was +This file was extended by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23312 h.3d8b18c2a1 +Yambo config.status 5.2.0 r.23313 h.c167ba1b3e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index c3fd5e9456..c7f568b8de 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23312 h.3d8b18c2a1, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23313 h.c167ba1b3e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23312" -SHASH="3d8b18c2a1" +SREVISION="23313" +SHASH="c167ba1b3e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 39c19f2999..45ec335c0d 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -249,6 +249,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if(index(BSS_slepc_approach,"Projected")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE ! New replacement ! Eventially load epsbsetype from command line options. It overwrites input file !call EPSKrylovSchurGetBSEType(eps,epsbsetype,ierr) + call EPSKrylovSchurSetBSEType(eps,epsbsetype,ierr) endif ! ! Fix the BSS_slepc_approach string From af260068dcd447fe673fcd28d2364312174bda9f Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 7 Aug 2024 00:49:11 +0200 Subject: [PATCH 016/112] Version 5.2.0, Revision 23313, Hash c167ba1b3e MODIFIED * configure include/version/version.m4 bse/K_diago_driver.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F NEW * Changes: - [yambo] Added timing to K_stored_in_a_slepc/nest_matrix - [yambo] After slepc matrix redistribution, BSE kernel is de-allocated - [yambo] Improved messaging for shell vs explicit algorithm Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_diago_driver.F | 4 ++-- src/bse/K_stored_in_a_nest_matrix.F | 19 ++++++++++++++++++- src/bse/K_stored_in_a_slepc_matrix.F | 18 +++++++++++++++++- 5 files changed, 51 insertions(+), 18 deletions(-) diff --git a/configure b/configure index 1b6b30d01a..bc7605008e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23312 h.3d8b18c2a1. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23313 h.c167ba1b3e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23312 h.3d8b18c2a1' -PACKAGE_STRING='Yambo 5.2.0 r.23312 h.3d8b18c2a1' +PACKAGE_VERSION='5.2.0 r.23313 h.c167ba1b3e' +PACKAGE_STRING='Yambo 5.2.0 r.23313 h.c167ba1b3e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23312 h.3d8b18c2a1 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23313 h.c167ba1b3e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23312 h.3d8b18c2a1:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23313 h.c167ba1b3e:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23312 h.3d8b18c2a1 +Yambo configure 5.2.0 r.23313 h.c167ba1b3e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was +It was created by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23312" -SHASH="3d8b18c2a1" +SREVISION="23313" +SHASH="c167ba1b3e" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23312 h.3d8b18c2a1, which was +This file was extended by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23312 h.3d8b18c2a1 +Yambo config.status 5.2.0 r.23313 h.c167ba1b3e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index c3fd5e9456..c7f568b8de 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23312 h.3d8b18c2a1, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23313 h.c167ba1b3e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23312" -SHASH="3d8b18c2a1" +SREVISION="23313" +SHASH="c167ba1b3e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 009499b034..fa404619bc 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -496,9 +496,9 @@ subroutine K_slepc_local_init() call parser('BSSEnTarget',l_target_energy) ! if (index(BSS_slepc_matrix_format,'explicit')>0) & - & call msg( 's', '[SLEPC] Faster algorithm but BSE matrix duplicated over MPI tasks') + & call msg( 's', '[SLEPC] Faster algorithm but BSE matrix re-distributed from internal to slepc parallel scheme') if (BSS_slepc_matrix_format=='shell') & - & call msg( 's', '[SLEPC] Slower algorithm but BSE matrix distributed over MPI tasks') + & call msg( 's', '[SLEPC] Slower algorithm but BSE matrix used with yambo parallel distribution scheme') ! ! Number of states for partial diagonalization !================================================ diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 10d7ec111a..9b0ef5195f 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -46,7 +46,10 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! use pars, ONLY:cI,cONE use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks - use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width + use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& + & run_inversion,run_Haydock + use LIVE_t, ONLY:live_timing + use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda ! use petscmat @@ -74,6 +77,8 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) RT_get_diagonal,CHT_get_diagonal,& ignore_petsc_error_handler ! + call timing('BSE mat slepc redistribution',OPR='start') + ! SL_H_dim=BS_H_dim SL_K_dim=BS_K_dim ! @@ -103,6 +108,8 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! ! Fill the values of the explicit submatrices of the nest matrix ! + if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) + ! do i_B=1,n_BS_blks i_Tk =BS_blk(i_B)%iT_k i_Tp =BS_blk(i_B)%iT_p @@ -153,8 +160,16 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) ! enddo ! + ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore + ! + if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) + ! + call live_timing(steps=1) + ! enddo ! + if (n_BS_blks>0) call live_timing() + ! call MatAssemblyBegin(R,MAT_FINAL_ASSEMBLY,ierr) call MatAssemblyEnd(R,MAT_FINAL_ASSEMBLY,ierr) call MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY,ierr) @@ -213,6 +228,8 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) #endif endif ! + call timing('BSE mat slepc redistribution',OPR='stop') + ! end subroutine K_stored_in_a_nest_matrix subroutine RT_mat_mult(M,X,F,ierr) diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 5c195e4353..e8edca7f42 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -17,7 +17,10 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) use pars, ONLY:cI,cONE use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_K_coupling,& & BS_res_ares_n_mat,l_BS_ares_from_res - use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width + use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width, & + & run_inversion,run_Haydock + use LIVE_t, ONLY:live_timing + use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda ! #include @@ -42,6 +45,8 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim PetscErrorCode :: ierr ! + call timing('BSE mat slepc redistribution',OPR='start') + ! if( BS_K_coupling) SL_H_dim=BS_H_dim if(.not.BS_K_coupling) SL_H_dim=BS_K_dim(i_BS_mat) SL_K_dim=BS_K_dim @@ -60,6 +65,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! ! filling of the slepc_mat ! + if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) ! do i_B=1,n_BS_blks ! @@ -138,9 +144,19 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! enddo ! + ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore + ! + if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) + ! + call live_timing(steps=1) + ! enddo ! + if (n_BS_blks>0) call live_timing() + ! call MatAssemblyBegin(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) call MatAssemblyEnd(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) ! + call timing('BSE mat slepc redistribution',OPR='stop') + ! end subroutine K_stored_in_a_slepc_matrix From 53d083a1ecc7ff9f957f4ec5d32b8467ff674ee4 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 7 Aug 2024 00:52:39 +0200 Subject: [PATCH 017/112] Version 5.2.0, Revision 23314, Hash af260068dc MODIFIED * configure include/version/version.m4 bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F NEW * Changes: - [yambo] Timing clock for bse mat slepc redistribution. clock name is now shorter Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_stored_in_a_nest_matrix.F | 4 ++-- src/bse/K_stored_in_a_slepc_matrix.F | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/configure b/configure index bc7605008e..1376ec2bab 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23313 h.c167ba1b3e. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23314 h.af260068dc. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23313 h.c167ba1b3e' -PACKAGE_STRING='Yambo 5.2.0 r.23313 h.c167ba1b3e' +PACKAGE_VERSION='5.2.0 r.23314 h.af260068dc' +PACKAGE_STRING='Yambo 5.2.0 r.23314 h.af260068dc' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23313 h.c167ba1b3e to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23314 h.af260068dc to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23313 h.c167ba1b3e:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23314 h.af260068dc:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23313 h.c167ba1b3e +Yambo configure 5.2.0 r.23314 h.af260068dc generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was +It was created by Yambo $as_me 5.2.0 r.23314 h.af260068dc, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23313" -SHASH="c167ba1b3e" +SREVISION="23314" +SHASH="af260068dc" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23313 h.c167ba1b3e, which was +This file was extended by Yambo $as_me 5.2.0 r.23314 h.af260068dc, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23313 h.c167ba1b3e +Yambo config.status 5.2.0 r.23314 h.af260068dc configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index c7f568b8de..b482ef01d5 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23313 h.c167ba1b3e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23314 h.af260068dc, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23313" -SHASH="c167ba1b3e" +SREVISION="23314" +SHASH="af260068dc" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 9b0ef5195f..23c4b7a5df 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -77,7 +77,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) RT_get_diagonal,CHT_get_diagonal,& ignore_petsc_error_handler ! - call timing('BSE mat slepc redistribution',OPR='start') + call timing('BSE mat slepc redist',OPR='start') ! SL_H_dim=BS_H_dim SL_K_dim=BS_K_dim @@ -228,7 +228,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) #endif endif ! - call timing('BSE mat slepc redistribution',OPR='stop') + call timing('BSE mat slepc redist',OPR='stop') ! end subroutine K_stored_in_a_nest_matrix diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index e8edca7f42..fa17d320a7 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -45,7 +45,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim PetscErrorCode :: ierr ! - call timing('BSE mat slepc redistribution',OPR='start') + call timing('BSE mat slepc redist',OPR='start') ! if( BS_K_coupling) SL_H_dim=BS_H_dim if(.not.BS_K_coupling) SL_H_dim=BS_K_dim(i_BS_mat) @@ -157,6 +157,6 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) call MatAssemblyBegin(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) call MatAssemblyEnd(slepc_mat,MAT_FINAL_ASSEMBLY,ierr) ! - call timing('BSE mat slepc redistribution',OPR='stop') + call timing('BSE mat slepc redist',OPR='stop') ! end subroutine K_stored_in_a_slepc_matrix From 2bdac3764b0e9761c96aa61816a48d54621ac257 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 7 Aug 2024 15:00:55 +0200 Subject: [PATCH 018/112] Version 5.2.0, Revision 23317, Hash afa3cee44e MODIFIED * configure include/version/version.m4 bse/K_diago_driver.F bse/K_driver_init.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F dipoles/DIPOLE_driver.F linear_algebra/MATRIX_slepc.F modules/SET_defaults.F modules/mod_BS_solvers.F Changes: - [yambo] Code related to slepc cleaned: (i) BSS_slepc_custom renamed BSS_slepc_pseudo_herm (ii) nested-debug approach removed (iii) some checks and variables naming improved Patch sent by: Davide Sangalli --- configure | 22 +- include/version/version.m4 | 6 +- src/bse/K_diago_driver.F | 49 ++- src/bse/K_driver_init.F | 11 +- src/bse/K_stored_in_a_nest_matrix.F | 440 ++++++++------------------- src/bse/K_stored_in_a_slepc_matrix.F | 25 +- src/dipoles/DIPOLE_driver.F | 1 + src/linear_algebra/MATRIX_slepc.F | 68 ++--- src/modules/SET_defaults.F | 4 +- src/modules/mod_BS_solvers.F | 2 +- 10 files changed, 212 insertions(+), 416 deletions(-) diff --git a/configure b/configure index 1376ec2bab..be567b2163 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23314 h.af260068dc. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23317 h.afa3cee44e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23314 h.af260068dc' -PACKAGE_STRING='Yambo 5.2.0 r.23314 h.af260068dc' +PACKAGE_VERSION='5.2.0 r.23317 h.afa3cee44e' +PACKAGE_STRING='Yambo 5.2.0 r.23317 h.afa3cee44e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23314 h.af260068dc to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23317 h.afa3cee44e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23314 h.af260068dc:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23317 h.afa3cee44e:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23314 h.af260068dc +Yambo configure 5.2.0 r.23317 h.afa3cee44e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23314 h.af260068dc, which was +It was created by Yambo $as_me 5.2.0 r.23317 h.afa3cee44e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23314" -SHASH="af260068dc" +SREVISION="23317" +SHASH="afa3cee44e" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23314 h.af260068dc, which was +This file was extended by Yambo $as_me 5.2.0 r.23317 h.afa3cee44e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23314 h.af260068dc +Yambo config.status 5.2.0 r.23317 h.afa3cee44e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index b482ef01d5..aa78df0ddd 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23314 h.af260068dc, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23317 h.afa3cee44e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23314" -SHASH="af260068dc" +SREVISION="23317" +SHASH="afa3cee44e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index fa404619bc..2627832b6e 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -26,7 +26,7 @@ subroutine K_diago_driver(iq,W,X_static) use BS, ONLY:BS_K_coupling,BS_H_dim,BS_K_dim,BS_perturbative_SOC,& & BS_res_ares_n_mat,l_BS_optics,l_BS_dichroism !,BS_Blocks_symmetrize_K,& use BS_solvers, ONLY:io_BSS_diago,BSS_perturbative_width,BSS_mode,BSS_slepc_double_grp,& -& BSS_write_eig_2_db,BSS_eh_W,BS_mat,BSS_n_eig,BS_E +& BSS_write_eig_2_db,BSS_eh_W,BS_mat,BSS_n_eig,BS_E,BSS_slepc_pseudo_herm use X_m, ONLY:X_t,X_OUTPUT_driver use electrons, ONLY:n_sp_pol,n_spinor use frequency, ONLY:w_samp @@ -41,7 +41,7 @@ subroutine K_diago_driver(iq,W,X_static) use timing_m, ONLY:timing #if defined _SLEPC && !defined _NL use interfaces, ONLY:MATRIX_slepc - use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_custom,& + use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,& & Slepc_v,BS_HAYVEC_free #endif use BS, ONLY:l_BS_kerr,l_BS_magnons,l_BS_photolum,l_BS_ares_from_res @@ -187,29 +187,22 @@ subroutine K_diago_driver(iq,W,X_static) ! #if defined _SLEPC && !defined _NL if(l_slepc) then - ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication - ! using the K_multiply_by_V function used in the Haydock method + ! if (index(BSS_slepc_matrix_format,"shell")>0) then - BSS_slepc_custom=(BSS_slepc_matrix_format=="shell").and.BS_K_coupling.and..not.BSS_slepc_double_grp + ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication + ! using the K_multiply_by_V function used in the Haydock method call K_shell_matrix(i_BS_mat,slepc_mat) + else if (index(BSS_slepc_matrix_format,"explicit")>0) then ! 2. Here we create a distributed PETSC matrix from the BS_blks - else if (BSS_slepc_matrix_format=="explicit") then - if (BS_K_coupling.and.l_BS_ares_from_res) then - ! 2.1. With memory optimization using nest matrix (only possible for the coupling case) - call K_stored_in_a_nest_matrix(i_BS_mat,.FALSE.,slepc_mat) - BSS_slepc_custom=.not.BSS_slepc_double_grp - !BSS_slepc_nested=.TRUE. ! to replace BSS_slepc_custom (?) + ! There are 2 cases + if (BS_K_coupling.and.l_BS_ares_from_res.and..not.index(BSS_slepc_matrix_format,"debug")>0) then + ! 2.1. Nest matrix uses pseudo-hermitian structure of BSE, only for the coupling case + call K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) else - ! 2.2. Explicit PETSc matrix for the rest of the cases + ! 2.2. Single PETSc matrix, for resonant case or coupling call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) endif - else if (BSS_slepc_matrix_format=="nest-debug".AND.BS_K_coupling.AND.l_BS_ares_from_res) then - call K_stored_in_a_nest_matrix(i_BS_mat,.TRUE.,slepc_mat) - ! 2.3 No optimization of memory for the coupling case (debug) - else if (BSS_slepc_matrix_format=="explicit-debug") then - call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) - else - call error(" wrong value of slepc matrix format: "//trim(BSS_slepc_matrix_format)) + ! endif endif #endif @@ -502,23 +495,21 @@ subroutine K_slepc_local_init() ! ! Number of states for partial diagonalization !================================================ - if (BSS_n_eig==0) then - BSS_n_eig = nint(BS_H_dim*.01) - call warning(' Calculating only 1% of the eigenvalues.') + if (BSS_n_eig<1) then + BSS_n_eig = nint(BS_H_dim*0.01) + call warning('N_eigen < 1. Calculating only 1% of the eigenvalues.') endif ! ! if the number of eigenvalues to calculate is larger than matrix dimensions ! if (BSS_n_eig>BS_H_dim) then - call warning(' Number of eigenvalues is larger than hamiltonian. Calculating only 1% of the eigenvalues.') - BSS_n_eig = nint(BS_H_dim*.01) + call warning('N_eigen > BS_H_dim. Calculating 10% of the eigenvalues.') + BSS_n_eig = nint(BS_H_dim*0.1) endif ! - ! if the number of eigenvalued to calculate is smaller than 1 - ! - if (BSS_n_eig<1) then - call warning(' Number of eigenvalues is smaller than hamiltonian. Calculating 1 eigenvalue.') - BSS_n_eig = 1 + if (BSS_n_eig>BS_K_dim(1) .and. BSS_slepc_pseudo_herm) then + call warning('N_eigen > BS_K_dim and pseudo-hermitian case. Calculating 10% of the eigenvalues.') + BSS_n_eig = nint(BS_K_dim(1)*0.1) endif ! call SlepcInitialize(PETSC_NULL_CHARACTER,ierr) diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index d19f4b06ab..d2fa9f78eb 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -13,7 +13,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) use parallel_m, ONLY:PARALLEL_default_mode use stderr, ONLY:STRING_match use BS_solvers, ONLY:BSS_mode,BSS_slepc_matrix_format,BSS_uses_DbGd,BSS_uses_FKE,& -& BSS_slepc_double_grp,run_Slepc,BSS_mode, & +& BSS_slepc_pseudo_herm,BSS_slepc_double_grp,run_Slepc,BSS_mode,& & l_abs_prop_chi_bse,l_eels_can_be_computed,l_eels_from_inversion use BS, ONLY:BSE_L_kind,BSE_mode,BS_K_is_ALDA,BS_dip_size,l_BSE_minimize_memory,BS_perturbative_SOC,& & BS_perturbative_SOC,l_BS_magnons,l_BS_photolum,& @@ -242,18 +242,25 @@ subroutine K_driver_init(what,iq,Ken,Xk) !======= ! #if defined _SLEPC && !defined _NL + ! + if(index(BSS_slepc_matrix_format,"shell")==0.and.index(BSS_slepc_matrix_format,"explicit")==0) & + & call error("Wrong value of slepc matrix format: "//trim(BSS_slepc_matrix_format)) ! ! Special case, slepc with distributed matrix need to explicitly compute the anti-resonant block l_slepc_special = index(BSS_mode,'s')/=0 .and. BS_K_coupling .and. (BSS_slepc_matrix_format=="shell-debug") ! ! The doubling is activated unless explicily imposed by input since slepc ! with shells requires the extended K_multiply_by_V for the non hermitian algorithm - ! Slepc are not (yet) able to deal with a pseudo-hermitian algorithm + ! Slepc are not (yet) able to deal with a pseudo-hermitian algorithm in some cases + ! or if imposed with "debug" input value of slepc matrix ! call parser('ImposeSymm',l_flag) if (l_slepc_special.and..not.l_flag) l_BS_ares_from_res=.FALSE. BSS_slepc_double_grp=l_BS_ares_from_res.and.l_slepc_special ! + BSS_slepc_pseudo_herm=BS_K_coupling .and. l_BS_ares_from_res .and. & + & (.not.BSS_slepc_double_grp) .and. index(BSS_slepc_matrix_format,"debug")==0 + ! #endif ! ! Double Grid support diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 23c4b7a5df..949c237c67 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -1,41 +1,11 @@ ! ! License-Identifier: GPL ! -! Copyright (C) 2006 The Yambo Team +! Copyright (C) 2024 The Yambo Team ! -! Authors (see AUTHORS file for details): BM +! Authors (see AUTHORS file for details): BM DS ! -module shellmat_module -#include - use petscmat - Mat::R,C -end module shellmat_module - -subroutine ignore_petsc_error_handler(comm,line,fun,file,n,p,mess,ctx,ierr) -! -! Handler to ignore error if MatMultHermitianTranspose cannot be set. -! This operation is only available for shell matrices in PETSc from v3.21. -! Setting MatMultTranspose is enough, but it is preferable to set both. -! - use petscsysdef - integer line,n,p - PetscInt ctx - PetscErrorCode ierr - MPI_Comm comm - character*(*) fun,file,mess - ierr = 0 - return -end subroutine ignore_petsc_error_handler - -subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) -! -! BS_K_coupling and l_BS_ares_from_res are assumed TRUE -! -! K is stored in a PETSc nest matrix, taking advantage of the four block -! structure of the matrix in this case: -! -! | R C | -! |-C^* -R^T| +! headers ! #include #include @@ -44,304 +14,136 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,nest_debug,slepc_mat) #include #include ! - use pars, ONLY:cI,cONE - use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks - use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& - & run_inversion,run_Haydock - use LIVE_t, ONLY:live_timing - use timing_m, ONLY:timing - use cuda_m, ONLY:have_cuda - ! - use petscmat - use slepceps - use shellmat_module - ! - implicit none - ! - integer, intent(in) :: i_BS_mat - logical, intent(in) :: nest_debug - Mat, intent(out) :: slepc_mat - Mat :: RT,CHT - Mat :: matArray(4) - ! - integer :: i_c,i_r,i_Tk,i_Tp,i_B,H_shift(2) - PetscScalar :: Mij,Mij_star - PetscScalar :: mone - PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim - PetscInt :: itwo - PetscErrorCode :: ierr - ! - external RT_mat_mult,CHT_mat_mult,& - RT_mat_mult_transpose,CHT_mat_mult_transpose,& - RT_mat_mult_hermitian_transpose,CHT_mat_mult_hermitian_transpose,& - RT_get_diagonal,CHT_get_diagonal,& - ignore_petsc_error_handler - ! - call timing('BSE mat slepc redist',OPR='start') - ! - SL_H_dim=BS_H_dim - SL_K_dim=BS_K_dim - ! - ! Allocate the explicit submatrices of the nest matrix - ! - call MatCreate(PETSC_COMM_WORLD,R,ierr) - call MatSetSizes(R,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) - call MatSetType(R,MATDENSE,ierr) -#ifdef PETSC_HAVE_CUDA - if (have_cuda) then - call MatSetType(R,MATDENSECUDA,ierr) - endif +subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) + ! + ! BS_K_coupling and l_BS_ares_from_res are assumed TRUE + ! + ! K is stored in a PETSc nest matrix, taking advantage of the four block + ! structure of the matrix in this case: + ! + ! | R C | + ! |-C^* -R^T| + ! + ! + use pars, ONLY:cI,cONE + use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks + use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& + & run_inversion,run_Haydock,BSS_slepc_pseudo_herm + use LIVE_t, ONLY:live_timing + use timing_m, ONLY:timing + use cuda_m, ONLY:have_cuda + ! + use petscmat + use slepceps + ! + implicit none + ! + integer, intent(in) :: i_BS_mat + Mat, intent(out) :: slepc_mat + ! + integer :: i_c,i_r,i_Tk,i_Tp,i_B,H_shift(2) + Mat :: R,C + PetscScalar :: Mij,Mij_star + PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim + PetscErrorCode :: ierr + ! + call timing('BSE mat slepc redist',OPR='start') + ! + SL_H_dim=BS_H_dim + SL_K_dim=BS_K_dim + ! + ! Allocate the explicit submatrices of the nest matrix + ! + call MatCreate(PETSC_COMM_WORLD,R,ierr) + call MatSetSizes(R,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) + call MatSetType(R,MATDENSE,ierr) +#if defined(PETSC_HAVE_CUDA) + if (have_cuda) call MatSetType(R,MATDENSECUDA,ierr) #endif - call MatSetFromOptions(R,ierr) - call MatSetUp(R,ierr) - ! - call MatCreate(PETSC_COMM_WORLD,C,ierr) - call MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) - call MatSetType(C,MATDENSE,ierr) + call MatSetFromOptions(R,ierr) + call MatSetUp(R,ierr) + ! + call MatCreate(PETSC_COMM_WORLD,C,ierr) + call MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) + call MatSetType(C,MATDENSE,ierr) #ifdef PETSC_HAVE_CUDA - if (have_cuda) then - call MatSetType(C,MATDENSECUDA,ierr) - endif + if (have_cuda) call MatSetType(C,MATDENSECUDA,ierr) #endif - call MatSetFromOptions(C,ierr) - call MatSetUp(C,ierr) - ! - ! Fill the values of the explicit submatrices of the nest matrix - ! - if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) - ! - do i_B=1,n_BS_blks - i_Tk =BS_blk(i_B)%iT_k - i_Tp =BS_blk(i_B)%iT_p - ! - H_shift=0 - if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) - ! - do i_r=1,BS_blk(i_B)%size(1) - ! - H_pos(1)=BS_blk(i_B)%coordinate(1)+i_r-2 - ! - do i_c=1,BS_blk(i_B)%size(2) - ! - H_pos(2)=BS_blk(i_B)%coordinate(2)+i_c-2 - ! - ! Then the upper triangle of each block and direct symmetrization - ! - if (H_pos(1)+H_shift(1)>H_pos(2)+H_shift(2)) cycle - if (H_pos(1)>H_pos(2)) cycle - ! - Mij = BS_blk(i_B)%mat(i_r,i_c) - Mij_star= real(BS_blk(i_B)%mat(i_r,i_c))-cI*aimag(BS_blk(i_B)%mat(i_r,i_c)) - ! - ! Add energies to the diagonal - ! - if(H_pos(1)+H_shift(1)==H_pos(2)+H_shift(2)) then - Mij =real(Mij) +BSS_eh_E(H_pos(1)+H_shift(1)+1)*cONE - Mij_star=real(Mij_star)+BSS_eh_E(H_pos(1)+H_shift(1)+1)*cONE - if (allocated(BSS_eh_W).and..not.BSS_perturbative_width) then - Mij =Mij +cI*BSS_eh_W(H_pos(1)+H_shift(1)+1) - Mij_star=Mij_star -cI*BSS_eh_W(H_pos(1)+H_shift(1)+1) - endif - endif - ! - select case(BS_blk(i_B)%mode) - case("R") - call MatSetValue( R, H_pos(1), H_pos(2), Mij , INSERT_VALUES, ierr ) - ! The resonant block is hermitian - call MatSetValue( R, H_pos(2), H_pos(1), Mij_star, INSERT_VALUES, ierr ) - case("C") - call MatSetValue( C, H_pos(1), H_pos(2), Mij , INSERT_VALUES, ierr ) - ! Anti-coupling from coupling: the whole BSE matrix is Pseudo-HErmitian - ! The coupling block and the anti-coupling block are symmetric - call MatSetValue( C, H_pos(2), H_pos(1), Mij , INSERT_VALUES, ierr ) - end select - ! - enddo - ! - enddo - ! - ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore - ! - if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) - ! - call live_timing(steps=1) - ! - enddo - ! - if (n_BS_blks>0) call live_timing() - ! - call MatAssemblyBegin(R,MAT_FINAL_ASSEMBLY,ierr) - call MatAssemblyEnd(R,MAT_FINAL_ASSEMBLY,ierr) - call MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY,ierr) - call MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY,ierr) + call MatSetFromOptions(C,ierr) + call MatSetUp(C,ierr) ! - if (.NOT.nest_debug) then - ! - ! Folded spectrum + ! Fill the values of the explicit submatrices of the nest matrix + ! + if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) + ! + do i_B=1,n_BS_blks ! - call MatCreateBSE(R,C,slepc_mat,ierr); + i_Tk =BS_blk(i_B)%iT_k + i_Tp =BS_blk(i_B)%iT_p ! - else + H_shift=0 + if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) ! - ! Nested matrix + do i_r=1,BS_blk(i_B)%size(1) + ! + H_pos(1)=BS_blk(i_B)%coordinate(1)+i_r-2 + ! + do i_c=1,BS_blk(i_B)%size(2) + ! + H_pos(2)=BS_blk(i_B)%coordinate(2)+i_c-2 + ! + ! Then the upper triangle of each block and direct symmetrization + ! + if (H_pos(1)+H_shift(1)>H_pos(2)+H_shift(2)) cycle + if (H_pos(1)>H_pos(2)) cycle + ! + Mij = BS_blk(i_B)%mat(i_r,i_c) + Mij_star= real(BS_blk(i_B)%mat(i_r,i_c))-cI*aimag(BS_blk(i_B)%mat(i_r,i_c)) + ! + ! Add energies to the diagonal + ! + if(H_pos(1)+H_shift(1)==H_pos(2)+H_shift(2)) then + Mij =real(Mij) +BSS_eh_E(H_pos(1)+H_shift(1)+1)*cONE + Mij_star=real(Mij_star)+BSS_eh_E(H_pos(1)+H_shift(1)+1)*cONE + if (allocated(BSS_eh_W).and..not.BSS_perturbative_width) then + Mij =Mij +cI*BSS_eh_W(H_pos(1)+H_shift(1)+1) + Mij_star=Mij_star -cI*BSS_eh_W(H_pos(1)+H_shift(1)+1) + endif + endif + ! + select case(BS_blk(i_B)%mode) + case("R") + call MatSetValue( R, H_pos(1), H_pos(2), Mij , INSERT_VALUES, ierr ) + ! The resonant block is hermitian + call MatSetValue( R, H_pos(2), H_pos(1), Mij_star, INSERT_VALUES, ierr ) + case("C") + call MatSetValue( C, H_pos(1), H_pos(2), Mij , INSERT_VALUES, ierr ) + ! Anti-coupling from coupling: the whole BSE matrix is Pseudo-HErmitian + ! The coupling block and the anti-coupling block are symmetric + call MatSetValue( C, H_pos(2), H_pos(1), Mij , INSERT_VALUES, ierr ) + end select + ! + enddo + ! + enddo ! - ! Create the two shell submatrices and define the required operations + ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,RT,ierr) -#ifdef PETSC_HAVE_CUDA - if (have_cuda) then - call MatSetVecType(RT,VECCUDA,ierr) - endif -#endif - call MatShellSetOperation(RT,MATOP_GET_DIAGONAL,RT_get_diagonal,ierr) - call MatShellSetOperation(RT,MATOP_MULT,RT_mat_mult,ierr) - call MatShellSetOperation(RT,MATOP_MULT_TRANSPOSE,RT_mat_mult_transpose,ierr) - call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) - call MatShellSetOperation(RT,MATOP_MULT_HERMITIAN_TRANSPOSE,RT_mat_mult_hermitian_transpose,ierr) - call PetscPopErrorHandler(ierr) + if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) ! - call MatCreateShell(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,0,CHT,ierr) -#ifdef PETSC_HAVE_CUDA - if (have_cuda) then - call MatSetVecType(CHT,VECCUDA,ierr) - endif -#endif - call MatShellSetOperation(CHT,MATOP_GET_DIAGONAL,CHT_get_diagonal,ierr) - call MatShellSetOperation(CHT,MATOP_MULT,CHT_mat_mult,ierr) - call MatShellSetOperation(CHT,MATOP_MULT_TRANSPOSE,CHT_mat_mult_transpose,ierr) - call PetscPushErrorHandler(ignore_petsc_error_handler,PETSC_NULL_INTEGER,ierr) - call MatShellSetOperation(CHT,MATOP_MULT_HERMITIAN_TRANSPOSE,CHT_mat_mult_hermitian_transpose,ierr) - call PetscPopErrorHandler(ierr) + call live_timing(steps=1) ! - ! Build the nest matrix - ! - matArray(1) = R - matArray(2) = C - matArray(3) = CHT - matArray(4) = RT - itwo = 2 - call MatCreateNest(PETSC_COMM_WORLD,itwo,PETSC_NULL_INTEGER,itwo,PETSC_NULL_INTEGER,matArray,slepc_mat,ierr) -#ifdef PETSC_HAVE_CUDA - if (have_cuda) then - call MatSetVecType(slepc_mat,VECCUDA,ierr) - endif -#endif - endif + enddo + ! + if (n_BS_blks>0) call live_timing() + ! + call MatAssemblyBegin(R,MAT_FINAL_ASSEMBLY,ierr) + call MatAssemblyEnd(R,MAT_FINAL_ASSEMBLY,ierr) + call MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY,ierr) + call MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY,ierr) + ! + call MatCreateBSE(R,C,slepc_mat,ierr); ! call timing('BSE mat slepc redist',OPR='stop') ! end subroutine K_stored_in_a_nest_matrix - -subroutine RT_mat_mult(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,F - PetscScalar mone - PetscErrorCode ierr - call MatMultTranspose(R,X,F,ierr) - mone = -1.0 - call VecScale(F,mone,ierr) - return -end subroutine RT_mat_mult - -subroutine CHT_mat_mult(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,F - PetscScalar mone - PetscErrorCode ierr - call MatMultHermitianTranspose(C,X,F,ierr) - mone = -1.0 - call VecScale(F,mone,ierr) - return -end subroutine CHT_mat_mult - -subroutine RT_mat_mult_transpose(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,F - PetscScalar mone - PetscErrorCode ierr - call MatMult(R,X,F,ierr) - mone = -1.0 - call VecScale(F,mone,ierr) - return -end subroutine RT_mat_mult_transpose - -subroutine CHT_mat_mult_transpose(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,X_conjugate,F - PetscScalar mone - PetscErrorCode ierr - call VecDuplicate(X,X_conjugate,ierr) - call VecCopy(X,X_conjugate,ierr) - call VecConjugate(X_conjugate,ierr) - call MatMult(C,X_conjugate,F,ierr) - mone = -1.0 - call VecConjugate(F,ierr) - call VecScale(F,mone,ierr) - call VecDestroy(X_conjugate,ierr) - return -end subroutine CHT_mat_mult_transpose - -subroutine RT_mat_mult_hermitian_transpose(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,X_conjugate,F - PetscScalar mone - PetscErrorCode ierr - call VecDuplicate(X,X_conjugate,ierr) - call VecCopy(X,X_conjugate,ierr) - call VecConjugate(X_conjugate,ierr) - call MatMult(R,X_conjugate,F,ierr) - mone = -1.0 - call VecConjugate(F,ierr) - call VecScale(F,mone,ierr) - call VecDestroy(X_conjugate,ierr) - return -end subroutine RT_mat_mult_hermitian_transpose - -subroutine CHT_mat_mult_hermitian_transpose(M,X,F,ierr) - use shellmat_module - implicit none - Mat M - Vec X,F - PetscScalar mone - PetscErrorCode ierr - call MatMult(C,X,F,ierr) - mone = -1.0 - call VecScale(F,mone,ierr) - return -end subroutine CHT_mat_mult_hermitian_transpose - -subroutine RT_get_diagonal(M,D) - use shellmat_module - implicit none - Mat M - Vec D - PetscScalar mone - PetscErrorCode ierr - call MatGetDiagonal(R,D,ierr) - mone = -1.0 - call VecScale(D,mone,ierr) - return -end subroutine RT_get_diagonal - -subroutine CHT_get_diagonal(M,D) - use shellmat_module - implicit none - Mat M - Vec D - PetscScalar mone - PetscErrorCode ierr - call MatGetDiagonal(C,D,ierr) - mone = -1.0 - call VecScale(D,mone,ierr) - return -end subroutine CHT_get_diagonal diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index fa17d320a7..21c9bb048a 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -5,10 +5,18 @@ ! ! Authors (see AUTHORS file for details): HM DS ! +! headers +! +#include +#include +#include +#include +#include +#include +! subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! - ! Here I fill the kernel (coupling not yet included) in a slepc matrix to be - ! used for diagonalization and/or invertion + ! Here I fill the kernel in a slepc matrix ! ! | (K_r) (cI*K_c) | ! K = | | @@ -17,23 +25,14 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) use pars, ONLY:cI,cONE use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_K_coupling,& & BS_res_ares_n_mat,l_BS_ares_from_res - use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width, & + use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& & run_inversion,run_Haydock use LIVE_t, ONLY:live_timing use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda ! -#include -#include -#include -#include -#include -#include - ! use petscmat use slepceps - use slepcepsdef - use petscmatdef ! implicit none ! @@ -58,7 +57,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) call MatSetType(slepc_mat, MATDENSE,ierr) #if defined(PETSC_HAVE_CUDA) - if(have_cuda) call MatSetType(slepc_mat,MATDENSECUDA,ierr) + if (have_cuda) call MatSetType(slepc_mat,MATDENSECUDA,ierr) #endif call MatSetUp(slepc_mat,ierr) diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index a593ef5033..6a75450efb 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -79,6 +79,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) l_BS_photolum= (index(BSE_prop,'photolum')/=0) if (l_BS_dichroism.or.l_BS_magnons .or. l_BS_photolum) Dip%bands_ordered=.false. #if defined _SLEPC && !defined _NL + !if ( index(BSS_mode,'s')/=0 .and. BS_K_coupling ) Dip%bands_ordered=.false. if ( index(BSS_mode,'s')/=0 ) Dip%bands_ordered=.false. #endif ! diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 45ec335c0d..7399b7ed1b 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -28,7 +28,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm use BS_solvers, ONLY : BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_maxit,& & BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_precondition,& & BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_mpd,& - & BSS_slepc_custom + & BSS_slepc_pseudo_herm ! use petscsys use petscmat @@ -74,7 +74,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm PetscReal :: tol, ferror PetscScalar :: target_energy PetscErrorCode :: ierr - PetscInt :: nev, ncv, mpd, maxit, its, nconv, n, i, j + PetscInt :: nev, ncv, mpd, maxit, its, nconv, i_eig, Nsize, Msize PetscInt :: idx(2) PetscScalar :: kr, ki PetscScalar, pointer :: xsr(:), xsi(:), xsr_left(:), xsi_left(:) @@ -89,9 +89,9 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm logical :: l_precondition character(len=30) :: rowfmt ! - ! Non hermitian not implemented yet! ! - call MatGetSize(M_slepc,n,j,ierr) + call MatGetSize(M_slepc,Nsize,Msize,ierr) + ! call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr) ! call MatCreateVecs(M_slepc,xr,xr_left,ierr) @@ -107,10 +107,12 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! call EPSSetOperators(eps,M_slepc,PETSC_NULL_MAT,ierr) if( present(V_left)) then - if (BSS_slepc_custom) then + if (BSS_slepc_pseudo_herm) then + ! Uses the pseudo-hermitian properties of the bse matrix call EPSSetProblemType(eps,EPS_BSE,ierr) else - ! To do: to check if it can be cast in the form of a generalized hermitian problem + ! One could check if the problem can be cast in the form of a generalized hermitian problem + ! However, given the existence of the pseudo-hermitian scheme, this is not useful anymore call EPSSetProblemType(eps,EPS_NHEP,ierr) call EPSSetTwoSided(eps,PETSC_TRUE,ierr) endif @@ -132,7 +134,10 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! ! Default Krylov-Schur used in case input is mispelled epskind=EPSKRYLOVSCHUR - ! From user + ! + ! Load eps from command line options. It overwrites input file + call EPSSetFromOptions(eps,ierr) + ! From input. It overwrites command line options. if(index(BSS_slepc_approach,"Krylov-Schur")>0) epskind=EPSKRYLOVSCHUR if(index(BSS_slepc_approach,"Generalized-Davidson")>0) epskind=EPSGD if(index(BSS_slepc_approach,"Jacobi-Davidson")>0) epskind=EPSJD @@ -236,19 +241,15 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm !Set monitor call EPSMonitorSet(eps,MyEPSMonitor,0,PETSC_NULL_FUNCTION,ierr) ! - ! Load eps from command line options. It overwrites input file - call EPSSetFromOptions(eps,ierr) - ! - if(present(V_left).and.BSS_slepc_custom.and.epskind==EPSKRYLOVSCHUR) then + if(present(V_left).and.BSS_slepc_pseudo_herm.and.epskind==EPSKRYLOVSCHUR) then ! Default Shao used in case input is mispelled or not set epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO - ! From user + ! Eventially load epsbsetype from command line options + call EPSKrylovSchurGetBSEType(eps,epsbsetype,ierr) + ! From input file. If set, it owrites command line options. if(index(BSS_slepc_approach,"Shao")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_SHAO if(index(BSS_slepc_approach,"Gruning")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_GRUNING - !if(index(BSS_slepc_approach,"Symplectic")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_SYMPLECTIC ! To be replaced - if(index(BSS_slepc_approach,"Projected")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE ! New replacement - ! Eventially load epsbsetype from command line options. It overwrites input file - !call EPSKrylovSchurGetBSEType(eps,epsbsetype,ierr) + if(index(BSS_slepc_approach,"Projected")>0) epsbsetype=EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE call EPSKrylovSchurSetBSEType(eps,epsbsetype,ierr) endif ! @@ -256,11 +257,10 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if (epskind==EPSKRYLOVSCHUR) BSS_slepc_approach="Krylov-Schur" ! if(present(V_left)) then - if(BSS_slepc_custom.and.epskind==EPSKRYLOVSCHUR) then + if(BSS_slepc_pseudo_herm.and.epskind==EPSKRYLOVSCHUR) then if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SHAO) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Shao" if(epsbsetype==EPS_KRYLOVSCHUR_BSE_GRUNING) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Gruning" - !if(epsbsetype==EPS_KRYLOVSCHUR_BSE_SYMPLECTIC) BSS_slepc_approach=trim(BSS_slepc_approach)//"+Symplectic" !To be replaced - if(epsbsetype==EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE) BSS_slepc_approach=trim(BSS_slepc_approach)//"+ProjectedBSE" ! New replacement + if(epsbsetype==EPS_KRYLOVSCHUR_BSE_PROJECTEDBSE) BSS_slepc_approach=trim(BSS_slepc_approach)//"+ProjectedBSE" else BSS_slepc_approach=trim(BSS_slepc_approach)//"+NonHermitian" endif @@ -325,19 +325,15 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call VecScatterCreateToAll(xr,vs,vout,ierr) endif - do i=0,n_eig-1 + do i_eig=0,n_eig-1 !Get converged eigenpairs: i-th eigenvalue is stored in kr !(real part) and ki (imaginary part) - if(present(V_left)) then - call EPSGetEigenpair(eps,i,kr,PETSC_NULL_SCALAR,xr,PETSC_NULL_VEC,ierr) - call EPSGetLeftEigenvector(eps,i,xr_left,PETSC_NULL_VEC,ierr) - else - call EPSGetEigenpair(eps,i,kr,PETSC_NULL_SCALAR,xr,PETSC_NULL_VEC,ierr) - endif + call EPSGetEigenpair(eps,i_eig,kr,PETSC_NULL_SCALAR,xr,PETSC_NULL_VEC,ierr) + if(present(V_left)) call EPSGetLeftEigenvector(eps,i_eig,xr_left,PETSC_NULL_VEC,ierr) ! !save the eigenvalues and eigenvectors in the matrix of the hamiltonian - if(present(E_real)) E_real(i+1) = real(kr,SP) - if(present(E_cmpl)) E_cmpl(i+1) = cmplx(kr,kind=SP) + if(present(E_real)) E_real(i_eig+1) = real(kr,SP) + if(present(E_cmpl)) E_cmpl(i_eig+1) = cmplx(kr,kind=SP) ! ! this is to write the vector to hdf5 directly !call VecView(xr,hdf5v,ierr) @@ -353,10 +349,10 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call VecScatterEnd(vs2,xdown,vout2,INSERT_VALUES,SCATTER_FORWARD,ierr) ! call VecGetArrayReadF90(vout,xsr,ierr) - V_right(1:n/2, i+1) = cmplx(xsr,kind=SP) + V_right(1:Nsize/2, i_eig+1) = cmplx(xsr,kind=SP) call VecRestoreArrayReadF90(vout,xsr,ierr) call VecGetArrayReadF90(vout2,xsr,ierr) - V_right(n/2+1:n, i+1) = cmplx(xsr,kind=SP) + V_right(Nsize/2+1:Nsize, i_eig+1) = cmplx(xsr,kind=SP) call VecRestoreArrayReadF90(vout2,xsr,ierr) ! call VecRestoreSubVector(xr,is(1),xup,ierr) @@ -373,10 +369,10 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call VecScatterEnd(vs2,xdown,vout2,INSERT_VALUES,SCATTER_FORWARD,ierr) ! call VecGetArrayReadF90(vout,xsr_left,ierr) - V_left(1:n/2, i+1) = cmplx(xsr_left,kind=SP) + V_left(1:Nsize/2, i_eig+1) = cmplx(xsr_left,kind=SP) call VecRestoreArrayReadF90(vout,xsr_left,ierr) call VecGetArrayReadF90(vout2,xsr_left,ierr) - V_left(n/2+1:n, i+1) = cmplx(xsr_left,kind=SP) + V_left(Nsize/2+1:Nsize, i_eig+1) = cmplx(xsr_left,kind=SP) call VecRestoreArrayReadF90(vout2,xsr_left,ierr) ! call VecRestoreSubVector(xr_left,is(1),xup,ierr) @@ -389,8 +385,8 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call VecScatterEnd(vs,xr,vout,INSERT_VALUES,SCATTER_FORWARD,ierr) ! call VecGetArrayReadF90(vout,xsr,ierr) - V_right(:, i+1) = cmplx(xsr,kind=SP) - !if (BSS_slepc_double_grp) V_right(BS_K_dim(1)+1:,i+1) =cI*V_right(BS_K_dim(1)+1:,i+1) + V_right(:, i_eig+1) = cmplx(xsr,kind=SP) + !if (BSS_slepc_double_grp) V_right(BS_K_dim(1)+1:,i_eig+1)=cI*V_right(BS_K_dim(1)+1:,i_eig+1) call VecRestoreArrayReadF90(vout,xsr,ierr) ! if (present(V_left)) then @@ -400,8 +396,8 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call VecScatterEnd(vs,xr_left,vout,INSERT_VALUES,SCATTER_FORWARD,ierr) ! call VecGetArrayReadF90(vout,xsr_left,ierr) - V_left(:, i+1) = cmplx(xsr_left,kind=SP) - !if (BSS_slepc_double_grp) V_left(BS_K_dim(1)+1:,i+1) =cI*V_left(BS_K_dim(1)+1:,i+1) + V_left(:, i_eig+1) = cmplx(xsr_left,kind=SP) + !if (BSS_slepc_double_grp) V_left(BS_K_dim(1)+1:,i_eig+1) =cI*V_left(BS_K_dim(1)+1:,i_eig+1) call VecRestoreArrayReadF90(vout,xsr_left,ierr) endif endif diff --git a/src/modules/SET_defaults.F b/src/modules/SET_defaults.F index 7201403eb7..628476d83c 100644 --- a/src/modules/SET_defaults.F +++ b/src/modules/SET_defaults.F @@ -55,7 +55,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) #if defined _SLEPC && !defined _NL use BS_solvers, ONLY:BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_maxit,& & BSS_slepc_precondition,BSS_slepc_approach,BSS_slepc_matrix_format,BSS_slepc_mpd,& -& BSS_slepc_custom +& BSS_slepc_pseudo_herm #endif use BS, ONLY:BS_n_g_W,BS_eh_en,BS_identifier,BS_q,BS_eh_win,MAX_BSK_LIN_size,& & BS_K_dim,BS_not_const_eh_f,BSK_mode,l_BSE_kernel_complete,& @@ -485,7 +485,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) BSS_slepc_mpd=0 BSS_slepc_tol=1E-6_SP BSS_slepc_target_E=0._SP - BSS_slepc_custom=.FALSE. + BSS_slepc_pseudo_herm=.FALSE. #endif ! ! TDDFT diff --git a/src/modules/mod_BS_solvers.F b/src/modules/mod_BS_solvers.F index 712788568b..03fee64e49 100644 --- a/src/modules/mod_BS_solvers.F +++ b/src/modules/mod_BS_solvers.F @@ -102,7 +102,7 @@ module BS_solvers real(SP) :: BSS_slepc_target_E !find eigenvalues close to this energy character(schlen):: BSS_slepc_matrix_format !matrix type ("shell","explicit","explicit-debug") logical :: BSS_slepc_double_grp !duplicate the number of groups for slepc shells solver - logical :: BSS_slepc_custom !use a slepc BSE specific solver + logical :: BSS_slepc_pseudo_herm !use a BSE specific solver designed for pseudo-hermitian matrices ! ! Solvers (Inversion) !========= From a6ab97e3e9a0fe3a39a16d001706d17c59af57f6 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 7 Aug 2024 17:04:01 +0200 Subject: [PATCH 019/112] Version 5.2.0, Revision 23318, Hash 2bdac3764b MODIFIED * configure include/version/version.m4 bse/K_Haydock.F bse/K_blocks.F bse/K_diago_driver.F bse/K_driver.F bse/K_driver_init.F bse/K_kernel.F bse/K_multiply_by_V.F bse/K_multiply_by_V_slepc.F bse/K_multiply_by_V_slepc_nest.F bse/K_multiply_by_V_transpose.F bse/K_multiply_by_V_transpose_slepc.F bse/K_restart.F bse/K_shell_matrix.F bse/K_solvers.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F modules/SET_defaults.F modules/mod_BS.F modules/mod_BS_solvers.F Changes: - [yambo] New I/O mode introduced. Now perturbative solvers can run without ever loading the full BSE kernel in memory Patch sent by: Davide Sangalli --- configure | 22 +++++----- include/version/version.m4 | 6 +-- src/bse/K_Haydock.F | 14 +++---- src/bse/K_blocks.F | 49 +++++++++++++++++++++++ src/bse/K_diago_driver.F | 10 ++--- src/bse/K_driver.F | 6 ++- src/bse/K_driver_init.F | 7 +++- src/bse/K_kernel.F | 7 +++- src/bse/K_multiply_by_V.F | 19 +++++++-- src/bse/K_multiply_by_V_slepc.F | 14 ++++--- src/bse/K_multiply_by_V_slepc_nest.F | 28 ++++++++----- src/bse/K_multiply_by_V_transpose.F | 18 +++++++-- src/bse/K_multiply_by_V_transpose_slepc.F | 14 ++++--- src/bse/K_restart.F | 7 +++- src/bse/K_shell_matrix.F | 3 +- src/bse/K_solvers.F | 7 ++-- src/bse/K_stored_in_a_nest_matrix.F | 24 +++++++---- src/bse/K_stored_in_a_slepc_matrix.F | 22 +++++++--- src/modules/SET_defaults.F | 3 +- src/modules/mod_BS.F | 2 + src/modules/mod_BS_solvers.F | 1 + 21 files changed, 204 insertions(+), 79 deletions(-) diff --git a/configure b/configure index be567b2163..bb91bfb2b2 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23317 h.afa3cee44e. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23318 h.2bdac3764b. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23317 h.afa3cee44e' -PACKAGE_STRING='Yambo 5.2.0 r.23317 h.afa3cee44e' +PACKAGE_VERSION='5.2.0 r.23318 h.2bdac3764b' +PACKAGE_STRING='Yambo 5.2.0 r.23318 h.2bdac3764b' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23317 h.afa3cee44e to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23318 h.2bdac3764b to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23317 h.afa3cee44e:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23318 h.2bdac3764b:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23317 h.afa3cee44e +Yambo configure 5.2.0 r.23318 h.2bdac3764b generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23317 h.afa3cee44e, which was +It was created by Yambo $as_me 5.2.0 r.23318 h.2bdac3764b, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23317" -SHASH="afa3cee44e" +SREVISION="23318" +SHASH="2bdac3764b" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23317 h.afa3cee44e, which was +This file was extended by Yambo $as_me 5.2.0 r.23318 h.2bdac3764b, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23317 h.afa3cee44e +Yambo config.status 5.2.0 r.23318 h.2bdac3764b configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index aa78df0ddd..997469eceb 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23317 h.afa3cee44e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23318 h.2bdac3764b, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23317" -SHASH="afa3cee44e" +SREVISION="23318" +SHASH="2bdac3764b" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_Haydock.F b/src/bse/K_Haydock.F index be2eef856b..967c060358 100644 --- a/src/bse/K_Haydock.F +++ b/src/bse/K_Haydock.F @@ -14,7 +14,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) use wrapper_omp, ONLY:V_plus_alpha_V_omp use frequency, ONLY:w_samp use com, ONLY:msg,isec - use BS_solvers, ONLY:BSS_desc,Haydock_threshold,io_BSS_Haydock,& + use BS_solvers, ONLY:BSS_desc,Haydock_threshold,io_BSS_Haydock,BSS_kernel_IO_on_the_fly,& & Haydock_vector,BS_HAYVEC_alloc,BS_HAYVEC_free,Haydock_terminator,Haydock_v0_mod, & & Haydock_iterIO,Haydock_iterMAX,HAYVEC_size,BSS_uses_DbGd,FG_factor use BS, ONLY:BS_K_Coupling,BS_Blocks_symmetrize_K,BS_T_grp,BS_nT_grps,BS_K_dim,& @@ -74,7 +74,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) Haydock_n_converged=0 Haydock_required_converged=2 ! - call BS_Blocks_symmetrize_K() + if(.not. BSS_kernel_IO_on_the_fly) call BS_blks_symmetrize_K() ! ! Use terminator? if (.not.Haydock_terminator) call parser('BSHayTer',Haydock_terminator) @@ -260,7 +260,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) #endif enddo ! - if(velocity_correction) call K_multiply_by_V(V_tmp,V0,1,"all") + if(velocity_correction) call K_multiply_by_V(V_tmp,V0,1,iq,"all") ! if(use_left_and_right) then ! @@ -282,7 +282,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) #endif enddo ! - if(velocity_correction) call K_multiply_by_V(V_tmp,W0,1,"all") + if(velocity_correction) call K_multiply_by_V(V_tmp,W0,1,iq,"all") ! endif ! @@ -302,7 +302,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! Cf= cZERO ! - call K_multiply_by_V(V0,Vnp1,-1,"all") + call K_multiply_by_V(V0,Vnp1,-1,iq,"all") call K_dot_product(v0_mod_,V0,Vnp1,1) ! ! For the coupling case if A = -R* (l_BS_ares_from_res=.FALSE.), V0 = (u0, -iu0*) @@ -363,7 +363,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! !|Vn+1> = H |Vn> ! - call K_multiply_by_V(Vn,Vnp1,1,"all") + call K_multiply_by_V(Vn,Vnp1,1,iq,"all") ! ! A(n) = ! @@ -454,7 +454,7 @@ subroutine K_Haydock(iq,W,OBS,Xk) ! !|Vn+1> = H |Vn> ! - call K_multiply_by_V(Vn,Vnp1,ItParity,"all") + call K_multiply_by_V(Vn,Vnp1,ItParity,iq,"all") ! ! B(n+1)= ^(1/2) (that is ^(1/2)) ! diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 901d9ecd2d..dcf62a0f34 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -202,6 +202,44 @@ subroutine K_block_free( iB ) end subroutine K_block_free ! ! +subroutine K_block_symmetrize(i_B) + use BS, ONLY:BS_blk,l_BS_ares_from_res + implicit none + integer, intent(in) :: i_B + ! + ! Symmetrize the DIAGONAL blocks only (i_Tk=i_Tp) + ! + integer :: i_Tk,i_Tp,i_r,i_c + ! + i_Tk =BS_blk(i_B)%iT_k + i_Tp =BS_blk(i_B)%iT_p + ! + if (i_Tk/=i_Tp) return + ! + select case(BS_blk(i_B)%mode) + case("R","A") + ! Resonant ("R") and anti-resonant ("A") parts are hermitian + do i_r=1,BS_blk(i_B)%size(1) + BS_blk(i_B)%mat(i_r,i_r) = real(BS_blk(i_B)%mat(i_r,i_r)) + do i_c=i_r+1,BS_blk(i_B)%size(2) + BS_blk(i_B)%mat(i_c,i_r) = conjg(BS_blk(i_B)%mat(i_r,i_c)) + enddo + enddo + case("C","Q") + if (.not.l_BS_ares_from_res) return + ! Coupling ("C") and anti-coupling ("Q") are symmetric if l_BS_ares_from_res=.TRUE. + do i_r=1,BS_blk(i_B)%size(1) + !This gives fails with test-suite test Benzene 06_tddft_cpl + !BS_blk(i_B)%mat(i_r,i_r) = real(BS_blk(i_B)%mat(i_r,i_r)) + do i_c=i_r+1,BS_blk(i_B)%size(2) + BS_blk(i_B)%mat(i_c,i_r) = BS_blk(i_B)%mat(i_r,i_c) + enddo + enddo + end select + ! +end subroutine K_block_symmetrize +! +! subroutine BS_blks_free(i_BS_mat) use BS, ONLY:BS_blk,n_BS_blks implicit none @@ -213,3 +251,14 @@ subroutine BS_blks_free(i_BS_mat) call K_block_free( iB ) enddo end subroutine +! +! +subroutine BS_blks_symmetrize_K() + use BS, ONLY:BS_blk,n_BS_blks + implicit none + integer :: i_B + do i_B=1,n_BS_blks + call K_block_symmetrize(i_B) + enddo +end subroutine BS_blks_symmetrize_K + diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 2627832b6e..344b23dbf6 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -194,15 +194,15 @@ subroutine K_diago_driver(iq,W,X_static) call K_shell_matrix(i_BS_mat,slepc_mat) else if (index(BSS_slepc_matrix_format,"explicit")>0) then ! 2. Here we create a distributed PETSC matrix from the BS_blks - ! There are 2 cases + ! There are 2 cases if (BS_K_coupling.and.l_BS_ares_from_res.and..not.index(BSS_slepc_matrix_format,"debug")>0) then ! 2.1. Nest matrix uses pseudo-hermitian structure of BSE, only for the coupling case - call K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) + call K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) else - ! 2.2. Single PETSc matrix, for resonant case or coupling - call K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) + ! 2.2. Single PETSc matrix, for resonant case or coupling + call K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) endif - ! + ! endif endif #endif diff --git a/src/bse/K_driver.F b/src/bse/K_driver.F index 62ca07f5ed..a7eddc64f2 100644 --- a/src/bse/K_driver.F +++ b/src/bse/K_driver.F @@ -19,7 +19,7 @@ subroutine K_driver(Xen,Ken,Xk,q,X_static_pp,Xw,Dip) use BS_solvers, ONLY:BSS_n_freqs,BSS_er,BSS_dr,BSS_mode,BSS_damp_reference,BSS_q0,& & BSS_Q_dir,BSS_E_dir use BS, ONLY:BS_bands,BS_q,BS_n_g_exch,BS_res_K_corr,BS_n_g_W,BS_cpl_K_corr,& -& BS_Blocks_and_Transitions_free,BSqpts,O_ng +& BS_Blocks_and_Transitions_free,BSqpts,O_ng,BS_iq_now use TDDFT, ONLY:FXC_per_memstps,FXC_n_mem_freqs,FXC_is_retarded use drivers, ONLY:l_rpa_IP,l_bs_fxc,l_bss use parallel_m, ONLY:PAR_IND_WF_b_and_k,PAR_K_scheme,PARALLEL_default_mode @@ -121,6 +121,10 @@ subroutine K_driver(Xen,Ken,Xk,q,X_static_pp,Xw,Dip) YAMBO_ALLOC(BSqpts,(3,BS_q(1):BS_q(2))) ! do iq=BS_q(1),BS_q(2) + ! + ! This is needed because it is not possible to pass iq + ! through the K_multuply_by_V_slepc subroutines + BS_iq_now=iq ! ! Output files & observables initialization !=========================================== diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index d2fa9f78eb..2b7d6c43d7 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -14,9 +14,10 @@ subroutine K_driver_init(what,iq,Ken,Xk) use stderr, ONLY:STRING_match use BS_solvers, ONLY:BSS_mode,BSS_slepc_matrix_format,BSS_uses_DbGd,BSS_uses_FKE,& & BSS_slepc_pseudo_herm,BSS_slepc_double_grp,run_Slepc,BSS_mode,& -& l_abs_prop_chi_bse,l_eels_can_be_computed,l_eels_from_inversion +& l_abs_prop_chi_bse,l_eels_can_be_computed,l_eels_from_inversion,& +& BSS_kernel_IO_on_the_fly use BS, ONLY:BSE_L_kind,BSE_mode,BS_K_is_ALDA,BS_dip_size,l_BSE_minimize_memory,BS_perturbative_SOC,& -& BS_perturbative_SOC,l_BS_magnons,l_BS_photolum,& +& BS_perturbative_SOC,l_BS_magnons,l_BS_photolum,BSK_IO_mode,& & BS_cpl_K_exchange,BS_n_g_exch,BS_res_K_exchange,BS_K_coupling,BS_res_ares_n_mat,& & BS_n_eh_spaces,l_BS_ares_from_res,BS_bands,BS_K_anti_resonant use TDDFT, ONLY:FXC_is_retarded,FXC_n_g_corr,l_Fxc_from_Vxc @@ -270,4 +271,6 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! call parser('BSS_FKE',BSS_uses_FKE) ! + BSS_kernel_IO_on_the_fly=index(BSK_IO_mode,"read_on_the_fly")>0 .and. (index(BSS_mode,'h')/=0 .or. index(BSS_mode,'s')/=0) + ! end subroutine diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index b811215403..23a2d81032 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -26,7 +26,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) use X_m, ONLY:X_t use interfaces, ONLY:el_density_and_current use QP_m, ONLY:QP_ng_Vxc - use BS, ONLY:BS_bands,BS_res_K_corr,BS_W,BS_W_is_diagonal,& + use BS, ONLY:BS_bands,BS_res_K_corr,BS_W,BS_W_is_diagonal,BS_ID,& & BS_res_K_exchange,BS_Block_size,BS_n_g_W,& & O_ng,BS_n_g_exch,BS_n_g_fxc,BS_identifier,BS_LiveTiming_steps,& & BS_K_dim,BS_K_is_ALDA,BS_cpl_K_exchange,& @@ -201,7 +201,10 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call msg('r','[BSE] Correlation components ',(/BS_n_g_W,O_ng/)) endif ! - call K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) + call K_restart(iq,X,BS_ID(1),BS_ID(2),BS_ID(3),l_partial_kernel_loaded) + ID_head =BS_ID(1) + ID =BS_ID(2) + ID_compr=BS_ID(3) ! if( l_BSE_kernel_complete ) return ! diff --git a/src/bse/K_multiply_by_V.F b/src/bse/K_multiply_by_V.F index b06251864a..52e56afd24 100644 --- a/src/bse/K_multiply_by_V.F +++ b/src/bse/K_multiply_by_V.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): AM MG DS IMA ! -subroutine K_multiply_by_V(Vi,Vo,iter_par,mode) +subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) ! ! Given K distributed on the processors, and Vi distributed on the processors ! multiply K by Vi. @@ -15,13 +15,16 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,mode) use pars, ONLY:SP,cONE,cZERO,cI use parallel_int, ONLY:PP_redux_wait use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_uses_DbGd,FG_factor,BSS_uses_FKE - use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res + use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_uses_DbGd,FG_factor,& + & BSS_uses_FKE,BSS_kernel_IO_on_the_fly + use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res,BS_ID + use IO_int, ONLY:io_control + use IO_m, ONLY:RD use wrapper, ONLY:M_by_V ! implicit none ! - integer ::iter_par + integer, intent(in)::iter_par,iq type(Haydock_vector) ::Vi(BS_nT_grps),Vo(BS_nT_grps) character(*),intent(in)::mode ! @@ -52,6 +55,12 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,mode) ColsFG_Tk = size(Vi(i_Tk)%fragment,2) ColsFG_Tp = size(Vi(i_Tp)%fragment,2) ! + if (BSS_kernel_IO_on_the_fly) then + call io_control(ACTION=RD,ID=BS_ID(2)) + call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") + call K_block_symmetrize(i_B) + endif + ! select case(BS_blk(i_B)%mode) case("R") ! @@ -256,6 +265,8 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,mode) ! end select ! + if (BSS_kernel_IO_on_the_fly) call K_block_free(i_B) + ! end do ! #if defined _MPI diff --git a/src/bse/K_multiply_by_V_slepc.F b/src/bse/K_multiply_by_V_slepc.F index 924ce6f52d..4cd287e44b 100644 --- a/src/bse/K_multiply_by_V_slepc.F +++ b/src/bse/K_multiply_by_V_slepc.F @@ -19,7 +19,7 @@ subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) ! use pars, ONLY : SP,cI use BS_solvers, ONLY : Slepc_v,BSS_Slepc_double_grp - use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim,BS_iq_now use parallel_m, ONLY : PAR_IND_T_Haydock ! use petscmat @@ -29,14 +29,18 @@ subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) ! implicit none ! + Mat :: slepc_mat + Vec :: vi,vo + PetscErrorCode :: ierr + ! + ! Work Space + ! PetscScalar :: tmp_value(1),tmp_value_star(1) PetscInt :: H_pos(1), pet_one - PetscErrorCode :: ierr ! VecScatter :: ctx PetscScalar, pointer :: xx(:) - Vec :: vi,vo,x - Mat :: slepc_mat + Vec :: x ! integer :: fac integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg @@ -75,7 +79,7 @@ subroutine K_multiply_by_V_slepc(slepc_mat,vi,vo,ierr) if(BSS_Slepc_double_grp) fac=(-1)**(Slepc_v%it(1)+1) ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product ! Slepc_v%Vo = H Slepc_v%Vi - call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"all") + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,BS_iq_now,"all") ! ! copy output vector Vo -> vo (distributed) ! diff --git a/src/bse/K_multiply_by_V_slepc_nest.F b/src/bse/K_multiply_by_V_slepc_nest.F index c703796902..7981f3c659 100644 --- a/src/bse/K_multiply_by_V_slepc_nest.F +++ b/src/bse/K_multiply_by_V_slepc_nest.F @@ -20,7 +20,7 @@ subroutine K_multiply_by_V_slepc_R(slepc_mat,vi,vo,ierr) ! use pars, ONLY : SP,cI use BS_solvers, ONLY : Slepc_v - use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim,BS_iq_now use parallel_m, ONLY : PAR_IND_T_Haydock ! use petscmat @@ -30,14 +30,18 @@ subroutine K_multiply_by_V_slepc_R(slepc_mat,vi,vo,ierr) ! implicit none ! + Mat :: slepc_mat + Vec :: vi,vo + PetscErrorCode :: ierr + ! + ! Work Space + ! PetscScalar :: tmp_value(1),tmp_value_star(1) PetscInt :: H_pos(1), pet_one - PetscErrorCode :: ierr ! VecScatter :: ctx PetscScalar, pointer :: xx(:) - Vec :: vi,vo,x - Mat :: slepc_mat + Vec :: x ! integer :: fac integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg @@ -75,7 +79,7 @@ subroutine K_multiply_by_V_slepc_R(slepc_mat,vi,vo,ierr) fac=1 ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product ! Slepc_v%Vo = H Slepc_v%Vi - call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"R") + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,BS_iq_now,"R") ! ! copy output vector Vo -> vo (distributed) ! @@ -105,7 +109,7 @@ subroutine K_multiply_by_V_slepc_C(slepc_mat,vi,vo,ierr) ! use pars, ONLY : SP,cI use BS_solvers, ONLY : Slepc_v - use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim,BS_iq_now use parallel_m, ONLY : PAR_IND_T_Haydock ! use petscmat @@ -115,14 +119,18 @@ subroutine K_multiply_by_V_slepc_C(slepc_mat,vi,vo,ierr) ! implicit none ! + Mat :: slepc_mat + Vec :: vi,vo + PetscErrorCode :: ierr + ! + ! Work Space + ! PetscScalar :: tmp_value(1),tmp_value_star(1) PetscInt :: H_pos(1), pet_one - PetscErrorCode :: ierr ! VecScatter :: ctx PetscScalar, pointer :: xx(:) - Vec :: vi,vo,x - Mat :: slepc_mat + Vec :: x ! integer :: fac integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg @@ -160,7 +168,7 @@ subroutine K_multiply_by_V_slepc_C(slepc_mat,vi,vo,ierr) fac=1 ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product ! Slepc_v%Vo = H Slepc_v%Vi - call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,"C") + call K_multiply_by_V( Slepc_v%Vi, Slepc_v%Vo,fac,BS_iq_now,"C") ! ! copy output vector Vo -> vo (distributed) ! diff --git a/src/bse/K_multiply_by_V_transpose.F b/src/bse/K_multiply_by_V_transpose.F index dda9b26f8b..9f7146eac3 100644 --- a/src/bse/K_multiply_by_V_transpose.F +++ b/src/bse/K_multiply_by_V_transpose.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): AM MG DS IMA ! -subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par) +subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par,iq) ! ! Given K distributed on the processors, and Vi distributed on the processors ! multiply Tranpose(K) by Vi. @@ -19,13 +19,15 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par) use pars, ONLY:SP,cONE,cZERO,cI use parallel_int, ONLY:PP_redux_wait use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp - use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res + use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_kernel_IO_on_the_fly + use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res,BS_ID + use IO_int, ONLY:io_control + use IO_m, ONLY:RD use wrapper, ONLY:M_by_V ! implicit none ! - integer ::iter_par + integer, intent(in)::iter_par,iq type(Haydock_vector) ::Vi(BS_nT_grps),Vo(BS_nT_grps) ! ! Work Space @@ -45,6 +47,12 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par) i_Tk =BS_blk(i_B)%iT_k i_Tp =BS_blk(i_B)%iT_p ! + if (BSS_kernel_IO_on_the_fly) then + call io_control(ACTION=RD,ID=BS_ID(2)) + call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") + call K_block_symmetrize(i_B) + endif + ! select case(BS_blk(i_B)%mode) case("R") ! @@ -139,6 +147,8 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par) ! end select ! + if (BSS_kernel_IO_on_the_fly) call K_block_free(i_B) + ! end do ! #if defined _MPI diff --git a/src/bse/K_multiply_by_V_transpose_slepc.F b/src/bse/K_multiply_by_V_transpose_slepc.F index d8d96ad678..36c9c4a8da 100644 --- a/src/bse/K_multiply_by_V_transpose_slepc.F +++ b/src/bse/K_multiply_by_V_transpose_slepc.F @@ -19,7 +19,7 @@ subroutine K_multiply_by_V_transpose_slepc(slepc_mat,vi,vo,ierr) ! use pars, ONLY : SP,cI use BS_solvers, ONLY : Slepc_v,BSS_Slepc_double_grp - use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim + use BS, ONLY : BS_T_grp,BS_nT_grps,BS_K_dim,BS_iq_now use parallel_m, ONLY : PAR_IND_T_Haydock ! use petscmat @@ -29,14 +29,18 @@ subroutine K_multiply_by_V_transpose_slepc(slepc_mat,vi,vo,ierr) ! implicit none ! + Mat :: slepc_mat + Vec :: vi,vo + PetscErrorCode :: ierr + ! + ! Work Space + ! PetscScalar :: tmp_value(1),tmp_value_star(1) PetscInt :: H_pos(1), pet_one - PetscErrorCode :: ierr ! VecScatter :: ctx PetscScalar, pointer :: xx(:) - Vec :: vi,vo,x - Mat :: slepc_mat + Vec :: x ! integer :: fac integer :: n, i_g, i_g_start, i_c, start_index, start_index_dg @@ -76,7 +80,7 @@ subroutine K_multiply_by_V_transpose_slepc(slepc_mat,vi,vo,ierr) if(BSS_Slepc_double_grp) fac=(-1)**(Slepc_v%it(2)+1) ! use the haydock routine to calculate the BSE auxiliaxy hamiltonian matrix-vector product ! Slepc_v%Vo = H Slepc_v%Vi - call K_multiply_by_V_transpose( Slepc_v%Vi, Slepc_v%Vo,fac ) + call K_multiply_by_V_transpose( Slepc_v%Vi, Slepc_v%Vo,fac,BS_iq_now ) ! ! copy output vector Vo -> vo (distributed) ! diff --git a/src/bse/K_restart.F b/src/bse/K_restart.F index 83eeb97a9a..5d31926b1a 100644 --- a/src/bse/K_restart.F +++ b/src/bse/K_restart.F @@ -14,6 +14,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) use drivers, ONLY:l_bs_fxc,l_bss use BS, ONLY:l_BSE_restart,l_BSE_kernel_complete,& & BS_K_cutoff,BS_K_cutoff_done,n_BS_blks + use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly use IO_int, ONLY:io_control use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,OP_RD,manage_action,& & RD,WR,RD_CL,RD_CL_IF_END,WR_CL,OP_APP,DUMP @@ -80,6 +81,9 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) endif ! if(l_BSE_kernel_complete.and.l_bss.and.io_BS_err==0) then + if (BSS_kernel_IO_on_the_fly.and.trim(IO_mode)=="full") then + call msg("s","BSE kernel will be loaded on the fly") + else if(trim(IO_mode)=="full") then timing_string="Loading full BSE kernel" ID_now=ID @@ -95,6 +99,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) if(n_BS_blks>0) call live_timing(steps=1) enddo if(n_BS_blks>0) call live_timing() + endif ! ! Only BS_blk%done was loaded ! Now I need to estimate compressed size and load @@ -135,7 +140,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) endif ! call io_control(ACTION=IO_ACT,COM=REP,ID=ID_head) - call io_control(ACTION=RD_CL,COM=REP,ID=ID) + if(.not.BSS_kernel_IO_on_the_fly) call io_control(ACTION=RD_CL,COM=REP,ID=ID) if( l_BSE_kernel_complete) call io_BS_PAR_free(ID_head,ID,IO_mode,.true.) if(.not.l_BSE_kernel_complete) call io_BS_PAR_free(ID_head,ID,IO_mode,.false.) ! diff --git a/src/bse/K_shell_matrix.F b/src/bse/K_shell_matrix.F index 93ee76f3d0..9231151802 100644 --- a/src/bse/K_shell_matrix.F +++ b/src/bse/K_shell_matrix.F @@ -12,6 +12,7 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! use BS, ONLY:BS_H_dim, BS_nT_grps,BS_res_ares_n_mat,BS_K_coupling,& & BS_Blocks_symmetrize_K,l_BS_ares_from_res + use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly ! ! | (K_r) (cI*K_c) | ! K = | | @@ -90,6 +91,6 @@ subroutine K_shell_matrix(i_BS_mat,slepc_mat) ! ! Symmetrize BS_blk%mat to be used in K_multiply_by_V ! - call BS_blocks_symmetrize_K() + if(.not.BSS_kernel_IO_on_the_fly) call BS_blocks_symmetrize_K() ! end subroutine K_shell_matrix diff --git a/src/bse/K_solvers.F b/src/bse/K_solvers.F index 8bc0e05787..62e4042b1b 100644 --- a/src/bse/K_solvers.F +++ b/src/bse/K_solvers.F @@ -13,8 +13,8 @@ subroutine K_solvers(iq,Ken,Xk,q,X_static,W_bss) use R_lattice, ONLY:bz_samp use X_m, ONLY:X_t use BS_solvers, ONLY:BSS_desc,BSS_free,BS_mat,run_Haydock,& -& run_inversion,run_Diago,run_Slepc - use BS, ONLY:BS_K_has_been_calculated_loaded,& +& run_inversion,run_Diago,run_Slepc,BSS_kernel_IO_on_the_fly + use BS, ONLY:BS_K_has_been_calculated_loaded,BS_ID,& & l_BS_abs,l_BS_kerr,l_BS_magnons,l_BS_dichroism use parallel_m, ONLY:master_cpu,CPU_structure use IO_int, ONLY:IO_and_Messaging_switch @@ -31,12 +31,11 @@ subroutine K_solvers(iq,Ken,Xk,q,X_static,W_bss) type(w_samp) ::W_bss integer ::iq ! - integer :: ID(3) logical :: l_partial_kernel_loaded ! ! If the BS database was not loaded in memory, call K_restart ! - if (.not. BS_K_has_been_calculated_loaded ) call K_restart(iq,X_static,ID(1),ID(2),ID(3),l_partial_kernel_loaded) + if (.not. BS_K_has_been_calculated_loaded ) call K_restart(iq,X_static,BS_ID(1),BS_ID(2),BS_ID(3),l_partial_kernel_loaded) ! if (.not. BS_K_has_been_calculated_loaded ) call error("Something went wrong in K_restart, cannot proceed with solver") ! diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 949c237c67..55899e86f5 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -14,7 +14,7 @@ #include #include ! -subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) +subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! ! BS_K_coupling and l_BS_ares_from_res are assumed TRUE ! @@ -25,10 +25,12 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) ! |-C^* -R^T| ! ! - use pars, ONLY:cI,cONE - use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks + use pars, ONLY:cI,cONE,lchlen + use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_ID use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& - & run_inversion,run_Haydock,BSS_slepc_pseudo_herm + & run_inversion,run_Haydock,BSS_kernel_IO_on_the_fly,BSS_slepc_pseudo_herm + use IO_int, ONLY:io_control + use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda @@ -38,10 +40,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) ! implicit none ! - integer, intent(in) :: i_BS_mat + integer, intent(in) :: i_BS_mat,iq Mat, intent(out) :: slepc_mat ! integer :: i_c,i_r,i_Tk,i_Tp,i_B,H_shift(2) + character(lchlen) :: live_msg Mat :: R,C PetscScalar :: Mij,Mij_star PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim @@ -74,7 +77,9 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) ! ! Fill the values of the explicit submatrices of the nest matrix ! - if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) + live_msg="Redistribute BSE in slepc_mat" + if (BSS_kernel_IO_on_the_fly) live_msg="Load and distribute BSE in slepc mat" + if (n_BS_blks>0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks ! @@ -84,6 +89,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) H_shift=0 if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) ! + if (BSS_kernel_IO_on_the_fly) then + call io_control(ACTION=RD,ID=BS_ID(2)) + call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") + endif + ! do i_r=1,BS_blk(i_B)%size(1) ! H_pos(1)=BS_blk(i_B)%coordinate(1)+i_r-2 @@ -129,7 +139,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) + if ( (.not.(run_Haydock.or.run_inversion)) .or. BSS_kernel_IO_on_the_fly) call K_block_free(i_B) ! call live_timing(steps=1) ! diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 21c9bb048a..4ef5f3ff5b 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -14,7 +14,7 @@ #include #include ! -subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) +subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! ! Here I fill the kernel in a slepc matrix ! @@ -22,11 +22,13 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! K = | | ! | (-cI*K_c^*) (-K_r^*) | ! - use pars, ONLY:cI,cONE + use pars, ONLY:cI,cONE,lchlen use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_K_coupling,& - & BS_res_ares_n_mat,l_BS_ares_from_res + & BS_res_ares_n_mat,l_BS_ares_from_res,BS_ID use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& - & run_inversion,run_Haydock + & run_inversion,run_Haydock,BSS_kernel_IO_on_the_fly + use IO_int, ONLY:io_control + use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda @@ -36,10 +38,11 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! implicit none ! - integer, intent(in) :: i_BS_mat + integer, intent(in) :: i_BS_mat,iq Mat, intent(out) :: slepc_mat ! integer :: i_c,i_r,i_Tk,i_Tp,i_B,H_shift(2) + character(lchlen) :: live_msg PetscScalar :: Mij,Mij_star PetscInt :: H_pos(2),SL_K_dim(2),SL_H_dim PetscErrorCode :: ierr @@ -64,7 +67,9 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) ! ! filling of the slepc_mat ! - if (n_BS_blks>0) call live_timing("Redistributing the BSE kernel in parallel slepc mat",n_BS_blks) + live_msg="Redistribute BSE in slepc_mat" + if (BSS_kernel_IO_on_the_fly) live_msg="Load and distribute BSE in slepc mat" + if (n_BS_blks>0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks ! @@ -77,6 +82,11 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,slepc_mat) if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) if(BS_blk(i_B)%mode=="A") H_shift(:)=BS_K_dim(1) ! + if (BSS_kernel_IO_on_the_fly) then + call io_control(ACTION=RD,ID=BS_ID(2)) + call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") + endif + ! do i_r=1,BS_blk(i_B)%size(1) ! H_pos(1)=BS_blk(i_B)%coordinate(1)+i_r-2 diff --git a/src/modules/SET_defaults.F b/src/modules/SET_defaults.F index 628476d83c..e84ca38e66 100644 --- a/src/modules/SET_defaults.F +++ b/src/modules/SET_defaults.F @@ -50,7 +50,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) use BS_solvers, ONLY:BSS_mode,BSS_n_freqs,BSS_er,BSS_dr,BSS_P_dir,BSS_E_dir,BSS_Q_dir,& & Haydock_threshold,Haydock_iterIO,Haydock_iterMAX,BSS_uses_DbGd,BSS_Wd,& & BSS_damp_reference,BSS_Vnl_included,BSS_uses_GreenF,BSS_inversion_mode,& -& BSS_perturbative_width,K_INV_EPS,K_INV_PL,K_INV_PI_PH,BSS_desc +& BSS_perturbative_width,K_INV_EPS,K_INV_PL,K_INV_PI_PH,BSS_desc,BSS_kernel_IO_on_the_fly use descriptors,ONLY:IO_desc_reset #if defined _SLEPC && !defined _NL use BS_solvers, ONLY:BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_maxit,& @@ -464,6 +464,7 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) BSS_Vnl_included=.FALSE. BSS_uses_GreenF=.FALSE. BSS_perturbative_width=.FALSE. + BSS_kernel_IO_on_the_fly=.FALSE. K_INV_PI_PH%what = "PH_PI" K_INV_PL%what = "PLS" K_INV_PL%treshold =0.5_SP diff --git a/src/modules/mod_BS.F b/src/modules/mod_BS.F index 86fe59d1e2..a268ed99af 100644 --- a/src/modules/mod_BS.F +++ b/src/modules/mod_BS.F @@ -65,7 +65,9 @@ module BS integer :: MAX_BSK_LIN_size integer :: BS_bands(2) integer :: BS_q(2) + integer :: BS_iq_now integer :: BS_identifier + integer :: BS_ID(3) integer(IPL) :: BS_lin_size_compressed integer :: BS_dip_size real(SP):: BS_field_direction(3,3) diff --git a/src/modules/mod_BS_solvers.F b/src/modules/mod_BS_solvers.F index 03fee64e49..5caaa3d7fd 100644 --- a/src/modules/mod_BS_solvers.F +++ b/src/modules/mod_BS_solvers.F @@ -65,6 +65,7 @@ module BS_solvers logical :: BSS_uses_DbGd logical :: BSS_Vnl_included logical :: BSS_uses_GreenF + logical :: BSS_kernel_IO_on_the_fly logical :: BSS_perturbative_width logical :: l_abs_prop_chi_bse=.TRUE. logical :: l_eels_can_be_computed=.TRUE. From 8a3fa13ff9afa1af403c87fdfac025b2f435f015 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 8 Aug 2024 12:38:14 +0200 Subject: [PATCH 020/112] Version 5.2.0, Revision 23125, Hash 3d7b25df8 MODIFIED * configure include/version/version.m4 Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index b1146d1716..e59953b327 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23122 h.b585505b07. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23126 h.3d7b25df8. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23122 h.b585505b07' -PACKAGE_STRING='Yambo 5.2.0 r.23122 h.b585505b07' +PACKAGE_VERSION='5.2.0 r.23126 h.3d7b25df8' +PACKAGE_STRING='Yambo 5.2.0 r.23126 h.3d7b25df8' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23122 h.b585505b07 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23126 h.3d7b25df8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23122 h.b585505b07:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23126 h.3d7b25df8:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23122 h.b585505b07 +Yambo configure 5.2.0 r.23126 h.3d7b25df8 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23122 h.b585505b07, which was +It was created by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23122" -SHASH="b585505b07" +SREVISION="23126" +SHASH="3d7b25df8" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23122 h.b585505b07, which was +This file was extended by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23122 h.b585505b07 +Yambo config.status 5.2.0 r.23126 h.3d7b25df8 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 72a6a8eabb..2e41014062 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23122 h.b585505b07, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23126 h.3d7b25df8, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23122" -SHASH="b585505b07" +SREVISION="23126" +SHASH="3d7b25df8" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From cce1c9c56cb49b4fb3d4dda24b2f2cb7334fa6d8 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 8 Aug 2024 17:29:48 +0200 Subject: [PATCH 021/112] Version 5.2.0, Revision 23126, Hash 8a3fa13ff MODIFIED * configure include/version/version.m4 dipoles/.objects dipoles/DIPOLE_build_covariants.F dipoles/DIPOLE_driver.F dipoles/DIPOLE_transverse.F dipoles/DIPOLE_x_real_space.F modules/mod_DIPOLES.F NEW * dipoles/DIPOLE_setup.F Changes: - Setup section of DIPOLE_driver moved to a dedicated routine. - Timing msg in DIPOLE_x_real_space fixed. Patch sent by: Andrea Marini --- configure | 22 ++--- include/version/version.m4 | 6 +- src/dipoles/.objects | 1 + src/dipoles/DIPOLE_build_covariants.F | 13 +-- src/dipoles/DIPOLE_driver.F | 109 ++++-------------------- src/dipoles/DIPOLE_setup.F | 118 ++++++++++++++++++++++++++ src/dipoles/DIPOLE_transverse.F | 11 +-- src/dipoles/DIPOLE_x_real_space.F | 12 +-- src/modules/mod_DIPOLES.F | 3 +- 9 files changed, 163 insertions(+), 132 deletions(-) create mode 100644 src/dipoles/DIPOLE_setup.F diff --git a/configure b/configure index e59953b327..27ca4217b1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23126 h.3d7b25df8. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23127 h.8a3fa13ff. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23126 h.3d7b25df8' -PACKAGE_STRING='Yambo 5.2.0 r.23126 h.3d7b25df8' +PACKAGE_VERSION='5.2.0 r.23127 h.8a3fa13ff' +PACKAGE_STRING='Yambo 5.2.0 r.23127 h.8a3fa13ff' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23126 h.3d7b25df8 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23127 h.8a3fa13ff to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23126 h.3d7b25df8:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23127 h.8a3fa13ff:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23126 h.3d7b25df8 +Yambo configure 5.2.0 r.23127 h.8a3fa13ff generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was +It was created by Yambo $as_me 5.2.0 r.23127 h.8a3fa13ff, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="3d7b25df8" +SREVISION="23127" +SHASH="8a3fa13ff" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was +This file was extended by Yambo $as_me 5.2.0 r.23127 h.8a3fa13ff, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23126 h.3d7b25df8 +Yambo config.status 5.2.0 r.23127 h.8a3fa13ff configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 2e41014062..0f9946b14a 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23126 h.3d7b25df8, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23127 h.8a3fa13ff, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="3d7b25df8" +SREVISION="23127" +SHASH="8a3fa13ff" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/.objects b/src/dipoles/.objects index c5efe3306c..f8d2f61d80 100644 --- a/src/dipoles/.objects +++ b/src/dipoles/.objects @@ -9,6 +9,7 @@ SC_objects = DIPOLE_SC_rotate.o NL_objects = Berry_polarization_EQ.o Ionic_polarization.o POLARIZATION_output.o #endif objs = Build_Overlaps_Det_EQ.o $(SC_objects) $(MAGN_objects) $(NL_objects) \ + DIPOLE_setup.o \ DIPOLE_IO.o DIPOLE_driver.o DIPOLE_build_covariants.o DIPOLE_x_real_space.o DIPOLE_spin_magnetization.o \ DIPOLE_kb_abinit_def_dim.o DIPOLE_kb_abinit_comp.o DIPOLE_kb_sum.o DIPOLE_kb_Ylm.o DIPOLE_dimensions.o \ DIPOLE_kb_pwscf_def_dim.o DIPOLE_kb_pwscf_comp.o DIPOLE_kb_init.o DIPOLE_p_matrix_elements.o DIPOLE_overlaps.o \ diff --git a/src/dipoles/DIPOLE_build_covariants.F b/src/dipoles/DIPOLE_build_covariants.F index de3821c315..2d899f886b 100644 --- a/src/dipoles/DIPOLE_build_covariants.F +++ b/src/dipoles/DIPOLE_build_covariants.F @@ -32,16 +32,11 @@ subroutine DIPOLE_build_covariants(Xen,Xk,Dip) ! ! Work Space ! - logical :: idir_not_done(3) - logical :: l_eval_polarization,l_force_SndOrd - integer :: ik,iv,ic,ic_min,iv_max,i_sp_pol,ikm1,id_red,idir,idx(3),ikbz,ik_mem - integer :: istep,max_step + logical :: idir_not_done(3),l_eval_polarization,l_force_SndOrd + integer :: ik,iv,ic,ic_min,iv_max,i_sp_pol,ikm1,id_red,idir,idx(3),ikbz,ik_mem,istep,max_step real(SP) :: Ev_m_Ec_KS - complex(SP), allocatable :: Sm1_plus (:,:,:) - complex(SP), allocatable :: Sm1_minus(:,:,:) - complex(SP) :: S_det(6) - complex(SP) :: Wop(Dip%ib(2),Dip%ib(2),2),DIP_tmp(6,Dip%ib(2),Dip%ib(2)) - complex(SP) :: S_tmp(Dip%ib(2),Dip%ib(2),2) + complex(SP), allocatable :: Sm1_plus (:,:,:),Sm1_minus(:,:,:) + complex(SP) :: S_det(6),Wop(Dip%ib(2),Dip%ib(2),2),DIP_tmp(6,Dip%ib(2),Dip%ib(2)),S_tmp(Dip%ib(2),Dip%ib(2),2) ! call timing("DIPOLE_buil_covariants",OPR="start") ! diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index a593ef5033..7d02e87ad5 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -23,30 +23,24 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! takes into account the phases. symmetries not yet implemented ! and then as *DeltaE ! - use drivers, ONLY:l_optics,l_real_time,l_sc_run,l_nl_optics + use drivers, ONLY:l_optics use pars, ONLY:SP,cZERO,schlen use electrons, ONLY:levels,n_sp_pol use IO_m, ONLY:io_DIP use R_lattice, ONLY:bz_samp use DIPOLES, ONLY:DIP_alloc,DIPOLE_t,DIP_iR,use_covariant_approach,use_real_space_approach,& -& Vnl_commutator_warning,use_g_space_approach,& -& use_shifted_grids_approach,DIP_P,DIP_v,DIP_S,eval_OVERLAPS,& -& compute_P2_dipoles,compute_Orb_dipoles,compute_Spin_dipoles +& Vnl_commutator_warning,use_g_space_approach,DIP_P,DIP_v,DIP_S,compute_P_dipoles,& +& compute_P2_dipoles,compute_Orb_dipoles,compute_Spin_dipoles,use_shifted_grids_approach use IO_int, ONLY:IO_and_Messaging_switch use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_nibz,PAR_COM_DIPk_ibz_A2A,& & PAR_IND_CON_BANDS_DIP,PAR_IND_VAL_BANDS_DIP use parallel_int, ONLY:PP_redux_wait,PARALLEL_global_indexes,PARALLEL_WF_distribute,PARALLEL_WF_index - use parser_m, ONLY:parser use DIPOLES, ONLY:DIP_spin,DIP_orbital,P_square use electrons, ONLY:n_spin,n_spinor #if defined _RT use DIPOLES, ONLY:DIP_P_spinor #endif - use BS, ONLY:BSE_prop,l_BS_magnons,l_BS_dichroism,l_BS_photolum -#if defined _SLEPC && !defined _NL - use BS_solvers, ONLY:BSS_mode -#endif - ! + use BS, ONLY:l_BS_dichroism use timing_m, ONLY:timing ! implicit none @@ -59,93 +53,18 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! integer :: ik,io_err character(schlen) :: msg - logical :: l_warning,use_dipole_transverse,idir_not_done(3) -#if defined _NL - logical :: l_dip_appr_from_user -#endif - ! - call timing('Dipoles',OPR='start') + logical :: l_warning,use_dipole_transverse,idir_not_done(3)=.FALSE. ! call section('*','Dipoles') + !=========================== + call timing('Dipoles',OPR='start') ! - ! DS 2017/08/22 : Case with io_DIP=.false. to be fixed - if (.not.io_DIP) then - call warning(' Cannot use DIP_P on the flight at the moment. Setting io_DIP=.true.') - io_DIP=.true. - endif - ! - l_BS_magnons= (index(BSE_prop,'magn')/=0) - l_BS_dichroism= (index(BSE_prop,'dich')/=0) - l_BS_photolum= (index(BSE_prop,'photolum')/=0) - if (l_BS_dichroism.or.l_BS_magnons .or. l_BS_photolum) Dip%bands_ordered=.false. -#if defined _SLEPC && !defined _NL - if ( index(BSS_mode,'s')/=0 ) Dip%bands_ordered=.false. -#endif - ! -#if defined _NL - ! - if (l_nl_optics) then - ! - ! In NL I always force the use of covariant dipoles - ! because they have a coerent phase, while normal dipole don't - ! this can be see in a districtive interference in the polarization - ! perpendicular to the field direction - ! I expect that dipole covariant decently reproduce non-linear response - ! - l_dip_appr_from_user=.false. - call parser("DipApproach",l_dip_appr_from_user) - if (.not.l_dip_appr_from_user) then - Dip%approach="Covariant" - Dip%ib(1) =1 - endif - ! - endif -#endif - ! - ! Setup logicals - !================ - use_g_space_approach = trim(Dip%approach)=='G-space v' - use_real_space_approach = trim(Dip%approach)=='R-space x' - use_covariant_approach = trim(Dip%approach)=='Covariant' - use_shifted_grids_approach = trim(Dip%approach)=='Shifted grids' - ! - compute_P2_dipoles = index(Dip%computed,"P2") /=0 - compute_Spin_dipoles = index(Dip%computed,"Spin")/=0 - compute_Orb_dipoles = index(Dip%computed,"Orb") /=0 -#if defined _SC - compute_P2_dipoles = compute_P2_dipoles .or. l_sc_run -#endif -#if defined _RT - compute_P2_dipoles = compute_P2_dipoles .or. l_real_time - compute_Spin_dipoles = compute_Spin_dipoles .or. (l_real_time .and. n_spin>1) - compute_Orb_dipoles = compute_Orb_dipoles .or. (l_real_time .and. n_spin>1) -#endif - compute_Spin_dipoles = compute_Spin_dipoles .or. (l_BS_magnons .and. n_spin>1) - ! - if(.not.any((/use_g_space_approach,use_real_space_approach,use_covariant_approach,use_shifted_grids_approach/))) then - call warning(' Dipoles approach defined in input not recognised. Reverting to G-space v') - use_g_space_approach = .true. - Dip%approach='G-space v' - endif - ! - call parser('PDirect' ,Dip%force_v_g_space) -#if defined _SC || defined _RT || defined _NL - Dip%force_v_g_space=Dip%force_v_g_space.or.l_sc_run.or.l_real_time.or.l_nl_optics -#endif - Dip%force_v_g_space =Dip%force_v_g_space.or.l_BS_photolum - Dip%force_v_g_space =Dip%force_v_g_space.and.(.not.use_g_space_approach) - use_dipole_transverse =.true. - idir_not_done =.true. - ! - Dip%computed='R V P' - if (compute_P2_dipoles) Dip%computed=trim(Dip%computed)//' P2' - if (compute_Spin_dipoles) Dip%computed=trim(Dip%computed)//' Spin' - if (compute_Orb_dipoles) Dip%computed=trim(Dip%computed)//' Orb' - ! - if (use_covariant_approach) eval_OVERLAPS=.true. + ! Setup + !======= + call DIPOLE_setup(Dip,use_dipole_transverse) ! ! Dipole dimensions to be fixed - ! + !=============================== call DIPOLE_dimensions(Xen,Dip,Dip%ib,(/0._SP,0._SP,0._SP/)) ! ! Parallelization @@ -257,12 +176,14 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) subroutine DIPOLES_alloc() ! call DIP_alloc('DIP_iR',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - call DIP_alloc('DIP_P' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) call DIP_alloc('DIP_v' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) DIP_iR=cZERO - DIP_P=cZERO DIP_v=cZERO ! + if (compute_P_dipoles) then + call DIP_alloc('DIP_P' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) + DIP_P=cZERO + endif if (compute_Orb_dipoles) then call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz,2/)) DIP_orbital=cZERO diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F new file mode 100644 index 0000000000..93aaa855c0 --- /dev/null +++ b/src/dipoles/DIPOLE_setup.F @@ -0,0 +1,118 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2024 The Yambo Team +! +! Authors (see AUTHORS file for details): AM DS +! +subroutine DIPOLE_setup(Dip,use_dipole_transverse) + ! + use drivers, ONLY:l_real_time,l_sc_run,l_nl_optics + use DIPOLES, ONLY:DIPOLE_t,use_covariant_approach,use_real_space_approach,& +& compute_P2_dipoles,compute_Orb_dipoles,compute_Spin_dipoles,& +& use_g_space_approach,eval_OVERLAPS,use_shifted_grids_approach,compute_P_dipoles + use IO_m, ONLY:io_DIP + use BS, ONLY:BSE_prop,l_BS_magnons,l_BS_dichroism,l_BS_photolum + use electrons, ONLY:n_spin + use parser_m, ONLY:parser +#if defined _SLEPC && !defined _NL + use BS_solvers, ONLY:BSS_mode +#endif + ! + implicit none + ! + type(DIPOLE_t),intent(inout) :: Dip + logical :: use_dipole_transverse + ! + ! Work Space + ! +#if defined _NL + logical :: l_dip_appr_from_user +#endif + ! + call section('+','Setup: observables and procedures') + !===================================================== + ! + ! io_DIP + !------- + ! DS 2017/08/22 : Case with io_DIP=.false. to be fixed + if (.not.io_DIP) then + call warning(' Cannot use DIP_P on the flight at the moment. Setting io_DIP=.true.') + io_DIP=.true. + endif + ! + ! Observables (needed later) + !------------- + l_BS_magnons= (index(BSE_prop,'magn')/=0) + l_BS_dichroism= (index(BSE_prop,'dich')/=0) + l_BS_photolum= (index(BSE_prop,'photolum')/=0) + if (l_BS_dichroism.or.l_BS_magnons .or. l_BS_photolum) Dip%bands_ordered=.false. +#if defined _SLEPC && !defined _NL + if ( index(BSS_mode,'s')/=0 ) Dip%bands_ordered=.false. +#endif + ! + ! logicals (approach) + !-------------------- +#if defined _NL + if (l_nl_optics) then + ! + ! In NL I always force the use of covariant dipoles + ! because they have a coerent phase, while normal dipole don't + ! this can be see in a districtive interference in the polarization + ! perpendicular to the field direction + ! I expect that dipole covariant decently reproduce non-linear response + ! + l_dip_appr_from_user=.false. + call parser("DipApproach",l_dip_appr_from_user) + if (.not.l_dip_appr_from_user) then + Dip%approach="Covariant" + Dip%ib(1) =1 + endif + endif +#endif + ! + use_g_space_approach = trim(Dip%approach)=='G-space v' + use_real_space_approach = trim(Dip%approach)=='R-space x' + use_covariant_approach = trim(Dip%approach)=='Covariant' + use_shifted_grids_approach = trim(Dip%approach)=='Shifted grids' + if(.not.any((/use_g_space_approach,use_real_space_approach,use_covariant_approach,use_shifted_grids_approach/))) then + call warning(' Dipoles approach defined in input not recognised. Reverting to G-space v') + use_g_space_approach = .true. + Dip%approach='G-space v' + endif + ! + call parser('PDirect' ,Dip%force_v_g_space) +#if defined _SC || defined _RT || defined _NL + Dip%force_v_g_space=Dip%force_v_g_space.or.l_sc_run.or.l_real_time.or.l_nl_optics +#endif + Dip%force_v_g_space =Dip%force_v_g_space.or.l_BS_photolum + Dip%force_v_g_space =Dip%force_v_g_space.and.(.not.use_g_space_approach) + use_dipole_transverse =use_g_space_approach + ! + ! logicals (components) + !----------------------- + compute_P_dipoles = use_g_space_approach !.or.use_dipole_transverse + compute_P2_dipoles = index(Dip%computed,"P2") /=0 + compute_Spin_dipoles = index(Dip%computed,"Spin")/=0 + compute_Orb_dipoles = index(Dip%computed,"Orb") /=0 +#if defined _SC + compute_P2_dipoles = compute_P2_dipoles .or. l_sc_run +#endif +#if defined _RT + compute_P2_dipoles = compute_P2_dipoles .or. l_real_time + compute_Spin_dipoles = compute_Spin_dipoles .or. (l_real_time .and. n_spin>1) + compute_Orb_dipoles = compute_Orb_dipoles .or. (l_real_time .and. n_spin>1) +#endif + compute_Spin_dipoles = compute_Spin_dipoles .or. (l_BS_magnons .and. n_spin>1) + ! + ! Computed components + !--------------------- + Dip%computed='R V' + if (compute_P_dipoles) Dip%computed=trim(Dip%computed)//' P' + if (compute_P2_dipoles) Dip%computed=trim(Dip%computed)//' P2' + if (compute_Spin_dipoles) Dip%computed=trim(Dip%computed)//' Spin' + if (compute_Orb_dipoles) Dip%computed=trim(Dip%computed)//' Orb' + ! + if (use_covariant_approach) eval_OVERLAPS=.true. + ! +end subroutine diff --git a/src/dipoles/DIPOLE_transverse.F b/src/dipoles/DIPOLE_transverse.F index 1bd698ccd4..ad8b9339ac 100644 --- a/src/dipoles/DIPOLE_transverse.F +++ b/src/dipoles/DIPOLE_transverse.F @@ -9,7 +9,7 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! ! This routine returns and . ! - use pars, ONLY:SP,schlen,cZERO + use pars, ONLY:SP,cZERO use drivers, ONLY:l_sc_run use interfaces, ONLY:WF_load,WF_free use LIVE_t, ONLY:live_timing @@ -40,7 +40,6 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! ! Work Space ! - character(schlen) :: live_t_string logical :: l_eval_DIP_iR,l_eval_DIP_V,l_eval_DIP_P2,l_use_comm,l_check logical, allocatable :: element_1D_spin(:) integer :: ik,ic_wf,iv_wf,i_wf,ic,iv,ib,ifrag,nc,& @@ -130,16 +129,10 @@ subroutine Dipole_transverse(Xen,Xk,Dip) element_1D_spin=(/PAR_IND_DIPk_ibz%element_1D(:),PAR_IND_DIPk_ibz%element_1D(:)/) ! endif - ! - live_t_string='Dipoles: P (T)' - if (l_eval_DIP_V) live_t_string='Dipoles: P and v (T)' - if (l_eval_DIP_V .and.l_eval_DIP_iR) live_t_string='Dipoles: P, V and iR (T)' - if (l_eval_DIP_P2.and.l_eval_DIP_V ) live_t_string='Dipoles: P, V and P2 (T)' - if (l_eval_DIP_P2.and.l_eval_DIP_iR) live_t_string='Dipoles: iR, P, V and P2 (T)' ! ! Main loop over k in IBZ ! - if (N_elements_todo>0) call live_timing(trim(live_t_string),N_elements_todo) + if (N_elements_todo>0) call live_timing(trim(Dip%computed)//" [Transverse]",N_elements_todo) ! do i_sp_pol=1,n_sp_pol ! diff --git a/src/dipoles/DIPOLE_x_real_space.F b/src/dipoles/DIPOLE_x_real_space.F index 91c6358e62..56fea3b356 100644 --- a/src/dipoles/DIPOLE_x_real_space.F +++ b/src/dipoles/DIPOLE_x_real_space.F @@ -19,9 +19,9 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v use X_m, ONLY:l_X_terminator use LIVE_t, ONLY:live_timing - use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& -& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& -& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID + use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& +& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& +& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID ! #include ! @@ -36,6 +36,7 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) & ic_wf,iv_wf,idir,n_LT_steps real(SP) :: Ev_m_Ec_KS,x_center(3) complex(SP) :: DIP_tmp(3,Dip%ib_lim(2):Dip%ib(2),Dip%ib(1):Dip%ib_lim(1)) + logical :: LT_msg=.FALSE. ! if(.not.Dip%force_v_g_space) Dip%Vnl_included=.true. ! @@ -51,8 +52,6 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) n_LT_steps=n_sp_pol*PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*& & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) - ! - if (n_LT_steps>0) call live_timing('Dipoles in real space',n_LT_steps) ! do i_sp_pol=1,n_sp_pol ! @@ -67,6 +66,9 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) ! DIP_tmp=cZERO ! + if (n_LT_steps>0.and..not.LT_msg) call live_timing(trim(Dip%computed)//" [real-space]",n_LT_steps) + LT_msg=.TRUE. + ! do iv=Dip%ib(1),Dip%ib_lim(1) ! if(.not.PAR_IND_VAL_BANDS_DIP%element_1D(iv)) cycle diff --git a/src/modules/mod_DIPOLES.F b/src/modules/mod_DIPOLES.F index 189499889c..d1127b6f1a 100644 --- a/src/modules/mod_DIPOLES.F +++ b/src/modules/mod_DIPOLES.F @@ -3,7 +3,7 @@ ! ! Copyright (C) 2016 The Yambo Team ! -! Authors (see AUTHORS file for details): DS +! Authors (see AUTHORS file for details): DS AM ! module DIPOLES ! @@ -19,6 +19,7 @@ module DIPOLES logical :: use_shifted_grids_approach logical :: use_g_space_approach logical :: use_real_space_approach + logical :: compute_P_dipoles logical :: compute_P2_dipoles logical :: compute_Spin_dipoles logical :: compute_Orb_dipoles From 9ae445cd9991f7ff38d422a0d3916764a08db432 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 9 Aug 2024 00:01:26 +0200 Subject: [PATCH 022/112] Version 5.2.0, Revision 23319, Hash a6ab97e3e9 MODIFIED * configure include/version/version.m4 bse/K_driver_init.F bse/K_multiply_by_V.F bse/K_multiply_by_V_transpose.F bse/K_restart.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F modules/SET_defaults.F modules/mod_BS_solvers.F Changes: - [yambo] Extended control on loading on the fly of BSE kernel Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_driver_init.F | 15 +++++++++++++-- src/bse/K_multiply_by_V.F | 6 +++--- src/bse/K_multiply_by_V_transpose.F | 6 +++--- src/bse/K_restart.F | 28 +++++++++++++++++++++------- src/bse/K_stored_in_a_nest_matrix.F | 8 ++++---- src/bse/K_stored_in_a_slepc_matrix.F | 8 ++++---- src/modules/SET_defaults.F | 5 ++++- src/modules/mod_BS_solvers.F | 2 ++ 10 files changed, 68 insertions(+), 38 deletions(-) diff --git a/configure b/configure index bb91bfb2b2..2ba6fb4939 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23318 h.2bdac3764b. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23319 h.a6ab97e3e9. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23318 h.2bdac3764b' -PACKAGE_STRING='Yambo 5.2.0 r.23318 h.2bdac3764b' +PACKAGE_VERSION='5.2.0 r.23319 h.a6ab97e3e9' +PACKAGE_STRING='Yambo 5.2.0 r.23319 h.a6ab97e3e9' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23318 h.2bdac3764b to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23319 h.a6ab97e3e9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23318 h.2bdac3764b:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23319 h.a6ab97e3e9:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23318 h.2bdac3764b +Yambo configure 5.2.0 r.23319 h.a6ab97e3e9 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23318 h.2bdac3764b, which was +It was created by Yambo $as_me 5.2.0 r.23319 h.a6ab97e3e9, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23318" -SHASH="2bdac3764b" +SREVISION="23319" +SHASH="a6ab97e3e9" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23318 h.2bdac3764b, which was +This file was extended by Yambo $as_me 5.2.0 r.23319 h.a6ab97e3e9, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23318 h.2bdac3764b +Yambo config.status 5.2.0 r.23319 h.a6ab97e3e9 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 997469eceb..f018268196 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23318 h.2bdac3764b, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23319 h.a6ab97e3e9, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23318" -SHASH="2bdac3764b" +SREVISION="23319" +SHASH="a6ab97e3e9" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index 2b7d6c43d7..bbb27d0c9c 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -7,15 +7,16 @@ ! subroutine K_driver_init(what,iq,Ken,Xk) ! + use pars, ONLY:SP,schlen use R_lattice, ONLY:bz_samp use electrons, ONLY:levels,n_sp_pol,n_spinor,n_spin use parser_m, ONLY:parser use parallel_m, ONLY:PARALLEL_default_mode - use stderr, ONLY:STRING_match + use stderr, ONLY:STRING_match,STRING_split use BS_solvers, ONLY:BSS_mode,BSS_slepc_matrix_format,BSS_uses_DbGd,BSS_uses_FKE,& & BSS_slepc_pseudo_herm,BSS_slepc_double_grp,run_Slepc,BSS_mode,& & l_abs_prop_chi_bse,l_eels_can_be_computed,l_eels_from_inversion,& -& BSS_kernel_IO_on_the_fly +& BSS_kernel_IO_on_the_fly,BSS_kernel_stored_size use BS, ONLY:BSE_L_kind,BSE_mode,BS_K_is_ALDA,BS_dip_size,l_BSE_minimize_memory,BS_perturbative_SOC,& & BS_perturbative_SOC,l_BS_magnons,l_BS_photolum,BSK_IO_mode,& & BS_cpl_K_exchange,BS_n_g_exch,BS_res_K_exchange,BS_K_coupling,BS_res_ares_n_mat,& @@ -40,7 +41,9 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! ! Work Space ! + integer :: i1,BSK_IO_n_strings logical :: l_flag,l_slepc_special,l_Fxc_Libxc + character(schlen) ::BSK_IO_strings(10) ! ! Defaults !========== @@ -272,5 +275,13 @@ subroutine K_driver_init(what,iq,Ken,Xk) call parser('BSS_FKE',BSS_uses_FKE) ! BSS_kernel_IO_on_the_fly=index(BSK_IO_mode,"read_on_the_fly")>0 .and. (index(BSS_mode,'h')/=0 .or. index(BSS_mode,'s')/=0) + if (BSS_kernel_IO_on_the_fly) then + call STRING_split(BSK_IO_mode,BSK_IO_strings,n_non_empty_strings=BSK_IO_n_strings) + BSS_kernel_stored_size=0._SP + do i1=1,BSK_IO_n_strings + if (.not.STRING_match(BSK_IO_strings(i1),"GB")) cycle + read (BSK_IO_strings(i1-1),*) BSS_kernel_stored_size + enddo + endif ! end subroutine diff --git a/src/bse/K_multiply_by_V.F b/src/bse/K_multiply_by_V.F index 52e56afd24..43042ef7cb 100644 --- a/src/bse/K_multiply_by_V.F +++ b/src/bse/K_multiply_by_V.F @@ -16,7 +16,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) use parallel_int, ONLY:PP_redux_wait use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_uses_DbGd,FG_factor,& - & BSS_uses_FKE,BSS_kernel_IO_on_the_fly + & BSS_uses_FKE,BSS_kernel_last_stored_block use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res,BS_ID use IO_int, ONLY:io_control use IO_m, ONLY:RD @@ -55,7 +55,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) ColsFG_Tk = size(Vi(i_Tk)%fragment,2) ColsFG_Tp = size(Vi(i_Tp)%fragment,2) ! - if (BSS_kernel_IO_on_the_fly) then + if (i_B>BSS_kernel_last_stored_block) then call io_control(ACTION=RD,ID=BS_ID(2)) call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") call K_block_symmetrize(i_B) @@ -265,7 +265,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) ! end select ! - if (BSS_kernel_IO_on_the_fly) call K_block_free(i_B) + if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) ! end do ! diff --git a/src/bse/K_multiply_by_V_transpose.F b/src/bse/K_multiply_by_V_transpose.F index 9f7146eac3..c6a8163e5c 100644 --- a/src/bse/K_multiply_by_V_transpose.F +++ b/src/bse/K_multiply_by_V_transpose.F @@ -19,7 +19,7 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par,iq) use pars, ONLY:SP,cONE,cZERO,cI use parallel_int, ONLY:PP_redux_wait use parallel_m, ONLY:PAR_IND_T_Haydock,PAR_COM_T_Haydock - use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_kernel_IO_on_the_fly + use BS_solvers, ONLY:Haydock_vector,BSS_Slepc_double_grp,BSS_kernel_last_stored_block use BS, ONLY:BS_nT_grps,BS_blk,n_BS_blks,BS_T_grp,l_BS_ares_from_res,BS_ID use IO_int, ONLY:io_control use IO_m, ONLY:RD @@ -47,7 +47,7 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par,iq) i_Tk =BS_blk(i_B)%iT_k i_Tp =BS_blk(i_B)%iT_p ! - if (BSS_kernel_IO_on_the_fly) then + if (i_B>BSS_kernel_last_stored_block) then call io_control(ACTION=RD,ID=BS_ID(2)) call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") call K_block_symmetrize(i_B) @@ -147,7 +147,7 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par,iq) ! end select ! - if (BSS_kernel_IO_on_the_fly) call K_block_free(i_B) + if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) ! end do ! diff --git a/src/bse/K_restart.F b/src/bse/K_restart.F index 5d31926b1a..1b130e51ba 100644 --- a/src/bse/K_restart.F +++ b/src/bse/K_restart.F @@ -11,10 +11,12 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) use LIVE_t, ONLY:live_timing use com, ONLY:msg use X_m, ONLY:X_t + use stderr, ONLY:real2ch + use units, ONLY:Gigabyte use drivers, ONLY:l_bs_fxc,l_bss use BS, ONLY:l_BSE_restart,l_BSE_kernel_complete,& -& BS_K_cutoff,BS_K_cutoff_done,n_BS_blks - use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly +& BS_K_cutoff,BS_K_cutoff_done,n_BS_blks,BS_blk + use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly,BSS_kernel_last_stored_block,BSS_kernel_stored_size use IO_int, ONLY:io_control use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,OP_RD,manage_action,& & RD,WR,RD_CL,RD_CL_IF_END,WR_CL,OP_APP,DUMP @@ -29,7 +31,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) ! Work space ! integer :: i_file,i_block,io_BS_err,IO_ACT,ID_now - real(SP) :: BS_K_cutoff_inp + real(SP) :: BS_K_cutoff_inp,size_now,Sz character(schlen) :: timing_string,IO_mode ! integer, external :: io_BS,io_BS_PAR_init,io_BS_header @@ -81,9 +83,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) endif ! if(l_BSE_kernel_complete.and.l_bss.and.io_BS_err==0) then - if (BSS_kernel_IO_on_the_fly.and.trim(IO_mode)=="full") then - call msg("s","BSE kernel will be loaded on the fly") - else + if (BSS_kernel_stored_size/=0._SP) then if(trim(IO_mode)=="full") then timing_string="Loading full BSE kernel" ID_now=ID @@ -93,12 +93,26 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) ID_now=ID_compr endif if(n_BS_blks>0) call live_timing(trim(timing_string),n_BS_blks) + if(.not.BSS_kernel_IO_on_the_fly) BSS_kernel_last_stored_block=n_BS_blks + size_now=0 do i_block=1,n_BS_blks call io_control(ACTION=RD,ID=ID_now) call io_BS_PAR_block(iq,i_block,ID_now,IO_MODE) - if(n_BS_blks>0) call live_timing(steps=1) + call live_timing(steps=1) + Sz=BS_blk(i_block)%size(1)*BS_blk(i_block)%size(2) + size_now=size_now+Sz*real(kind(size_now),SP)*2/Gigabyte + if (BSS_kernel_IO_on_the_fly.and.size_now>=BSS_kernel_stored_size) then + BSS_kernel_last_stored_block=i_block + exit + endif enddo if(n_BS_blks>0) call live_timing() + if (i_blockn_BS_blks) BSS_kernel_last_stored_block=n_BS_blks + endif + if (BSS_kernel_last_stored_block==n_BS_blks) BSS_kernel_IO_on_the_fly=.false. + if (BSS_kernel_IO_on_the_fly.and.trim(IO_mode)=="full") then + call msg("s","BSE kernel will be loaded on the fly") endif ! ! Only BS_blk%done was loaded diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 55899e86f5..ac046c17d3 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -28,7 +28,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) use pars, ONLY:cI,cONE,lchlen use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_ID use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& - & run_inversion,run_Haydock,BSS_kernel_IO_on_the_fly,BSS_slepc_pseudo_herm + & run_inversion,run_Haydock,BSS_kernel_last_stored_block,BSS_slepc_pseudo_herm use IO_int, ONLY:io_control use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing @@ -78,7 +78,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! Fill the values of the explicit submatrices of the nest matrix ! live_msg="Redistribute BSE in slepc_mat" - if (BSS_kernel_IO_on_the_fly) live_msg="Load and distribute BSE in slepc mat" + if (BSS_kernel_last_stored_block0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks @@ -89,7 +89,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) H_shift=0 if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) ! - if (BSS_kernel_IO_on_the_fly) then + if (i_B>BSS_kernel_last_stored_block) then call io_control(ACTION=RD,ID=BS_ID(2)) call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") endif @@ -139,7 +139,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( (.not.(run_Haydock.or.run_inversion)) .or. BSS_kernel_IO_on_the_fly) call K_block_free(i_B) + if ( (.not.(run_Haydock.or.run_inversion)) .or. i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) ! call live_timing(steps=1) ! diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 4ef5f3ff5b..d3b3a67433 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -26,7 +26,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) use BS, ONLY:BS_K_dim,BS_H_dim,BS_blk,n_BS_blks,BS_K_coupling,& & BS_res_ares_n_mat,l_BS_ares_from_res,BS_ID use BS_solvers, ONLY:BSS_eh_E,BSS_eh_W,BSS_perturbative_width,& - & run_inversion,run_Haydock,BSS_kernel_IO_on_the_fly + & run_inversion,run_Haydock,BSS_kernel_last_stored_block use IO_int, ONLY:io_control use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing @@ -68,7 +68,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! filling of the slepc_mat ! live_msg="Redistribute BSE in slepc_mat" - if (BSS_kernel_IO_on_the_fly) live_msg="Load and distribute BSE in slepc mat" + if (BSS_kernel_last_stored_block0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks @@ -82,7 +82,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) if(BS_blk(i_B)%mode=="C") H_shift(2)=BS_K_dim(1) if(BS_blk(i_B)%mode=="A") H_shift(:)=BS_K_dim(1) ! - if (BSS_kernel_IO_on_the_fly) then + if (i_B>BSS_kernel_last_stored_block) then call io_control(ACTION=RD,ID=BS_ID(2)) call io_BS_PAR_block(iq,i_B,BS_ID(2),"matonly") endif @@ -155,7 +155,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( .not. (run_Haydock.or.run_inversion) ) call K_block_free(i_B) + if ( .not. (run_Haydock.or.run_inversion) .or. i_B>BSS_kernel_last_stored_block ) call K_block_free(i_B) ! call live_timing(steps=1) ! diff --git a/src/modules/SET_defaults.F b/src/modules/SET_defaults.F index e84ca38e66..e58baeec7f 100644 --- a/src/modules/SET_defaults.F +++ b/src/modules/SET_defaults.F @@ -50,7 +50,8 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) use BS_solvers, ONLY:BSS_mode,BSS_n_freqs,BSS_er,BSS_dr,BSS_P_dir,BSS_E_dir,BSS_Q_dir,& & Haydock_threshold,Haydock_iterIO,Haydock_iterMAX,BSS_uses_DbGd,BSS_Wd,& & BSS_damp_reference,BSS_Vnl_included,BSS_uses_GreenF,BSS_inversion_mode,& -& BSS_perturbative_width,K_INV_EPS,K_INV_PL,K_INV_PI_PH,BSS_desc,BSS_kernel_IO_on_the_fly +& BSS_perturbative_width,K_INV_EPS,K_INV_PL,K_INV_PI_PH,BSS_desc,& +& BSS_kernel_IO_on_the_fly,BSS_kernel_stored_size,BSS_kernel_last_stored_block use descriptors,ONLY:IO_desc_reset #if defined _SLEPC && !defined _NL use BS_solvers, ONLY:BSS_slepc_extraction,BSS_slepc_ncv,BSS_slepc_tol,BSS_slepc_target_E,BSS_slepc_maxit,& @@ -465,6 +466,8 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) BSS_uses_GreenF=.FALSE. BSS_perturbative_width=.FALSE. BSS_kernel_IO_on_the_fly=.FALSE. + BSS_kernel_stored_size=-1._SP + BSS_kernel_last_stored_block=-1 K_INV_PI_PH%what = "PH_PI" K_INV_PL%what = "PLS" K_INV_PL%treshold =0.5_SP diff --git a/src/modules/mod_BS_solvers.F b/src/modules/mod_BS_solvers.F index 5caaa3d7fd..e0f68b6693 100644 --- a/src/modules/mod_BS_solvers.F +++ b/src/modules/mod_BS_solvers.F @@ -62,6 +62,8 @@ module BS_solvers real(SP) :: BSS_E_dir(3) ! Electric field real(SP) :: BSS_P_dir(3) ! Induced polarization real(SP) :: BSS_Q_dir(3) ! Field propagation direction + real(SP) :: BSS_kernel_stored_size + integer :: BSS_kernel_last_stored_block logical :: BSS_uses_DbGd logical :: BSS_Vnl_included logical :: BSS_uses_GreenF From fcac5b8cb08721a687cd33a8291136ac3eca9ee0 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 9 Aug 2024 00:21:22 +0200 Subject: [PATCH 023/112] Version 5.2.0, Revision 23320, Hash 9ae445cd99 MODIFIED * configure include/version/version.m4 bse/K_blocks.F Bugs: - [yambo] Fixed issue introduced in the last commit Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_blocks.F | 18 ++++++++++++++---- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/configure b/configure index 2ba6fb4939..1f6a4daa6a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23319 h.a6ab97e3e9. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23320 h.9ae445cd99. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23319 h.a6ab97e3e9' -PACKAGE_STRING='Yambo 5.2.0 r.23319 h.a6ab97e3e9' +PACKAGE_VERSION='5.2.0 r.23320 h.9ae445cd99' +PACKAGE_STRING='Yambo 5.2.0 r.23320 h.9ae445cd99' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23319 h.a6ab97e3e9 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23320 h.9ae445cd99 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23319 h.a6ab97e3e9:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23320 h.9ae445cd99:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23319 h.a6ab97e3e9 +Yambo configure 5.2.0 r.23320 h.9ae445cd99 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23319 h.a6ab97e3e9, which was +It was created by Yambo $as_me 5.2.0 r.23320 h.9ae445cd99, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23319" -SHASH="a6ab97e3e9" +SREVISION="23320" +SHASH="9ae445cd99" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23319 h.a6ab97e3e9, which was +This file was extended by Yambo $as_me 5.2.0 r.23320 h.9ae445cd99, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23319 h.a6ab97e3e9 +Yambo config.status 5.2.0 r.23320 h.9ae445cd99 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index f018268196..a9332e3390 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23319 h.a6ab97e3e9, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23320 h.9ae445cd99, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23319" -SHASH="a6ab97e3e9" +SREVISION="23320" +SHASH="9ae445cd99" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index dcf62a0f34..6e7dcaabb4 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -161,7 +161,8 @@ subroutine K_blocks( ) subroutine K_block_alloc( iB ) ! use pars, ONLY:SP,cZERO - use BS, ONLY:BS_blk + use BS, ONLY:BS_blk,l_BSE_kernel_complete + use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly ! #include ! @@ -169,7 +170,11 @@ subroutine K_block_alloc( iB ) ! integer :: diag_size ! - YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + if (BSS_kernel_IO_on_the_fly.and.l_BSE_kernel_complete) then + allocate(BS_blk(iB)%mat(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + else + YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + endif allocate(BS_blk(iB)%done(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) BS_blk(iB)%mat=cZERO BS_blk(iB)%done(:,:)="f" @@ -186,13 +191,18 @@ end subroutine K_block_alloc ! subroutine K_block_free( iB ) ! - use BS, ONLY:BS_blk + use BS, ONLY:BS_blk,l_BSE_kernel_complete + use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly ! #include ! integer, intent(in) :: iB ! - YAMBO_FREE(BS_blk(iB)%mat) + if (BSS_kernel_IO_on_the_fly.and.l_BSE_kernel_complete) then + deallocate(BS_blk(iB)%mat) + else + YAMBO_FREE(BS_blk(iB)%mat) + endif deallocate(BS_blk(iB)%done) if (BS_blk(iB)%coordinate(1)==BS_blk(iB)%coordinate(2)) then deallocate(BS_blk(iB)%table) From c623bec9248a21020fae4d5024cb887e5e94feeb Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 9 Aug 2024 01:11:14 +0200 Subject: [PATCH 024/112] Version 5.2.0, Revision 23321, Hash fcac5b8cb0 MODIFIED * configure include/version/version.m4 bse/K_blocks.F bse/K_kernel.F bse/K_multiply_by_V.F bse/K_multiply_by_V_transpose.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F io_parallel/io_BS_PAR_block.F Changes: - [yambo] Allocation of BS_blk only for mat when loading kernel on the fly Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_blocks.F | 20 +++++++++++--------- src/bse/K_kernel.F | 10 +++++----- src/bse/K_multiply_by_V.F | 6 +++--- src/bse/K_multiply_by_V_transpose.F | 2 +- src/bse/K_stored_in_a_nest_matrix.F | 3 ++- src/bse/K_stored_in_a_slepc_matrix.F | 3 ++- src/io_parallel/io_BS_PAR_block.F | 4 ++-- 9 files changed, 40 insertions(+), 36 deletions(-) diff --git a/configure b/configure index 1f6a4daa6a..60446cdda3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23320 h.9ae445cd99. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23321 h.fcac5b8cb0. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23320 h.9ae445cd99' -PACKAGE_STRING='Yambo 5.2.0 r.23320 h.9ae445cd99' +PACKAGE_VERSION='5.2.0 r.23321 h.fcac5b8cb0' +PACKAGE_STRING='Yambo 5.2.0 r.23321 h.fcac5b8cb0' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23320 h.9ae445cd99 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23321 h.fcac5b8cb0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23320 h.9ae445cd99:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23321 h.fcac5b8cb0:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23320 h.9ae445cd99 +Yambo configure 5.2.0 r.23321 h.fcac5b8cb0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23320 h.9ae445cd99, which was +It was created by Yambo $as_me 5.2.0 r.23321 h.fcac5b8cb0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23320" -SHASH="9ae445cd99" +SREVISION="23321" +SHASH="fcac5b8cb0" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23320 h.9ae445cd99, which was +This file was extended by Yambo $as_me 5.2.0 r.23321 h.fcac5b8cb0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23320 h.9ae445cd99 +Yambo config.status 5.2.0 r.23321 h.fcac5b8cb0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a9332e3390..b962c48cb0 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23320 h.9ae445cd99, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23321 h.fcac5b8cb0, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23320" -SHASH="9ae445cd99" +SREVISION="23321" +SHASH="fcac5b8cb0" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 6e7dcaabb4..71eab0ef5c 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -158,7 +158,7 @@ subroutine K_blocks( ) end subroutine ! ! -subroutine K_block_alloc( iB ) +subroutine K_block_alloc( iB, mode ) ! use pars, ONLY:SP,cZERO use BS, ONLY:BS_blk,l_BSE_kernel_complete @@ -167,14 +167,15 @@ subroutine K_block_alloc( iB ) #include ! integer, intent(in) :: iB + character(*), intent(in) :: mode ! integer :: diag_size ! - if (BSS_kernel_IO_on_the_fly.and.l_BSE_kernel_complete) then + if (mode=="matonly") then allocate(BS_blk(iB)%mat(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) - else - YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) + return endif + YAMBO_ALLOC(BS_blk(iB)%mat,(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) allocate(BS_blk(iB)%done(BS_blk(iB)%size(1),BS_blk(iB)%size(2))) BS_blk(iB)%mat=cZERO BS_blk(iB)%done(:,:)="f" @@ -189,7 +190,7 @@ subroutine K_block_alloc( iB ) end subroutine K_block_alloc ! ! -subroutine K_block_free( iB ) +subroutine K_block_free( iB, mode ) ! use BS, ONLY:BS_blk,l_BSE_kernel_complete use BS_solvers, ONLY:BSS_kernel_IO_on_the_fly @@ -197,12 +198,13 @@ subroutine K_block_free( iB ) #include ! integer, intent(in) :: iB + character(*), intent(in) :: mode ! - if (BSS_kernel_IO_on_the_fly.and.l_BSE_kernel_complete) then + if (mode=="matonly") then deallocate(BS_blk(iB)%mat) - else - YAMBO_FREE(BS_blk(iB)%mat) + return endif + YAMBO_FREE(BS_blk(iB)%mat) deallocate(BS_blk(iB)%done) if (BS_blk(iB)%coordinate(1)==BS_blk(iB)%coordinate(2)) then deallocate(BS_blk(iB)%table) @@ -258,7 +260,7 @@ subroutine BS_blks_free(i_BS_mat) do iB=1,n_BS_blks if(i_BS_mat/=BS_blk(iB)%ira_k) cycle if(.not.allocated(BS_blk(iB)%mat)) cycle - call K_block_free( iB ) + call K_block_free( iB, "all" ) enddo end subroutine ! diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 23a2d81032..55c1032efb 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -375,7 +375,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! do i_block=1,n_BS_blks ! - if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block,"all") ! ! Read BS_blk to check if the transition was already computed ! @@ -400,7 +400,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) ! if ( (.not.l_partial_kernel_loaded) .and. io_BS_K .and. l_write_kernel_step) then ! - if (BS_blk_done(i_block) .or. BS_blk_todo) call K_block_free(i_block) + if (BS_blk_done(i_block) .or. BS_blk_todo) call K_block_free(i_block,"all") ! endif ! @@ -465,7 +465,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) if(l_partial_kernel_loaded.and.l_write_kernel) then call io_control(ACTION=WR,ID=ID) call io_BS_PAR_block(iq,i_block,ID,"full") - if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block) + if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block,"all") endif #endif cycle @@ -477,7 +477,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) if (iHxc==3) BSK_IO_sum_value=l_bs_exch.or.BS_K_is_ALDA endif ! - if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block,"all") ! ! Read BS_blk to check if the transition was already computed ! @@ -812,7 +812,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR,COM=REP,SEC=(/i_block+1/),ID=ID) io_BS_err=io_BS(iq,X,ID) #endif - if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block) + if (io_BS_K.and.l_write_kernel_step) call K_block_free(i_block,"all") endif ! call live_timing(steps=i_steps) diff --git a/src/bse/K_multiply_by_V.F b/src/bse/K_multiply_by_V.F index 43042ef7cb..f1a205aa12 100644 --- a/src/bse/K_multiply_by_V.F +++ b/src/bse/K_multiply_by_V.F @@ -64,7 +64,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) select case(BS_blk(i_B)%mode) case("R") ! - if (trim(mode)/="R".and.trim(mode)/="all") cycle + if (trim(mode)/="R".and.trim(mode)/="all") goto 100 ! if (.not. BSS_uses_FKE) then !Diagonal Kernel Extension ! @@ -134,7 +134,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) ! case("C") ! - if (trim(mode)/="C".and.trim(mode)/="all") cycle + if (trim(mode)/="C".and.trim(mode)/="all") goto 100 ! ! IA (2022/01/19): ! Preliminary implementation of DbGd into coupling case does not work - to be tested @@ -265,7 +265,7 @@ subroutine K_multiply_by_V(Vi,Vo,iter_par,iq,mode) ! end select ! - if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) +100 if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") ! end do ! diff --git a/src/bse/K_multiply_by_V_transpose.F b/src/bse/K_multiply_by_V_transpose.F index c6a8163e5c..f4ea5ff9ac 100644 --- a/src/bse/K_multiply_by_V_transpose.F +++ b/src/bse/K_multiply_by_V_transpose.F @@ -147,7 +147,7 @@ subroutine K_multiply_by_V_transpose(Vi,Vo,iter_par,iq) ! end select ! - if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) + if (i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") ! end do ! diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index ac046c17d3..0dd0d7d238 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -139,7 +139,8 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( (.not.(run_Haydock.or.run_inversion)) .or. i_B>BSS_kernel_last_stored_block) call K_block_free(i_B) + if ( i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") + if ( (.not.(run_Haydock.or.run_inversion)) ) call K_block_free(i_B,"all") ! call live_timing(steps=1) ! diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index d3b3a67433..96e88b76d7 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -155,7 +155,8 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( .not. (run_Haydock.or.run_inversion) .or. i_B>BSS_kernel_last_stored_block ) call K_block_free(i_B) + if ( i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") + if ( (.not.(run_Haydock.or.run_inversion)) ) call K_block_free(i_B,"all") ! call live_timing(steps=1) ! diff --git a/src/io_parallel/io_BS_PAR_block.F b/src/io_parallel/io_BS_PAR_block.F index a55b2bf7bd..c7b98f61be 100644 --- a/src/io_parallel/io_BS_PAR_block.F +++ b/src/io_parallel/io_BS_PAR_block.F @@ -44,8 +44,6 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) ! call timing('io_BS',OPR='start') ! - if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block) - ! ! Get the type of block that we want to write ! ID_table=max_io_vars_open @@ -68,6 +66,8 @@ subroutine io_BS_PAR_block(iq,i_block,ID,mode) if(index(mode,"compressed")/=0) BSK_IO_local=trim(mode) if(index(mode,"tableonly")/=0) BSK_IO_local=trim(mode) ! + if (.not. allocated(BS_blk(i_block)%mat) ) call K_block_alloc(i_block,trim(mode)) + ! select case(trim(BSK_IO_local)) case("1D_linear","compressed_head","compressed_mat") ! From 495d8c1623bf99884d7ceea5191740d1553c8ee8 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 9 Aug 2024 09:54:52 +0200 Subject: [PATCH 025/112] Version 5.2.0, Revision 23322, Hash c623bec924 MODIFIED * configure include/version/version.m4 bse/K_restart.F bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F Bugs: - [yambo] Fixed double de-allocation Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_restart.F | 2 +- src/bse/K_stored_in_a_nest_matrix.F | 7 +++++-- src/bse/K_stored_in_a_slepc_matrix.F | 7 +++++-- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/configure b/configure index 60446cdda3..5eb0c767fe 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23321 h.fcac5b8cb0. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23322 h.c623bec924. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23321 h.fcac5b8cb0' -PACKAGE_STRING='Yambo 5.2.0 r.23321 h.fcac5b8cb0' +PACKAGE_VERSION='5.2.0 r.23322 h.c623bec924' +PACKAGE_STRING='Yambo 5.2.0 r.23322 h.c623bec924' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23321 h.fcac5b8cb0 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23322 h.c623bec924 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23321 h.fcac5b8cb0:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23322 h.c623bec924:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23321 h.fcac5b8cb0 +Yambo configure 5.2.0 r.23322 h.c623bec924 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23321 h.fcac5b8cb0, which was +It was created by Yambo $as_me 5.2.0 r.23322 h.c623bec924, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23321" -SHASH="fcac5b8cb0" +SREVISION="23322" +SHASH="c623bec924" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23321 h.fcac5b8cb0, which was +This file was extended by Yambo $as_me 5.2.0 r.23322 h.c623bec924, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23321 h.fcac5b8cb0 +Yambo config.status 5.2.0 r.23322 h.c623bec924 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index b962c48cb0..e0ab0c63bd 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23321 h.fcac5b8cb0, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23322 h.c623bec924, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23321" -SHASH="fcac5b8cb0" +SREVISION="23322" +SHASH="c623bec924" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_restart.F b/src/bse/K_restart.F index 1b130e51ba..a2766b4c24 100644 --- a/src/bse/K_restart.F +++ b/src/bse/K_restart.F @@ -100,7 +100,7 @@ subroutine K_restart(iq,X,ID_head,ID,ID_compr,l_partial_kernel_loaded) call io_BS_PAR_block(iq,i_block,ID_now,IO_MODE) call live_timing(steps=1) Sz=BS_blk(i_block)%size(1)*BS_blk(i_block)%size(2) - size_now=size_now+Sz*real(kind(size_now),SP)*2/Gigabyte + size_now=size_now+Sz*kind(size_now)*2/Gigabyte if (BSS_kernel_IO_on_the_fly.and.size_now>=BSS_kernel_stored_size) then BSS_kernel_last_stored_block=i_block exit diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 0dd0d7d238..1912bd2875 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -139,8 +139,11 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") - if ( (.not.(run_Haydock.or.run_inversion)) ) call K_block_free(i_B,"all") + if ( i_B>BSS_kernel_last_stored_block) then + call K_block_free(i_B,"matonly") + else if ( (.not.(run_Haydock.or.run_inversion)) ) then + call K_block_free(i_B,"all") + endif ! call live_timing(steps=1) ! diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 96e88b76d7..23c33b177f 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -155,8 +155,11 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore ! - if ( i_B>BSS_kernel_last_stored_block) call K_block_free(i_B,"matonly") - if ( (.not.(run_Haydock.or.run_inversion)) ) call K_block_free(i_B,"all") + if ( i_B>BSS_kernel_last_stored_block) then + call K_block_free(i_B,"matonly") + else if ( (.not.(run_Haydock.or.run_inversion)) ) then + call K_block_free(i_B,"all") + endif ! call live_timing(steps=1) ! From 97af24707b6c6a655c6e461f3cb86e47068b1ab0 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Mon, 12 Aug 2024 10:33:11 +0200 Subject: [PATCH 026/112] Version 5.2.0, Revision 23127, Hash cce1c9c56 MODIFIED * configure include/version/version.m4 allocations/.objects bse/K_dipoles.F dipoles/.objects dipoles/DIPOLE_IO.F dipoles/DIPOLE_driver.F dipoles/DIPOLE_orb_magn_forCD.F dipoles/DIPOLE_p_matrix_elements.F dipoles/DIPOLE_setup.F dipoles/DIPOLE_shifted_grids.F dipoles/DIPOLE_spin_magnetization.F io/.objects io_parallel/io_Overlaps.F io_serial/io_DIPOLES.F io_serial/io_Overlaps.F modules/SET_defaults.F modules/mod_DIPOLES.F modules/mod_R_lattice.F modules/mod_SC.F nloptics/NL_driver.F pol_function/X_dielectric_matrix.F pol_function/X_irredux.F real_time_control/RT_free.F ypp/dipoles/DIPOLE_ypp_driver.F ypp/excitons/excitons_amplitudes.F NEW * allocations/DIPOLE_ALLOC_elemental.F allocations/DIPOLE_ALLOC_global.F io/variables_Overlaps.F RENAMED * dipoles/DIPOLE_build_covariants.F -> dipoles/DIPOLE_covariant.F dipoles/DIPOLE_transverse.F -> dipoles/DIPOLE_g_space.F Changes: - Overall maintenance of dipoles procedures: * _transverse renamed in g_space (coherently with x_space) * replaced logicals with objective strings, used in I/O and live_timing * allocation/deallocation procedures moved in allocations folder Patch sent by: Andrea Marini --- configure | 22 +-- include/version/version.m4 | 6 +- src/allocations/.objects | 2 +- src/allocations/DIPOLE_ALLOC_elemental.F | 86 +++++++++ src/allocations/DIPOLE_ALLOC_global.F | 67 +++++++ src/bse/K_dipoles.F | 12 +- src/dipoles/.objects | 4 +- src/dipoles/DIPOLE_IO.F | 10 +- ..._build_covariants.F => DIPOLE_covariant.F} | 9 +- src/dipoles/DIPOLE_driver.F | 182 +++++++----------- .../{DIPOLE_transverse.F => DIPOLE_g_space.F} | 39 ++-- src/dipoles/DIPOLE_orb_magn_forCD.F | 6 +- src/dipoles/DIPOLE_p_matrix_elements.F | 7 +- src/dipoles/DIPOLE_setup.F | 109 +++++++---- src/dipoles/DIPOLE_shifted_grids.F | 6 +- src/dipoles/DIPOLE_spin_magnetization.F | 5 +- src/io/.objects | 2 +- src/io/variables_Overlaps.F | 52 +++++ src/io_parallel/io_Overlaps.F | 4 +- src/io_serial/io_DIPOLES.F | 66 +++---- src/io_serial/io_Overlaps.F | 4 +- src/modules/SET_defaults.F | 15 +- src/modules/mod_DIPOLES.F | 102 ++-------- src/modules/mod_R_lattice.F | 2 +- src/modules/mod_SC.F | 10 +- src/nloptics/NL_driver.F | 18 +- src/pol_function/X_dielectric_matrix.F | 7 +- src/pol_function/X_irredux.F | 12 +- src/real_time_control/RT_free.F | 16 +- ypp/dipoles/DIPOLE_ypp_driver.F | 8 +- ypp/excitons/excitons_amplitudes.F | 8 +- 31 files changed, 485 insertions(+), 413 deletions(-) create mode 100644 src/allocations/DIPOLE_ALLOC_elemental.F create mode 100644 src/allocations/DIPOLE_ALLOC_global.F rename src/dipoles/{DIPOLE_build_covariants.F => DIPOLE_covariant.F} (96%) rename src/dipoles/{DIPOLE_transverse.F => DIPOLE_g_space.F} (90%) create mode 100644 src/io/variables_Overlaps.F diff --git a/configure b/configure index 27ca4217b1..3fc213181c 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23127 h.8a3fa13ff. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23128 h.cce1c9c56. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23127 h.8a3fa13ff' -PACKAGE_STRING='Yambo 5.2.0 r.23127 h.8a3fa13ff' +PACKAGE_VERSION='5.2.0 r.23128 h.cce1c9c56' +PACKAGE_STRING='Yambo 5.2.0 r.23128 h.cce1c9c56' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23127 h.8a3fa13ff to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23128 h.cce1c9c56 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23127 h.8a3fa13ff:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23128 h.cce1c9c56:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23127 h.8a3fa13ff +Yambo configure 5.2.0 r.23128 h.cce1c9c56 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23127 h.8a3fa13ff, which was +It was created by Yambo $as_me 5.2.0 r.23128 h.cce1c9c56, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23127" -SHASH="8a3fa13ff" +SREVISION="23128" +SHASH="cce1c9c56" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23127 h.8a3fa13ff, which was +This file was extended by Yambo $as_me 5.2.0 r.23128 h.cce1c9c56, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23127 h.8a3fa13ff +Yambo config.status 5.2.0 r.23128 h.cce1c9c56 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 0f9946b14a..a1f35f909f 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23127 h.8a3fa13ff, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23128 h.cce1c9c56, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23127" -SHASH="8a3fa13ff" +SREVISION="23128" +SHASH="cce1c9c56" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/allocations/.objects b/src/allocations/.objects index 98a2cb5c91..3b46fa664a 100644 --- a/src/allocations/.objects +++ b/src/allocations/.objects @@ -1,4 +1,4 @@ #if defined _ELPH ELPH_objs = ELPH_alloc.o #endif -objs = $(ELPH_objs) X_ALLOC_parallel.o X_ALLOC_global.o X_ALLOC_elemental.o +objs = $(ELPH_objs) X_ALLOC_parallel.o X_ALLOC_global.o X_ALLOC_elemental.o DIPOLE_ALLOC_elemental.o DIPOLE_ALLOC_global.o diff --git a/src/allocations/DIPOLE_ALLOC_elemental.F b/src/allocations/DIPOLE_ALLOC_elemental.F new file mode 100644 index 0000000000..11c46c1719 --- /dev/null +++ b/src/allocations/DIPOLE_ALLOC_elemental.F @@ -0,0 +1,86 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2024 The Yambo Team +! +! Authors (see AUTHORS file for details): AM +! +subroutine DIPOLE_ALLOC_elemental(what,d) + ! + use DIPOLES, ONLY:DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIP_S + use electrons, ONLY:n_sp_pol,n_spinor + use pars, ONLY:cZERO + ! +#include + ! + character(*) :: what + integer, optional :: d(:) + ! + if (.not.present(d)) then + select case(what) + case('DIP_iR') + if (.not.allocated(DIP_iR)) return + YAMBO_FREE(DIP_iR) + case('DIP_P') + if (.not.allocated(DIP_P)) return + YAMBO_FREE(DIP_P) + case('DIP_v') + if (.not.allocated(DIP_v)) return + YAMBO_FREE(DIP_v) + case('DIP_S') + if (.not.allocated(DIP_S)) return + YAMBO_FREE(DIP_S) + case('DIP_orbital') + if (.not.allocated(DIP_orbital)) return + YAMBO_FREE(DIP_orbital) + case('DIP_spin') + if (.not.allocated(DIP_spin)) return + YAMBO_FREE(DIP_spin) + case('DIP_P_spinor') + if (.not.allocated(DIP_P_spinor)) return + YAMBO_FREE(DIP_P_spinor) + case('P_square') + if (.not.allocated(P_square)) return + YAMBO_FREE(P_square) + end select + ! + return + ! + endif + ! + select case(what) + case('DIP_iR') + if (allocated(DIP_iR)) return + YAMBO_ALLOC(DIP_iR,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) + DIP_iR=cZERO + case('DIP_P') + if (allocated(DIP_P)) return + YAMBO_ALLOC(DIP_P,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) + DIP_P=cZERO + case('DIP_v') + if (allocated(DIP_v)) return + YAMBO_ALLOC(DIP_v,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) + DIP_v=cZERO + case('DIP_S') + if (allocated(DIP_S)) return + YAMBO_ALLOC(DIP_S,(d(1),d(2),d(3),d(4),n_sp_pol)) + DIP_S=cZERO + case('DIP_orbital') + if (allocated(DIP_orbital)) return + YAMBO_ALLOC(DIP_orbital,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol,d(7))) + DIP_orbital=cZERO + case('DIP_spin') + if (allocated(DIP_spin)) return + YAMBO_ALLOC(DIP_spin,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol,3)) + DIP_spin=cZERO + case('DIP_P_spinor') + if (allocated(DIP_P_spinor).or.n_spinor==1) return + YAMBO_ALLOC(DIP_P_spinor,(d(1),n_spinor,n_spinor,d(2):d(3),d(4):d(5),d(6))) + DIP_P_spinor=cZERO + case('P_square') + if (allocated(P_square)) return + YAMBO_ALLOC(P_square,(d(1):d(2),d(3):d(4),d(5),n_sp_pol)) + P_square=cZERO + end select + ! +end subroutine diff --git a/src/allocations/DIPOLE_ALLOC_global.F b/src/allocations/DIPOLE_ALLOC_global.F new file mode 100644 index 0000000000..71d460e135 --- /dev/null +++ b/src/allocations/DIPOLE_ALLOC_global.F @@ -0,0 +1,67 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2024 The Yambo Team +! +! Authors (see AUTHORS file for details): AM +! +subroutine DIPOLE_ALLOC_global(D,NK) + ! + ! Here all DIPOLE observables are allocated except the S_overlap matrix + ! + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIPOLE_ALLOC_elemental + use pars, ONLY:cZERO + use stderr, ONLY:STRING_match + ! + implicit none + ! + type(DIPOLE_t),intent(inout) :: D + integer :: NK + ! + if (NK<0) then + call DIPOLE_ALLOC_elemental('DIP_iR') + call DIPOLE_ALLOC_elemental('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_P') + call DIPOLE_ALLOC_elemental('DIP_orbital') + call DIPOLE_ALLOC_elemental('DIP_spin') + call DIPOLE_ALLOC_elemental('DIP_P_spinor') + call DIPOLE_ALLOC_elemental('DIP_S') + call DIPOLE_ALLOC_elemental('P_square') + return + endif + ! + call DIPOLE_ALLOC_elemental('DIP_iR',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + call DIPOLE_ALLOC_elemental('DIP_v' ,(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + call DIPOLE_ALLOC_elemental('DIP_P' ,(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + DIP_iR=cZERO + DIP_v=cZERO + DIP_P=cZERO + ! + if (STRING_match(D%computed,"M_orb").and.STRING_match(D%computed,"M_it")) then + call DIPOLE_ALLOC_elemental('DIP_orbital',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK,2/)) + DIP_orbital=cZERO + endif + ! + if ((STRING_match(D%computed,"M_orb").or.STRING_match(D%computed,"M_CD_orb")).and.& +& .not.STRING_match(D%computed,"M_it")) then + call DIPOLE_ALLOC_elemental('DIP_orbital',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK,1/)) + DIP_orbital=cZERO + endif + ! + if (STRING_match(D%computed,"M_spin")) then + call DIPOLE_ALLOC_elemental('DIP_spin',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + DIP_spin=cZERO + endif +#if defined _RT + if (STRING_match(D%computed,"P_spinor")) then + call DIPOLE_ALLOC_elemental('DIP_P_spinor',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + DIP_P_spinor=cZERO + endif +#endif + ! + if (STRING_match(D%computed,"P2")) then + call DIPOLE_ALLOC_elemental('P_square',(/D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) + P_square=cZERO + endif + ! +end subroutine diff --git a/src/bse/K_dipoles.F b/src/bse/K_dipoles.F index 6eebdb43fb..42fd2cd7c8 100644 --- a/src/bse/K_dipoles.F +++ b/src/bse/K_dipoles.F @@ -18,7 +18,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) use interfaces, ONLY:WF_load,WF_free use electrons, ONLY:levels,spin use X_m, ONLY:X_t,global_gauge,i_G_shift - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_rotated + use DIPOLES, ONLY:DIPOLE_t,DIP_rotated use BS_solvers, ONLY:BSS_Vnl_included use BS, ONLY:BS_T_grp,BS_K_coupling,BS_nT_grps,BSE_L_kind,BS_bands,& & BS_dip_size,l_BS_trace,BS_n_eh_spaces,& @@ -231,14 +231,8 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) ! CLEAN ! if (iq==1.and.i_G_shift==1.and.io_DIP) then - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') - call DIP_alloc('DIP_S') - call DIP_alloc('DIP_spin') - call DIP_alloc('DIP_orbital') - call DIP_alloc('P_square') - call DIP_alloc('DIP_P_spinor') + ! + call DIPOLE_ALLOC_global(Dip,-1) ! ! Here I need the distribution over k call PARALLEL_SETUP_K_scheme("Kdef") diff --git a/src/dipoles/.objects b/src/dipoles/.objects index f8d2f61d80..b7bd76ca42 100644 --- a/src/dipoles/.objects +++ b/src/dipoles/.objects @@ -10,7 +10,7 @@ NL_objects = Berry_polarization_EQ.o Ionic_polarization.o POLARIZATION_output.o #endif objs = Build_Overlaps_Det_EQ.o $(SC_objects) $(MAGN_objects) $(NL_objects) \ DIPOLE_setup.o \ - DIPOLE_IO.o DIPOLE_driver.o DIPOLE_build_covariants.o DIPOLE_x_real_space.o DIPOLE_spin_magnetization.o \ + DIPOLE_IO.o DIPOLE_driver.o DIPOLE_covariant.o DIPOLE_x_real_space.o DIPOLE_spin_magnetization.o \ DIPOLE_kb_abinit_def_dim.o DIPOLE_kb_abinit_comp.o DIPOLE_kb_sum.o DIPOLE_kb_Ylm.o DIPOLE_dimensions.o \ DIPOLE_kb_pwscf_def_dim.o DIPOLE_kb_pwscf_comp.o DIPOLE_kb_init.o DIPOLE_p_matrix_elements.o DIPOLE_overlaps.o \ - DIPOLE_transverse.o DIPOLE_shifted_grids.o DIPOLE_check_shifted_grids.o + DIPOLE_g_space.o DIPOLE_shifted_grids.o DIPOLE_check_shifted_grids.o diff --git a/src/dipoles/DIPOLE_IO.F b/src/dipoles/DIPOLE_IO.F index c4a1592cb2..dfe43cdfa8 100644 --- a/src/dipoles/DIPOLE_IO.F +++ b/src/dipoles/DIPOLE_IO.F @@ -14,7 +14,7 @@ subroutine DIPOLE_IO(Xk,Xen,Dip,check_read_or_write,io_err,PAR_K_scheme_kind) use IO_m, ONLY:io_DIP use R_lattice, ONLY:bz_samp use electrons, ONLY:levels,n_sp_pol - use DIPOLES, ONLY:DIPOLE_t,DIP_v,use_covariant_approach + use DIPOLES, ONLY:DIPOLE_t,covariant_obs use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,VERIFY,DUMP,REP,OP_WR_CL,OP_WR,OP_RD_CL,& & OP_IF_START_APP_CL_IF_END,OP_IF_START_RD_CL_IF_END @@ -66,8 +66,8 @@ subroutine DIPOLE_IO(Xk,Xen,Dip,check_read_or_write,io_err,PAR_K_scheme_kind) write_header = (master_cpu.and.writing) read_header = .not.write_header ! - write_header_ovlp =write_header.and.use_covariant_approach - read_header_ovlp = read_header.and.use_covariant_approach + write_header_ovlp =write_header.and.len_trim(covariant_obs)>0 + read_header_ovlp = read_header.and.len_trim(covariant_obs)>0 ! if(write_header) then call io_control(ACTION=OP_WR_CL,COM=REP,SEC=(/1/),MODE=VERIFY,ID=ID) @@ -172,7 +172,7 @@ subroutine DIPOLE_IO(Xk,Xen,Dip,check_read_or_write,io_err,PAR_K_scheme_kind) ! OVERLAPS I/O !============== ! - if(use_covariant_approach) then + if(len_trim(covariant_obs)>0) then ! #if !defined _PAR_IO ! IO parallel indexes needed below by manage_action @@ -321,7 +321,6 @@ subroutine project_spin_dipoles(Dip) enddo enddo enddo - ! end subroutine project_spin_dipoles ! subroutine project_dipoles(Dip) @@ -349,7 +348,6 @@ subroutine project_dipoles(Dip) enddo enddo enddo - ! end subroutine project_dipoles #endif ! diff --git a/src/dipoles/DIPOLE_build_covariants.F b/src/dipoles/DIPOLE_covariant.F similarity index 96% rename from src/dipoles/DIPOLE_build_covariants.F rename to src/dipoles/DIPOLE_covariant.F index 2d899f886b..fffb81ec22 100644 --- a/src/dipoles/DIPOLE_build_covariants.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): MG CA DS ! -subroutine DIPOLE_build_covariants(Xen,Xk,Dip) +subroutine DIPOLE_covariant(Xen,Xk,Dip) ! ! Build the covariant dipole operator at zero field ! in PRB 69, 085106 (2004) @@ -13,7 +13,7 @@ subroutine DIPOLE_build_covariants(Xen,Xk,Dip) use pars, ONLY:SP,cI,cZERO,pi use LIVE_t, ONLY:live_timing use electrons, ONLY:levels,n_sp_pol - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_S,DIP_iR,DIP_v + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v,DIPOLE_ALLOC_elemental use R_lattice, ONLY:bz_samp,k_map use vec_operate, ONLY:k_periodic_idx use matrix_operate, ONLY:hermitian @@ -52,7 +52,7 @@ subroutine DIPOLE_build_covariants(Xen,Xk,Dip) ! ! Notice that DIP_S is defined in the BZ ! - call DIP_alloc('DIP_S',(/Dip%ib(2),Dip%ib(2),6,PAR_DIPk_nbz/)) + call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,PAR_DIPk_nbz/)) DIP_S=cZERO ! call DIPOLE_overlaps(Xk,Dip) @@ -197,6 +197,5 @@ subroutine DIPOLE_build_covariants(Xen,Xk,Dip) if(any(idir_not_done)) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) ! call timing("DIPOLE_buil_covariants",OPR="stop") - return ! -end subroutine DIPOLE_build_covariants +end subroutine DIPOLE_covariant diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index 7d02e87ad5..ebbb6b70b5 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -23,24 +23,24 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! takes into account the phases. symmetries not yet implemented ! and then as *DeltaE ! + ! Note that

is ALWAYS calculated using the g_space approach + ! use drivers, ONLY:l_optics - use pars, ONLY:SP,cZERO,schlen + use pars, ONLY:SP,schlen use electrons, ONLY:levels,n_sp_pol use IO_m, ONLY:io_DIP use R_lattice, ONLY:bz_samp - use DIPOLES, ONLY:DIP_alloc,DIPOLE_t,DIP_iR,use_covariant_approach,use_real_space_approach,& -& Vnl_commutator_warning,use_g_space_approach,DIP_P,DIP_v,DIP_S,compute_P_dipoles,& -& compute_P2_dipoles,compute_Orb_dipoles,compute_Spin_dipoles,use_shifted_grids_approach + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,x_space_obs,g_space_obs,covariant_obs,shifted_grids_obs,& +& Vnl_commutator_warning,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square,& +& DIPOLE_ALLOC_elemental use IO_int, ONLY:IO_and_Messaging_switch use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_nibz,PAR_COM_DIPk_ibz_A2A,& & PAR_IND_CON_BANDS_DIP,PAR_IND_VAL_BANDS_DIP use parallel_int, ONLY:PP_redux_wait,PARALLEL_global_indexes,PARALLEL_WF_distribute,PARALLEL_WF_index - use DIPOLES, ONLY:DIP_spin,DIP_orbital,P_square - use electrons, ONLY:n_spin,n_spinor #if defined _RT use DIPOLES, ONLY:DIP_P_spinor #endif - use BS, ONLY:l_BS_dichroism + use stderr, ONLY:STRING_match use timing_m, ONLY:timing ! implicit none @@ -53,7 +53,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! integer :: ik,io_err character(schlen) :: msg - logical :: l_warning,use_dipole_transverse,idir_not_done(3)=.FALSE. + logical :: l_warning ! call section('*','Dipoles') !=========================== @@ -61,7 +61,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! ! Setup !======= - call DIPOLE_setup(Dip,use_dipole_transverse) + call DIPOLE_setup(Dip) ! ! Dipole dimensions to be fixed !=============================== @@ -96,24 +96,26 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! ! Allocation ! - call DIPOLES_alloc() + call DIPOLE_ALLOC_global(Dip,PAR_DIPk_nibz) + ! + ! , ,

, , S_overlap ! - if (use_shifted_grids_approach) call DIPOLE_shifted_grids(Xen,Xk,Dip) + if (len_trim(shifted_grids_obs)>0) call DIPOLE_shifted_grids(Xen,Xk,Dip) ! - if (use_covariant_approach) call DIPOLE_build_covariants(Xen,Xk,Dip) + if (len_trim(covariant_obs)>0) call DIPOLE_covariant(Xen,Xk,Dip) ! - if (use_real_space_approach) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) + if (len_trim(x_space_obs)>0) call DIPOLE_x_real_space(Xen,Xk,Dip,((/.TRUE.,.TRUE.,.TRUE./))) ! - if (use_dipole_transverse) call DIPOLE_transverse(Xen,Xk,Dip) + if (len_trim(g_space_obs)>0) call DIPOLE_g_space(Xen,Xk,Dip) ! - if (Compute_Spin_dipoles) call DIPOLE_spin_magnetization(Xen,Xk,Dip) + if (STRING_match(Dip%computed,"M_spin")) call DIPOLE_spin_magnetization(Xen,Xk,Dip) ! call DIPOLES_ppredux_and_symmetrize() ! #if defined _RT - if (compute_Orb_dipoles) call DIPOLE_orbital_magnetization(Xen,Xk,Dip) + if (STRING_match(Dip%computed,"M_orb")) call DIPOLE_orbital_magnetization(Xen,Xk,Dip) #else - if (l_BS_dichroism) call DIPOLE_orb_magn_forCD(Xen,Xk,Dip) + if (STRING_match(Dip%computed,"M_CD_orb")) call DIPOLE_orb_magn_forCD(Xen,Xk,Dip) #endif ! call DIPOLES_ppredux_and_symmetrize_orbt() @@ -134,10 +136,10 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! ! Warn about missing [Sigma,r] commutator ! - if ( Dip%Vnl_included .and.l_warning.and.(use_g_space_approach.or.Dip%force_v_g_space)) then + if ( Dip%Vnl_included .and.l_warning.and.(len_trim(g_space_obs)>0.or.Dip%force_v_g_space)) then msg=' [r,Vnl^pseudo] included in' - if (.not.use_g_space_approach) msg=trim(msg)//' velocity dipoles.' - if ( use_g_space_approach) msg=trim(msg)//' position and velocity dipoles.' + if (.not.len_trim(g_space_obs)>0) msg=trim(msg)//' velocity dipoles.' + if ( len_trim(g_space_obs)>0) msg=trim(msg)//' position and velocity dipoles.' call warning(trim(msg)) call warning(' In case H contains other non local terms, these are neglected ') Vnl_commutator_warning=.TRUE. @@ -147,8 +149,8 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! if ((.not.Dip%Vnl_included).and.l_warning) then msg=' [r,Vnl^pseudo] not included in' - if (.not.use_g_space_approach) msg=trim(msg)//' velocity dipoles' - if ( use_g_space_approach) msg=trim(msg)//' position and velocity dipoles' + if (.not.len_trim(g_space_obs)>0) msg=trim(msg)//' velocity dipoles' + if ( len_trim(g_space_obs)>0) msg=trim(msg)//' position and velocity dipoles' call warning(trim(msg)) call warning(' In case H contains other non local terms, also these are neglected ') Vnl_commutator_warning=.TRUE. @@ -158,63 +160,9 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! if (.not.io_DIP) return ! - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') - if (use_covariant_approach) call DIP_alloc('DIP_S') - if (compute_P2_dipoles) call DIP_alloc('P_square') - if (compute_Orb_dipoles) call DIP_alloc('DIP_orbital') - if (compute_Spin_dipoles) call DIP_alloc('DIP_spin') -#if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) call DIP_alloc('DIP_P_spinor') -#endif - ! - if(l_BS_dichroism) call DIP_alloc('DIP_orbital') + call DIPOLE_ALLOC_global(Dip,-1) ! contains - ! - subroutine DIPOLES_alloc() - ! - call DIP_alloc('DIP_iR',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - call DIP_alloc('DIP_v' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - DIP_iR=cZERO - DIP_v=cZERO - ! - if (compute_P_dipoles) then - call DIP_alloc('DIP_P' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - DIP_P=cZERO - endif - if (compute_Orb_dipoles) then - call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz,2/)) - DIP_orbital=cZERO - endif - if (compute_Spin_dipoles) then - call DIP_alloc('DIP_spin',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - DIP_spin=cZERO - endif -#if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) then - call DIP_alloc('DIP_P_spinor',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - DIP_P_spinor=cZERO - endif -#endif - ! - if (compute_P2_dipoles) then - call DIP_alloc('P_square',(/Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz/)) - P_square=cZERO - endif - ! - if (l_BS_dichroism) then - call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_DIPk_nibz,1/)) - DIP_orbital=cZERO - endif - ! - if(use_covariant_approach) then - call DIP_alloc('DIP_S',(/Dip%ib(2),Dip%ib(2),6,Xk%nbz/)) - DIP_S=cZERO - endif - ! - end subroutine DIPOLES_alloc ! subroutine DIPOLES_ppredux_and_symmetrize() ! @@ -239,16 +187,19 @@ subroutine DIPOLES_ppredux_and_symmetrize() call PP_redux_wait( DIP_P(:,:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) call PP_redux_wait( DIP_v(:,:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) ! - if (compute_Spin_dipoles.and.i_sp_pol==1) then + if (STRING_match(Dip%computed,"M_spin")) then do i_sp_pol_tmp=1,n_sp_pol call PP_redux_wait(DIP_spin(:,:,:,ik_mem,i_sp_pol_tmp,1),COMM=PAR_COM_DIPk_ibz_A2A%COMM) enddo endif #if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) & - & call PP_redux_wait(DIP_P_spinor(:,:,:,:,:,ik_mem),COMM=PAR_COM_DIPk_ibz_A2A%COMM) + if (STRING_match(Dip%computed,"P_spinor")) then + call PP_redux_wait(DIP_P_spinor(:,:,:,:,:,ik_mem),COMM=PAR_COM_DIPk_ibz_A2A%COMM) + endif #endif - if (compute_P2_dipoles) call PP_redux_wait(P_square(:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) + if (STRING_match(Dip%computed,"P2")) then + call PP_redux_wait(P_square(:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) + endif ! ! Symmetrization !================ @@ -261,13 +212,15 @@ subroutine DIPOLES_ppredux_and_symmetrize() DIP_v (:,iv,iv,ik_mem,i_sp_pol)=cmplx( real(DIP_v(:,iv,iv,ik_mem,i_sp_pol), SP),0. ,SP) ! ! Warning: if n_sp_pol==2 DIP_spin(iv,iv) is not the expectation value but - if (compute_Spin_dipoles.and.(.not.n_sp_pol==2) ) & - & DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)=cmplx( real(DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)),0. ,SP) + if (STRING_match(Dip%computed,"M_spin")) then + DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)=cmplx( real(DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)),0. ,SP) + endif #if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) & - & DIP_P_spinor(:,:,:,iv,iv,ik_mem)=cmplx( real(DIP_P_spinor(:,:,:,iv,iv,ik_mem)),0. ,SP) + if (STRING_match(Dip%computed,"P_spinor")) then + DIP_P_spinor(:,:,:,iv,iv,ik_mem)=cmplx( real(DIP_P_spinor(:,:,:,iv,iv,ik_mem)),0. ,SP) + endif #endif - if (compute_P2_dipoles) then + if (STRING_match(Dip%computed,"P2")) then P_square(iv,iv,ik_mem,i_sp_pol)=cmplx(real(P_square(iv,iv,ik_mem,i_sp_pol)),0. ,SP) endif ! @@ -278,17 +231,19 @@ subroutine DIPOLES_ppredux_and_symmetrize() DIP_iR(:,iv,ic,ik_mem,i_sp_pol) = -conjg(DIP_iR(:,ic,iv,ik_mem,i_sp_pol)) DIP_P (:,iv,ic,ik_mem,i_sp_pol) = conjg(DIP_P (:,ic,iv,ik_mem,i_sp_pol)) DIP_v (:,iv,ic,ik_mem,i_sp_pol) = conjg(DIP_v (:,ic,iv,ik_mem,i_sp_pol)) - if (compute_Spin_dipoles) then + if (STRING_match(Dip%computed,"M_spin")) then DIP_spin(1,iv,ic,ik_mem,i_sp_pol_inv,1)= conjg(DIP_spin(1,ic,iv,ik_mem,i_sp_pol,1)) DIP_spin(2,iv,ic,ik_mem,i_sp_pol_inv,1)= conjg(DIP_spin(2,ic,iv,ik_mem,i_sp_pol,1)) DIP_spin(3,iv,ic,ik_mem,i_sp_pol,1) = conjg(DIP_spin(3,ic,iv,ik_mem,i_sp_pol,1)) endif #if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) & - & DIP_P_spinor(:,:,:,iv,ic,ik_mem)= conjg(DIP_P_spinor(:,:,:,ic,iv,ik_mem)) + if (STRING_match(Dip%computed,"P_spinor")) then + DIP_P_spinor(:,:,:,iv,ic,ik_mem)= conjg(DIP_P_spinor(:,:,:,ic,iv,ik_mem)) + endif #endif - if (compute_P2_dipoles) & -& P_square(iv,ic,ik_mem,i_sp_pol) = conjg(P_square(ic,iv,ik_mem,i_sp_pol)) + if (STRING_match(Dip%computed,"P2")) then + P_square(iv,ic,ik_mem,i_sp_pol) = conjg(P_square(ic,iv,ik_mem,i_sp_pol)) + endif ! endif enddo @@ -306,35 +261,38 @@ subroutine DIPOLES_ppredux_and_symmetrize_orbt() integer :: ic,iv,i_sp_pol,ik,ik_mem,i_dips,n_dips ! n_dips=0 - if (compute_Orb_dipoles) n_dips=2 - if (l_BS_dichroism) n_dips=1 + if (STRING_match(Dip%computed,"M_orb").and.STRING_match(Dip%computed,"M_it")) then + n_dips=2 + else if (STRING_match(Dip%computed,"M_orb").or.STRING_match(Dip%computed,"M_CD_orb")) then + n_dips=1 + endif ! do i_dips=1,n_dips - do i_sp_pol=1,n_sp_pol - ! - do ik=1,Xk%nibz + do i_sp_pol=1,n_sp_pol ! - if (.not.PAR_IND_DIPk_ibz%element_1D(ik)) cycle - ! - ik_mem=PAR_DIPk_ibz_index(ik) - ! - call PP_redux_wait(DIP_orbital(:,:,:,ik_mem,i_sp_pol,i_dips),COMM=PAR_COM_DIPk_ibz_A2A%COMM) - ! - ! Symmetrization - !================ - do iv=Dip%ib(1),Dip%ib_lim(1) - if(.not.(iv>=Dip%ib_lim(2)) ) cycle - DIP_orbital(:,iv,iv,ik_mem,i_sp_pol,i_dips)=cmplx( real(DIP_orbital(:,iv,iv,ik_mem,i_sp_pol,i_dips)),0. ,SP) + do ik=1,Xk%nibz ! - do ic=iv+1,Dip%ib(2) - if( .not.(ic<=Dip%ib_lim(1)) ) cycle - DIP_orbital(:,iv,ic,ik_mem,i_sp_pol,i_dips)= conjg(DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,i_dips)) + if (.not.PAR_IND_DIPk_ibz%element_1D(ik)) cycle + ! + ik_mem=PAR_DIPk_ibz_index(ik) + ! + call PP_redux_wait(DIP_orbital(:,:,:,ik_mem,i_sp_pol,i_dips),COMM=PAR_COM_DIPk_ibz_A2A%COMM) + ! + ! Symmetrization + !================ + do iv=Dip%ib(1),Dip%ib_lim(1) + if(.not.(iv>=Dip%ib_lim(2)) ) cycle + DIP_orbital(:,iv,iv,ik_mem,i_sp_pol,i_dips)=cmplx( real(DIP_orbital(:,iv,iv,ik_mem,i_sp_pol,i_dips)),0. ,SP) + ! + do ic=iv+1,Dip%ib(2) + if( .not.(ic<=Dip%ib_lim(1)) ) cycle + DIP_orbital(:,iv,ic,ik_mem,i_sp_pol,i_dips)= conjg(DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,i_dips)) + enddo enddo + ! enddo - ! enddo enddo - enddo ! end subroutine DIPOLES_ppredux_and_symmetrize_orbt ! diff --git a/src/dipoles/DIPOLE_transverse.F b/src/dipoles/DIPOLE_g_space.F similarity index 90% rename from src/dipoles/DIPOLE_transverse.F rename to src/dipoles/DIPOLE_g_space.F index ad8b9339ac..aefd2ced0b 100644 --- a/src/dipoles/DIPOLE_transverse.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): AM DS ! -subroutine Dipole_transverse(Xen,Xk,Dip) +subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! This routine returns and . ! @@ -20,8 +20,7 @@ subroutine Dipole_transverse(Xen,Xk,Dip) use D_lattice, ONLY:n_atomic_species,n_atoms_species use R_lattice, ONLY:bz_samp use R_lattice, ONLY:g_vec_d,g_vec - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,P_square,DIP_P,DIP_v,DIP_P_spinor,use_g_space_approach,& -& compute_P2_dipoles,compute_Spin_dipoles + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,P_square,DIP_P,DIP_v,DIP_P_spinor,g_space_obs use X_m, ONLY:l_X_terminator use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,RD_CL_IF_END,OP_RD,OP_RD_CL @@ -30,6 +29,7 @@ subroutine Dipole_transverse(Xen,Xk,Dip) use timing_m, ONLY:timing use cuda_m, ONLY:have_cuda use deviceXlib_m, ONLY:dev_memcpy + use stderr, ONLY:STRING_match ! #include #include @@ -40,7 +40,7 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! ! Work Space ! - logical :: l_eval_DIP_iR,l_eval_DIP_V,l_eval_DIP_P2,l_use_comm,l_check + logical :: l_use_comm,l_check logical, allocatable :: element_1D_spin(:) integer :: ik,ic_wf,iv_wf,i_wf,ic,iv,ib,ifrag,nc,& & i_sp_pol,N_elements_todo,ik_mem,ic_min,is,ia,pp_range(2),npp,npp_tab @@ -71,19 +71,12 @@ subroutine Dipole_transverse(Xen,Xk,Dip) enddo N_elements_todo=N_elements_todo*n_sp_pol*PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1) ! - ! Logicals setup - !================ - ! - l_eval_DIP_iR=use_g_space_approach - l_eval_DIP_V =use_g_space_approach.or.Dip%force_v_g_space - l_eval_DIP_P2=compute_P2_dipoles - ! ! Synchronize some memory if (have_cuda) then YAMBO_ALLOC_SOURCE(g_vec_d,g_vec) endif ! - l_use_comm=l_eval_dip_V.or.l_eval_dip_iR + l_use_comm=STRING_match(g_space_obs,"V").or.STRING_match(g_space_obs,"R") ! if(l_use_comm) then ! @@ -123,7 +116,9 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! Eo are always the eigenvalues consistent with the WFs ! E do also include the QP corrections when Eo are allocated ! - if (allocated(Xen%Eo).and.l_eval_dip_iR) call msg('rns','[X] Using energies without QP corrections for the dipoles') + if (allocated(Xen%Eo).and.STRING_match(g_space_obs,"R")) then + call msg('rns','[X] Using energies without QP corrections for the dipoles') + endif ! allocate(element_1D_spin(Xk%nibz*n_sp_pol)) element_1D_spin=(/PAR_IND_DIPk_ibz%element_1D(:),PAR_IND_DIPk_ibz%element_1D(:)/) @@ -132,7 +127,7 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! ! Main loop over k in IBZ ! - if (N_elements_todo>0) call live_timing(trim(Dip%computed)//" [Transverse]",N_elements_todo) + if (N_elements_todo>0) call live_timing(trim(Dip%computed),N_elements_todo) ! do i_sp_pol=1,n_sp_pol ! @@ -182,7 +177,6 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! if (have_cuda) call dev_memcpy(kbv_d,kbv) ! - !nc=wf_nc_k(ik) nc=wf_ncx do ib=Dip%ib(1),Dip%ib(2) if( ib<=Dip%ib_lim(1) ) then @@ -219,7 +213,8 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! ! Evaluate !================================ - call DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_DIP_P2) + call DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,& +& STRING_match(g_space_obs,"P2"),STRING_match(g_space_obs,"M_spin")) ! !===== !

@@ -232,17 +227,17 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! !====== ! - if (l_eval_DIP_P2) P_square(ic,iv,ik_mem,i_sp_pol)= P2 + if (STRING_match(g_space_obs,"P2")) P_square(ic,iv,ik_mem,i_sp_pol)= P2 ! !============ ! !============ ! #if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) DIP_P_spinor(:,:,:,ic,iv,ik_mem)=rho_spinor + if (STRING_match(g_space_obs,"P_spinor")) DIP_P_spinor(:,:,:,ic,iv,ik_mem)=rho_spinor #endif ! - if(.not.(l_eval_dip_V.or.l_eval_dip_iR)) then + if(.not.(STRING_match(g_space_obs,"V").or.STRING_match(g_space_obs,"R"))) then call live_timing(steps=1) cycle endif @@ -264,13 +259,13 @@ subroutine Dipole_transverse(Xen,Xk,Dip) !===== ! v_vc=rho ! - if (l_eval_DIP_V) DIP_v(:,ic,iv,ik_mem,i_sp_pol)=rho + if (STRING_match(g_space_obs,"V")) DIP_v(:,ic,iv,ik_mem,i_sp_pol)=rho ! !====== ! !====== ! - if (l_eval_DIP_iR) then + if (STRING_match(g_space_obs,"R")) then ! ! [x,p_x]=i we get [x,H] = [x,p^2/2]+[x,Vnl] ! @@ -322,4 +317,4 @@ subroutine Dipole_transverse(Xen,Xk,Dip) ! call timing('DIPOLE_transverse',OPR='stop') ! -end subroutine Dipole_transverse +end subroutine DIPOLE_g_space diff --git a/src/dipoles/DIPOLE_orb_magn_forCD.F b/src/dipoles/DIPOLE_orb_magn_forCD.F index c74d9a520f..94cf686f1e 100644 --- a/src/dipoles/DIPOLE_orb_magn_forCD.F +++ b/src/dipoles/DIPOLE_orb_magn_forCD.F @@ -35,7 +35,7 @@ subroutine Dipole_orb_magn_forCD(Xen,Xk,Dip) & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) ! - if (n_LT_steps>0) call live_timing('Dipoles: orbital magnetization',n_LT_steps) + if (n_LT_steps>0) call live_timing('Dipoles (CD): orbital magnetization',n_LT_steps) ! ! Main loop over k in IBZ ! @@ -63,8 +63,8 @@ subroutine Dipole_orb_magn_forCD(Xen,Xk,Dip) DIP_v_loc(:)=DIP_v(:,ic,ib,ik_mem,i_sp_pol) ! - DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1)=DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1)+ & - & cross_product(DIP_x_loc,DIP_v_loc) + DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1)=& +& DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1)+cross_product(DIP_x_loc,DIP_v_loc) ! ! DEBUG < !write(*,*) "[DIP] writing DIP_orbital(..,ic,iv,ik,,) values" diff --git a/src/dipoles/DIPOLE_p_matrix_elements.F b/src/dipoles/DIPOLE_p_matrix_elements.F index aed412dcd4..6e9a44e64c 100644 --- a/src/dipoles/DIPOLE_p_matrix_elements.F +++ b/src/dipoles/DIPOLE_p_matrix_elements.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): AM DS ! -subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P2) +subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P2,l_eval_M_spin) ! use pars, ONLY:SP,cZERO,pi use wrapper_omp, ONLY:Vstar_dot_V_omp @@ -18,7 +18,6 @@ subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P use R_lattice, ONLY:g_vec_d #endif #if defined _RT - use dipoles, ONLY:compute_spin_dipoles use real_time, ONLY:l_update_SOC #endif ! @@ -26,7 +25,7 @@ subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P ! type(bz_samp), intent(in) :: Xk integer, intent(in) :: iv_wf,ic_wf,ik - logical, intent(in) :: l_eval_P2 + logical, intent(in) :: l_eval_P2,l_eval_M_spin complex(SP), intent(out) :: rho(3),rho_spinor(3,n_spinor,n_spinor),P2 ! ! Work Space @@ -49,7 +48,7 @@ subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P ! eval_spinor_matrix=.false. #if defined _RT - eval_spinor_matrix=compute_spin_dipoles.and.n_spinor==2.and.l_update_SOC + eval_spinor_matrix=l_eval_M_spin.and.n_spinor==2.and.l_update_SOC #endif ! do i1=1,3 diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index 93aaa855c0..c0b031d580 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -5,16 +5,16 @@ ! ! Authors (see AUTHORS file for details): AM DS ! -subroutine DIPOLE_setup(Dip,use_dipole_transverse) +subroutine DIPOLE_setup(Dip) ! use drivers, ONLY:l_real_time,l_sc_run,l_nl_optics - use DIPOLES, ONLY:DIPOLE_t,use_covariant_approach,use_real_space_approach,& -& compute_P2_dipoles,compute_Orb_dipoles,compute_Spin_dipoles,& -& use_g_space_approach,eval_OVERLAPS,use_shifted_grids_approach,compute_P_dipoles + use DIPOLES, ONLY:DIPOLE_t,x_space_obs,g_space_obs,covariant_obs,shifted_grids_obs,& +& specific_obs,eval_OVERLAPS use IO_m, ONLY:io_DIP use BS, ONLY:BSE_prop,l_BS_magnons,l_BS_dichroism,l_BS_photolum - use electrons, ONLY:n_spin + use electrons, ONLY:n_spin,n_spinor use parser_m, ONLY:parser + use stderr, ONLY:STRING_same,STRING_match #if defined _SLEPC && !defined _NL use BS_solvers, ONLY:BSS_mode #endif @@ -22,7 +22,6 @@ subroutine DIPOLE_setup(Dip,use_dipole_transverse) implicit none ! type(DIPOLE_t),intent(inout) :: Dip - logical :: use_dipole_transverse ! ! Work Space ! @@ -42,17 +41,20 @@ subroutine DIPOLE_setup(Dip,use_dipole_transverse) endif ! ! Observables (needed later) - !------------- + !---------------------------- l_BS_magnons= (index(BSE_prop,'magn')/=0) l_BS_dichroism= (index(BSE_prop,'dich')/=0) l_BS_photolum= (index(BSE_prop,'photolum')/=0) + ! + ! Bands ordering + !---------------- if (l_BS_dichroism.or.l_BS_magnons .or. l_BS_photolum) Dip%bands_ordered=.false. #if defined _SLEPC && !defined _NL if ( index(BSS_mode,'s')/=0 ) Dip%bands_ordered=.false. #endif ! - ! logicals (approach) - !-------------------- + ! Force covariant in NL + !----------------------- #if defined _NL if (l_nl_optics) then ! @@ -71,48 +73,75 @@ subroutine DIPOLE_setup(Dip,use_dipole_transverse) endif #endif ! - use_g_space_approach = trim(Dip%approach)=='G-space v' - use_real_space_approach = trim(Dip%approach)=='R-space x' - use_covariant_approach = trim(Dip%approach)=='Covariant' - use_shifted_grids_approach = trim(Dip%approach)=='Shifted grids' - if(.not.any((/use_g_space_approach,use_real_space_approach,use_covariant_approach,use_shifted_grids_approach/))) then - call warning(' Dipoles approach defined in input not recognised. Reverting to G-space v') - use_g_space_approach = .true. - Dip%approach='G-space v' - endif - ! + ! Force to be calculated using the G-space + !--------------------------------------------- call parser('PDirect' ,Dip%force_v_g_space) #if defined _SC || defined _RT || defined _NL Dip%force_v_g_space=Dip%force_v_g_space.or.l_sc_run.or.l_real_time.or.l_nl_optics #endif + ! For some reason (to understand) also in the PL case Dip%force_v_g_space=.TRUE. Dip%force_v_g_space =Dip%force_v_g_space.or.l_BS_photolum - Dip%force_v_g_space =Dip%force_v_g_space.and.(.not.use_g_space_approach) - use_dipole_transverse =use_g_space_approach ! - ! logicals (components) - !----------------------- - compute_P_dipoles = use_g_space_approach !.or.use_dipole_transverse - compute_P2_dipoles = index(Dip%computed,"P2") /=0 - compute_Spin_dipoles = index(Dip%computed,"Spin")/=0 - compute_Orb_dipoles = index(Dip%computed,"Orb") /=0 -#if defined _SC - compute_P2_dipoles = compute_P2_dipoles .or. l_sc_run + ! Components based on approach + !------------------------------ + ! + !

is ALWAYS calculated in G-space + g_space_obs="P" + ! + if (STRING_same(Dip%approach,"r-space x")) then + x_space_obs="R V" + if (Dip%force_v_g_space) x_space_obs="R" + else if (STRING_same(Dip%approach,"covariant")) then + covariant_obs="S R V" + if (Dip%force_v_g_space) x_space_obs="S R" + eval_OVERLAPS=.true. + else if (STRING_same(Dip%approach,"shifted grids")) then + shifted_grids_obs="R V" + if (Dip%force_v_g_space) shifted_grids_obs="R" + else + call warning(' User approach undefined. Switching to G-space v') + g_space_obs="R V P" + endif + ! + ! ... P2 +#if defined _RT + if (l_real_time) then + g_space_obs=trim(g_space_obs)//" P2" + endif +#else + if (STRING_match(Dip%computed,"p2")) g_space_obs=trim(g_space_obs)//" P2" #endif + ! + ! ... P_spinor + if (n_spinor==2) then #if defined _RT - compute_P2_dipoles = compute_P2_dipoles .or. l_real_time - compute_Spin_dipoles = compute_Spin_dipoles .or. (l_real_time .and. n_spin>1) - compute_Orb_dipoles = compute_Orb_dipoles .or. (l_real_time .and. n_spin>1) + if (l_real_time) g_space_obs=trim(g_space_obs)//" P_spinor" +#else + if (STRING_match(Dip%computed,"spin").or.l_BS_magnons) g_space_obs=trim(g_space_obs)//" P_spinor" #endif - compute_Spin_dipoles = compute_Spin_dipoles .or. (l_BS_magnons .and. n_spin>1) + endif + ! ...M_spin, M_orb, M_iti, M_orb_CD + if (n_spin>1) then +#if defined _RT + if (l_real_time) specific_obs=" M_spin M_orb M_it" +#else + if (STRING_match(Dip%computed,"spin").or.l_BS_magnons) specific_obs=" M_spin" + if (STRING_match(Dip%computed,"orb")) specific_obs=trim(specific_obs)//" M_orb M_it" + if (l_BS_dichroism) specific_obs=trim(specific_obs)//" M_CD_orb" +#endif + endif ! ! Computed components !--------------------- - Dip%computed='R V' - if (compute_P_dipoles) Dip%computed=trim(Dip%computed)//' P' - if (compute_P2_dipoles) Dip%computed=trim(Dip%computed)//' P2' - if (compute_Spin_dipoles) Dip%computed=trim(Dip%computed)//' Spin' - if (compute_Orb_dipoles) Dip%computed=trim(Dip%computed)//' Orb' - ! - if (use_covariant_approach) eval_OVERLAPS=.true. + Dip%computed=" " + if (len_trim(x_space_obs ) >0) Dip%computed=trim(x_space_obs)//" [X-space]" + if (len_trim(covariant_obs) >0) Dip%computed=trim(covariant_obs)//" [covarian]" + if (len_trim(shifted_grids_obs)>0) Dip%computed=trim(shifted_grids_obs)//" [shift-grids]" + if (len_trim(Dip%computed)==0) then + Dip%computed=trim(g_space_obs)//" [G-space]" + else + Dip%computed=trim(dip%computed)//" "//trim(g_space_obs)//" [G-space]" + endif + Dip%computed=trim(dip%computed)//" "//trim(specific_obs) ! end subroutine diff --git a/src/dipoles/DIPOLE_shifted_grids.F b/src/dipoles/DIPOLE_shifted_grids.F index d7701f229e..ec8346f2c2 100644 --- a/src/dipoles/DIPOLE_shifted_grids.F +++ b/src/dipoles/DIPOLE_shifted_grids.F @@ -24,7 +24,7 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) use interfaces, ONLY: WF_load,WF_free,io_DB1_selective_scan use R_lattice, ONLY: bz_samp,nkibz,q0_shift_norm use X_m, ONLY: l_X_terminator - use DIPOLES, ONLY: DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids + use DIPOLES, ONLY: DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids,shifted_grids_obs use vec_operate, ONLY: degeneration_finder use wrapper, ONLY: Vstar_dot_V use wave_func, ONLY: wf_ng,wf_igk,WF,wf_ncx,WAVEs @@ -127,13 +127,13 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) ! call msg('r','Shifted grids found '//trim(intc(num_shifted_grids))) ! - if(num_shifted_grids<3) call warning(' Shifted grids are '//trim(intc(num_shifted_grids))//'. Assuming non periodic system.') + if (num_shifted_grids<3) call warning(' Shifted grids are '//trim(intc(num_shifted_grids))//'. Assuming non periodic system.') ! n_LT_steps=n_sp_pol*PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*& & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1)*num_shifted_grids ! - call live_timing('Dipoles shifted grids ',n_LT_steps) + call live_timing(trim(shifted_grids_obs),n_LT_steps) ! do i_sp_pol = 1,n_sp_pol ! diff --git a/src/dipoles/DIPOLE_spin_magnetization.F b/src/dipoles/DIPOLE_spin_magnetization.F index bb742f237f..80f1b1a9c3 100644 --- a/src/dipoles/DIPOLE_spin_magnetization.F +++ b/src/dipoles/DIPOLE_spin_magnetization.F @@ -31,8 +31,7 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) ! ! Work Space ! - integer :: ik,ic_wf(n_sp_pol),iv_wf(n_sp_pol),ic,iv,n_LT_steps,ik_mem,& -& i_sp_wf(2) + integer :: ik,ic_wf(n_sp_pol),iv_wf(n_sp_pol),ic,iv,n_LT_steps,ik_mem ! if(n_spin==1) return ! @@ -44,7 +43,7 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) ! - if (n_LT_steps>0) call live_timing('Dipoles: spin',n_LT_steps) + if (n_LT_steps>0) call live_timing('Dipoles: spin magnetiziation',n_LT_steps) ! ! Main loop over k in IBZ ! diff --git a/src/io/.objects b/src/io/.objects index 6962cdbb0c..e53a6fc0d6 100644 --- a/src/io/.objects +++ b/src/io/.objects @@ -24,6 +24,6 @@ objs = ver_is_gt_or_eq.o \ io_ATMPROJ_pwscf.o io_descriptors.o \ io_BSS_diago.o io_BSS_Haydock.o io_BSS_invert.o io_USPP_pwscf.o \ io_header.o io_Double_Grid.o \ - io_COL_CUT.o io_DB1_selective_scan.o variables_X.o variables_DIPOLES.o \ + io_COL_CUT.o io_DB1_selective_scan.o variables_X.o variables_DIPOLES.o variables_Overlaps.o \ io_out_of_date.o \ $(SC_objects) $(RT_objects) $(NL_objects) diff --git a/src/io/variables_Overlaps.F b/src/io/variables_Overlaps.F new file mode 100644 index 0000000000..f128275d27 --- /dev/null +++ b/src/io/variables_Overlaps.F @@ -0,0 +1,52 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2011 The Yambo Team +! +! Authors (see AUTHORS file for details): AM DS +! +integer function variables_Overlaps(Dip,ID) + ! + use pars, ONLY:IP_YIO,LP_YIO,CR_YIO + use DIPOLES, ONLY:DIPOLE_t,DIP_desc + use IO_m, ONLY:io_status + use IO_int, ONLY:io_variable_elemental,def_variable_elemental,io_elemental + use global_XC, ONLY:Dipole_WF_xc_string,loaded_WF_xc_string + use descriptors, ONLY:IO_desc_reset + ! + implicit none + ! + type(DIPOLE_t) :: Dip + integer :: ID + ! + ! Workspace + ! + call IO_desc_reset(DIP_desc) + ! + call def_variable_elemental(ID,"Bands",2,IP_YIO,0) + call io_variable_elemental(ID,DB_I1=Dip%db_ib,VAR="DIP band range",I1=Dip%ib,CHECK=.true.,OP=(/">=","<="/),& +& DESCRIPTOR=DIP_desc) + ! + call def_variable_elemental(ID,"Bands_limits",2,IP_YIO,0) + call io_variable_elemental(ID,DB_I1=Dip%db_ib_lim,VAR="DIP band range limits",I1=Dip%ib_lim,CHECK=.true.,OP=(/"<=",">="/),& +& DESCRIPTOR=DIP_desc) + ! + call def_variable_elemental(ID,"Bands_ordered",1,LP_YIO,0) + call io_variable_elemental(ID,VAR="Bands ordered",L0=Dip%bands_ordered,CHECK=.true.,OP=(/">="/),& +& DESCRIPTOR=DIP_desc) + ! + call def_variable_elemental(ID,"NG",1,IP_YIO,0) + call io_variable_elemental(ID,VAR="RL vectors in the sum",I0=Dip%ng,WARN=.true.,OP=(/"<="/),& +& DESCRIPTOR=DIP_desc) + ! + ! Wavefunctions xc + ! + call def_variable_elemental(ID,'WAVE_FUNC_XC',1,CR_YIO,0) + call io_variable_elemental(ID,DB_CH0=Dipole_WF_xc_string,CH0=loaded_WF_xc_string,VAR=' Wavefunctions',CHECK=.true.,OP=(/"=="/),& +& DESCRIPTOR=DIP_desc) + ! + call def_variable_elemental(ID,"",0,0,1) + ! + variables_Overlaps=io_status(ID) + ! +end function variables_Overlaps diff --git a/src/io_parallel/io_Overlaps.F b/src/io_parallel/io_Overlaps.F index 2f133ea116..b4b35b8525 100644 --- a/src/io_parallel/io_Overlaps.F +++ b/src/io_parallel/io_Overlaps.F @@ -8,7 +8,7 @@ integer function io_Overlaps(Dip,ID) ! use pars, ONLY:schlen,SP - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_S + use DIPOLES, ONLY:DIPOLE_t,DIP_S use R_lattice, ONLY:nXkbz use electrons, ONLY:n_sp_pol use IO_m, ONLY:io_sec,frag_DIP,read_is_on,io_extension,& @@ -68,7 +68,7 @@ integer function io_Overlaps(Dip,ID) ! ! if (i_fragment>=1) ik_mem=PAR_K_scheme%ibz_index(ik_bz) ! - if (read_is_on(ID)) call DIP_alloc('DIP_S',(/Dip%ib(2),Dip%ib(2),6,nXkbz/)) + if (read_is_on(ID)) call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,nXkbz/)) ! ! Reading size and position ! diff --git a/src/io_serial/io_DIPOLES.F b/src/io_serial/io_DIPOLES.F index 560c336c2a..b95ce8c216 100644 --- a/src/io_serial/io_DIPOLES.F +++ b/src/io_serial/io_DIPOLES.F @@ -8,20 +8,15 @@ integer function io_DIPOLES(Dip,ID) ! use pars, ONLY:schlen - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_P,DIP_v,DIP_alloc - use electrons, ONLY:n_spin - use R_lattice, ONLY:nXkibz - use IO_m, ONLY:io_sec,frag_DIP,io_DIP,read_is_on,io_extension,& -& IO_NOT_ALLOWED,frag_DIP - use IO_int, ONLY:io_connect,io_disconnect,io_bulk,io_header,io_fragment - use DIPOLES, ONLY:DIP_spin,DIP_orbital,& -& compute_Orb_dipoles,compute_Spin_dipoles - use electrons, ONLY:n_spinor + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square #if defined _RT use DIPOLES, ONLY:DIP_P_spinor #endif - use DIPOLES, ONLY:P_square,compute_P2_dipoles - use BS, ONLY:l_BS_dichroism + use electrons, ONLY:n_spin,n_spinor + use R_lattice, ONLY:nXkibz + use IO_m, ONLY:io_sec,frag_DIP,io_DIP,read_is_on,io_extension,IO_NOT_ALLOWED,frag_DIP + use IO_int, ONLY:io_connect,io_disconnect,io_bulk,io_header,io_fragment + use stderr, ONLY:STRING_match use parallel_m, ONLY:PAR_K_scheme use timing_m, ONLY:timing ! @@ -96,22 +91,8 @@ integer function io_DIPOLES(Dip,ID) P2_ipos(2:3)=DIP_ipos(3:4) ! if (read_is_on(ID)) then - call DIP_alloc('DIP_iR',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - call DIP_alloc('DIP_P' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - call DIP_alloc('DIP_v' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - ! - if (compute_Orb_dipoles) & - & call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz,2/)) - if (compute_Spin_dipoles) & - & call DIP_alloc('DIP_spin',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) -#if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) & - & call DIP_alloc('DIP_P_spinor',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) -#endif - if (compute_P2_dipoles) call DIP_alloc('P_square',(/Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - if (l_BS_dichroism) then - call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz,1/)) - endif + ! + call DIPOLE_ALLOC_global(Dip,PAR_K_scheme%nibz) ! endif ! @@ -137,7 +118,7 @@ integer function io_DIPOLES(Dip,ID) call io_bulk(ID_frag,VAR=trim(VAR_name),VAR_SZ=DIP_size) call io_bulk(ID_frag,C3=DIP_v(:,:,:,ik_mem,i_sp_pol),IPOS=DIP_ipos) ! - if (compute_Orb_dipoles) then + if (STRING_match(Dip%computed,"M_it")) then ! ! Itinerant magnetization ! @@ -145,6 +126,10 @@ integer function io_DIPOLES(Dip,ID) call io_bulk(ID_frag,VAR=trim(VAR_name),VAR_SZ=DIP_size) call io_bulk(ID_frag,C3=DIP_orbital(:,:,:,ik_mem,i_sp_pol,2),IPOS=DIP_ipos) ! + endif + ! + if (STRING_match(Dip%computed,"M_orb")) then + ! ! Orbital magnetization ! write (VAR_name,'(3(a,i4.4))') 'DIP_orbital_k_',ik,'_spin_',i_sp_pol @@ -153,7 +138,7 @@ integer function io_DIPOLES(Dip,ID) ! endif ! - if (compute_Spin_dipoles) then + if (STRING_match(Dip%computed,"M_spin")) then ! ! Spin magntization ! @@ -164,22 +149,19 @@ integer function io_DIPOLES(Dip,ID) endif ! #if defined _RT - if (compute_Spin_dipoles) then - ! - if (n_spinor==2) then - ! - ! P_Spinor - ! - write (VAR_name,'(a,i4.4)') 'DIP_P_spinor_k_',ik - call io_bulk(ID_frag,VAR=trim(VAR_name),VAR_SZ=Pspinor_size) - call io_bulk(ID_frag,C5=DIP_P_spinor(:,:,:,:,:,ik_mem),IPOS=Pspinor_ipos) - ! - endif + if (STRING_match(Dip%computed,"P_spinor")) then + ! + ! P_Spinor + ! + write (VAR_name,'(a,i4.4)') 'DIP_P_spinor_k_',ik + call io_bulk(ID_frag,VAR=trim(VAR_name),VAR_SZ=Pspinor_size) + call io_bulk(ID_frag,C5=DIP_P_spinor(:,:,:,:,:,ik_mem),IPOS=Pspinor_ipos) + ! ! endif #endif ! - if (compute_P2_dipoles) then + if (STRING_match(Dip%computed,"P2")) then ! ! P2 ! @@ -189,7 +171,7 @@ integer function io_DIPOLES(Dip,ID) ! endif ! - if (l_BS_dichroism) then + if (STRING_match(Dip%computed,"M_CD_orb")) then ! ! Orbital magnetization ! diff --git a/src/io_serial/io_Overlaps.F b/src/io_serial/io_Overlaps.F index c34f846d53..2ed5034b8a 100644 --- a/src/io_serial/io_Overlaps.F +++ b/src/io_serial/io_Overlaps.F @@ -8,7 +8,7 @@ integer function io_Overlaps(Dip,ID) ! use pars, ONLY:schlen - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_S + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIPOLE_ALLOC_elemental use R_lattice, ONLY:nXkbz use IO_int, ONLY:io_connect,io_disconnect,io_fragment,io_header,io_bulk use IO_m, ONLY:io_sec,frag_DIP,read_is_on,io_extension,& @@ -63,7 +63,7 @@ integer function io_Overlaps(Dip,ID) ! ik_mem=ik ! - if (read_is_on(ID)) call DIP_alloc('DIP_S',(/Dip%ib(2),Dip%ib(2),6,nXkbz/)) + if (read_is_on(ID)) call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,nXkbz/)) ! ! Fragmentation ! diff --git a/src/modules/SET_defaults.F b/src/modules/SET_defaults.F index 2a76a90ffd..b4767fcf79 100644 --- a/src/modules/SET_defaults.F +++ b/src/modules/SET_defaults.F @@ -18,9 +18,6 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) & q_plus_G_direction,Q_Shift_Order,& & l_X_terminator,X_terminator_E,global_gauge,& & Chi_linalg_mode,X_use_lin_sys,X_use_gpu,X_DbGd_percentual - use DIPOLES, ONLY:use_covariant_approach,use_real_space_approach,& -& Vnl_commutator_warning,use_shifted_grids_approach,use_g_space_approach,& -& compute_P2_dipoles,compute_Spin_dipoles,compute_Orb_dipoles use QP_m, ONLY:QP_dSc_steps,QP_n_W_freqs,QP_G_Zoom_treshold,& & QP_dSc_test,QP_solver,QP_G_damp,QP_dSc_delta,& & QP_cg_percent,QP_n_states,SC_E_threshold, & @@ -36,8 +33,8 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) use pseudo, ONLY:pp_n_l_times_proj_max,pp_kbv_dim use R_lattice, ONLY:n_g_shells,ng_closed,bse_scattering,coll_scattering,& & Xk_grid_is_uniform,RIM_id_epsm1_reference,RIM_epsm1,& -& RIM_anisotropy,RIM_ng,RIM_W_ng,rimw_type,RIM_n_rand_pts,nqibz,q0_def_norm,& -& cutoff_presets,k_map,qindx_S_max_Go +& RIM_anisotropy,RIM_ng,RIM_W_ng,RIM_n_rand_pts,nqibz,q0_def_norm,& +& cutoff_presets,k_map,qindx_S_max_Go,RIMW_type use electrons, ONLY:n_spin,n_sp_pol,n_spinor,filled_tresh,l_spin_orbit,n_spin_den,eval_magn use parallel_m, ONLY:ncpu,CPU_str_reset,CREATE_hosts_COMM use com, ONLY:isec,depth,secnm,previous_secmode,of_name,n_ofs_defined,of_opened,of_unit,max_open_ofs,& @@ -352,13 +349,6 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) X_DbGd_nkpts=0 self_detect_E_range=.FALSE. X_FILL_UP_matrix_only=.FALSE. - use_shifted_grids_approach = .FALSE. - use_covariant_approach = .FALSE. - use_real_space_approach = .FALSE. - use_g_space_approach = .TRUE. - compute_P2_dipoles = .FALSE. - compute_Spin_dipoles = .FALSE. - compute_Orb_dipoles = .FALSE. use_X_DbGd=.FALSE. X_DbGd_percentual=-1. eps_2_alpha=1._SP @@ -366,7 +356,6 @@ subroutine SET_defaults(INSTR,IND,OD,COM_DIR) global_gauge='length' grid_paths=' ' skip_cond_sum_rule=.FALSE. - Vnl_commutator_warning=.FALSE. q_plus_G_direction=0._SP Q_Shift_Order=1 l_X_terminator=.FALSE. diff --git a/src/modules/mod_DIPOLES.F b/src/modules/mod_DIPOLES.F index d1127b6f1a..e5e73fe6c7 100644 --- a/src/modules/mod_DIPOLES.F +++ b/src/modules/mod_DIPOLES.F @@ -11,19 +11,19 @@ module DIPOLES use units, ONLY:HA2EV use descriptors, ONLY:IO_desc ! -#include + implicit none ! ! Logicals ! - logical :: use_covariant_approach - logical :: use_shifted_grids_approach - logical :: use_g_space_approach - logical :: use_real_space_approach - logical :: compute_P_dipoles - logical :: compute_P2_dipoles - logical :: compute_Spin_dipoles - logical :: compute_Orb_dipoles - logical :: Vnl_commutator_warning + logical :: Vnl_commutator_warning =.FALSE. + ! + ! List of observables associated to the specific approach and/or to other routines + ! + character(schlen) :: shifted_grids_obs="" + character(schlen) :: covariant_obs ="" + character(schlen) :: g_space_obs ="" + character(schlen) :: x_space_obs ="" + character(schlen) :: specific_obs ="" ! ! other ! @@ -69,81 +69,17 @@ module DIPOLES ! end type ! - contains + interface ! - subroutine DIP_alloc(what,d) - ! - use electrons, ONLY:n_sp_pol,n_spinor - use pars, ONLY:cZERO - ! - character(*) :: what - integer, optional :: d(:) - ! - if (present(d)) then - select case(what) - case('DIP_iR') - if (allocated(DIP_iR)) return - YAMBO_ALLOC(DIP_iR,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) - DIP_iR=cZERO - case('DIP_P') - if (allocated(DIP_P)) return - YAMBO_ALLOC(DIP_P,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) - DIP_P=cZERO - case('DIP_v') - if (allocated(DIP_v)) return - YAMBO_ALLOC(DIP_v,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol)) - DIP_v=cZERO - case('DIP_S') - if (allocated(DIP_S)) return - YAMBO_ALLOC(DIP_S,(d(1),d(2),d(3),d(4),n_sp_pol)) - DIP_S=cZERO - case('DIP_orbital') - if (allocated(DIP_orbital)) return - YAMBO_ALLOC(DIP_orbital,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol,d(7))) - DIP_orbital=cZERO - case('DIP_spin') - if (allocated(DIP_spin)) return - YAMBO_ALLOC(DIP_spin,(d(1),d(2):d(3),d(4):d(5),d(6),n_sp_pol,3)) - DIP_spin=cZERO - case('DIP_P_spinor') - if (allocated(DIP_P_spinor).or.n_spinor==1) return - YAMBO_ALLOC(DIP_P_spinor,(d(1),n_spinor,n_spinor,d(2):d(3),d(4):d(5),d(6))) - DIP_P_spinor=cZERO - case('P_square') - if (allocated(P_square)) return - YAMBO_ALLOC(P_square,(d(1):d(2),d(3):d(4),d(5),n_sp_pol)) - P_square=cZERO - end select - else - select case(what) - case('DIP_iR') - if (.not.allocated(DIP_iR)) return - YAMBO_FREE(DIP_iR) - case('DIP_P') - if (.not.allocated(DIP_P)) return - YAMBO_FREE(DIP_P) - case('DIP_v') - if (.not.allocated(DIP_v)) return - YAMBO_FREE(DIP_v) - case('DIP_S') - if (.not.allocated(DIP_S)) return - YAMBO_FREE(DIP_S) - case('DIP_orbital') - if (.not.allocated(DIP_orbital)) return - YAMBO_FREE(DIP_orbital) - case('DIP_spin') - if (.not.allocated(DIP_spin)) return - YAMBO_FREE(DIP_spin) - case('DIP_P_spinor') - if (.not.allocated(DIP_P_spinor)) return - YAMBO_FREE(DIP_P_spinor) - case('P_square') - if (.not.allocated(P_square)) return - YAMBO_FREE(P_square) - end select - endif + subroutine DIPOLE_ALLOC_elemental(what,d) + character(*) :: what + integer, optional :: d(:) end subroutine ! + end interface + ! + contains + ! subroutine DIPOLES_duplicate(Dip_in,Dip_out) type(DIPOLE_t), intent(in) :: Dip_in type(DIPOLE_t), intent(out):: Dip_out @@ -182,7 +118,7 @@ subroutine DIPOLES_reset(Dip) Dip%bands_ordered=.true. Dip%force_v_g_space=.false. Dip%approach="G-space v" - Dip%computed="R P V" + Dip%computed=" " end subroutine DIPOLES_reset ! function DIP_rotated(ic,iv,ik_bz,i_sp_pol,what,kpt) diff --git a/src/modules/mod_R_lattice.F b/src/modules/mod_R_lattice.F index 4b3d23e89a..3abd45f590 100644 --- a/src/modules/mod_R_lattice.F +++ b/src/modules/mod_R_lattice.F @@ -154,7 +154,7 @@ module R_lattice complex(SP),allocatable :: RIM_W (:,:,:,:) complex(SP),allocatable DEV_ATTR :: RIM_W_d(:,:,:,:) complex(DP),allocatable :: f_coeff(:,:,:,:,:) - character(schlen) :: rimw_type + character(schlen) :: RIMW_type ! ! Coulomb (including Cutoff) ! diff --git a/src/modules/mod_SC.F b/src/modules/mod_SC.F index d0a80daa3e..cb7d05c697 100644 --- a/src/modules/mod_SC.F +++ b/src/modules/mod_SC.F @@ -119,16 +119,16 @@ subroutine SC_free() use QP_m, ONLY:QP_Sc use hamiltonian, ONLY:H_free use xc_functionals, ONLY:magn,V_xc - use DIPOLES, ONLY:DIP_alloc + use DIPOLES, ONLY:DIPOLE_alloc_elemental ! implicit none ! call H_free() ! - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_spin') - call DIP_alloc('P_square') + call DIPOLE_ALLOC_elemental('DIP_P') + call DIPOLE_ALLOC_elemental('DIP_iR') + call DIPOLE_ALLOC_elemental('DIP_spin') + call DIPOLE_ALLOC_elemental('P_square') ! YAMBO_FREE(QP_Sc) ! diff --git a/src/nloptics/NL_driver.F b/src/nloptics/NL_driver.F index 5e8132231f..cb63df2687 100644 --- a/src/nloptics/NL_driver.F +++ b/src/nloptics/NL_driver.F @@ -16,14 +16,14 @@ subroutine NL_driver(E,X,k,q,Dip) use electrons, ONLY:levels,n_sp_pol use collision_ext, ONLY:COLLISIONS_CV_only use X_m, ONLY:X_t - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_S + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIPOLE_ALLOC_elemental use wave_func, ONLY:WF,wf_ng use interfaces, ONLY:WF_load,WF_free use hamiltonian, ONLY:WF_Go_indx,H_QP_table_setup,H_potential use R_lattice, ONLY:bz_samp,qindx_free use fields, ONLY:Efield use QP_CTL_m, ONLY:QP_apply - use nl_optics, ONLY:n_frequencies,Correlation,IPA,NL_alloc,NL_free,V_bands,eval_dG,NL_J,NL_initial_J,NL_initial_versor, & + use nl_optics, ONLY:n_frequencies,Correlation,NL_alloc,NL_free,V_bands,eval_dG,NL_J,NL_initial_J,NL_initial_versor, & & NL_estep,NL_er,Integrator,l_use_DIPOLES,NL_P_t,JGM,TDDFT,NL_P,loop_on_angles,n_angles,& & E_ext_t,E_tot_t,E_ks_t,E_ks,E_tot,E_ext,runs_done,n_runs_todo,l_eval_CURRENT,NL_rot_axis,& & HF,SEX,NL_bands,NL_nbands,NL_alloc_k_distributed,NL_J_t,n_runs,loop_on_frequencies, & @@ -50,7 +50,6 @@ subroutine NL_driver(E,X,k,q,Dip) integer :: i_f,i1,i_sp_pol,wf_ng_save,io_err character(schlen) :: l_message logical :: l_dynamics_is_over - integer :: ID_RESTART real(SP) :: Time,angle ! ! In Non-Linear NL_bands always equal to RT_bands @@ -106,13 +105,12 @@ subroutine NL_driver(E,X,k,q,Dip) ! ===================================================== call qindx_free('ALL') ! - call DIP_alloc('P_square') + call DIPOLE_ALLOC_elemental('P_square') if(l_use_DIPOLES) then - call DIP_alloc('DIP_S') + call DIPOLE_ALLOC_elemental('DIP_S') else if(.not.l_eval_CURRENT) then -! call DIP_alloc('DIP_R') - call DIP_alloc('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_v') endif endif ! @@ -274,8 +272,8 @@ subroutine NL_driver(E,X,k,q,Dip) ! call WF_free(WF) call NL_free() - call DIP_alloc('DIP_S') - call DIP_alloc('DIP_R') - call DIP_alloc('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_S') + call DIPOLE_ALLOC_elemental('DIP_R') + call DIPOLE_ALLOC_elemental('DIP_v') ! end subroutine NL_driver diff --git a/src/pol_function/X_dielectric_matrix.F b/src/pol_function/X_dielectric_matrix.F index a58e1ac61a..94b7a4ac42 100644 --- a/src/pol_function/X_dielectric_matrix.F +++ b/src/pol_function/X_dielectric_matrix.F @@ -11,7 +11,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) ! use pars, ONLY:SP,schlen use drivers, ONLY:l_alda_fxc,l_gw0,l_life,l_rpa_IP - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc + use DIPOLES, ONLY:DIPOLE_t use X_m, ONLY:X_t,X_ALLOC_elemental,self_detect_E_range,X_poles,l_recalculate_X,l_write_disk_Xo,& & l_X_terminator,X_terminator_Kind,X_mat,X_par,X_par_lower_triangle,& & X_DbGd_nkpt_at_q,use_X_DbGd,X_DbGd_nkpt_at_q_table,X_Double_Grid_setup,& @@ -306,6 +306,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) if (n_OPTICAL_dir_to_eval>1) X_what="("//trim(intc(iq_dir))//" of "//trim(intc(n_OPTICAL_dir_to_eval))//")" ! call X_irredux(iq,"Xo"//trim(X_what),X_par(iq_mem),Xen,Xk,Xw,X,Dip) + stop ! if (l_write_disk_Xo.and.n_OPTICAL_dir_to_eval==1) then call X_mat_filling(iq_mem,X,Xw,X_MEM_n_freqs,X_MEM_n_tot_freqs,X_mat) @@ -365,9 +366,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) if (allocated(F_xc_gspace)) then YAMBO_FREE(F_xc_gspace) endif - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') + call DIPOLE_ALLOC_global(Dip,-1) if (.not.SILENT_MODE.or.X%iq(2)==q%nibz) call WF_free(WF) ! contains diff --git a/src/pol_function/X_irredux.F b/src/pol_function/X_irredux.F index 07c53f9454..e982860551 100644 --- a/src/pol_function/X_irredux.F +++ b/src/pol_function/X_irredux.F @@ -43,7 +43,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) use R_lattice, ONLY:qindx_X,bz_samp,G_m_G use D_lattice, ONLY:i_space_inv use collision_el, ONLY:elemental_collision,elemental_collision_free,elemental_collision_alloc - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc + use DIPOLES, ONLY:DIPOLE_t use X_m, ONLY:X_t,X_poles,X_Ein_poles,current_iq,X_poles_tab,X_lower_triangle_matrix_in_use,& & self_detect_E_range,X_FILL_UP_matrix_only,use_X_DbGd,& & l_X_terminator,X_terminator_E,X_term_E,X_par_lower_triangle,drude_n_states @@ -441,15 +441,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) !$omp end parallel #endif ! - if (iq==1.and.io_DIP) then - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') - call DIP_alloc('DIP_spin') - call DIP_alloc('DIP_orbital') - call DIP_alloc('P_square') - call DIP_alloc('DIP_P_spinor') - endif + if (iq==1.and.io_DIP) call DIPOLE_ALLOC_global(Dip,-1) ! if (coarse_grid_N>=n_out_threads) call live_timing( ) ! diff --git a/src/real_time_control/RT_free.F b/src/real_time_control/RT_free.F index 6035e9581d..5e45c65b40 100644 --- a/src/real_time_control/RT_free.F +++ b/src/real_time_control/RT_free.F @@ -8,7 +8,6 @@ subroutine RT_free( ) ! use R_lattice, ONLY:bz_samp_FineGd_reset - use DIPOLES, ONLY:DIP_alloc #if defined _ELPH use ELPH_intfcs, ONLY:ELPH_alloc use ELPH, ONLY:Q_io_map,GKKP_ep_sq,GKKP_pe_sq @@ -25,18 +24,19 @@ subroutine RT_free( ) use RT_iterative, ONLY:THETA_matrix,THETA_matrix_index #endif use RT_lifetimes, ONLY:RT_ALL_lifetimes_free,q_weight_RT + use DIPOLES, ONLY:DIPOLE_ALLOC_elemental ! #include ! call H_free() ! - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') - call DIP_alloc('DIP_spin') - call DIP_alloc('DIP_orbital') - call DIP_alloc('P_square') - call DIP_alloc('DIP_P_spinor') + call DIPOLE_ALLOC_elemental('DIP_iR') + call DIPOLE_ALLOC_elemental('DIP_P') + call DIPOLE_ALLOC_elemental('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_spin') + call DIPOLE_ALLOC_elemental('DIP_orbital') + call DIPOLE_ALLOC_elemental('P_square') + call DIPOLE_ALLOC_elemental('DIP_P_spinor') ! call RT_ALL_lifetimes_free() call RT_ALL_occupations_free() diff --git a/ypp/dipoles/DIPOLE_ypp_driver.F b/ypp/dipoles/DIPOLE_ypp_driver.F index ad08a43d04..cdc81ea59a 100644 --- a/ypp/dipoles/DIPOLE_ypp_driver.F +++ b/ypp/dipoles/DIPOLE_ypp_driver.F @@ -14,7 +14,7 @@ subroutine DIPOLE_ypp_driver(k,E,q) use electrons, ONLY:levels,n_spin use YPPm, ONLY:DIPs_C_bands,DIPs_V_bands,DIPs_E_range,DIPs_direction,K_transform,coo_out,INTERP_grid,& & l_PROJECT_plane,l_PROJECT_line,PROJECT_N_par,DIPs,DIPs_mask,DIPs_kind - use DIPOLES, ONLY:DIPOLES_reset,DIP_alloc,DIP_iR,DIP_desc + use DIPOLES, ONLY:DIPOLES_reset,DIP_iR,DIP_desc,DIPOLE_ALLOC_elemental use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_IND_CON_BANDS_DIP,PAR_IND_VAL_BANDS_DIP,PAR_DIPk_ibz_index use parallel_int, ONLY:PARALLEL_global_indexes,PP_redux_wait use QP_CTL_m, ONLY:QP_apply @@ -200,9 +200,9 @@ subroutine DIPOLE_ypp_driver(k,E,q) contains ! subroutine LOCAL_clean - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_iR') + call DIPOLE_ALLOC_elemental('DIP_P') + call DIPOLE_ALLOC_elemental('DIP_v') call DIPOLES_reset(DIPs) end subroutine ! diff --git a/ypp/excitons/excitons_amplitudes.F b/ypp/excitons/excitons_amplitudes.F index f8088e6537..e3809067c3 100644 --- a/ypp/excitons/excitons_amplitudes.F +++ b/ypp/excitons/excitons_amplitudes.F @@ -16,7 +16,7 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) use YPPm, ONLY:EXCITON_weight_treshold,EXCITONS_user_indexes,EXCITONS_n_user_states,DIPs,& & DIPs_direction,l_dipoles,BSiq use BS_solvers, ONLY:BS_mat,BSS_eh_table,BSS_desc,BSS_n_eig - use DIPOLES, ONLY:DIP_rotated,DIP_alloc,DIPOLES_reset + use DIPOLES, ONLY:DIP_rotated,DIPOLES_reset,DIPOLE_ALLOC_elemental use BS, ONLY:BS_H_dim,BS_bands,BSqpts use com, ONLY:msg use vec_operate, ONLY:sort,v_norm @@ -206,9 +206,9 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) enddo ! if (l_dipoles) then - call DIP_alloc('DIP_iR') - call DIP_alloc('DIP_P') - call DIP_alloc('DIP_v') + call DIPOLE_ALLOC_elemental('DIP_iR') + call DIPOLE_ALLOC_elemental('DIP_P') + call DIPOLE_ALLOC_elemental('DIP_v') call DIPOLES_reset(DIPs) endif ! From 84b986c6f6987cf91e1d23c6bbeb068c92dd7c37 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 10:16:22 +0200 Subject: [PATCH 027/112] Version 5.2.0, Revision 23128, Hash 97af24707 MODIFIED * configure include/version/version.m4 allocations/DIPOLE_ALLOC_global.F io/variables_DIPOLES.F io_serial/io_DIPOLES.F pol_function/X_dielectric_matrix.F pol_function/X_irredux.F Bugs: - Fixed bug in DIPOLE_ALLOC_global.F Patch sent by: Andrea Marini --- configure | 22 ++++++------ include/version/version.m4 | 6 ++-- src/allocations/DIPOLE_ALLOC_global.F | 12 ++----- src/io/variables_DIPOLES.F | 47 -------------------------- src/io_serial/io_DIPOLES.F | 6 +--- src/pol_function/X_dielectric_matrix.F | 1 - src/pol_function/X_irredux.F | 2 +- 7 files changed, 18 insertions(+), 78 deletions(-) diff --git a/configure b/configure index 3fc213181c..cdb148013a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23128 h.cce1c9c56. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23129 h.97af24707. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23128 h.cce1c9c56' -PACKAGE_STRING='Yambo 5.2.0 r.23128 h.cce1c9c56' +PACKAGE_VERSION='5.2.0 r.23129 h.97af24707' +PACKAGE_STRING='Yambo 5.2.0 r.23129 h.97af24707' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23128 h.cce1c9c56 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23129 h.97af24707 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23128 h.cce1c9c56:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23129 h.97af24707:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23128 h.cce1c9c56 +Yambo configure 5.2.0 r.23129 h.97af24707 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23128 h.cce1c9c56, which was +It was created by Yambo $as_me 5.2.0 r.23129 h.97af24707, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23128" -SHASH="cce1c9c56" +SREVISION="23129" +SHASH="97af24707" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23128 h.cce1c9c56, which was +This file was extended by Yambo $as_me 5.2.0 r.23129 h.97af24707, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23128 h.cce1c9c56 +Yambo config.status 5.2.0 r.23129 h.97af24707 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a1f35f909f..6625574912 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23128 h.cce1c9c56, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23129 h.97af24707, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23128" -SHASH="cce1c9c56" +SREVISION="23129" +SHASH="97af24707" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/allocations/DIPOLE_ALLOC_global.F b/src/allocations/DIPOLE_ALLOC_global.F index 71d460e135..23f7782c5e 100644 --- a/src/allocations/DIPOLE_ALLOC_global.F +++ b/src/allocations/DIPOLE_ALLOC_global.F @@ -9,8 +9,8 @@ subroutine DIPOLE_ALLOC_global(D,NK) ! ! Here all DIPOLE observables are allocated except the S_overlap matrix ! - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIPOLE_ALLOC_elemental - use pars, ONLY:cZERO + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,& +& P_square,DIPOLE_ALLOC_elemental use stderr, ONLY:STRING_match ! implicit none @@ -33,35 +33,27 @@ subroutine DIPOLE_ALLOC_global(D,NK) call DIPOLE_ALLOC_elemental('DIP_iR',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) call DIPOLE_ALLOC_elemental('DIP_v' ,(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) call DIPOLE_ALLOC_elemental('DIP_P' ,(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) - DIP_iR=cZERO - DIP_v=cZERO - DIP_P=cZERO ! if (STRING_match(D%computed,"M_orb").and.STRING_match(D%computed,"M_it")) then call DIPOLE_ALLOC_elemental('DIP_orbital',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK,2/)) - DIP_orbital=cZERO endif ! if ((STRING_match(D%computed,"M_orb").or.STRING_match(D%computed,"M_CD_orb")).and.& & .not.STRING_match(D%computed,"M_it")) then call DIPOLE_ALLOC_elemental('DIP_orbital',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK,1/)) - DIP_orbital=cZERO endif ! if (STRING_match(D%computed,"M_spin")) then call DIPOLE_ALLOC_elemental('DIP_spin',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) - DIP_spin=cZERO endif #if defined _RT if (STRING_match(D%computed,"P_spinor")) then call DIPOLE_ALLOC_elemental('DIP_P_spinor',(/3,D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) - DIP_P_spinor=cZERO endif #endif ! if (STRING_match(D%computed,"P2")) then call DIPOLE_ALLOC_elemental('P_square',(/D%ib_lim(2),D%ib(2),D%ib(1),D%ib_lim(1),NK/)) - P_square=cZERO endif ! end subroutine diff --git a/src/io/variables_DIPOLES.F b/src/io/variables_DIPOLES.F index 1f4c617831..291e85b5dd 100644 --- a/src/io/variables_DIPOLES.F +++ b/src/io/variables_DIPOLES.F @@ -61,50 +61,3 @@ integer function variables_DIPOLES(Dip,ID) variables_DIPOLES=io_status(ID) ! end function variables_DIPOLES -! -! -integer function variables_Overlaps(Dip,ID) - ! - use pars, ONLY:IP_YIO,LP_YIO,CR_YIO - use DIPOLES, ONLY:DIPOLE_t,DIP_desc - use IO_m, ONLY:io_status - use IO_int, ONLY:io_variable_elemental,def_variable_elemental,io_elemental - use global_XC, ONLY:Dipole_WF_xc_string,loaded_WF_xc_string - use descriptors, ONLY:IO_desc_reset - ! - implicit none - ! - type(DIPOLE_t) :: Dip - integer :: ID - ! - ! Workspace - ! - call IO_desc_reset(DIP_desc) - ! - call def_variable_elemental(ID,"Bands",2,IP_YIO,0) - call io_variable_elemental(ID,DB_I1=Dip%db_ib,VAR="DIP band range",I1=Dip%ib,CHECK=.true.,OP=(/">=","<="/),& -& DESCRIPTOR=DIP_desc) - ! - call def_variable_elemental(ID,"Bands_limits",2,IP_YIO,0) - call io_variable_elemental(ID,DB_I1=Dip%db_ib_lim,VAR="DIP band range limits",I1=Dip%ib_lim,CHECK=.true.,OP=(/"<=",">="/),& -& DESCRIPTOR=DIP_desc) - ! - call def_variable_elemental(ID,"Bands_ordered",1,LP_YIO,0) - call io_variable_elemental(ID,VAR="Bands ordered",L0=Dip%bands_ordered,CHECK=.true.,OP=(/">="/),& -& DESCRIPTOR=DIP_desc) - ! - call def_variable_elemental(ID,"NG",1,IP_YIO,0) - call io_variable_elemental(ID,VAR="RL vectors in the sum",I0=Dip%ng,WARN=.true.,OP=(/"<="/),& -& DESCRIPTOR=DIP_desc) - ! - ! Wavefunctions xc - ! - call def_variable_elemental(ID,'WAVE_FUNC_XC',1,CR_YIO,0) - call io_variable_elemental(ID,DB_CH0=Dipole_WF_xc_string,CH0=loaded_WF_xc_string,VAR=' Wavefunctions',CHECK=.true.,OP=(/"=="/),& -& DESCRIPTOR=DIP_desc) - ! - call def_variable_elemental(ID,"",0,0,1) - ! - variables_Overlaps=io_status(ID) - ! -end function variables_Overlaps diff --git a/src/io_serial/io_DIPOLES.F b/src/io_serial/io_DIPOLES.F index b95ce8c216..1970496e45 100644 --- a/src/io_serial/io_DIPOLES.F +++ b/src/io_serial/io_DIPOLES.F @@ -90,11 +90,7 @@ integer function io_DIPOLES(Dip,ID) P2_size(2:3)=DIP_size(3:4) P2_ipos(2:3)=DIP_ipos(3:4) ! - if (read_is_on(ID)) then - ! - call DIPOLE_ALLOC_global(Dip,PAR_K_scheme%nibz) - ! - endif + if (read_is_on(ID)) call DIPOLE_ALLOC_global(Dip,PAR_K_scheme%nibz) ! ! Fragmentation ! diff --git a/src/pol_function/X_dielectric_matrix.F b/src/pol_function/X_dielectric_matrix.F index 94b7a4ac42..86d332a31b 100644 --- a/src/pol_function/X_dielectric_matrix.F +++ b/src/pol_function/X_dielectric_matrix.F @@ -306,7 +306,6 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) if (n_OPTICAL_dir_to_eval>1) X_what="("//trim(intc(iq_dir))//" of "//trim(intc(n_OPTICAL_dir_to_eval))//")" ! call X_irredux(iq,"Xo"//trim(X_what),X_par(iq_mem),Xen,Xk,Xw,X,Dip) - stop ! if (l_write_disk_Xo.and.n_OPTICAL_dir_to_eval==1) then call X_mat_filling(iq_mem,X,Xw,X_MEM_n_freqs,X_MEM_n_tot_freqs,X_mat) diff --git a/src/pol_function/X_irredux.F b/src/pol_function/X_irredux.F index e982860551..fdd32c0596 100644 --- a/src/pol_function/X_irredux.F +++ b/src/pol_function/X_irredux.F @@ -43,7 +43,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) use R_lattice, ONLY:qindx_X,bz_samp,G_m_G use D_lattice, ONLY:i_space_inv use collision_el, ONLY:elemental_collision,elemental_collision_free,elemental_collision_alloc - use DIPOLES, ONLY:DIPOLE_t + use DIPOLES, ONLY:DIPOLE_t,DIP_iR use X_m, ONLY:X_t,X_poles,X_Ein_poles,current_iq,X_poles_tab,X_lower_triangle_matrix_in_use,& & self_detect_E_range,X_FILL_UP_matrix_only,use_X_DbGd,& & l_X_terminator,X_terminator_E,X_term_E,X_par_lower_triangle,drude_n_states From 7b325be9d8996b2a5eff2d1527df7ccf332a5c48 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 10:42:50 +0200 Subject: [PATCH 028/112] Version 5.2.0, Revision 23129, Hash 84b986c6f MODIFIED * configure driver/yambo.F include/version/version.m4 acfdt/acfdt_tot_energy.F allocations/DIPOLE_ALLOC_global.F allocations/X_ALLOC_global.F bse/K_dipoles.F collisions/COLLISIONS_HXC.F dipoles/DIPOLE_driver.F el-ph/ELPH_Hamiltonian.F el-ph/ELPH_Sigma_c.F el-ph/ELPH_databases_load.F io/io_ELPH.F io/variables_ELPH.F modules/mod_DIPOLES.F modules/mod_SC.F modules/mod_X.F modules/mod_hamiltonian.F nloptics/NL_driver.F pol_function/X_dielectric_matrix.F pol_function/X_irredux.F qp/QP_interpolate_W.F qp/QP_mpa.F qp/QP_ppa_cohsex.F qp/QP_real_axis.F real_time_control/RT_free.F sc/OEP_ApplySigmaCSX.F sc/SC_driver.F ypp/dipoles/DIPOLE_ypp_driver.F ypp/el-ph/ELPH_atomic_amplitude.F ypp/el-ph/ELPH_databases_IO_gkkp_expand.F ypp/el-ph/ELPH_eliashberg_dos.F ypp/el-ph/ELPH_excitonic_gkkp.F ypp/excitons/excitons_amplitudes.F NEW * modules/mod_ALLOC.F DELETED * modules/mod_ELPH_intfcs.F Bugs: - ELPH_alloc and X_alloc moved, together with DIPOLE related allocation routines, to a new module (mod_ALLOC) Patch sent by: Andrea Marini --- configure | 22 ++++++------ driver/yambo.F | 4 +-- include/version/version.m4 | 6 ++-- src/acfdt/acfdt_tot_energy.F | 5 +-- src/allocations/DIPOLE_ALLOC_global.F | 6 ++-- src/allocations/X_ALLOC_global.F | 3 +- src/bse/K_dipoles.F | 3 +- src/collisions/COLLISIONS_HXC.F | 3 +- src/dipoles/DIPOLE_driver.F | 6 ++-- src/el-ph/ELPH_Hamiltonian.F | 2 +- src/el-ph/ELPH_Sigma_c.F | 2 +- src/el-ph/ELPH_databases_load.F | 2 +- src/io/io_ELPH.F | 2 +- src/io/variables_ELPH.F | 2 +- src/modules/mod_ALLOC.F | 44 +++++++++++++++++++++++ src/modules/mod_DIPOLES.F | 9 ----- src/modules/mod_ELPH_intfcs.F | 23 ------------ src/modules/mod_SC.F | 7 ++-- src/modules/mod_X.F | 5 --- src/modules/mod_hamiltonian.F | 2 +- src/nloptics/NL_driver.F | 7 ++-- src/pol_function/X_dielectric_matrix.F | 12 +++---- src/pol_function/X_irredux.F | 5 +-- src/qp/QP_interpolate_W.F | 3 +- src/qp/QP_mpa.F | 3 +- src/qp/QP_ppa_cohsex.F | 3 +- src/qp/QP_real_axis.F | 5 +-- src/real_time_control/RT_free.F | 12 ++----- src/sc/OEP_ApplySigmaCSX.F | 3 +- src/sc/SC_driver.F | 5 +-- ypp/dipoles/DIPOLE_ypp_driver.F | 7 ++-- ypp/el-ph/ELPH_atomic_amplitude.F | 2 +- ypp/el-ph/ELPH_databases_IO_gkkp_expand.F | 2 +- ypp/el-ph/ELPH_eliashberg_dos.F | 2 +- ypp/el-ph/ELPH_excitonic_gkkp.F | 2 +- ypp/excitons/excitons_amplitudes.F | 7 ++-- 36 files changed, 122 insertions(+), 116 deletions(-) create mode 100644 src/modules/mod_ALLOC.F delete mode 100644 src/modules/mod_ELPH_intfcs.F diff --git a/configure b/configure index cdb148013a..ea811bafb7 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23129 h.97af24707. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23130 h.84b986c6f. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23129 h.97af24707' -PACKAGE_STRING='Yambo 5.2.0 r.23129 h.97af24707' +PACKAGE_VERSION='5.2.0 r.23130 h.84b986c6f' +PACKAGE_STRING='Yambo 5.2.0 r.23130 h.84b986c6f' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23129 h.97af24707 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23130 h.84b986c6f to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23129 h.97af24707:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23130 h.84b986c6f:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23129 h.97af24707 +Yambo configure 5.2.0 r.23130 h.84b986c6f generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23129 h.97af24707, which was +It was created by Yambo $as_me 5.2.0 r.23130 h.84b986c6f, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23129" -SHASH="97af24707" +SREVISION="23130" +SHASH="84b986c6f" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23129 h.97af24707, which was +This file was extended by Yambo $as_me 5.2.0 r.23130 h.84b986c6f, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23129 h.97af24707 +Yambo config.status 5.2.0 r.23130 h.84b986c6f configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/driver/yambo.F b/driver/yambo.F index 46740be97f..38c7e7ba26 100644 --- a/driver/yambo.F +++ b/driver/yambo.F @@ -16,7 +16,7 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! use drivers, ONLY:l_HF_and_locXC,l_sc_run,l_eval_collisions,l_real_time,& & l_optics,l_chi,l_em1s,l_ppa,l_mpa,l_bss,l_bse,l_em1d,l_X,& -& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr,l_phel_corr +& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr #if defined _SCALAPACK use drivers, ONLY:l_slk_test #endif @@ -180,7 +180,7 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! if (l_nl_optics.and.launch_me) call error('Please run the calculation of em1s/d/x in a separate run') ! - if (launch_me) i_err=X_dielectric_matrix(Xen,Xk,q,X(i_X_kind),Xw(i_X_kind),Dip,.false.) + if (launch_me) i_err=X_dielectric_matrix(Xen,Xk,q,X(i_X_kind),Xw(i_X_kind),Dip,.FALSE.,.FALSE.) if (launch_me) call mem_manager_report ! ! HARTREE-FOCK AND VXC diff --git a/include/version/version.m4 b/include/version/version.m4 index 6625574912..6d26ec0728 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23129 h.97af24707, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23130 h.84b986c6f, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23129" -SHASH="97af24707" +SREVISION="23130" +SHASH="84b986c6f" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/acfdt/acfdt_tot_energy.F b/src/acfdt/acfdt_tot_energy.F index 5c140139ea..74cc06ea83 100644 --- a/src/acfdt/acfdt_tot_energy.F +++ b/src/acfdt/acfdt_tot_energy.F @@ -23,7 +23,8 @@ subroutine acfdt_tot_energy(Xen,Xk,En,k,q,X,Dip) use electrons, ONLY:levels,nel use D_lattice, ONLY:DL_vol use com, ONLY:msg - use X_m, ONLY:X_t,X_ALLOC_elemental,X_mat + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_t,X_mat use QP_m, ONLY:QP_nb,QP_nk,QP_n_states,QP_table,QP_state,QP_Vnl_xc,QP_Vxc use collision_el, ONLY:elemental_collision,elemental_collision_free use IO_int, ONLY:io_control @@ -174,7 +175,7 @@ subroutine acfdt_tot_energy(Xen,Xk,En,k,q,X,Dip) Xw%dr=(/freq(1),freq(ACFDT_n_freqs)/) YAMBO_ALLOC(Xw%p,(ACFDT_n_freqs)) Xw%p(:)=(0.,1.)*freq(:) - i_err=X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,iqibz>1) + i_err=X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,iqibz>1,.TRUE.) if (i_err==0) exit enddo ! diff --git a/src/allocations/DIPOLE_ALLOC_global.F b/src/allocations/DIPOLE_ALLOC_global.F index 23f7782c5e..31429525da 100644 --- a/src/allocations/DIPOLE_ALLOC_global.F +++ b/src/allocations/DIPOLE_ALLOC_global.F @@ -15,10 +15,10 @@ subroutine DIPOLE_ALLOC_global(D,NK) ! implicit none ! - type(DIPOLE_t),intent(inout) :: D - integer :: NK + type(DIPOLE_t),intent(inout), optional :: D + integer , optional :: NK ! - if (NK<0) then + if (.not.present(D)) then call DIPOLE_ALLOC_elemental('DIP_iR') call DIPOLE_ALLOC_elemental('DIP_v') call DIPOLE_ALLOC_elemental('DIP_P') diff --git a/src/allocations/X_ALLOC_global.F b/src/allocations/X_ALLOC_global.F index 50ba4b19f9..9967b34a63 100644 --- a/src/allocations/X_ALLOC_global.F +++ b/src/allocations/X_ALLOC_global.F @@ -8,7 +8,8 @@ subroutine X_ALLOC_global(WHAT,W) ! use pars, ONLY:cZERO - use X_m, ONLY:X_ALLOC_elemental,Resp_ii,Resp_ij,Epsilon_ii,Epsilon_ij,& + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:Resp_ii,Resp_ij,Epsilon_ii,Epsilon_ij,& & Alpha,Joint_DOS,X_magnons,X_dichroism,EEL,X_do_obs use frequency, ONLY:w_samp use drivers, ONLY:l_optics diff --git a/src/bse/K_dipoles.F b/src/bse/K_dipoles.F index 42fd2cd7c8..f4ebf4e3bc 100644 --- a/src/bse/K_dipoles.F +++ b/src/bse/K_dipoles.F @@ -14,6 +14,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) use R_lattice, ONLY:bz_samp,q0_def_norm,qindx_X use stderr, ONLY:intc use wave_func, ONLY:WF + use ALLOC, ONLY:DIPOLE_ALLOC_global use stderr, ONLY:STRING_match use interfaces, ONLY:WF_load,WF_free use electrons, ONLY:levels,spin @@ -232,7 +233,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) ! if (iq==1.and.i_G_shift==1.and.io_DIP) then ! - call DIPOLE_ALLOC_global(Dip,-1) + call DIPOLE_ALLOC_global( ) ! ! Here I need the distribution over k call PARALLEL_SETUP_K_scheme("Kdef") diff --git a/src/collisions/COLLISIONS_HXC.F b/src/collisions/COLLISIONS_HXC.F index 4c8582b306..b9938e821a 100644 --- a/src/collisions/COLLISIONS_HXC.F +++ b/src/collisions/COLLISIONS_HXC.F @@ -32,7 +32,8 @@ subroutine COLLISIONS_HXC(X,Xk,E,k,q,Xw) use QP_m, ONLY:QP_ng_SH,QP_ng_Sx,QP_ng_Sc use IO_int, ONLY:io_control,IO_and_Messaging_switch use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,io_COLLs - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t use interfaces, ONLY:WF_load,TDDFT_ALDA_R_space use wave_func, ONLY:WF,WF_buffer,WF_buffered_IO use R_lattice, ONLY:qindx_S,bz_samp,g_rot,minus_G diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index ebbb6b70b5..3d3767aded 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -31,8 +31,8 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) use IO_m, ONLY:io_DIP use R_lattice, ONLY:bz_samp use DIPOLES, ONLY:DIPOLE_t,DIP_iR,x_space_obs,g_space_obs,covariant_obs,shifted_grids_obs,& -& Vnl_commutator_warning,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square,& -& DIPOLE_ALLOC_elemental +& Vnl_commutator_warning,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square + use ALLOC, ONLY:DIPOLE_ALLOC_global use IO_int, ONLY:IO_and_Messaging_switch use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_nibz,PAR_COM_DIPk_ibz_A2A,& & PAR_IND_CON_BANDS_DIP,PAR_IND_VAL_BANDS_DIP @@ -160,7 +160,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! if (.not.io_DIP) return ! - call DIPOLE_ALLOC_global(Dip,-1) + call DIPOLE_ALLOC_global() ! contains ! diff --git a/src/el-ph/ELPH_Hamiltonian.F b/src/el-ph/ELPH_Hamiltonian.F index 9851e3eed2..0e3c2edfa1 100644 --- a/src/el-ph/ELPH_Hamiltonian.F +++ b/src/el-ph/ELPH_Hamiltonian.F @@ -19,7 +19,7 @@ subroutine ELPH_Hamiltonian(en,k,q) use electrons, ONLY:levels use LIVE_t, ONLY:live_timing use interfaces, ONLY:LINEAR_ALGEBRA_driver - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use linear_algebra,ONLY:DIAGO,USE_LK use stderr, ONLY:intc use stderr, ONLY:intc diff --git a/src/el-ph/ELPH_Sigma_c.F b/src/el-ph/ELPH_Sigma_c.F index e64306d882..aae9b4ff1b 100644 --- a/src/el-ph/ELPH_Sigma_c.F +++ b/src/el-ph/ELPH_Sigma_c.F @@ -38,7 +38,7 @@ subroutine ELPH_Sigma_c(en,k,q,qp) & E_kpq_sh_fact,Efermi_DbGd,gsqF_energy_steps,eval_G_using_KK,PH_qpt,ID_E_kpq,ID_E_kpq_obj, & & elph_branches,QP_DW,QP_OMS_Fan,FAN_deltaE_treshold use interfaces, ONLY:QP_state_print - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use interpolate, ONLY:INTERPOLATE_is_serial,INTERPOLATION_coefficients,INTERP_obj,INTERP_shell_factor,& & INTERPOLATE_is_quiet use stderr, ONLY:STRING_same diff --git a/src/el-ph/ELPH_databases_load.F b/src/el-ph/ELPH_databases_load.F index 9d4e086572..af4cf1f371 100644 --- a/src/el-ph/ELPH_databases_load.F +++ b/src/el-ph/ELPH_databases_load.F @@ -18,7 +18,7 @@ subroutine ELPH_databases_load(GKKP_sq,E,k,q,n_bands,q_range,K_mode,SCATT_mode) use IO_m, ONLY:OP_RD_CL use ELPH, ONLY:PH_freqs_sq,GKKP,ph_modes,MAX_gkkp,Q_io_map,GKKP_me,K_io_map,& & l_GKKP_DB_exists,l_GKKP_expanded_DB_exists,elph_nQ,GKKP_bare - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use parallel_int, ONLY:PP_redux_wait use LIVE_t, ONLY:live_timing use parallel_m, ONLY:PAR_Q_bz_index,PAR_IND_Q_bz,PAR_nQ_bz,PAR_Xk_nibz,PAR_Xk_ibz_index,PAR_IND_Xk_ibz,& diff --git a/src/io/io_ELPH.F b/src/io/io_ELPH.F index be9e0c31a2..724c1186c2 100644 --- a/src/io/io_ELPH.F +++ b/src/io/io_ELPH.F @@ -14,7 +14,7 @@ integer function io_ELPH(ID,what) use ELPH, ONLY:ph_modes,elph_nb,PH_freqs_sq,l_GKKP_hosts_bare_dV,& & PH_pol_vector,GKKP,elph_grids_are_expanded,GKKP,GKKP_bare use stderr, ONLY:intc - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use R_lattice, ONLY:nkbz use D_lattice, ONLY:n_atoms use timing_m, ONLY:timing diff --git a/src/io/variables_ELPH.F b/src/io/variables_ELPH.F index a5f348d11e..5146318469 100644 --- a/src/io/variables_ELPH.F +++ b/src/io/variables_ELPH.F @@ -13,7 +13,7 @@ integer function variables_ELPH(ID,what) use ELPH, ONLY:ph_modes,elph_nb,elph_nk_bz,ELPH_desc,elph_grids_are_expanded, & & QP_PH_n_G_bands,PH_W_debye,elph_nQ,PH_kpt_bz,l_GKKP_hosts_bare_dV,& & elph_use_q_grid,PH_qpt,elph_nQ_used,elph_Ham_bands,elph_branches - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use R_lattice, ONLY:nkbz,nqibz,q_pt use QP_m, ONLY:QP_n_states,QP_nb,QP_nk use vec_operate, ONLY:rlu_v_is_zero,c2a diff --git a/src/modules/mod_ALLOC.F b/src/modules/mod_ALLOC.F new file mode 100644 index 0000000000..98819e7ce2 --- /dev/null +++ b/src/modules/mod_ALLOC.F @@ -0,0 +1,44 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2006 The Yambo Team +! +! Authors (see AUTHORS file for details): AM DS +! +module ALLOC + ! + implicit none + ! + interface + ! + subroutine ELPH_alloc(what,GKKP,Nb,Nm,Nk_mem,Nq_mem) + use ELPH, ONLY:GKKP_me + character(*) :: what + type(GKKP_me), optional:: GKKP + integer, optional:: Nb(2),Nk_mem,Nm(2),Nq_mem + end subroutine + ! + subroutine DIPOLE_ALLOC_elemental(what,d) + character(*) :: what + integer, optional :: d(:) + end subroutine + ! + subroutine DIPOLE_ALLOC_global(what,d) + character(*) :: what + integer, optional :: d(:) + end subroutine + ! + subroutine DIPOLE_ALLOC_global(D,NK) + use DIPOLES, ONLY:DIPOLE_t + type(DIPOLE_t),intent(inout), optional :: D + integer , optional :: NK + end subroutine + ! + subroutine X_ALLOC_elemental(WHAT,DIM) + character(*) :: WHAT + integer, optional :: DIM(:) + end subroutine + ! + end interface + ! +end module ALLOC diff --git a/src/modules/mod_DIPOLES.F b/src/modules/mod_DIPOLES.F index e5e73fe6c7..425d09834a 100644 --- a/src/modules/mod_DIPOLES.F +++ b/src/modules/mod_DIPOLES.F @@ -69,15 +69,6 @@ module DIPOLES ! end type ! - interface - ! - subroutine DIPOLE_ALLOC_elemental(what,d) - character(*) :: what - integer, optional :: d(:) - end subroutine - ! - end interface - ! contains ! subroutine DIPOLES_duplicate(Dip_in,Dip_out) diff --git a/src/modules/mod_ELPH_intfcs.F b/src/modules/mod_ELPH_intfcs.F deleted file mode 100644 index 4f241d4bf5..0000000000 --- a/src/modules/mod_ELPH_intfcs.F +++ /dev/null @@ -1,23 +0,0 @@ -! -! License-Identifier: GPL -! -! Copyright (C) 2006 The Yambo Team -! -! Authors (see AUTHORS file for details): AM DS -! -module ELPH_intfcs - ! - implicit none - ! - interface - ! - subroutine ELPH_alloc(what,GKKP,Nb,Nm,Nk_mem,Nq_mem) - use ELPH, ONLY:GKKP_me - character(*) :: what - type(GKKP_me), optional:: GKKP - integer, optional:: Nb(2),Nk_mem,Nm(2),Nq_mem - end subroutine - ! - end interface - ! -end module ELPH_intfcs diff --git a/src/modules/mod_SC.F b/src/modules/mod_SC.F index cb7d05c697..3e20592738 100644 --- a/src/modules/mod_SC.F +++ b/src/modules/mod_SC.F @@ -119,16 +119,13 @@ subroutine SC_free() use QP_m, ONLY:QP_Sc use hamiltonian, ONLY:H_free use xc_functionals, ONLY:magn,V_xc - use DIPOLES, ONLY:DIPOLE_alloc_elemental + use ALLOC, ONLY:DIPOLE_ALLOC_global ! implicit none ! call H_free() ! - call DIPOLE_ALLOC_elemental('DIP_P') - call DIPOLE_ALLOC_elemental('DIP_iR') - call DIPOLE_ALLOC_elemental('DIP_spin') - call DIPOLE_ALLOC_elemental('P_square') + call DIPOLE_ALLOC_global( ) ! YAMBO_FREE(QP_Sc) ! diff --git a/src/modules/mod_X.F b/src/modules/mod_X.F index f6a116dba2..4f5afd8f49 100644 --- a/src/modules/mod_X.F +++ b/src/modules/mod_X.F @@ -197,11 +197,6 @@ subroutine X_Double_Grid_setup(iq,k,k_FGbz,nTrans_percent,Radius) real(SP), optional :: nTrans_percent,Radius end subroutine ! - subroutine X_ALLOC_elemental(WHAT,DIM) - character(*) :: WHAT - integer, optional :: DIM(:) - end subroutine - ! subroutine X_redux_build_kernel(KERNEL,Xo,Xo_rows,Xo_cols,compute_on_gpu,iq) use matrix, ONLY:PAR_matrix implicit none diff --git a/src/modules/mod_hamiltonian.F b/src/modules/mod_hamiltonian.F index 67b7f088d9..85d8f734c9 100644 --- a/src/modules/mod_hamiltonian.F +++ b/src/modules/mod_hamiltonian.F @@ -136,7 +136,7 @@ subroutine H_alloc(E,l_real_space,l_rotation_matrix) ! subroutine H_free() use xc_functionals, ONLY:magn,V_xc - use X_m, ONLY:X_ALLOC_elemental + use ALLOC, ONLY:X_ALLOC_elemental ! implicit none ! diff --git a/src/nloptics/NL_driver.F b/src/nloptics/NL_driver.F index cb63df2687..368beb10be 100644 --- a/src/nloptics/NL_driver.F +++ b/src/nloptics/NL_driver.F @@ -16,7 +16,8 @@ subroutine NL_driver(E,X,k,q,Dip) use electrons, ONLY:levels,n_sp_pol use collision_ext, ONLY:COLLISIONS_CV_only use X_m, ONLY:X_t - use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIPOLE_t,DIP_S + use ALLOC, ONLY:DIPOLE_ALLOC_elemental,DIPOLE_ALLOC_global use wave_func, ONLY:WF,wf_ng use interfaces, ONLY:WF_load,WF_free use hamiltonian, ONLY:WF_Go_indx,H_QP_table_setup,H_potential @@ -272,8 +273,6 @@ subroutine NL_driver(E,X,k,q,Dip) ! call WF_free(WF) call NL_free() - call DIPOLE_ALLOC_elemental('DIP_S') - call DIPOLE_ALLOC_elemental('DIP_R') - call DIPOLE_ALLOC_elemental('DIP_v') + call DIPOLE_ALLOC_global( ) ! end subroutine NL_driver diff --git a/src/pol_function/X_dielectric_matrix.F b/src/pol_function/X_dielectric_matrix.F index 86d332a31b..6544bef1c5 100644 --- a/src/pol_function/X_dielectric_matrix.F +++ b/src/pol_function/X_dielectric_matrix.F @@ -5,14 +5,15 @@ ! ! Authors (see AUTHORS file for details): AM DS ! -integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) +integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE,CHILD) ! ! Calculates and stores on file the dielectric matrix. ! use pars, ONLY:SP,schlen use drivers, ONLY:l_alda_fxc,l_gw0,l_life,l_rpa_IP use DIPOLES, ONLY:DIPOLE_t - use X_m, ONLY:X_t,X_ALLOC_elemental,self_detect_E_range,X_poles,l_recalculate_X,l_write_disk_Xo,& + use ALLOC, ONLY:X_ALLOC_elemental,DIPOLE_ALLOC_global + use X_m, ONLY:X_t,self_detect_E_range,X_poles,l_recalculate_X,l_write_disk_Xo,& & l_X_terminator,X_terminator_Kind,X_mat,X_par,X_par_lower_triangle,& & X_DbGd_nkpt_at_q,use_X_DbGd,X_DbGd_nkpt_at_q_table,X_Double_Grid_setup,& & n_OPTICAL_dir_to_eval,X_par_average @@ -27,7 +28,6 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) use wave_func, ONLY:WF_buffered_IO,WF,WF_buffer use IO_int, ONLY:io_control,IO_and_Messaging_switch use IO_m, ONLY:OP_RD_CL,OP_APP_CL,VERIFY,REP,io_RESPONSE - use com, ONLY:depth use TDDFT, ONLY:F_xc_gspace use interfaces, ONLY:WF_load,WF_free use QP_m, ONLY:QP_n_W_freqs_redux @@ -40,7 +40,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) type(X_t) ::X type(DIPOLE_t)::Dip type(w_samp) ::Xw - logical ::SILENT_MODE + logical ::SILENT_MODE,CHILD ! ! External ! @@ -76,7 +76,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) ! Sectioning ! sec_mode='*' - if (depth>0) sec_mode='=' + if (CHILD) sec_mode='=' ! X_dielectric_matrix=-1 Xw%grid_type="ra" @@ -365,7 +365,7 @@ integer function X_dielectric_matrix(Xen,Xk,q,X,Xw,Dip,SILENT_MODE) if (allocated(F_xc_gspace)) then YAMBO_FREE(F_xc_gspace) endif - call DIPOLE_ALLOC_global(Dip,-1) + call DIPOLE_ALLOC_global() if (.not.SILENT_MODE.or.X%iq(2)==q%nibz) call WF_free(WF) ! contains diff --git a/src/pol_function/X_irredux.F b/src/pol_function/X_irredux.F index fdd32c0596..d6ddd22452 100644 --- a/src/pol_function/X_irredux.F +++ b/src/pol_function/X_irredux.F @@ -23,6 +23,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) ! use drivers, ONLY:l_life use IO_m, ONLY:io_RESPONSE,io_DIP + use ALLOC, ONLY:DIPOLE_ALLOC_global use pars, ONLY:SP,cZERO,schlen use wrapper, ONLY:V_plus_alpha_V,vv_caxpy use LIVE_t, ONLY:live_timing @@ -43,7 +44,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) use R_lattice, ONLY:qindx_X,bz_samp,G_m_G use D_lattice, ONLY:i_space_inv use collision_el, ONLY:elemental_collision,elemental_collision_free,elemental_collision_alloc - use DIPOLES, ONLY:DIPOLE_t,DIP_iR + use DIPOLES, ONLY:DIPOLE_t use X_m, ONLY:X_t,X_poles,X_Ein_poles,current_iq,X_poles_tab,X_lower_triangle_matrix_in_use,& & self_detect_E_range,X_FILL_UP_matrix_only,use_X_DbGd,& & l_X_terminator,X_terminator_E,X_term_E,X_par_lower_triangle,drude_n_states @@ -441,7 +442,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) !$omp end parallel #endif ! - if (iq==1.and.io_DIP) call DIPOLE_ALLOC_global(Dip,-1) + if (iq==1.and.io_DIP) call DIPOLE_ALLOC_global() ! if (coarse_grid_N>=n_out_threads) call live_timing( ) ! diff --git a/src/qp/QP_interpolate_W.F b/src/qp/QP_interpolate_W.F index 807854871b..88a019d647 100644 --- a/src/qp/QP_interpolate_W.F +++ b/src/qp/QP_interpolate_W.F @@ -13,7 +13,8 @@ subroutine QP_interpolate_W(X,Xw,q,mode) & RIM_W_is_diagonal,RIM_W,RIM_W_d,f_coeff,idir,RIM_W_E,& & RIM_id_epsm1_reference,RIM_epsm1,RIM_qpg use vec_operate, ONLY:c2a,v_norm - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t use frequency, ONLY:w_samp use IO_m, ONLY:OP_RD_CL,NONE,RD_CL,OP_RD,RD_CL_IF_END,OP_WR_CL,& & deliver_IO_error_message,manage_action,REP,VERIFY diff --git a/src/qp/QP_mpa.F b/src/qp/QP_mpa.F index 4cf61da418..9e331b986a 100644 --- a/src/qp/QP_mpa.F +++ b/src/qp/QP_mpa.F @@ -29,7 +29,8 @@ subroutine QP_mpa(X,Xk,E,k,q,qp,Xw,GW_iter) & io_RESPONSE,io_MULTIPOLE,deliver_IO_error_message use QP_m, ONLY:QP_t,QP_n_G_bands,QP_Sc_steps,QP_dSc_steps,QP_solver,& & QP_Sc,QP_n_states,QP_G_damp,QP_table,QP_dSc_delta - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t use wave_func, ONLY:WF use R_lattice, ONLY:qindx_S,bz_samp,RIM_W_ng,RIM_W use D_lattice, ONLY:nsym,i_time_rev,i_space_inv,mag_syms diff --git a/src/qp/QP_ppa_cohsex.F b/src/qp/QP_ppa_cohsex.F index 8f65611dfb..721b89e637 100644 --- a/src/qp/QP_ppa_cohsex.F +++ b/src/qp/QP_ppa_cohsex.F @@ -31,7 +31,8 @@ subroutine QP_ppa_cohsex(X,Xk,E,k,q,qp,Xw,GW_iter) use QP_m, ONLY:QP_t,QP_n_G_bands,QP_Sc_steps,QP_dSc_steps,l_QP_symmetrize,& & QP_Sc,QP_n_states,QP_G_damp,QP_table,QP_dSc_delta,QP_solver,& & COHSEX_use_empties,l_GW_terminator,GW_terminator_Kind,QP_states_simmetrize - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_mat_d,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_mat_d,X_t use wave_func, ONLY:WF use R_lattice, ONLY:qindx_S,bz_samp,G_m_G,nqibz,RIM_W_E,& & RIM_W_is_diagonal,RIM_W_ng,RIM_W,RIM_W_d diff --git a/src/qp/QP_real_axis.F b/src/qp/QP_real_axis.F index 178fe2abcc..e5d6921fa3 100644 --- a/src/qp/QP_real_axis.F +++ b/src/qp/QP_real_axis.F @@ -37,7 +37,8 @@ subroutine QP_real_axis(X,Xen,Xk,en,k,q,qp,Xw,Dip,GW_iter) use QP_m, ONLY:QP_t,QP_n_G_bands,QP_dSc_steps,QP_Sc,QP_n_states,QP_G_damp,QP_table,QP_dSc_delta,& & QP_W,QP_solver,QP_W_er,QP_W_dr,QP_n_W_freqs,QP_Sc_steps,& & QP_n_W_freqs_redux,e2et,h2ht - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t use functions, ONLY:bose_decay use R_lattice, ONLY:qindx_S,bz_samp use D_lattice, ONLY:nsym,i_space_inv,i_time_rev,mag_syms @@ -214,7 +215,7 @@ subroutine QP_real_axis(X,Xen,Xk,en,k,q,qp,Xw,Dip,GW_iter) ! do iqibz=1,q%nibz X%iq=iqibz - i_err=X_dielectric_matrix(Xen,Xk,q,X,X_life_W(iqibz),Dip,iqibz>1) + i_err=X_dielectric_matrix(Xen,Xk,q,X,X_life_W(iqibz),Dip,iqibz>1,.TRUE.) enddo call PP_wait() ! diff --git a/src/real_time_control/RT_free.F b/src/real_time_control/RT_free.F index 5e45c65b40..60697adfd3 100644 --- a/src/real_time_control/RT_free.F +++ b/src/real_time_control/RT_free.F @@ -8,8 +8,9 @@ subroutine RT_free( ) ! use R_lattice, ONLY:bz_samp_FineGd_reset + use ALLOC, ONLY:DIPOLE_ALLOC_global #if defined _ELPH - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use ELPH, ONLY:Q_io_map,GKKP_ep_sq,GKKP_pe_sq #endif use hamiltonian, ONLY:H_free @@ -24,19 +25,12 @@ subroutine RT_free( ) use RT_iterative, ONLY:THETA_matrix,THETA_matrix_index #endif use RT_lifetimes, ONLY:RT_ALL_lifetimes_free,q_weight_RT - use DIPOLES, ONLY:DIPOLE_ALLOC_elemental ! #include ! call H_free() ! - call DIPOLE_ALLOC_elemental('DIP_iR') - call DIPOLE_ALLOC_elemental('DIP_P') - call DIPOLE_ALLOC_elemental('DIP_v') - call DIPOLE_ALLOC_elemental('DIP_spin') - call DIPOLE_ALLOC_elemental('DIP_orbital') - call DIPOLE_ALLOC_elemental('P_square') - call DIPOLE_ALLOC_elemental('DIP_P_spinor') + call DIPOLE_ALLOC_global( ) ! call RT_ALL_lifetimes_free() call RT_ALL_occupations_free() diff --git a/src/sc/OEP_ApplySigmaCSX.F b/src/sc/OEP_ApplySigmaCSX.F index 99cfc1b21f..6d7fbd1f7d 100644 --- a/src/sc/OEP_ApplySigmaCSX.F +++ b/src/sc/OEP_ApplySigmaCSX.F @@ -38,7 +38,8 @@ subroutine OEP_ApplySigmaCSX(X,Xw,E,k,q,U_csx) use SC, ONLY:it_now use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,OP_RD_CL,REP,VERIFY,NONE,OP_IF_START_RD_CL_IF_END - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t ! ! I/O ! diff --git a/src/sc/SC_driver.F b/src/sc/SC_driver.F index 73abd8d9ce..f14bba0260 100644 --- a/src/sc/SC_driver.F +++ b/src/sc/SC_driver.F @@ -30,7 +30,8 @@ subroutine SC_driver(X,Xw,Xk,E,k,q,Dip) & LINEAR_ALGEBRA_driver,OCCUPATIONS_Fermi use H_interfaces, ONLY:V_real_space_to_H use com, ONLY:msg - use X_m, ONLY:X_t,current_iq,X_ALLOC_elemental + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_t,current_iq use DIPOLES, ONLY:DIPOLE_t use LIVE_t, ONLY:LIVE_message use stderr, ONLY:intc,real2ch,log_as_a_file @@ -518,7 +519,7 @@ subroutine SC_driver(X,Xw,Xk,E,k,q,Dip) ! current_iq=0 call IO_and_Messaging_switch("-report") - io_X_err=X_dielectric_matrix(E,Xk,q,X(2),Xw(2),Dip,.true.) + io_X_err=X_dielectric_matrix(E,Xk,q,X(2),Xw(2),Dip,.TRUE.,.TRUE.) call IO_and_Messaging_switch("+report") ! ! Reload and rotate wave-functions if W is updated diff --git a/ypp/dipoles/DIPOLE_ypp_driver.F b/ypp/dipoles/DIPOLE_ypp_driver.F index cdc81ea59a..a06c3eef83 100644 --- a/ypp/dipoles/DIPOLE_ypp_driver.F +++ b/ypp/dipoles/DIPOLE_ypp_driver.F @@ -14,7 +14,8 @@ subroutine DIPOLE_ypp_driver(k,E,q) use electrons, ONLY:levels,n_spin use YPPm, ONLY:DIPs_C_bands,DIPs_V_bands,DIPs_E_range,DIPs_direction,K_transform,coo_out,INTERP_grid,& & l_PROJECT_plane,l_PROJECT_line,PROJECT_N_par,DIPs,DIPs_mask,DIPs_kind - use DIPOLES, ONLY:DIPOLES_reset,DIP_iR,DIP_desc,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIPOLES_reset,DIP_iR,DIP_desc + use ALLOC, ONLY:DIPOLE_ALLOC_global use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_IND_CON_BANDS_DIP,PAR_IND_VAL_BANDS_DIP,PAR_DIPk_ibz_index use parallel_int, ONLY:PARALLEL_global_indexes,PP_redux_wait use QP_CTL_m, ONLY:QP_apply @@ -200,9 +201,7 @@ subroutine DIPOLE_ypp_driver(k,E,q) contains ! subroutine LOCAL_clean - call DIPOLE_ALLOC_elemental('DIP_iR') - call DIPOLE_ALLOC_elemental('DIP_P') - call DIPOLE_ALLOC_elemental('DIP_v') + call DIPOLE_ALLOC_global( ) call DIPOLES_reset(DIPs) end subroutine ! diff --git a/ypp/el-ph/ELPH_atomic_amplitude.F b/ypp/el-ph/ELPH_atomic_amplitude.F index 0dcb0c56ff..4f09d58b01 100644 --- a/ypp/el-ph/ELPH_atomic_amplitude.F +++ b/ypp/el-ph/ELPH_atomic_amplitude.F @@ -19,7 +19,7 @@ subroutine ELPH_atomic_amplitude(q) use stderr, ONLY:intc use functions, ONLY:bose_f use interfaces, ONLY:LINEAR_ALGEBRA_driver - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use linear_algebra, ONLY:DIAGO,USE_LK use stderr, ONLY:intc ! diff --git a/ypp/el-ph/ELPH_databases_IO_gkkp_expand.F b/ypp/el-ph/ELPH_databases_IO_gkkp_expand.F index f0e4bf67a7..94044290ee 100644 --- a/ypp/el-ph/ELPH_databases_IO_gkkp_expand.F +++ b/ypp/el-ph/ELPH_databases_IO_gkkp_expand.F @@ -9,7 +9,7 @@ subroutine ELPH_databases_IO_gkkp_expand(mode,iq,iq_s,k,q,qindx_ID,qindx_ID_frag ! use pars, ONLY:SP use R_lattice, ONLY:bz_samp,qindx_B,qindx_B_load,qindx_S - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use D_lattice, ONLY:nsym,i_time_rev,sop_inv,sop_tab use ELPH, ONLY:elph_nb,GKKP_me,PH_qpt use YPP_ELPH, ONLY:DB_ph_K_sym_table,YAMBO_K_found,l_use_qindxB diff --git a/ypp/el-ph/ELPH_eliashberg_dos.F b/ypp/el-ph/ELPH_eliashberg_dos.F index 7f60c37e9d..5e52616a57 100644 --- a/ypp/el-ph/ELPH_eliashberg_dos.F +++ b/ypp/el-ph/ELPH_eliashberg_dos.F @@ -20,7 +20,7 @@ subroutine ELPH_eliashberg_dos(k,en,q) & GKKP,setup_k_plus_q_levels,use_PH_DbGd use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,OP_RD,RD_CL_IF_END,DUMP,RD_CL,REP - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use LIVE_t, ONLY:live_timing use parallel_m, ONLY:PP_indexes,myid use parallel_int, ONLY:PP_redux_wait,PARALLEL_index diff --git a/ypp/el-ph/ELPH_excitonic_gkkp.F b/ypp/el-ph/ELPH_excitonic_gkkp.F index 97045fc7b1..30b7c9db40 100644 --- a/ypp/el-ph/ELPH_excitonic_gkkp.F +++ b/ypp/el-ph/ELPH_excitonic_gkkp.F @@ -11,7 +11,7 @@ subroutine ELPH_excitonic_gkkp(Xk) use units, ONLY:HA2EV,HA2FSm1 use BS_solvers, ONLY:BS_mat,BSS_eh_table use BS, ONLY:BS_K_dim,BS_nT_at_k - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use R_lattice, ONLY:bz_samp use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,OP_RD,DUMP,RD_CL_IF_END diff --git a/ypp/excitons/excitons_amplitudes.F b/ypp/excitons/excitons_amplitudes.F index e3809067c3..b93d793eba 100644 --- a/ypp/excitons/excitons_amplitudes.F +++ b/ypp/excitons/excitons_amplitudes.F @@ -16,7 +16,8 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) use YPPm, ONLY:EXCITON_weight_treshold,EXCITONS_user_indexes,EXCITONS_n_user_states,DIPs,& & DIPs_direction,l_dipoles,BSiq use BS_solvers, ONLY:BS_mat,BSS_eh_table,BSS_desc,BSS_n_eig - use DIPOLES, ONLY:DIP_rotated,DIPOLES_reset,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIP_rotated,DIPOLES_reset + use ALLOC, ONLY:DIPOLE_ALLOC_global use BS, ONLY:BS_H_dim,BS_bands,BSqpts use com, ONLY:msg use vec_operate, ONLY:sort,v_norm @@ -206,9 +207,7 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) enddo ! if (l_dipoles) then - call DIPOLE_ALLOC_elemental('DIP_iR') - call DIPOLE_ALLOC_elemental('DIP_P') - call DIPOLE_ALLOC_elemental('DIP_v') + call DIPOLE_ALLOC_global( ) call DIPOLES_reset(DIPs) endif ! From 6cae799cffaeab4b9ed113c7ab55c365f36d3c1a Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 10:46:23 +0200 Subject: [PATCH 029/112] Version 5.2.0, Revision 23130, Hash 7b325be9d MODIFIED * configure include/version/version.m4 lib/qe_pseudo/DOUBLE_project.dep allocations/DOUBLE_project.dep bse/DOUBLE_project.dep bse/NL_project.dep dipoles/DOUBLE_project.dep dipoles/NL_project.dep dipoles/RT_project.dep dipoles/SC_project.dep el-ph/RT_project.dep io/DOUBLE_project.dep modules/DOUBLE_project.dep modules/ELPH_project.dep NEW * allocations/RT_project.dep interface/PHEL_project.dep io/PHEL_project.dep parallel/PHEL_project.dep pol_function/PHEL_project.dep qp/PHEL_project.dep real_time_control/PHEL_project.dep real_time_drivers/PHEL_project.dep real_time_initialize/PHEL_project.dep Additions: - Dependencies updated. PHEL related added (project must be removed). Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- lib/qe_pseudo/DOUBLE_project.dep | 1 - src/allocations/DOUBLE_project.dep | 2 ++ src/allocations/RT_project.dep | 2 ++ src/bse/DOUBLE_project.dep | 1 - src/bse/NL_project.dep | 1 - src/dipoles/DOUBLE_project.dep | 5 +++-- src/dipoles/NL_project.dep | 4 ++-- src/dipoles/RT_project.dep | 3 ++- src/dipoles/SC_project.dep | 2 +- src/el-ph/RT_project.dep | 6 +----- src/interface/PHEL_project.dep | 6 ++++++ src/io/DOUBLE_project.dep | 1 + src/io/PHEL_project.dep | 2 ++ src/modules/DOUBLE_project.dep | 3 +-- src/modules/ELPH_project.dep | 1 - src/parallel/PHEL_project.dep | 2 ++ src/pol_function/PHEL_project.dep | 2 ++ src/qp/PHEL_project.dep | 2 ++ src/real_time_control/PHEL_project.dep | 2 ++ src/real_time_drivers/PHEL_project.dep | 2 ++ src/real_time_initialize/PHEL_project.dep | 3 +++ 23 files changed, 50 insertions(+), 31 deletions(-) create mode 100644 src/allocations/RT_project.dep create mode 100644 src/interface/PHEL_project.dep create mode 100644 src/io/PHEL_project.dep create mode 100644 src/parallel/PHEL_project.dep create mode 100644 src/pol_function/PHEL_project.dep create mode 100644 src/qp/PHEL_project.dep create mode 100644 src/real_time_control/PHEL_project.dep create mode 100644 src/real_time_drivers/PHEL_project.dep create mode 100644 src/real_time_initialize/PHEL_project.dep diff --git a/configure b/configure index ea811bafb7..57aa1442f5 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23130 h.84b986c6f. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23131 h.7b325be9d. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23130 h.84b986c6f' -PACKAGE_STRING='Yambo 5.2.0 r.23130 h.84b986c6f' +PACKAGE_VERSION='5.2.0 r.23131 h.7b325be9d' +PACKAGE_STRING='Yambo 5.2.0 r.23131 h.7b325be9d' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23130 h.84b986c6f to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23131 h.7b325be9d to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23130 h.84b986c6f:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23131 h.7b325be9d:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23130 h.84b986c6f +Yambo configure 5.2.0 r.23131 h.7b325be9d generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23130 h.84b986c6f, which was +It was created by Yambo $as_me 5.2.0 r.23131 h.7b325be9d, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23130" -SHASH="84b986c6f" +SREVISION="23131" +SHASH="7b325be9d" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23130 h.84b986c6f, which was +This file was extended by Yambo $as_me 5.2.0 r.23131 h.7b325be9d, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23130 h.84b986c6f +Yambo config.status 5.2.0 r.23131 h.7b325be9d configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 6d26ec0728..2a6b9423e6 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23130 h.84b986c6f, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23131 h.7b325be9d, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23130" -SHASH="84b986c6f" +SREVISION="23131" +SHASH="7b325be9d" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/qe_pseudo/DOUBLE_project.dep b/lib/qe_pseudo/DOUBLE_project.dep index fbc606fa4d..eb9021637a 100644 --- a/lib/qe_pseudo/DOUBLE_project.dep +++ b/lib/qe_pseudo/DOUBLE_project.dep @@ -39,5 +39,4 @@ us_module.o uspp.o ylmr2.o - objects.o diff --git a/src/allocations/DOUBLE_project.dep b/src/allocations/DOUBLE_project.dep index afdda058a6..bfc54b06ca 100644 --- a/src/allocations/DOUBLE_project.dep +++ b/src/allocations/DOUBLE_project.dep @@ -1,3 +1,5 @@ + DIPOLE_ALLOC_elemental.o + DIPOLE_ALLOC_global.o ELPH_alloc.o X_ALLOC_elemental.o X_ALLOC_global.o diff --git a/src/allocations/RT_project.dep b/src/allocations/RT_project.dep new file mode 100644 index 0000000000..3462275847 --- /dev/null +++ b/src/allocations/RT_project.dep @@ -0,0 +1,2 @@ + DIPOLE_ALLOC_global.o + diff --git a/src/bse/DOUBLE_project.dep b/src/bse/DOUBLE_project.dep index a09f14b8fd..8f64bfaf01 100644 --- a/src/bse/DOUBLE_project.dep +++ b/src/bse/DOUBLE_project.dep @@ -50,5 +50,4 @@ K_stored_in_a_slepc_matrix.o PL_diago_residual.o PL_via_perturbative_inversion.o - objects.o diff --git a/src/bse/NL_project.dep b/src/bse/NL_project.dep index ea7b3d87f8..7bef4cdefd 100644 --- a/src/bse/NL_project.dep +++ b/src/bse/NL_project.dep @@ -1,5 +1,4 @@ K_diago_driver.o K_driver_init.o K_observables.o - objects.o diff --git a/src/dipoles/DOUBLE_project.dep b/src/dipoles/DOUBLE_project.dep index efca48007f..499a9430ef 100644 --- a/src/dipoles/DOUBLE_project.dep +++ b/src/dipoles/DOUBLE_project.dep @@ -2,10 +2,11 @@ Build_Overlaps_Det_EQ.o DIPOLE_IO.o DIPOLE_SC_rotate.o - DIPOLE_build_covariants.o DIPOLE_check_shifted_grids.o + DIPOLE_covariant.o DIPOLE_dimensions.o DIPOLE_driver.o + DIPOLE_g_space.o DIPOLE_kb_Ylm.o DIPOLE_kb_abinit_comp.o DIPOLE_kb_abinit_def_dim.o @@ -17,9 +18,9 @@ DIPOLE_orbital_magnetization.o DIPOLE_overlaps.o DIPOLE_p_matrix_elements.o + DIPOLE_setup.o DIPOLE_shifted_grids.o DIPOLE_spin_magnetization.o - DIPOLE_transverse.o DIPOLE_x_real_space.o Ionic_polarization.o POLARIZATION_output.o diff --git a/src/dipoles/NL_project.dep b/src/dipoles/NL_project.dep index 22f270e592..b9d8644190 100644 --- a/src/dipoles/NL_project.dep +++ b/src/dipoles/NL_project.dep @@ -1,6 +1,6 @@ Berry_polarization_EQ.o - DIPOLE_build_covariants.o - DIPOLE_driver.o + DIPOLE_covariant.o + DIPOLE_setup.o Ionic_polarization.o POLARIZATION_output.o diff --git a/src/dipoles/RT_project.dep b/src/dipoles/RT_project.dep index a375ef9236..3c0f2dfa8a 100644 --- a/src/dipoles/RT_project.dep +++ b/src/dipoles/RT_project.dep @@ -1,7 +1,8 @@ DIPOLE_IO.o DIPOLE_driver.o + DIPOLE_g_space.o DIPOLE_orbital_magnetization.o DIPOLE_p_matrix_elements.o + DIPOLE_setup.o DIPOLE_shifted_grids.o - DIPOLE_transverse.o diff --git a/src/dipoles/SC_project.dep b/src/dipoles/SC_project.dep index b061fa416f..fc0b9e5827 100644 --- a/src/dipoles/SC_project.dep +++ b/src/dipoles/SC_project.dep @@ -1,6 +1,6 @@ Berry_polarization_EQ.o DIPOLE_SC_rotate.o - DIPOLE_driver.o + DIPOLE_setup.o DIPOLE_shifted_grids.o Ionic_polarization.o POLARIZATION_output.o diff --git a/src/el-ph/RT_project.dep b/src/el-ph/RT_project.dep index bbc20f4200..2455333893 100644 --- a/src/el-ph/RT_project.dep +++ b/src/el-ph/RT_project.dep @@ -1,6 +1,2 @@ - ELPH_acoustic_phonon_properties.o - ELPH_databases_check.o - ELPH_databases_grids_map.o - ELPH_databases_load.o - ELPH_databases_symmetrize.o + ELPH_Sigma_c.o diff --git a/src/interface/PHEL_project.dep b/src/interface/PHEL_project.dep new file mode 100644 index 0000000000..02120d3c55 --- /dev/null +++ b/src/interface/PHEL_project.dep @@ -0,0 +1,6 @@ + INIT.o + INIT_activate.o + INIT_barriers.o + INIT_load.o + INIT_read_command_line.o + diff --git a/src/io/DOUBLE_project.dep b/src/io/DOUBLE_project.dep index 50ca185728..562f5b9840 100644 --- a/src/io/DOUBLE_project.dep +++ b/src/io/DOUBLE_project.dep @@ -41,6 +41,7 @@ variables_DIPOLES.o variables_ELPH.o variables_NL.o + variables_Overlaps.o variables_RT_dynamic.o variables_RT_static.o variables_SC.o diff --git a/src/io/PHEL_project.dep b/src/io/PHEL_project.dep new file mode 100644 index 0000000000..df62ae28df --- /dev/null +++ b/src/io/PHEL_project.dep @@ -0,0 +1,2 @@ + io_PH.o + diff --git a/src/modules/DOUBLE_project.dep b/src/modules/DOUBLE_project.dep index 531a9595c9..6bb10a5fe5 100644 --- a/src/modules/DOUBLE_project.dep +++ b/src/modules/DOUBLE_project.dep @@ -1,6 +1,7 @@ SET_defaults.o SET_logicals.o mod_ACFDT.o + mod_ALLOC.o mod_BS.o mod_BS_solvers.o mod_COLL_interfaces.o @@ -8,7 +9,6 @@ mod_DIPOLES.o mod_D_lattice.o mod_ELPH.o - mod_ELPH_intfcs.o mod_FFT.o mod_H_interfaces.o mod_IO.o @@ -38,7 +38,6 @@ mod_collision_el.o mod_collision_ext.o mod_com.o - mod_com2y.o mod_com_interfcs.o mod_cuda.o mod_cusolverdn_y.o diff --git a/src/modules/ELPH_project.dep b/src/modules/ELPH_project.dep index 5afb7798c1..988dd27ac7 100644 --- a/src/modules/ELPH_project.dep +++ b/src/modules/ELPH_project.dep @@ -1,4 +1,3 @@ SET_defaults.o mod_ELPH.o - mod_ELPH_intfcs.o diff --git a/src/parallel/PHEL_project.dep b/src/parallel/PHEL_project.dep new file mode 100644 index 0000000000..5a22ceb339 --- /dev/null +++ b/src/parallel/PHEL_project.dep @@ -0,0 +1,2 @@ + PARALLEL_global_dimensions.o + diff --git a/src/pol_function/PHEL_project.dep b/src/pol_function/PHEL_project.dep new file mode 100644 index 0000000000..a644e71a2b --- /dev/null +++ b/src/pol_function/PHEL_project.dep @@ -0,0 +1,2 @@ + X_Double_Grid_setup.o + diff --git a/src/qp/PHEL_project.dep b/src/qp/PHEL_project.dep new file mode 100644 index 0000000000..2a34e69ef3 --- /dev/null +++ b/src/qp/PHEL_project.dep @@ -0,0 +1,2 @@ + QP_logicals.o + diff --git a/src/real_time_control/PHEL_project.dep b/src/real_time_control/PHEL_project.dep new file mode 100644 index 0000000000..94a3292b75 --- /dev/null +++ b/src/real_time_control/PHEL_project.dep @@ -0,0 +1,2 @@ + RT_alloc.o + diff --git a/src/real_time_drivers/PHEL_project.dep b/src/real_time_drivers/PHEL_project.dep new file mode 100644 index 0000000000..d7e6a8488e --- /dev/null +++ b/src/real_time_drivers/PHEL_project.dep @@ -0,0 +1,2 @@ + RT_driver.o + diff --git a/src/real_time_initialize/PHEL_project.dep b/src/real_time_initialize/PHEL_project.dep new file mode 100644 index 0000000000..5bb91066cc --- /dev/null +++ b/src/real_time_initialize/PHEL_project.dep @@ -0,0 +1,3 @@ + RT_initialize.o + RT_occupations_and_levels_init.o + From ebfa78f01d611289c29b8640a6fa5f67b5a0f102 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 11:01:10 +0200 Subject: [PATCH 030/112] Version 5.2.0, Revision 23131, Hash 6cae799cf MODIFIED * configure include/version/version.m4 allocations/DIPOLE_ALLOC_global.F bse/K_screened_interaction.F collisions/COLLISIONS_NEQ_GW_static.F dipoles/DIPOLE_covariant.F io/io_X.F io_serial/io_Overlaps.F modules/.objects modules/mod_ALLOC.F sc/OEP_exact_inversion.F ypp/el-ph/ELPH_databases.F ypp/el-ph/ELPH_general_gFsq.F Bugs: - Compilation issues fixed. Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/allocations/DIPOLE_ALLOC_global.F | 4 ++-- src/bse/K_screened_interaction.F | 3 ++- src/collisions/COLLISIONS_NEQ_GW_static.F | 3 ++- src/dipoles/DIPOLE_covariant.F | 3 ++- src/io/io_X.F | 3 ++- src/io_serial/io_Overlaps.F | 3 ++- src/modules/.objects | 2 +- src/modules/mod_ALLOC.F | 5 ----- src/sc/OEP_exact_inversion.F | 3 ++- ypp/el-ph/ELPH_databases.F | 2 +- ypp/el-ph/ELPH_general_gFsq.F | 2 +- 13 files changed, 31 insertions(+), 30 deletions(-) diff --git a/configure b/configure index 57aa1442f5..93917f3b95 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23131 h.7b325be9d. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23132 h.6cae799cf. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23131 h.7b325be9d' -PACKAGE_STRING='Yambo 5.2.0 r.23131 h.7b325be9d' +PACKAGE_VERSION='5.2.0 r.23132 h.6cae799cf' +PACKAGE_STRING='Yambo 5.2.0 r.23132 h.6cae799cf' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23131 h.7b325be9d to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23132 h.6cae799cf to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23131 h.7b325be9d:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23132 h.6cae799cf:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23131 h.7b325be9d +Yambo configure 5.2.0 r.23132 h.6cae799cf generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23131 h.7b325be9d, which was +It was created by Yambo $as_me 5.2.0 r.23132 h.6cae799cf, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23131" -SHASH="7b325be9d" +SREVISION="23132" +SHASH="6cae799cf" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23131 h.7b325be9d, which was +This file was extended by Yambo $as_me 5.2.0 r.23132 h.6cae799cf, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23131 h.7b325be9d +Yambo config.status 5.2.0 r.23132 h.6cae799cf configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 2a6b9423e6..8b6a308d7f 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23131 h.7b325be9d, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23132 h.6cae799cf, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23131" -SHASH="7b325be9d" +SREVISION="23132" +SHASH="6cae799cf" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/allocations/DIPOLE_ALLOC_global.F b/src/allocations/DIPOLE_ALLOC_global.F index 31429525da..d2652049d3 100644 --- a/src/allocations/DIPOLE_ALLOC_global.F +++ b/src/allocations/DIPOLE_ALLOC_global.F @@ -9,8 +9,8 @@ subroutine DIPOLE_ALLOC_global(D,NK) ! ! Here all DIPOLE observables are allocated except the S_overlap matrix ! - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,& -& P_square,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square + use ALLOC, ONLY:DIPOLE_ALLOC_elemental use stderr, ONLY:STRING_match ! implicit none diff --git a/src/bse/K_screened_interaction.F b/src/bse/K_screened_interaction.F index 1654f9ba28..657e02da7a 100644 --- a/src/bse/K_screened_interaction.F +++ b/src/bse/K_screened_interaction.F @@ -16,7 +16,8 @@ subroutine K_screened_interaction(X,Xw,q,io_X_err) use R_lattice, ONLY:bz_samp,RIM_qpg,RIM_anisotropy,RIM_W,RIM_W_d,RIM_W_is_diagonal,& & RIM_W_ng use D_lattice, ONLY:i_time_rev,i_space_inv - use X_m, ONLY:X_ALLOC_elemental,X_t,X_mat,X_mat_d + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_t,X_mat,X_mat_d use BS, ONLY:BS_n_g_W,BS_W_is_diagonal,BS_W use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,OP_RD_CL,REP,VERIFY,NONE,& diff --git a/src/collisions/COLLISIONS_NEQ_GW_static.F b/src/collisions/COLLISIONS_NEQ_GW_static.F index 580f9dff55..778ecbe0a0 100644 --- a/src/collisions/COLLISIONS_NEQ_GW_static.F +++ b/src/collisions/COLLISIONS_NEQ_GW_static.F @@ -24,7 +24,8 @@ subroutine COLLISIONS_NEQ_GW_static(X,Xk,E,k,q,Xw) use timing_m, ONLY:timing use IO_int, ONLY:io_control,Io_and_Messaging_switch use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,io_COLLs - use X_m, ONLY:X_ALLOC_elemental,X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_mat,X_t use interfaces, ONLY:WF_load use wave_func, ONLY:WF use R_lattice, ONLY:qindx_S,qindx_C,bz_samp diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index fffb81ec22..70bdfb7967 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -13,7 +13,8 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) use pars, ONLY:SP,cI,cZERO,pi use LIVE_t, ONLY:live_timing use electrons, ONLY:levels,n_sp_pol - use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v + use ALLOC, ONLY:DIPOLE_ALLOC_elemental use R_lattice, ONLY:bz_samp,k_map use vec_operate, ONLY:k_periodic_idx use matrix_operate, ONLY:hermitian diff --git a/src/io/io_X.F b/src/io/io_X.F index d562fce064..0b42077b11 100644 --- a/src/io/io_X.F +++ b/src/io/io_X.F @@ -10,7 +10,8 @@ integer function io_X(X,Xw,ID) use pars, ONLY:SP,schlen use units, ONLY:HA2EV use R_lattice, ONLY:g_vec - use X_m, ONLY:X_t,X_mat,X_RLcomp_ig,X_desc,X_ALLOC_elemental + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_t,X_mat,X_RLcomp_ig,X_desc use frequency, ONLY:w_samp use IO_int, ONLY:io_connect,io_disconnect,io_elemental,io_bulk,io_header,& & def_variable_bulk,io_variable_bulk,def_variable_elemental,io_variable_elemental,& diff --git a/src/io_serial/io_Overlaps.F b/src/io_serial/io_Overlaps.F index 2ed5034b8a..da396fb24e 100644 --- a/src/io_serial/io_Overlaps.F +++ b/src/io_serial/io_Overlaps.F @@ -8,7 +8,8 @@ integer function io_Overlaps(Dip,ID) ! use pars, ONLY:schlen - use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIPOLE_ALLOC_elemental + use DIPOLES, ONLY:DIPOLE_t,DIP_S + use ALLOC, ONLY:DIPOLE_ALLOC_elemental use R_lattice, ONLY:nXkbz use IO_int, ONLY:io_connect,io_disconnect,io_fragment,io_header,io_bulk use IO_m, ONLY:io_sec,frag_DIP,read_is_on,io_extension,& diff --git a/src/modules/.objects b/src/modules/.objects index 1ce4a1a980..915197a011 100644 --- a/src/modules/.objects +++ b/src/modules/.objects @@ -17,7 +17,7 @@ RT_objects_iterative = mod_RT_iterative.o NL_objects = mod_fields.o mod_electric.o mod_nl_optics.o mod_NL_interfaces.o #endif #if defined _ELPH -ELPH_objects = mod_ELPH_intfcs.o mod_ELPH.o +ELPH_objects = mod_ELPH.o #endif #if defined _io_lib objs = mod_pars.o mod_stderr.o mod_parallel.o mod_parallel_interface.o \ diff --git a/src/modules/mod_ALLOC.F b/src/modules/mod_ALLOC.F index 98819e7ce2..2175887d8c 100644 --- a/src/modules/mod_ALLOC.F +++ b/src/modules/mod_ALLOC.F @@ -23,11 +23,6 @@ subroutine DIPOLE_ALLOC_elemental(what,d) integer, optional :: d(:) end subroutine ! - subroutine DIPOLE_ALLOC_global(what,d) - character(*) :: what - integer, optional :: d(:) - end subroutine - ! subroutine DIPOLE_ALLOC_global(D,NK) use DIPOLES, ONLY:DIPOLE_t type(DIPOLE_t),intent(inout), optional :: D diff --git a/src/sc/OEP_exact_inversion.F b/src/sc/OEP_exact_inversion.F index 4ae2d08931..882b511901 100644 --- a/src/sc/OEP_exact_inversion.F +++ b/src/sc/OEP_exact_inversion.F @@ -19,7 +19,8 @@ subroutine OEP_exact_inversion(X,E,k,Voep,W_x) ! use pars, ONLY:SP,DP use D_lattice, ONLY:DL_vol,i_time_rev,sop_inv,nsym,i_space_inv - use X_m, ONLY:X_t, X_ALLOC_elemental,X_mat,X_poles_tab,current_iq + use ALLOC, ONLY:X_ALLOC_elemental + use X_m, ONLY:X_t,X_mat,X_poles_tab,current_iq use electrons, ONLY:levels,n_met_bands use R_lattice, ONLY:bz_samp,g_rot,nkibz,nkbz use FFT_m, ONLY:fft_size,fft_g_table,fft_dim,fftw_plan diff --git a/ypp/el-ph/ELPH_databases.F b/ypp/el-ph/ELPH_databases.F index c76ebf1438..6c9fbbe53b 100644 --- a/ypp/el-ph/ELPH_databases.F +++ b/ypp/el-ph/ELPH_databases.F @@ -11,7 +11,7 @@ subroutine ELPH_databases(k,E,q) use pars, ONLY:schlen,SP use stderr, ONLY:intc use electrons, ONLY:levels - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use ELPH, ONLY:elph_use_q_grid,ph_modes,elph_nb,elph_nQ,GKKP,GKKP_bare,PH_W_debye,& & PH_freqs_sq,PH_qpt,PH_pol_vector,GKKP_me,elph_nk_bz,PH_kpt_bz,l_GKKP_hosts_bare_dV use com, ONLY:msg diff --git a/ypp/el-ph/ELPH_general_gFsq.F b/ypp/el-ph/ELPH_general_gFsq.F index 04cfc1c546..64f51c7e44 100644 --- a/ypp/el-ph/ELPH_general_gFsq.F +++ b/ypp/el-ph/ELPH_general_gFsq.F @@ -16,7 +16,7 @@ subroutine ELPH_general_gFsq(k,en,Xk,Xen,q,BS_E_degs) use YPPm, ONLY:EXCITONS_user_indexes,EXCITONS_n_user_states use YPP_ELPH, ONLY:elph_steps,ph_broad use stderr, ONLY:intc - use ELPH_intfcs, ONLY:ELPH_alloc + use ALLOC, ONLY:ELPH_alloc use ELPH, ONLY:PH_W_debye,elph_nQ_used,ph_modes,& & gsqF_fan,gsqF_dw ,gsqF_ca_corr ,gsqF_life_bose ,& & gsqF_life_f ,elph_use_q_grid,PH_freqs_sq From 25643c55bdf7459b2f371d1305b3f94ff0c29371 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 11:35:40 +0200 Subject: [PATCH 031/112] Version 5.2.0, Revision 23132, Hash ebfa78f01 MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_covariant.F dipoles/DIPOLE_g_space.F dipoles/DIPOLE_orb_magn_forCD.F dipoles/DIPOLE_orbital_magnetization.F dipoles/DIPOLE_overlaps.F dipoles/DIPOLE_shifted_grids.F dipoles/DIPOLE_spin_magnetization.F dipoles/DIPOLE_x_real_space.F Additions: - Added timing calls Patch sent by: Andrea Marini --- configure | 22 ++++++------- include/version/version.m4 | 6 ++-- src/dipoles/DIPOLE_covariant.F | 8 ++--- src/dipoles/DIPOLE_g_space.F | 7 ++-- src/dipoles/DIPOLE_orb_magn_forCD.F | 7 +++- src/dipoles/DIPOLE_orbital_magnetization.F | 7 +++- src/dipoles/DIPOLE_overlaps.F | 2 +- src/dipoles/DIPOLE_shifted_grids.F | 38 +++++++++++----------- src/dipoles/DIPOLE_spin_magnetization.F | 9 +++-- src/dipoles/DIPOLE_x_real_space.F | 37 ++++++++++++--------- 10 files changed, 82 insertions(+), 61 deletions(-) diff --git a/configure b/configure index 93917f3b95..064c8d33b9 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23132 h.6cae799cf. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23133 h.ebfa78f01. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23132 h.6cae799cf' -PACKAGE_STRING='Yambo 5.2.0 r.23132 h.6cae799cf' +PACKAGE_VERSION='5.2.0 r.23133 h.ebfa78f01' +PACKAGE_STRING='Yambo 5.2.0 r.23133 h.ebfa78f01' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23132 h.6cae799cf to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23133 h.ebfa78f01 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23132 h.6cae799cf:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23133 h.ebfa78f01:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23132 h.6cae799cf +Yambo configure 5.2.0 r.23133 h.ebfa78f01 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23132 h.6cae799cf, which was +It was created by Yambo $as_me 5.2.0 r.23133 h.ebfa78f01, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23132" -SHASH="6cae799cf" +SREVISION="23133" +SHASH="ebfa78f01" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23132 h.6cae799cf, which was +This file was extended by Yambo $as_me 5.2.0 r.23133 h.ebfa78f01, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23132 h.6cae799cf +Yambo config.status 5.2.0 r.23133 h.ebfa78f01 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 8b6a308d7f..e52c43ef9e 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23132 h.6cae799cf, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23133 h.ebfa78f01, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23132" -SHASH="6cae799cf" +SREVISION="23133" +SHASH="ebfa78f01" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index 70bdfb7967..0709f0da3d 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -13,7 +13,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) use pars, ONLY:SP,cI,cZERO,pi use LIVE_t, ONLY:live_timing use electrons, ONLY:levels,n_sp_pol - use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v,covariant_obs use ALLOC, ONLY:DIPOLE_ALLOC_elemental use R_lattice, ONLY:bz_samp,k_map use vec_operate, ONLY:k_periodic_idx @@ -39,7 +39,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) complex(SP), allocatable :: Sm1_plus (:,:,:),Sm1_minus(:,:,:) complex(SP) :: S_det(6),Wop(Dip%ib(2),Dip%ib(2),2),DIP_tmp(6,Dip%ib(2),Dip%ib(2)),S_tmp(Dip%ib(2),Dip%ib(2),2) ! - call timing("DIPOLE_buil_covariants",OPR="start") + call timing("DIPOLE_covariant",OPR="start") ! if(.not.Dip%force_v_g_space) Dip%Vnl_included=.true. ! @@ -65,7 +65,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) if(any(k_map%max_kdir(:)>=6.and..not.l_force_SndOrd)) & & call msg('rs','Using forth order approximation for covariant dipoles') ! - call live_timing('Covariant Dipoles',PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*n_sp_pol) + call live_timing(trim(covariant_obs),PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*n_sp_pol) ! ! Notice that DIP_iR/DIP_v are defined only in the IBZ ! while the overlaps are in the BZ @@ -197,6 +197,6 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) ! if(any(idir_not_done)) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) ! - call timing("DIPOLE_buil_covariants",OPR="stop") + call timing("DIPOLE_covariant",OPR="stop") ! end subroutine DIPOLE_covariant diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index aefd2ced0b..baf195f62a 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -49,13 +49,14 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) complex(SP), allocatable DEV_ATTR :: XX(:,:,:,:,:) complex(SP) :: rho_spinor(3,n_spinor,n_spinor),rho(3),P2 real(SP) :: Ev_m_Ev_KS,Dipole_Energy_treshold + logical :: LT_msg=.FALSE. ! !I/O and external functions ! integer :: ID,IO_ACT_NOW,io_err(3),io_KB_abinit_err,io_KB_pwscf_err integer, external :: io_KB_abinit,io_KB_pwscf ! - call timing('DIPOLE_transverse',OPR='start') + call timing('DIPOLE_g_space',OPR='start') ! ! CPU-depedent work to be done !============================== @@ -127,7 +128,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! Main loop over k in IBZ ! - if (N_elements_todo>0) call live_timing(trim(Dip%computed),N_elements_todo) + if (N_elements_todo>0) call live_timing(trim(g_space_obs),N_elements_todo) ! do i_sp_pol=1,n_sp_pol ! @@ -315,6 +316,6 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) endif YAMBO_FREE(g_vec_d) ! - call timing('DIPOLE_transverse',OPR='stop') + call timing('DIPOLE_g_space',OPR='stop') ! end subroutine DIPOLE_g_space diff --git a/src/dipoles/DIPOLE_orb_magn_forCD.F b/src/dipoles/DIPOLE_orb_magn_forCD.F index 94cf686f1e..059b65640f 100644 --- a/src/dipoles/DIPOLE_orb_magn_forCD.F +++ b/src/dipoles/DIPOLE_orb_magn_forCD.F @@ -19,6 +19,7 @@ subroutine Dipole_orb_magn_forCD(Xen,Xk,Dip) use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& & PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& & PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID + use timing_m, ONLY:timing ! implicit none ! @@ -31,11 +32,13 @@ subroutine Dipole_orb_magn_forCD(Xen,Xk,Dip) integer :: ik,ic,iv,ib,i_sp_pol,n_LT_steps,ik_mem complex(SP) :: DIP_x_loc(3),DIP_v_loc(3) ! + call timing("DIPOLE_orbital_M_CD",OPR="start") + ! n_LT_steps=n_sp_pol*PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*& & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) ! - if (n_LT_steps>0) call live_timing('Dipoles (CD): orbital magnetization',n_LT_steps) + if (n_LT_steps>0) call live_timing('Orbital magnetization (CD)',n_LT_steps) ! ! Main loop over k in IBZ ! @@ -83,4 +86,6 @@ subroutine Dipole_orb_magn_forCD(Xen,Xk,Dip) ! call live_timing() ! + call timing("DIPOLE_orbital_M_CD",OPR="stop") + ! end subroutine Dipole_orb_magn_forCD diff --git a/src/dipoles/DIPOLE_orbital_magnetization.F b/src/dipoles/DIPOLE_orbital_magnetization.F index c9288d7810..dea635a76e 100644 --- a/src/dipoles/DIPOLE_orbital_magnetization.F +++ b/src/dipoles/DIPOLE_orbital_magnetization.F @@ -19,6 +19,7 @@ subroutine Dipole_orbital_magnetization(Xen,Xk,Dip) use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& & PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& & PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID + use timing_m, ONLY:timing ! implicit none ! @@ -32,11 +33,13 @@ subroutine Dipole_orbital_magnetization(Xen,Xk,Dip) real(SP) :: Eb,Ev,Ec complex(SP) :: DIP_pos(3,2),DIP_tmp(3) ! + call timing("DIPOLE_orbital_M",OPR="start") + ! n_LT_steps=n_sp_pol*PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*& & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) ! - if (n_LT_steps>0) call live_timing('Dipoles: orbital magnetization',n_LT_steps) + if (n_LT_steps>0) call live_timing('Orbital magnetization',n_LT_steps) ! ! Main loop over k in IBZ ! @@ -97,4 +100,6 @@ subroutine Dipole_orbital_magnetization(Xen,Xk,Dip) ! call live_timing() ! + call timing("DIPOLE_orbital_M",OPR="stop") + ! end subroutine Dipole_orbital_magnetization diff --git a/src/dipoles/DIPOLE_overlaps.F b/src/dipoles/DIPOLE_overlaps.F index 20a8f6eb62..cb9f644312 100644 --- a/src/dipoles/DIPOLE_overlaps.F +++ b/src/dipoles/DIPOLE_overlaps.F @@ -81,7 +81,7 @@ subroutine DIPOLE_overlaps(Xk,Dip) ! DIP_S=cZERO ! - call live_timing("Overlaps:",PAR_IND_DIPk_bz%n_of_elements(PAR_IND_DIPk_bz_ID+1)*n_sp_pol) + call live_timing("Overlaps",PAR_IND_DIPk_bz%n_of_elements(PAR_IND_DIPk_bz_ID+1)*n_sp_pol) ! do i_sp_pol=1,n_sp_pol ! diff --git a/src/dipoles/DIPOLE_shifted_grids.F b/src/dipoles/DIPOLE_shifted_grids.F index ec8346f2c2..3868523f96 100644 --- a/src/dipoles/DIPOLE_shifted_grids.F +++ b/src/dipoles/DIPOLE_shifted_grids.F @@ -11,28 +11,28 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) ! ! i q. = \sum_i=1,3 q(i) /q0(i) ! - use units, ONLY: HA2EV - use pars, ONLY: SP,cZERO,lchlen,schlen - use drivers, ONLY: l_sc_run - use com, ONLY: msg,core_io_path,grid_paths - use stderr, ONLY: intc,STRING_split - use LIVE_t, ONLY: live_timing - use electrons, ONLY: levels,n_spinor,n_sp_pol - use parallel_m, ONLY: PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& -& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& -& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID - use interfaces, ONLY: WF_load,WF_free,io_DB1_selective_scan - use R_lattice, ONLY: bz_samp,nkibz,q0_shift_norm - use X_m, ONLY: l_X_terminator - use DIPOLES, ONLY: DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids,shifted_grids_obs - use vec_operate, ONLY: degeneration_finder - use wrapper, ONLY: Vstar_dot_V - use wave_func, ONLY: wf_ng,wf_igk,WF,wf_ncx,WAVEs + use units, ONLY:HA2EV + use pars, ONLY:SP,cZERO,lchlen,schlen + use drivers, ONLY:l_sc_run + use com, ONLY:msg,core_io_path,grid_paths + use stderr, ONLY:intc,STRING_split + use LIVE_t, ONLY:live_timing + use electrons, ONLY:levels,n_spinor,n_sp_pol + use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& +& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& +& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID + use interfaces, ONLY:WF_load,WF_free,io_DB1_selective_scan + use R_lattice, ONLY:bz_samp,nkibz,q0_shift_norm + use X_m, ONLY:l_X_terminator + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids,shifted_grids_obs + use vec_operate, ONLY:degeneration_finder + use wrapper, ONLY:Vstar_dot_V + use wave_func, ONLY:wf_ng,wf_igk,WF,wf_ncx,WAVEs #if defined _SC - use SC, ONLY: SC_bands + use SC, ONLY:SC_bands #endif #if defined _RT - use real_time, ONLY: RT_bands + use real_time, ONLY:RT_bands #endif #include ! diff --git a/src/dipoles/DIPOLE_spin_magnetization.F b/src/dipoles/DIPOLE_spin_magnetization.F index 80f1b1a9c3..cc49baae14 100644 --- a/src/dipoles/DIPOLE_spin_magnetization.F +++ b/src/dipoles/DIPOLE_spin_magnetization.F @@ -13,6 +13,7 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) use drivers, ONLY:l_sc_run use interfaces, ONLY:WF_load,WF_free use LIVE_t, ONLY:live_timing + use timing_m, ONLY:timing use electrons, ONLY:levels,n_spinor,n_sp_pol,n_spin use R_lattice, ONLY:bz_samp use DIPOLES, ONLY:DIP_spin,DIPOLE_t @@ -33,7 +34,9 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) ! integer :: ik,ic_wf(n_sp_pol),iv_wf(n_sp_pol),ic,iv,n_LT_steps,ik_mem ! - if(n_spin==1) return + if (n_spin==1) return + ! + call timing("DIPOLE_spin_M",OPR="start") ! ! Parallelization Mask !====================== @@ -43,7 +46,7 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) ! - if (n_LT_steps>0) call live_timing('Dipoles: spin magnetiziation',n_LT_steps) + if (n_LT_steps>0) call live_timing('Spin magnetiziation',n_LT_steps) ! ! Main loop over k in IBZ ! @@ -122,4 +125,6 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) ! call live_timing() ! + call timing("DIPOLE_spin_M",OPR="stop") + ! end subroutine Dipole_spin_magnetization diff --git a/src/dipoles/DIPOLE_x_real_space.F b/src/dipoles/DIPOLE_x_real_space.F index 56fea3b356..dfc1073b31 100644 --- a/src/dipoles/DIPOLE_x_real_space.F +++ b/src/dipoles/DIPOLE_x_real_space.F @@ -7,21 +7,22 @@ ! subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) ! - use drivers, ONLY:l_sc_run - use pars, ONLY:SP,cI,cZERO - use D_lattice, ONLY:x_cc,molecule_position,a - use wave_func, ONLY:WF - use interfaces, ONLY:WF_load,WF_free - use wrapper_omp, ONLY:Vstar_dot_V_omp - use FFT_m, ONLY:fft_size - use R_lattice, ONLY:bz_samp - use electrons, ONLY:levels,n_sp_pol,n_spinor - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v - use X_m, ONLY:l_X_terminator - use LIVE_t, ONLY:live_timing - use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& -& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& -& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID + use drivers, ONLY:l_sc_run + use pars, ONLY:SP,cI,cZERO + use D_lattice, ONLY:x_cc,molecule_position,a + use wave_func, ONLY:WF + use interfaces, ONLY:WF_load,WF_free + use wrapper_omp, ONLY:Vstar_dot_V_omp + use FFT_m, ONLY:fft_size + use R_lattice, ONLY:bz_samp + use electrons, ONLY:levels,n_sp_pol,n_spinor + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,x_space_obs + use X_m, ONLY:l_X_terminator + use LIVE_t, ONLY:live_timing + use timing_m, ONLY:timing + use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& +& PAR_IND_VAL_BANDS_DIP,PAR_IND_VAL_BANDS_DIP_ID,& +& PAR_IND_CON_BANDS_DIP,PAR_IND_CON_BANDS_DIP_ID ! #include ! @@ -38,6 +39,8 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) complex(SP) :: DIP_tmp(3,Dip%ib_lim(2):Dip%ib(2),Dip%ib(1):Dip%ib_lim(1)) logical :: LT_msg=.FALSE. ! + call timing('DIPOLE_x_space',OPR='start') + ! if(.not.Dip%force_v_g_space) Dip%Vnl_included=.true. ! call fft_setup(0,1,.true.) ! FFT size @@ -66,7 +69,7 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) ! DIP_tmp=cZERO ! - if (n_LT_steps>0.and..not.LT_msg) call live_timing(trim(Dip%computed)//" [real-space]",n_LT_steps) + if (n_LT_steps>0.and..not.LT_msg) call live_timing(trim(x_space_obs),n_LT_steps) LT_msg=.TRUE. ! do iv=Dip%ib(1),Dip%ib_lim(1) @@ -140,6 +143,8 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) ! call live_timing() ! + call timing('DIPOLE_x_space',OPR='stop') + ! YAMBO_FREE(x_cc) ! end subroutine Dipole_x_real_space From 7972400e3f27d423720ebbfb5b8d2fbf6c93528d Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 14:34:01 +0200 Subject: [PATCH 032/112] Version 5.2.0, Revision 23133, Hash 25643c55b MODIFIED * configure include/version/version.m4 allocations/DIPOLE_ALLOC_global.F bse/K_dipoles.F bse/K_driver_init.F dipoles/.objects dipoles/DIPOLE_covariant.F dipoles/DIPOLE_g_space.F dipoles/DIPOLE_setup.F dipoles/DIPOLE_shifted_grids.F dipoles/DIPOLE_x_real_space.F modules/mod_DIPOLES.F pol_function/X_irredux_residuals.F tddft/TDDFT_BSK_2_FXC.F ypp/excitons/excitons_amplitudes.F ypp/real_time/RT_TRabs_residuals.F NEW * dipoles/DIPOLE_rotate.F Changes: - DIP_rotated -> DIPOLE_rotate in a separate routine - Fixed timing in DIPOLE routines Patch sent by: Andrea Marini --- configure | 22 ++++---- include/version/version.m4 | 6 +-- src/allocations/DIPOLE_ALLOC_global.F | 2 +- src/bse/K_dipoles.F | 15 +++--- src/bse/K_driver_init.F | 8 +-- src/dipoles/.objects | 2 +- src/dipoles/DIPOLE_covariant.F | 2 +- src/dipoles/DIPOLE_g_space.F | 2 +- src/dipoles/DIPOLE_rotate.F | 71 ++++++++++++++++++++++++++ src/dipoles/DIPOLE_setup.F | 4 +- src/dipoles/DIPOLE_shifted_grids.F | 9 ++-- src/dipoles/DIPOLE_x_real_space.F | 2 +- src/modules/mod_DIPOLES.F | 65 ----------------------- src/pol_function/X_irredux_residuals.F | 7 +-- src/tddft/TDDFT_BSK_2_FXC.F | 11 ++-- ypp/excitons/excitons_amplitudes.F | 7 +-- ypp/real_time/RT_TRabs_residuals.F | 14 ++--- 17 files changed, 133 insertions(+), 116 deletions(-) create mode 100644 src/dipoles/DIPOLE_rotate.F diff --git a/configure b/configure index 064c8d33b9..9ae2e4f7d4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23133 h.ebfa78f01. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23134 h.25643c55b. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23133 h.ebfa78f01' -PACKAGE_STRING='Yambo 5.2.0 r.23133 h.ebfa78f01' +PACKAGE_VERSION='5.2.0 r.23134 h.25643c55b' +PACKAGE_STRING='Yambo 5.2.0 r.23134 h.25643c55b' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23133 h.ebfa78f01 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23134 h.25643c55b to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23133 h.ebfa78f01:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23134 h.25643c55b:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23133 h.ebfa78f01 +Yambo configure 5.2.0 r.23134 h.25643c55b generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23133 h.ebfa78f01, which was +It was created by Yambo $as_me 5.2.0 r.23134 h.25643c55b, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23133" -SHASH="ebfa78f01" +SREVISION="23134" +SHASH="25643c55b" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23133 h.ebfa78f01, which was +This file was extended by Yambo $as_me 5.2.0 r.23134 h.25643c55b, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23133 h.ebfa78f01 +Yambo config.status 5.2.0 r.23134 h.25643c55b configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index e52c43ef9e..39e88eab2f 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23133 h.ebfa78f01, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23134 h.25643c55b, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23133" -SHASH="ebfa78f01" +SREVISION="23134" +SHASH="25643c55b" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/allocations/DIPOLE_ALLOC_global.F b/src/allocations/DIPOLE_ALLOC_global.F index d2652049d3..ac78ab08be 100644 --- a/src/allocations/DIPOLE_ALLOC_global.F +++ b/src/allocations/DIPOLE_ALLOC_global.F @@ -9,7 +9,7 @@ subroutine DIPOLE_ALLOC_global(D,NK) ! ! Here all DIPOLE observables are allocated except the S_overlap matrix ! - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square + use DIPOLES, ONLY:DIP_orbital,DIPOLE_t use ALLOC, ONLY:DIPOLE_ALLOC_elemental use stderr, ONLY:STRING_match ! diff --git a/src/bse/K_dipoles.F b/src/bse/K_dipoles.F index f4ebf4e3bc..862c3fd6a0 100644 --- a/src/bse/K_dipoles.F +++ b/src/bse/K_dipoles.F @@ -19,7 +19,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) use interfaces, ONLY:WF_load,WF_free use electrons, ONLY:levels,spin use X_m, ONLY:X_t,global_gauge,i_G_shift - use DIPOLES, ONLY:DIPOLE_t,DIP_rotated + use DIPOLES, ONLY:DIPOLE_t use BS_solvers, ONLY:BSS_Vnl_included use BS, ONLY:BS_T_grp,BS_K_coupling,BS_nT_grps,BSE_L_kind,BS_bands,& & BS_dip_size,l_BS_trace,BS_n_eh_spaces,& @@ -40,15 +40,15 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) type(X_t) ::X_oscillators type(DIPOLE_t)::Dip ! - integer,external :: OPTICS_select_q_and_G - ! ! Work space ! integer ::ik_bz,ok_bz,ik,ok,isymm,osymm,iGo,iv,ic,i_sp_pol_c,i_sp_pol_v,i_T_g,i_T,& & io_err,i_res_ares,i_dip - complex(SP) ::DIP_Splus,DIP_Smins,DIP_projected(BS_dip_size),DIP_expanded(3) + complex(SP) ::DIP_Splus,DIP_Smins,DIP_projected(BS_dip_size),DIP_expanded(3),DIP_bare(3) character(6) ::DIP_kind ! + integer, external :: OPTICS_select_q_and_G + ! type(elemental_collision):: BSE_scatt ! call section('=','Loading Dipoles @q'//trim(intc(iq))) @@ -136,7 +136,8 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) if(l_BS_abs.or.l_BS_kerr.or.l_BS_photolum.or.l_BS_dichroism) then ! if(iq==1.and.i_G_shift==1) then - DIP_expanded=-cI*DIP_rotated(ic,iv,ik_bz,i_sp_pol_c,DIP_kind,Xk) + call DIPOLE_rotate(ic,iv,ik_bz,i_sp_pol_c,trim(DIP_kind),Xk,DIP_bare) + DIP_expanded=-cI*DIP_bare do i_dip=1,BS_dip_size DIP_projected(i_dip)=dot_product(BS_field_direction(:,i_dip),DIP_expanded) enddo @@ -158,7 +159,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) ! Dichroism if (l_BS_dichroism) then if(iq==1.and.i_G_shift==1) then - DIP_expanded=DIP_rotated(ic,iv,ik_bz,i_sp_pol_c,"DIP_L",Xk) + call DIPOLE_rotate(ic,iv,ik_bz,i_sp_pol_c,"DIP_L",Xk,DIP_expanded) do i_dip=1,BS_dip_size DIP_projected(i_dip)=dot_product(BS_field_direction(:,i_dip),DIP_expanded) enddo @@ -181,7 +182,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) ! The implementation with scatter can be used to double check the spin dipoles ! if(iq==1.and.i_G_shift==1) then - DIP_expanded = DIP_rotated(ic,iv,ik_bz,i_sp_pol_c,"DIP_S",Xk) + call DIPOLE_rotate(ic,iv,ik_bz,i_sp_pol_c,"DIP_S",Xk,DIP_expanded) else call scatter_Bamp_spin(BSE_scatt,'x') DIP_expanded(1)=-conjg(BSE_scatt%rhotw(1)) diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index f92c9e2823..2a1b08cc21 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -8,7 +8,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! use R_lattice, ONLY:bz_samp - use electrons, ONLY:levels,n_sp_pol,n_spinor + use electrons, ONLY:levels,n_sp_pol use parser_m, ONLY:parser use parallel_m, ONLY:PARALLEL_default_mode use stderr, ONLY:STRING_match @@ -46,7 +46,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! default mode if(STRING_match(BSE_L_kind,"default")) BSE_L_kind="default-bar" ! - if (l_col_cut) then + if (l_col_cut.and.what=="init") then ! We are here in 0D, 1D or 2D ! The G=0 term included in L-full is representative ! of the portion of the line (2D) / plane (1D) / volume (0D) around G=0 @@ -57,7 +57,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! It is useless to compute the non analytical Lfull and better to ! directly remove the G=0 term call warning('Coulomb cutoff at q=0. Default/Suggested Lkind= bar') - if(STRING_match(BSE_L_kind,"default")) BSE_L_kind="default-bar" + if (STRING_match(BSE_L_kind,"default")) BSE_L_kind="default-bar" endif if (iq/=1) then ! We are here in 1D or 2D. @@ -66,7 +66,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! The above mentioned G=0 term is part of this effect. ! Here we assume it would be better to include it, to be double checked call warning('Coulomb cutoff at q>0. Default/Suggested Lkind= full') - if(STRING_match(BSE_L_kind,"default")) BSE_L_kind="default-full" + if (STRING_match(BSE_L_kind,"default")) BSE_L_kind="default-full" ! N.B.: One could compute the calculation without L-T slitting, ! by removing such full line (2D) / plane (1D). Not coded at the moment. ! I would define it as L="transverse" diff --git a/src/dipoles/.objects b/src/dipoles/.objects index b7bd76ca42..d18d167dd1 100644 --- a/src/dipoles/.objects +++ b/src/dipoles/.objects @@ -13,4 +13,4 @@ objs = Build_Overlaps_Det_EQ.o $(SC_objects) $(MAGN_objects) $(NL_objects) \ DIPOLE_IO.o DIPOLE_driver.o DIPOLE_covariant.o DIPOLE_x_real_space.o DIPOLE_spin_magnetization.o \ DIPOLE_kb_abinit_def_dim.o DIPOLE_kb_abinit_comp.o DIPOLE_kb_sum.o DIPOLE_kb_Ylm.o DIPOLE_dimensions.o \ DIPOLE_kb_pwscf_def_dim.o DIPOLE_kb_pwscf_comp.o DIPOLE_kb_init.o DIPOLE_p_matrix_elements.o DIPOLE_overlaps.o \ - DIPOLE_g_space.o DIPOLE_shifted_grids.o DIPOLE_check_shifted_grids.o + DIPOLE_g_space.o DIPOLE_shifted_grids.o DIPOLE_check_shifted_grids.o DIPOLE_rotate.o diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index 0709f0da3d..6f394a5218 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -65,7 +65,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) if(any(k_map%max_kdir(:)>=6.and..not.l_force_SndOrd)) & & call msg('rs','Using forth order approximation for covariant dipoles') ! - call live_timing(trim(covariant_obs),PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*n_sp_pol) + call live_timing(trim(covariant_obs)//" [covariant]",PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*n_sp_pol) ! ! Notice that DIP_iR/DIP_v are defined only in the IBZ ! while the overlaps are in the BZ diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index baf195f62a..c5133747c8 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -128,7 +128,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! Main loop over k in IBZ ! - if (N_elements_todo>0) call live_timing(trim(g_space_obs),N_elements_todo) + if (N_elements_todo>0) call live_timing(trim(g_space_obs)//" [g-space]",N_elements_todo) ! do i_sp_pol=1,n_sp_pol ! diff --git a/src/dipoles/DIPOLE_rotate.F b/src/dipoles/DIPOLE_rotate.F new file mode 100644 index 0000000000..04e5e60b1d --- /dev/null +++ b/src/dipoles/DIPOLE_rotate.F @@ -0,0 +1,71 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2016 The Yambo Team +! +! Authors (see AUTHORS file for details): AM DS +! +subroutine DIPOLE_rotate(ic,iv,ik_bz,i_sp_pol,what,kpt,dipole) + ! + use pars, ONLY:cZERO,SP + use DIPOLES, ONLY:DIP_P,DIP_v,DIP_iR,DIP_spin,DIP_orbital + use D_lattice, ONLY:i_time_rev,dl_sop,nsym + use electrons, ONLY:n_spinor + use parallel_m, ONLY:PAR_K_scheme + use R_lattice, ONLY:bz_samp + use matrix_operate, ONLY:m3det + ! + implicit none + ! + complex(SP), intent(out):: dipole(3) + integer, intent(in) :: ic,iv,ik_bz,i_sp_pol + character(*), intent(in) :: what + type(bz_samp), intent(in) :: kpt + ! + ! Work space + ! + complex(SP) :: DIP_in(3) + real(SP) :: tmp_sop(3,3) + integer :: ik,is,ik_mem + logical :: t_rev + ! + ik=kpt%sstar(ik_bz,1) + is=kpt%sstar(ik_bz,2) + ! + ik_mem = PAR_K_scheme%ibz_index(ik) + ! + if ( is<= nsym/(i_time_rev+1) ) t_rev=.false. + if ( is > nsym/(i_time_rev+1) ) t_rev=.true. + ! + tmp_sop=dl_sop(:,:,is) + ! + if(trim(what)=="DIP_S" ) then + if (n_spinor==2) then + ! pseudo vectors are invariant under inversion but reverse under t_rev + tmp_sop=tmp_sop*m3det(dl_sop(:,:,is)) + if( t_rev ) tmp_sop=-tmp_sop + else + ! in case n_sp_pol==2 the spin is assumed to be independent on symmetries + tmp_sop=dl_sop(:,:,1) + t_rev=.false. + endif + endif + ! + if(trim(what)=="DIP_L" ) then + ! pseudo vectors are invariant under inversion but reverse under t_rev + tmp_sop=tmp_sop*m3det(dl_sop(:,:,is)) + if( t_rev ) tmp_sop=-tmp_sop + endif + ! + DIP_in=cZERO + if(trim(what)=="DIP_P" ) DIP_in=DIP_P(:,ic,iv,ik_mem,i_sp_pol) + if(trim(what)=="DIP_v" ) DIP_in=DIP_v(:,ic,iv,ik_mem,i_sp_pol) + if(trim(what)=="DIP_iR") DIP_in=DIP_iR(:,ic,iv,ik_mem,i_sp_pol) + if(trim(what)=="DIP_S" ) DIP_in=DIP_spin(:,ic,iv,ik_mem,i_sp_pol,1) + if(trim(what)=="DIP_L" ) DIP_in=DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1) + ! + dipole = matmul( tmp_sop , DIP_in ) + ! + if (t_rev) dipole = conjg( dipole ) + ! +end subroutine DIPOLE_rotate diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index c0b031d580..6f456a2d77 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -98,6 +98,8 @@ subroutine DIPOLE_setup(Dip) else if (STRING_same(Dip%approach,"shifted grids")) then shifted_grids_obs="R V" if (Dip%force_v_g_space) shifted_grids_obs="R" + else if (STRING_same(Dip%approach,"g-space v")) then + g_space_obs="R V P" else call warning(' User approach undefined. Switching to G-space v') g_space_obs="R V P" @@ -127,9 +129,9 @@ subroutine DIPOLE_setup(Dip) #else if (STRING_match(Dip%computed,"spin").or.l_BS_magnons) specific_obs=" M_spin" if (STRING_match(Dip%computed,"orb")) specific_obs=trim(specific_obs)//" M_orb M_it" - if (l_BS_dichroism) specific_obs=trim(specific_obs)//" M_CD_orb" #endif endif + if (l_BS_dichroism) specific_obs=trim(specific_obs)//" M_CD_orb" ! ! Computed components !--------------------- diff --git a/src/dipoles/DIPOLE_shifted_grids.F b/src/dipoles/DIPOLE_shifted_grids.F index 3868523f96..ad6f22810e 100644 --- a/src/dipoles/DIPOLE_shifted_grids.F +++ b/src/dipoles/DIPOLE_shifted_grids.F @@ -26,6 +26,7 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) use X_m, ONLY:l_X_terminator use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids,shifted_grids_obs use vec_operate, ONLY:degeneration_finder + use timing_m, ONLY:timing use wrapper, ONLY:Vstar_dot_V use wave_func, ONLY:wf_ng,wf_igk,WF,wf_ncx,WAVEs #if defined _SC @@ -76,7 +77,7 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) ! integer :: io_err(3) ! - ! + call timing("DIPOLE_shifted_grids",OPR="start") ! call set_parms(grid=' local', command=' define') ! @@ -133,7 +134,7 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1)*num_shifted_grids ! - call live_timing(trim(shifted_grids_obs),n_LT_steps) + call live_timing(trim(shifted_grids_obs)//" [shifted grids]",n_LT_steps) ! do i_sp_pol = 1,n_sp_pol ! @@ -293,7 +294,9 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) ! call DB1_reset() ! - if(any(idir_not_done)) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) + if (any(idir_not_done)) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) + ! + call timing("DIPOLE_shifted_grids",OPR="stop") ! contains ! diff --git a/src/dipoles/DIPOLE_x_real_space.F b/src/dipoles/DIPOLE_x_real_space.F index dfc1073b31..7df1b48fd9 100644 --- a/src/dipoles/DIPOLE_x_real_space.F +++ b/src/dipoles/DIPOLE_x_real_space.F @@ -69,7 +69,7 @@ subroutine DIPOLE_x_real_space(Xen,Xk,Dip,idir_todo) ! DIP_tmp=cZERO ! - if (n_LT_steps>0.and..not.LT_msg) call live_timing(trim(x_space_obs),n_LT_steps) + if (n_LT_steps>0.and..not.LT_msg) call live_timing(trim(x_space_obs)//" [x-space]",n_LT_steps) LT_msg=.TRUE. ! do iv=Dip%ib(1),Dip%ib_lim(1) diff --git a/src/modules/mod_DIPOLES.F b/src/modules/mod_DIPOLES.F index 425d09834a..8822ea9347 100644 --- a/src/modules/mod_DIPOLES.F +++ b/src/modules/mod_DIPOLES.F @@ -112,69 +112,4 @@ subroutine DIPOLES_reset(Dip) Dip%computed=" " end subroutine DIPOLES_reset ! - function DIP_rotated(ic,iv,ik_bz,i_sp_pol,what,kpt) - ! - use pars, ONLY:cZERO - use D_lattice, ONLY:i_time_rev,dl_sop,sop_inv,nsym - use electrons, ONLY:n_spinor - use parallel_m, ONLY:PAR_K_scheme - use R_lattice, ONLY:bz_samp - use matrix_operate, ONLY:m3det - ! - implicit none - ! - integer, intent(in) :: ic,iv,ik_bz,i_sp_pol - character(*), intent(in) :: what - type(bz_samp), intent(in) :: kpt - ! - complex(SP), dimension(3) :: DIP_rotated - ! - ! Work space - ! - complex(SP) :: DIP_in(3) - real(SP) :: tmp_sop(3,3) - integer :: ik,is,ik_mem - logical :: t_rev - ! - ik=kpt%sstar(ik_bz,1) - is=kpt%sstar(ik_bz,2) - ! - ik_mem = PAR_K_scheme%ibz_index(ik) - ! - if ( is<= nsym/(i_time_rev+1) ) t_rev=.false. - if ( is > nsym/(i_time_rev+1) ) t_rev=.true. - ! - tmp_sop=dl_sop(:,:,is) - ! - if(trim(what)=="DIP_S" ) then - if (n_spinor==2) then - ! pseudo vectors are invariant under inversion but reverse under t_rev - tmp_sop=tmp_sop*m3det(dl_sop(:,:,is)) - if( t_rev ) tmp_sop=-tmp_sop - else - ! in case n_sp_pol==2 the spin is assumed to be independent on symmetries - tmp_sop=dl_sop(:,:,1) - t_rev=.false. - endif - endif - ! - if(trim(what)=="DIP_L" ) then - ! pseudo vectors are invariant under inversion but reverse under t_rev - tmp_sop=tmp_sop*m3det(dl_sop(:,:,is)) - if( t_rev ) tmp_sop=-tmp_sop - endif - ! - DIP_in=cZERO - if(trim(what)=="DIP_P" ) DIP_in=DIP_P(:,ic,iv,ik_mem,i_sp_pol) - if(trim(what)=="DIP_v" ) DIP_in=DIP_v(:,ic,iv,ik_mem,i_sp_pol) - if(trim(what)=="DIP_iR") DIP_in=DIP_iR(:,ic,iv,ik_mem,i_sp_pol) - if(trim(what)=="DIP_S" ) DIP_in=DIP_spin(:,ic,iv,ik_mem,i_sp_pol,1) - if(trim(what)=="DIP_L" ) DIP_in=DIP_orbital(:,ic,iv,ik_mem,i_sp_pol,1) - ! - DIP_rotated = matmul( tmp_sop , DIP_in ) - ! - if (t_rev) DIP_rotated = conjg( DIP_rotated ) - ! - end function DIP_rotated - ! end module diff --git a/src/pol_function/X_irredux_residuals.F b/src/pol_function/X_irredux_residuals.F index bd8241aaa6..9f120241a9 100644 --- a/src/pol_function/X_irredux_residuals.F +++ b/src/pol_function/X_irredux_residuals.F @@ -16,7 +16,7 @@ subroutine X_irredux_residuals(Xen,Xk,X,Dip,i_cg,iq,Xo_res,Xo_scatt) ! use pars, ONLY:SP,cZERO,cONE use wrapper, ONLY:V_plus_alpha_V - use DIPOLES, ONLY:DIPOLE_t,DIP_rotated + use DIPOLES, ONLY:DIPOLE_t use X_m, ONLY:X_t,X_poles_tab,l_X_terminator,X_cols,X_rows,drude_n_states use electrons, ONLY:levels,spin_occ use frequency, ONLY:bare_grid_N,coarse_grid_Pt @@ -60,7 +60,7 @@ subroutine X_irredux_residuals(Xen,Xk,X,Dip,i_cg,iq,Xo_res,Xo_scatt) ! ! DIPOLES ! - complex(SP) :: DIP_projected,field_dir(3) + complex(SP) :: DIP_projected,field_dir(3),DIP_bare(3) ! field_dir=Dip%q0/v_norm(Dip%q0)*q0_def_norm ! @@ -153,7 +153,8 @@ subroutine X_irredux_residuals(Xen,Xk,X,Dip,i_cg,iq,Xo_res,Xo_scatt) endif ! ! iG=1 case - DIP_projected=dot_product(field_dir,DIP_rotated(ic,iv,ikbz,i_spin,"DIP_iR",Xk)) + call DIPOLE_rotate(ic,iv,ikbz,i_spin,"DIP_iR",Xk,DIP_bare) + DIP_projected=dot_product(field_dir,DIP_bare) if(iv/=ic) DEV_VAR(Xo_scatt%rhotw)(1)= -conjg(DIP_projected) ! ! 2022/05/11 DS & AF diff --git a/src/tddft/TDDFT_BSK_2_FXC.F b/src/tddft/TDDFT_BSK_2_FXC.F index 4122b211ca..f3a49e0b4e 100644 --- a/src/tddft/TDDFT_BSK_2_FXC.F +++ b/src/tddft/TDDFT_BSK_2_FXC.F @@ -14,7 +14,6 @@ subroutine TDDFT_BSK_2_FXC(iq,ik1,ik2,O1x,O2x,O_x_dim,W,X_static) use BS_solvers, ONLY:BSS_eh_table,BS_mat,BSS_eh_E,BSS_eh_W use TDDFT, ONLY:FXC_n_g_corr,FXC_K_diagonal,F_xc_gspace,& & FXC_is_retarded,io_BS_Fxc - use DIPOLES, ONLY:DIP_rotated use parallel_m, ONLY:PP_indexes,PP_indexes_reset use parallel_int, ONLY:PP_wait,PP_redux_wait,PARALLEL_index use D_lattice, ONLY:DL_vol @@ -23,7 +22,9 @@ subroutine TDDFT_BSK_2_FXC(iq,ik1,ik2,O1x,O2x,O_x_dim,W,X_static) use IO_m, ONLY:OP_RD_CL,OP_RD,RD_CL,& & NONE,OP_WR_CL,REP,VERIFY use frequency, ONLY:w_samp + ! #include + ! type(w_samp) ::W integer ::ik1,ik2,O_x_dim,iq complex(SP) ::O1x(FXC_n_g_corr,O_x_dim),O2x(FXC_n_g_corr,O_x_dim) @@ -48,7 +49,7 @@ subroutine TDDFT_BSK_2_FXC(iq,ik1,ik2,O1x,O2x,O_x_dim,W,X_static) ! Dipoles for non analytical term ! type(bz_samp) :: kpt - complex(SP) :: DIP_projected,field_dir(3) + complex(SP) :: DIP_projected,field_dir(3),DIP(3) ! ! Fxc procedure ! @@ -81,7 +82,8 @@ subroutine TDDFT_BSK_2_FXC(iq,ik1,ik2,O1x,O2x,O_x_dim,W,X_static) iv=BSS_eh_table(i1,2) ic=BSS_eh_table(i1,3) i_sp=spin(BSS_eh_table(i1,:)) - DIP_projected=dot_product(field_dir,DIP_rotated(ic,iv,ik,i_sp,"Dip_iR",kpt)) + call DIPOLE_rotate(ic,iv,ik,i_sp,"Dip_iR",kpt,DIP) + DIP_projected=dot_product(field_dir,DIP) O1x(1,i1-blk_pos(1))=-conjg(DIP_projected)/bare_qpg(iq,1) enddo if (ik1/=ik2) then @@ -90,7 +92,8 @@ subroutine TDDFT_BSK_2_FXC(iq,ik1,ik2,O1x,O2x,O_x_dim,W,X_static) iv=BSS_eh_table(i1,2) ic=BSS_eh_table(i1,3) i_sp=spin(BSS_eh_table(i1,:)) - DIP_projected=dot_product(field_dir,DIP_rotated(ic,iv,ik,i_sp,"Dip_iR",kpt)) + call DIPOLE_rotate(ic,iv,ik,i_sp,"Dip_iR",kpt,DIP) + DIP_projected=dot_product(field_dir,DIP) O2x(1,i1-blk_pos(2))=-conjg(DIP_projected)/bare_qpg(iq,1) enddo else diff --git a/ypp/excitons/excitons_amplitudes.F b/ypp/excitons/excitons_amplitudes.F index b93d793eba..709186d26f 100644 --- a/ypp/excitons/excitons_amplitudes.F +++ b/ypp/excitons/excitons_amplitudes.F @@ -16,7 +16,7 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) use YPPm, ONLY:EXCITON_weight_treshold,EXCITONS_user_indexes,EXCITONS_n_user_states,DIPs,& & DIPs_direction,l_dipoles,BSiq use BS_solvers, ONLY:BS_mat,BSS_eh_table,BSS_desc,BSS_n_eig - use DIPOLES, ONLY:DIP_rotated,DIPOLES_reset + use DIPOLES, ONLY:DIPOLES_reset use ALLOC, ONLY:DIPOLE_ALLOC_global use BS, ONLY:BS_H_dim,BS_bands,BSqpts use com, ONLY:msg @@ -39,7 +39,7 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) integer, parameter :: amp_steps=1000 integer :: amp_n_trans real(SP) :: amp_range(2),amp_damping,amp_I(amp_steps),amp_trans(BS_H_dim,2) - complex(SP) :: amp_E(amp_steps) + complex(SP) :: amp_E(amp_steps),DIP(3) ! call section('=','Amplitude and weights') !======================================== @@ -90,7 +90,8 @@ subroutine excitons_amplitudes(Xk,Xen,q,BS_E_degs,iq) if (.not.PAR_IND_DIPk_ibz%element_1D(ikibz)) cycle if (.not.PAR_IND_CON_BANDS_DIP%element_1D(ic)) cycle if (.not.PAR_IND_VAL_BANDS_DIP%element_1D(iv)) cycle - dip_factor=abs(dot_product(DIPs_direction,DIP_rotated(ic,iv,ikbz,i_spin,"DIP_iR",Xk)))**2. + call DIPOLE_rotate(ic,iv,ikbz,i_spin,"DIP_iR",Xk,DIP) + dip_factor=abs(dot_product(DIPs_direction,DIP))**2. endif ! do i_l=BS_E_degs(i_l_grp),BS_E_degs(i_l_grp)+n_lambda_deg-1 diff --git a/ypp/real_time/RT_TRabs_residuals.F b/ypp/real_time/RT_TRabs_residuals.F index 9e1556d664..efbf844bcc 100644 --- a/ypp/real_time/RT_TRabs_residuals.F +++ b/ypp/real_time/RT_TRabs_residuals.F @@ -11,7 +11,6 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) use R_lattice, ONLY:bz_samp use electrons, ONLY:levels,n_sp_pol,spin,spin_occ use X_m, ONLY:global_gauge - use DIPOLES, ONLY:DIP_rotated use YPP_real_time, ONLY:TRabs_RES_left,TRabs_RES_right,TRabs_E,TRabs_Eeh_treshold use BS, ONLY:BS_K_dim use BS_solvers, ONLY:BSS_eh_table,BS_mat @@ -32,7 +31,7 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) ! integer :: i_lp,i_v,i_c,i_kbz,i_kibz,i_spin,i_l,bands(2,2),i_n,i_np,i_dir real(SP) :: E_eh - complex(SP) :: dipole_rotated(3),f_eh(2),DIP_dot + complex(SP) :: DIP_rotated(3),f_eh(2),DIP_dot,DIP ! ! BSE residuals ! ------------- @@ -55,11 +54,12 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) if (.not. PAR_IND_DIPk_ibz%element_1D(i_kibz)) cycle ! f_eh=gimme_f_and_delta_f(i_v,i_c,i_kibz,i_spin) - dipole_rotated=conjg(-cI*DIP_rotated(i_c,i_v,i_kbz,i_spin,"DIP_iR",Xk)) + call DIPOLE_rotated(i_c,i_v,i_kbz,i_spin,"DIP_iR",Xk,DIP) + DIP_rotated=conjg(-cI*DIP) ! do i_dir=1,N_dirs ! - DIP_dot=dot_product(DIP_dir(i_dir,:),dipole_rotated) + DIP_dot=dot_product(DIP_dir(i_dir,:),DIP_rotated) ! TRabs_RES_right(i_l,i_dir,1)= TRabs_RES_right(i_l,i_dir,1)+& & conjg(DIP_dot)*BS_mat(i_lp,i_l)*sqrt(f_eh(1)) @@ -121,11 +121,11 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) if (.not. PAR_IND_VAL_BANDS_DIP%element_1D(i_n)) cycle ! TRabs_E(N_trans)=E_eh - dipole_rotated=conjg(-cI*DIP_rotated(i_np,i_n,i_kbz,i_spin,"DIP_iR",Xk)) + DIP_rotated=conjg(-cI*DIPOLE_rotated(i_np,i_n,i_kbz,i_spin,"DIP_iR",Xk)) ! do i_dir=1,N_dirs - TRabs_RES_right(N_trans,i_dir,1)= conjg(dot_product(DIP_dir(i_dir,:),dipole_rotated))*sqrt(f_eh(2)) - TRabs_RES_left(N_trans,i_dir,1) = dot_product(DIP_dir(i_dir,:),dipole_rotated) *sqrt(f_eh(2)) + TRabs_RES_right(N_trans,i_dir,1)= conjg(dot_product(DIP_dir(i_dir,:),DIP_rotated))*sqrt(f_eh(2)) + TRabs_RES_left(N_trans,i_dir,1) = dot_product(DIP_dir(i_dir,:),DIP_rotated) *sqrt(f_eh(2)) enddo ! enddo From aaf4815a9517cb99a962d82ad7a6051927ebbc0a Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 15:40:12 +0200 Subject: [PATCH 033/112] Version 5.2.0, Revision 23134, Hash 7972400e3 MODIFIED * configure include/version/version.m4 bz_ops/k_map_nearest_by_dir.F dipoles/DIPOLE_covariant.F dipoles/DIPOLE_setup.F ypp/real_time/RT_TRabs_residuals.F Bugs: - More tiny bugs fixes Changes: - Improved messaging of Covariant approach Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bz_ops/k_map_nearest_by_dir.F | 7 ++----- src/dipoles/DIPOLE_covariant.F | 25 ++++++++++++++++++------- src/dipoles/DIPOLE_setup.F | 2 +- ypp/real_time/RT_TRabs_residuals.F | 7 ++++--- 6 files changed, 39 insertions(+), 30 deletions(-) diff --git a/configure b/configure index 9ae2e4f7d4..131dea010e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23134 h.25643c55b. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23135 h.7972400e3. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23134 h.25643c55b' -PACKAGE_STRING='Yambo 5.2.0 r.23134 h.25643c55b' +PACKAGE_VERSION='5.2.0 r.23135 h.7972400e3' +PACKAGE_STRING='Yambo 5.2.0 r.23135 h.7972400e3' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23134 h.25643c55b to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23135 h.7972400e3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23134 h.25643c55b:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23135 h.7972400e3:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23134 h.25643c55b +Yambo configure 5.2.0 r.23135 h.7972400e3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23134 h.25643c55b, which was +It was created by Yambo $as_me 5.2.0 r.23135 h.7972400e3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23134" -SHASH="25643c55b" +SREVISION="23135" +SHASH="7972400e3" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23134 h.25643c55b, which was +This file was extended by Yambo $as_me 5.2.0 r.23135 h.7972400e3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23134 h.25643c55b +Yambo config.status 5.2.0 r.23135 h.7972400e3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 39e88eab2f..15fbd69291 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23134 h.25643c55b, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23135 h.7972400e3, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23134" -SHASH="25643c55b" +SREVISION="23135" +SHASH="7972400e3" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bz_ops/k_map_nearest_by_dir.F b/src/bz_ops/k_map_nearest_by_dir.F index 9a467d9153..0c003a66c1 100644 --- a/src/bz_ops/k_map_nearest_by_dir.F +++ b/src/bz_ops/k_map_nearest_by_dir.F @@ -170,7 +170,6 @@ subroutine k_find_smallest_g0(g0_idx,g0_length) ! Work Space ! integer :: id,i1 - character(schlen) :: dump_ch real(SP) :: g0(3) ! do id=1,3 @@ -203,10 +202,8 @@ subroutine k_find_smallest_g0(g0_idx,g0_length) ! enddo ! - write(dump_ch,'(a,3i3)') " Index g0 smallest positive vectors in each direction: ",g0_idx(:,1) - call msg("s",dump_ch) - write(dump_ch,'(a,3i3)') " Index g0 smallest negative vectors in each direction: ",g0_idx(:,2) - call msg("s",dump_ch) + call msg("r"," Smallest g0 vector in each direction: positive",g0_idx(:,1)) + call msg("r"," negative",g0_idx(:,2)) ! end subroutine k_find_smallest_g0 diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index 6f394a5218..bbd4c0f621 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -13,7 +13,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) use pars, ONLY:SP,cI,cZERO,pi use LIVE_t, ONLY:live_timing use electrons, ONLY:levels,n_sp_pol - use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v,covariant_obs + use DIPOLES, ONLY:DIPOLE_t,DIP_S,DIP_iR,DIP_v,covariant_obs,x_space_obs use ALLOC, ONLY:DIPOLE_ALLOC_elemental use R_lattice, ONLY:bz_samp,k_map use vec_operate, ONLY:k_periodic_idx @@ -24,6 +24,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) use D_lattice, ONLY:a use parser_m, ONLY:parser use timing_m, ONLY:timing + use stderr, ONLY:STRING_match ! #include ! @@ -33,11 +34,12 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) ! ! Work Space ! - logical :: idir_not_done(3),l_eval_polarization,l_force_SndOrd - integer :: ik,iv,ic,ic_min,iv_max,i_sp_pol,ikm1,id_red,idir,idx(3),ikbz,ik_mem,istep,max_step - real(SP) :: Ev_m_Ec_KS + logical ::idir_not_done(3),l_eval_polarization,l_force_SndOrd + integer ::ik,iv,ic,ic_min,iv_max,i_sp_pol,ikm1,id_red,idir,idx(3),ikbz,ik_mem,istep,max_step + real(SP) ::Ev_m_Ec_KS complex(SP), allocatable :: Sm1_plus (:,:,:),Sm1_minus(:,:,:) - complex(SP) :: S_det(6),Wop(Dip%ib(2),Dip%ib(2),2),DIP_tmp(6,Dip%ib(2),Dip%ib(2)),S_tmp(Dip%ib(2),Dip%ib(2),2) + complex(SP) ::S_det(6),Wop(Dip%ib(2),Dip%ib(2),2),DIP_tmp(6,Dip%ib(2),Dip%ib(2)),S_tmp(Dip%ib(2),Dip%ib(2),2) + character(1)::str(3)=(/'x','y','z'/) ! call timing("DIPOLE_covariant",OPR="start") ! @@ -164,7 +166,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) !===== ! !===== - if(.not.Dip%force_v_g_space) then + if(STRING_match(covariant_obs,"V")) then do iv=Dip%ib(1),Dip%ib_lim(1) if(.not.PAR_IND_VAL_BANDS_DIP%element_1D(iv)) cycle do ic=max(iv,Dip%ib_lim(2)),Dip%ib(2) @@ -195,7 +197,16 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) if(l_eval_polarization) call POLARIZATION_output(Xen,Xk,Dip) #endif ! - if(any(idir_not_done)) call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) + if (any(idir_not_done)) then + do ic=1,3 + if (idir_not_done(ic)) then + x_space_obs=trim(x_space_obs)//" R_"//str(ic) + if (STRING_match(covariant_obs,"V")) x_space_obs=trim(x_space_obs)//" V_"//str(ic) + endif + enddo + Dip%computed=trim(Dip%computed)//trim(x_space_obs)//" [X-space]" + call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) + endif ! call timing("DIPOLE_covariant",OPR="stop") ! diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index 6f456a2d77..fba9597bd3 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -103,7 +103,7 @@ subroutine DIPOLE_setup(Dip) else call warning(' User approach undefined. Switching to G-space v') g_space_obs="R V P" - endif + endif ! ! ... P2 #if defined _RT diff --git a/ypp/real_time/RT_TRabs_residuals.F b/ypp/real_time/RT_TRabs_residuals.F index efbf844bcc..a2bf207b87 100644 --- a/ypp/real_time/RT_TRabs_residuals.F +++ b/ypp/real_time/RT_TRabs_residuals.F @@ -31,7 +31,7 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) ! integer :: i_lp,i_v,i_c,i_kbz,i_kibz,i_spin,i_l,bands(2,2),i_n,i_np,i_dir real(SP) :: E_eh - complex(SP) :: DIP_rotated(3),f_eh(2),DIP_dot,DIP + complex(SP) :: DIP_rotated(3),f_eh(2),DIP_dot,DIP(3) ! ! BSE residuals ! ------------- @@ -54,7 +54,7 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) if (.not. PAR_IND_DIPk_ibz%element_1D(i_kibz)) cycle ! f_eh=gimme_f_and_delta_f(i_v,i_c,i_kibz,i_spin) - call DIPOLE_rotated(i_c,i_v,i_kbz,i_spin,"DIP_iR",Xk,DIP) + call DIPOLE_rotate(i_c,i_v,i_kbz,i_spin,"DIP_iR",Xk,DIP) DIP_rotated=conjg(-cI*DIP) ! do i_dir=1,N_dirs @@ -121,7 +121,8 @@ subroutine RT_TRabs_residuals(what,N_trans,N_dirs,DIP_dir,Xen,Xk,nb,l_EQ) if (.not. PAR_IND_VAL_BANDS_DIP%element_1D(i_n)) cycle ! TRabs_E(N_trans)=E_eh - DIP_rotated=conjg(-cI*DIPOLE_rotated(i_np,i_n,i_kbz,i_spin,"DIP_iR",Xk)) + call DIPOLE_rotate(i_np,i_n,i_kbz,i_spin,"DIP_iR",Xk,DIP) + DIP_rotated=conjg(-cI*DIP) ! do i_dir=1,N_dirs TRabs_RES_right(N_trans,i_dir,1)= conjg(dot_product(DIP_dir(i_dir,:),DIP_rotated))*sqrt(f_eh(2)) From c680375050bcddab86f566a9b92bfb9f421bdf9c Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 15:41:43 +0200 Subject: [PATCH 034/112] Version 5.2.0, Revision 23135, Hash aaf4815a9 MODIFIED * configure include/version/version.m4 dipoles/DOUBLE_project.dep Additions: - Deps update Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DOUBLE_project.dep | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 131dea010e..a3c6eac326 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23135 h.7972400e3. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23136 h.aaf4815a9. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23135 h.7972400e3' -PACKAGE_STRING='Yambo 5.2.0 r.23135 h.7972400e3' +PACKAGE_VERSION='5.2.0 r.23136 h.aaf4815a9' +PACKAGE_STRING='Yambo 5.2.0 r.23136 h.aaf4815a9' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23135 h.7972400e3 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23136 h.aaf4815a9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23135 h.7972400e3:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23136 h.aaf4815a9:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23135 h.7972400e3 +Yambo configure 5.2.0 r.23136 h.aaf4815a9 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23135 h.7972400e3, which was +It was created by Yambo $as_me 5.2.0 r.23136 h.aaf4815a9, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23135" -SHASH="7972400e3" +SREVISION="23136" +SHASH="aaf4815a9" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23135 h.7972400e3, which was +This file was extended by Yambo $as_me 5.2.0 r.23136 h.aaf4815a9, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23135 h.7972400e3 +Yambo config.status 5.2.0 r.23136 h.aaf4815a9 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 15fbd69291..0790cdde13 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23135 h.7972400e3, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23136 h.aaf4815a9, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23135" -SHASH="7972400e3" +SREVISION="23136" +SHASH="aaf4815a9" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DOUBLE_project.dep b/src/dipoles/DOUBLE_project.dep index 499a9430ef..2859c70e1f 100644 --- a/src/dipoles/DOUBLE_project.dep +++ b/src/dipoles/DOUBLE_project.dep @@ -18,6 +18,7 @@ DIPOLE_orbital_magnetization.o DIPOLE_overlaps.o DIPOLE_p_matrix_elements.o + DIPOLE_rotate.o DIPOLE_setup.o DIPOLE_shifted_grids.o DIPOLE_spin_magnetization.o From 355507ea904e2f88b74b1d082946a15da3a36135 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 13 Aug 2024 15:49:21 +0200 Subject: [PATCH 035/112] Version 5.2.0, Revision 23136, Hash c68037505 MODIFIED * configure include/version/version.m4 io_parallel/io_DIPOLES.F Changes: - io_parallel/io_DIPOLES.F fixed Patch sent by: Andrea Marini --- configure | 22 +++++++++---------- include/version/version.m4 | 6 +++--- src/io_parallel/io_DIPOLES.F | 42 +++++++++++------------------------- 3 files changed, 26 insertions(+), 44 deletions(-) diff --git a/configure b/configure index a3c6eac326..bab1539ed3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23136 h.aaf4815a9. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23137 h.c68037505. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23136 h.aaf4815a9' -PACKAGE_STRING='Yambo 5.2.0 r.23136 h.aaf4815a9' +PACKAGE_VERSION='5.2.0 r.23137 h.c68037505' +PACKAGE_STRING='Yambo 5.2.0 r.23137 h.c68037505' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23136 h.aaf4815a9 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23137 h.c68037505 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23136 h.aaf4815a9:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23137 h.c68037505:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23136 h.aaf4815a9 +Yambo configure 5.2.0 r.23137 h.c68037505 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23136 h.aaf4815a9, which was +It was created by Yambo $as_me 5.2.0 r.23137 h.c68037505, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23136" -SHASH="aaf4815a9" +SREVISION="23137" +SHASH="c68037505" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23136 h.aaf4815a9, which was +This file was extended by Yambo $as_me 5.2.0 r.23137 h.c68037505, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23136 h.aaf4815a9 +Yambo config.status 5.2.0 r.23137 h.c68037505 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 0790cdde13..26b61e0517 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23136 h.aaf4815a9, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23137 h.c68037505, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23136" -SHASH="aaf4815a9" +SREVISION="23137" +SHASH="c68037505" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/io_parallel/io_DIPOLES.F b/src/io_parallel/io_DIPOLES.F index 3fd70bb017..90e04b7871 100644 --- a/src/io_parallel/io_DIPOLES.F +++ b/src/io_parallel/io_DIPOLES.F @@ -8,19 +8,16 @@ integer function io_DIPOLES(Dip,ID) ! use pars, ONLY:schlen,SP - use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_P,DIP_v,DIP_alloc + use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square use electrons, ONLY:n_spin,n_sp_pol use R_lattice, ONLY:nXkibz use IO_m, ONLY:io_sec,frag_DIP,io_DIP,read_is_on,io_extension,IO_NOT_ALLOWED, & & nf90_sync,io_unit,netcdf_call,io_PAR_cpu use IO_int, ONLY:io_connect,io_disconnect,io_variable_bulk,def_variable_bulk,io_header - use DIPOLES, ONLY:DIP_spin,DIP_orbital, compute_Orb_dipoles,compute_Spin_dipoles + use DIPOLES, ONLY:DIP_spin,DIP_orbital use electrons, ONLY:n_spinor -#if defined _RT - use DIPOLES, ONLY:DIP_P_spinor -#endif - use DIPOLES, ONLY:P_square,compute_P2_dipoles use BS, ONLY:l_BS_dichroism + use stderr, ONLY:STRING_match use parallel_m, ONLY:PAR_K_scheme use timing_m, ONLY:timing ! @@ -104,25 +101,7 @@ integer function io_DIPOLES(Dip,ID) P2_size(2:5)=DIP_size(3:6) P2_ipos(2:5)=DIP_ipos(3:6) ! - if (read_is_on(ID).and.i_fragment==-1) then - call DIP_alloc('DIP_iR',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - call DIP_alloc('DIP_P' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - call DIP_alloc('DIP_v' ,(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - ! - if (compute_Orb_dipoles) & - & call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz,2/)) - if (compute_Spin_dipoles) & - & call DIP_alloc('DIP_spin',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) -#if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) & - & call DIP_alloc('DIP_P_spinor',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) -#endif - if (compute_P2_dipoles) call DIP_alloc('P_square',(/Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz/)) - if(l_BS_dichroism) then - call DIP_alloc('DIP_orbital',(/3,Dip%ib_lim(2),Dip%ib(2),Dip%ib(1),Dip%ib_lim(1),PAR_K_scheme%nibz,1/)) - endif - ! - endif + if (read_is_on(ID)) call DIPOLE_ALLOC_global(Dip,PAR_K_scheme%nibz) ! ! iR ! @@ -145,7 +124,7 @@ integer function io_DIPOLES(Dip,ID) if (i_fragment< 1) call def_variable_bulk(ID,trim(VAR_name),VAR_ID,DIP_size,SP,par_io_kind='independent') if (i_fragment>=1) call io_variable_bulk(ID,VAR_ID,C5=DIP_v(:,:,:,ik_mem:ik_mem,i_sp_pol:i_sp_pol),IPOS=DIP_ipos) ! - if (compute_Orb_dipoles) then + if (STRING_match(Dip%computed,"M_it")) then ! ! Itinerant magnetization ! @@ -153,6 +132,9 @@ integer function io_DIPOLES(Dip,ID) VAr_name='DIP_itinerant' if (i_fragment< 1) call def_variable_bulk(ID,trim(VAR_name),VAR_ID,DIP_size,SP,par_io_kind='independent') if (i_fragment>=1) call io_variable_bulk(ID,VAR_ID,C5=DIP_orbital(:,:,:,ik_mem:ik_mem,i_sp_pol:i_sp_pol,2),IPOS=DIP_ipos) + endif + ! + if (STRING_match(Dip%computed,"M_orb")) then ! ! Orbital magnetization ! @@ -163,7 +145,7 @@ integer function io_DIPOLES(Dip,ID) ! endif ! - if (compute_Spin_dipoles) then + if (STRING_match(Dip%computed,"M_spin")) then ! ! Spin magntization ! @@ -175,7 +157,7 @@ integer function io_DIPOLES(Dip,ID) endif ! #if defined _RT - if (compute_Spin_dipoles.and.n_spinor==2) then + if (STRING_match(Dip%computed,"P_spinor")) then ! ! P_Spinor ! @@ -187,7 +169,7 @@ integer function io_DIPOLES(Dip,ID) endif #endif ! - if (compute_P2_dipoles) then + if (STRING_match(Dip%computed,"P2")) then ! ! P2 ! @@ -198,7 +180,7 @@ integer function io_DIPOLES(Dip,ID) ! endif ! - if (l_BS_dichroism) then + if (STRING_match(Dip%computed,"M_CD_orb")) then ! ! Orbital magnetization ! From 3554719a9efec2c22bdf2cb3a20be6c9a6edf025 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Wed, 14 Aug 2024 17:41:23 +0200 Subject: [PATCH 036/112] Version 5.2.0, Revision 23097, Hash f50165bfd MODIFIED * configure driver/yambo.F include/version/version.m4 common/.objects common/LEVELS_respect_degenerations.F interface/INIT_load.F real_time_control/RT_do_it.F real_time_drivers/RT_driver.F setup/External_corrections.F stop_and_restart/STOP_now.F NEW * common/LEVELS_mirror.F Bugs: - Tentative branch created to fix bug #122 Patch sent by: Andrea Marini --- configure | 22 +-- driver/yambo.F | 6 +- include/version/version.m4 | 6 +- src/common/.objects | 2 +- src/common/LEVELS_mirror.F | 148 +++++++++++++++++++ src/common/LEVELS_respect_degenerations.F | 168 ++++++++++++++++++---- src/interface/INIT_load.F | 144 ++----------------- src/real_time_control/RT_do_it.F | 7 +- src/real_time_drivers/RT_driver.F | 3 - src/setup/External_corrections.F | 2 +- src/stop_and_restart/STOP_now.F | 33 ++++- 11 files changed, 356 insertions(+), 185 deletions(-) create mode 100644 src/common/LEVELS_mirror.F diff --git a/configure b/configure index f97b76a80d..10e2174d86 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23096 h.f147e08b32. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23098 h.f50165bfd. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23096 h.f147e08b32' -PACKAGE_STRING='Yambo 5.2.0 r.23096 h.f147e08b32' +PACKAGE_VERSION='5.2.0 r.23098 h.f50165bfd' +PACKAGE_STRING='Yambo 5.2.0 r.23098 h.f50165bfd' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23096 h.f147e08b32 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23098 h.f50165bfd to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23096 h.f147e08b32:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23098 h.f50165bfd:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23096 h.f147e08b32 +Yambo configure 5.2.0 r.23098 h.f50165bfd generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23096 h.f147e08b32, which was +It was created by Yambo $as_me 5.2.0 r.23098 h.f50165bfd, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23096" -SHASH="f147e08b32" +SREVISION="23098" +SHASH="f50165bfd" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23096 h.f147e08b32, which was +This file was extended by Yambo $as_me 5.2.0 r.23098 h.f50165bfd, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23096 h.f147e08b32 +Yambo config.status 5.2.0 r.23098 h.f50165bfd configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/driver/yambo.F b/driver/yambo.F index 46740be97f..41c9d6e5b9 100644 --- a/driver/yambo.F +++ b/driver/yambo.F @@ -138,6 +138,11 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! call section('*','') ! + ! Check USER band selection degeneracy breaking + !=============================================== + ! + call LEVELS_respect_degenerations(en,Dip,X) + ! ! QP and RT CORRECTIONS !======================= ! @@ -176,7 +181,6 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d endif ! launch_me=l_em1s.or.(l_em1d.and..not.l_life).or.l_ppa.or.l_X.or.l_mpa - ! if (l_nl_optics.and.launch_me) call error('Please run the calculation of em1s/d/x in a separate run') ! diff --git a/include/version/version.m4 b/include/version/version.m4 index 7497b496af..1e0f9a1c24 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23096 h.f147e08b32, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23098 h.f50165bfd, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23096" -SHASH="f147e08b32" +SREVISION="23098" +SHASH="f50165bfd" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/.objects b/src/common/.objects index 1859d47ec8..0b6158f825 100644 --- a/src/common/.objects +++ b/src/common/.objects @@ -10,6 +10,6 @@ objs = eval_G_minus_G.o G_rot_grid.o G_index.o G_index_energy_factor.o eval_Grad Kramers_Kronig.o Convolve.o RIntegrate.o Laplace_transform.o \ CIntegrate.o QPartilize.o Lorentzian_FT.o \ OCCUPATIONS_Fermi.o OCCUPATIONS_Extend.o OCCUPATIONS_Gaps.o OCCUPATIONS_Extend_Double_Grid.o \ - LEVELS_respect_degenerations.o f_build_ext.o \ + LEVELS_respect_degenerations.o LEVELS_mirror.o f_build_ext.o \ crystal_lattice.o QP_state_print.o QP_state_group.o \ spline_fit.o OBS_rotate.o $(RT_objects) $(DEV_objects) diff --git a/src/common/LEVELS_mirror.F b/src/common/LEVELS_mirror.F new file mode 100644 index 0000000000..4fa2831fdb --- /dev/null +++ b/src/common/LEVELS_mirror.F @@ -0,0 +1,148 @@ +! +! License-Identifier: GPL +! +! Copyright (C) 2024 The Yambo Team +! +! Authors (see AUTHORS file for details): AM +! +subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) + ! + use electrons, ONLY:levels + use parser_m, ONLY:parser + use X_m, ONLY:X_t + use DIPOLES, ONLY:DIPOLE_t + use it_tools, ONLY:runlevel_is_on + use BS, ONLY:BS_q,BS_bands + use stderr, ONLY:STRING_same + use QP_m, ONLY:QP_n_G_bands +#if defined _SC + use SC, ONLY:SC_bands +#endif +#if defined _RT || defined _QED || defined _NL + use real_time, ONLY:RT_bands +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + use collision_ext, ONLY:COLL_bands + use hamiltonian, ONLY:H_ref_bands +#endif +#if defined _NL + use nl_optics, ONLY:NL_bands +#endif + ! + implicit none + ! + character(*) ::what + type(levels) ::E + type(DIPOLE_t) ::Dip + type(X_t) ::X(5) + logical ::l_USER_field(16) + ! + integer :: i1,bands(2),tmp_bands(2) + ! + if (STRING_same(what,"USER_fields")) then + ! + l_USER_field=.false. + ! + call parser('BndsRnXx', l_USER_field(1)) + call parser('BndsRnXs', l_USER_field(2)) + call parser('BndsRnXd', l_USER_field(3)) + call parser('BndsRnXp', l_USER_field(4)) + call parser('BndsRnXm', l_USER_field(5)) + call parser('DipBands', l_USER_field(6)) + call parser('BSEBands', l_USER_field(7)) + call parser('RTBands', l_USER_field(8)) + call parser('SCBands', l_USER_field(9)) + call parser('NLBands', l_USER_field(10)) + call parser('COLLBands',l_USER_field(11)) + call parser('el_photon_corr',l_USER_field(12)) + if (l_USER_field(12)) call parser('life',l_USER_field(12)) + call parser('QpntsRXd',l_USER_field(13)) + call parser('QpntsRXs',l_USER_field(14)) + call parser('QpntsRXx',l_USER_field(15)) + call parser('BSEQptR', l_USER_field(16)) + endif + ! + if (STRING_same(what,"MIRROR_Dip_and_X")) then + ! + ! Q's + ! + if (l_USER_field(13).and.runlevel_is_on('optics')) Dip%iq=X(3)%iq + if (l_USER_field(13).and.runlevel_is_on('em1d') ) Dip%iq=X(3)%iq + if (l_USER_field(13).and.runlevel_is_on('ppa') ) Dip%iq=X(4)%iq + if (l_USER_field(13).and.runlevel_is_on('mpa') ) Dip%iq=X(5)%iq + if (l_USER_field(14) ) Dip%iq=X(2)%iq + if (l_USER_field(15) ) Dip%iq=X(1)%iq + if (l_USER_field(16).and..not.(runlevel_is_on('ppa').or.runlevel_is_on('em1s').or.runlevel_is_on('mpa') )) Dip%iq=BS_q + ! + ! Bands + ! + bands=-1 + do i1=1,11 + if(.not.(l_USER_field(i1))) cycle + if(i1< 6) tmp_bands=X(i1)%ib + if(i1==6) tmp_bands=Dip%ib + if(i1==7) tmp_bands=BS_bands +#if defined _RT || defined _QED || defined _NL + if(i1==8) tmp_bands=RT_bands +#endif +#if defined _SC + if(i1==9) tmp_bands=SC_bands +#endif +#if defined _NL + if(i1==10) tmp_bands=NL_bands +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + if(i1==11) tmp_bands=COLL_bands +#endif +#if defined _QED + if(i1==12) tmp_bands=QP_n_G_bands +#endif + if(any((/bands==-1/))) then + bands(1)=max(tmp_bands(1), 1 ) + bands(2)=min(tmp_bands(2),E%nb) + else + bands(1)=max(min(tmp_bands(1),bands(1)), 1 ) + bands(2)=min(max(tmp_bands(2),bands(2)),E%nb) + endif + enddo + ! + if (any(bands<1)) bands=(/1,E%nb/) + ! + Dip%ib=bands + ! + endif + ! + if (STRING_same(what,"MIRROR_bands")) then + ! +#if defined _SC + if (l_USER_field(9)) bands=SC_bands +#endif +#if defined _RT || defined _QED || defined _NL + if (l_USER_field(8)) bands=RT_bands +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + if (l_USER_field(11)) bands=COLL_bands +#endif +#if defined _QED + if (l_USER_field(12)) bands=QP_n_G_bands +#endif +#if defined _NL + if (l_USER_field(10)) bands=NL_bands +#endif + ! +#if defined _SC + SC_bands =bands +#endif +#if defined _RT || defined _QED + RT_bands =bands +#endif +#if defined _NL + NL_bands =bands +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + COLL_bands =bands + H_ref_bands=bands +#endif + endif + ! +end subroutine diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index 677b0b2c2e..606eba9c1b 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -5,47 +5,159 @@ ! ! Authors (see AUTHORS file for details): AM ! -subroutine LEVELS_respect_degenerations(bands,E,IMPOSE) +subroutine LEVELS_respect_degenerations(E,Dip,X) ! - use units, ONLY:HA2EV - use electrons, ONLY:levels,n_bands - use R_lattice, ONLY:nkibz - use stderr, ONLY:intc - use vec_operate, ONLY:degeneration_finder + use electrons, ONLY:levels + use stderr, ONLY:intc + use vec_operate, ONLY:degeneration_finder + use BS, ONLY:BS_bands + use X_m, ONLY:X_t + use DIPOLES, ONLY:DIPOLE_t + use QP_m, ONLY:QP_n_G_bands +#if defined _SC + use SC, ONLY:SC_bands +#endif +#if defined _RT || defined _QED || defined _NL + use real_time, ONLY:RT_bands +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + use collision_ext, ONLY:COLL_bands +#endif +#if defined _NL + use nl_optics, ONLY:NL_bands +#endif ! implicit none ! - integer :: bands(2) - type(levels):: E - logical :: IMPOSE + type(levels) ::E + type(DIPOLE_t) ::Dip + type(X_t) ::X(5) ! ! Work Space ! - integer :: ik,first_el(n_bands),n_of_el(n_bands),n_deg_grp,i_g,bands_respecting(2),i_c + integer :: B_user(2),B_fixed(2),i_f + logical :: l_USER_fields(16),FORCE_it + character(2) :: X_str ! - bands_respecting=bands + ! By defaulft I assume that the degeneration is not lifted ! - do ik=1,nkibz + FORCE_it=.FALSE. + ! + ! Check for USER definitions + !--------------------------- + call LEVELS_mirror("USER_fields",E,X,Dip,l_USER_fields) + ! + ! Find the energy respecting range and fix it + !--------------------------------------------- + do i_f=1,11 ! - call degeneration_finder(E%E(:n_bands,ik,1),n_bands,first_el,n_of_el,n_deg_grp,0.0001/HA2EV) + if (.not.l_USER_fields(i_f)) cycle ! - do i_g=1,n_deg_grp - do i_c=1,2 - if (bands_respecting(i_c)>=first_el(i_g).and.bands_respecting(i_c)<=first_el(i_g)+n_of_el(i_g)-1) then - if (i_c==1) bands_respecting(i_c)=first_el(i_g) - if (i_c==2) bands_respecting(i_c)=first_el(i_g)+n_of_el(i_g)-1 - endif - enddo - enddo + if(i_f< 6) then + call levels_check(E,X(i_f)%ib) + if (i_f==1) X_str="Xx" + if (i_f==2) X_str="Xs" + if (i_f==3) X_str="Xd" + if (i_f==4) X_str="Xp" + if (i_f==5) X_str="Xm" + call fix_and_message(X_str,FORCE_it,X(i_f)%ib) + endif + if (i_f==6) then + call levels_check(E,Dip%ib) + call fix_and_message("Dipoles",FORCE_it,Dip%ib) + endif +#if defined _RT + if (i_f==8) then + call levels_check(E,RT_bands) + call fix_and_message("Real-Time",.TRUE.,RT_bands) + endif +#endif + if (i_f==7) then + call levels_check(E,BS_bands) + call fix_and_message("BS",FORCE_it,BS_bands) + endif +#if defined _SC + if (i_f==7) then + call levels_check(E,SC_bands) + call fix_and_message("SC",FORCE_it,SC_bands) + endif +#endif +#if defined _NL + if (i_f==10) then + call levels_check(E,NL_bands) + call fix_and_message("NL",FORCE_it,NL_bands) + endif +#endif +#if defined _SC || defined _RT || defined _QED || defined _NL + if (i_f==11) then + call levels_check(E,COLL_bands) + call fix_and_message("COLLISIONS",FORCE_it,COLL_bands) + endif +#endif +#if defined _QED + if (i_f==12) then + call levels_check(E,QP_n_G_bands) + call fix_and_message("QED",FORCE_it,QP_n_G_bands) + endif +#endif ! - enddo - ! - if (all((/bands==bands_respecting/))) return + enddo ! - call warning("User defined bands ("//trim(intc(bands(1)))//"-"//trim(intc(bands(2)))//") do not respect level degeneracy") + ! MIRROR + !-------- + !... => Dip + call LEVELS_mirror("MIRROR_Dip_and_X",E,X,Dip,l_USER_fields) + !... => Levels + call LEVELS_mirror("MIRROR_bands",E,X,Dip,l_USER_fields) ! - if (.not.IMPOSE) return - bands=bands_respecting - call warning("Bands redefined to be "//trim(intc(bands(1)))//"-"//trim(intc(bands(2)))) + contains + ! + subroutine levels_check(Ein,Bin) + ! + use R_lattice, ONLY:nkibz + use electrons, ONLY:levels,n_bands + use units, ONLY:HA2EV + ! + type(levels) ::Ein + integer ::Bin(2) + ! + ! Work Space + integer :: ik,first_el(n_bands),n_of_el(n_bands),n_deg_grp,i_g,i_c + ! + B_user =Bin + B_fixed=Bin + ! + do ik=1,nkibz + ! + call degeneration_finder(E%E(:n_bands,ik,1),n_bands,first_el,n_of_el,n_deg_grp,0.0001/HA2EV) + ! + do i_g=1,n_deg_grp + do i_c=1,2 + if (B_fixed(i_c)>=first_el(i_g).and.B_fixed(i_c)<=first_el(i_g)+n_of_el(i_g)-1) then + if (i_c==1) B_fixed(i_c)=first_el(i_g) + if (i_c==2) B_fixed(i_c)=first_el(i_g)+n_of_el(i_g)-1 + endif + enddo + enddo + enddo + ! + end subroutine + ! + subroutine fix_and_message(what,IMPOSE,B_final) + character(*) ::what + logical ::IMPOSE + integer ::B_final(2) + ! + if (all((/B_fixed==B_user/))) return + ! + call warning("["//what//"] User bands "//& +& trim(intc(B_user(1)))//"-"//trim(intc(B_user(2)))//" break level degeneracy") + ! + if (.not.IMPOSE) return + ! + B_final=B_fixed + call warning("["//what//"] Bands redefined to be "//trim(intc(B_final(1)))//"-"//trim(intc(B_final(2)))) + ! + end subroutine ! end subroutine diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index 00973838b0..33dcc65feb 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -12,7 +12,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) use electrons, ONLY:levels,nel,filled_tresh use zeros, ONLY:G_mod_zero use frequency, ONLY:w_samp - use it_tools, ONLY:it,runlevel_is_on + use it_tools, ONLY:it use it_m, ONLY:initdefs,E_unit,G_unit,T_unit,Bfield_unit,MEM_unit,& & Time_unit,I_unit,Angle_unit,V_parallel,initmode,V_ph,& & V_RL,V_kpt,V_sc,V_qp,V_io,V_general,V_resp,V_real_time,V_nl_optics @@ -51,7 +51,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) use QP_m, ONLY:QP_QED_ng #endif #if defined _SC || defined _RT || defined _QED - use hamiltonian, ONLY:H_ref_bands,H_potential + use hamiltonian, ONLY:H_potential use collision_ext, ONLY:COLLISIONS_cutoff,COLL_bands #endif use QP_m, ONLY:SC_E_threshold @@ -122,6 +122,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) integer :: i_field #endif real(SP) :: IO_times(3) + logical :: l_USER_fields(16) ! ! RunLevels... !============== @@ -406,7 +407,14 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! call it(defs,'RTBands', '[RT] Bands',RT_bands) ! - call TMP_mirror_bands( ) + ! This call is a temporary fix due to the multiple definition of energy ranges. + ! The call is needed to align the different values based on the USER definition. + ! + ! ... first the list of USER fields + call LEVELS_mirror("USER_fields",en,X,Dip,l_USER_fields) + ! + ! ... then the mirroring + if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) ! call it(defs,'TwoAlpha', '[RT] C_nk ~ alpha*Gamma_nk^2 ',two_alpha,Verb_level=V_real_time) call it(defs,'GrKind', '[RT] G-ret kind: Lorentzian (QP)/ Hyperbolic QP_secant (HS)',Gr_kind,Verb_level=V_real_time) @@ -656,7 +664,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! call it(defs,'SCBands', '[SC] Bands',SC_bands) ! - call TMP_mirror_bands( ) + if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) ! call it(defs,'SCIter', '[SC] SC Iterations',SC_iterations) call it(defs,'SCRhoTresh','[SC] Rho convergence threshold',SC_rho_threshold) @@ -688,7 +696,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! call it(defs,'COLLBands', '[COLL] Bands for the collisions',COLL_bands) ! - call TMP_mirror_bands( ) + if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) ! call it(defs,'HXC_Potential', '[SC] SC HXC Potential',H_potential,protect=.FALSE.,case="A") call it(defs,'COLLCut', '[SC,RT] Cutoff on the collisions, 0=full 1=none',COLLISIONS_cutoff,verb_level=V_sc) @@ -696,7 +704,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) #endif ! #if defined _RT - call TMP_mirror_bands( ) + if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) #endif ! #if defined _SC @@ -704,7 +712,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) call it(defs,'OEPapprox','[SC] OEP approximation: n=none s=Slater k=KLI c=CED +w=Weighted',OEP_approx) #endif ! - call DIP_mirror_bands_and_Qs(en) + if (initmode==4) call LEVELS_mirror("MIRROR_Dip_and_X",en,X,Dip,l_USER_fields) ! contains ! @@ -877,126 +885,4 @@ subroutine Xload(X,wv) ! end subroutine ! - subroutine DIP_mirror_bands_and_Qs(E_in) - ! - use parser_m, ONLY:parser - ! - type(levels), intent(in) :: E_in - ! - logical :: is_def(16) - integer :: i1,bands(2),tmp_bands(2) - ! - if (initmode/=4) return - ! - is_def=.false. - ! - call parser('BndsRnXx', is_def(1)) - call parser('BndsRnXs', is_def(2)) - call parser('BndsRnXd', is_def(3)) - call parser('BndsRnXp', is_def(4)) - call parser('BndsRnXm', is_def(5)) - call parser('DipBands', is_def(6)) - call parser('BSEBands', is_def(7)) - call parser('RTBands', is_def(8)) - call parser('SCBands', is_def(9)) - call parser('NLBands', is_def(10)) - call parser('COLLBands',is_def(11)) - call parser('el_photon_corr',is_def(12)) - if (is_def(12)) call parser('life',is_def(12)) - call parser('QpntsRXd',is_def(13)) - call parser('QpntsRXs',is_def(14)) - call parser('QpntsRXx',is_def(15)) - call parser('BSEQptR', is_def(16)) - ! - ! Q's - ! - if (is_def(13).and.runlevel_is_on('optics')) Dip%iq=X(3)%iq - if (is_def(13).and.runlevel_is_on('em1d') ) Dip%iq=X(3)%iq - if (is_def(13).and.runlevel_is_on('ppa') ) Dip%iq=X(4)%iq - if (is_def(13).and.runlevel_is_on('mpa') ) Dip%iq=X(5)%iq - if (is_def(14) ) Dip%iq=X(2)%iq - if (is_def(15) ) Dip%iq=X(1)%iq - if (is_def(16).and..not.(runlevel_is_on('ppa').or.runlevel_is_on('em1s').or.runlevel_is_on('mpa') )) Dip%iq=BS_q - ! - ! Bands - ! - bands=-1 - do i1=1,11 - if(.not.(is_def(i1))) cycle - if(i1< 6) tmp_bands=X(i1)%ib - if(i1==6) tmp_bands=Dip%ib - if(i1==7) tmp_bands=BS_bands -#if defined _RT || defined _NL - if(i1==8) tmp_bands=RT_bands -#endif -#if defined _SC - if(i1==9) tmp_bands=SC_bands -#endif -#if defined _NL - if(i1==10) tmp_bands=NL_bands -#endif -#if defined _RT || defined _SC || defined _NL - if(i1==11) tmp_bands=COLL_bands -#endif -#if defined _QED - if(i1==12) tmp_bands=QP_n_G_bands -#endif - if(any((/bands==-1/))) then - bands(1)=max(tmp_bands(1), 1 ) - bands(2)=min(tmp_bands(2),E_in%nb) - else - bands(1)=max(min(tmp_bands(1),bands(1)), 1 ) - bands(2)=min(max(tmp_bands(2),bands(2)),E_in%nb) - endif - enddo - ! - Dip%ib=bands - ! - end subroutine - ! -#if defined _SC || defined _RT || defined _QED - !TMP> - subroutine TMP_mirror_bands( ) - use parser_m, ONLY:parser - logical :: is_def(4) - integer :: bands_(2) - ! - if(initmode/=4) return - ! - call parser('SCBands', is_def(1)) - call parser('RTBands', is_def(2)) - call parser('COLLBands',is_def(3)) - call parser('NLBands', is_def(4)) -#endif - ! -#if defined _SC - if (is_def(1)) bands_=SC_bands -#endif -#if defined _RT || defined _QED - if (is_def(2)) bands_=RT_bands -#endif -#if defined _SC || defined _RT || defined _QED || defined _NL - if (is_def(3)) bands_=COLL_bands -#endif -#if defined _NL - if (is_def(4)) bands_=NL_bands -#endif - ! -#if defined _SC - SC_bands =bands_ -#endif -#if defined _RT || defined _QED - RT_bands =bands_ -#endif -#if defined _NL - NL_bands =bands_ -#endif -#if defined _SC || defined _RT || defined _QED || defined _NL - COLL_bands=bands_ - H_ref_bands=bands_ - ! - end subroutine - !TMP< -#endif - ! end subroutine diff --git a/src/real_time_control/RT_do_it.F b/src/real_time_control/RT_do_it.F index 51bdceb469..a65deb92ed 100644 --- a/src/real_time_control/RT_do_it.F +++ b/src/real_time_control/RT_do_it.F @@ -10,8 +10,6 @@ logical function RT_do_it(what) use RT_control, ONLY:OBS_RT_IO_t,Gless_RESTART_RT_IO_t,CARR_RT_IO_t,CACHE_OBS_INTERVAL_time,& & CACHE_OBS_last_point,OUTPUT_RT_IO_t,NE_i_start_time,STOP_the_dynamics_NOW use real_time, ONLY:NE_i_time,RT_step,NE_time_step_update_jump,NE_time_step_update_last_point - use parser_m, ONLY:parser - use it_tools, ONLY:it_reset ! implicit none ! @@ -20,7 +18,7 @@ logical function RT_do_it(what) ! Work Space ! integer :: INTERVAL_steps,i_grp,last_point - logical, external :: RT_Dynamics_is_over + logical, external :: RT_Dynamics_is_over,STOP_now ! RT_do_it=.FALSE. ! @@ -61,8 +59,7 @@ logical function RT_do_it(what) ! Do we STOP now ? !================== if (what=="G".and.RT_do_it) then - call it_reset(0) - call parser('STOP_NOW',STOP_the_dynamics_NOW) + STOP_the_dynamics_NOW=STOP_now(.FALSE.) endif ! ! Is the Dynamics over ? diff --git a/src/real_time_drivers/RT_driver.F b/src/real_time_drivers/RT_driver.F index 0cee2fcd2b..03ed90cfbe 100644 --- a/src/real_time_drivers/RT_driver.F +++ b/src/real_time_drivers/RT_driver.F @@ -96,9 +96,6 @@ subroutine RT_driver(E,X,k,q,Dip) call section('+','Pre-Initialization') !###################################### ! - ! Check if RT_bands respect levels degeneracy... - call LEVELS_respect_degenerations(RT_bands,E,.FALSE.) - ! ! Parallel reset... call PARALLEL_global_indexes(E,k,q," ",RESET=.TRUE.,X=X(1)) ! diff --git a/src/setup/External_corrections.F b/src/setup/External_corrections.F index 0e0d1e26a3..a02712dc6d 100644 --- a/src/setup/External_corrections.F +++ b/src/setup/External_corrections.F @@ -28,7 +28,7 @@ subroutine External_corrections(en,Xen,Ken,DIPen,Xk,k,X) implicit none ! type(levels) ::en,Xen,Ken,DIPen - type(X_t) ::X(4) + type(X_t) ::X(5) type(bz_samp)::k,Xk ! ! Work Space diff --git a/src/stop_and_restart/STOP_now.F b/src/stop_and_restart/STOP_now.F index 24bb3af6e2..5f30c898b2 100644 --- a/src/stop_and_restart/STOP_now.F +++ b/src/stop_and_restart/STOP_now.F @@ -8,17 +8,24 @@ logical function STOP_now(DO_IT_NOW) ! use pars, ONLY:SP - use parallel_m, ONLY:myid,mpi_comm_world + use parallel_m, ONLY:myid,mpi_comm_world,ncpu use LIVE_t, ONLY:cput_tot,USER_wall_time,USER_wall_time_string use parser_m, ONLY:parser use it_tools, ONLY:it_reset + use BS, ONLY:BS_bands +#if defined _SC + use SC, ONLY:SC_bands +#endif +#if defined _RT || defined _QED || defined _NL + use real_time, ONLY:RT_bands +#endif ! implicit none ! logical :: DO_IT_NOW ! ! Work Space - integer ::ierr,days,hours,minutes + integer ::ierr,days,hours,minutes,bands_save(3,2) real(SP) ::CPU_t ! CPU_t=abs( real(cput_tot(myid+1,1),SP) ) @@ -28,9 +35,29 @@ logical function STOP_now(DO_IT_NOW) hours=int(CPU_t/3600.d0) CPU_t=CPU_t-real(hours*3600.d0,SP) minutes=int(CPU_t/60.d0) + ! + ! STOP_NOW is called in BSE/RT and SC procedures. + ! If the corresponding bands ranges have been fixed to respect degeneracy + ! it means that the input file values may be different. + ! + bands_save(1,:)=BS_bands +#if defined _SC + bands_save(1,:)=SC_bands +#endif +#if defined _RT || defined _QED || defined _NL + bands_save(3,:)=RT_bands +#endif ! call it_reset(0) call parser('STOP_NOW',STOP_now) + ! + BS_bands=bands_save(1,:) +#if defined _SC + SC_bands=bands_save(1,:) +#endif +#if defined _RT || defined _QED || defined _NL + RT_bands=bands_save(3,:) +#endif ! if (len_trim(USER_wall_time_string)>0.and.& & (days>=USER_wall_time(1).or.USER_wall_time(1)==0).and.& @@ -49,7 +76,7 @@ logical function STOP_now(DO_IT_NOW) call CLOSE_the_run(.TRUE.,.TRUE.,.TRUE.) ! #if defined _MPI - call MPI_Abort(mpi_comm_world,1,ierr) + if (ncpu>1) call MPI_Abort(mpi_comm_world,1,ierr) #endif stop ! From 32b7dab32a7f0765ac9c9cfe1fb3fcc19ec6d31a Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 20 Aug 2024 12:23:29 +0200 Subject: [PATCH 037/112] Version 5.2.0, Revision 23125, Hash 3d7b25df8 MODIFIED * configure include/version/version.m4 Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index b1146d1716..e59953b327 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23122 h.b585505b07. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23126 h.3d7b25df8. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23122 h.b585505b07' -PACKAGE_STRING='Yambo 5.2.0 r.23122 h.b585505b07' +PACKAGE_VERSION='5.2.0 r.23126 h.3d7b25df8' +PACKAGE_STRING='Yambo 5.2.0 r.23126 h.3d7b25df8' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23122 h.b585505b07 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23126 h.3d7b25df8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23122 h.b585505b07:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23126 h.3d7b25df8:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23122 h.b585505b07 +Yambo configure 5.2.0 r.23126 h.3d7b25df8 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23122 h.b585505b07, which was +It was created by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23122" -SHASH="b585505b07" +SREVISION="23126" +SHASH="3d7b25df8" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23122 h.b585505b07, which was +This file was extended by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23122 h.b585505b07 +Yambo config.status 5.2.0 r.23126 h.3d7b25df8 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 72a6a8eabb..2e41014062 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23122 h.b585505b07, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23126 h.3d7b25df8, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23122" -SHASH="b585505b07" +SREVISION="23126" +SHASH="3d7b25df8" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 101a8e7e03b6aa9e13c6d3d605592601ad887ac4 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 20 Aug 2024 17:21:58 +0200 Subject: [PATCH 038/112] Version 5.2.0, Revision 23137, Hash 355507ea9 MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_covariant.F dipoles/DIPOLE_driver.F dipoles/DIPOLE_setup.F dipoles/DIPOLE_spin_magnetization.F Bugs: - Few bugs fixed. Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_covariant.F | 22 +++++++++++----------- src/dipoles/DIPOLE_driver.F | 9 +++++---- src/dipoles/DIPOLE_setup.F | 2 +- src/dipoles/DIPOLE_spin_magnetization.F | 8 ++++++-- 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/configure b/configure index bab1539ed3..681659fcf1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23137 h.c68037505. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23138 h.355507ea9. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23137 h.c68037505' -PACKAGE_STRING='Yambo 5.2.0 r.23137 h.c68037505' +PACKAGE_VERSION='5.2.0 r.23138 h.355507ea9' +PACKAGE_STRING='Yambo 5.2.0 r.23138 h.355507ea9' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23137 h.c68037505 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23138 h.355507ea9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23137 h.c68037505:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23138 h.355507ea9:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23137 h.c68037505 +Yambo configure 5.2.0 r.23138 h.355507ea9 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23137 h.c68037505, which was +It was created by Yambo $as_me 5.2.0 r.23138 h.355507ea9, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23137" -SHASH="c68037505" +SREVISION="23138" +SHASH="355507ea9" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23137 h.c68037505, which was +This file was extended by Yambo $as_me 5.2.0 r.23138 h.355507ea9, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23137 h.c68037505 +Yambo config.status 5.2.0 r.23138 h.355507ea9 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 26b61e0517..26694441af 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23137 h.c68037505, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23138 h.355507ea9, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23137" -SHASH="c68037505" +SREVISION="23138" +SHASH="355507ea9" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index bbd4c0f621..22b6aa6505 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): MG CA DS ! -subroutine DIPOLE_covariant(Xen,Xk,Dip) +subroutine DIPOLE_covariant(Xen,Xk,Dip,direction_is_todo) ! ! Build the covariant dipole operator at zero field ! in PRB 69, 085106 (2004) @@ -28,13 +28,14 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) ! #include ! - type(levels), intent(in) :: Xen - type(bz_samp), intent(inout) :: Xk - type(DIPOLE_t), intent(inout) :: Dip + type(levels), intent(in) ::Xen + type(bz_samp), intent(inout) ::Xk + type(DIPOLE_t), intent(inout) ::Dip + logical, intent(out) ::direction_is_todo(3) ! ! Work Space ! - logical ::idir_not_done(3),l_eval_polarization,l_force_SndOrd + logical ::l_eval_polarization,l_force_SndOrd integer ::ik,iv,ic,ic_min,iv_max,i_sp_pol,ikm1,id_red,idir,idx(3),ikbz,ik_mem,istep,max_step real(SP) ::Ev_m_Ec_KS complex(SP), allocatable :: Sm1_plus (:,:,:),Sm1_minus(:,:,:) @@ -60,9 +61,9 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) ! call DIPOLE_overlaps(Xk,Dip) ! - idir_not_done(:)= (k_map%max_kdir(:)==1) + direction_is_todo(:)= (k_map%max_kdir(:)==1) ! - if(any(idir_not_done)) call warning(' Covariant Dipoles not in 3d. Assuming non periodic system.') + if(any(direction_is_todo)) call warning(' Covariant Dipoles not in 3d. Assuming non periodic system.') ! if(any(k_map%max_kdir(:)>=6.and..not.l_force_SndOrd)) & & call msg('rs','Using forth order approximation for covariant dipoles') @@ -194,18 +195,17 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip) call live_timing() ! #if defined _NL - if(l_eval_polarization) call POLARIZATION_output(Xen,Xk,Dip) + if (l_eval_polarization) call POLARIZATION_output(Xen,Xk,Dip) #endif ! - if (any(idir_not_done)) then + if (any(direction_is_todo)) then do ic=1,3 - if (idir_not_done(ic)) then + if (direction_is_todo(ic)) then x_space_obs=trim(x_space_obs)//" R_"//str(ic) if (STRING_match(covariant_obs,"V")) x_space_obs=trim(x_space_obs)//" V_"//str(ic) endif enddo Dip%computed=trim(Dip%computed)//trim(x_space_obs)//" [X-space]" - call DIPOLE_x_real_space(Xen,Xk,Dip,idir_not_done) endif ! call timing("DIPOLE_covariant",OPR="stop") diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index 3d3767aded..33e67a4251 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -53,7 +53,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! integer :: ik,io_err character(schlen) :: msg - logical :: l_warning + logical :: l_warning,direction_is_todo(3) ! call section('*','Dipoles') !=========================== @@ -61,6 +61,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! ! Setup !======= + direction_is_todo=.TRUE. call DIPOLE_setup(Dip) ! ! Dipole dimensions to be fixed @@ -102,9 +103,9 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! if (len_trim(shifted_grids_obs)>0) call DIPOLE_shifted_grids(Xen,Xk,Dip) ! - if (len_trim(covariant_obs)>0) call DIPOLE_covariant(Xen,Xk,Dip) + if (len_trim(covariant_obs)>0) call DIPOLE_covariant(Xen,Xk,Dip,direction_is_todo) ! - if (len_trim(x_space_obs)>0) call DIPOLE_x_real_space(Xen,Xk,Dip,((/.TRUE.,.TRUE.,.TRUE./))) + if (len_trim(x_space_obs)>0) call DIPOLE_x_real_space(Xen,Xk,Dip,direction_is_todo) ! if (len_trim(g_space_obs)>0) call DIPOLE_g_space(Xen,Xk,Dip) ! @@ -212,7 +213,7 @@ subroutine DIPOLES_ppredux_and_symmetrize() DIP_v (:,iv,iv,ik_mem,i_sp_pol)=cmplx( real(DIP_v(:,iv,iv,ik_mem,i_sp_pol), SP),0. ,SP) ! ! Warning: if n_sp_pol==2 DIP_spin(iv,iv) is not the expectation value but - if (STRING_match(Dip%computed,"M_spin")) then + if (STRING_match(Dip%computed,"M_spin").and.(.not.n_sp_pol==2)) then DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)=cmplx( real(DIP_spin(:,iv,iv,ik_mem,i_sp_pol,1)),0. ,SP) endif #if defined _RT diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index fba9597bd3..98ae323fb5 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -127,9 +127,9 @@ subroutine DIPOLE_setup(Dip) #if defined _RT if (l_real_time) specific_obs=" M_spin M_orb M_it" #else - if (STRING_match(Dip%computed,"spin").or.l_BS_magnons) specific_obs=" M_spin" if (STRING_match(Dip%computed,"orb")) specific_obs=trim(specific_obs)//" M_orb M_it" #endif + if (STRING_match(Dip%computed,"spin").or.l_BS_magnons) specific_obs=" M_spin" endif if (l_BS_dichroism) specific_obs=trim(specific_obs)//" M_CD_orb" ! diff --git a/src/dipoles/DIPOLE_spin_magnetization.F b/src/dipoles/DIPOLE_spin_magnetization.F index cc49baae14..65d6824f20 100644 --- a/src/dipoles/DIPOLE_spin_magnetization.F +++ b/src/dipoles/DIPOLE_spin_magnetization.F @@ -33,6 +33,7 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) ! Work Space ! integer :: ik,ic_wf(n_sp_pol),iv_wf(n_sp_pol),ic,iv,n_LT_steps,ik_mem + logical :: LT_msg=.FALSE. ! if (n_spin==1) return ! @@ -45,8 +46,6 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) n_LT_steps=PAR_IND_DIPk_ibz%n_of_elements(PAR_IND_DIPk_ibz_ID+1)*& & PAR_IND_VAL_BANDS_DIP%n_of_elements(PAR_IND_VAL_BANDS_DIP_ID+1)*& & PAR_IND_CON_BANDS_DIP%n_of_elements(PAR_IND_CON_BANDS_DIP_ID+1) - ! - if (n_LT_steps>0) call live_timing('Spin magnetiziation',n_LT_steps) ! ! Main loop over k in IBZ ! @@ -60,6 +59,11 @@ subroutine Dipole_spin_magnetization(Xen,Xk,dip) ! call WF_load(WF,0,1,Dip%ib,(/ik,ik/),space='R',title='-Spin oscillators/R space',& & force_WFo=l_sc_run,keep_states_to_load=.TRUE.) + ! + if (.not.LT_msg) then + if (n_LT_steps>0) call live_timing('Spin magnetiziation',n_LT_steps) + LT_msg=.TRUE. + endif ! do iv=Dip%ib(1),Dip%ib_lim(1) ! From ee8d280806134eee4afa9aa5ec367dff3b00564a Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 21 Aug 2024 07:48:50 +0200 Subject: [PATCH 039/112] Version 5.2.0, Revision 23323, Hash 495d8c1623 MODIFIED * configure include/version/version.m4 bse/K_kernel.F linear_algebra/MATRIX_slepc.F Bugs: - [yambo] Fixed definition of loaded_blocks in case solver is called directly after building of the kernel Additions: - Changes: - [yambo] Eps set from options commented, since, being called right after the default eps is set, it gives problems with GD and JD solvers Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_kernel.F | 6 +++++- src/linear_algebra/MATRIX_slepc.F | 2 +- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 5eb0c767fe..931bb1f6ca 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23322 h.c623bec924. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23323 h.495d8c1623. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23322 h.c623bec924' -PACKAGE_STRING='Yambo 5.2.0 r.23322 h.c623bec924' +PACKAGE_VERSION='5.2.0 r.23323 h.495d8c1623' +PACKAGE_STRING='Yambo 5.2.0 r.23323 h.495d8c1623' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23322 h.c623bec924 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23323 h.495d8c1623 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23322 h.c623bec924:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23323 h.495d8c1623:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23322 h.c623bec924 +Yambo configure 5.2.0 r.23323 h.495d8c1623 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23322 h.c623bec924, which was +It was created by Yambo $as_me 5.2.0 r.23323 h.495d8c1623, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23322" -SHASH="c623bec924" +SREVISION="23323" +SHASH="495d8c1623" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23322 h.c623bec924, which was +This file was extended by Yambo $as_me 5.2.0 r.23323 h.495d8c1623, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23322 h.c623bec924 +Yambo config.status 5.2.0 r.23323 h.495d8c1623 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index e0ab0c63bd..34b2e46347 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23322 h.c623bec924, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23323 h.495d8c1623, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23322" -SHASH="c623bec924" +SREVISION="23323" +SHASH="495d8c1623" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 55c1032efb..e247de101c 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -26,6 +26,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) use X_m, ONLY:X_t use interfaces, ONLY:el_density_and_current use QP_m, ONLY:QP_ng_Vxc + use BS_solvers, ONLY:BSS_kernel_last_stored_block use BS, ONLY:BS_bands,BS_res_K_corr,BS_W,BS_W_is_diagonal,BS_ID,& & BS_res_K_exchange,BS_Block_size,BS_n_g_W,& & O_ng,BS_n_g_exch,BS_n_g_fxc,BS_identifier,BS_LiveTiming_steps,& @@ -879,7 +880,10 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR_CL,COM=REP,ID=ID) call io_BS_PAR_free(ID_head,ID,"full",.true.) ! In this mode the blocks are written to disk after each step and the memory is freed - if (io_BS_K.and.l_write_kernel_step) BS_K_has_been_calculated_loaded=.false. + if (io_BS_K) then + if( l_write_kernel_step) BS_K_has_been_calculated_loaded=.false. + if(.not.l_write_kernel_step) BSS_kernel_last_stored_block=n_BS_blks + endif #else call io_control(ACTION=WR_CL,COM=REP,SEC=(/n_BS_blks+2/),ID=ID) io_BS_err=io_BS(iq,X,ID) diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index 7399b7ed1b..ccaa34b472 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -136,7 +136,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm epskind=EPSKRYLOVSCHUR ! ! Load eps from command line options. It overwrites input file - call EPSSetFromOptions(eps,ierr) + !call EPSSetFromOptions(eps,ierr) ! From input. It overwrites command line options. if(index(BSS_slepc_approach,"Krylov-Schur")>0) epskind=EPSKRYLOVSCHUR if(index(BSS_slepc_approach,"Generalized-Davidson")>0) epskind=EPSGD From 271b385e663ef328091ba030316e347457874eff Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 21 Aug 2024 08:27:13 +0200 Subject: [PATCH 040/112] Version 5.2.0, Revision 23324, Hash ee8d280806 MODIFIED * configure include/version/version.m4 linear_algebra/MATRIX_slepc.F Changes: - [yambo] saving some local changes Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/linear_algebra/MATRIX_slepc.F | 27 +++++++++++++++++---------- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/configure b/configure index 931bb1f6ca..ba6a1b0ef1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23323 h.495d8c1623. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23324 h.ee8d280806. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23323 h.495d8c1623' -PACKAGE_STRING='Yambo 5.2.0 r.23323 h.495d8c1623' +PACKAGE_VERSION='5.2.0 r.23324 h.ee8d280806' +PACKAGE_STRING='Yambo 5.2.0 r.23324 h.ee8d280806' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23323 h.495d8c1623 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23324 h.ee8d280806 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1672,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23323 h.495d8c1623:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23324 h.ee8d280806:";; esac cat <<\_ACEOF @@ -1884,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23323 h.495d8c1623 +Yambo configure 5.2.0 r.23324 h.ee8d280806 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2513,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23323 h.495d8c1623, which was +It was created by Yambo $as_me 5.2.0 r.23324 h.ee8d280806, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23323" -SHASH="495d8c1623" +SREVISION="23324" +SHASH="ee8d280806" @@ -16612,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23323 h.495d8c1623, which was +This file was extended by Yambo $as_me 5.2.0 r.23324 h.ee8d280806, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16676,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23323 h.495d8c1623 +Yambo config.status 5.2.0 r.23324 h.ee8d280806 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 34b2e46347..5ba1ceb82f 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23323 h.495d8c1623, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23324 h.ee8d280806, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23323" -SHASH="495d8c1623" +SREVISION="23324" +SHASH="ee8d280806" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index ccaa34b472..f14c96794c 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -160,17 +160,29 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! endif ! + ! GD and JD always want stkind to be defined. This is done + ! automatically by slepc, however with this line, I get the info in output + if (epskind==EPSGD) stkind=STPRECOND + if (epskind==EPSJD) stkind=STPRECOND + if (stkind==STPRECOND .and. epskind==EPSGD) kspkind=KSPPREONLY + if (stkind==STPRECOND .and. epskind==EPSJD) kspkind=KSPBCGS + ! + call EPSGetST(eps,st,ierr) + call STGetKSP(st,ksp,ierr) + ! + call STSetType(st,stkind,ierr) + call KSPSetType(ksp,kspkind,ierr) + ! + pckind="nopc" + ! if (l_precondition) then ! if (epskind==EPSKRYLOVSCHUR) stkind=STSINVERT - if (epskind==EPSGD) stkind=STPRECOND - if (epskind==EPSJD) stkind=STPRECOND ! ! Default !if (stkind==STSINVERT) kspkind=KSPBCGS if (stkind==STSINVERT) kspkind=KSPPREONLY - if (stkind==STPRECOND .and. epskind==EPSGD) kspkind=KSPPREONLY - if (stkind==STPRECOND .and. epskind==EPSJD) kspkind=KSPBCGS + ! ! From user if(index(BSS_slepc_precondition,KSPPREONLY)/=0) kspkind=KSPPREONLY if(index(BSS_slepc_precondition,KSPBCGS)/=0) kspkind=KSPBCGS @@ -183,18 +195,13 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if(index(BSS_slepc_precondition,PCFIELDSPLIT)/=0) pckind=PCFIELDSPLIT if(index(BSS_slepc_precondition,PCLU)/=0) pckind=PCLU ! - BSS_slepc_precondition=trim(stkind)//"+"//trim(kspkind)//"+"//trim(pckind) - ! - call EPSGetST(eps,st,ierr) - call STGetKSP(st,ksp,ierr) call KSPGetPC(ksp,pc,ierr) ! - call STSetType(st,stkind,ierr) - call KSPSetType(ksp,kspkind,ierr) call PCSetType(pc,pckind,ierr) ! endif ! + BSS_slepc_precondition=trim(stkind)//"+"//trim(kspkind)//"+"//trim(pckind) ! if (BSS_slepc_extraction == 'ritz') extr = EPS_RITZ if (BSS_slepc_extraction == 'harmonic') extr = EPS_HARMONIC From 9c825873b44443d4fc04e1a30b98c4c5d66b5c51 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Wed, 21 Aug 2024 11:43:10 +0200 Subject: [PATCH 041/112] Version 5.2.0, Revision 23138, Hash 101a8e7e0 MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_driver.F dipoles/DIPOLE_g_space.F dipoles/DIPOLE_kb_init.F dipoles/DIPOLE_p_matrix_elements.F dipoles/DIPOLE_setup.F io/variables_DIPOLES.F modules/mod_stderr.F Bugs: - More bugs fixed. Now clean with serial I/O and OPENMPI+gfortran. Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_driver.F | 1 + src/dipoles/DIPOLE_g_space.F | 1 + src/dipoles/DIPOLE_kb_init.F | 4 ++-- src/dipoles/DIPOLE_p_matrix_elements.F | 2 +- src/dipoles/DIPOLE_setup.F | 5 ++++- src/io/variables_DIPOLES.F | 12 +++++++++--- src/modules/mod_stderr.F | 21 +++++++++++++++++++++ 9 files changed, 53 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 681659fcf1..0b4b25829f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23138 h.355507ea9. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23139 h.101a8e7e0. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23138 h.355507ea9' -PACKAGE_STRING='Yambo 5.2.0 r.23138 h.355507ea9' +PACKAGE_VERSION='5.2.0 r.23139 h.101a8e7e0' +PACKAGE_STRING='Yambo 5.2.0 r.23139 h.101a8e7e0' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23138 h.355507ea9 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23139 h.101a8e7e0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23138 h.355507ea9:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23139 h.101a8e7e0:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23138 h.355507ea9 +Yambo configure 5.2.0 r.23139 h.101a8e7e0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23138 h.355507ea9, which was +It was created by Yambo $as_me 5.2.0 r.23139 h.101a8e7e0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23138" -SHASH="355507ea9" +SREVISION="23139" +SHASH="101a8e7e0" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23138 h.355507ea9, which was +This file was extended by Yambo $as_me 5.2.0 r.23139 h.101a8e7e0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23138 h.355507ea9 +Yambo config.status 5.2.0 r.23139 h.101a8e7e0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 26694441af..9c175a5377 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23138 h.355507ea9, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23139 h.101a8e7e0, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23138" -SHASH="355507ea9" +SREVISION="23139" +SHASH="101a8e7e0" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index 33e67a4251..02e6c822e3 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -136,6 +136,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) l_warning=(.not.Vnl_commutator_warning).and.l_optics ! ! Warn about missing [Sigma,r] commutator + write (*,*) Dip%Vnl_included ! if ( Dip%Vnl_included .and.l_warning.and.(len_trim(g_space_obs)>0.or.Dip%force_v_g_space)) then msg=' [r,Vnl^pseudo] included in' diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index c5133747c8..9e123180c1 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -78,6 +78,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) endif ! l_use_comm=STRING_match(g_space_obs,"V").or.STRING_match(g_space_obs,"R") + write (*,*) l_use_comm,g_space_obs ! if(l_use_comm) then ! diff --git a/src/dipoles/DIPOLE_kb_init.F b/src/dipoles/DIPOLE_kb_init.F index 8378744b9f..b9b163e0fa 100644 --- a/src/dipoles/DIPOLE_kb_init.F +++ b/src/dipoles/DIPOLE_kb_init.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): DS ! -subroutine Dipole_kb_init(Xen,Dip,io_err,ID) +subroutine DIPOLE_kb_init(Xen,Dip,io_err,ID) ! use pars, ONLY:SP,pi use stderr, ONLY:intc @@ -159,5 +159,5 @@ real(SP) function spinor_factor(m,l,j,i_spinor) ! end function ! -end subroutine +end subroutine DIPOLE_kb_init diff --git a/src/dipoles/DIPOLE_p_matrix_elements.F b/src/dipoles/DIPOLE_p_matrix_elements.F index 6e9a44e64c..e3b6a82ca5 100644 --- a/src/dipoles/DIPOLE_p_matrix_elements.F +++ b/src/dipoles/DIPOLE_p_matrix_elements.F @@ -138,7 +138,7 @@ subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P do i_spinor=1,n_spinor do j_spinor=1,n_spinor rho_spinor(i1,i_spinor,j_spinor)=& - & Vstar_dot_V_omp(wf_nc_k(ik),wf_grad(:wf_nc_k(ik),i_spinor),WF%c(:wf_nc_k(ik),j_spinor,ic_wf)) +& Vstar_dot_V_omp(wf_nc_k(ik),wf_grad(:wf_nc_k(ik),i_spinor),WF%c(:wf_nc_k(ik),j_spinor,ic_wf)) enddo rho(i1)=rho(i1)+rho_spinor(i1,i_spinor,i_spinor) enddo diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index 98ae323fb5..457dc9b263 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -93,7 +93,7 @@ subroutine DIPOLE_setup(Dip) if (Dip%force_v_g_space) x_space_obs="R" else if (STRING_same(Dip%approach,"covariant")) then covariant_obs="S R V" - if (Dip%force_v_g_space) x_space_obs="S R" + if (Dip%force_v_g_space) covariant_obs="S R" eval_OVERLAPS=.true. else if (STRING_same(Dip%approach,"shifted grids")) then shifted_grids_obs="R V" @@ -105,6 +105,9 @@ subroutine DIPOLE_setup(Dip) g_space_obs="R V P" endif ! + ! ... V + if (Dip%force_v_g_space) g_space_obs=trim(g_space_obs)//" V" + ! ! ... P2 #if defined _RT if (l_real_time) then diff --git a/src/io/variables_DIPOLES.F b/src/io/variables_DIPOLES.F index 291e85b5dd..58eaee7c68 100644 --- a/src/io/variables_DIPOLES.F +++ b/src/io/variables_DIPOLES.F @@ -7,13 +7,14 @@ ! integer function variables_DIPOLES(Dip,ID) ! - use pars, ONLY:SP,CR_YIO + use pars, ONLY:SP,CR_YIO,schlen use units, ONLY:HA2EV use DIPOLES, ONLY:DIPOLE_t,DIP_desc - use IO_m, ONLY:io_status + use IO_m, ONLY:io_status,IO_INCOMPATIBLE_VAR use IO_int, ONLY:io_variable_elemental,def_variable_elemental,io_elemental use global_XC, ONLY:Dipole_WF_xc_string,loaded_WF_xc_string use descriptors, ONLY:IO_desc_reset + use stderr, ONLY:STRING_contains ! implicit none ! @@ -22,6 +23,8 @@ integer function variables_DIPOLES(Dip,ID) ! ! Workspace ! + character(schlen) :: DB_obs + ! call IO_desc_reset(DIP_desc) ! call def_variable_elemental(ID,"PARS",11,SP,0) @@ -48,8 +51,11 @@ integer function variables_DIPOLES(Dip,ID) & DESCRIPTOR=DIP_desc) ! call def_variable_elemental(ID,"KINDS",1,CR_YIO,0) - call io_variable_elemental(ID,VAR="Dipoles computed",CH0=Dip%computed,CHECK=.true.,OP=(/"<="/),& + call io_variable_elemental(ID,DB_CH0=DB_obs,VAR="Dipoles computed",CH0=Dip%computed,WARN=.true.,OP=(/"=="/),& & DESCRIPTOR=DIP_desc) + if (io_status(ID)==IO_INCOMPATIBLE_VAR) then + if (STRING_contains(Dip%computed,DB_obs)) io_status(ID)=0 + endif ! ! Wavefunctions xc ! diff --git a/src/modules/mod_stderr.F b/src/modules/mod_stderr.F index 21f62e2eea..6e4b59a02b 100644 --- a/src/modules/mod_stderr.F +++ b/src/modules/mod_stderr.F @@ -466,4 +466,25 @@ logical function STRING_match(strIn,MATCH) ! end function STRING_match ! + logical function STRING_contains(substring,string) + ! + character(*) :: substring + character(*) :: string + ! + ! Work Space + ! + character(schlen):: subs(20) + integer :: is + ! + call STRING_split(substring,subs) + ! + STRING_contains=.TRUE. + ! + do is=1,20 + if (len_trim(subs(is))==0) cycle + if (.not.STRING_match(string,subs(is))) STRING_contains=.FALSE. + enddo + ! + end function + ! end module stderr From cd3d517249d60733cb9d4d0c2bcf1dca7d1d7357 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Wed, 21 Aug 2024 15:45:26 +0200 Subject: [PATCH 042/112] Version 5.2.0, Revision 23139, Hash 9c825873b MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_driver.F dipoles/DIPOLE_g_space.F io/variables_DIPOLES.F io_parallel/io_DIPOLES.F io_parallel/io_Overlaps.F Bugs: - Few bugs in IO_PAR mode fixed Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_driver.F | 1 - src/dipoles/DIPOLE_g_space.F | 1 - src/io/variables_DIPOLES.F | 7 ++++--- src/io_parallel/io_DIPOLES.F | 3 +++ src/io_parallel/io_Overlaps.F | 3 +-- 7 files changed, 22 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 0b4b25829f..4f10015e96 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23139 h.101a8e7e0. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23140 h.9c825873b. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23139 h.101a8e7e0' -PACKAGE_STRING='Yambo 5.2.0 r.23139 h.101a8e7e0' +PACKAGE_VERSION='5.2.0 r.23140 h.9c825873b' +PACKAGE_STRING='Yambo 5.2.0 r.23140 h.9c825873b' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23139 h.101a8e7e0 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23140 h.9c825873b to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23139 h.101a8e7e0:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23140 h.9c825873b:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23139 h.101a8e7e0 +Yambo configure 5.2.0 r.23140 h.9c825873b generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23139 h.101a8e7e0, which was +It was created by Yambo $as_me 5.2.0 r.23140 h.9c825873b, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23139" -SHASH="101a8e7e0" +SREVISION="23140" +SHASH="9c825873b" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23139 h.101a8e7e0, which was +This file was extended by Yambo $as_me 5.2.0 r.23140 h.9c825873b, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23139 h.101a8e7e0 +Yambo config.status 5.2.0 r.23140 h.9c825873b configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 9c175a5377..9330d74b7d 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23139 h.101a8e7e0, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23140 h.9c825873b, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23139" -SHASH="101a8e7e0" +SREVISION="23140" +SHASH="9c825873b" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index 02e6c822e3..33e67a4251 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -136,7 +136,6 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) l_warning=(.not.Vnl_commutator_warning).and.l_optics ! ! Warn about missing [Sigma,r] commutator - write (*,*) Dip%Vnl_included ! if ( Dip%Vnl_included .and.l_warning.and.(len_trim(g_space_obs)>0.or.Dip%force_v_g_space)) then msg=' [r,Vnl^pseudo] included in' diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index 9e123180c1..c5133747c8 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -78,7 +78,6 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) endif ! l_use_comm=STRING_match(g_space_obs,"V").or.STRING_match(g_space_obs,"R") - write (*,*) l_use_comm,g_space_obs ! if(l_use_comm) then ! diff --git a/src/io/variables_DIPOLES.F b/src/io/variables_DIPOLES.F index 58eaee7c68..dd3101dc2b 100644 --- a/src/io/variables_DIPOLES.F +++ b/src/io/variables_DIPOLES.F @@ -23,6 +23,7 @@ integer function variables_DIPOLES(Dip,ID) ! ! Workspace ! + integer :: io_status_save character(schlen) :: DB_obs ! call IO_desc_reset(DIP_desc) @@ -45,20 +46,20 @@ integer function variables_DIPOLES(Dip,ID) & DESCRIPTOR=DIP_desc) ! ! Character variables - ! call def_variable_elemental(ID,"APPROACH",1,CR_YIO,0) call io_variable_elemental(ID,VAR="Approach used",CH0=Dip%approach,CHECK=.true.,OP=(/"=="/),& & DESCRIPTOR=DIP_desc) ! + ! Observables + io_status_save=io_status(ID) call def_variable_elemental(ID,"KINDS",1,CR_YIO,0) call io_variable_elemental(ID,DB_CH0=DB_obs,VAR="Dipoles computed",CH0=Dip%computed,WARN=.true.,OP=(/"=="/),& & DESCRIPTOR=DIP_desc) - if (io_status(ID)==IO_INCOMPATIBLE_VAR) then + if (io_status(ID)==IO_INCOMPATIBLE_VAR.and.io_status_save==0) then if (STRING_contains(Dip%computed,DB_obs)) io_status(ID)=0 endif ! ! Wavefunctions xc - ! call def_variable_elemental(ID,'WAVE_FUNC_XC',1,CR_YIO,0) call io_variable_elemental(ID,DB_CH0=Dipole_WF_xc_string,CH0=loaded_WF_xc_string,VAR=' Wavefunctions',CHECK=.true.,OP=(/"=="/),& & DESCRIPTOR=DIP_desc) diff --git a/src/io_parallel/io_DIPOLES.F b/src/io_parallel/io_DIPOLES.F index 90e04b7871..fd2b1af055 100644 --- a/src/io_parallel/io_DIPOLES.F +++ b/src/io_parallel/io_DIPOLES.F @@ -9,6 +9,9 @@ integer function io_DIPOLES(Dip,ID) ! use pars, ONLY:schlen,SP use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_P,DIP_v,DIP_spin,DIP_orbital,P_square +#if defined _RT + use DIPOLES, ONLY:DIP_P_spinor +#endif use electrons, ONLY:n_spin,n_sp_pol use R_lattice, ONLY:nXkibz use IO_m, ONLY:io_sec,frag_DIP,io_DIP,read_is_on,io_extension,IO_NOT_ALLOWED, & diff --git a/src/io_parallel/io_Overlaps.F b/src/io_parallel/io_Overlaps.F index b4b35b8525..a7adeb7119 100644 --- a/src/io_parallel/io_Overlaps.F +++ b/src/io_parallel/io_Overlaps.F @@ -16,6 +16,7 @@ integer function io_Overlaps(Dip,ID) use IO_int, ONLY:io_connect,io_disconnect,def_variable_bulk,& & io_variable_bulk,io_header use timing_m, ONLY:timing + use ALLOC, ONLY:DIPOLE_ALLOC_elemental ! implicit none type(DIPOLE_t) :: Dip @@ -66,8 +67,6 @@ integer function io_Overlaps(Dip,ID) if (i_fragment==0) goto 1 if (i_fragment> n_sp_pol*nXkbz) goto 1 ! - ! if (i_fragment>=1) ik_mem=PAR_K_scheme%ibz_index(ik_bz) - ! if (read_is_on(ID)) call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,nXkbz/)) ! ! Reading size and position From 563f598bedc2f78e5cb35bd46f392cde96f336d8 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Wed, 21 Aug 2024 16:07:04 +0200 Subject: [PATCH 043/112] Version 5.2.0, Revision 23140, Hash cd3d51724 MODIFIED * configure include/version/version.m4 modules/ELPH_project.dep modules/mod_ALLOC.F Bugs: - NV compilation fixed Patch sent by: Andrea Marini --- configure | 28 ++++++++++++++-------------- include/version/version.m4 | 6 +++--- src/modules/ELPH_project.dep | 1 + src/modules/mod_ALLOC.F | 4 ++++ 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/configure b/configure index 4f10015e96..d4fd971bde 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23140 h.9c825873b. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23141 h.cd3d51724. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23140 h.9c825873b' -PACKAGE_STRING='Yambo 5.2.0 r.23140 h.9c825873b' +PACKAGE_VERSION='5.2.0 r.23141 h.cd3d51724' +PACKAGE_STRING='Yambo 5.2.0 r.23141 h.cd3d51724' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23140 h.9c825873b to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23141 h.cd3d51724 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23140 h.9c825873b:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23141 h.cd3d51724:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23140 h.9c825873b +Yambo configure 5.2.0 r.23141 h.cd3d51724 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23140 h.9c825873b, which was +It was created by Yambo $as_me 5.2.0 r.23141 h.cd3d51724, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23140" -SHASH="9c825873b" +SREVISION="23141" +SHASH="cd3d51724" @@ -15410,7 +15410,7 @@ if test x"$enable_nvtx" = "x"; then enable_nvtx="no" ; fi # def_cuda="" CUDA_FLAGS="" -CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" +CUDA_LIBS="-cudalib=cufft,cublas,cusolver" # Available cc options: # cc20 Compile for compute capability 2.0 @@ -15432,12 +15432,12 @@ CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" printf %s "checking for CUDA support... " >&6; } if test x"$enable_cuda" = "xyes" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=cuda9.0,cc70,nollvm $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=cuda9.0,cc70,nollvm $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } elif ! test x"$enable_cuda" = "x" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=$enable_cuda $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=$enable_cuda $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } fi @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23140 h.9c825873b, which was +This file was extended by Yambo $as_me 5.2.0 r.23141 h.cd3d51724, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23140 h.9c825873b +Yambo config.status 5.2.0 r.23141 h.cd3d51724 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 9330d74b7d..d66042a739 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23140 h.9c825873b, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23141 h.cd3d51724, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23140" -SHASH="9c825873b" +SREVISION="23141" +SHASH="cd3d51724" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/modules/ELPH_project.dep b/src/modules/ELPH_project.dep index 988dd27ac7..4ef7c99d88 100644 --- a/src/modules/ELPH_project.dep +++ b/src/modules/ELPH_project.dep @@ -1,3 +1,4 @@ SET_defaults.o + mod_ALLOC.o mod_ELPH.o diff --git a/src/modules/mod_ALLOC.F b/src/modules/mod_ALLOC.F index 2175887d8c..a923d83857 100644 --- a/src/modules/mod_ALLOC.F +++ b/src/modules/mod_ALLOC.F @@ -11,6 +11,8 @@ module ALLOC ! interface ! +#if defined _ELPH + ! subroutine ELPH_alloc(what,GKKP,Nb,Nm,Nk_mem,Nq_mem) use ELPH, ONLY:GKKP_me character(*) :: what @@ -18,6 +20,8 @@ subroutine ELPH_alloc(what,GKKP,Nb,Nm,Nk_mem,Nq_mem) integer, optional:: Nb(2),Nk_mem,Nm(2),Nq_mem end subroutine ! +#endif + ! subroutine DIPOLE_ALLOC_elemental(what,d) character(*) :: what integer, optional :: d(:) From fd381f3313ecf4899c212ea6b03fc90b92d6dcb4 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 21 Aug 2024 18:17:24 +0200 Subject: [PATCH 044/112] Debugging is not the default for internal compilation of petsc (and slepc) library --- lib/petsc/Makefile.loc | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/petsc/Makefile.loc b/lib/petsc/Makefile.loc index 27fcb6677d..8d92719e2b 100644 --- a/lib/petsc/Makefile.loc +++ b/lib/petsc/Makefile.loc @@ -22,6 +22,7 @@ CONFFLAGS=--prefix="$(LIBPATH)" \ --with-ssl=0 \ --with-x=0 \ --with-cxx=0 \ + --with-debugging=no \ --with-shared-libraries=$(spetsc) \ --with-blaslapack-lib="$(llapackpetsc) $(lblaspetsc)" \ --with-scalar-type="complex" \ From 3a51862bcd30302713bb7b451cbcce9135718602 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 22 Aug 2024 15:10:01 +0200 Subject: [PATCH 045/112] Version 5.2.0, Revision 23128, Hash 5a969f61e MODIFIED * configure driver/yambo.F include/version/version.m4 common/LEVELS_mirror.F common/LEVELS_respect_degenerations.F interface/INIT_load.F Bugs: - Further semplification of the levels degeneracy lift and bands/q-points mirroring procedure. Patch sent by: Andrea Marini --- configure | 22 ++--- driver/yambo.F | 2 +- include/version/version.m4 | 6 +- src/common/LEVELS_mirror.F | 104 +++++++++++----------- src/common/LEVELS_respect_degenerations.F | 7 +- src/interface/INIT_load.F | 19 ++-- 6 files changed, 76 insertions(+), 84 deletions(-) diff --git a/configure b/configure index e59953b327..83ca4f8a30 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23126 h.3d7b25df8. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23128 h.5a969f61e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23126 h.3d7b25df8' -PACKAGE_STRING='Yambo 5.2.0 r.23126 h.3d7b25df8' +PACKAGE_VERSION='5.2.0 r.23128 h.5a969f61e' +PACKAGE_STRING='Yambo 5.2.0 r.23128 h.5a969f61e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23126 h.3d7b25df8 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23128 h.5a969f61e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23126 h.3d7b25df8:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23128 h.5a969f61e:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23126 h.3d7b25df8 +Yambo configure 5.2.0 r.23128 h.5a969f61e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was +It was created by Yambo $as_me 5.2.0 r.23128 h.5a969f61e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="3d7b25df8" +SREVISION="23128" +SHASH="5a969f61e" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23126 h.3d7b25df8, which was +This file was extended by Yambo $as_me 5.2.0 r.23128 h.5a969f61e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23126 h.3d7b25df8 +Yambo config.status 5.2.0 r.23128 h.5a969f61e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/driver/yambo.F b/driver/yambo.F index 41c9d6e5b9..40abaf602b 100644 --- a/driver/yambo.F +++ b/driver/yambo.F @@ -16,7 +16,7 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! use drivers, ONLY:l_HF_and_locXC,l_sc_run,l_eval_collisions,l_real_time,& & l_optics,l_chi,l_em1s,l_ppa,l_mpa,l_bss,l_bse,l_em1d,l_X,& -& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr,l_phel_corr +& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr #if defined _SCALAPACK use drivers, ONLY:l_slk_test #endif diff --git a/include/version/version.m4 b/include/version/version.m4 index 2e41014062..565f1051d2 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23126 h.3d7b25df8, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23128 h.5a969f61e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="3d7b25df8" +SREVISION="23128" +SHASH="5a969f61e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_mirror.F b/src/common/LEVELS_mirror.F index 4fa2831fdb..5373f40d4e 100644 --- a/src/common/LEVELS_mirror.F +++ b/src/common/LEVELS_mirror.F @@ -37,7 +37,7 @@ subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) type(X_t) ::X(5) logical ::l_USER_field(16) ! - integer :: i1,bands(2),tmp_bands(2) + integer :: i1,SCATT_bands(2),DIP_bands(2) ! if (STRING_same(what,"USER_fields")) then ! @@ -62,10 +62,10 @@ subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) call parser('BSEQptR', l_USER_field(16)) endif ! - if (STRING_same(what,"MIRROR_Dip_and_X")) then + if (STRING_same(what,"MIRROR_q")) then ! ! Q's - ! + !----- if (l_USER_field(13).and.runlevel_is_on('optics')) Dip%iq=X(3)%iq if (l_USER_field(13).and.runlevel_is_on('em1d') ) Dip%iq=X(3)%iq if (l_USER_field(13).and.runlevel_is_on('ppa') ) Dip%iq=X(4)%iq @@ -73,76 +73,76 @@ subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) if (l_USER_field(14) ) Dip%iq=X(2)%iq if (l_USER_field(15) ) Dip%iq=X(1)%iq if (l_USER_field(16).and..not.(runlevel_is_on('ppa').or.runlevel_is_on('em1s').or.runlevel_is_on('mpa') )) Dip%iq=BS_q + ! + endif + ! + if (STRING_same(what,"MIRROR_bands")) then ! - ! Bands - ! - bands=-1 - do i1=1,11 + ! Bands (Electronic levels) + !--------------------------- + SCATT_bands=-1 + do i1=8,12 if(.not.(l_USER_field(i1))) cycle - if(i1< 6) tmp_bands=X(i1)%ib - if(i1==6) tmp_bands=Dip%ib - if(i1==7) tmp_bands=BS_bands + ! #if defined _RT || defined _QED || defined _NL - if(i1==8) tmp_bands=RT_bands + if(i1==8) SCATT_bands=RT_bands #endif #if defined _SC - if(i1==9) tmp_bands=SC_bands + if(i1==9) SCATT_bands=SC_bands #endif #if defined _NL - if(i1==10) tmp_bands=NL_bands + if(i1==10) SCATT_bands=NL_bands #endif #if defined _SC || defined _RT || defined _QED || defined _NL - if(i1==11) tmp_bands=COLL_bands + if(i1==11) SCATT_bands=COLL_bands #endif #if defined _QED - if(i1==12) tmp_bands=QP_n_G_bands + if(i1==12) SCATT_bands=QP_n_G_bands #endif - if(any((/bands==-1/))) then - bands(1)=max(tmp_bands(1), 1 ) - bands(2)=min(tmp_bands(2),E%nb) - else - bands(1)=max(min(tmp_bands(1),bands(1)), 1 ) - bands(2)=min(max(tmp_bands(2),bands(2)),E%nb) - endif enddo ! - if (any(bands<1)) bands=(/1,E%nb/) - ! - Dip%ib=bands - ! - endif - ! - if (STRING_same(what,"MIRROR_bands")) then - ! -#if defined _SC - if (l_USER_field(9)) bands=SC_bands -#endif + ! Bands (Dipoles) + !---------------- + DIP_bands=-1 + do i1=1,6 + if(.not.(l_USER_field(i1))) cycle + if(i1< 6) DIP_bands=X(i1)%ib + if(i1==6) DIP_bands=Dip%ib + enddo + if (all((/DIP_bands<0/))) then + if( l_USER_field(7) ) DIP_bands=BS_bands + if(.not.l_USER_field(7) ) DIP_bands=SCATT_bands #if defined _RT || defined _QED || defined _NL - if (l_USER_field(8)) bands=RT_bands -#endif -#if defined _SC || defined _RT || defined _QED || defined _NL - if (l_USER_field(11)) bands=COLL_bands -#endif -#if defined _QED - if (l_USER_field(12)) bands=QP_n_G_bands + if( l_USER_field(8) ) DIP_bands=RT_bands #endif #if defined _NL - if (l_USER_field(10)) bands=NL_bands + if( l_USER_field(10)) DIP_bands=NL_bands #endif + endif ! -#if defined _SC - SC_bands =bands -#endif -#if defined _RT || defined _QED - RT_bands =bands -#endif -#if defined _NL - NL_bands =bands -#endif + ! Any negative bands? + !--------------------- + call fix_me(SCATT_bands) + call fix_me(DIP_bands) + ! + ! Now MIRROR in related bands ranges! + !------------------------------------ #if defined _SC || defined _RT || defined _QED || defined _NL - COLL_bands =bands - H_ref_bands=bands + COLL_bands =SCATT_bands + H_ref_bands=SCATT_bands #endif + Dip%ib=DIP_bands + ! endif ! + contains + ! + subroutine fix_me(bands) + integer :: bands(2) + if(all((/bands>0/))) return + bands(1)=max(bands(1),1) + if (bands(2)>0) bands(2)=min(bands(2),E%nb) + if (bands(2)<0) bands(2)=E%nb + end subroutine + ! end subroutine diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index 606eba9c1b..93b76908f9 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -66,10 +66,10 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) call levels_check(E,Dip%ib) call fix_and_message("Dipoles",FORCE_it,Dip%ib) endif -#if defined _RT +#if defined _RT || defined _NL if (i_f==8) then call levels_check(E,RT_bands) - call fix_and_message("Real-Time",.TRUE.,RT_bands) + call fix_and_message("Real-Time",FORCE_it,RT_bands) endif #endif if (i_f==7) then @@ -105,9 +105,6 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) ! ! MIRROR !-------- - !... => Dip - call LEVELS_mirror("MIRROR_Dip_and_X",E,X,Dip,l_USER_fields) - !... => Levels call LEVELS_mirror("MIRROR_bands",E,X,Dip,l_USER_fields) ! contains diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index 40de98d6a9..3709750764 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -127,6 +127,9 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! RunLevels... !============== ! + ! ... list of USER fields + call LEVELS_mirror("USER_fields",en,X,Dip,l_USER_fields) + ! ! ... from C_driver ! call INIT_C_driver_runlevels(defs) @@ -411,12 +414,6 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! This call is a temporary fix due to the multiple definition of energy ranges. ! The call is needed to align the different values based on the USER definition. ! - ! ... first the list of USER fields - call LEVELS_mirror("USER_fields",en,X,Dip,l_USER_fields) - ! - ! ... then the mirroring - if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) - ! call it(defs,'TwoAlpha', '[RT] C_nk ~ alpha*Gamma_nk^2 ',two_alpha,Verb_level=V_real_time) call it(defs,'GrKind', '[RT] G-ret kind: Lorentzian (QP)/ Hyperbolic QP_secant (HS)',Gr_kind,Verb_level=V_real_time) call it(defs,'RADLifeTime','[RT] Radiative life-time (if negative Yambo sets it equal to Phase_LifeTime in NL)', & @@ -665,8 +662,6 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! call it(defs,'SCBands', '[SC] Bands',SC_bands) ! - if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) - ! call it(defs,'SCIter', '[SC] SC Iterations',SC_iterations) call it(defs,'SCRhoTresh','[SC] Rho convergence threshold',SC_rho_threshold) call it(defs,'SC_precondition','[SC] Kind of preconditionin: thomas-fermi, simple, none',SC_preconditioning,verb_level=V_sc) @@ -697,15 +692,12 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) ! call it(defs,'COLLBands', '[COLL] Bands for the collisions',COLL_bands) ! - if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) - ! call it(defs,'HXC_Potential', '[SC] SC HXC Potential',H_potential,protect=.FALSE.,case="A") call it(defs,'COLLCut', '[SC,RT] Cutoff on the collisions, 0=full 1=none',COLLISIONS_cutoff,verb_level=V_sc) ! #endif ! #if defined _RT - if (initmode==4) call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) #endif ! #if defined _SC @@ -713,7 +705,10 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) call it(defs,'OEPapprox','[SC] OEP approximation: n=none s=Slater k=KLI c=CED +w=Weighted',OEP_approx) #endif ! - if (initmode==4) call LEVELS_mirror("MIRROR_Dip_and_X",en,X,Dip,l_USER_fields) + if (initmode==4) then + call LEVELS_mirror("MIRROR_q",en,X,Dip,l_USER_fields) + call LEVELS_mirror("MIRROR_bands",en,X,Dip,l_USER_fields) + endif ! contains ! From 7a85112fd0e9bea61e76695b826ce1ea230559a1 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 22 Aug 2024 17:31:01 +0200 Subject: [PATCH 046/112] Version 5.2.0, Revision 23141, Hash 563f598be MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_covariant.F dipoles/DIPOLE_driver.F dipoles/DIPOLE_overlaps.F wf_and_fft/WF_shift_kpoint.F Bugs: - Fixed parallel distribution of DIP_spin - Fixed erroneous dimension allocation of DIP_S Changes: - WF_shift_kpoint.F re-formatted Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_covariant.F | 4 ++-- src/dipoles/DIPOLE_driver.F | 4 ++-- src/dipoles/DIPOLE_overlaps.F | 4 ++-- src/wf_and_fft/WF_shift_kpoint.F | 22 +++++++++++----------- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/configure b/configure index d4fd971bde..ac8074991c 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23141 h.cd3d51724. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23142 h.563f598be. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23141 h.cd3d51724' -PACKAGE_STRING='Yambo 5.2.0 r.23141 h.cd3d51724' +PACKAGE_VERSION='5.2.0 r.23142 h.563f598be' +PACKAGE_STRING='Yambo 5.2.0 r.23142 h.563f598be' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23141 h.cd3d51724 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23142 h.563f598be to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23141 h.cd3d51724:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23142 h.563f598be:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23141 h.cd3d51724 +Yambo configure 5.2.0 r.23142 h.563f598be generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23141 h.cd3d51724, which was +It was created by Yambo $as_me 5.2.0 r.23142 h.563f598be, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23141" -SHASH="cd3d51724" +SREVISION="23142" +SHASH="563f598be" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23141 h.cd3d51724, which was +This file was extended by Yambo $as_me 5.2.0 r.23142 h.563f598be, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23141 h.cd3d51724 +Yambo config.status 5.2.0 r.23142 h.563f598be configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index d66042a739..1b39c8abbd 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23141 h.cd3d51724, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23142 h.563f598be, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23141" -SHASH="cd3d51724" +SREVISION="23142" +SHASH="563f598be" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_covariant.F b/src/dipoles/DIPOLE_covariant.F index 22b6aa6505..330285851a 100644 --- a/src/dipoles/DIPOLE_covariant.F +++ b/src/dipoles/DIPOLE_covariant.F @@ -19,7 +19,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip,direction_is_todo) use vec_operate, ONLY:k_periodic_idx use matrix_operate, ONLY:hermitian use parallel_m, ONLY:PAR_IND_DIPk_ibz,PAR_DIPk_ibz_index,PAR_IND_DIPk_ibz_ID,& -& PAR_DIPk_nbz,PAR_IND_CON_BANDS_DIP, PAR_IND_VAL_BANDS_DIP +& PAR_IND_CON_BANDS_DIP, PAR_IND_VAL_BANDS_DIP use com, ONLY:msg use D_lattice, ONLY:a use parser_m, ONLY:parser @@ -56,7 +56,7 @@ subroutine DIPOLE_covariant(Xen,Xk,Dip,direction_is_todo) ! ! Notice that DIP_S is defined in the BZ ! - call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,PAR_DIPk_nbz/)) + call DIPOLE_ALLOC_elemental('DIP_S',(/Dip%ib(2),Dip%ib(2),6,Xk%nbz/)) DIP_S=cZERO ! call DIPOLE_overlaps(Xk,Dip) diff --git a/src/dipoles/DIPOLE_driver.F b/src/dipoles/DIPOLE_driver.F index 33e67a4251..93acbf248d 100644 --- a/src/dipoles/DIPOLE_driver.F +++ b/src/dipoles/DIPOLE_driver.F @@ -101,7 +101,7 @@ subroutine DIPOLE_driver(Xen,Xk,Xq,Dip) ! ! , ,

, , S_overlap ! - if (len_trim(shifted_grids_obs)>0) call DIPOLE_shifted_grids(Xen,Xk,Dip) + if (len_trim(shifted_grids_obs)>0) call DIPOLE_shifted_grids(Xen,Xk,Dip) ! if (len_trim(covariant_obs)>0) call DIPOLE_covariant(Xen,Xk,Dip,direction_is_todo) ! @@ -188,7 +188,7 @@ subroutine DIPOLES_ppredux_and_symmetrize() call PP_redux_wait( DIP_P(:,:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) call PP_redux_wait( DIP_v(:,:,:,ik_mem,i_sp_pol),COMM=PAR_COM_DIPk_ibz_A2A%COMM) ! - if (STRING_match(Dip%computed,"M_spin")) then + if (STRING_match(Dip%computed,"M_spin").and.i_sp_pol==1) then do i_sp_pol_tmp=1,n_sp_pol call PP_redux_wait(DIP_spin(:,:,:,ik_mem,i_sp_pol_tmp,1),COMM=PAR_COM_DIPk_ibz_A2A%COMM) enddo diff --git a/src/dipoles/DIPOLE_overlaps.F b/src/dipoles/DIPOLE_overlaps.F index cb9f644312..157a75339d 100644 --- a/src/dipoles/DIPOLE_overlaps.F +++ b/src/dipoles/DIPOLE_overlaps.F @@ -120,7 +120,7 @@ subroutine DIPOLE_overlaps(Xk,Dip) idx_kp=k_periodic_idx(idx_kp,k_map) ! Bring it back by periodicity ikbzp=k_map%k_map_dir(idx_kp(1),idx_kp(2),idx_kp(3)) ! Find the corresponding index in the BZ ! - ! ! Find the index in the IBZ and the symmetry + ! Find the index in the IBZ and the symmetry ikp = Xk%sstar(ikbzp,1) isp = Xk%sstar(ikbzp,2) ! @@ -145,7 +145,7 @@ subroutine DIPOLE_overlaps(Xk,Dip) do ibp=1,Dip%ib(2) if(.not.PAR_IND_CON_BANDS_OVLP%element_1D(ibp)) cycle DIP_S(ib,ibp,id+(istep-1)*3,ikbz,i_sp_pol)= & - & Vstar_dot_V(wf_ng_overlaps*n_spinor,WF_ik(:,:,ib,i_sp_pol),WF_ikp(:,:,ibp,i_sp_pol)) +& Vstar_dot_V(wf_ng_overlaps*n_spinor,WF_ik(:,:,ib,i_sp_pol),WF_ikp(:,:,ibp,i_sp_pol)) enddo ! ibp enddo ! ib ! diff --git a/src/wf_and_fft/WF_shift_kpoint.F b/src/wf_and_fft/WF_shift_kpoint.F index a99fa230c2..79c9190f93 100644 --- a/src/wf_and_fft/WF_shift_kpoint.F +++ b/src/wf_and_fft/WF_shift_kpoint.F @@ -51,17 +51,17 @@ subroutine DEV_SUB_ALT(WF_shift_kpoint)(b_to_shift,ikbz,wf_shift,Xk,WF_k_in,WF_k !$cuf kernel do(4) <<<*,*>>> #endif do i_sp_pol=1,n_sp_pol - do i_b=b_to_shift(1),b_to_shift(2) - do i_spinor=1,n_spinor - do ig=1,wf_ng_1st_BZ - ! - if(WF_tmp(ig,1,i_b_ref,1)==cZERO) cycle - igp=DEV_VAR(G_m_G)(ig,g0_idx_val) - WF_k_out(igp,i_spinor,i_b,i_sp_pol)=WF_tmp(ig,i_spinor,i_b,i_sp_pol) - ! - enddo - enddo - enddo + do i_b=b_to_shift(1),b_to_shift(2) + do i_spinor=1,n_spinor + do ig=1,wf_ng_1st_BZ + ! + if(WF_tmp(ig,1,i_b_ref,1)==cZERO) cycle + igp=DEV_VAR(G_m_G)(ig,g0_idx_val) + WF_k_out(igp,i_spinor,i_b,i_sp_pol)=WF_tmp(ig,i_spinor,i_b,i_sp_pol) + ! + enddo + enddo + enddo enddo ! else From 3b61fa0e1cc820b07725ac6c07279cedcd43f9c7 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Fri, 23 Aug 2024 08:56:57 +0200 Subject: [PATCH 047/112] Version 5.2.0, Revision 23129, Hash 3a51862bc MODIFIED * configure include/version/version.m4 common/LEVELS_respect_degenerations.F Changes: - Now the degeneracies are lifted. Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_respect_degenerations.F | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 83ca4f8a30..e488134215 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23128 h.5a969f61e. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23129 h.3a51862bc. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23128 h.5a969f61e' -PACKAGE_STRING='Yambo 5.2.0 r.23128 h.5a969f61e' +PACKAGE_VERSION='5.2.0 r.23129 h.3a51862bc' +PACKAGE_STRING='Yambo 5.2.0 r.23129 h.3a51862bc' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23128 h.5a969f61e to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23129 h.3a51862bc to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23128 h.5a969f61e:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23129 h.3a51862bc:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23128 h.5a969f61e +Yambo configure 5.2.0 r.23129 h.3a51862bc generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23128 h.5a969f61e, which was +It was created by Yambo $as_me 5.2.0 r.23129 h.3a51862bc, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23128" -SHASH="5a969f61e" +SREVISION="23129" +SHASH="3a51862bc" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23128 h.5a969f61e, which was +This file was extended by Yambo $as_me 5.2.0 r.23129 h.3a51862bc, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23128 h.5a969f61e +Yambo config.status 5.2.0 r.23129 h.3a51862bc configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 565f1051d2..8448885e90 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23128 h.5a969f61e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23129 h.3a51862bc, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23128" -SHASH="5a969f61e" +SREVISION="23129" +SHASH="3a51862bc" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index 93b76908f9..d863571f46 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -41,7 +41,7 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) ! ! By defaulft I assume that the degeneration is not lifted ! - FORCE_it=.FALSE. + FORCE_it=.TRUE. ! ! Check for USER definitions !--------------------------- From 1b9fb3fdae97654767963d0b679476d8c8e40fed Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Fri, 23 Aug 2024 09:48:57 +0200 Subject: [PATCH 048/112] Version 5.2.0, Revision 23142, Hash 7a85112fd MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_setup.F Bugs: - Fixed erronous .TRUE. of Dip%force_v_g_space when g_space is used Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_setup.F | 10 ++++++---- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/configure b/configure index ac8074991c..e3175b2de4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23142 h.563f598be. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23143 h.7a85112fd. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23142 h.563f598be' -PACKAGE_STRING='Yambo 5.2.0 r.23142 h.563f598be' +PACKAGE_VERSION='5.2.0 r.23143 h.7a85112fd' +PACKAGE_STRING='Yambo 5.2.0 r.23143 h.7a85112fd' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23142 h.563f598be to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23143 h.7a85112fd to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23142 h.563f598be:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23143 h.7a85112fd:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23142 h.563f598be +Yambo configure 5.2.0 r.23143 h.7a85112fd generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23142 h.563f598be, which was +It was created by Yambo $as_me 5.2.0 r.23143 h.7a85112fd, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23142" -SHASH="563f598be" +SREVISION="23143" +SHASH="7a85112fd" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23142 h.563f598be, which was +This file was extended by Yambo $as_me 5.2.0 r.23143 h.7a85112fd, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23142 h.563f598be +Yambo config.status 5.2.0 r.23143 h.7a85112fd configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 1b39c8abbd..f6bc1386e8 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23142 h.563f598be, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23143 h.7a85112fd, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23142" -SHASH="563f598be" +SREVISION="23143" +SHASH="7a85112fd" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_setup.F b/src/dipoles/DIPOLE_setup.F index 457dc9b263..7d0ff0f8b4 100644 --- a/src/dipoles/DIPOLE_setup.F +++ b/src/dipoles/DIPOLE_setup.F @@ -76,11 +76,13 @@ subroutine DIPOLE_setup(Dip) ! Force to be calculated using the G-space !--------------------------------------------- call parser('PDirect' ,Dip%force_v_g_space) + if (.not.STRING_same(Dip%approach,"g-space v")) then #if defined _SC || defined _RT || defined _NL - Dip%force_v_g_space=Dip%force_v_g_space.or.l_sc_run.or.l_real_time.or.l_nl_optics + Dip%force_v_g_space=Dip%force_v_g_space.or.l_sc_run.or.l_real_time.or.l_nl_optics #endif - ! For some reason (to understand) also in the PL case Dip%force_v_g_space=.TRUE. - Dip%force_v_g_space =Dip%force_v_g_space.or.l_BS_photolum + ! For some reason (to understand) also in the PL case Dip%force_v_g_space=.TRUE. + Dip%force_v_g_space =Dip%force_v_g_space.or.l_BS_photolum + endif ! ! Components based on approach !------------------------------ @@ -106,7 +108,7 @@ subroutine DIPOLE_setup(Dip) endif ! ! ... V - if (Dip%force_v_g_space) g_space_obs=trim(g_space_obs)//" V" + if (Dip%force_v_g_space.and..not.STRING_match(g_space_obs,"V")) g_space_obs=trim(g_space_obs)//" V" ! ! ... P2 #if defined _RT From 3281c34395d3d536b6abf26eff7fe875b901dba7 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Mon, 26 Aug 2024 09:24:52 +0200 Subject: [PATCH 049/112] Saving small changes --- src/bse/K_diago_driver.F | 2 +- src/bse/K_stored_in_a_nest_matrix.F | 5 +++-- src/bse/K_stored_in_a_slepc_matrix.F | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 344b23dbf6..3d3249c1f3 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -411,7 +411,7 @@ subroutine local_alloc(what) YAMBO_ALLOC(BS_E_real,(BSS_n_eig)) #if defined _SLEPC && !defined _NL if(l_slepc) then - if (BS_K_coupling) then + if (BS_K_coupling.and.BSS_write_eig_2_db) then YAMBO_ALLOC(BS_mat,(BS_H_dim,BSS_n_eig)) else YAMBO_ALLOC(BS_mat,(BS_K_dim(i_BS_mat),BSS_n_eig)) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 1912bd2875..6b63a9df2d 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -78,7 +78,8 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! Fill the values of the explicit submatrices of the nest matrix ! live_msg="Redistribute BSE in slepc_mat" - if (BSS_kernel_last_stored_block0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks @@ -137,7 +138,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) ! enddo ! - ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore + ! After the re-distribution into slepc_mat the %mat are (in some cases) not needed anymore ! if ( i_B>BSS_kernel_last_stored_block) then call K_block_free(i_B,"matonly") diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 23c33b177f..27d1f07ce8 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -68,7 +68,8 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! filling of the slepc_mat ! live_msg="Redistribute BSE in slepc_mat" - if (BSS_kernel_last_stored_block0) call live_timing(trim(live_msg),n_BS_blks) ! do i_B=1,n_BS_blks @@ -153,7 +154,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) ! enddo ! - ! After the re-distribution into slepc_mat the %mat's are (in some cases) not needed anymore + ! After the re-distribution into slepc_mat the %mat are (in some cases) not needed anymore ! if ( i_B>BSS_kernel_last_stored_block) then call K_block_free(i_B,"matonly") From 81e39e439b661ab8ab62b69adbbf8d412c5492a5 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Tue, 17 Sep 2024 11:25:34 +0200 Subject: [PATCH 050/112] Version 5.2.0, Revision 23130, Hash 3b61fa0e1 MODIFIED * configure include/version/version.m4 common/LEVELS_respect_degenerations.F interface/INIT_load.F Additions: - Added flag SkipDegFix to impose the code to NOT fix the levels that breaks the energy degeneration Patch sent by: Andrea Marini --- configure | 22 ++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_respect_degenerations.F | 24 ++++++++++++----------- src/interface/INIT_load.F | 1 + 4 files changed, 28 insertions(+), 25 deletions(-) diff --git a/configure b/configure index e488134215..0a0f9ecefc 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23129 h.3a51862bc. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23130 h.3b61fa0e1. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23129 h.3a51862bc' -PACKAGE_STRING='Yambo 5.2.0 r.23129 h.3a51862bc' +PACKAGE_VERSION='5.2.0 r.23130 h.3b61fa0e1' +PACKAGE_STRING='Yambo 5.2.0 r.23130 h.3b61fa0e1' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23129 h.3a51862bc to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23130 h.3b61fa0e1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23129 h.3a51862bc:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23130 h.3b61fa0e1:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23129 h.3a51862bc +Yambo configure 5.2.0 r.23130 h.3b61fa0e1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23129 h.3a51862bc, which was +It was created by Yambo $as_me 5.2.0 r.23130 h.3b61fa0e1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23129" -SHASH="3a51862bc" +SREVISION="23130" +SHASH="3b61fa0e1" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23129 h.3a51862bc, which was +This file was extended by Yambo $as_me 5.2.0 r.23130 h.3b61fa0e1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23129 h.3a51862bc +Yambo config.status 5.2.0 r.23130 h.3b61fa0e1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 8448885e90..0906399f69 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23129 h.3a51862bc, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23130 h.3b61fa0e1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23129" -SHASH="3a51862bc" +SREVISION="23130" +SHASH="3b61fa0e1" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index d863571f46..23bcfb05a0 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -14,6 +14,7 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) use X_m, ONLY:X_t use DIPOLES, ONLY:DIPOLE_t use QP_m, ONLY:QP_n_G_bands + use parser_m, ONLY:parser #if defined _SC use SC, ONLY:SC_bands #endif @@ -36,12 +37,13 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) ! Work Space ! integer :: B_user(2),B_fixed(2),i_f - logical :: l_USER_fields(16),FORCE_it + logical :: l_USER_fields(16),SKIP_it character(2) :: X_str ! - ! By defaulft I assume that the degeneration is not lifted + ! By defaulft I assume that the degeneration is lifted + ! but if the flag SkipDegFix is activated this operation is not done ! - FORCE_it=.TRUE. + call parser('SkipDegFix',SKIP_it) ! ! Check for USER definitions !--------------------------- @@ -60,44 +62,44 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) if (i_f==3) X_str="Xd" if (i_f==4) X_str="Xp" if (i_f==5) X_str="Xm" - call fix_and_message(X_str,FORCE_it,X(i_f)%ib) + call fix_and_message(X_str,.not.SKIP_it,X(i_f)%ib) endif if (i_f==6) then call levels_check(E,Dip%ib) - call fix_and_message("Dipoles",FORCE_it,Dip%ib) + call fix_and_message("Dipoles",.not.SKIP_it,Dip%ib) endif #if defined _RT || defined _NL if (i_f==8) then call levels_check(E,RT_bands) - call fix_and_message("Real-Time",FORCE_it,RT_bands) + call fix_and_message("Real-Time",.not.SKIP_it,RT_bands) endif #endif if (i_f==7) then call levels_check(E,BS_bands) - call fix_and_message("BS",FORCE_it,BS_bands) + call fix_and_message("BS",.not.SKIP_it,BS_bands) endif #if defined _SC if (i_f==7) then call levels_check(E,SC_bands) - call fix_and_message("SC",FORCE_it,SC_bands) + call fix_and_message("SC",.not.SKIP_it,SC_bands) endif #endif #if defined _NL if (i_f==10) then call levels_check(E,NL_bands) - call fix_and_message("NL",FORCE_it,NL_bands) + call fix_and_message("NL",.not.SKIP_it,NL_bands) endif #endif #if defined _SC || defined _RT || defined _QED || defined _NL if (i_f==11) then call levels_check(E,COLL_bands) - call fix_and_message("COLLISIONS",FORCE_it,COLL_bands) + call fix_and_message("COLLISIONS",.not.SKIP_it,COLL_bands) endif #endif #if defined _QED if (i_f==12) then call levels_check(E,QP_n_G_bands) - call fix_and_message("QED",FORCE_it,QP_n_G_bands) + call fix_and_message("QED",.not.SKIP_it,QP_n_G_bands) endif #endif ! diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index 3709750764..1ef095d684 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -205,6 +205,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) #endif call it('f',defs,'WFbuffIO','[IO] Wave-functions buffered I/O',verb_level=V_io) call it('f',defs,'NoDiagSC','New setup for non-diagonal supercells',verb_level=V_general) + call it('f',defs,'SkipDegFix','Do not force the code to impose the energy levels to respect their degeneracy',verb_level=V_general) ! ! Parallel Setup ! From af2f6ebf71a332b94084d347f53fc861c867b92f Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Tue, 24 Sep 2024 11:27:38 +0200 Subject: [PATCH 051/112] Version 5.2.0, Revision 23335, Hash 6c194b1d04 MODIFIED * configure include/version/version.m4 Changes: - [yambo] configure re-generated Patch sent by: Davide Sangalli --- configure | 32 +++++++++++++++++++------------- include/version/version.m4 | 6 +++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 2878f5f098..d56f6974e6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23297 h.c470f668ea. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23335 h.6c194b1d04. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23297 h.c470f668ea' -PACKAGE_STRING='Yambo 5.2.0 r.23297 h.c470f668ea' +PACKAGE_VERSION='5.2.0 r.23335 h.6c194b1d04' +PACKAGE_STRING='Yambo 5.2.0 r.23335 h.6c194b1d04' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -690,6 +690,8 @@ MPI_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -1604,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23297 h.c470f668ea to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23335 h.6c194b1d04 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23297 h.c470f668ea:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23335 h.6c194b1d04:";; esac cat <<\_ACEOF @@ -1882,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23297 h.c470f668ea +Yambo configure 5.2.0 r.23335 h.6c194b1d04 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2511,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23297 h.c470f668ea, which was +It was created by Yambo $as_me 5.2.0 r.23335 h.6c194b1d04, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3269,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23297" -SHASH="c470f668ea" +SREVISION="23335" +SHASH="6c194b1d04" @@ -15604,19 +15606,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -15696,6 +15700,8 @@ fi + + # @@ -16606,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23297 h.c470f668ea, which was +This file was extended by Yambo $as_me 5.2.0 r.23335 h.6c194b1d04, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16670,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23297 h.c470f668ea +Yambo config.status 5.2.0 r.23335 h.6c194b1d04 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a68211e1d6..5d1990a5d5 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23297 h.c470f668ea, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23335 h.6c194b1d04, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23297" -SHASH="c470f668ea" +SREVISION="23335" +SHASH="6c194b1d04" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 9a7353b1719860a385bdaf3933725d0a398d6596 Mon Sep 17 00:00:00 2001 From: marini Date: Wed, 2 Oct 2024 13:45:04 +0200 Subject: [PATCH 052/112] Version 5.2.0, Revision 23127, Hash 5d3f15613 MODIFIED * configure include/version/version.m4 sbin/check_packages.sh Bugs: - Check of missing packages fixed. Patch sent by: marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- sbin/check_packages.sh | 3 ++- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/configure b/configure index b0dd9cfe32..dd32246e0c 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23126 h.25b9bbd00a. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23127 h.5d3f15613. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23126 h.25b9bbd00a' -PACKAGE_STRING='Yambo 5.2.0 r.23126 h.25b9bbd00a' +PACKAGE_VERSION='5.2.0 r.23127 h.5d3f15613' +PACKAGE_STRING='Yambo 5.2.0 r.23127 h.5d3f15613' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23126 h.25b9bbd00a to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23127 h.5d3f15613 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23126 h.25b9bbd00a:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23127 h.5d3f15613:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23126 h.25b9bbd00a +Yambo configure 5.2.0 r.23127 h.5d3f15613 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23126 h.25b9bbd00a, which was +It was created by Yambo $as_me 5.2.0 r.23127 h.5d3f15613, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="25b9bbd00a" +SREVISION="23127" +SHASH="5d3f15613" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23126 h.25b9bbd00a, which was +This file was extended by Yambo $as_me 5.2.0 r.23127 h.5d3f15613, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23126 h.25b9bbd00a +Yambo config.status 5.2.0 r.23127 h.5d3f15613 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 566b367ef4..ee08a8c0c4 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23126 h.25b9bbd00a, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23127 h.5d3f15613, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23126" -SHASH="25b9bbd00a" +SREVISION="23127" +SHASH="5d3f15613" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/sbin/check_packages.sh b/sbin/check_packages.sh index 336a9e6a99..2cc73f3785 100755 --- a/sbin/check_packages.sh +++ b/sbin/check_packages.sh @@ -24,13 +24,14 @@ do MISS="$MISS $app" fi done -if [ ! -z $MISS ] ; then +if [ ! -z "$MISS" ] ; then repeat "=" echo -e "${RED}Missing required packages:${NC}" repeat "=" echo $MISS echo fi +MISS=" " # for app in libmkl-avx libmkl-avx2 libmkl-avx512 libmkl-core libmkl-def \ libmkl-dev libmkl-gf-ilp64 libmkl-gf-lp64 libmkl-gnu-thread From 7e387d740371f1fd535b75655d0b731c77349725 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 2 Oct 2024 22:45:29 +0200 Subject: [PATCH 053/112] Version 5.2.0, Revision 23127, Hash 5d3f156137 MODIFIED * configure include/version/version.m4 lib/qe_pseudo/DOUBLE_project.dep Bugs: - [dep files] removed wrong objects.o Patch sent by: Davide Sangalli --- configure | 20 ++++++++++---------- include/version/version.m4 | 4 ++-- lib/qe_pseudo/DOUBLE_project.dep | 2 -- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/configure b/configure index dd32246e0c..f4fe1dc7a8 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23127 h.5d3f15613. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23127 h.5d3f156137. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23127 h.5d3f15613' -PACKAGE_STRING='Yambo 5.2.0 r.23127 h.5d3f15613' +PACKAGE_VERSION='5.2.0 r.23127 h.5d3f156137' +PACKAGE_STRING='Yambo 5.2.0 r.23127 h.5d3f156137' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23127 h.5d3f15613 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23127 h.5d3f156137 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23127 h.5d3f15613:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23127 h.5d3f156137:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23127 h.5d3f15613 +Yambo configure 5.2.0 r.23127 h.5d3f156137 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23127 h.5d3f15613, which was +It was created by Yambo $as_me 5.2.0 r.23127 h.5d3f156137, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3264,7 +3264,7 @@ SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" SREVISION="23127" -SHASH="5d3f15613" +SHASH="5d3f156137" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23127 h.5d3f15613, which was +This file was extended by Yambo $as_me 5.2.0 r.23127 h.5d3f156137, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23127 h.5d3f15613 +Yambo config.status 5.2.0 r.23127 h.5d3f156137 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index ee08a8c0c4..b43029dafe 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23127 h.5d3f15613, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23127 h.5d3f156137, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" SREVISION="23127" -SHASH="5d3f15613" +SHASH="5d3f156137" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/qe_pseudo/DOUBLE_project.dep b/lib/qe_pseudo/DOUBLE_project.dep index fbc606fa4d..68b4c8e50c 100644 --- a/lib/qe_pseudo/DOUBLE_project.dep +++ b/lib/qe_pseudo/DOUBLE_project.dep @@ -39,5 +39,3 @@ us_module.o uspp.o ylmr2.o - objects.o - From 0aefd4da0c76ae54cb62540094fc77d9c12f518c Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 3 Oct 2024 12:09:47 +0200 Subject: [PATCH 054/112] Version 5.2.0, Revision 23131, Hash 81e39e439 MODIFIED * configure include/version/version.m4 common/LEVELS_mirror.F Bugs: - Fixed small bug in LEVELS_mirror.F related to the RT/SC mirroring during Collisions evaluation Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_mirror.F | 10 ++++++++-- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 0a0f9ecefc..73dbecefcf 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23130 h.3b61fa0e1. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23131 h.81e39e439. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23130 h.3b61fa0e1' -PACKAGE_STRING='Yambo 5.2.0 r.23130 h.3b61fa0e1' +PACKAGE_VERSION='5.2.0 r.23131 h.81e39e439' +PACKAGE_STRING='Yambo 5.2.0 r.23131 h.81e39e439' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23130 h.3b61fa0e1 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23131 h.81e39e439 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23130 h.3b61fa0e1:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23131 h.81e39e439:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23130 h.3b61fa0e1 +Yambo configure 5.2.0 r.23131 h.81e39e439 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23130 h.3b61fa0e1, which was +It was created by Yambo $as_me 5.2.0 r.23131 h.81e39e439, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23130" -SHASH="3b61fa0e1" +SREVISION="23131" +SHASH="81e39e439" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23130 h.3b61fa0e1, which was +This file was extended by Yambo $as_me 5.2.0 r.23131 h.81e39e439, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23130 h.3b61fa0e1 +Yambo config.status 5.2.0 r.23131 h.81e39e439 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 0906399f69..8909ffe46d 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23130 h.3b61fa0e1, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23131 h.81e39e439, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23130" -SHASH="3b61fa0e1" +SREVISION="23131" +SHASH="81e39e439" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_mirror.F b/src/common/LEVELS_mirror.F index 5373f40d4e..e923c581a8 100644 --- a/src/common/LEVELS_mirror.F +++ b/src/common/LEVELS_mirror.F @@ -93,8 +93,14 @@ subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) #if defined _NL if(i1==10) SCATT_bands=NL_bands #endif -#if defined _SC || defined _RT || defined _QED || defined _NL - if(i1==11) SCATT_bands=COLL_bands +#if defined _SC + if(i1==11) SC_bands =COLL_bands +#endif +#if defined _RT || defined _QED || defined _NL + if(i1==11) then + RT_bands =COLL_bands + SCATT_bands=COLL_bands + endif #endif #if defined _QED if(i1==12) SCATT_bands=QP_n_G_bands From b3508d420d73d5342b07f17a76e93c2d6c061c02 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Fri, 4 Oct 2024 16:54:42 +0200 Subject: [PATCH 055/112] Version 5.2.0, Revision 23132, Hash 0aefd4da0 MODIFIED * configure include/version/version.m4 common/LEVELS_mirror.F Bugs: - Bug fixed in the mirroring of COLLbands in the case of SC collisions. Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_mirror.F | 5 ++++- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 73dbecefcf..198cf71ddc 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23131 h.81e39e439. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23132 h.0aefd4da0. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23131 h.81e39e439' -PACKAGE_STRING='Yambo 5.2.0 r.23131 h.81e39e439' +PACKAGE_VERSION='5.2.0 r.23132 h.0aefd4da0' +PACKAGE_STRING='Yambo 5.2.0 r.23132 h.0aefd4da0' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23131 h.81e39e439 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23132 h.0aefd4da0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23131 h.81e39e439:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23132 h.0aefd4da0:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23131 h.81e39e439 +Yambo configure 5.2.0 r.23132 h.0aefd4da0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23131 h.81e39e439, which was +It was created by Yambo $as_me 5.2.0 r.23132 h.0aefd4da0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23131" -SHASH="81e39e439" +SREVISION="23132" +SHASH="0aefd4da0" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23131 h.81e39e439, which was +This file was extended by Yambo $as_me 5.2.0 r.23132 h.0aefd4da0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23131 h.81e39e439 +Yambo config.status 5.2.0 r.23132 h.0aefd4da0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 8909ffe46d..b5711cfe43 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23131 h.81e39e439, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23132 h.0aefd4da0, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23131" -SHASH="81e39e439" +SREVISION="23132" +SHASH="0aefd4da0" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_mirror.F b/src/common/LEVELS_mirror.F index e923c581a8..053e6edf87 100644 --- a/src/common/LEVELS_mirror.F +++ b/src/common/LEVELS_mirror.F @@ -94,7 +94,10 @@ subroutine LEVELS_mirror(what,E,X,Dip,l_USER_field) if(i1==10) SCATT_bands=NL_bands #endif #if defined _SC - if(i1==11) SC_bands =COLL_bands + if(i1==11) then + SC_bands =COLL_bands + SCATT_bands=COLL_bands + endif #endif #if defined _RT || defined _QED || defined _NL if(i1==11) then From 9871c7dfba17839fd2d804a825dd2d0e84903d93 Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Mon, 7 Oct 2024 13:47:21 +0200 Subject: [PATCH 056/112] Version 5.2.0, Revision 23133, Hash b3508d420d MODIFIED * io/variables_X.F io_parallel/variables_BS.F io_serial/variables_BS.F Changes: - Removed unused database variables Patch sent by: Andrea Marini --- src/io/variables_X.F | 5 ----- src/io_parallel/variables_BS.F | 5 +---- src/io_serial/variables_BS.F | 11 +---------- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/io/variables_X.F b/src/io/variables_X.F index 602c50efef..98df33f26d 100644 --- a/src/io/variables_X.F +++ b/src/io/variables_X.F @@ -24,7 +24,6 @@ integer function variables_X(ID,local_desc,X,EM1S_NOSOC) ! Work Space ! integer ::sec_size,tmp_ib(2) - logical ::local_long_gauge character(schlen) ::X_label,VAR_NAME ! call IO_desc_reset(local_desc) @@ -89,10 +88,6 @@ integer function variables_X(ID,local_desc,X,EM1S_NOSOC) & VAR="RL vectors in the sum",I0=X%ngostnts,WARN=.true.,OP=(/"<="/),DESCRIPTOR=local_desc) call io_variable_elemental(ID,& & VAR="[r,Vnl] included",L0=X%Vnl_included,WARN=.true.,OP=(/"=="/),DESCRIPTOR=local_desc) - ! - if (.not.ver_is_gt_or_eq(ID,(/3,0,9/)).and.read_is_on(ID)) then - call io_variable_elemental(ID,VAR="Longitudinal Gauge",L0=local_long_gauge,DESCRIPTOR=local_desc) - endif ! call io_variable_elemental(ID,& & VAR="Field direction",R1=X%q0,CHECK=.true.,OP=(/"==","==","=="/),DESCRIPTOR=local_desc) diff --git a/src/io_parallel/variables_BS.F b/src/io_parallel/variables_BS.F index 26e5dee015..080dff5e12 100644 --- a/src/io_parallel/variables_BS.F +++ b/src/io_parallel/variables_BS.F @@ -34,7 +34,7 @@ integer function variables_BS(ID,iq,desc,CLOSE_the_menu,X) ! Work Space ! logical ::res_corr_disk,res_exch_disk,cpl_disk,& -& cpl_corr_disk,cpl_exch_disk,td_hf_disk,local_long_gauge +& cpl_corr_disk,cpl_exch_disk,td_hf_disk ! variables_BS=0 ! @@ -133,9 +133,6 @@ integer function variables_BS(ID,iq,desc,CLOSE_the_menu,X) call def_variable_elemental(ID,"BS_W_DIP_rVnl",1,LP_YIO,0) call io_variable_elemental(ID,& & VAR="[W] [r,Vnl] included",L0=X%Vnl_included,WARN=.true.,OP=(/"=="/),DESCRIPTOR=desc) - ! - call def_variable_elemental(ID,"BS_W_DIP_rVnl",1,LP_YIO,0) - call io_variable_elemental(ID,VAR="[W] Longitudinal Gauge",L0=local_long_gauge,DESCRIPTOR=desc) ! call def_variable_elemental(ID,"BS_W_q_dir",3,SP,0) call io_variable_elemental(ID,VAR="[W] Field direction",R1=X%q0,CHECK=.true.,OP=(/"==","==","=="/),DESCRIPTOR=desc) diff --git a/src/io_serial/variables_BS.F b/src/io_serial/variables_BS.F index 4424696e09..603dc1c0ed 100644 --- a/src/io_serial/variables_BS.F +++ b/src/io_serial/variables_BS.F @@ -32,7 +32,7 @@ integer function variables_BS(ID,iq,desc,CLOSE_the_menu,X) ! integer ::var_size logical ::res_corr_disk,res_exch_disk,cpl_disk,& -& cpl_corr_disk,cpl_exch_disk,td_hf_disk,local_long_gauge +& cpl_corr_disk,cpl_exch_disk,td_hf_disk ! ! PARS1 ! @@ -110,15 +110,6 @@ integer function variables_BS(ID,iq,desc,CLOSE_the_menu,X) & VAR="[W] RL vectors in the sum",I0=X%ngostnts,WARN=.true.,OP=(/"<="/),DESCRIPTOR=desc) call io_variable_elemental(ID,& & VAR="[W] [r,Vnl] included",L0=X%Vnl_included,WARN=.true.,OP=(/"=="/),DESCRIPTOR=desc) - ! - if (ver_is_gt_or_eq(ID,(/3,0,9/)).and..not.ver_is_gt_or_eq(ID,revision=626)) then - ! - ! v 3.0.8: Inclusion of %long_gauge - ! - call io_variable_elemental(ID,& -& VAR="[W] Longitudinal Gauge",L0=local_long_gauge,DESCRIPTOR=desc) - ! - endif ! call io_variable_elemental(ID,VAR="[W] Field direction",R1=X%q0,CHECK=.true.,OP=(/"==","==","=="/),DESCRIPTOR=desc) call def_variable_elemental(ID,"",0,0,0) From 44c46987385d172c62dabdfe0256459b976bd4bc Mon Sep 17 00:00:00 2001 From: Andrea Ferretti Date: Mon, 7 Oct 2024 19:12:32 +0200 Subject: [PATCH 057/112] openmp and memory consistency fixes --- src/pol_function/X_irredux.F | 2 +- src/pol_function/X_irredux_residuals.F | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pol_function/X_irredux.F b/src/pol_function/X_irredux.F index 07c53f9454..3818c8d324 100644 --- a/src/pol_function/X_irredux.F +++ b/src/pol_function/X_irredux.F @@ -134,7 +134,7 @@ subroutine X_irredux(iq,what,X_par,Xen,Xk,Xw,X,Dip) ! if (iq/=current_iq) then ! - n_poles=X_eh_setup(-iq,X,Xen,Xk,minmax_ehe) + n_poles=X_eh_setup(-iq,X,Xen,Xk,minmax_ehe(:,PAR_COM_X_WORLD%CPU_id+1)) ! if (n_poles==0) call warning(' [CPU '//trim(intc(myid))//'] has no poles') ! diff --git a/src/pol_function/X_irredux_residuals.F b/src/pol_function/X_irredux_residuals.F index bd8241aaa6..acda2ccfa1 100644 --- a/src/pol_function/X_irredux_residuals.F +++ b/src/pol_function/X_irredux_residuals.F @@ -195,7 +195,7 @@ subroutine X_irredux_residuals(Xen,Xk,X,Dip,i_cg,iq,Xo_res,Xo_scatt) enddo enddo #else - !DEV_OMP parallel do default(shared), private(ig2) + !DEV_OMP parallel do default(shared), private(ig2,ROWS) do ig2=X_cols(1),X_cols(2) ROWS=(/X_rows(1),min(ig2,X_rows(2))/) call V_plus_alpha_V(ROWS(2)-ROWS(1)+1,Z_eh_occ*Xo_scatt%rhotw(ig2),& From ec865dce477d7ddb157fd32f280917e5e554253e Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Thu, 10 Oct 2024 08:44:46 +0200 Subject: [PATCH 058/112] Version 5.2.0, Revision 23161, Hash 5d4aab17f MODIFIED * configure include/version/version.m4 Patch sent by: Andrea Marini --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 198cf71ddc..786f087aa0 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23132 h.0aefd4da0. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23162 h.5d4aab17f. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23132 h.0aefd4da0' -PACKAGE_STRING='Yambo 5.2.0 r.23132 h.0aefd4da0' +PACKAGE_VERSION='5.2.0 r.23162 h.5d4aab17f' +PACKAGE_STRING='Yambo 5.2.0 r.23162 h.5d4aab17f' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23132 h.0aefd4da0 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23162 h.5d4aab17f to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23132 h.0aefd4da0:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23162 h.5d4aab17f:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23132 h.0aefd4da0 +Yambo configure 5.2.0 r.23162 h.5d4aab17f generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23132 h.0aefd4da0, which was +It was created by Yambo $as_me 5.2.0 r.23162 h.5d4aab17f, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23132" -SHASH="0aefd4da0" +SREVISION="23162" +SHASH="5d4aab17f" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23132 h.0aefd4da0, which was +This file was extended by Yambo $as_me 5.2.0 r.23162 h.5d4aab17f, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23132 h.0aefd4da0 +Yambo config.status 5.2.0 r.23162 h.5d4aab17f configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index b5711cfe43..cd95929a1a 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23132 h.0aefd4da0, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23162 h.5d4aab17f, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23132" -SHASH="0aefd4da0" +SREVISION="23162" +SHASH="5d4aab17f" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From a89c09e0132650ff8282310434e4e480aebdbe1d Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 9 Oct 2024 14:23:14 +0200 Subject: [PATCH 059/112] Version 5.2.0, Revision 23141, Hash 1655f53fe3 MODIFIED * configure include/version/version.m4 p2y/p2y_atmproj.F Bugs: - [p2y] Fix to atmproj subroutine from Savio Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- interfaces/p2y/p2y_atmproj.F | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 786f087aa0..9d58d9d738 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23162 h.5d4aab17f. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23141 h.1655f53fe3. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23162 h.5d4aab17f' -PACKAGE_STRING='Yambo 5.2.0 r.23162 h.5d4aab17f' +PACKAGE_VERSION='5.2.0 r.23141 h.1655f53fe3' +PACKAGE_STRING='Yambo 5.2.0 r.23141 h.1655f53fe3' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23162 h.5d4aab17f to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23141 h.1655f53fe3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23162 h.5d4aab17f:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23141 h.1655f53fe3:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23162 h.5d4aab17f +Yambo configure 5.2.0 r.23141 h.1655f53fe3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23162 h.5d4aab17f, which was +It was created by Yambo $as_me 5.2.0 r.23141 h.1655f53fe3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23162" -SHASH="5d4aab17f" +SREVISION="23141" +SHASH="1655f53fe3" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23162 h.5d4aab17f, which was +This file was extended by Yambo $as_me 5.2.0 r.23141 h.1655f53fe3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23162 h.5d4aab17f +Yambo config.status 5.2.0 r.23141 h.1655f53fe3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index cd95929a1a..df18f40775 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23162 h.5d4aab17f, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23141 h.1655f53fe3, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23162" -SHASH="5d4aab17f" +SREVISION="23141" +SHASH="1655f53fe3" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/interfaces/p2y/p2y_atmproj.F b/interfaces/p2y/p2y_atmproj.F index 859d80f55c..5c40a684c4 100644 --- a/interfaces/p2y/p2y_atmproj.F +++ b/interfaces/p2y/p2y_atmproj.F @@ -3,7 +3,7 @@ ! ! Copyright (C) 2018 The Yambo Team ! -! Authors (see AUTHORS file for details): DSDV +! Authors (see AUTHORS file for details): DS DV ! subroutine p2y_atmproj(filename,k) ! @@ -113,7 +113,7 @@ subroutine fill_atomic_table() ! ! Case without SOC ! - do im=1,2*il-1 + do im=1,2*il+1 !DEBUG < !write(*,*)ia,itype,il-1._SP,real(im-il,SP) !DEBUG > From efbf073452c7d0e2fbdd4646392a0753531bd7e6 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 11 Oct 2024 10:37:10 +0200 Subject: [PATCH 060/112] Version 5.2.0, Revision 23163, Hash a89c09e013 MODIFIED * configure include/version/version.m4 io/io_header.F Bugs: - [yambo] tentative fix for issue #140 Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/io/io_header.F | 3 ++- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 9d58d9d738..f1134ae1b2 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23141 h.1655f53fe3. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23163 h.a89c09e013. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23141 h.1655f53fe3' -PACKAGE_STRING='Yambo 5.2.0 r.23141 h.1655f53fe3' +PACKAGE_VERSION='5.2.0 r.23163 h.a89c09e013' +PACKAGE_STRING='Yambo 5.2.0 r.23163 h.a89c09e013' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23141 h.1655f53fe3 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23163 h.a89c09e013 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23141 h.1655f53fe3:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23163 h.a89c09e013:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23141 h.1655f53fe3 +Yambo configure 5.2.0 r.23163 h.a89c09e013 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23141 h.1655f53fe3, which was +It was created by Yambo $as_me 5.2.0 r.23163 h.a89c09e013, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23141" -SHASH="1655f53fe3" +SREVISION="23163" +SHASH="a89c09e013" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23141 h.1655f53fe3, which was +This file was extended by Yambo $as_me 5.2.0 r.23163 h.a89c09e013, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23141 h.1655f53fe3 +Yambo config.status 5.2.0 r.23163 h.a89c09e013 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index df18f40775..7a93b6fd00 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23141 h.1655f53fe3, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23163 h.a89c09e013, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23141" -SHASH="1655f53fe3" +SREVISION="23163" +SHASH="a89c09e013" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/io/io_header.F b/src/io/io_header.F index d733de65db..7bf6826468 100644 --- a/src/io/io_header.F +++ b/src/io/io_header.F @@ -418,7 +418,8 @@ subroutine XC_KIND_io(what,VAR_,string_,desc_) endif endif else - call io_elemental(ID,CH0=loaded_WF_xc_string,VAR=desc_,WARN=WARN,OP=(/"=="/)) + !call io_elemental(ID,CH0=loaded_WF_xc_string,VAR=desc_,WARN=WARN,OP=(/"=="/)) + call io_elemental(ID,CH0=string_,VAR=desc_,WARN=WARN,OP=(/"=="/)) endif call io_elemental(ID,VAR="",VAR_SZ=0,MENU=0) ! From dee9922c5a458a9e399267129c9ad417d0bc35ed Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 11 Oct 2024 10:38:30 +0200 Subject: [PATCH 061/112] Version 5.2.0, Revision 23164, Hash efbf073452 MODIFIED * configure include/version/version.m4 modules/mod_global_XC.F qp_control/QP_apply.F qp_control/QP_apply_the_ACTION.F real_time_control/RT_apply.F Bugs: - [yambo] Related to issue #140 Improving the logic of mod_global_xc. When QP corrections are applied only energies are touched and with a dedicated subroutine. Patch sent by: Davide Sangalli --- configure | 22 ++++++------ include/version/version.m4 | 6 ++-- src/modules/mod_global_XC.F | 51 +++++++++++++--------------- src/qp_control/QP_apply.F | 4 +-- src/qp_control/QP_apply_the_ACTION.F | 2 +- src/real_time_control/RT_apply.F | 4 +-- 6 files changed, 42 insertions(+), 47 deletions(-) diff --git a/configure b/configure index f1134ae1b2..310a76ad9b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23163 h.a89c09e013. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23164 h.efbf073452. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23163 h.a89c09e013' -PACKAGE_STRING='Yambo 5.2.0 r.23163 h.a89c09e013' +PACKAGE_VERSION='5.2.0 r.23164 h.efbf073452' +PACKAGE_STRING='Yambo 5.2.0 r.23164 h.efbf073452' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23163 h.a89c09e013 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23164 h.efbf073452 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23163 h.a89c09e013:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23164 h.efbf073452:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23163 h.a89c09e013 +Yambo configure 5.2.0 r.23164 h.efbf073452 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23163 h.a89c09e013, which was +It was created by Yambo $as_me 5.2.0 r.23164 h.efbf073452, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23163" -SHASH="a89c09e013" +SREVISION="23164" +SHASH="efbf073452" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23163 h.a89c09e013, which was +This file was extended by Yambo $as_me 5.2.0 r.23164 h.efbf073452, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23163 h.a89c09e013 +Yambo config.status 5.2.0 r.23164 h.efbf073452 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 7a93b6fd00..1d66a7cd32 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23163 h.a89c09e013, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23164 h.efbf073452, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23163" -SHASH="a89c09e013" +SREVISION="23164" +SHASH="efbf073452" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/modules/mod_global_XC.F b/src/modules/mod_global_XC.F index afde58dd0c..887e7f8cde 100644 --- a/src/modules/mod_global_XC.F +++ b/src/modules/mod_global_XC.F @@ -109,14 +109,13 @@ module global_XC ! contains ! - subroutine setup_global_XC(what,kind,xc_functional,perturbation,exx_fraction,exx_screening,STRING) + subroutine setup_global_XC(what,kind,xc_functional,perturbation,exx_fraction,exx_screening) character(*) :: what integer :: kind integer, optional :: xc_functional integer, optional :: perturbation real(SP), optional :: exx_fraction real(SP), optional :: exx_screening - character(*), optional :: STRING ! ! Work Space ! @@ -136,33 +135,21 @@ subroutine setup_global_XC(what,kind,xc_functional,perturbation,exx_fraction,ex G_kind=kind G_xc_functional=local_xc_functional G_perturbation=local_perturbation - if (present(STRING)) then - G_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation,STRING) - else - G_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) - endif + G_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) endif ! if (what=='X'.or.what=='preset') then X_kind=kind X_xc_functional=local_xc_functional X_perturbation=local_perturbation - if (present(STRING)) then - X_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation,STRING) - else - X_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) - endif + X_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) endif ! if (what=='K'.or.what=='preset') then K_kind=kind K_xc_functional=local_xc_functional K_perturbation=local_perturbation - if (present(STRING)) then - K_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation,STRING) - else - K_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) - endif + K_E_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) endif ! if (what=='WF'.or.what=='preset') then @@ -174,11 +161,7 @@ subroutine setup_global_XC(what,kind,xc_functional,perturbation,exx_fraction,ex ! loaded_WF_xc_string represents the xc kind of the WF that are loaded trough wf_load. ! G/X/K/Dipole_WF_xc_string, instead, may be overwritten by the value written in the databases. ! - if (present(STRING)) then - loaded_WF_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation,STRING) - else - loaded_WF_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) - endif + loaded_WF_xc_string=global_XC_string(kind,local_xc_functional,local_perturbation) ! if (what=='preset') G_WF_xc_string =loaded_WF_xc_string if (what=='preset') X_WF_xc_string =loaded_WF_xc_string @@ -191,14 +174,30 @@ subroutine setup_global_XC(what,kind,xc_functional,perturbation,exx_fraction,ex ! end subroutine ! - character(lchlen) function global_XC_string(kind,xc_functional,perturbation,STRING) + subroutine correct_global_XC(what,STRING) + character(*), intent(in) :: what + character(*), intent(in) :: STRING + ! + ! Work Space + ! + integer :: i_X + ! + if (what=='E'.or.what=='G') G_E_xc_string= trim(G_E_xc_string)//"+"//STRING + if (what=='X') then + forall(i_X=1:size(X_E_xc_string)) X_E_xc_string(i_X)= trim(X_E_xc_string(i_X))//"+"//STRING + endif + if (what=='K') K_E_xc_string= trim(K_E_xc_string)//"+"//STRING + if (what=='WF') loaded_WF_xc_string=trim(loaded_WF_xc_string)//"+"//STRING + ! + end subroutine + ! + character(lchlen) function global_XC_string(kind,xc_functional,perturbation) ! use xc_functionals, ONLY:xc_string,XC_CORRELATION ! integer :: kind ! <300 (LDA's GGA's ...) >300 See above integer :: xc_functional ! In case kind < 300 gives DFT functional integer :: perturbation - character(*), optional :: STRING ! Additional string ! integer :: local_kind character(1) :: ch_plus @@ -254,10 +253,6 @@ character(lchlen) function global_XC_string(kind,xc_functional,perturbation,STRI ch_plus='+' if (kind==0.or.len_trim(global_XC_string)==0) ch_plus=' ' ! - if (present(STRING)) then - global_XC_string=trim(global_XC_string)//trim(ch_plus)//STRING - endif - ! if (perturbation/=EXT_NONE) then ch=global_XC_string select case (perturbation) diff --git a/src/qp_control/QP_apply.F b/src/qp_control/QP_apply.F index 72edeab47d..e618015067 100644 --- a/src/qp_control/QP_apply.F +++ b/src/qp_control/QP_apply.F @@ -36,7 +36,7 @@ subroutine QP_apply(bands,en,k,object,msg_fmt,qp_impose,QP_ctl_impose,main_secti use QP_CTL_m, ONLY:QP_actions_reset,n_QP_actions,QP_action,QP_CTL_copy,& & QP_ctl_ID,QP_ctl_t,QP_ctl_msg_fmt,QP_ctl_xc_STRING,QP_ctl_what,& & At_least_one_band_corrected - use global_XC, ONLY:QP_SE_NONE,setup_global_XC + use global_XC, ONLY:correct_global_XC ! #include ! @@ -142,7 +142,7 @@ subroutine QP_apply(bands,en,k,object,msg_fmt,qp_impose,QP_ctl_impose,main_secti ! endif ! - call setup_global_XC(trim(QP_ctl_what),QP_SE_NONE,STRING=QP_ctl_xc_STRING) + call correct_global_XC(trim(QP_ctl_what),QP_ctl_xc_STRING) ! ! Energy corrected? ! diff --git a/src/qp_control/QP_apply_the_ACTION.F b/src/qp_control/QP_apply_the_ACTION.F index 07c3220271..be58e2a1ac 100644 --- a/src/qp_control/QP_apply_the_ACTION.F +++ b/src/qp_control/QP_apply_the_ACTION.F @@ -111,7 +111,7 @@ subroutine QP_apply_the_ACTION(i_ACTION,bands,E,k) if (len_trim(QP_ctl_xc_STRING)>0) QP_ctl_xc_STRING=trim(QP_ctl_xc_STRING)//" +" ! if (.not.allocated(QP_action(i_ACTION)%STATES_done)) then - QP_ctl_xc_STRING=trim(QP_ctl_xc_STRING)//" analytical correction " + QP_ctl_xc_STRING=trim(QP_ctl_xc_STRING)//" user defined corrections " endif if (any(do_E)) QP_ctl_xc_STRING=trim(QP_ctl_xc_STRING)//" @E" if (any(do_W)) QP_ctl_xc_STRING=trim(QP_ctl_xc_STRING)//" @W" diff --git a/src/real_time_control/RT_apply.F b/src/real_time_control/RT_apply.F index 07a9ec47fb..db6d95b7e8 100644 --- a/src/real_time_control/RT_apply.F +++ b/src/real_time_control/RT_apply.F @@ -19,7 +19,7 @@ subroutine RT_apply(bands,E,K,what,VERBOSE,IO_COM,Time,keep_RT_carriers,TIMES_ON use real_time, ONLY:RT_carriers,NE_i_time,RT_step,RT_obj_free use RT_control, ONLY:CARR_RT_IO_t,RT_ctl_db,RT_ctl_interp_neigh use com, ONLY:msg,jobstr,alt_jobstr,n_alt_jobstr,depth,alt_jobdir,jobdir - use global_XC, ONLY:QP_SE_NONE,setup_global_XC + use global_XC, ONLY:correct_global_XC ! implicit none ! @@ -248,6 +248,6 @@ subroutine RT_apply(bands,E,K,what,VERBOSE,IO_COM,Time,keep_RT_carriers,TIMES_ON if (l_E) what_="E" if (l_f) what_="Occ" if (l_W) what_="Widths" - call setup_global_XC(what,QP_SE_NONE,STRING=trim(what_)//"@"//trim(real2ch(local_Time*AUT2FS))//" fs") + call correct_global_XC(what,trim(what_)//"@"//trim(real2ch(local_Time*AUT2FS))//" fs") ! end subroutine From b476822387fb00f61d809d871afd3b0ba61e682e Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 11 Oct 2024 16:30:03 +0200 Subject: [PATCH 062/112] Version 5.2.0, Revision 23341, Hash d054fb20ed MODIFIED * configure include/version/version.m4 lib/archive/package.list Changes: - [libs] slepc and petsc version upgraded to 3.22 Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- lib/archive/package.list | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 117b95129a..696c88197d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23298 h.a65667c3c5. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23341 h.d054fb20ed. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23298 h.a65667c3c5' -PACKAGE_STRING='Yambo 5.2.0 r.23298 h.a65667c3c5' +PACKAGE_VERSION='5.2.0 r.23341 h.d054fb20ed' +PACKAGE_STRING='Yambo 5.2.0 r.23341 h.d054fb20ed' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1604,7 +1604,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23298 h.a65667c3c5 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23341 h.d054fb20ed to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1670,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23298 h.a65667c3c5:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23341 h.d054fb20ed:";; esac cat <<\_ACEOF @@ -1882,7 +1882,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23298 h.a65667c3c5 +Yambo configure 5.2.0 r.23341 h.d054fb20ed generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2511,7 +2511,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23298 h.a65667c3c5, which was +It was created by Yambo $as_me 5.2.0 r.23341 h.d054fb20ed, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3269,8 +3269,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23298" -SHASH="a65667c3c5" +SREVISION="23341" +SHASH="d054fb20ed" @@ -16606,7 +16606,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23298 h.a65667c3c5, which was +This file was extended by Yambo $as_me 5.2.0 r.23341 h.d054fb20ed, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16670,7 +16670,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23298 h.a65667c3c5 +Yambo config.status 5.2.0 r.23341 h.d054fb20ed configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 0e30a6db51..5bb16c2aec 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23298 h.a65667c3c5, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23341 h.d054fb20ed, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23298" -SHASH="a65667c3c5" +SREVISION="23341" +SHASH="d054fb20ed" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/archive/package.list b/lib/archive/package.list index 183244727a..8b4d931895 100644 --- a/lib/archive/package.list +++ b/lib/archive/package.list @@ -34,8 +34,8 @@ version_libxc=5.2.3 version_lapack=3.12.0 version_blacs=missing version_scalapack=2.2.1 -version_slepc=3.21.0 -version_petsc=3.21.0 +version_slepc=3.22.0 +version_petsc=3.22.0 version_fftw=3.3.10 version_fftqe=missing version_yaml=0.2.2 From ce959ae2231bc6edb8541990db7a0d4b9e770d19 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Fri, 11 Oct 2024 16:36:45 +0200 Subject: [PATCH 063/112] Version 5.2.0, Revision 23342, Hash b476822387 MODIFIED * configure include/version/version.m4 Changes: - [configure] Configure re-generated after merge Patch sent by: Davide Sangalli --- configure | 32 +++++++++++++++++++------------- include/version/version.m4 | 6 +++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 696c88197d..24c1c0b619 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23341 h.d054fb20ed. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23342 h.b476822387. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23341 h.d054fb20ed' -PACKAGE_STRING='Yambo 5.2.0 r.23341 h.d054fb20ed' +PACKAGE_VERSION='5.2.0 r.23342 h.b476822387' +PACKAGE_STRING='Yambo 5.2.0 r.23342 h.b476822387' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -690,6 +690,8 @@ MPI_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -1604,7 +1606,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23341 h.d054fb20ed to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23342 h.b476822387 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1672,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23341 h.d054fb20ed:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23342 h.b476822387:";; esac cat <<\_ACEOF @@ -1882,7 +1884,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23341 h.d054fb20ed +Yambo configure 5.2.0 r.23342 h.b476822387 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2511,7 +2513,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23341 h.d054fb20ed, which was +It was created by Yambo $as_me 5.2.0 r.23342 h.b476822387, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3269,8 +3271,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23341" -SHASH="d054fb20ed" +SREVISION="23342" +SHASH="b476822387" @@ -15604,19 +15606,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -15696,6 +15700,8 @@ fi + + # @@ -16606,7 +16612,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23341 h.d054fb20ed, which was +This file was extended by Yambo $as_me 5.2.0 r.23342 h.b476822387, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16670,7 +16676,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23341 h.d054fb20ed +Yambo config.status 5.2.0 r.23342 h.b476822387 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 5bb16c2aec..25a4e31144 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23341 h.d054fb20ed, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23342 h.b476822387, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23341" -SHASH="d054fb20ed" +SREVISION="23342" +SHASH="b476822387" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 9e8a9f96de0f3c6abc01b1cffee2c3bfec8b48a4 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 12 Oct 2024 20:41:55 +0200 Subject: [PATCH 064/112] Version 5.2.0, Revision 23661, Hash ebc1837743 MODIFIED * configure include/version/version.m4 bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F NEW * Bugs: - [yambo] Fixed compilation Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_stored_in_a_nest_matrix.F | 2 +- src/bse/K_stored_in_a_slepc_matrix.F | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 57ba7479d0..8d26f9f28d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23641 h.4815d28682. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23661 h.ebc1837743. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23641 h.4815d28682' -PACKAGE_STRING='Yambo 5.2.0 r.23641 h.4815d28682' +PACKAGE_VERSION='5.2.0 r.23661 h.ebc1837743' +PACKAGE_STRING='Yambo 5.2.0 r.23661 h.ebc1837743' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1666,7 +1666,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23641 h.4815d28682 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23661 h.ebc1837743 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1732,7 +1732,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23641 h.4815d28682:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23661 h.ebc1837743:";; esac cat <<\_ACEOF @@ -1976,7 +1976,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23641 h.4815d28682 +Yambo configure 5.2.0 r.23661 h.ebc1837743 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2605,7 +2605,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23641 h.4815d28682, which was +It was created by Yambo $as_me 5.2.0 r.23661 h.ebc1837743, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3363,8 +3363,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23641" -SHASH="4815d28682" +SREVISION="23661" +SHASH="ebc1837743" @@ -17791,7 +17791,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23641 h.4815d28682, which was +This file was extended by Yambo $as_me 5.2.0 r.23661 h.ebc1837743, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17855,7 +17855,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23641 h.4815d28682 +Yambo config.status 5.2.0 r.23661 h.ebc1837743 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index b189842e97..e32d7b88f2 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23641 h.4815d28682, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23661 h.ebc1837743, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23641" -SHASH="4815d28682" +SREVISION="23661" +SHASH="ebc1837743" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index 93304527f3..ee44533d50 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -34,7 +34,7 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing use timing_m, ONLY:timing - use cuda_m, ONLY:have_cuda + use gpu_m, ONLY:have_cuda ! use petscmat use slepceps diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index 27d1f07ce8..f33d51ba00 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -31,7 +31,7 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) use IO_m, ONLY:RD use LIVE_t, ONLY:live_timing use timing_m, ONLY:timing - use cuda_m, ONLY:have_cuda + use gpu_m, ONLY:have_cuda ! use petscmat use slepceps From 25ad1365baada1e4108c252b90f3a0df23e2bab7 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 17 Oct 2024 09:14:28 +0200 Subject: [PATCH 065/112] Version 5.2.0, Revision 23165, Hash dee9922c5a MODIFIED * configure include/version/version.m4 p2y/p2y_atmproj.F Bugs: - [p2y] Reverted change introduced with commit a89c09e Previous version was correct. Fix was buggy. Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- interfaces/p2y/p2y_atmproj.F | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 310a76ad9b..67f527502f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23164 h.efbf073452. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23165 h.dee9922c5a. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23164 h.efbf073452' -PACKAGE_STRING='Yambo 5.2.0 r.23164 h.efbf073452' +PACKAGE_VERSION='5.2.0 r.23165 h.dee9922c5a' +PACKAGE_STRING='Yambo 5.2.0 r.23165 h.dee9922c5a' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23164 h.efbf073452 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23165 h.dee9922c5a to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23164 h.efbf073452:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23165 h.dee9922c5a:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23164 h.efbf073452 +Yambo configure 5.2.0 r.23165 h.dee9922c5a generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23164 h.efbf073452, which was +It was created by Yambo $as_me 5.2.0 r.23165 h.dee9922c5a, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23164" -SHASH="efbf073452" +SREVISION="23165" +SHASH="dee9922c5a" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23164 h.efbf073452, which was +This file was extended by Yambo $as_me 5.2.0 r.23165 h.dee9922c5a, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23164 h.efbf073452 +Yambo config.status 5.2.0 r.23165 h.dee9922c5a configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 1d66a7cd32..e304c229a4 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23164 h.efbf073452, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23165 h.dee9922c5a, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23164" -SHASH="efbf073452" +SREVISION="23165" +SHASH="dee9922c5a" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/interfaces/p2y/p2y_atmproj.F b/interfaces/p2y/p2y_atmproj.F index 5c40a684c4..d2eae455f0 100644 --- a/interfaces/p2y/p2y_atmproj.F +++ b/interfaces/p2y/p2y_atmproj.F @@ -113,7 +113,7 @@ subroutine fill_atomic_table() ! ! Case without SOC ! - do im=1,2*il+1 + do im=1,2*il-1 !DEBUG < !write(*,*)ia,itype,il-1._SP,real(im-il,SP) !DEBUG > @@ -127,7 +127,7 @@ subroutine fill_atomic_table() enddo ! !DEBUG < - !write(*,*) indx + !write(*,*) "nproj= ",indx !DEBUG > ! end subroutine fill_atomic_table From a26f7ccb2ddafeca41608aa463e6cf7835e98565 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 23 Oct 2024 15:32:19 +0200 Subject: [PATCH 066/112] Version 5.3.0, Revision 23850, Hash 79ace91a11 MODIFIED * configure include/version/version.m4 Changes: - [yambo] configure re-generated after merge Patch sent by: Davide Sangalli --- configure | 7995 ++++++++++++++++++++---------------- include/version/version.m4 | 4 +- 2 files changed, 4460 insertions(+), 3539 deletions(-) diff --git a/configure b/configure index 8979eb3f88..3227259372 100755 --- a/configure +++ b/configure @@ -1,11 +1,12 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Yambo 5.2.0 r.23610 h.97928140ba. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23610 h.97928140ba. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -16,14 +17,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -33,46 +36,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -96,8 +92,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -109,30 +109,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -154,20 +134,22 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -187,42 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -230,14 +222,21 @@ fi esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -255,18 +254,19 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org and + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and $0: yambo@yambo-code.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a @@ -294,6 +294,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -311,6 +312,14 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -325,7 +334,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -334,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -373,12 +382,13 @@ as_fn_executable_p () # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -390,18 +400,27 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -413,9 +432,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -442,7 +461,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -486,7 +505,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -500,6 +519,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -513,6 +536,13 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -589,40 +619,36 @@ ac_default_prefix=$PWD ac_unique_file="driver/yambo.F" # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='LTLIBOBJS compdir LAPACK_PETSC_INCS_R @@ -670,6 +696,8 @@ DEVXLIB_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -840,6 +868,7 @@ FFLAGS F77 FPP CPPFLAGS_yambo +CPP IFLAG FCLIBS OPENMPLIBS @@ -873,6 +902,9 @@ AR MAKE ifGNUmake hostname +SIZEOF_INT_P +SET_MAKE +LIBOBJS host_os host_vendor host_cpu @@ -881,15 +913,9 @@ build_os build_vendor build_cpu build -SIZEOF_INT_P -SET_MAKE -LIBOBJS ALLOCA Y_BRANCH GIT_CHECK -EGREP -GREP -CPP OBJEXT EXEEXT ac_ct_CC @@ -934,6 +960,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -1081,10 +1108,10 @@ CFLAGS LDFLAGS LIBS CPPFLAGS -CPP FC FCFLAGS UFLAGS +CPP FPP F77 FFLAGS @@ -1129,6 +1156,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1158,8 +1186,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -1200,9 +1226,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1226,9 +1252,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1381,6 +1407,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1430,9 +1465,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1446,9 +1481,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1492,9 +1527,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1510,7 +1545,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1518,7 +1553,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1574,7 +1609,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1671,6 +1706,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1862,10 +1898,10 @@ Some influential environment variables: LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - CPP C preprocessor FC Fortran compiler command FCFLAGS Fortran compiler flags UFLAGS Unoptimized Fortran flags + CPP C preprocessor FPP Fortran preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags @@ -1892,9 +1928,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1922,7 +1958,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1930,7 +1967,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1940,9 +1977,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Yambo configure 5.2.0 r.23610 h.97928140ba -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1959,14 +1996,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1974,14 +2011,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1991,176 +2029,6 @@ fi } # ac_fn_c_try_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------------- ## -## Report this to yambo@yambo-code.org ## -## ----------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in @@ -2168,26 +2036,28 @@ fi ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -2199,16 +2069,17 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main () +main (void) { static $2 ac_aggr; if (ac_aggr.$3) @@ -2217,14 +2088,15 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$4=yes" -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main () +main (void) { static $2 ac_aggr; if (sizeof ac_aggr.$3) @@ -2233,18 +2105,19 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$4=yes" -else +else $as_nop eval "$4=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member @@ -2256,17 +2129,18 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof ($2)) return 0; @@ -2274,12 +2148,13 @@ if (sizeof ($2)) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof (($2))) return 0; @@ -2287,18 +2162,19 @@ if (sizeof (($2))) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop eval "$3=yes" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -2309,14 +2185,14 @@ $as_echo "$ac_res" >&6; } ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2324,17 +2200,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -2349,72 +2226,48 @@ fi } # ac_fn_c_try_link -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -#undef $2 + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func +} # ac_fn_c_try_run # ac_fn_fc_try_compile LINENO # --------------------------- @@ -2422,14 +2275,14 @@ $as_echo "$ac_res" >&6; } ac_fn_fc_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2437,14 +2290,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -2460,14 +2314,14 @@ fi ac_fn_fc_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2475,17 +2329,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -2500,20 +2355,58 @@ fi } # ac_fn_fc_try_link +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_f77_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_f77_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2521,14 +2414,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -2544,14 +2438,14 @@ fi ac_fn_f77_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2559,17 +2453,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -2584,44 +2479,136 @@ fi } # ac_fn_f77_try_link +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + # ac_fn_fc_check_func LINENO FUNC VAR # ----------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_fc_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF program main call $2 end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_fc_check_func +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Yambo $as_me 5.2.0 r.23610 h.97928140ba, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -2654,8 +2641,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -2690,7 +2681,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2725,11 +2716,13 @@ done # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2740,8 +2733,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2765,7 +2758,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2773,14 +2766,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2788,15 +2781,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2804,8 +2797,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2819,63 +2812,48 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2885,154 +2863,542 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; -SVERSION="5" -SSUBVERSION="3" -SPATCHLEVEL="0" -SREVISION="23786" -SHASH="b039db29a4" +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; -# -CURRENT_DIR=`echo "$PWD" | sed -e "s/ /X/g"` -if ! test -d $CURRENT_DIR ; then - as_fn_error $? "Make cannot work using paths which include spaces" "$LINENO" 5 -fi -# -compdir=`echo "$PWD"` -# +struct incomplete_array +{ + int datasize; + double data[]; +}; -if test "$prefix" = "NONE" ; then prefix="$PWD" ; fi -if test "$exec_prefix" = "NONE" ; then exec_prefix="$prefix" ; fi -# -ac_aux_dir= -for ac_dir in config "$srcdir"/config; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 -fi +struct named_init { + int number; + const wchar_t *name; + double average; +}; -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +typedef const char *ccp; +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); -# -# YAMBO SPECIFIC -# -# -# License-Identifier: GPL -# -# Copyright (C) 2021 The Yambo Team -# -# Authors (see AUTHORS file for details): DS AM -# -# Folders -# -if ! test -d log ; then mkdir log ; fi -if ! test -d bin ; then mkdir bin ; fi + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" + +# Auxiliary files required by this configure script. +ac_aux_files="config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/config" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +SVERSION="5" +SSUBVERSION="3" +SPATCHLEVEL="0" +SREVISION="23851" +SHASH="79ace91a11" + + + + + + +# +CURRENT_DIR=`echo "$PWD" | sed -e "s/ /X/g"` +if ! test -d $CURRENT_DIR ; then + as_fn_error $? "Make cannot work using paths which include spaces" "$LINENO" 5 +fi +# +compdir=`echo "$PWD"` +# + +if test "$prefix" = "NONE" ; then prefix="$PWD" ; fi +if test "$exec_prefix" = "NONE" ; then exec_prefix="$prefix" ; fi +# + + +# +# YAMBO SPECIFIC +# +# +# License-Identifier: GPL +# +# Copyright (C) 2021 The Yambo Team +# +# Authors (see AUTHORS file for details): DS AM +# +# Folders +# +if ! test -d log ; then mkdir log ; fi +if ! test -d bin ; then mkdir bin ; fi if ! test -d include ; then mkdir include ; fi if ! test -d include/headers ; then mkdir include/headers ; fi if ! test -d lib ; then mkdir lib ; fi @@ -3079,9 +3445,10 @@ fi # PATH FOR EXT LIBS # Check whether --with-extlibs_path was given. -if test "${with_extlibs_path+set}" = set; then : +if test ${with_extlibs_path+y} +then : withval=$with_extlibs_path; extlibs_path="$with_extlibs_path" -else +else $as_nop extlibs_path="${PWD}/lib/external" fi @@ -3092,7 +3459,8 @@ if test x"$extlibs_path" = "x"; then extlibs_path="${PWD}/lib/external"; fi # ============================================================================ # DEBUG # Check whether --enable-keep-objects was given. -if test "${enable_keep_objects+set}" = set; then : +if test ${enable_keep_objects+y} +then : enableval=$enable_keep_objects; fi @@ -3103,7 +3471,8 @@ if test x"$enable_keep_objects" = "x"; then enable_keep_objects="yes"; fi # ============================================================================= # KEEP SOURCE FILES # Check whether --enable-keep-src was given. -if test "${enable_keep_src+set}" = set; then : +if test ${enable_keep_src+y} +then : enableval=$enable_keep_src; fi @@ -3114,7 +3483,8 @@ if test x"$enable_keep_src" = "xyes"; then enable_keep_src="yes"; fi # ============================================================================ # KEEP EXT LIBS # Check whether --enable-keep-extlibs was given. -if test "${enable_keep_extlibs+set}" = set; then : +if test ${enable_keep_extlibs+y} +then : enableval=$enable_keep_extlibs; fi @@ -3132,7 +3502,8 @@ fi # ============================================================================ # DP # Check whether --enable-dp was given. -if test "${enable_dp+set}" = set; then : +if test ${enable_dp+y} +then : enableval=$enable_dp; fi @@ -3151,7 +3522,8 @@ if test x"$build_precision" = "x"; then as_fn_error $? "Non correct specificatio # Time Profiling (mod_timing) # # Check whether --enable-time-profile was given. -if test "${enable_time_profile+set}" = set; then : +if test ${enable_time_profile+y} +then : enableval=$enable_time_profile; fi @@ -3167,7 +3539,8 @@ fi # USPP # # Check whether --enable-uspp was given. -if test "${enable_uspp+set}" = set; then : +if test ${enable_uspp+y} +then : enableval=$enable_uspp; fi @@ -3184,7 +3557,8 @@ fi # Memory Profiling # # Check whether --enable-memory-profile was given. -if test "${enable_memory_profile+set}" = set; then : +if test ${enable_memory_profile+y} +then : enableval=$enable_memory_profile; fi @@ -3200,7 +3574,8 @@ fi # Verbose compilation # # Check whether --enable-msgs-comps was given. -if test "${enable_msgs_comps+set}" = set; then : +if test ${enable_msgs_comps+y} +then : enableval=$enable_msgs_comps; fi @@ -3217,9 +3592,10 @@ fi # # Check whether --with-editor was given. -if test "${with_editor+set}" = set; then : +if test ${with_editor+y} +then : withval=$with_editor; -else +else $as_nop with_editor="vim vi pico" fi @@ -3227,11 +3603,12 @@ for ac_prog in $with_editor do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_editor+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_editor+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$editor"; then ac_cv_prog_editor="$editor" # Let the user override the test. else @@ -3239,11 +3616,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_editor="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3254,11 +3635,11 @@ fi fi editor=$ac_cv_prog_editor if test -n "$editor"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $editor" >&5 -$as_echo "$editor" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $editor" >&5 +printf "%s\n" "$editor" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3273,9 +3654,10 @@ test -n "$editor" || editor="none" # # Check whether --with-echo was given. -if test "${with_echo+set}" = set; then : +if test ${with_echo+y} +then : withval=$with_echo; -else +else $as_nop with_echo="echo" fi @@ -3288,6 +3670,15 @@ ECHO=$with_echo # # check if the structure mallinfo is present in malloc.h SAVE=$CFLAGS + + + + + + + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3296,11 +3687,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3308,11 +3700,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3323,11 +3719,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3336,11 +3732,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3348,11 +3745,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3363,11 +3764,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3375,8 +3776,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3389,11 +3790,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3401,11 +3803,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3416,11 +3822,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3429,11 +3835,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3442,15 +3849,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3466,18 +3877,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3488,11 +3899,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3500,11 +3912,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3515,11 +3931,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3532,11 +3948,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3544,11 +3961,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3559,11 +3980,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3575,34 +3996,138 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3612,7 +4137,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3620,7 +4145,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3632,9 +4157,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -3655,11 +4180,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -3676,7 +4202,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3692,44 +4218,46 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -3743,15 +4271,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3760,7 +4288,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -3772,8 +4300,8 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3781,10 +4309,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3792,39 +4320,40 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3838,11 +4367,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -3851,31 +4381,32 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3885,29 +4416,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -3916,57 +4451,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3981,232 +4519,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +$ac_c_conftest_c11_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error +$ac_c_conftest_c99_program _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC fi -rm -f conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +$ac_c_conftest_c89_program _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg fi -rm -f conftest.err conftest.i conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP +rm -f conftest.$ac_ext +CC=$ac_save_CC fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : -else - # Broken: fails on valid input. -continue +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -4216,280 +4666,51 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +ac_header= ac_cache= +for ac_item in $ac_header_c_list do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h -fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi -done +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : -ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" -if test "x$ac_cv_header_malloc_h" = xyes; then : +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" +if test "x$ac_cv_header_malloc_h" = xyes +then : have_malloc_h=1 -else +else $as_nop have_malloc_h=0 fi - CFLAGS=$SAVE if test "$have_malloc_h" -ne 0 then ac_fn_c_check_member "$LINENO" "struct mallinfo" "arena" "ac_cv_member_struct_mallinfo_arena" "#include " -if test "x$ac_cv_member_struct_mallinfo_arena" = xyes; then : - $as_echo "#define HAVE_MALLINFO 1" >>confdefs.h +if test "x$ac_cv_member_struct_mallinfo_arena" = xyes +then : + printf "%s\n" "#define HAVE_MALLINFO 1" >>confdefs.h fi @@ -4829,11 +5050,12 @@ EOF Y_BRANCH="unknown" # Extract the first word of "git", so it can be a program name with args. set dummy git; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GIT_CHECK+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_GIT_CHECK+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$GIT_CHECK"; then ac_cv_prog_GIT_CHECK="$GIT_CHECK" # Let the user override the test. else @@ -4841,11 +5063,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GIT_CHECK="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4856,11 +5082,11 @@ fi fi GIT_CHECK=$ac_cv_prog_GIT_CHECK if test -n "$GIT_CHECK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIT_CHECK" >&5 -$as_echo "$GIT_CHECK" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GIT_CHECK" >&5 +printf "%s\n" "$GIT_CHECK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4874,42 +5100,60 @@ fi # # Checks for library functions. # ============================================================================ -for ac_header in malloc.h stdlib.h unistd.h string.h sys/time.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" +if test "x$ac_cv_header_malloc_h" = xyes +then : + printf "%s\n" "#define HAVE_MALLOC_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" +if test "x$ac_cv_header_stdlib_h" = xyes +then : + printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h -done +fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" +if test "x$ac_cv_header_string_h" = xyes +then : + printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h + +fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : +if test "x$ac_cv_type_size_t" = xyes +then : -else +else $as_nop -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF +printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +printf %s "checking for working alloca.h... " >&6; } +if test ${ac_cv_working_alloca_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; @@ -4917,52 +5161,52 @@ char *p = (char *) alloca (2 * sizeof (int)); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_working_alloca_h=yes -else +else $as_nop ac_cv_working_alloca_h=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +printf "%s\n" "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h +printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +printf %s "checking for alloca... " >&6; } +if test ${ac_cv_func_alloca_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $ac_cv_working_alloca_h = yes; then + ac_cv_func_alloca_works=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER +#include +#include +#ifndef alloca +# ifdef __GNUC__ +# define alloca __builtin_alloca +# elif defined _MSC_VER # include # define alloca _alloca # else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif +# ifdef __cplusplus +extern "C" # endif +void *alloca (size_t); # endif #endif int -main () +main (void) { char *p = (char *) alloca (1); if (p) return 0; @@ -4970,20 +5214,22 @@ char *p = (char *) alloca (1); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_func_alloca_works=yes -else +else $as_nop ac_cv_func_alloca_works=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +printf "%s\n" "$ac_cv_func_alloca_works" >&6; } +fi if test $ac_cv_func_alloca_works = yes; then -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h +printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions @@ -4993,58 +5239,19 @@ else ALLOCA=\${LIBOBJDIR}alloca.$ac_objext -$as_echo "#define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi +printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h - done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +printf %s "checking stack direction for C alloca... " >&6; } +if test ${ac_cv_c_stack_direction+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_c_stack_direction=0 -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default @@ -5065,9 +5272,10 @@ main (int argc, char **argv) return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_c_stack_direction=1 -else +else $as_nop ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5075,25 +5283,24 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +printf "%s\n" "$ac_cv_c_stack_direction" >&6; } +printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __cplusplus @@ -5106,7 +5313,7 @@ main () /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. + /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ @@ -5134,7 +5341,7 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; @@ -5150,47 +5357,50 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_const=yes -else +else $as_nop ac_cv_c_const=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then -$as_echo "#define const /**/" >>confdefs.h +printf "%s\n" "#define const /**/" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +printf %s "checking for inline... " >&6; } +if test ${ac_cv_c_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } +static $ac_kw foo_t static_foo (void) {return 0; } +$ac_kw foo_t foo (void) {return 0; } #endif _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_inline=$ac_kw fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +printf "%s\n" "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; @@ -5207,45 +5417,118 @@ _ACEOF ;; esac -for ac_header in stdlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STDLIB_H 1 -_ACEOF + + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 -$as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if ${ac_cv_func_malloc_0_nonnull+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_malloc_0_nonnull=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build else + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 +printf %s "checking for GNU libc compatible malloc... " >&6; } +if test ${ac_cv_func_malloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in # (( + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_malloc_0_nonnull=no ;; + esac +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H -# include -#else -char *malloc (); -#endif +#include int -main () +main (void) { -return ! malloc (0); +void *p = malloc (0); + int result = !p; + free (p); + return result; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_func_malloc_0_nonnull=yes -else +else $as_nop ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5253,14 +5536,15 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 -$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } -if test $ac_cv_func_malloc_0_nonnull = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } +if test $ac_cv_func_malloc_0_nonnull = yes +then : -$as_echo "#define HAVE_MALLOC 1" >>confdefs.h +printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h -else - $as_echo "#define HAVE_MALLOC 0" >>confdefs.h +else $as_nop + printf "%s\n" "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; @@ -5269,50 +5553,47 @@ else esac -$as_echo "#define malloc rpl_malloc" >>confdefs.h - -fi - - -for ac_header in stdlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STDLIB_H 1 -_ACEOF +printf "%s\n" "#define malloc rpl_malloc" >>confdefs.h fi -done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 -$as_echo_n "checking for GNU libc compatible realloc... " >&6; } -if ${ac_cv_func_realloc_0_nonnull+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_realloc_0_nonnull=no -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 +printf %s "checking for GNU libc compatible realloc... " >&6; } +if test ${ac_cv_func_realloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in # (( + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_realloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_realloc_0_nonnull=no ;; + esac +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H -# include -#else -char *realloc (); -#endif +#include int -main () +main (void) { -return ! realloc (0, 0); +void *p = realloc (0, 0); + int result = !p; + free (p); + return result; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_func_realloc_0_nonnull=yes -else +else $as_nop ac_cv_func_realloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5320,14 +5601,15 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 -$as_echo "$ac_cv_func_realloc_0_nonnull" >&6; } -if test $ac_cv_func_realloc_0_nonnull = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; } +if test $ac_cv_func_realloc_0_nonnull = yes +then : -$as_echo "#define HAVE_REALLOC 1" >>confdefs.h +printf "%s\n" "#define HAVE_REALLOC 1" >>confdefs.h -else - $as_echo "#define HAVE_REALLOC 0" >>confdefs.h +else $as_nop + printf "%s\n" "#define HAVE_REALLOC 0" >>confdefs.h case " $LIBOBJS " in *" realloc.$ac_objext "* ) ;; @@ -5336,27 +5618,34 @@ else esac -$as_echo "#define realloc rpl_realloc" >>confdefs.h +printf "%s\n" "#define realloc rpl_realloc" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 -$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } -if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +printf %s "checking whether lstat correctly handles trailing slash... " >&6; } +if test ${ac_cv_func_lstat_dereferences_slashed_symlink+y} +then : + printf %s "(cached) " >&6 +else $as_nop rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then - if test "$cross_compiling" = yes; then : - ac_cv_func_lstat_dereferences_slashed_symlink=no -else + if test "$cross_compiling" = yes +then : + case "$host_os" in # (( + # Guess yes on glibc systems. + *-gnu*) ac_cv_func_lstat_dereferences_slashed_symlink=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_lstat_dereferences_slashed_symlink=no ;; + esac +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. @@ -5367,9 +5656,10 @@ struct stat sbuf; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_func_lstat_dereferences_slashed_symlink=yes -else +else $as_nop ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5384,14 +5674,12 @@ fi rm -f conftest.sym conftest.file fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 -$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +printf "%s\n" "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && -cat >>confdefs.h <<_ACEOF -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 -_ACEOF +printf "%s\n" "#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1" >>confdefs.h if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then @@ -5403,19 +5691,21 @@ esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 -$as_echo_n "checking whether stat accepts an empty string... " >&6; } -if ${ac_cv_func_stat_empty_string_bug+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 +printf %s "checking whether stat accepts an empty string... " >&6; } +if test ${ac_cv_func_stat_empty_string_bug+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_func_stat_empty_string_bug=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { struct stat sbuf; return stat ("", &sbuf) == 0; @@ -5423,9 +5713,10 @@ struct stat sbuf; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_func_stat_empty_string_bug=no -else +else $as_nop ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5433,8 +5724,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 -$as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 +printf "%s\n" "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; @@ -5443,19 +5734,18 @@ if test $ac_cv_func_stat_empty_string_bug = yes; then esac -cat >>confdefs.h <<_ACEOF -#define HAVE_STAT_EMPTY_STRING_BUG 1 -_ACEOF +printf "%s\n" "#define HAVE_STAT_EMPTY_STRING_BUG 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @@ -5471,20 +5761,20 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # ============================================================================ # check size of pointers to int - needed to decide the size of integer # arrays in fortran holding C pointers for FFTW -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the size of a pointer" >&5 -$as_echo_n "checking for the size of a pointer... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the size of a pointer" >&5 +printf %s "checking for the size of a pointer... " >&6; } if test -z "$POINTER_SIZE"; then cat >pointertest.c <&5 (eval $ac_try) 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then ac_try="" else @@ -5510,12 +5800,10 @@ EOF ac_pointersize=`./pointertest.x`; rm -rf pointertest* -cat >>confdefs.h <<_ACEOF -#define POINTER_SIZE ${ac_pointersize} -_ACEOF +printf "%s\n" "#define POINTER_SIZE ${ac_pointersize}" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_pointersize} bytes" >&5 -$as_echo "${ac_pointersize} bytes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ac_pointersize} bytes" >&5 +printf "%s\n" "${ac_pointersize} bytes" >&6; } fi SIZEOF_INT_P=$ac_pointersize @@ -5531,11 +5819,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -5543,11 +5832,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5558,11 +5851,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5571,11 +5864,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -5583,11 +5877,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5598,11 +5896,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -5610,8 +5908,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -5624,11 +5922,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -5636,11 +5935,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5651,11 +5954,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5664,11 +5967,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -5677,15 +5981,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5701,18 +6009,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5723,11 +6031,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -5735,11 +6044,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5750,11 +6063,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5767,11 +6080,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -5779,11 +6093,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5794,11 +6112,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5810,34 +6128,138 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi +else + CC="$ac_cv_prog_CC" fi fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -5847,20 +6269,21 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -5870,29 +6293,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -5901,57 +6328,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -5966,94 +6396,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -6063,87 +6543,18 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu # -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - hostname=`uname -n` # ============================================================================ # GNU Make MAKE="make" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5 -$as_echo_n "checking for GNU make... " >&6; } -if ${_cv_gnu_make_command+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5 +printf %s "checking for GNU make... " >&6; } +if test ${_cv_gnu_make_command+y} +then : + printf %s "(cached) " >&6 +else $as_nop _cv_gnu_make_command='' ; for a in "$MAKE" make gmake gnumake ; do if test -z "$a" ; then continue ; fi ; @@ -6154,14 +6565,14 @@ else done ; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5 -$as_echo "$_cv_gnu_make_command" >&6; } ; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5 +printf "%s\n" "$_cv_gnu_make_command" >&6; } ; if test "x$_cv_gnu_make_command" != "x" ; then ifGNUmake='' ; else ifGNUmake='#' ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Not found\"" >&5 -$as_echo "\"Not found\"" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"Not found\"" >&5 +printf "%s\n" "\"Not found\"" >&6; }; fi @@ -6183,11 +6594,12 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else @@ -6195,11 +6607,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6210,11 +6626,11 @@ fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6223,11 +6639,12 @@ if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else @@ -6235,11 +6652,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6250,11 +6671,11 @@ fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -6262,8 +6683,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -6281,7 +6702,8 @@ test -z "$AR_FLAGS" && AR_FLAGS="-r" # C options specific for driver.c # # Check whether --enable-options_check was given. -if test "${enable_options_check+set}" = set; then : +if test ${enable_options_check+y} +then : enableval=$enable_options_check; fi @@ -6305,11 +6727,12 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_FC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else @@ -6317,11 +6740,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6332,11 +6759,11 @@ fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5 -$as_echo "$FC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FC" >&5 +printf "%s\n" "$FC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6349,11 +6776,12 @@ if test -z "$FC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_FC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else @@ -6361,11 +6789,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_FC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6376,11 +6808,11 @@ fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5 -$as_echo "$ac_ct_FC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5 +printf "%s\n" "$ac_ct_FC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6392,8 +6824,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC @@ -6402,7 +6834,7 @@ fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do @@ -6412,7 +6844,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -6422,7 +6854,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out @@ -6431,11 +6863,12 @@ rm -f a.out # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } -if ${ac_cv_fc_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU Fortran" >&5 +printf %s "checking whether the compiler supports GNU Fortran... " >&6; } +if test ${ac_cv_fc_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ @@ -6444,43 +6877,48 @@ else end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5 -$as_echo "$ac_cv_fc_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_fc_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + ac_ext=$ac_save_ext -ac_test_FCFLAGS=${FCFLAGS+set} +ac_test_FCFLAGS=${FCFLAGS+y} ac_save_FCFLAGS=$FCFLAGS FCFLAGS= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5 -$as_echo_n "checking whether $FC accepts -g... " >&6; } -if ${ac_cv_prog_fc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5 +printf %s "checking whether $FC accepts -g... " >&6; } +if test ${ac_cv_prog_fc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop FCFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_prog_fc_g=yes -else +else $as_nop ac_cv_prog_fc_g=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5 -$as_echo "$ac_cv_prog_fc_g" >&6; } -if test "$ac_test_FCFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5 +printf "%s\n" "$ac_cv_prog_fc_g" >&6; } +if test $ac_test_FCFLAGS; then FCFLAGS=$ac_save_FCFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then @@ -6514,8 +6952,8 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the current OS is supported" >&5 -$as_echo_n "checking if the current OS is supported... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the current OS is supported" >&5 +printf %s "checking if the current OS is supported... " >&6; } #TIMER="ct_cclock.o" TIMER="ct_cptimer.o" case "${host}" in @@ -6549,31 +6987,31 @@ case "${host}" in if test -z "$F90SUFFIX"; then F90SUFFIX=".f90"; fi ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Platform <${host}> is not supported." >&5 -$as_echo "$as_me: Platform <${host}> is not supported." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Please contact the $PACKAGE_NAME team at $PACKAGE_BUGREPORT" >&5 -$as_echo "$as_me: Please contact the $PACKAGE_NAME team at $PACKAGE_BUGREPORT" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: providing either a list of compilers and options or" >&5 -$as_echo "$as_me: providing either a list of compilers and options or" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: a guest account on this machine." >&5 -$as_echo "$as_me: a guest account on this machine." >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Platform <${host}> is not supported." >&5 +printf "%s\n" "$as_me: Platform <${host}> is not supported." >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Please contact the $PACKAGE_NAME team at $PACKAGE_BUGREPORT" >&5 +printf "%s\n" "$as_me: Please contact the $PACKAGE_NAME team at $PACKAGE_BUGREPORT" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: providing either a list of compilers and options or" >&5 +printf "%s\n" "$as_me: providing either a list of compilers and options or" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: a guest account on this machine." >&5 +printf "%s\n" "$as_me: a guest account on this machine." >&6;} as_fn_error $? "stopping" "$LINENO" 5 ;; *) esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: WIDESETUP: using build_os=\"$build_os\"" >&5 -$as_echo "$as_me: WIDESETUP: using build_os=\"$build_os\"" >&6;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: WIDESETUP: using F90SUFFIX=\"$F90SUFFIX\"" >&5 -$as_echo "$as_me: WIDESETUP: using F90SUFFIX=\"$F90SUFFIX\"" >&6;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: WIDESETUP: using AR=\"$AR\"" >&5 -$as_echo "$as_me: WIDESETUP: using AR=\"$AR\"" >&6;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: WIDESETUP: using AR_FLAGS=\"$AR_FLAGS\"" >&5 -$as_echo "$as_me: WIDESETUP: using AR_FLAGS=\"$AR_FLAGS\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WIDESETUP: using build_os=\"$build_os\"" >&5 +printf "%s\n" "$as_me: WIDESETUP: using build_os=\"$build_os\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WIDESETUP: using F90SUFFIX=\"$F90SUFFIX\"" >&5 +printf "%s\n" "$as_me: WIDESETUP: using F90SUFFIX=\"$F90SUFFIX\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WIDESETUP: using AR=\"$AR\"" >&5 +printf "%s\n" "$as_me: WIDESETUP: using AR=\"$AR\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WIDESETUP: using AR_FLAGS=\"$AR_FLAGS\"" >&5 +printf "%s\n" "$as_me: WIDESETUP: using AR_FLAGS=\"$AR_FLAGS\"" >&6;} @@ -6589,7 +7027,8 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu # # Check whether --with-f90ext was given. -if test "${with_f90ext+set}" = set; then : +if test ${with_f90ext+y} +then : withval=$with_f90ext; fi @@ -6601,11 +7040,12 @@ ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 -$as_echo_n "checking for Fortran flag to compile .f90 files... " >&6; } -if ${ac_cv_fc_srcext_f90+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 +printf %s "checking for Fortran flag to compile .f90 files... " >&6; } +if test ${ac_cv_fc_srcext_f90+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_ext=f90 ac_fcflags_srcext_save=$ac_fcflags_srcext ac_fcflags_srcext= @@ -6621,17 +7061,18 @@ for ac_flag in none -qsuffix=f=f90 -Tf "-x $ac_try"; do end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_fc_srcext_f90=$ac_flag; break fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done rm -f conftest.$ac_objext conftest.f90 ac_fcflags_srcext=$ac_fcflags_srcext_save fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 -$as_echo "$ac_cv_fc_srcext_f90" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 +printf "%s\n" "$ac_cv_fc_srcext_f90" >&6; } if test "x$ac_cv_fc_srcext_f90" = xunknown; then as_fn_error $? "Fortran could not compile .f90 files" "$LINENO" 5 else @@ -6657,11 +7098,12 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f files" >&5 -$as_echo_n "checking for Fortran flag to compile .f files... " >&6; } -if ${ac_cv_fc_srcext_f+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f files" >&5 +printf %s "checking for Fortran flag to compile .f files... " >&6; } +if test ${ac_cv_fc_srcext_f+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_ext=f ac_fcflags_srcext_save=$ac_fcflags_srcext ac_fcflags_srcext= @@ -6677,17 +7119,18 @@ for ac_flag in none -qsuffix=f=f -Tf "-x $ac_try"; do end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_fc_srcext_f=$ac_flag; break fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done rm -f conftest.$ac_objext conftest.f ac_fcflags_srcext=$ac_fcflags_srcext_save fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f" >&5 -$as_echo "$ac_cv_fc_srcext_f" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f" >&5 +printf "%s\n" "$ac_cv_fc_srcext_f" >&6; } if test "x$ac_cv_fc_srcext_f" = xunknown; then as_fn_error $? "Fortran could not compile .f files" "$LINENO" 5 else @@ -6782,10 +7225,10 @@ esac # FCVERSION=`echo "$FCVERSION" | sed "/^\s*$/d" | head -n 1` # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $FC kind and version" >&5 -$as_echo_n "checking for $FC kind and version... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $FCKIND $FCVERSION $INTELVERSION" >&5 -$as_echo "$FCKIND $FCVERSION $INTELVERSION" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $FC kind and version" >&5 +printf %s "checking for $FC kind and version... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FCKIND $FCVERSION $INTELVERSION" >&5 +printf "%s\n" "$FCKIND $FCVERSION $INTELVERSION" >&6; } @@ -6802,7 +7245,8 @@ $as_echo "$FCKIND $FCVERSION $INTELVERSION" >&6; } if test -z "${CFLAGS}"; then CFLAGS="-O2"; fi # # Check whether --enable-debug-flags was given. -if test "${enable_debug_flags+set}" = set; then : +if test ${enable_debug_flags+y} +then : enableval=$enable_debug_flags; fi @@ -7224,35 +7668,35 @@ esac # if test "x$build_os" = "xaix" ; then NETCDFFLAGS="$NETCDFFLAGS -DIBMR2Fortran" ; fi # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specific $FC flags" >&5 -$as_echo_n "checking for specific $FC flags... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specific $FC flags" >&5 +printf %s "checking for specific $FC flags... " >&6; } if test -z "${FCFLAGS}"; then FCFLAGS="$SYSFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FCFLAGS" >&5 -$as_echo "$FCFLAGS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FCFLAGS" >&5 +printf "%s\n" "$FCFLAGS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (User-defined) $FCFLAGS" >&5 -$as_echo "(User-defined) $FCFLAGS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (User-defined) $FCFLAGS" >&5 +printf "%s\n" "(User-defined) $FCFLAGS" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specific Open-MP flags" >&5 -$as_echo_n "checking for specific Open-MP flags... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPFLAGS" >&5 -$as_echo "$OMPFLAGS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specific Open-MP flags" >&5 +printf %s "checking for specific Open-MP flags... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OMPFLAGS" >&5 +printf "%s\n" "$OMPFLAGS" >&6; } # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specific $CC flags" >&5 -$as_echo_n "checking for specific $CC flags... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CFLAGS" >&5 -$as_echo "$CFLAGS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specific $CC flags" >&5 +printf %s "checking for specific $CC flags... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CFLAGS" >&5 +printf "%s\n" "$CFLAGS" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specific unoptimized flags" >&5 -$as_echo_n "checking for specific unoptimized flags... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specific unoptimized flags" >&5 +printf %s "checking for specific unoptimized flags... " >&6; } if test -z "${UFLAGS}"; then FCUFLAGS="$FUFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FCUFLAGS" >&5 -$as_echo "$FCUFLAGS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FCUFLAGS" >&5 +printf "%s\n" "$FCUFLAGS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (User-defined) $UFLAGS" >&5 -$as_echo "(User-defined) $UFLAGS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (User-defined) $UFLAGS" >&5 +printf "%s\n" "(User-defined) $UFLAGS" >&6; } FCUFLAGS="$UFLAGS" FUFLAGS="$UFLAGS" fi @@ -7263,10 +7707,10 @@ if test x"$enable_debug_flags" = "xyes"; then HDF5_MODE="debug"; fi # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specific NETCDF flags" >&5 -$as_echo_n "checking for specific NETCDF flags... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $NETCDFFLAGS" >&5 -$as_echo "$NETCDFFLAGS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specific NETCDF flags" >&5 +printf %s "checking for specific NETCDF flags... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NETCDFFLAGS" >&5 +printf "%s\n" "$NETCDFFLAGS" >&6; } # @@ -7291,23 +7735,26 @@ FCFLAGS="$acx_save_fcflags $F90EXTFLAGS" GPU_SUPPORT="no_gpu" # # Check whether --enable-cuda_fortran was given. -if test "${enable_cuda_fortran+set}" = set; then : +if test ${enable_cuda_fortran+y} +then : enableval=$enable_cuda_fortran; -else +else $as_nop enable_cuda_fortran="no" fi # Check whether --enable-openacc was given. -if test "${enable_openacc+set}" = set; then : +if test ${enable_openacc+y} +then : enableval=$enable_openacc; -else +else $as_nop enable_openacc="no" fi # Check whether --enable-openmp5 was given. -if test "${enable_openmp5+set}" = set; then : +if test ${enable_openmp5+y} +then : enableval=$enable_openmp5; -else +else $as_nop enable_openmp5="no" fi @@ -7326,7 +7773,8 @@ if test x"$enable_openmp5" != "xno" ; then GPU_SUPPORT="openmp5" ; fi # OpenMP # # Check whether --enable-open-mp was given. -if test "${enable_open_mp+set}" = set; then : +if test ${enable_open_mp+y} +then : enableval=$enable_open_mp; fi @@ -7348,17 +7796,19 @@ ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $FC" >&5 -$as_echo_n "checking how to get verbose linking output from $FC... " >&6; } -if ${ac_cv_prog_fc_v+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $FC" >&5 +printf %s "checking how to get verbose linking output from $FC... " >&6; } +if test ${ac_cv_prog_fc_v+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_prog_fc_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do @@ -7376,13 +7826,13 @@ ac_save_FCFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_verb" eval "set x $ac_link" shift -$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` -$as_echo "$ac_fc_v_output" >&5 +printf "%s\n" "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FCFLAGS rm -rf conftest* @@ -7449,23 +7899,24 @@ esac done done if test -z "$ac_cv_prog_fc_v"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $FC" >&5 -$as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $FC" >&5 +printf "%s\n" "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;} fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 -$as_echo "$as_me: WARNING: compilation failed" >&2;} +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 +printf "%s\n" "$as_me: WARNING: compilation failed" >&2;} fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_v" >&5 -$as_echo "$ac_cv_prog_fc_v" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran libraries of $FC" >&5 -$as_echo_n "checking for Fortran libraries of $FC... " >&6; } -if ${ac_cv_fc_libs+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_v" >&5 +printf "%s\n" "$ac_cv_prog_fc_v" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran libraries of $FC" >&5 +printf %s "checking for Fortran libraries of $FC... " >&6; } +if test ${ac_cv_fc_libs+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$FCLIBS" != "x"; then ac_cv_fc_libs="$FCLIBS" # Let the user override the test. else @@ -7484,13 +7935,13 @@ ac_save_FCFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_cv_prog_fc_v" eval "set x $ac_link" shift -$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` -$as_echo "$ac_fc_v_output" >&5 +printf "%s\n" "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FCFLAGS rm -rf conftest* @@ -7567,9 +8018,10 @@ while test $# != 1; do fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; @@ -7582,9 +8034,10 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt" @@ -7599,9 +8052,24 @@ fi |-LANG:=* | -LIST:* | -LNO:* | -link) ;; -lkernel32) + # Ignore this library only on Windows-like systems. case $host_os in - *cygwin*) ;; - *) ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" + cygwin* | msys* ) ;; + *) + ac_exists=false + for ac_i in $ac_cv_fc_libs; do + if test x"$ac_arg" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue +then : + +else $as_nop + ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" +fi ;; esac ;; @@ -7619,7 +8087,7 @@ fi esac ;; -YP,*) - for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do + for ac_j in `printf "%s\n" "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_j" = x"$ac_i"; then @@ -7628,9 +8096,10 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_arg="$ac_arg $ac_j" ac_cv_fc_libs="$ac_cv_fc_libs $ac_j" fi @@ -7645,15 +8114,17 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" ;; + -mllvm) ${2+shift};; # Defend against 'clang -mllvm -loopopt=0'. # Ignore everything else. esac done @@ -7665,7 +8136,7 @@ set X $ac_save_positional; shift # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) - ac_ld_run_path=`$as_echo "$ac_fc_v_output" | + ac_ld_run_path=`printf "%s\n" "$ac_fc_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then @@ -7680,8 +8151,8 @@ esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_libs" >&5 -$as_echo "$ac_cv_fc_libs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_libs" >&5 +printf "%s\n" "$ac_cv_fc_libs" >&6; } FCLIBS="$ac_cv_fc_libs" @@ -7696,11 +8167,12 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran libraries" >&5 -$as_echo_n "checking for dummy main to link with Fortran libraries... " >&6; } -if ${ac_cv_fc_dummy_main+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran libraries" >&5 +printf %s "checking for dummy main to link with Fortran libraries... " >&6; } +if test ${ac_cv_fc_dummy_main+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_fc_dm_save_LIBS=$LIBS LIBS="$LIBS $FCLIBS" ac_fortran_dm_var=FC_DUMMY_MAIN @@ -7723,19 +8195,20 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu #endif #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_fortran_dummy_main=none -else +else $as_nop ac_cv_fortran_dummy_main=unknown fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then @@ -7752,17 +8225,18 @@ rm -f core conftest.err conftest.$ac_objext \ #endif #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_fortran_dummy_main=$ac_func; break fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done fi @@ -7775,25 +8249,24 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu LIBS=$ac_fc_dm_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_dummy_main" >&5 -$as_echo "$ac_cv_fc_dummy_main" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_dummy_main" >&5 +printf "%s\n" "$ac_cv_fc_dummy_main" >&6; } FC_DUMMY_MAIN=$ac_cv_fc_dummy_main -if test "$FC_DUMMY_MAIN" != unknown; then : +if test "$FC_DUMMY_MAIN" != unknown +then : if test $FC_DUMMY_MAIN != none; then -cat >>confdefs.h <<_ACEOF -#define FC_DUMMY_MAIN $FC_DUMMY_MAIN -_ACEOF +printf "%s\n" "#define FC_DUMMY_MAIN $FC_DUMMY_MAIN" >>confdefs.h if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then -$as_echo "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h +printf "%s\n" "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h fi fi -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "linking to Fortran libraries from C fails See \`config.log' for more details" "$LINENO" 5; } fi @@ -7808,11 +8281,12 @@ ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5 -$as_echo_n "checking for Fortran name-mangling scheme... " >&6; } -if ${ac_cv_fc_mangling+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5 +printf %s "checking for Fortran name-mangling scheme... " >&6; } +if test ${ac_cv_fc_mangling+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return @@ -7821,7 +8295,8 @@ else return end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS @@ -7842,9 +8317,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char $ac_func (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 @@ -7855,17 +8327,18 @@ char $ac_func (); #endif #endif int -main () +main (void) { return $ac_func (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_success=yes; break 2 fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done done @@ -7900,9 +8373,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char $ac_func (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 @@ -7913,17 +8383,18 @@ char $ac_func (); #endif #endif int -main () +main (void) { return $ac_func (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_success_extra=yes; break fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done ac_ext=${ac_fc_srcext-f} @@ -7953,17 +8424,17 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu LIBS=$ac_save_LIBS rm -rf conftest* rm -f cfortran_test* -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program See \`config.log' for more details" "$LINENO" 5; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5 -$as_echo "$ac_cv_fc_mangling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5 +printf "%s\n" "$ac_cv_fc_mangling" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -7986,7 +8457,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #define F90_FUNC_(name,NAME) name ## _ void F90_FUNC_(ftest, FTEST)(){} _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : mv conftest.$ac_objext ftest.$ac_objext ac_ext=${ac_fc_srcext-f} @@ -8001,10 +8473,11 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu call ftest end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : c_success="yes"; msg="test_"; save="$CFLAGS"; CFLAGS="$save -D_C_US" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" ac_ext=c @@ -8015,7 +8488,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu rm -f ftest.$ac_objext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test "$c_success" = "no" ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8023,7 +8496,8 @@ if test "$c_success" = "no" ; then #define F90_FUNC_(name,NAME) name void F90_FUNC_(ftest, FTEST)(){} _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : mv conftest.$ac_objext ftest.$ac_objext ac_ext=${ac_fc_srcext-f} @@ -8038,10 +8512,11 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu call ftest end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : c_success="yes"; msg="test" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$save" ac_ext=c @@ -8052,12 +8527,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu rm -f ftest.$ac_objext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for external C routine (test) naming scheme" >&5 -$as_echo_n "checking for external C routine (test) naming scheme... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 -$as_echo "$msg" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for external C routine (test) naming scheme" >&5 +printf %s "checking for external C routine (test) naming scheme... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 +printf "%s\n" "$msg" >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8065,48 +8540,48 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu case $ac_cv_fc_mangling in "lower case, no underscore, no extra underscore") - $as_echo "#define FC_FUNC(name,NAME) name" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) name" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) name" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) name" >>confdefs.h ;; "lower case, no underscore, extra underscore") - $as_echo "#define FC_FUNC(name,NAME) name" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) name" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, no extra underscore") - $as_echo "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, extra underscore") - $as_echo "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) name ## __" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) name ## __" >>confdefs.h ;; "upper case, no underscore, no extra underscore") - $as_echo "#define FC_FUNC(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) NAME" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) NAME" >>confdefs.h ;; "upper case, no underscore, extra underscore") - $as_echo "#define FC_FUNC(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) NAME" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, no extra underscore") - $as_echo "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, extra underscore") - $as_echo "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h - $as_echo "#define FC_FUNC_(name,NAME) NAME ## __" >>confdefs.h + printf "%s\n" "#define FC_FUNC_(name,NAME) NAME ## __" >>confdefs.h ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 -$as_echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 +printf "%s\n" "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac @@ -8165,11 +8640,12 @@ ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag needed to accept free-form source" >&5 -$as_echo_n "checking for Fortran flag needed to accept free-form source... " >&6; } -if ${ac_cv_fc_freeform+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran flag needed to accept free-form source" >&5 +printf %s "checking for Fortran flag needed to accept free-form source... " >&6; } +if test ${ac_cv_fc_freeform+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_fc_freeform=unknown ac_fc_freeform_FCFLAGS_save=$FCFLAGS for ac_flag in none -ffree-form -FR -free -qfree -Mfree -Mfreeform \ @@ -8184,17 +8660,18 @@ do 'world.' end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_fc_freeform=$ac_flag; break fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done rm -f conftest.err conftest.$ac_objext conftest.$ac_ext FCFLAGS=$ac_fc_freeform_FCFLAGS_save fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_freeform" >&5 -$as_echo "$ac_cv_fc_freeform" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_freeform" >&5 +printf "%s\n" "$ac_cv_fc_freeform" >&6; } if test "x$ac_cv_fc_freeform" = xunknown; then as_fn_error 77 "Fortran does not accept free-form source" "$LINENO" 5 else @@ -8219,11 +8696,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu #============================================================================= # FLAGS TO INCLUDE MODULE -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules inclusion flag" >&5 -$as_echo_n "checking fortran 90 modules inclusion flag... " >&6; } -if ${ax_cv_f90_modflag+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules inclusion flag" >&5 +printf %s "checking fortran 90 modules inclusion flag... " >&6; } +if test ${ax_cv_f90_modflag+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -8246,10 +8724,11 @@ cat > conftest.$ac_ext <<_ACEOF end module conftest_module _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext cd .. ax_cv_f90_modflag="not found" for ax_flag in "-I" "-M" "-p"; do @@ -8265,17 +8744,160 @@ for ax_flag in "-I" "-M" "-p"; do end program conftest_program _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ax_cv_f90_modflag="$ax_flag" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - FCFLAGS="$ax_save_FCFLAGS" - fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + FCFLAGS="$ax_save_FCFLAGS" + fi +done +rm -fr tmpdir_$i +if test "$ax_cv_f90_modflag" = "not found" ; then + as_fn_error $? "unable to find compiler flag for modules inclusion" "$LINENO" 5 +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modflag" >&5 +printf "%s\n" "$ax_cv_f90_modflag" >&6; } +IFLAG="$ax_cv_f90_modflag" +if test -z "$IFLAG" ; then IFLAG="-I" ; fi + +# +# ============================================================================ +# CPP check & flags +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done -rm -fr tmpdir_$i -if test "$ax_cv_f90_modflag" = "not found" ; then - as_fn_error $? "unable to find compiler flag for modules inclusion" "$LINENO" 5 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -8283,15 +8905,6 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modflag" >&5 -$as_echo "$ax_cv_f90_modflag" >&6; } -IFLAG="$ax_cv_f90_modflag" -if test -z "$IFLAG" ; then IFLAG="-I" ; fi - -# -# ============================================================================ -# CPP check & flags # case "${CPP}" in @@ -8343,8 +8956,8 @@ case "${CPP}" in esac # # -{ $as_echo "$as_me:${as_lineno-$LINENO}: testing C-preprocessor $CPP $CPPFLAGS" >&5 -$as_echo "$as_me: testing C-preprocessor $CPP $CPPFLAGS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: testing C-preprocessor $CPP $CPPFLAGS" >&5 +printf "%s\n" "$as_me: testing C-preprocessor $CPP $CPPFLAGS" >&6;} # # TESTS #======= @@ -8361,8 +8974,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # acx_C_ok=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if C precompiler works on C source" >&5 -$as_echo_n "checking if C precompiler works on C source... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C precompiler works on C source" >&5 +printf %s "checking if C precompiler works on C source... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8374,14 +8987,15 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : acx_C_ok=yes -else +else $as_nop CPP_TESTS_PASSED=no fi rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_C_ok" >&5 -$as_echo "$acx_C_ok" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_C_ok" >&5 +printf "%s\n" "$acx_C_ok" >&6; } # if test "x$CPP_TESTS_PASSED" = xno ; then as_fn_error $? "Found C precompiler problems in processing C source." "$LINENO" 5; @@ -8432,8 +9046,8 @@ esac # if test -z "$FPP" ; then FPP="cpp -E -P -ansi"; fi # -{ $as_echo "$as_me:${as_lineno-$LINENO}: testing FC-preprocessor $FPP" >&5 -$as_echo "$as_me: testing FC-preprocessor $FPP" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: testing FC-preprocessor $FPP" >&5 +printf "%s\n" "$as_me: testing FC-preprocessor $FPP" >&6;} # # TESTS #======= @@ -8442,8 +9056,8 @@ $as_echo "$as_me: testing FC-preprocessor $FPP" >&6;} # acx_FC_ok=yes FPP_TESTS_PASSED=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if FC precompiler works on FC source" >&5 -$as_echo_n "checking if FC precompiler works on FC source... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if FC precompiler works on FC source" >&5 +printf %s "checking if FC precompiler works on FC source... " >&6; } cat > conftest.F << EOF_ program conftest character (1) :: a @@ -8470,8 +9084,8 @@ else acx_FC_ok=no ; FPP_TESTS_PASSED=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_FC_ok" >&5 -$as_echo "$acx_FC_ok" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_FC_ok" >&5 +printf "%s\n" "$acx_FC_ok" >&6; } # if test "x$FPP_TESTS_PASSED" = xno ; then as_fn_error $? "Found FC precompiler problems in processing FC source." "$LINENO" 5; @@ -8500,11 +9114,12 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_F77+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_F77+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else @@ -8512,11 +9127,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -8527,11 +9146,11 @@ fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 -$as_echo "$F77" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 +printf "%s\n" "$F77" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8544,11 +9163,12 @@ if test -z "$F77"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_F77+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_F77+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else @@ -8556,11 +9176,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -8571,11 +9195,11 @@ fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 -$as_echo "$ac_ct_F77" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 +printf "%s\n" "$ac_ct_F77" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8587,8 +9211,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 @@ -8597,7 +9221,7 @@ fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do @@ -8607,7 +9231,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -8617,7 +9241,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out @@ -8626,11 +9250,12 @@ rm -f a.out # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } -if ${ac_cv_f77_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU Fortran 77" >&5 +printf %s "checking whether the compiler supports GNU Fortran 77... " >&6; } +if test ${ac_cv_f77_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ @@ -8639,43 +9264,48 @@ else end _ACEOF -if ac_fn_f77_try_compile "$LINENO"; then : +if ac_fn_f77_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 -$as_echo "$ac_cv_f77_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_f77_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} +ac_test_FFLAGS=${FFLAGS+y} ac_save_FFLAGS=$FFLAGS FFLAGS= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 -$as_echo_n "checking whether $F77 accepts -g... " >&6; } -if ${ac_cv_prog_f77_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 +printf %s "checking whether $F77 accepts -g... " >&6; } +if test ${ac_cv_prog_f77_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop FFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -if ac_fn_f77_try_compile "$LINENO"; then : +if ac_fn_f77_try_compile "$LINENO" +then : ac_cv_prog_f77_g=yes -else +else $as_nop ac_cv_prog_f77_g=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 -$as_echo "$ac_cv_prog_f77_g" >&6; } -if test "$ac_test_FFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 +printf "%s\n" "$ac_cv_prog_f77_g" >&6; } +if test $ac_test_FFLAGS; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then @@ -8701,23 +9331,24 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran 77 compiler $F77 works" >&5 -$as_echo_n "checking if Fortran 77 compiler $F77 works... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Fortran 77 compiler $F77 works" >&5 +printf %s "checking if Fortran 77 compiler $F77 works... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main integer ierr end _ACEOF -if ac_fn_f77_try_compile "$LINENO"; then : - acx_f77_ok="yes"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - acx_f77_ok="no"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; +if ac_fn_f77_try_compile "$LINENO" +then : + acx_f77_ok="yes"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + acx_f77_ok="no"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; as_fn_error $? "Fortran 77 compiler does not work. Impossible to continue." "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -8753,7 +9384,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu mpibuild="yes" # Check whether --enable-mpi was given. -if test "${enable_mpi+set}" = set; then : +if test ${enable_mpi+y} +then : enableval=$enable_mpi; fi @@ -8783,11 +9415,12 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIFC_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPIFC_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPIFC_test"; then ac_cv_prog_MPIFC_test="$MPIFC_test" # Let the user override the test. else @@ -8795,11 +9428,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIFC_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -8810,11 +9447,11 @@ fi fi MPIFC_test=$ac_cv_prog_MPIFC_test if test -n "$MPIFC_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC_test" >&5 -$as_echo "$MPIFC_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIFC_test" >&5 +printf "%s\n" "$MPIFC_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8823,12 +9460,13 @@ done test -n "$MPIFC_test" || MPIFC_test="$FC" else - as_ac_File=`$as_echo "ac_cv_file_$MPIFC" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $MPIFC" >&5 -$as_echo_n "checking for $MPIFC... " >&6; } -if eval \${$as_ac_File+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_File=`printf "%s\n" "ac_cv_file_$MPIFC" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $MPIFC" >&5 +printf %s "checking for $MPIFC... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "$MPIFC"; then @@ -8838,20 +9476,22 @@ else fi fi eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : MPIFC_test=$MPIFC -else +else $as_nop for ac_prog in $MPIFC mpipgifort mpiifort mpifort mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIFC_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPIFC_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPIFC_test"; then ac_cv_prog_MPIFC_test="$MPIFC_test" # Let the user override the test. else @@ -8859,11 +9499,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIFC_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -8874,11 +9518,11 @@ fi fi MPIFC_test=$ac_cv_prog_MPIFC_test if test -n "$MPIFC_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC_test" >&5 -$as_echo "$MPIFC_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIFC_test" >&5 +printf "%s\n" "$MPIFC_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8894,22 +9538,23 @@ fi if test "$acx_mpi_ok" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 -$as_echo_n "checking for MPI_Init... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 +printf %s "checking for MPI_Init... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call MPI_init end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_mpi_ok="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -8929,10 +9574,11 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working mpif.h" >&5 -$as_echo_n "checking for a working mpif.h... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working mpif.h" >&5 +printf %s "checking for a working mpif.h... " >&6; } save_ldflags="$LDFLAGS" - if test "$LIB_MPI"; then : + if test "$LIB_MPI" +then : LDFLAGS="${LDFLAGS} -L${LIB_MPI}" fi cat > conftest.$ac_ext <<_ACEOF @@ -8943,21 +9589,23 @@ fi call MPI_Init(ierr) end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - HAVE_MPIF_H=1; acx_mpi_ok="yes"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - HAVE_MPIF_H=0; acx_mpi_ok="no" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if ac_fn_fc_try_compile "$LINENO" +then : + HAVE_MPIF_H=1; acx_mpi_ok="yes"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + HAVE_MPIF_H=0; acx_mpi_ok="no" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working mpi.h" >&5 -$as_echo_n "checking for a working mpi.h... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working mpi.h" >&5 +printf %s "checking for a working mpi.h... " >&6; } save_ldflags="$LDFLAGS" - if test "$LIB_MPI"; then : + if test "$LIB_MPI" +then : LDFLAGS="${LDFLAGS} -L${LIB_MPI}" fi cat > conftest.$ac_ext <<_ACEOF @@ -8968,20 +9616,22 @@ fi call MPI_Init(ierr) end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - HAVE_MPI_H=1; acx_mpi_ok="yes"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - HAVE_MPI_H=0; acx_mpi_ok="no" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if ac_fn_fc_try_compile "$LINENO" +then : + HAVE_MPI_H=1; acx_mpi_ok="yes"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + HAVE_MPI_H=0; acx_mpi_ok="no" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext;fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext;fi if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working mpi module" >&5 -$as_echo_n "checking for a working mpi module... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working mpi module" >&5 +printf %s "checking for a working mpi module... " >&6; } save_ldflags="$LDFLAGS" - if test "$LIB_MPI"; then : + if test "$LIB_MPI" +then : LDFLAGS="${LDFLAGS} -L${LIB_MPI}" fi cat > conftest.$ac_ext <<_ACEOF @@ -8992,14 +9642,15 @@ fi call MPI_Init(ierr) end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - HAVE_MPI_MOD=1; acx_mpi_ok="yes"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - HAVE_MPI_MOD=0; acx_mpi_ok="no"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if ac_fn_fc_try_compile "$LINENO" +then : + HAVE_MPI_MOD=1; acx_mpi_ok="yes"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + HAVE_MPI_MOD=0; acx_mpi_ok="no"; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext;fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext;fi # # @@ -9011,12 +9662,12 @@ fi # # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a FORTRAN mpi test program. YAMBO serial only." >&5 -$as_echo "$as_me: WARNING: could not compile a FORTRAN mpi test program. YAMBO serial only." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a FORTRAN mpi test program. YAMBO serial only." >&5 +printf "%s\n" "$as_me: WARNING: could not compile a FORTRAN mpi test program. YAMBO serial only." >&2;} : else -$as_echo "#define HAVE_MPI 1" >>confdefs.h +printf "%s\n" "#define HAVE_MPI 1" >>confdefs.h : fi @@ -9047,12 +9698,13 @@ ac_compiler_gnu=$ac_cv_f77_compiler_gnu if ! test x"$MPIF77" = "x" ; then - as_ac_File=`$as_echo "ac_cv_file_$MPIF77" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $MPIF77" >&5 -$as_echo_n "checking for $MPIF77... " >&6; } -if eval \${$as_ac_File+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_File=`printf "%s\n" "ac_cv_file_$MPIF77" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $MPIF77" >&5 +printf %s "checking for $MPIF77... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "$MPIF77"; then @@ -9062,20 +9714,22 @@ else fi fi eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : MPIF77_test=$MPIF77 -else +else $as_nop for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIF77_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPIF77_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPIF77_test"; then ac_cv_prog_MPIF77_test="$MPIF77_test" # Let the user override the test. else @@ -9083,11 +9737,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIF77_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9098,11 +9756,11 @@ fi fi MPIF77_test=$ac_cv_prog_MPIF77_test if test -n "$MPIF77_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 -$as_echo "$MPIF77_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 +printf "%s\n" "$MPIF77_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9113,12 +9771,13 @@ test -n "$MPIF77_test" || MPIF77_test="$F77" fi elif ! test x"$MPIFC" = "x" ; then - as_ac_File=`$as_echo "ac_cv_file_$MPIFC" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $MPIFC" >&5 -$as_echo_n "checking for $MPIFC... " >&6; } -if eval \${$as_ac_File+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_File=`printf "%s\n" "ac_cv_file_$MPIFC" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $MPIFC" >&5 +printf %s "checking for $MPIFC... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "$MPIFC"; then @@ -9128,20 +9787,22 @@ else fi fi eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : MPIF77_test=$MPIFC -else +else $as_nop for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIF77_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPIF77_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPIF77_test"; then ac_cv_prog_MPIF77_test="$MPIF77_test" # Let the user override the test. else @@ -9149,11 +9810,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIF77_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9164,11 +9829,11 @@ fi fi MPIF77_test=$ac_cv_prog_MPIF77_test if test -n "$MPIF77_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 -$as_echo "$MPIF77_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 +printf "%s\n" "$MPIF77_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9183,11 +9848,12 @@ fi do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIF77_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPIF77_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPIF77_test"; then ac_cv_prog_MPIF77_test="$MPIF77_test" # Let the user override the test. else @@ -9195,11 +9861,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIF77_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9210,11 +9880,11 @@ fi fi MPIF77_test=$ac_cv_prog_MPIF77_test if test -n "$MPIF77_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 -$as_echo "$MPIF77_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIF77_test" >&5 +printf "%s\n" "$MPIF77_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9228,22 +9898,23 @@ test -n "$MPIF77_test" || MPIF77_test="$F77" if test "$acx_mpi_ok" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 -$as_echo_n "checking for MPI_Init... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 +printf %s "checking for MPI_Init... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call MPI_Init end _ACEOF -if ac_fn_f77_try_link "$LINENO"; then : +if ac_fn_f77_try_link "$LINENO" +then : ac_mpi_ok="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -9279,12 +9950,12 @@ fi # # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a FORTRAN 77 mpi test program. YAMBO serial only." >&5 -$as_echo "$as_me: WARNING: could not compile a FORTRAN 77 mpi test program. YAMBO serial only." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a FORTRAN 77 mpi test program. YAMBO serial only." >&5 +printf "%s\n" "$as_me: WARNING: could not compile a FORTRAN 77 mpi test program. YAMBO serial only." >&2;} : else -$as_echo "#define HAVE_MPI 1" >>confdefs.h +printf "%s\n" "#define HAVE_MPI 1" >>confdefs.h : fi @@ -9320,11 +9991,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICC_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPICC_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPICC_test"; then ac_cv_prog_MPICC_test="$MPICC_test" # Let the user override the test. else @@ -9332,11 +10004,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPICC_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9347,11 +10023,11 @@ fi fi MPICC_test=$ac_cv_prog_MPICC_test if test -n "$MPICC_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC_test" >&5 -$as_echo "$MPICC_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPICC_test" >&5 +printf "%s\n" "$MPICC_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9360,12 +10036,13 @@ done test -n "$MPICC_test" || MPICC_test="$CC" else - as_ac_File=`$as_echo "ac_cv_file_$MPICC" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $MPICC" >&5 -$as_echo_n "checking for $MPICC... " >&6; } -if eval \${$as_ac_File+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_File=`printf "%s\n" "ac_cv_file_$MPICC" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $MPICC" >&5 +printf %s "checking for $MPICC... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "$MPICC"; then @@ -9375,24 +10052,26 @@ else fi fi eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$MPICC" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$MPICC" | $as_tr_cpp` 1 _ACEOF MPICC_test=$MPICC -else +else $as_nop for ac_prog in $MPICC mpipgicc mpiicc mpicc hcc mpcc mpcc_r mpxlc cmpicc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICC_test+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MPICC_test+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$MPICC_test"; then ac_cv_prog_MPICC_test="$MPICC_test" # Let the user override the test. else @@ -9400,11 +10079,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPICC_test="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9415,11 +10098,11 @@ fi fi MPICC_test=$ac_cv_prog_MPICC_test if test -n "$MPICC_test"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC_test" >&5 -$as_echo "$MPICC_test" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPICC_test" >&5 +printf "%s\n" "$MPICC_test" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9436,7 +10119,8 @@ fi if test "$acx_mpi_ok" = "yes"; then ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" -if test "x$ac_cv_func_MPI_Init" = xyes; then : +if test "x$ac_cv_func_MPI_Init" = xyes +then : acx_mpi_ok="yes" fi @@ -9451,8 +10135,8 @@ fi if test x"$MPICC" != x"mpipgicc" ; then echo > /dev/null if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working mpi.h" >&5 -$as_echo_n "checking for a working mpi.h... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working mpi.h" >&5 +printf %s "checking for a working mpi.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9465,21 +10149,22 @@ $as_echo_n "checking for a working mpi.h... " >&6; } #endif #endif int -main () +main (void) { #include ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; };acx_mpi_ok="yes" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ;acx_mpi_ok="no" +if ac_fn_c_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; };acx_mpi_ok="yes" +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;acx_mpi_ok="no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi else acx_mpi_ok="yes" @@ -9504,12 +10189,12 @@ fi # # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test "$acx_mpi_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a C mpi test program. YAMBO serial only." >&5 -$as_echo "$as_me: WARNING: could not compile a C mpi test program. YAMBO serial only." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not compile a C mpi test program. YAMBO serial only." >&5 +printf "%s\n" "$as_me: WARNING: could not compile a C mpi test program. YAMBO serial only." >&2;} : else -$as_echo "#define HAVE_MPI 1" >>confdefs.h +printf "%s\n" "#define HAVE_MPI 1" >>confdefs.h : fi @@ -9548,10 +10233,10 @@ if test -e "conftest.x"; then else MPIKIND="undefined" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI version" >&5 -$as_echo_n "checking for MPI version... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIKIND" >&5 -$as_echo "$MPIKIND" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MPI version" >&5 +printf %s "checking for MPI version... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIKIND" >&5 +printf "%s\n" "$MPIKIND" >&6; } MPI_PATH=`which $CC |sed "s/bin\/$CC//g"` @@ -9577,25 +10262,29 @@ fi # Check whether --with-mpi_libs was given. -if test "${with_mpi_libs+set}" = set; then : +if test ${with_mpi_libs+y} +then : withval=$with_mpi_libs; fi # Check whether --with-mpi_path was given. -if test "${with_mpi_path+set}" = set; then : +if test ${with_mpi_path+y} +then : withval=$with_mpi_path; fi # Check whether --with-mpi_libdir was given. -if test "${with_mpi_libdir+set}" = set; then : +if test ${with_mpi_libdir+y} +then : withval=$with_mpi_libdir; fi # Check whether --with-mpi_includedir was given. -if test "${with_mpi_includedir+set}" = set; then : +if test ${with_mpi_includedir+y} +then : withval=$with_mpi_includedir; fi @@ -9671,12 +10360,13 @@ if test "$mpibuild" = "yes"; then if test x"$MPI_INC_DIR" = "x" ; then for MPI_INC_DIR in $MPI_INC_DIRS_LIST; do if ! test -e "$MPI_INC_DIR"; then continue; fi - as_ac_File=`$as_echo "ac_cv_file_$MPI_INC_DIR/mpif.h" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $MPI_INC_DIR/mpif.h" >&5 -$as_echo_n "checking for $MPI_INC_DIR/mpif.h... " >&6; } -if eval \${$as_ac_File+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_File=`printf "%s\n" "ac_cv_file_$MPI_INC_DIR/mpif.h" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $MPI_INC_DIR/mpif.h" >&5 +printf %s "checking for $MPI_INC_DIR/mpif.h... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "$MPI_INC_DIR/mpif.h"; then @@ -9686,11 +10376,12 @@ else fi fi eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : mpif_found_tmp="yes" -else +else $as_nop mpif_found_tmp="no" fi @@ -9909,9 +10600,10 @@ DRIVER_INCS="-I$PWD/lib/yambo/Ydriver/include/ -I$PWD/include/driver" # # Check whether --with-ydriver-branch was given. -if test "${with_ydriver_branch+set}" = set; then : +if test ${with_ydriver_branch+y} +then : withval=$with_ydriver_branch; -else +else $as_nop with_ydriver_branch=none fi @@ -9933,7 +10625,8 @@ fi # # Check whether --enable-ydb was given. -if test "${enable_ydb+set}" = set; then : +if test ${enable_ydb+y} +then : enableval=$enable_ydb; fi @@ -9947,11 +10640,12 @@ if test "x$enable_ydb" = "xyes"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}git", so it can be a program name with args. set dummy ${ac_tool_prefix}git; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GIT+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_GIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$GIT"; then ac_cv_prog_GIT="$GIT" # Let the user override the test. else @@ -9959,11 +10653,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GIT="${ac_tool_prefix}git" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -9974,11 +10672,11 @@ fi fi GIT=$ac_cv_prog_GIT if test -n "$GIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIT" >&5 -$as_echo "$GIT" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GIT" >&5 +printf "%s\n" "$GIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -9987,11 +10685,12 @@ if test -z "$ac_cv_prog_GIT"; then ac_ct_GIT=$GIT # Extract the first word of "git", so it can be a program name with args. set dummy git; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_GIT+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_GIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_GIT"; then ac_cv_prog_ac_ct_GIT="$ac_ct_GIT" # Let the user override the test. else @@ -9999,11 +10698,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_GIT="git" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -10014,11 +10717,11 @@ fi fi ac_ct_GIT=$ac_cv_prog_ac_ct_GIT if test -n "$ac_ct_GIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GIT" >&5 -$as_echo "$ac_ct_GIT" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GIT" >&5 +printf "%s\n" "$ac_ct_GIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_GIT" = x; then @@ -10026,8 +10729,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac GIT=$ac_ct_GIT @@ -10039,14 +10742,14 @@ fi # if test "$GIT" = "false"; then enable_ydb="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Git not found. Impossible to install YDB." >&5 -$as_echo "$as_me: WARNING: Git not found. Impossible to install YDB." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Git not found. Impossible to install YDB." >&5 +printf "%s\n" "$as_me: WARNING: Git not found. Impossible to install YDB." >&2;} fi # if test "x$enable_ydb" = "xyes" && ! test -d "scripts/ydb"; then # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking YDB from $url_ydb" >&5 -$as_echo_n "checking YDB from $url_ydb... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking YDB from $url_ydb" >&5 +printf %s "checking YDB from $url_ydb... " >&6; } mkdir -p scripts git clone $url_ydb scripts/ydb # @@ -10056,8 +10759,8 @@ $as_echo_n "checking YDB from $url_ydb... " >&6; } cd $srcdir else enable_ydb="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Impossible to install YDB." >&5 -$as_echo "$as_me: WARNING: Impossible to install YDB." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Impossible to install YDB." >&5 +printf "%s\n" "$as_me: WARNING: Impossible to install YDB." >&2;} fi fi # @@ -10071,17 +10774,19 @@ ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 -$as_echo_n "checking how to get verbose linking output from $F77... " >&6; } -if ${ac_cv_prog_f77_v+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 +printf %s "checking how to get verbose linking output from $F77... " >&6; } +if test ${ac_cv_prog_f77_v+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -if ac_fn_f77_try_compile "$LINENO"; then : +if ac_fn_f77_try_compile "$LINENO" +then : ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do @@ -10099,13 +10804,13 @@ ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" eval "set x $ac_link" shift -$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` -$as_echo "$ac_f77_v_output" >&5 +printf "%s\n" "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* @@ -10172,23 +10877,24 @@ esac done done if test -z "$ac_cv_prog_f77_v"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5 -$as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5 +printf "%s\n" "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 -$as_echo "$as_me: WARNING: compilation failed" >&2;} +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 +printf "%s\n" "$as_me: WARNING: compilation failed" >&2;} fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5 -$as_echo "$ac_cv_prog_f77_v" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 -$as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; } -if ${ac_cv_f77_libs+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5 +printf "%s\n" "$ac_cv_prog_f77_v" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 +printf %s "checking for Fortran 77 libraries of $F77... " >&6; } +if test ${ac_cv_f77_libs+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else @@ -10207,13 +10913,13 @@ ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" eval "set x $ac_link" shift -$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` -$as_echo "$ac_f77_v_output" >&5 +printf "%s\n" "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* @@ -10290,9 +10996,10 @@ while test $# != 1; do fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; @@ -10305,9 +11012,10 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" @@ -10322,9 +11030,24 @@ fi |-LANG:=* | -LIST:* | -LNO:* | -link) ;; -lkernel32) + # Ignore this library only on Windows-like systems. case $host_os in - *cygwin*) ;; - *) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" + cygwin* | msys* ) ;; + *) + ac_exists=false + for ac_i in $ac_cv_f77_libs; do + if test x"$ac_arg" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue +then : + +else $as_nop + ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" +fi ;; esac ;; @@ -10342,7 +11065,7 @@ fi esac ;; -YP,*) - for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do + for ac_j in `printf "%s\n" "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then @@ -10351,9 +11074,10 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi @@ -10368,15 +11092,17 @@ fi fi done - if test x"$ac_exists" = xtrue; then : + if test x"$ac_exists" = xtrue +then : -else +else $as_nop ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; + -mllvm) ${2+shift};; # Defend against 'clang -mllvm -loopopt=0'. # Ignore everything else. esac done @@ -10388,7 +11114,7 @@ set X $ac_save_positional; shift # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) - ac_ld_run_path=`$as_echo "$ac_f77_v_output" | + ac_ld_run_path=`printf "%s\n" "$ac_f77_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then @@ -10403,8 +11129,8 @@ esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5 -$as_echo "$ac_cv_f77_libs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5 +printf "%s\n" "$ac_cv_f77_libs" >&6; } FLIBS="$ac_cv_f77_libs" @@ -10420,17 +11146,20 @@ acx_blas_ok=no # Check whether --with-blas_libs was given. -if test "${with_blas_libs+set}" = set; then : +if test ${with_blas_libs+y} +then : withval=$with_blas_libs; fi # Check whether --enable-int_linalg was given. -if test "${enable_int_linalg+set}" = set; then : +if test ${enable_int_linalg+y} +then : enableval=$enable_int_linalg; fi # Check whether --enable-openmp_int_linalg was given. -if test "${enable_openmp_int_linalg+set}" = set; then : +if test ${enable_openmp_int_linalg+y} +then : enableval=$enable_openmp_int_linalg; fi @@ -10438,7 +11167,8 @@ fi BLAS_LIBS="" # Check whether --with-blas_libs was given. -if test "${with_blas_libs+set}" = set; then : +if test ${with_blas_libs+y} +then : withval=$with_blas_libs; fi @@ -10463,22 +11193,23 @@ internal_blas="no" if test $acx_blas_ok = no; then if test "x$BLAS_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in $BLAS_LIBS" >&5 -$as_echo_n "checking for $caxpy in $BLAS_LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in $BLAS_LIBS" >&5 +printf %s "checking for $caxpy in $BLAS_LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_blas_ok=yes -else +else $as_nop BLAS_LIBS="" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_blas_ok" >&5 -$as_echo "$acx_blas_ok" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_blas_ok" >&5 +printf "%s\n" "$acx_blas_ok" >&6; } LIBS="$save_LIBS" fi fi @@ -10487,9 +11218,10 @@ fi # BLAS linked to by default? (happens on some supercomputers) if test $acx_blas_ok = no; then save_LIBS="$LIBS"; LIBS="$LIBS" - as_ac_var=`$as_echo "ac_cv_func_$caxpy" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$caxpy" | $as_tr_sh` ac_fn_fc_check_func "$LINENO" "$caxpy" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : acx_blas_ok=yes fi @@ -10498,11 +11230,12 @@ fi # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) if test $acx_blas_ok = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 -$as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } -if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 +printf %s "checking for ATL_xerbla in -latlas... " >&6; } +if test ${ac_cv_lib_atlas_ATL_xerbla+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-latlas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10510,24 +11243,27 @@ cat > conftest.$ac_ext <<_ACEOF call ATL_xerbla end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : ac_cv_lib_atlas_ATL_xerbla=yes -else +else $as_nop ac_cv_lib_atlas_ATL_xerbla=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 -$as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } -if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : - as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lf77blas" >&5 -$as_echo_n "checking for $caxpy in -lf77blas... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 +printf "%s\n" "$ac_cv_lib_atlas_ATL_xerbla" >&6; } +if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes +then : + as_ac_Lib=`printf "%s\n" "ac_cv_lib_f77blas_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lf77blas" >&5 +printf %s "checking for $caxpy in -lf77blas... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lf77blas -latlas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10535,24 +11271,27 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_daxpy in -lcblas" >&5 -$as_echo_n "checking for cblas_daxpy in -lcblas... " >&6; } -if ${ac_cv_lib_cblas_cblas_daxpy+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cblas_daxpy in -lcblas" >&5 +printf %s "checking for cblas_daxpy in -lcblas... " >&6; } +if test ${ac_cv_lib_cblas_cblas_daxpy+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcblas -lf77blas -latlas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10560,18 +11299,20 @@ cat > conftest.$ac_ext <<_ACEOF call cblas_daxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : ac_cv_lib_cblas_cblas_daxpy=yes -else +else $as_nop ac_cv_lib_cblas_cblas_daxpy=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_daxpy" >&5 -$as_echo "$ac_cv_lib_cblas_cblas_daxpy" >&6; } -if test "x$ac_cv_lib_cblas_cblas_daxpy" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_daxpy" >&5 +printf "%s\n" "$ac_cv_lib_cblas_cblas_daxpy" >&6; } +if test "x$ac_cv_lib_cblas_cblas_daxpy" = xyes +then : acx_blas_ok=yes BLAS_LIBS="-lcblas -lf77blas -latlas" fi @@ -10584,12 +11325,13 @@ fi # BLAS in PhiPACK libraries? (requires generic BLAS lib, too) if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_blas_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 -$as_echo_n "checking for $caxpy in -lblas... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_blas_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 +printf %s "checking for $caxpy in -lblas... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10597,25 +11339,28 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - as_ac_Lib=`$as_echo "ac_cv_lib_daxpy_$daxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $daxpy in -ldaxpy" >&5 -$as_echo_n "checking for $daxpy in -ldaxpy... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + as_ac_Lib=`printf "%s\n" "ac_cv_lib_daxpy_$daxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $daxpy in -ldaxpy" >&5 +printf %s "checking for $daxpy in -ldaxpy... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldaxpy -lblas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10623,25 +11368,28 @@ cat > conftest.$ac_ext <<_ACEOF call $daxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - as_ac_Lib=`$as_echo "ac_cv_lib_caxpy_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcaxpy" >&5 -$as_echo_n "checking for $caxpy in -lcaxpy... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + as_ac_Lib=`printf "%s\n" "ac_cv_lib_caxpy_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcaxpy" >&5 +printf %s "checking for $caxpy in -lcaxpy... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcaxpy -lblas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10649,19 +11397,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes; BLAS_LIBS="-lcaxpy -ldaxpy -lblas" fi @@ -10673,12 +11423,13 @@ fi # BLAS in Alpha CXML library? if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcxml" >&5 -$as_echo_n "checking for $caxpy in -lcxml... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_cxml_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcxml" >&5 +printf %s "checking for $caxpy in -lcxml... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcxml $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10686,19 +11437,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-lcxml" fi @@ -10706,12 +11459,13 @@ fi # BLAS in Alpha DXML library? (now called CXML, see above) if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -ldxml" >&5 -$as_echo_n "checking for $caxpy in -ldxml... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_dxml_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -ldxml" >&5 +printf %s "checking for $caxpy in -ldxml... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldxml $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10719,19 +11473,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-ldxml" fi @@ -10740,11 +11496,12 @@ fi # BLAS in Sun Performance library? if test $acx_blas_ok = no; then if test "x$GCC" != xyes; then # only works with Sun CC - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 -$as_echo_n "checking for acosp in -lsunmath... " >&6; } -if ${ac_cv_lib_sunmath_acosp+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 +printf %s "checking for acosp in -lsunmath... " >&6; } +if test ${ac_cv_lib_sunmath_acosp+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsunmath $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10752,24 +11509,27 @@ cat > conftest.$ac_ext <<_ACEOF call acosp end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : ac_cv_lib_sunmath_acosp=yes -else +else $as_nop ac_cv_lib_sunmath_acosp=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 -$as_echo "$ac_cv_lib_sunmath_acosp" >&6; } -if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : - as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lsunperf" >&5 -$as_echo_n "checking for $caxpy in -lsunperf... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 +printf "%s\n" "$ac_cv_lib_sunmath_acosp" >&6; } +if test "x$ac_cv_lib_sunmath_acosp" = xyes +then : + as_ac_Lib=`printf "%s\n" "ac_cv_lib_sunperf_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lsunperf" >&5 +printf %s "checking for $caxpy in -lsunperf... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsunperf -lsunmath $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10777,19 +11537,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : BLAS_LIBS="-xlic_lib=sunperf -lsunmath" acx_blas_ok=yes fi @@ -10801,12 +11563,13 @@ fi # BLAS in SCSL library? (SGI/Cray Scientific Library) if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_scs_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lscs" >&5 -$as_echo_n "checking for $caxpy in -lscs... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_scs_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lscs" >&5 +printf %s "checking for $caxpy in -lscs... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lscs $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10814,19 +11577,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes; BLAS_LIBS="-lscs" fi @@ -10834,12 +11599,13 @@ fi # BLAS in SGIMATH library? if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcomplib.sgimath" >&5 -$as_echo_n "checking for $caxpy in -lcomplib.sgimath... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_complib.sgimath_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lcomplib.sgimath" >&5 +printf %s "checking for $caxpy in -lcomplib.sgimath... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcomplib.sgimath $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10847,19 +11613,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath" fi @@ -10867,12 +11635,13 @@ fi # BLAS in IBM ESSL library? (requires generic BLAS lib, too) if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_blas_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 -$as_echo_n "checking for $caxpy in -lblas... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_blas_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 +printf %s "checking for $caxpy in -lblas... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10880,25 +11649,28 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - as_ac_Lib=`$as_echo "ac_cv_lib_essl_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lessl" >&5 -$as_echo_n "checking for $caxpy in -lessl... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + as_ac_Lib=`printf "%s\n" "ac_cv_lib_essl_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lessl" >&5 +printf %s "checking for $caxpy in -lessl... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lessl -lblas $FLIBS $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10906,19 +11678,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes; BLAS_LIBS="-lessl -lblas" fi @@ -10934,12 +11708,13 @@ if test $acx_blas_ok = no && test -d "${MKLROOT}" ; then *gfortran* ) case "${host}" in *x86*64*) - as_ac_Lib=`$as_echo "ac_cv_lib_mkl_gf_lp64_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_gf_lp64" >&5 -$as_echo_n "checking for $caxpy in -lmkl_gf_lp64... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_mkl_gf_lp64_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_gf_lp64" >&5 +printf %s "checking for $caxpy in -lmkl_gf_lp64... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lmkl_gf_lp64 -L${mkl_libdir} -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread -lm $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10947,30 +11722,33 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-L${mkl_libdir} -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" fi ;; i?86*linux*) - as_ac_Lib=`$as_echo "ac_cv_lib_mkl_gf_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_gf" >&5 -$as_echo_n "checking for $caxpy in -lmkl_gf... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_mkl_gf_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_gf" >&5 +printf %s "checking for $caxpy in -lmkl_gf... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lmkl_gf -L${mkl_libdir} -lmkl_gf -lmkl_sequential -lmkl_core -lpthread $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -10978,19 +11756,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-L${mkl_libdir} -lmkl_gf -lmkl_sequential -lmkl_core -lpthread" fi @@ -11002,12 +11782,13 @@ fi # 64 bit case "${host}" in *x86*64*) - as_ac_Lib=`$as_echo "ac_cv_lib_mkl_intel_lp64_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_intel_lp64" >&5 -$as_echo_n "checking for $caxpy in -lmkl_intel_lp64... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_mkl_intel_lp64_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_intel_lp64" >&5 +printf %s "checking for $caxpy in -lmkl_intel_lp64... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lmkl_intel_lp64 -L${mkl_libdir} -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -11015,30 +11796,33 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-L${mkl_libdir} -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm" fi ;; i?86*linux*) - as_ac_Lib=`$as_echo "ac_cv_lib_mkl_intel_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_intel" >&5 -$as_echo_n "checking for $caxpy in -lmkl_intel... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_mkl_intel_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lmkl_intel" >&5 +printf %s "checking for $caxpy in -lmkl_intel... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lmkl_intel -L${mkl_libdir} -lmkl_intel -lmkl_sequential -lmkl_core -lpthread $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -11046,19 +11830,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes;BLAS_LIBS="-L${mkl_libdir} -lmkl_intel -lmkl_sequential -lmkl_core -lpthread" fi @@ -11069,12 +11855,13 @@ fi # Generic BLAS library? if test $acx_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_blas_$caxpy" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 -$as_echo_n "checking for $caxpy in -lblas... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_blas_$caxpy" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $caxpy in -lblas" >&5 +printf %s "checking for $caxpy in -lblas... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -11082,19 +11869,21 @@ cat > conftest.$ac_ext <<_ACEOF call $caxpy end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_blas_ok=yes; BLAS_LIBS="-lblas" fi @@ -11105,7 +11894,7 @@ LIBS="$acx_blas_save_LIBS" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_blas_ok" = xyes; then -$as_echo "#define HAVE_BLAS 1" >>confdefs.h +printf "%s\n" "#define HAVE_BLAS 1" >>confdefs.h : else @@ -11115,12 +11904,12 @@ fi if test $acx_blas_ok = "no"; then internal_blas="yes"; - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find blas. Using the built-in library" >&5 -$as_echo "$as_me: Could not find blas. Using the built-in library" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Could not find blas. Using the built-in library" >&5 +printf "%s\n" "$as_me: Could not find blas. Using the built-in library" >&6;} elif (test -d "$with_blas_libs" && test "$with_blas_libs" = "") || test x"$enable_int_linalg" = "xyes" ; then internal_blas="yes" - if test $acx_blas_ok = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: Blas found in ${BLAS_LIBS} but imposing built-in library" >&5 -$as_echo "$as_me: Blas found in ${BLAS_LIBS} but imposing built-in library" >&6;}; fi + if test $acx_blas_ok = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Blas found in ${BLAS_LIBS} but imposing built-in library" >&5 +printf "%s\n" "$as_me: Blas found in ${BLAS_LIBS} but imposing built-in library" >&6;}; fi fi if test "$internal_blas" = "yes"; then @@ -11185,11 +11974,12 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 -$as_echo_n "checking for dummy main to link with Fortran 77 libraries... " >&6; } -if ${ac_cv_f77_dummy_main+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 +printf %s "checking for dummy main to link with Fortran 77 libraries... " >&6; } +if test ${ac_cv_f77_dummy_main+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN @@ -11220,19 +12010,20 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu #endif #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_fortran_dummy_main=none -else +else $as_nop ac_cv_fortran_dummy_main=unknown fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then @@ -11257,17 +12048,18 @@ rm -f core conftest.err conftest.$ac_objext \ #endif #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_fortran_dummy_main=$ac_func; break fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done fi @@ -11280,25 +12072,24 @@ ac_compiler_gnu=$ac_cv_f77_compiler_gnu LIBS=$ac_f77_dm_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_dummy_main" >&5 -$as_echo "$ac_cv_f77_dummy_main" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_dummy_main" >&5 +printf "%s\n" "$ac_cv_f77_dummy_main" >&6; } F77_DUMMY_MAIN=$ac_cv_f77_dummy_main -if test "$F77_DUMMY_MAIN" != unknown; then : +if test "$F77_DUMMY_MAIN" != unknown +then : if test $F77_DUMMY_MAIN != none; then -cat >>confdefs.h <<_ACEOF -#define F77_DUMMY_MAIN $F77_DUMMY_MAIN -_ACEOF +printf "%s\n" "#define F77_DUMMY_MAIN $F77_DUMMY_MAIN" >>confdefs.h if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then -$as_echo "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h +printf "%s\n" "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h fi fi -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "linking to Fortran libraries from C fails See \`config.log' for more details" "$LINENO" 5; } fi @@ -11312,11 +12103,12 @@ ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 -$as_echo_n "checking for Fortran 77 name-mangling scheme... " >&6; } -if ${ac_cv_f77_mangling+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 +printf %s "checking for Fortran 77 name-mangling scheme... " >&6; } +if test ${ac_cv_f77_mangling+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return @@ -11325,7 +12117,8 @@ else return end _ACEOF -if ac_fn_f77_try_compile "$LINENO"; then : +if ac_fn_f77_try_compile "$LINENO" +then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS @@ -11346,9 +12139,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char $ac_func (); #ifdef F77_DUMMY_MAIN @@ -11367,17 +12157,18 @@ char $ac_func (); #endif #endif int -main () +main (void) { return $ac_func (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_success=yes; break 2 fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done done @@ -11412,9 +12203,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char $ac_func (); #ifdef F77_DUMMY_MAIN @@ -11433,17 +12221,18 @@ char $ac_func (); #endif #endif int -main () +main (void) { return $ac_func (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_success_extra=yes; break fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f @@ -11473,17 +12262,17 @@ ac_compiler_gnu=$ac_cv_f77_compiler_gnu LIBS=$ac_save_LIBS rm -rf conftest* rm -f cfortran_test* -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program See \`config.log' for more details" "$LINENO" 5; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_mangling" >&5 -$as_echo "$ac_cv_f77_mangling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_mangling" >&5 +printf "%s\n" "$ac_cv_f77_mangling" >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -11497,7 +12286,8 @@ acx_lapack_ok=no LAPACK_LIBS="" # Check whether --with-lapack_libs was given. -if test "${with_lapack_libs+set}" = set; then : +if test ${with_lapack_libs+y} +then : withval=$with_lapack_libs; fi @@ -11523,22 +12313,23 @@ fi # First, check LAPACK_LIBS environment variable if test "x$LAPACK_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in $LAPACK_LIBS" >&5 -$as_echo_n "checking for $cheev in $LAPACK_LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $cheev in $LAPACK_LIBS" >&5 +printf %s "checking for $cheev in $LAPACK_LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call $cheev end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_lapack_ok=yes -else +else $as_nop LAPACK_LIBS="" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_lapack_ok" >&5 -$as_echo "$acx_lapack_ok" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_lapack_ok" >&5 +printf "%s\n" "$acx_lapack_ok" >&6; } LIBS="$save_LIBS" if test acx_lapack_ok = no; then LAPACK_LIBS="" @@ -11548,9 +12339,10 @@ fi # LAPACK linked to by default? (is sometimes included in BLAS lib) if test $acx_lapack_ok = no; then save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" - as_ac_var=`$as_echo "ac_cv_func_$cheev" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$cheev" | $as_tr_sh` ac_fn_fc_check_func "$LINENO" "$cheev" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : acx_lapack_ok=yes fi @@ -11561,12 +12353,13 @@ fi for lapack in lapack lapack_rs6k; do if test $acx_lapack_ok = no; then save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" - as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_$cheev" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 -$as_echo_n "checking for $cheev in -l$lapack... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$lapack""_$cheev" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 +printf %s "checking for $cheev in -l$lapack... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$lapack $FLIBS $LIBS" cat > conftest.$ac_ext <<_ACEOF @@ -11574,19 +12367,21 @@ cat > conftest.$ac_ext <<_ACEOF call $cheev end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : acx_lapack_ok=yes; LAPACK_LIBS="-l$lapack" fi @@ -11618,22 +12413,23 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test "x$LAPACK_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dlaran in $LAPACK_LIBS" >&5 -$as_echo_n "checking for $dlaran in $LAPACK_LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $dlaran in $LAPACK_LIBS" >&5 +printf %s "checking for $dlaran in $LAPACK_LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call $dlaran end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_dlaran_ok=yes -else +else $as_nop acx_dlaran_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_dlaran_ok" >&5 -$as_echo "$acx_dlaran_ok" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_dlaran_ok" >&5 +printf "%s\n" "$acx_dlaran_ok" >&6; } LIBS="$save_LIBS" fi fi @@ -11641,7 +12437,7 @@ fi # Execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_lapack_ok" = xyes; then -$as_echo "#define HAVE_LAPACK 1" >>confdefs.h +printf "%s\n" "#define HAVE_LAPACK 1" >>confdefs.h : else @@ -11651,12 +12447,12 @@ fi if test $acx_lapack_ok = "no"; then internal_lapack="yes"; - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find lapack. Using the built-in library" >&5 -$as_echo "$as_me: Could not find lapack. Using the built-in library" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Could not find lapack. Using the built-in library" >&5 +printf "%s\n" "$as_me: Could not find lapack. Using the built-in library" >&6;} elif (test -d "$with_lapack_libs" && test "$with_lapack_libs" = "") || test x"$enable_int_linalg" = "xyes" ; then internal_lapack="yes" - if test "$acx_lalpack_ok" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: Lapack found in ${LAPACK_LIBS} but imposing built-in library" >&5 -$as_echo "$as_me: Lapack found in ${LAPACK_LIBS} but imposing built-in library" >&6;}; fi + if test "$acx_lalpack_ok" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Lapack found in ${LAPACK_LIBS} but imposing built-in library" >&5 +printf "%s\n" "$as_me: Lapack found in ${LAPACK_LIBS} but imposing built-in library" >&6;}; fi fi if test "$internal_lapack" = "yes"; then @@ -11708,52 +12504,60 @@ fi # Check whether --with-fft_libs was given. -if test "${with_fft_libs+set}" = set; then : +if test ${with_fft_libs+y} +then : withval=$with_fft_libs; fi # Check whether --with-fft_path was given. -if test "${with_fft_path+set}" = set; then : +if test ${with_fft_path+y} +then : withval=$with_fft_path; fi # Check whether --with-fft_libdir was given. -if test "${with_fft_libdir+set}" = set; then : +if test ${with_fft_libdir+y} +then : withval=$with_fft_libdir; fi # Check whether --with-fft_includedir was given. -if test "${with_fft_includedir+set}" = set; then : +if test ${with_fft_includedir+y} +then : withval=$with_fft_includedir; fi # # Check whether --enable-internal_fftqe was given. -if test "${enable_internal_fftqe+set}" = set; then : +if test ${enable_internal_fftqe+y} +then : enableval=$enable_internal_fftqe; -else +else $as_nop enable_internal_fftqe=no fi # Check whether --enable-internal_fftsg was given. -if test "${enable_internal_fftsg+set}" = set; then : +if test ${enable_internal_fftsg+y} +then : enableval=$enable_internal_fftsg; -else +else $as_nop enable_internal_fftsg=no fi # Check whether --enable-3d_fft was given. -if test "${enable_3d_fft+set}" = set; then : +if test ${enable_3d_fft+y} +then : enableval=$enable_3d_fft; fi # # Check whether --with-fftsg_fac was given. -if test "${with_fftsg_fac+set}" = set; then : +if test ${with_fftsg_fac+y} +then : withval=$with_fftsg_fac; fi @@ -11778,10 +12582,10 @@ if test -d "$with_fft_path" || test -d "$with_fft_libdir" ; then # # external FFT # - if test -d "$with_fft_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT in $with_fft_path" >&5 -$as_echo_n "checking for FFT in $with_fft_path... " >&6; } ; fi - if test -d "$with_fft_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT in $with_fft_libdir" >&5 -$as_echo_n "checking for FFT in $with_fft_libdir... " >&6; } ; fi + if test -d "$with_fft_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT in $with_fft_path" >&5 +printf %s "checking for FFT in $with_fft_path... " >&6; } ; fi + if test -d "$with_fft_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT in $with_fft_libdir" >&5 +printf %s "checking for FFT in $with_fft_libdir... " >&6; } ; fi # if test -d "$with_fft_path" ; then try_fft_libdir=$with_fft_path/lib @@ -11797,16 +12601,16 @@ elif test x"$with_fft_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT Library using $with_fft_libs" >&5 -$as_echo_n "checking for FFT Library using $with_fft_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT Library using $with_fft_libs" >&5 +printf %s "checking for FFT Library using $with_fft_libs... " >&6; } try_fft_libs=$with_fft_libs # if test -d "$with_fft_includedir" ; then try_fft_incdir=$with_fft_includedir ; fi if test -z "$try_fft_incdir" ; then include_warn="yes" ; fi # else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 -$as_echo_n "checking for FFT... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 +printf %s "checking for FFT... " >&6; } fi # # check for FFTW @@ -11869,22 +12673,24 @@ if ! test x"$try_fft_libs" = "x" ; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : HAVE_FFTW="yes"; -else +else $as_nop HAVE_FFTW="no"; fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_omp _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : HAVE_FFTW_OMP="yes"; -else +else $as_nop HAVE_FFTW_OMP="no"; fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext # LIBS=$save_libs @@ -11896,18 +12702,18 @@ rm -f core conftest.err conftest.$ac_objext \ # if test "$try_fft_libs" = "-lfftw3" ; then FFT_info="(FFTW v3)"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: FFTW3" >&5 -$as_echo "FFTW3" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FFTW3" >&5 +printf "%s\n" "FFTW3" >&6; } elif test "$try_fft_libs" = "-lfftw3 -lfftw3_omp" && test "$HAVE_FFTW_OMP" = "yes" ; then FFT_info="(FFTW_OMP v3)"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: FFTW3_OMP" >&5 -$as_echo "FFTW3_OMP" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FFTW3_OMP" >&5 +printf "%s\n" "FFTW3_OMP" >&6; } else desc=Other if ! test -z "`echo $try_fft_libs | grep -i mkl`" ; then desc="MKL" ; fi FFT_info="(FFTW $desc)"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: FFTW ($desc) " >&5 -$as_echo "FFTW ($desc) " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FFTW ($desc) " >&5 +printf "%s\n" "FFTW ($desc) " >&6; } fi else def_fft="" @@ -11922,8 +12728,8 @@ else fi if test "$HAVE_FFT" = "yes" && test "$include_warn" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No include-dir specified for fft library" >&5 -$as_echo "$as_me: WARNING: No include-dir specified for fft library" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: No include-dir specified for fft library" >&5 +printf "%s\n" "$as_me: WARNING: No include-dir specified for fft library" >&2;} fi # # check for ESSL FFT @@ -11933,8 +12739,8 @@ if test -d "$try_fft_libdir" && test -d "$try_fft_incdir" ; then fi # if ! test x"$try_fft_libs" = "x" && ! test "$HAVE_FFT" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: FFTW no" >&5 -$as_echo "FFTW no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FFTW no" >&5 +printf "%s\n" "FFTW no" >&6; } # if ! test x"$try_fft_libdir" = "x" ; then FFT_PATH="-L$try_fft_libdir" ; fi # @@ -11944,30 +12750,31 @@ $as_echo "FFTW no" >&6; } LIBS="$FFT_PATH $try_fft_libs" if test x"$try_fft_incdir" != "x" ; then FCFLAGS="$FCFLAGS $IFLAG$try_fft_incdir" ; fi # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcft in $LIBS" >&5 -$as_echo_n "checking for dcft in $LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dcft in $LIBS" >&5 +printf %s "checking for dcft in $LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call dcft end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : HAVE_ESSL=yes -else +else $as_nop HAVE_ESSL=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_ESSL" >&5 -$as_echo "$HAVE_ESSL" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HAVE_ESSL" >&5 +printf "%s\n" "$HAVE_ESSL" >&6; } # LIBS=$save_libs LDFLAGS=$save_ldflags FCFLAGS=$save_fcflags # if test "$HAVE_ESSL" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 -$as_echo_n "checking for FFT... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 +printf %s "checking for FFT... " >&6; } if ! test x"$enable_3d_fft" = "xno" ; then FFT3D_CPP="-D_USE_3D_FFT" FFT_info="(FFT ESSL (FFTQE) with 3D support)"; @@ -11979,8 +12786,8 @@ $as_echo_n "checking for FFT... " >&6; } FFT_INCS="$IFLAG$try_fft_incdir" HAVE_FFT=yes compile_fftqe=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ESSL FFT" >&5 -$as_echo "ESSL FFT" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ESSL FFT" >&5 +printf "%s\n" "ESSL FFT" >&6; } fi fi # @@ -11989,8 +12796,8 @@ fi if ! test x"$HAVE_FFT" = "xyes" ; then # # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 -$as_echo_n "checking for FFT... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFT" >&5 +printf %s "checking for FFT... " >&6; } if test x"$enable_internal_fftqe" = "xyes" ; then use_internal_fftqe=yes use_internal_fftsg=no @@ -12027,8 +12834,8 @@ if test "$use_internal_fftqe" = "yes" ; then else compile_fftqe=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Internal FFTQE (FFTW2)" >&5 -$as_echo "Internal FFTQE (FFTW2)" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Internal FFTQE (FFTW2)" >&5 +printf "%s\n" "Internal FFTQE (FFTW2)" >&6; } fi if test "$HAVE_FFTQE" = "yes" ; then HAVE_FFT=yes ; fi @@ -12054,8 +12861,8 @@ if test "$use_internal_fftsg" = "yes" ; then FFT_LIBS="" HAVE_FFTSG=yes; internal_fft="yes"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: FFTSG" >&5 -$as_echo "FFTSG" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FFTSG" >&5 +printf "%s\n" "FFTSG" >&6; } fi if test "$HAVE_FFTSG" = "yes" ; then HAVE_FFT=yes ; fi @@ -12076,8 +12883,8 @@ if test "$use_internal_fftw" = "yes" ; then else compile_fftw=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Internal FFTW3" >&5 -$as_echo "Internal FFTW3" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Internal FFTW3" >&5 +printf "%s\n" "Internal FFTW3" >&6; } fi if test "$HAVE_FFTW" = "yes" ; then HAVE_FFT=yes ; fi @@ -12091,48 +12898,48 @@ ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") - $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) name" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) name" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) name" >>confdefs.h ;; "lower case, no underscore, extra underscore") - $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) name" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, no extra underscore") - $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, extra underscore") - $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) name ## __" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) name ## __" >>confdefs.h ;; "upper case, no underscore, no extra underscore") - $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) NAME" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) NAME" >>confdefs.h ;; "upper case, no underscore, extra underscore") - $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) NAME" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, no extra underscore") - $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, extra underscore") - $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h + printf "%s\n" "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h - $as_echo "#define F77_FUNC_(name,NAME) NAME ## __" >>confdefs.h + printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## __" >>confdefs.h ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 -$as_echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 +printf "%s\n" "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac @@ -12141,7 +12948,7 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - $as_echo "#define _FFTQE 1" >>confdefs.h + printf "%s\n" "#define _FFTQE 1" >>confdefs.h ac_config_headers="$ac_config_headers lib/fftqe/c_defs.h:lib/fftqe/c_defs.h.in" @@ -12163,86 +12970,99 @@ fi # # Check whether --enable-slepc_linalg was given. -if test "${enable_slepc_linalg+set}" = set; then : +if test ${enable_slepc_linalg+y} +then : enableval=$enable_slepc_linalg; fi # # Check whether --with-slepc_libs was given. -if test "${with_slepc_libs+set}" = set; then : +if test ${with_slepc_libs+y} +then : withval=$with_slepc_libs; fi # Check whether --with-slepc_incs was given. -if test "${with_slepc_incs+set}" = set; then : +if test ${with_slepc_incs+y} +then : withval=$with_slepc_incs; fi # Check whether --with-slepc_path was given. -if test "${with_slepc_path+set}" = set; then : +if test ${with_slepc_path+y} +then : withval=$with_slepc_path; fi # Check whether --with-slepc_libdir was given. -if test "${with_slepc_libdir+set}" = set; then : +if test ${with_slepc_libdir+y} +then : withval=$with_slepc_libdir; fi # Check whether --with-slepc_includedir was given. -if test "${with_slepc_includedir+set}" = set; then : +if test ${with_slepc_includedir+y} +then : withval=$with_slepc_includedir; fi # # Check whether --with-petsc_libs was given. -if test "${with_petsc_libs+set}" = set; then : +if test ${with_petsc_libs+y} +then : withval=$with_petsc_libs; fi # Check whether --with-petsc_incs was given. -if test "${with_petsc_incs+set}" = set; then : +if test ${with_petsc_incs+y} +then : withval=$with_petsc_incs; fi # Check whether --with-petsc_path was given. -if test "${with_petsc_path+set}" = set; then : +if test ${with_petsc_path+y} +then : withval=$with_petsc_path; fi # Check whether --with-petsc_libdir was given. -if test "${with_petsc_libdir+set}" = set; then : +if test ${with_petsc_libdir+y} +then : withval=$with_petsc_libdir; fi # Check whether --with-petsc_includedir was given. -if test "${with_petsc_includedir+set}" = set; then : +if test ${with_petsc_includedir+y} +then : withval=$with_petsc_includedir; fi # Check whether --with-slepc-branch was given. -if test "${with_slepc_branch+set}" = set; then : +if test ${with_slepc_branch+y} +then : withval=$with_slepc_branch; -else +else $as_nop with_slepc_branch=none fi # Check whether --with-petsc-branch was given. -if test "${with_petsc_branch+set}" = set; then : +if test ${with_petsc_branch+y} +then : withval=$with_petsc_branch; -else +else $as_nop with_petsc_branch=none fi @@ -12265,11 +13085,12 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12278,9 +13099,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char dlopen (); #ifdef F77_DUMMY_MAIN @@ -12299,27 +13117,29 @@ char dlopen (); #endif #endif int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else +else $as_nop ac_cv_lib_dl_dlopen=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : use_libdl="yes"; -else +else $as_nop use_libdl="no"; fi @@ -12354,12 +13174,12 @@ if test -d "$with_petsc_path" || test -d "$with_petsc_libdir" || test x"$with_pe # # external petsc # - if test x"$with_petsc_libs" != "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Petsc using $with_petsc_libs" >&5 -$as_echo_n "checking for Petsc using $with_petsc_libs... " >&6; } ; - elif test -d "$with_petsc_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Petsc in $with_petsc_libdir" >&5 -$as_echo_n "checking for Petsc in $with_petsc_libdir... " >&6; } ; - elif test -d "$with_petsc_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Petsc in $with_petsc_path" >&5 -$as_echo_n "checking for Petsc in $with_petsc_path... " >&6; } ; + if test x"$with_petsc_libs" != "x" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Petsc using $with_petsc_libs" >&5 +printf %s "checking for Petsc using $with_petsc_libs... " >&6; } ; + elif test -d "$with_petsc_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Petsc in $with_petsc_libdir" >&5 +printf %s "checking for Petsc in $with_petsc_libdir... " >&6; } ; + elif test -d "$with_petsc_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Petsc in $with_petsc_path" >&5 +printf %s "checking for Petsc in $with_petsc_path... " >&6; } ; fi # if test -d "$with_petsc_path" ; then @@ -12402,23 +13222,24 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu #include end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : petsc=yes -else +else $as_nop petsc=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext; # if test "x$petsc" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ; PETSC_INCS="$try_PETSC_INCS" ; PETSC_LIBS="$try_PETSC_LIBS" ; compile_petsc="no"; internal_petsc="no"; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; # fi # @@ -12431,8 +13252,8 @@ if test "x$enable_petsc" = "xyes" && test "x$petsc" = "xno" ; then # # internal petsc # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal Petsc library" >&5 -$as_echo_n "checking for internal Petsc library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal Petsc library" >&5 +printf %s "checking for internal Petsc library... " >&6; } # internal_petsc="yes" # @@ -12452,30 +13273,30 @@ $as_echo_n "checking for internal Petsc library... " >&6; } PETSC_LIBS="$PETSC_LIBS_DN" ; compile_petsc="no" ; if test "x$lapack_shared" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic already compiled" >&5 -$as_echo "dynamic already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: dynamic already compiled" >&5 +printf "%s\n" "dynamic already compiled" >&6; } ; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic found, despite no dynamic lapack detected." >&5 -$as_echo "dynamic found, despite no dynamic lapack detected." >&6; } ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: The compilation may fail. In case remove the dynamic petsc libs." >&5 -$as_echo "The compilation may fail. In case remove the dynamic petsc libs." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: dynamic found, despite no dynamic lapack detected." >&5 +printf "%s\n" "dynamic found, despite no dynamic lapack detected." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The compilation may fail. In case remove the dynamic petsc libs." >&5 +printf "%s\n" "The compilation may fail. In case remove the dynamic petsc libs." >&6; } ; fi elif test -e "$PETSC_LIBS_ST" ; then PETSC_LIBS="$PETSC_LIBS_ST" ; compile_petsc="no" ; if test "x$lapack_shared" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static found, despite dynamic lapack." >&5 -$as_echo "static found, despite dynamic lapack." >&6; } ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: You may delete the static petsc and re-run the configure to get smaller executables" >&5 -$as_echo "You may delete the static petsc and re-run the configure to get smaller executables" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static found, despite dynamic lapack." >&5 +printf "%s\n" "static found, despite dynamic lapack." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: You may delete the static petsc and re-run the configure to get smaller executables" >&5 +printf "%s\n" "You may delete the static petsc and re-run the configure to get smaller executables" >&6; } ; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static already compiled" >&5 -$as_echo "static already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static already compiled" >&5 +printf "%s\n" "static already compiled" >&6; } ; fi else compile_petsc="yes" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; fi # fi @@ -12502,12 +13323,12 @@ if test -d "$with_slepc_path" || test -d "$with_slec_libdir" || test x"$with_sle # # external slepc # - if test x"$with_slepc_libs" != "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Slepc using $with_slepc_libs" >&5 -$as_echo_n "checking for Slepc using $with_slepc_libs... " >&6; } ; - elif test -d "$with_slepc_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Slepc in $with_slepc_libdir" >&5 -$as_echo_n "checking for Slepc in $with_slepc_libdir... " >&6; } ; - elif test -d "$with_slepc_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Slepc in $with_slepc_path" >&5 -$as_echo_n "checking for Slepc in $with_slepc_path... " >&6; } ; + if test x"$with_slepc_libs" != "x" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Slepc using $with_slepc_libs" >&5 +printf %s "checking for Slepc using $with_slepc_libs... " >&6; } ; + elif test -d "$with_slepc_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Slepc in $with_slepc_libdir" >&5 +printf %s "checking for Slepc in $with_slepc_libdir... " >&6; } ; + elif test -d "$with_slepc_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Slepc in $with_slepc_path" >&5 +printf %s "checking for Slepc in $with_slepc_path... " >&6; } ; fi # if test -d "$with_slepc_path" ; then @@ -12546,24 +13367,25 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu #include end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : slepc=yes -else +else $as_nop slepc=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext; # if test "x$slepc" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ; SLEPC_INCS="$try_SLEPC_INCS" ; SLEPC_LIBS="$try_SLEPC_LIBS" ; compile_slepc="no"; internal_slepc="no"; def_slepc="-D_SLEPC"; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; # fi # @@ -12577,8 +13399,8 @@ if test "x$enable_slepc" = "xyes" && test "x$slepc" = "xno" && test "x$enable_pe # # internal slepc # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal Slepc library" >&5 -$as_echo_n "checking for internal Slepc library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal Slepc library" >&5 +printf %s "checking for internal Slepc library... " >&6; } # internal_slepc="yes"; # @@ -12596,30 +13418,30 @@ $as_echo_n "checking for internal Slepc library... " >&6; } SLEPC_LIBS="$SLEPC_LIBS_DN -Wl,-rpath=${extlibs_path}/${FCKIND}/${FC}/${build_precision}/lib" ; compile_slepc="no" ; if test "x$lapack_shared" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic already compiled" >&5 -$as_echo "dynamic already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: dynamic already compiled" >&5 +printf "%s\n" "dynamic already compiled" >&6; } ; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic found, despite no dynamic lapack detected." >&5 -$as_echo "dynamic found, despite no dynamic lapack detected." >&6; } ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: The compilation may fail. In case remove the dynamic slepc libs." >&5 -$as_echo "The compilation may fail. In case remove the dynamic slepc libs." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: dynamic found, despite no dynamic lapack detected." >&5 +printf "%s\n" "dynamic found, despite no dynamic lapack detected." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The compilation may fail. In case remove the dynamic slepc libs." >&5 +printf "%s\n" "The compilation may fail. In case remove the dynamic slepc libs." >&6; } ; fi elif test -e "$SLEPC_LIBS_ST" ; then SLEPC_LIBS="$SLEPC_LIBS_ST" ; compile_slepc="no" ; if test "x$lapack_shared" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static found, despite dynamic lapack." >&5 -$as_echo "static found, despite dynamic lapack." >&6; } ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: You may delete the static slepc and re-run the configure to get smaller executables" >&5 -$as_echo "You may delete the static slepc and re-run the configure to get smaller executables" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static found, despite dynamic lapack." >&5 +printf "%s\n" "static found, despite dynamic lapack." >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: You may delete the static slepc and re-run the configure to get smaller executables" >&5 +printf "%s\n" "You may delete the static slepc and re-run the configure to get smaller executables" >&6; } ; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static already compiled" >&5 -$as_echo "static already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static already compiled" >&5 +printf "%s\n" "static already compiled" >&6; } ; fi else compile_slepc="yes" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; fi def_slepc="-D_SLEPC"; # @@ -12645,19 +13467,22 @@ fi # Check whether --enable-par_linalg was given. -if test "${enable_par_linalg+set}" = set; then : +if test ${enable_par_linalg+y} +then : enableval=$enable_par_linalg; fi # Check whether --with-blacs_libs was given. -if test "${with_blacs_libs+set}" = set; then : +if test ${with_blacs_libs+y} +then : withval=$with_blacs_libs; fi # Check whether --with-scalapack_libs was given. -if test "${with_scalapack_libs+set}" = set; then : +if test ${with_scalapack_libs+y} +then : withval=$with_scalapack_libs; fi @@ -12739,22 +13564,23 @@ if test "$mpibuild" = "yes"; then # First, check BLACS_LIBS environment variable if test "x$BLACS_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$BLACS_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $blacs_routine in $BLACS_LIBS" >&5 -$as_echo_n "checking for $blacs_routine in $BLACS_LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $blacs_routine in $BLACS_LIBS" >&5 +printf %s "checking for $blacs_routine in $BLACS_LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call $blacs_routine end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : enable_blacs="yes" -else +else $as_nop enable_blacs="internal"; BLACS_LIBS="" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_blacs" >&5 -$as_echo "$enable_blacs" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_blacs" >&5 +printf "%s\n" "$enable_blacs" >&6; } BLACS_LIBS="$acx_blacs_save_LIBS" LIBS="$save_LIBS" else @@ -12769,22 +13595,23 @@ $as_echo "$enable_blacs" >&6; } # First, check SCALAPACK_LIBS environment variable if test "x$SCALAPACK_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$SCALAPACK_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $scalapack_routine in $SCALAPACK_LIBS" >&5 -$as_echo_n "checking for $scalapack_routine in $SCALAPACK_LIBS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $scalapack_routine in $SCALAPACK_LIBS" >&5 +printf %s "checking for $scalapack_routine in $SCALAPACK_LIBS... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main call $scalapack_routine end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : enable_scalapack="yes" -else +else $as_nop enable_scalapack="internal"; SCALAPACK_LIBS="" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_scalapack" >&5 -$as_echo "$enable_scalapack" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_scalapack" >&5 +printf "%s\n" "$enable_scalapack" >&6; } SCALAPACK_LIBS="$acx_scalapack_save_LIBS" LIBS="$save_LIBS" else @@ -12858,25 +13685,29 @@ LIBS="$reset_LIBS" # # Check whether --with-hdf5_libs was given. -if test "${with_hdf5_libs+set}" = set; then : +if test ${with_hdf5_libs+y} +then : withval=$with_hdf5_libs; fi # Check whether --with-hdf5_path was given. -if test "${with_hdf5_path+set}" = set; then : +if test ${with_hdf5_path+y} +then : withval=$with_hdf5_path; fi # Check whether --with-hdf5_libdir was given. -if test "${with_hdf5_libdir+set}" = set; then : +if test ${with_hdf5_libdir+y} +then : withval=$with_hdf5_libdir; fi # Check whether --with-hdf5_includedir was given. -if test "${with_hdf5_includedir+set}" = set; then : +if test ${with_hdf5_includedir+y} +then : withval=$with_hdf5_includedir; fi @@ -12884,7 +13715,8 @@ fi # HDF5 data compression # # Check whether --enable-hdf5_compression was given. -if test "${enable_hdf5_compression+set}" = set; then : +if test ${enable_hdf5_compression+y} +then : enableval=$enable_hdf5_compression; fi @@ -12892,9 +13724,10 @@ fi # HDF5 PAR IO # # Check whether --enable-hdf5_par_io was given. -if test "${enable_hdf5_par_io+set}" = set; then : +if test ${enable_hdf5_par_io+y} +then : enableval=$enable_hdf5_par_io; -else +else $as_nop enable_hdf5_par_io="yes" fi @@ -12902,7 +13735,8 @@ fi # HDF5 FOR P2Y (also requires parallel HDF5) # # Check whether --enable-hdf5_p2y_support was given. -if test "${enable_hdf5_p2y_support+set}" = set; then : +if test ${enable_hdf5_p2y_support+y} +then : enableval=$enable_hdf5_p2y_support; fi @@ -12933,12 +13767,13 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -as_ac_Lib=`$as_echo "ac_cv_lib_z ''_deflate" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz " >&5 -$as_echo_n "checking for deflate in -lz ... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else +as_ac_Lib=`printf "%s\n" "ac_cv_lib_z ""_deflate" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz " >&5 +printf %s "checking for deflate in -lz ... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12947,9 +13782,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char deflate (); #ifdef F77_DUMMY_MAIN @@ -12968,36 +13800,39 @@ char deflate (); #endif #endif int -main () +main (void) { return deflate (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : use_libz="yes"; -else +else $as_nop use_libz="no"; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lsz" >&5 -$as_echo_n "checking for deflate in -lsz... " >&6; } -if ${ac_cv_lib_sz_deflate+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deflate in -lsz" >&5 +printf %s "checking for deflate in -lsz... " >&6; } +if test ${ac_cv_lib_sz_deflate+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13006,9 +13841,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char deflate (); #ifdef F77_DUMMY_MAIN @@ -13027,35 +13859,38 @@ char deflate (); #endif #endif int -main () +main (void) { return deflate (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_sz_deflate=yes -else +else $as_nop ac_cv_lib_sz_deflate=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_deflate" >&5 -$as_echo "$ac_cv_lib_sz_deflate" >&6; } -if test "x$ac_cv_lib_sz_deflate" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_deflate" >&5 +printf "%s\n" "$ac_cv_lib_sz_deflate" >&6; } +if test "x$ac_cv_lib_sz_deflate" = xyes +then : use_libsz="yes"; -else +else $as_nop use_libsz="no"; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13064,9 +13899,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char dlopen (); #ifdef F77_DUMMY_MAIN @@ -13085,35 +13917,38 @@ char dlopen (); #endif #endif int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else +else $as_nop ac_cv_lib_dl_dlopen=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : use_libdl="yes"; -else +else $as_nop use_libdl="no"; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_version in -lcurl" >&5 -$as_echo_n "checking for curl_version in -lcurl... " >&6; } -if ${ac_cv_lib_curl_curl_version+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for curl_version in -lcurl" >&5 +printf %s "checking for curl_version in -lcurl... " >&6; } +if test ${ac_cv_lib_curl_curl_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcurl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13122,9 +13957,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char curl_version (); #ifdef F77_DUMMY_MAIN @@ -13143,35 +13975,38 @@ char curl_version (); #endif #endif int -main () +main (void) { return curl_version (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_curl_curl_version=yes -else +else $as_nop ac_cv_lib_curl_curl_version=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_version" >&5 -$as_echo "$ac_cv_lib_curl_curl_version" >&6; } -if test "x$ac_cv_lib_curl_curl_version" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_version" >&5 +printf "%s\n" "$ac_cv_lib_curl_curl_version" >&6; } +if test "x$ac_cv_lib_curl_curl_version" = xyes +then : use_libcurl="yes"; -else +else $as_nop use_libcurl="no"; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 -$as_echo_n "checking for cos in -lm... " >&6; } -if ${ac_cv_lib_m_cos+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +printf %s "checking for cos in -lm... " >&6; } +if test ${ac_cv_lib_m_cos+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13180,9 +14015,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char cos (); #ifdef F77_DUMMY_MAIN @@ -13201,27 +14033,29 @@ char cos (); #endif #endif int -main () +main (void) { return cos (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_m_cos=yes -else +else $as_nop ac_cv_lib_m_cos=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 -$as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +printf "%s\n" "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = xyes +then : use_libm="yes"; -else +else $as_nop use_libm="no"; fi @@ -13250,14 +14084,14 @@ if test x"$enable_hdf5" = "xyes"; then # if ! test "$with_hdf5_libs" = "internal" ; then # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HDF5" >&5 -$as_echo_n "checking for HDF5... " >&6; } ; - if test -d "$with_hdf5_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: in libdir $with_hdf5_libdir" >&5 -$as_echo "in libdir $with_hdf5_libdir" >&6; } ; - elif test -d "$with_hdf5_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: in path $with_hdf5_path" >&5 -$as_echo "in path $with_hdf5_path" >&6; } ; - elif test x"$with_hdf5_libs" != "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $with_hdf5_libs" >&5 -$as_echo "using $with_hdf5_libs" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HDF5" >&5 +printf %s "checking for HDF5... " >&6; } ; + if test -d "$with_hdf5_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in libdir $with_hdf5_libdir" >&5 +printf "%s\n" "in libdir $with_hdf5_libdir" >&6; } ; + elif test -d "$with_hdf5_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in path $with_hdf5_path" >&5 +printf "%s\n" "in path $with_hdf5_path" >&6; } ; + elif test x"$with_hdf5_libs" != "x" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using $with_hdf5_libs" >&5 +printf "%s\n" "using $with_hdf5_libs" >&6; } ; fi # ac_ext=${ac_fc_srcext-f} @@ -13298,25 +14132,26 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : hdf5=yes -else +else $as_nop hdf5=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext; # FCFLAGS="$save_fcflags" ; LIBS="$save_libs" ; # if test "x$hdf5" = "xno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; # # Automatic detection of hdf5 libs copied from QE # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HDF5 using h5pfc/h5fc system compilers" >&5 -$as_echo_n "checking for HDF5 using h5pfc/h5fc system compilers... " >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HDF5 using h5pfc/h5fc system compilers" >&5 +printf %s "checking for HDF5 using h5pfc/h5fc system compilers... " >&6; } ; # h5pfc="none" if test -e $with_hdf5_path/bin/h5pfc; then @@ -13364,12 +14199,13 @@ $as_echo_n "checking for HDF5 using h5pfc/h5fc system compilers... " >&6; } ; end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : hdf5=yes -else +else $as_nop hdf5=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext; # FCFLAGS="$save_fcflags" ; @@ -13378,10 +14214,10 @@ rm -f core conftest.err conftest.$ac_objext \ fi # if test "x$hdf5" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HDF5 using automatic library list" >&5 -$as_echo_n "checking for HDF5 using automatic library list... " >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HDF5 using automatic library list" >&5 +printf %s "checking for HDF5 using automatic library list... " >&6; } ; # # re-define lib and inc dirs # @@ -13421,12 +14257,13 @@ $as_echo_n "checking for HDF5 using automatic library list... " >&6; } ; end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : hdf5=yes -else +else $as_nop hdf5=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext; # FCFLAGS="$save_fcflags" ; @@ -13440,13 +14277,13 @@ rm -f core conftest.err conftest.$ac_objext \ HDF5_LIBS="$try_HDF5_LIBS" ; HDF5_INCS="$try_HDF5_INCS" ; if test $IO_LIB_VER = "parallel"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - parallel lib found" >&5 -$as_echo "yes - parallel lib found" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes - parallel lib found" >&5 +printf "%s\n" "yes - parallel lib found" >&6; } ; HDF5_OPT="--enable-parallel" ; fi if test $IO_LIB_VER = "serial"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - serial lib found" >&5 -$as_echo "yes - serial lib found" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes - serial lib found" >&5 +printf "%s\n" "yes - serial lib found" >&6; } ; HDF5_OPT="--disable-parallel" ; fi # AC_MSG_RESULT([yes]) ; @@ -13455,12 +14292,12 @@ $as_echo "yes - serial lib found" >&6; } ; # if test "x$hdf5" = xno; then if ! test "$with_hdf5_libs" = "internal" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; fi # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal HDF5 library" >&5 -$as_echo_n "checking for internal HDF5 library... " >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal HDF5 library" >&5 +printf %s "checking for internal HDF5 library... " >&6; }; internal_hdf5="yes" ; # NETCDF_VER="v4"; @@ -13480,8 +14317,8 @@ $as_echo_n "checking for internal HDF5 library... " >&6; }; if test -e "${NETCDF_HDF5_PATH}/lib/libhdf5.a"; then # compile_hdf5="no" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } ; # elif test "$IO_LIB_VER" = "serial" && test -e "${NETCDF_HDF5_PAR_PATH}/lib/libhdf5.a"; then # @@ -13490,8 +14327,8 @@ $as_echo "already compiled" >&6; } ; #HDF5_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5.a" ; HDF5_LIBS="-L${NETCDF_HDF5_PAR_PATH}/lib/ -lhdf5_hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5" ; HDF5_INCS="${IFLAG}${NETCDF_HDF5_PAR_PATH}/include" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 -$as_echo "already compiled (using parallel version)" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 +printf "%s\n" "already compiled (using parallel version)" >&6; } ; # else # @@ -13500,8 +14337,8 @@ $as_echo "already compiled (using parallel version)" >&6; } ; if test "$IO_LIB_VER" = "serial"; then HDF5_OPT="--disable-parallel" ; fi if test "$IO_LIB_VER" = "parallel"; then HDF5_OPT="--enable-parallel" ; fi # - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; # fi # @@ -13558,50 +14395,58 @@ fi # Check whether --with-netcdf_libs was given. -if test "${with_netcdf_libs+set}" = set; then : +if test ${with_netcdf_libs+y} +then : withval=$with_netcdf_libs; fi # Check whether --with-netcdf_path was given. -if test "${with_netcdf_path+set}" = set; then : +if test ${with_netcdf_path+y} +then : withval=$with_netcdf_path; fi # Check whether --with-netcdf_libdir was given. -if test "${with_netcdf_libdir+set}" = set; then : +if test ${with_netcdf_libdir+y} +then : withval=$with_netcdf_libdir; fi # Check whether --with-netcdf_includedir was given. -if test "${with_netcdf_includedir+set}" = set; then : +if test ${with_netcdf_includedir+y} +then : withval=$with_netcdf_includedir; fi # # Check whether --with-netcdff_libs was given. -if test "${with_netcdff_libs+set}" = set; then : +if test ${with_netcdff_libs+y} +then : withval=$with_netcdff_libs; fi # Check whether --with-netcdff_path was given. -if test "${with_netcdff_path+set}" = set; then : +if test ${with_netcdff_path+y} +then : withval=$with_netcdff_path; fi # Check whether --with-netcdff_libdir was given. -if test "${with_netcdff_libdir+set}" = set; then : +if test ${with_netcdff_libdir+y} +then : withval=$with_netcdff_libdir; fi # Check whether --with-netcdff_includedir was given. -if test "${with_netcdff_includedir+set}" = set; then : +if test ${with_netcdff_includedir+y} +then : withval=$with_netcdff_includedir; fi @@ -13609,7 +14454,8 @@ fi # Large Databases Support (LFS) # # Check whether --enable-netcdf_classic was given. -if test "${enable_netcdf_classic+set}" = set; then : +if test ${enable_netcdf_classic+y} +then : enableval=$enable_netcdf_classic; fi @@ -13617,7 +14463,8 @@ fi # NETCDF PAR IO # # Check whether --enable-netcdf_par_io was given. -if test "${enable_netcdf_par_io+set}" = set; then : +if test ${enable_netcdf_par_io+y} +then : enableval=$enable_netcdf_par_io; fi @@ -13625,7 +14472,8 @@ fi # HDF5 support # # Check whether --enable-netcdf_v3 was given. -if test "${enable_netcdf_v3+set}" = set; then : +if test ${enable_netcdf_v3+y} +then : enableval=$enable_netcdf_v3; fi @@ -13633,7 +14481,8 @@ fi # HDF5 data compression # # Check whether --enable-hdf5_compression was given. -if test "${enable_hdf5_compression+set}" = set; then : +if test ${enable_hdf5_compression+y} +then : enableval=$enable_hdf5_compression; fi @@ -13641,7 +14490,8 @@ fi # NETCDF SHODOW FOR OUTPUT FILES # # Check whether --enable-netcdf_output was given. -if test "${enable_netcdf_output+set}" = set; then : +if test ${enable_netcdf_output+y} +then : enableval=$enable_netcdf_output; fi @@ -13677,10 +14527,10 @@ if test -d "$with_netcdf_path" || test -d "$with_netcdf_libdir" ; then # # external netcdf # - if test -d "$with_netcdf_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetCDF in $with_netcdf_libdir" >&5 -$as_echo_n "checking for NetCDF in $with_netcdf_libdir... " >&6; } ; - elif test -d "$with_netcdf_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetCDF in $with_netcdf_path" >&5 -$as_echo_n "checking for NetCDF in $with_netcdf_path... " >&6; } ; + if test -d "$with_netcdf_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NetCDF in $with_netcdf_libdir" >&5 +printf %s "checking for NetCDF in $with_netcdf_libdir... " >&6; } ; + elif test -d "$with_netcdf_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NetCDF in $with_netcdf_path" >&5 +printf %s "checking for NetCDF in $with_netcdf_path... " >&6; } ; fi # if test -d "$with_netcdf_path" ; then @@ -13725,15 +14575,15 @@ elif test x"$with_netcdf_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetCDF Library using $with_netcdf_libs" >&5 -$as_echo_n "checking for NetCDF Library using $with_netcdf_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NetCDF Library using $with_netcdf_libs" >&5 +printf %s "checking for NetCDF Library using $with_netcdf_libs... " >&6; } if test -d "$with_netcdf_includedir" ; then try_NETCDF_INCS="$IFLAG$with_netcdf_includedir" ; fi if test -d "$with_netcdff_includedir" ; then try_NETCDFF_INCS="$IFLAG$with_netcdff_includedir" ; fi netcdf="yes"; try_NETCDF_LIBS="$with_netcdf_libs" ; try_NETCDFF_LIBS="$with_netcdff_libs" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } # fi # @@ -13758,23 +14608,24 @@ if test x"$enable_hdf5" = "xno"; then nf_err = nf90_create('netcdf_test',nf90_share,ID) end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : netcdf=yes -else +else $as_nop netcdf=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext; # if test "x$netcdf" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ; NETCDF_INCS="$try_NETCDF_INCS" ; NETCDF_LIBS="$try_NETCDF_LIBS" ; NETCDFF_INCS="$try_NETCDFF_INCS" ; NETCDFF_LIBS="$try_NETCDFF_LIBS" ; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; fi # FCFLAGS="$save_fcflags" ; @@ -13785,8 +14636,8 @@ $as_echo "no" >&6; } ; # # internal netcdf # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal NetCDF library" >&5 -$as_echo_n "checking for internal NetCDF library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal NetCDF library" >&5 +printf %s "checking for internal NetCDF library... " >&6; } # internal_netcdf="yes" # @@ -13812,22 +14663,22 @@ $as_echo_n "checking for internal NetCDF library... " >&6; } if test x"$enable_pnecdf" = "xyes"; then if test -e "${NETCDF_HDF5_PATH}/lib/libnetcdf.a" && test -e "${NETCDF_HDF5_PATH}/lib/libnetcdff.a"; then compile_netcdf="no" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } ; else compile_netcdf="yes" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; fi else if test -e "${NETCDF_HDF5_PATH}/lib/libnetcdf.a" && test -e "${NETCDF_HDF5_PATH}/lib/libnetcdff.a"; then compile_netcdf="no" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } ; else compile_netcdf="yes" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; fi fi # @@ -13862,12 +14713,13 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu end _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : netcdf=yes -else +else $as_nop netcdf=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext; # if test "x$netcdf" = "xyes"; then @@ -13875,8 +14727,8 @@ rm -f core conftest.err conftest.$ac_objext \ NETCDF_INCS="$try_NETCDF_INCS" ; NETCDFF_LIBS="$try_NETCDFF_LIBS" ; NETCDFF_INCS="$try_NETCDFF_INCS" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ; # fi # @@ -13884,11 +14736,11 @@ $as_echo "yes" >&6; } ; LIBS="$save_libs" ; # if test "x$netcdf" = "xno"; then - if test -d "$with_netcdf_libdir" || test -d "$with_netcdf_path" || test -d "$with_netcdff_libdir" || test -d "$with_netcdff_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ; fi + if test -d "$with_netcdf_libdir" || test -d "$with_netcdf_path" || test -d "$with_netcdff_libdir" || test -d "$with_netcdff_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ; fi # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal NETCDF library" >&5 -$as_echo_n "checking for internal NETCDF library... " >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal NETCDF library" >&5 +printf %s "checking for internal NETCDF library... " >&6; }; internal_netcdf="yes" ; # NETCDF_OPT="--enable-netcdf-4"; @@ -13909,8 +14761,8 @@ $as_echo_n "checking for internal NETCDF library... " >&6; }; if test -e "${NETCDF_HDF5_PATH}/lib/libnetcdf.a" && test -e "${NETCDF_HDF5_PATH}/lib/libnetcdff.a" ; then # compile_netcdf="no" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } ; # elif test "$IO_LIB_VER" = "serial" && test -e "${NETCDF_HDF5_PAR_PATH}/lib/libnetcdf.a" && test -e "${NETCDF_HDF5_PAR_PATH}/lib/libnetcdff.a" && test -e "${NETCDF_HDF5_PAR_PATH}/lib/libhdf5.a"; then # @@ -13922,8 +14774,8 @@ $as_echo "already compiled" >&6; } ; #NETCDFF_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libnetcdff.a" ; NETCDFF_LIBS="-L${NETCDF_HDF5_PAR_PATH}/lib/ -lnetcdff" ; NETCDFF_INCS="${IFLAG}${NETCDF_HDF5_PAR_PATH}/include" ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 -$as_echo "already compiled (using parallel version)" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 +printf "%s\n" "already compiled (using parallel version)" >&6; } ; # else # @@ -13932,8 +14784,8 @@ $as_echo "already compiled (using parallel version)" >&6; } ; if test "$IO_LIB_VER" = "serial"; then HDF5_OPT="--disable-parallel" ; fi if test "$IO_LIB_VER" = "parallel"; then HDF5_OPT="--enable-parallel" ; fi # - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } ; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ; # fi # @@ -14015,32 +14867,37 @@ fi # Check whether --enable-yaml_output was given. -if test "${enable_yaml_output+set}" = set; then : +if test ${enable_yaml_output+y} +then : enableval=$enable_yaml_output; fi # Check whether --with-yaml_libs was given. -if test "${with_yaml_libs+set}" = set; then : +if test ${with_yaml_libs+y} +then : withval=$with_yaml_libs; fi # Check whether --with-yaml_libdir was given. -if test "${with_yaml_libdir+set}" = set; then : +if test ${with_yaml_libdir+y} +then : withval=$with_yaml_libdir; fi # Check whether --with-yaml_libdir was given. -if test "${with_yaml_libdir+set}" = set; then : +if test ${with_yaml_libdir+y} +then : withval=$with_yaml_libdir; fi # Check whether --with-yaml_includedir was given. -if test "${with_yaml_includedir+set}" = set; then : +if test ${with_yaml_includedir+y} +then : withval=$with_yaml_includedir; fi @@ -14048,25 +14905,29 @@ fi # Check whether --with-futile_libs was given. -if test "${with_futile_libs+set}" = set; then : +if test ${with_futile_libs+y} +then : withval=$with_futile_libs; fi # Check whether --with-futile_libdir was given. -if test "${with_futile_libdir+set}" = set; then : +if test ${with_futile_libdir+y} +then : withval=$with_futile_libdir; fi # Check whether --with-futile_libdir was given. -if test "${with_futile_libdir+set}" = set; then : +if test ${with_futile_libdir+y} +then : withval=$with_futile_libdir; fi # Check whether --with-futile_includedir was given. -if test "${with_futile_includedir+set}" = set; then : +if test ${with_futile_includedir+y} +then : withval=$with_futile_includedir; fi @@ -14089,10 +14950,10 @@ if test "x$enable_yaml" = "xyes" ; then # # external YAML # - if test -d "$with_yaml_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for YAML in $with_yaml_path" >&5 -$as_echo_n "checking for YAML in $with_yaml_path... " >&6; } ; fi - if test -d "$with_yaml_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for YAML in $with_yaml_libdir" >&5 -$as_echo_n "checking for YAML in $with_yaml_libdir... " >&6; } ; fi + if test -d "$with_yaml_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for YAML in $with_yaml_path" >&5 +printf %s "checking for YAML in $with_yaml_path... " >&6; } ; fi + if test -d "$with_yaml_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for YAML in $with_yaml_libdir" >&5 +printf %s "checking for YAML in $with_yaml_libdir... " >&6; } ; fi # if test -d "$with_yaml_path" ; then try_yaml_libdir_src=$with_yaml_path/src @@ -14111,55 +14972,55 @@ $as_echo_n "checking for YAML in $with_yaml_libdir... " >&6; } ; fi compile_yaml="no" YAML_INCS="$IFLAG$try_yaml_incdir_src" YAML_LIBS="$try_yaml_libdir_src/libyaml.a" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } elif test -r $try_yaml_libdir/libyaml.a && test -e $try_yaml_incdir/yaml_module.mod ; then compile_yaml="no" YAML_INCS="$IFLAG$try_yaml_incdir" YAML_LIBS="$try_yaml_libdir/libyaml.a" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 -$as_echo "no. Fallback to internal library." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 +printf "%s\n" "no. Fallback to internal library." >&6; } fi elif test x"$with_yaml_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for YAML Library using $with_yaml_libs" >&5 -$as_echo_n "checking for YAML Library using $with_yaml_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for YAML Library using $with_yaml_libs" >&5 +printf %s "checking for YAML Library using $with_yaml_libs... " >&6; } compile_yaml="no" if test -d "$with_yaml_includedir" ; then YAML_INCS="$IFLAG$with_yaml_includedir" ; fi YAML_LIBS="$with_yaml_libs" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi if test "$YAML_LIBS" = " "; then # # internal YAML # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal YAML library" >&5 -$as_echo_n "checking for internal YAML library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal YAML library" >&5 +printf %s "checking for internal YAML library... " >&6; } internal_yaml="yes" YAML_INCS="${IFLAG}${extlibs_path}/${FCKIND}/${FC}/include/" YAML_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libyaml.a" if ! test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libyaml.a" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/yaml_parse.mod" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/yaml.h"; then compile_yaml="yes" if test ! -d lib ; then mkdir lib ; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } else compile_yaml="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for YAML library" >&5 -$as_echo_n "checking for YAML library... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for YAML library" >&5 +printf %s "checking for YAML library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -14183,10 +15044,10 @@ if test "x$enable_futile" = "xyes" ; then # # external FUTILE # - if test -d "$with_futile_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FUTILE in $with_futile_path" >&5 -$as_echo_n "checking for FUTILE in $with_futile_path... " >&6; } ; fi - if test -d "$with_futile_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FUTILE in $with_futile_libdir" >&5 -$as_echo_n "checking for FUTILE in $with_futile_libdir... " >&6; } ; fi + if test -d "$with_futile_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUTILE in $with_futile_path" >&5 +printf %s "checking for FUTILE in $with_futile_path... " >&6; } ; fi + if test -d "$with_futile_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUTILE in $with_futile_libdir" >&5 +printf %s "checking for FUTILE in $with_futile_libdir... " >&6; } ; fi # if test -d "$with_futile_path" ; then try_futile_libdir_src=$with_futile_path/src @@ -14205,55 +15066,55 @@ $as_echo_n "checking for FUTILE in $with_futile_libdir... " >&6; } ; fi compile_futile="no" FUTILE_INCS="$IFLAG$try_futile_incdir_src" FUTILE_LIBS="$try_futile_libdir_src/libfutile-1.a" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } elif test -r $try_futile_libdir/libfutile-1.a && test -e $try_futile_incdir/futile_module.mod ; then compile_futile="no" FUTILE_INCS="$IFLAG$try_futile_incdir" FUTILE_LIBS="$try_futile_libdir/libfutile-1.a" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 -$as_echo "no. Fallback to internal library." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 +printf "%s\n" "no. Fallback to internal library." >&6; } fi elif test x"$with_futile_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FUTILE Library using $with_futile_libs" >&5 -$as_echo_n "checking for FUTILE Library using $with_futile_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUTILE Library using $with_futile_libs" >&5 +printf %s "checking for FUTILE Library using $with_futile_libs... " >&6; } compile_futile="no" if test -d "$with_futile_includedir" ; then FUTILE_INCS="$IFLAG$with_futile_includedir" ; fi FUTILE_LIBS="$with_futile_libs" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi if test "$FUTILE_LIBS" = " "; then # # internal FUTILE # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal FUTILE library" >&5 -$as_echo_n "checking for internal FUTILE library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal FUTILE library" >&5 +printf %s "checking for internal FUTILE library... " >&6; } internal_futile="yes" FUTILE_INCS="${IFLAG}${extlibs_path}/${FCKIND}/${FC}/include/" FUTILE_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libfutile-1.a" if ! test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libfutile-1.a" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/futile.mod" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/futile.h"; then compile_futile="yes" if test ! -d lib ; then mkdir lib ; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } else compile_futile="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FUTILE library" >&5 -$as_echo_n "checking for FUTILE library... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUTILE library" >&5 +printf %s "checking for FUTILE library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # if test $enable_yaml = "yes" && test $enable_futile = "yes" ; then @@ -14279,33 +15140,38 @@ fi # # Check whether --enable-iotk was given. -if test "${enable_iotk+set}" = set; then : +if test ${enable_iotk+y} +then : enableval=$enable_iotk; -else +else $as_nop enable_iotk="yes" fi # Check whether --with-iotk_libs was given. -if test "${with_iotk_libs+set}" = set; then : +if test ${with_iotk_libs+y} +then : withval=$with_iotk_libs; fi # Check whether --with-iotk_path was given. -if test "${with_iotk_path+set}" = set; then : +if test ${with_iotk_path+y} +then : withval=$with_iotk_path; fi # Check whether --with-iotk_libdir was given. -if test "${with_iotk_libdir+set}" = set; then : +if test ${with_iotk_libdir+y} +then : withval=$with_iotk_libdir; fi # Check whether --with-iotk_includedir was given. -if test "${with_iotk_includedir+set}" = set; then : +if test ${with_iotk_includedir+y} +then : withval=$with_iotk_includedir; fi @@ -14326,10 +15192,10 @@ if test "x$enable_iotk" = "xyes" ; then # # external IOTK # - if test -d "$with_iotk_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IOTK in $with_iotk_path" >&5 -$as_echo_n "checking for IOTK in $with_iotk_path... " >&6; } ; fi - if test -d "$with_iotk_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IOTK in $with_iotk_libdir" >&5 -$as_echo_n "checking for IOTK in $with_iotk_libdir... " >&6; } ; fi + if test -d "$with_iotk_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IOTK in $with_iotk_path" >&5 +printf %s "checking for IOTK in $with_iotk_path... " >&6; } ; fi + if test -d "$with_iotk_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IOTK in $with_iotk_libdir" >&5 +printf %s "checking for IOTK in $with_iotk_libdir... " >&6; } ; fi # if test -d "$with_iotk_path" ; then try_iotk_libdir_src=$with_iotk_path/src @@ -14350,39 +15216,39 @@ $as_echo_n "checking for IOTK in $with_iotk_libdir... " >&6; } ; fi IOTK_INCS="$IFLAG$try_iotk_incdir_src" #IOTK_LIBS="$try_iotk_libdir_src/libiotk.a" IOTK_LIBS="-L$try_iotk_libdir_src/ -liotk" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } elif test -r $try_iotk_libdir/libiotk.a && test -e $try_iotk_incdir/iotk_module.mod ; then compile_p2y="yes" compile_iotk="no" IOTK_INCS="$IFLAG$try_iotk_incdir" #IOTK_LIBS="$try_iotk_libdir/libiotk.a" IOTK_LIBS="-L$try_iotk_libdir/ -liotk" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 -$as_echo "no. Fallback to internal library." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no. Fallback to internal library." >&5 +printf "%s\n" "no. Fallback to internal library." >&6; } fi elif test x"$with_iotk_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IOTK Library using $with_iotk_libs" >&5 -$as_echo_n "checking for IOTK Library using $with_iotk_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IOTK Library using $with_iotk_libs" >&5 +printf %s "checking for IOTK Library using $with_iotk_libs... " >&6; } compile_p2y="yes" compile_iotk="no" if test -d "$with_iotk_includedir" ; then IOTK_INCS="$IFLAG$with_iotk_includedir" ; fi IOTK_LIBS="$with_iotk_libs" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi if test "$IOTK_LIBS" = " "; then # # internal IOTK # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal IOTK library" >&5 -$as_echo_n "checking for internal IOTK library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal IOTK library" >&5 +printf %s "checking for internal IOTK library... " >&6; } internal_iotk="yes" compile_p2y="yes" IOTK_INCS="${IFLAG}${extlibs_path}/${FCKIND}/${FC}/include/" @@ -14391,14 +15257,14 @@ $as_echo_n "checking for internal IOTK library... " >&6; } if ! test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libiotk.a" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/iotk_base.mod" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/iotk_specials.h"; then compile_iotk="yes" if test ! -d lib ; then mkdir lib ; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } ac_config_files="$ac_config_files lib/iotk/make_iotk.inc:lib/iotk/make_iotk.inc.in" else compile_iotk="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 -$as_echo "already compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled" >&5 +printf "%s\n" "already compiled" >&6; } fi fi # @@ -14414,10 +15280,10 @@ $as_echo "already compiled" >&6; } else PW_VER="no support" PW_CPP="" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IOTK library" >&5 -$as_echo_n "checking for IOTK library... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IOTK library" >&5 +printf %s "checking for IOTK library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # # @@ -14437,33 +15303,38 @@ fi # Check whether --enable-etsf_io was given. -if test "${enable_etsf_io+set}" = set; then : +if test ${enable_etsf_io+y} +then : enableval=$enable_etsf_io; -else +else $as_nop enable_etsf_io="no" fi # Check whether --with-etsf_io_libs was given. -if test "${with_etsf_io_libs+set}" = set; then : +if test ${with_etsf_io_libs+y} +then : withval=$with_etsf_io_libs; fi # Check whether --with-etsf_io_path was given. -if test "${with_etsf_io_path+set}" = set; then : +if test ${with_etsf_io_path+y} +then : withval=$with_etsf_io_path; fi # Check whether --with-etsf_io_libdir was given. -if test "${with_etsf_io_libdir+set}" = set; then : +if test ${with_etsf_io_libdir+y} +then : withval=$with_etsf_io_libdir; fi # Check whether --with-etsf_io_includedir was given. -if test "${with_etsf_io_includedir+set}" = set; then : +if test ${with_etsf_io_includedir+y} +then : withval=$with_etsf_io_includedir; fi @@ -14490,10 +15361,10 @@ if test "x$enable_etsf_io" = "xyes" ; then # # external ETSF_IO # - if test -d "$with_etsf_io_path" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO in $with_etsf_io_path" >&5 -$as_echo_n "checking for ETSF_IO in $with_etsf_io_path... " >&6; } ; fi - if test -d "$with_etsf_io_libdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO in $with_etsf_io_libdir" >&5 -$as_echo_n "checking for ETSF_IO in $with_etsf_io_libdir... " >&6; } ; fi + if test -d "$with_etsf_io_path" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO in $with_etsf_io_path" >&5 +printf %s "checking for ETSF_IO in $with_etsf_io_path... " >&6; } ; fi + if test -d "$with_etsf_io_libdir" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO in $with_etsf_io_libdir" >&5 +printf %s "checking for ETSF_IO in $with_etsf_io_libdir... " >&6; } ; fi # if test -d "$with_etsf_io_path" ; then try_etsf_libdir=$with_etsf_io_path/lib @@ -14512,50 +15383,50 @@ $as_echo_n "checking for ETSF_IO in $with_etsf_io_libdir... " >&6; } ; fi ETSF_LIBS="$try_etsf_libdir/libetsf_io.a" ETSF_INCS="$IFLAG$try_etsf_incdir" # - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi elif test x"$with_etsf_io_libs" != "x" ; then # # directly provided lib # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO Library using $with_etsf_io_libs" >&5 -$as_echo_n "checking for ETSF_IO Library using $with_etsf_io_libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO Library using $with_etsf_io_libs" >&5 +printf %s "checking for ETSF_IO Library using $with_etsf_io_libs... " >&6; } internal_etsf="no" compile_e2y="yes" if test -d "$with_etsf_io_includedir" ; then ETSF_INCS="$IFLAG$with_etsf_io_includedir" ; fi ETSF_LIBS="$with_etsf_io_libs" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else # # internal ETSF_IO # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for internal ETSF_IO Library" >&5 -$as_echo_n "checking for internal ETSF_IO Library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for internal ETSF_IO Library" >&5 +printf %s "checking for internal ETSF_IO Library... " >&6; } internal_etsf="yes" compile_e2y="yes" ETSF_INCS="${IFLAG}${extlibs_path}/${FCKIND}/${FC}/include" ETSF_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libetsf_io.a" if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libetsf_io.a"; then compile_etsf="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found already compiled" >&5 -$as_echo "found already compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found already compiled" >&5 +printf "%s\n" "found already compiled" >&6; } else compile_etsf="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 -$as_echo "to be compiled" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: to be compiled" >&5 +printf "%s\n" "to be compiled" >&6; } fi fi # else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO Library" >&5 -$as_echo_n "checking for ETSF_IO Library... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ETSF_IO Library" >&5 +printf %s "checking for ETSF_IO Library... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # @@ -14571,25 +15442,29 @@ fi # Check whether --with-libxc_libs was given. -if test "${with_libxc_libs+set}" = set; then : +if test ${with_libxc_libs+y} +then : withval=$with_libxc_libs; fi # Check whether --with-libxc_path was given. -if test "${with_libxc_path+set}" = set; then : +if test ${with_libxc_path+y} +then : withval=$with_libxc_path; fi # Check whether --with-libxc_libdir was given. -if test "${with_libxc_libdir+set}" = set; then : +if test ${with_libxc_libdir+y} +then : withval=$with_libxc_libdir; fi # Check whether --with-libxc_includedir was given. -if test "${with_libxc_includedir+set}" = set; then : +if test ${with_libxc_includedir+y} +then : withval=$with_libxc_includedir; fi @@ -14602,8 +15477,8 @@ compile_libxc="no" acx_libxc_save_LIBS="$LIBS" acx_libxc_save_FCFLAGS="$FCFLAGS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxc" >&5 -$as_echo_n "checking for libxc... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxc" >&5 +printf %s "checking for libxc... " >&6; } testprog=" program main @@ -14623,10 +15498,11 @@ if test ! -z "$LIBXC_LIBS"; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -14656,10 +15532,11 @@ if test x"$acx_libxc_ok" = xno ; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext # if dynamic / user provided linkage did not work, try static one @@ -14669,10 +15546,11 @@ rm -f core conftest.err conftest.$ac_objext \ cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi fi @@ -14750,66 +15628,71 @@ if test x"$acx_libxc_ok" = xyes; then cat > conftest.$ac_ext <<_ACEOF $testprog_11 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=110, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_12 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=120, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_20 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=200, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_203 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=203, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_21 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=210, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_4x _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=400, acx_libxc_ok=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext cat > conftest.$ac_ext <<_ACEOF $testprog_5x _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libxc_version=5, acx_libxc_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -cat >>confdefs.h <<_ACEOF -#define LIBXC_VERSION $acx_libxc_version -_ACEOF +printf "%s\n" "#define LIBXC_VERSION $acx_libxc_version" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Found external LibXC version=$acx_libxc_version (should be 5)" >&5 -$as_echo "Found external LibXC version=$acx_libxc_version (should be 5)" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Found external LibXC version=$acx_libxc_version (should be 5)" >&5 +printf "%s\n" "Found external LibXC version=$acx_libxc_version (should be 5)" >&6; } fi if test x"$acx_libxc_ok" = xyes; then @@ -14817,7 +15700,7 @@ if test x"$acx_libxc_ok" = xyes; then internal_libxc=no # -$as_echo "#define HAVE_LIBXC 1" >>confdefs.h +printf "%s\n" "#define HAVE_LIBXC 1" >>confdefs.h fi @@ -14830,12 +15713,12 @@ if test x"$acx_libxc_ok" = xno; then LIBXC_INCS="$IFLAG${extlibs_path}/${FCKIND}/${FC}/include" if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libxc.a" && test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libxcf90.a" && test -e ${extlibs_path}/${FCKIND}/${FC}/lib/libxcf03.a; then compile_libxc="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compatible external LibXC not found/specified. Found internal already compiled." >&5 -$as_echo "Compatible external LibXC not found/specified. Found internal already compiled." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external LibXC not found/specified. Found internal already compiled." >&5 +printf "%s\n" "Compatible external LibXC not found/specified. Found internal already compiled." >&6; } else compile_libxc="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compatible external LibXC not found/specified. Internal to be compiled." >&5 -$as_echo "Compatible external LibXC not found/specified. Internal to be compiled." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external LibXC not found/specified. Internal to be compiled." >&5 +printf "%s\n" "Compatible external LibXC not found/specified. Internal to be compiled." >&6; } fi fi @@ -14852,42 +15735,48 @@ LIBS="$acx_libxc_save_LIBS" # Check whether --with-cuda_libs was given. -if test "${with_cuda_libs+set}" = set; then : +if test ${with_cuda_libs+y} +then : withval=$with_cuda_libs; fi # Check whether --with-cuda_incs was given. -if test "${with_cuda_incs+set}" = set; then : +if test ${with_cuda_incs+y} +then : withval=$with_cuda_incs; fi # # Check whether --with-cuda_libdir was given. -if test "${with_cuda_libdir+set}" = set; then : +if test ${with_cuda_libdir+y} +then : withval=$with_cuda_libdir; fi # Check whether --with-cuda_includedir was given. -if test "${with_cuda_includedir+set}" = set; then : +if test ${with_cuda_includedir+y} +then : withval=$with_cuda_includedir; fi # # Check whether --with-cuda_path was given. -if test "${with_cuda_path+set}" = set; then : +if test ${with_cuda_path+y} +then : withval=$with_cuda_path; fi # # Check whether --enable-cuda-libs-check was given. -if test "${enable_cuda_libs_check+set}" = set; then : +if test ${enable_cuda_libs_check+y} +then : enableval=$enable_cuda_libs_check; -else +else $as_nop enable_cuda_libs_check=yes fi @@ -14949,65 +15838,69 @@ FCFLAGS="$LIBCUDA_INCS $acx_libcuda_save_FCFLAGS" # set from environment variable, if not blank if test ! -z "$CUDA_LIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcuda from environment" >&5 -$as_echo_n "checking for libcuda from environment... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from environment" >&5 +printf %s "checking for libcuda from environment... " >&6; } LIBCUDA_LIBS="$CUDA_LIBS" LIBS="$LIBCUDA_LIBS" cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libcuda_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # set from --with-cuda-libs flag if test x"$acx_libcuda_ok" = xno && test ! -z "$with_cuda_libs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcuda from --with-cuda-libs" >&5 -$as_echo_n "checking for libcuda from --with-cuda-libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from --with-cuda-libs" >&5 +printf %s "checking for libcuda from --with-cuda-libs... " >&6; } LIBCUDA_LIBS="$with_cuda_libs" LIBS="$LIBCUDA_LIBS" cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libcuda_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # dynamic linkage, separate Fortran interface if test x"$acx_libcuda_ok" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcuda from specified libcuda path, dynamic" >&5 -$as_echo_n "checking for libcuda from specified libcuda path, dynamic... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from specified libcuda path, dynamic" >&5 +printf %s "checking for libcuda from specified libcuda path, dynamic... " >&6; } LIBCUDA_LIBS="-L$libcuda_libdir -lcufft -lcusolver -lcublas -lcudart -lcuda" LIBS="$LIBCUDA_LIBS" cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libcuda_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # static linkage, separate Fortran interface if test x"$acx_libcuda_ok" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking static" >&5 -$as_echo_n "checking static... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking static" >&5 +printf %s "checking static... " >&6; } LIBCUDA_LIBS="$libcuda_libdir/libcuda.a" LIBS="$LIBCUDA_LIBS" cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_libcuda_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15017,13 +15910,13 @@ if test x"$acx_libcuda_ok" = xyes; then internal_libcuda=no # -$as_echo "#define HAVE_LIBCUDA 1" >>confdefs.h +printf "%s\n" "#define HAVE_LIBCUDA 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5 -$as_echo "yes." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes." >&5 +printf "%s\n" "yes." >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found." >&5 -$as_echo "not found." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found." >&5 +printf "%s\n" "not found." >&6; } use_libcuda=no compile_libcuda=no internal_libcuda=no @@ -15080,9 +15973,10 @@ LIBS="$acx_libcuda_save_LIBS" # # Check whether --with-cuda-cc was given. -if test "${with_cuda_cc+set}" = set; then : +if test ${with_cuda_cc+y} +then : withval=$with_cuda_cc; -else +else $as_nop with_cuda_cc=70 fi @@ -15161,77 +16055,88 @@ fi # Check whether --with-cuda-runtime was given. -if test "${with_cuda_runtime+set}" = set; then : +if test ${with_cuda_runtime+y} +then : withval=$with_cuda_runtime; -else +else $as_nop with_cuda_runtime=10.1 fi # # Check whether --with-cuda-int-libs was given. -if test "${with_cuda_int_libs+set}" = set; then : +if test ${with_cuda_int_libs+y} +then : withval=$with_cuda_int_libs; -else +else $as_nop with_cuda_int_libs=cufft,cublas,cusolver fi # # Check whether --enable-nvtx was given. -if test "${enable_nvtx+set}" = set; then : +if test ${enable_nvtx+y} +then : enableval=$enable_nvtx; -else +else $as_nop enable_nvtx="no" fi # # Check whether --with-gpu_libs was given. -if test "${with_gpu_libs+set}" = set; then : +if test ${with_gpu_libs+y} +then : withval=$with_gpu_libs; fi # Check whether --with-gpu_incs was given. -if test "${with_gpu_incs+set}" = set; then : +if test ${with_gpu_incs+y} +then : withval=$with_gpu_incs; fi # # Check whether --with-rocm_libs was given. -if test "${with_rocm_libs+set}" = set; then : +if test ${with_rocm_libs+y} +then : withval=$with_rocm_libs; fi # Check whether --with-rocm_incs was given. -if test "${with_rocm_incs+set}" = set; then : +if test ${with_rocm_incs+y} +then : withval=$with_rocm_incs; fi # Check whether --with-rocm_libdir was given. -if test "${with_rocm_libdir+set}" = set; then : +if test ${with_rocm_libdir+y} +then : withval=$with_rocm_libdir; fi # Check whether --with-rocm_includedir was given. -if test "${with_rocm_includedir+set}" = set; then : +if test ${with_rocm_includedir+y} +then : withval=$with_rocm_includedir; fi # Check whether --with-rocm_path was given. -if test "${with_rocm_path+set}" = set; then : +if test ${with_rocm_path+y} +then : withval=$with_rocm_path; fi # # Check whether --with-mklgpu_libs was given. -if test "${with_mklgpu_libs+set}" = set; then : +if test ${with_mklgpu_libs+y} +then : withval=$with_mklgpu_libs; fi @@ -15326,11 +16231,12 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 -$as_echo_n "checking for Fortran flag to compile .f90 files... " >&6; } -if ${ac_cv_fc_srcext_f90+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 +printf %s "checking for Fortran flag to compile .f90 files... " >&6; } +if test ${ac_cv_fc_srcext_f90+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_ext=f90 ac_fcflags_srcext_save=$ac_fcflags_srcext ac_fcflags_srcext= @@ -15346,17 +16252,18 @@ for ac_flag in none -qsuffix=f=f90 -Tf "-x $ac_try"; do end _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : ac_cv_fc_srcext_f90=$ac_flag; break fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done rm -f conftest.$ac_objext conftest.f90 ac_fcflags_srcext=$ac_fcflags_srcext_save fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 -$as_echo "$ac_cv_fc_srcext_f90" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 +printf "%s\n" "$ac_cv_fc_srcext_f90" >&6; } if test "x$ac_cv_fc_srcext_f90" = xunknown; then as_fn_error $? "Fortran could not compile .f90 files" "$LINENO" 5 else @@ -15376,32 +16283,35 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - as_CACHEVAR=`$as_echo "ax_cv_check_fcflags__$GPU_FLAGS" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Fortran compiler accepts $GPU_FLAGS" >&5 -$as_echo_n "checking whether Fortran compiler accepts $GPU_FLAGS... " >&6; } -if eval \${$as_CACHEVAR+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_CACHEVAR=`printf "%s\n" "ax_cv_check_fcflags__$GPU_FLAGS" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Fortran compiler accepts $GPU_FLAGS" >&5 +printf %s "checking whether Fortran compiler accepts $GPU_FLAGS... " >&6; } +if eval test \${$as_CACHEVAR+y} +then : + printf %s "(cached) " >&6 +else $as_nop ax_check_save_flags=$FCFLAGS FCFLAGS="$FCFLAGS $GPU_FLAGS" cat > conftest.$ac_ext <<_ACEOF MODULE test; use cudafor; END MODULE _ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : +if ac_fn_fc_try_compile "$LINENO" +then : eval "$as_CACHEVAR=yes" -else +else $as_nop eval "$as_CACHEVAR=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext FCFLAGS=$ax_check_save_flags fi eval ac_res=\$$as_CACHEVAR - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes" +then : have_cudafor=yes -else +else $as_nop have_cudafor=no fi @@ -15503,34 +16413,39 @@ fi # Check whether --with-devxlib_libs was given. -if test "${with_devxlib_libs+set}" = set; then : +if test ${with_devxlib_libs+y} +then : withval=$with_devxlib_libs; fi # Check whether --with-devxlib_path was given. -if test "${with_devxlib_path+set}" = set; then : +if test ${with_devxlib_path+y} +then : withval=$with_devxlib_path; fi # Check whether --with-devxlib_libdir was given. -if test "${with_devxlib_libdir+set}" = set; then : +if test ${with_devxlib_libdir+y} +then : withval=$with_devxlib_libdir; fi # Check whether --with-devxlib_includedir was given. -if test "${with_devxlib_includedir+set}" = set; then : +if test ${with_devxlib_includedir+y} +then : withval=$with_devxlib_includedir; fi # Check whether --with-devxlib-branch was given. -if test "${with_devxlib_branch+set}" = set; then : +if test ${with_devxlib_branch+y} +then : withval=$with_devxlib_branch; -else +else $as_nop with_devxlib_branch=none fi @@ -15555,8 +16470,8 @@ acx_devxlib_save_LIBS="$LIBS" acx_devxlib_save_FCFLAGS="$FCFLAGS" #This is fake, it is always going to fail -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for devxlib" >&5 -$as_echo_n "checking for devxlib... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for devxlib" >&5 +printf %s "checking for devxlib... " >&6; } testprog=" program main @@ -15575,10 +16490,11 @@ if test ! -z "$DEVXLIB_LIBS"; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15589,10 +16505,11 @@ if test x"$acx_devxlib_ok" = xno && test ! -z "$with_devxlib_libs" ; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15603,10 +16520,11 @@ if test x"$acx_devxlib_ok" = xno; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15617,10 +16535,11 @@ if test x"$acx_devxlib_ok" = xno; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15631,10 +16550,11 @@ if test x"$acx_devxlib_ok" = xno; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15645,10 +16565,11 @@ if test x"$acx_devxlib_ok" = xno; then cat > conftest.$ac_ext <<_ACEOF $testprog _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : +if ac_fn_fc_try_link "$LINENO" +then : acx_devxlib_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi @@ -15658,7 +16579,7 @@ if test x"$acx_devxlib_ok" = xyes; then internal_devxlib=no # -$as_echo "#define HAVE_DEVXLIB 1" >>confdefs.h +printf "%s\n" "#define HAVE_DEVXLIB 1" >>confdefs.h fi @@ -15669,8 +16590,8 @@ if test x"$acx_devxlib_ok" = xno; then DEVXLIB_INCS="$IFLAG${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/include" if test -e "${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/lib/libdevXlib.a"; then compile_devxlib="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Found internal already compiled." >&5 -$as_echo "Compatible external DevXlib not found/specified. Found internal already compiled." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Found internal already compiled." >&5 +printf "%s\n" "Compatible external DevXlib not found/specified. Found internal already compiled." >&6; } else if test x"$with_devxlib_branch" = "xnone"; then DEVXLIB_info="(devxlib tarball)" @@ -15678,8 +16599,8 @@ $as_echo "Compatible external DevXlib not found/specified. Found internal alread DEVXLIB_info="(devxlib $with_devxlib_branch branch)" fi compile_devxlib="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Internal to be compiled." >&5 -$as_echo "Compatible external DevXlib not found/specified. Internal to be compiled." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Internal to be compiled." >&5 +printf "%s\n" "Compatible external DevXlib not found/specified. Internal to be compiled." >&6; } fi fi FCFLAGS="$acx_devxlib_save_FCFLAGS" @@ -15809,19 +16730,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -15915,6 +16838,8 @@ fi + + # @@ -16401,8 +17326,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -16432,15 +17357,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -16454,8 +17379,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -16472,7 +17397,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -16488,8 +17413,8 @@ LTLIBOBJS=$ac_ltlibobjs ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -16512,14 +17437,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -16529,46 +17456,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -16577,13 +17504,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -16592,8 +17512,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -16605,30 +17529,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -16641,13 +17545,14 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -16674,18 +17579,20 @@ as_fn_unset () { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -16697,12 +17604,13 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -16733,7 +17641,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -16755,6 +17663,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -16768,6 +17680,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -16809,7 +17727,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -16818,7 +17736,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16881,7 +17799,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by Yambo $as_me 5.2.0 r.23610 h.97928140ba, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -16939,14 +17857,16 @@ $config_headers Report bugs to ." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ Yambo config.status 5.2.0 r.23610 h.97928140ba -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -16983,15 +17903,15 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -16999,7 +17919,7 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; @@ -17008,7 +17928,7 @@ do as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -17036,7 +17956,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -17050,7 +17970,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -17090,8 +18010,8 @@ done # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree @@ -17427,7 +18347,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -17435,17 +18355,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -17462,7 +18382,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -17486,9 +18406,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -17541,8 +18461,8 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -17584,9 +18504,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -17602,20 +18522,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -17656,8 +18576,8 @@ if test "$no_create" != yes; then $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # @@ -17799,3 +18719,4 @@ cat config/report if test "x$enable_ydb" = "xyes"; then cat config/msg_ydb fi + diff --git a/include/version/version.m4 b/include/version/version.m4 index 011aa841c1..2f76630f7e 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.2.0 r.23610 h.97928140ba, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23786" -SHASH="b039db29a4" +SREVISION="23851" +SHASH="79ace91a11" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 718bd4594c93882997829a42ce78ae1c4e08515b Mon Sep 17 00:00:00 2001 From: Andrea Marini Date: Mon, 28 Oct 2024 16:14:31 +0100 Subject: [PATCH 067/112] Version 5.2.0, Revision 23166, Hash 25ad1365b MODIFIED * configure include/headers/common/memory.h include/version/version.m4 p2y/p2y_pseudo.F lib/qe_pseudo/DOUBLE_project.dep bse/K.F bse/K_blocks.F bse/K_correlation_collisions_dir.F bz_ops/k_map_nearest_by_dir.F common/DOUBLE_project.dep common/RT_project.dep common/SC_project.dep io/io_header.F io/variables_Overlaps.F modules/mod_parallel.F nloptics/NL_Integrator.F nloptics/NL_current.F nloptics/NL_output.F nloptics/NL_start_and_restart.F pol_function/X_OUTPUT.F ypp/interface/INIT_ypp.F ypp/symmetries/fix_ATOMPROJs.F ypp/symmetries/fix_symmetries.F NEW * include/headers/common/parallel_memory.h common/NL_project.dep common/QED_project.dep stop_and_restart/NL_project.dep stop_and_restart/QED_project.dep stop_and_restart/RT_project.dep stop_and_restart/SC_project.dep Additions: - Added specific paralell memory header to move all memory.h needed modules in the file. Indeed before some additions to memory.h added modules that clash with the mod_parallel forcing to load the components needed by memory.h OUTSIDE the header (see K_blocks.F) Changes: - Cleaning the unused variables. - .dep files updated. Patch sent by: Andrea Marini --- configure | 22 ++--- include/headers/common/memory.h | 107 +-------------------- include/headers/common/parallel_memory.h | 114 +++++++++++++++++++++++ include/version/version.m4 | 6 +- interfaces/p2y/p2y_pseudo.F | 6 +- lib/qe_pseudo/DOUBLE_project.dep | 1 + src/bse/K.F | 2 +- src/bse/K_blocks.F | 10 +- src/bse/K_correlation_collisions_dir.F | 2 +- src/bz_ops/k_map_nearest_by_dir.F | 2 +- src/common/DOUBLE_project.dep | 1 + src/common/NL_project.dep | 3 + src/common/QED_project.dep | 3 + src/common/RT_project.dep | 2 + src/common/SC_project.dep | 2 + src/io/io_header.F | 3 +- src/io/variables_Overlaps.F | 2 +- src/modules/mod_parallel.F | 11 --- src/nloptics/NL_Integrator.F | 4 +- src/nloptics/NL_current.F | 2 +- src/nloptics/NL_output.F | 2 +- src/nloptics/NL_start_and_restart.F | 4 +- src/pol_function/X_OUTPUT.F | 4 +- src/stop_and_restart/NL_project.dep | 2 + src/stop_and_restart/QED_project.dep | 2 + src/stop_and_restart/RT_project.dep | 2 + src/stop_and_restart/SC_project.dep | 2 + ypp/interface/INIT_ypp.F | 4 +- ypp/symmetries/fix_ATOMPROJs.F | 2 +- ypp/symmetries/fix_symmetries.F | 5 +- 30 files changed, 176 insertions(+), 158 deletions(-) create mode 100644 include/headers/common/parallel_memory.h create mode 100644 src/common/NL_project.dep create mode 100644 src/common/QED_project.dep create mode 100644 src/stop_and_restart/NL_project.dep create mode 100644 src/stop_and_restart/QED_project.dep create mode 100644 src/stop_and_restart/RT_project.dep create mode 100644 src/stop_and_restart/SC_project.dep diff --git a/configure b/configure index 67f527502f..fe8d866ead 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23165 h.dee9922c5a. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23166 h.25ad1365b. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23165 h.dee9922c5a' -PACKAGE_STRING='Yambo 5.2.0 r.23165 h.dee9922c5a' +PACKAGE_VERSION='5.2.0 r.23166 h.25ad1365b' +PACKAGE_STRING='Yambo 5.2.0 r.23166 h.25ad1365b' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23165 h.dee9922c5a to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23166 h.25ad1365b to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23165 h.dee9922c5a:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23166 h.25ad1365b:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23165 h.dee9922c5a +Yambo configure 5.2.0 r.23166 h.25ad1365b generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23165 h.dee9922c5a, which was +It was created by Yambo $as_me 5.2.0 r.23166 h.25ad1365b, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23165" -SHASH="dee9922c5a" +SREVISION="23166" +SHASH="25ad1365b" @@ -16578,7 +16578,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23165 h.dee9922c5a, which was +This file was extended by Yambo $as_me 5.2.0 r.23166 h.25ad1365b, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16642,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23165 h.dee9922c5a +Yambo config.status 5.2.0 r.23166 h.25ad1365b configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/headers/common/memory.h b/include/headers/common/memory.h index 366163b7a2..f5bd84fe64 100644 --- a/include/headers/common/memory.h +++ b/include/headers/common/memory.h @@ -6,109 +6,11 @@ Authors (see AUTHORS file for details): HM AM */ - use memory, ONLY:MEM_err,MEM_msg,MEM_count,MEM_global_mesg,IPL - implicit none - -#if defined _MPI - - /* MPI only part */ - -#define CHECK_ALLOC_A(SIZE) \ - LOCAL_SIZE=SIZE NEWLINE \ - HOST_SIZE=SIZE NEWLINE \ - call PP_redux_wait(HOST_SIZE,COMM=PAR_COM_HOST%COMM) NEWLINE \ - if (PAR_COM_HOST%CPU_id==0 ) then - -#define CHECK_ALLOC_B(x,HOST_SIZE) \ - call MEM_global_mesg(QUOTES x QUOTES,kind(x),HOST_SIZE) NEWLINE \ - deallocate(x) NEWLINE \ - endif NEWLINE \ - call PP_wait(COMM=PAR_COM_HOST%COMM) - - -#define YAMBO_PAR_ALLOC_CHECK1(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC1(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif -#define YAMBO_PAR_ALLOC_CHECK2(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC2(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif -#define YAMBO_PAR_ALLOC_CHECK3(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC3(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif -#define YAMBO_PAR_ALLOC_CHECK4(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC4(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif -#define YAMBO_PAR_ALLOC_CHECK5(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC5(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif -#define YAMBO_PAR_ALLOC_CHECK6(x,SIZE) \ - if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ - CHECK_ALLOC_A(SIZE) NEWLINE \ - SIMPLE_ALLOC6(x,HOST_SIZE) NEWLINE \ - CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ - endif - -#else - - /* Without MPI */ -#define YAMBO_PAR_ALLOC_CHECK1(x,SIZE) -#define YAMBO_PAR_ALLOC_CHECK2(x,SIZE) -#define YAMBO_PAR_ALLOC_CHECK3(x,SIZE) -#define YAMBO_PAR_ALLOC_CHECK4(x,SIZE) -#define YAMBO_PAR_ALLOC_CHECK5(x,SIZE) -#define YAMBO_PAR_ALLOC_CHECK6(x,SIZE) + use pars, ONLY:IPL + use memory, ONLY:MEM_err,MEM_msg,MEM_count,MEM_global_mesg -#endif - - -#define YAMBO_PAR_ALLOC1(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK1(x,SIZE) NEWLINE \ - YAMBO_ALLOC1(x,LOCAL_SIZE) -#define YAMBO_PAR_ALLOC2(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK2(x,SIZE) NEWLINE \ - YAMBO_ALLOC2(x,LOCAL_SIZE) -#define YAMBO_PAR_ALLOC3(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK3(x,SIZE) NEWLINE \ - YAMBO_ALLOC3(x,LOCAL_SIZE) -#define YAMBO_PAR_ALLOC4(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK4(x,SIZE) NEWLINE \ - YAMBO_ALLOC4(x,LOCAL_SIZE) -#define YAMBO_PAR_ALLOC5(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK5(x,SIZE) NEWLINE \ - YAMBO_ALLOC5(x,LOCAL_SIZE) -#define YAMBO_PAR_ALLOC6(x,SIZE) \ - YAMBO_PAR_ALLOC_CHECK6(x,SIZE) NEWLINE \ - YAMBO_ALLOC6(x,LOCAL_SIZE) - - -#define SIMPLE_ALLOC1(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1))) -#define SIMPLE_ALLOC2(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1),SIZE(2))) -#define SIMPLE_ALLOC3(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3))) -#define SIMPLE_ALLOC4(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4))) -#define SIMPLE_ALLOC5(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4),SIZE(5))) -#define SIMPLE_ALLOC6(x,SIZE) \ - SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4),SIZE(5),SIZE(6))) + implicit none #define YAMBO_ALLOC1(x,SIZE) \ YAMBO_ALLOC(x,(SIZE(1))) @@ -126,7 +28,6 @@ #define SIMPLE_ALLOC(x,SIZE) \ allocate(x SIZE, &NEWLINE& stat=MEM_err,errmsg=MEM_msg) NEWLINE \ - #define YAMBO_ALLOC_P(x,SIZE) \ allocate(x SIZE, &NEWLINE& stat=MEM_err,errmsg=MEM_msg)NEWLINE \ if ( associated(x)) &NEWLINE& call MEM_count(QUOTES x QUOTES,x)NEWLINE \ @@ -153,5 +54,3 @@ if (.not.associated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ if ( associated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ if ( associated(x)) &NEWLINE& deallocate(x);nullify(x) - - diff --git a/include/headers/common/parallel_memory.h b/include/headers/common/parallel_memory.h new file mode 100644 index 0000000000..75ef9bdcb9 --- /dev/null +++ b/include/headers/common/parallel_memory.h @@ -0,0 +1,114 @@ +/* + License-Identifier: GPL + + Copyright (C) 2016 The Yambo Team + + Authors (see AUTHORS file for details): DS + +*/ + + use memory, ONLY:MEM_global_mesg + use parallel_m, ONLY:PAR_COM_HOST + use parallel_int, ONLY:PP_redux_wait,PP_wait + +#include + + integer(IPL) :: HOST_SIZE(1),LOCAL_SIZE(1) + +#if defined _MPI + + /* With MPI */ + +#define CHECK_ALLOC_A(SIZE) \ + LOCAL_SIZE=SIZE NEWLINE \ + HOST_SIZE=SIZE NEWLINE \ + call PP_redux_wait(HOST_SIZE,COMM=PAR_COM_HOST%COMM) NEWLINE \ + if (PAR_COM_HOST%CPU_id==0 ) then + +#define CHECK_ALLOC_B(x,HOST_SIZE) \ + call MEM_global_mesg(QUOTES x QUOTES,kind(x),HOST_SIZE) NEWLINE \ + deallocate(x) NEWLINE \ + endif NEWLINE \ + call PP_wait(COMM=PAR_COM_HOST%COMM) + +#define YAMBO_PAR_ALLOC_CHECK1(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC1(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif +#define YAMBO_PAR_ALLOC_CHECK2(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC2(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif +#define YAMBO_PAR_ALLOC_CHECK3(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC3(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif +#define YAMBO_PAR_ALLOC_CHECK4(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC4(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif +#define YAMBO_PAR_ALLOC_CHECK5(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC5(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif +#define YAMBO_PAR_ALLOC_CHECK6(x,SIZE) \ + if (PAR_COM_HOST%n_CPU>1) then NEWLINE \ + CHECK_ALLOC_A(SIZE) NEWLINE \ + SIMPLE_ALLOC6(x,HOST_SIZE) NEWLINE \ + CHECK_ALLOC_B(x,HOST_SIZE) NEWLINE \ + endif + +#else + + /* Without MPI */ + +#define YAMBO_PAR_ALLOC_CHECK1(x,SIZE) +#define YAMBO_PAR_ALLOC_CHECK2(x,SIZE) +#define YAMBO_PAR_ALLOC_CHECK3(x,SIZE) +#define YAMBO_PAR_ALLOC_CHECK4(x,SIZE) +#define YAMBO_PAR_ALLOC_CHECK5(x,SIZE) +#define YAMBO_PAR_ALLOC_CHECK6(x,SIZE) + +#endif + +#define YAMBO_PAR_ALLOC1(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK1(x,SIZE) NEWLINE \ + YAMBO_ALLOC1(x,LOCAL_SIZE) +#define YAMBO_PAR_ALLOC2(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK2(x,SIZE) NEWLINE \ + YAMBO_ALLOC2(x,LOCAL_SIZE) +#define YAMBO_PAR_ALLOC3(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK3(x,SIZE) NEWLINE \ + YAMBO_ALLOC3(x,LOCAL_SIZE) +#define YAMBO_PAR_ALLOC4(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK4(x,SIZE) NEWLINE \ + YAMBO_ALLOC4(x,LOCAL_SIZE) +#define YAMBO_PAR_ALLOC5(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK5(x,SIZE) NEWLINE \ + YAMBO_ALLOC5(x,LOCAL_SIZE) +#define YAMBO_PAR_ALLOC6(x,SIZE) \ + YAMBO_PAR_ALLOC_CHECK6(x,SIZE) NEWLINE \ + YAMBO_ALLOC6(x,LOCAL_SIZE) + +#define SIMPLE_ALLOC1(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1))) +#define SIMPLE_ALLOC2(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1),SIZE(2))) +#define SIMPLE_ALLOC3(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3))) +#define SIMPLE_ALLOC4(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4))) +#define SIMPLE_ALLOC5(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4),SIZE(5))) +#define SIMPLE_ALLOC6(x,SIZE) \ + SIMPLE_ALLOC(x,(SIZE(1),SIZE(2),SIZE(3),SIZE(4),SIZE(5),SIZE(6))) diff --git a/include/version/version.m4 b/include/version/version.m4 index e304c229a4..e003cc675e 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23165 h.dee9922c5a, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23166 h.25ad1365b, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23165" -SHASH="dee9922c5a" +SREVISION="23166" +SHASH="25ad1365b" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/interfaces/p2y/p2y_pseudo.F b/interfaces/p2y/p2y_pseudo.F index 7a34679f85..7acc5380b0 100644 --- a/interfaces/p2y/p2y_pseudo.F +++ b/interfaces/p2y/p2y_pseudo.F @@ -27,9 +27,9 @@ subroutine p2y_pseudo(k) ! type(bz_samp), intent(in) :: k ! K/Q points ! - type(pw_struct), target :: struct - type(pw_basis), target :: basis_con ! Needs to be target for wfc%basis later - type(pw_atoms) :: atoms + type(pw_struct),target :: struct + type(pw_basis), target :: basis_con ! Needs to be target for wfc%basis later + type(pw_atoms) :: atoms ! ! Work space ! diff --git a/lib/qe_pseudo/DOUBLE_project.dep b/lib/qe_pseudo/DOUBLE_project.dep index 68b4c8e50c..eb9021637a 100644 --- a/lib/qe_pseudo/DOUBLE_project.dep +++ b/lib/qe_pseudo/DOUBLE_project.dep @@ -39,3 +39,4 @@ us_module.o uspp.o ylmr2.o + diff --git a/src/bse/K.F b/src/bse/K.F index ac4c90a19d..5a7e0513e9 100644 --- a/src/bse/K.F +++ b/src/bse/K.F @@ -73,7 +73,7 @@ subroutine K(iq,Ken,Xk,q,X,Xw,W_bss) & i_kmq_s,i_kmq_s_m1,i_pmq_s,i_kmq_bz,i_pmq_bz,i_kmq,i_pmq,i_kp_mq_s,& & i_Tk,i_Tp,i_Tgrp_k,i_Tgrp_p,I_Tgrp_k_st,I_Tgrp_p_st,H_pos(2),& & i_v_k,i_v_p,i_c_k,i_c_p,i_k_sp_pol_c,i_p_sp_pol_c,i_k_sp_pol_v,i_p_sp_pol_v,iq_W,iq_W_bz,iq_W_s,ig_W,& -& i_kmq_t,i_pmq_t,i_k_bz_mem,i_kmq_bz_mem,qindx_tmp(2),ig_W_final +& i_kmq_t,i_pmq_t,i_k_bz_mem,i_kmq_bz_mem,qindx_tmp(2) ! OMP LAST DEF integer :: i_k_bz_last,i_p_bz_last,i_pmq_bz_last,i_kmq_bz_last, & & iq_W_bz_last,ig_W_last,iq_W_bz_mq_last,ig_W_mq_last diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 41a46887fd..7e8c0cbb68 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -20,22 +20,20 @@ subroutine K_blocks( ) !end type BS_block ! use pars, ONLY:cZERO,SP,IP,IPL - use parallel_m, ONLY:PAR_IND_T_ordered,myid,ncpu,PAR_COM_HOST - use parallel_int, ONLY:PP_wait,PP_redux_wait,PARALLEL_live_message + use parallel_m, ONLY:PAR_IND_T_ordered,myid,ncpu + use parallel_int, ONLY:PP_redux_wait,PARALLEL_live_message use BS, ONLY:BS_blk,n_BS_blks,n_BS_blks,BS_K_coupling,BS_T_grp,BS_nT_grps,& & BS_K_dim,BS_Block_size,BS_LiveTiming_steps,BS_H_dim,n_BS_blks_min,& & BS_n_eh_spaces,BS_res_ares_n_mat,BS_IO_dim,l_BS_ares_from_res use com, ONLY:msg ! -#include +#include ! - ! YAMBO_PAR_ALLOC - ! - integer(IPL) :: HOST_SIZE(1),TMP_SIZE,LOCAL_SIZE(1) complex(SP), allocatable :: BS_MAT(:) ! ! Work Space ! + integer(IPL) :: TMP_SIZE integer :: i_T,j_T,i_T_start,j_T_start,i_block,iB,i_res_ares,j_res_ares,n_new_blocks,n_BS_blks_CPUs(ncpu) integer(IPL) :: local_steps real(SP) :: N_Ts_total,N_Ts_local diff --git a/src/bse/K_correlation_collisions_dir.F b/src/bse/K_correlation_collisions_dir.F index 2024ae7980..589cfa62e9 100644 --- a/src/bse/K_correlation_collisions_dir.F +++ b/src/bse/K_correlation_collisions_dir.F @@ -35,7 +35,7 @@ subroutine K_correlation_collisions_dir(iq,i_block,qindx_ID_frag,Xk,q) & i_kmq_bz,i_pmq_bz,i_kmq,i_pmq,i_pmq_s,i_kp_mq_s,i_p_s,i_kmq_s,i_k_s,& & i_Tk,i_Tp,i_Tgrp_k,i_Tgrp_p,I_Tgrp_k_st,I_Tgrp_p_st,H_pos(2),& & i_v_k,i_v_p,i_c_k,i_c_p,i_k_sp_pol_c,i_p_sp_pol_c,i_k_sp_pol_v,i_p_sp_pol_v,iq_W,& -& i_kmq_t,i_pmq_t,i_s_collision,ig_W_final +& i_kmq_t,i_pmq_t ! OMP LAST DEF integer :: i_k_bz_last,i_p_bz_last,iq_W_bz_last,ig_W_last ! diff --git a/src/bz_ops/k_map_nearest_by_dir.F b/src/bz_ops/k_map_nearest_by_dir.F index 0c003a66c1..042085ead6 100644 --- a/src/bz_ops/k_map_nearest_by_dir.F +++ b/src/bz_ops/k_map_nearest_by_dir.F @@ -155,7 +155,7 @@ subroutine k_find_smallest_g0(g0_idx,g0_length) ! ! Find the smallest G0 in each direction ! - use pars, ONLY:SP,schlen + use pars, ONLY:SP use vec_operate, ONLY:c2a use R_lattice, ONLY:g_vec,ng_closed use com, ONLY:msg diff --git a/src/common/DOUBLE_project.dep b/src/common/DOUBLE_project.dep index 9e74404e7a..e524c6ffd5 100644 --- a/src/common/DOUBLE_project.dep +++ b/src/common/DOUBLE_project.dep @@ -14,6 +14,7 @@ G_rot_grid.o HyperbolicSecant_FT.o Kramers_Kronig.o + LEVELS_mirror.o LEVELS_respect_degenerations.o Laplace_transform.o Lorentzian_FT.o diff --git a/src/common/NL_project.dep b/src/common/NL_project.dep new file mode 100644 index 0000000000..a99b01bc82 --- /dev/null +++ b/src/common/NL_project.dep @@ -0,0 +1,3 @@ + LEVELS_mirror.o + LEVELS_respect_degenerations.o + diff --git a/src/common/QED_project.dep b/src/common/QED_project.dep new file mode 100644 index 0000000000..a99b01bc82 --- /dev/null +++ b/src/common/QED_project.dep @@ -0,0 +1,3 @@ + LEVELS_mirror.o + LEVELS_respect_degenerations.o + diff --git a/src/common/RT_project.dep b/src/common/RT_project.dep index b931466fa9..9c9375bb79 100644 --- a/src/common/RT_project.dep +++ b/src/common/RT_project.dep @@ -1,4 +1,6 @@ Fermi_fnc_fit.o HyperbolicSecant_FT.o + LEVELS_mirror.o + LEVELS_respect_degenerations.o OCCUPATIONS_Gaps.o diff --git a/src/common/SC_project.dep b/src/common/SC_project.dep index e25ec9e411..016ab2539c 100644 --- a/src/common/SC_project.dep +++ b/src/common/SC_project.dep @@ -1,2 +1,4 @@ + LEVELS_mirror.o + LEVELS_respect_degenerations.o OCCUPATIONS_Fermi.o diff --git a/src/io/io_header.F b/src/io/io_header.F index 7bf6826468..425e8de0b5 100644 --- a/src/io/io_header.F +++ b/src/io/io_header.F @@ -26,7 +26,7 @@ integer function io_header(ID,QPTS,R_LATT,WF,IMPOSE_SN,TEMP,KPTS,D_LATT,XC_KIND, & io_serial_number,io_file,io_com,io_mode,& & DUMP,VERIFY,NONE,db_alat,io_code_revision use zeros, ONLY:define_zeros - use global_XC, ONLY:G_E_xc_string,X_E_xc_string,K_E_xc_string,loaded_WF_xc_string,& + use global_XC, ONLY:G_E_xc_string,X_E_xc_string,K_E_xc_string,& & G_WF_xc_string,X_WF_xc_string,K_WF_xc_string ! implicit none @@ -418,7 +418,6 @@ subroutine XC_KIND_io(what,VAR_,string_,desc_) endif endif else - !call io_elemental(ID,CH0=loaded_WF_xc_string,VAR=desc_,WARN=WARN,OP=(/"=="/)) call io_elemental(ID,CH0=string_,VAR=desc_,WARN=WARN,OP=(/"=="/)) endif call io_elemental(ID,VAR="",VAR_SZ=0,MENU=0) diff --git a/src/io/variables_Overlaps.F b/src/io/variables_Overlaps.F index f128275d27..6b3d4b86ef 100644 --- a/src/io/variables_Overlaps.F +++ b/src/io/variables_Overlaps.F @@ -10,7 +10,7 @@ integer function variables_Overlaps(Dip,ID) use pars, ONLY:IP_YIO,LP_YIO,CR_YIO use DIPOLES, ONLY:DIPOLE_t,DIP_desc use IO_m, ONLY:io_status - use IO_int, ONLY:io_variable_elemental,def_variable_elemental,io_elemental + use IO_int, ONLY:io_variable_elemental,def_variable_elemental use global_XC, ONLY:Dipole_WF_xc_string,loaded_WF_xc_string use descriptors, ONLY:IO_desc_reset ! diff --git a/src/modules/mod_parallel.F b/src/modules/mod_parallel.F index 0b85f48b88..f0f4ec8341 100644 --- a/src/modules/mod_parallel.F +++ b/src/modules/mod_parallel.F @@ -179,17 +179,6 @@ module parallel_m integer,allocatable :: table(:) end type ! - ! ... GENERAL - !------------- - !type(PAR_scheme),SAVE :: PARs_K_ibz - !type(PAR_scheme),SAVE :: PARs_G_b - !type(PAR_scheme),SAVE :: PARs_Q_bz - ! - ! ... DIPOLES - !------------- - !type(PAR_scheme),SAVE :: PARs_DIP_K_ibz - !type(PAR_scheme),SAVE :: PARs_DIP_K_bz - ! ! ... PH Self Energy !-------------------- type(PAR_scheme),SAVE :: PARs_PH_Q_ibz diff --git a/src/nloptics/NL_Integrator.F b/src/nloptics/NL_Integrator.F index e8b37e68f7..23a69c4cc0 100644 --- a/src/nloptics/NL_Integrator.F +++ b/src/nloptics/NL_Integrator.F @@ -28,10 +28,10 @@ subroutine NL_Integrator(E,k,q,X,Integrator,i_time,V_bands) use pars, ONLY:SP,cZERO use QP_m, ONLY:QP_nk use nl_optics, ONLY:RK2,EULEREXP,RK2EXP,INVINT,RK4,RK4EXP,HEUN,CRANK_NICOLSON,I_relax,& -& NL_bands,NL_correlation,l_velocity_IPA +& NL_bands,l_velocity_IPA use real_time, ONLY:RT_step,Ho_plus_Sigma use electrons, ONLY:levels,n_sp_pol - use X_m, ONLY:X_t,global_gauge + use X_m, ONLY:X_t use R_lattice, ONLY:bz_samp use parallel_m, ONLY:PAR_IND_Xk_ibz,PAR_COM_Xk_ibz_INDEX,PAR_Xk_ibz_index use parallel_int, ONLY:PP_redux_wait diff --git a/src/nloptics/NL_current.F b/src/nloptics/NL_current.F index 8c76b272fc..917539d684 100644 --- a/src/nloptics/NL_current.F +++ b/src/nloptics/NL_current.F @@ -15,7 +15,7 @@ subroutine NL_current(k,E,V_input,NL_J) ! use pars, ONLY:SP,cZERO use units, ONLY:SPEED_OF_LIGHT - use R_lattice, ONLY:bz_samp,k_map,nXkibz + use R_lattice, ONLY:bz_samp,k_map use D_lattice, ONLY:DL_vol use electrons, ONLY:nel,levels,n_sp_pol,spin_occ use fields, ONLY:A_ext diff --git a/src/nloptics/NL_output.F b/src/nloptics/NL_output.F index 78fc546480..99a81c0bbf 100644 --- a/src/nloptics/NL_output.F +++ b/src/nloptics/NL_output.F @@ -9,7 +9,7 @@ subroutine NL_output(i_time,i_run) ! use pars, ONLY:SP,schlen,pi use units, ONLY:FS2AUT,HA2EV,SPEED_OF_LIGHT - use fields, ONLY:A_tot,A_ext,Efield + use fields, ONLY:A_tot,A_ext use com, ONLY:msg,of_open_close use stderr, ONLY:intc use real_time, ONLY:NE_steps,RT_step diff --git a/src/nloptics/NL_start_and_restart.F b/src/nloptics/NL_start_and_restart.F index 9c4f8c0000..35fb9173c0 100644 --- a/src/nloptics/NL_start_and_restart.F +++ b/src/nloptics/NL_start_and_restart.F @@ -17,7 +17,7 @@ subroutine NL_start_and_restart(E,k,Dip) ! [4] Initialize the bare Hartree and XC ! [5] Initialize the fields ! - use pars, ONLY:cZERO,rZERO,cONE,lchlen + use pars, ONLY:cZERO,rZERO,cONE use com, ONLY:msg use electrons, ONLY:levels,n_sp_pol use real_time, ONLY:rho_reference @@ -33,7 +33,7 @@ subroutine NL_start_and_restart(E,k,Dip) use parallel_m, ONLY:master_cpu use nl_optics, ONLY:Correlation,IPA,E_full,full_rho,V_bands,TDDFT,n_runs_todo,NL_LRC_alpha,NL_bands, & & V_xc_0,NL_initial_P,l_use_DIPOLES,n_runs,runs_done,JGM,E_xc_0,I_relax,l_use_DIPOLES,& -& VAL_BANDS,l_eval_CURRENT,NL_initial_J,NL_P,l_pump_and_probe +& VAL_BANDS,l_eval_CURRENT,NL_initial_J,NL_P use IO_int, ONLY:io_control use IO_m, ONLY:OP_RD_CL,NONE,file_is_present,VERIFY use parallel_int, ONLY:PP_redux_wait diff --git a/src/pol_function/X_OUTPUT.F b/src/pol_function/X_OUTPUT.F index a2d661d9b4..71075cba24 100644 --- a/src/pol_function/X_OUTPUT.F +++ b/src/pol_function/X_OUTPUT.F @@ -8,8 +8,8 @@ subroutine X_OUTPUT(iq,Xen,Xk,wv,X,spectra) ! use pars, ONLY:pi,SP - use D_lattice, ONLY:l_0D,l_1D,l_2D,l_3D - use drivers, ONLY:l_rpa_IP,l_bs_fxc,l_alda_fxc,l_pf_fxc,l_col_cut + use D_lattice, ONLY:l_3D + use drivers, ONLY:l_rpa_IP,l_bs_fxc,l_pf_fxc,l_col_cut use IO_int, ONLY:IO_and_Messaging_switch use frequency, ONLY:w_samp use electrons, ONLY:levels diff --git a/src/stop_and_restart/NL_project.dep b/src/stop_and_restart/NL_project.dep new file mode 100644 index 0000000000..85745cd1bb --- /dev/null +++ b/src/stop_and_restart/NL_project.dep @@ -0,0 +1,2 @@ + STOP_now.o + diff --git a/src/stop_and_restart/QED_project.dep b/src/stop_and_restart/QED_project.dep new file mode 100644 index 0000000000..85745cd1bb --- /dev/null +++ b/src/stop_and_restart/QED_project.dep @@ -0,0 +1,2 @@ + STOP_now.o + diff --git a/src/stop_and_restart/RT_project.dep b/src/stop_and_restart/RT_project.dep new file mode 100644 index 0000000000..85745cd1bb --- /dev/null +++ b/src/stop_and_restart/RT_project.dep @@ -0,0 +1,2 @@ + STOP_now.o + diff --git a/src/stop_and_restart/SC_project.dep b/src/stop_and_restart/SC_project.dep new file mode 100644 index 0000000000..85745cd1bb --- /dev/null +++ b/src/stop_and_restart/SC_project.dep @@ -0,0 +1,2 @@ + STOP_now.o + diff --git a/ypp/interface/INIT_ypp.F b/ypp/interface/INIT_ypp.F index 36b8fbdfcf..dbff92d196 100644 --- a/ypp/interface/INIT_ypp.F +++ b/ypp/interface/INIT_ypp.F @@ -17,7 +17,6 @@ subroutine INIT_ypp(E,instr,FINALIZE) & U_k_pts,U_interp_pts,U_q_pts,U_q_shifts,FineGd_DB1_paths,l_angular_momentum,l_position,& & l_QP_DB_expand,l_average_eh,l_interp,l_regular_grid,DIPs use pars, ONLY:pi,schlen - use D_lattice, ONLY:i_time_rev use it_tools, ONLY:ofiles_append,infile_dump,runlevel_is_on use it_m, ONLY:initdefs,initmode,infile,nrnlvls,rnlvls,infile_verbosity,& V_general,V_qp,V_all,V_real_time,V_nl_optics @@ -51,7 +50,8 @@ subroutine INIT_ypp(E,instr,FINALIZE) use pars, ONLY:SP #endif #if defined _YPP_ELPH - use YPP_ELPH + use YPP_ELPH, ONLY:l_phonons,l_atomic_amplitude,l_eliashberg,l_gkkp,l_gkkp_db,l_gkkp_dg,l_gkkp_plot,& +& l_ph_ass_dos #endif #if defined _YAML_OUTPUT use pars, ONLY:logfile_index,repfile_index diff --git a/ypp/symmetries/fix_ATOMPROJs.F b/ypp/symmetries/fix_ATOMPROJs.F index 0a28cad2e4..19a2121315 100644 --- a/ypp/symmetries/fix_ATOMPROJs.F +++ b/ypp/symmetries/fix_ATOMPROJs.F @@ -10,7 +10,7 @@ subroutine fix_ATOMPROJs(E,k,k_save,kpoints_map,old_nsym,old_dl_sop,old_sop_inv, use pars, ONLY:SP,lchlen,cZERO use com, ONLY:msg,core_io_path,more_io_path use IO_int, ONLY:io_control - use IO_m, ONLY:OP_WR_CL,NONE,OP_APP_CL,OP_WR,OP_RD,VERIFY,& + use IO_m, ONLY:NONE,OP_APP_CL,OP_RD,VERIFY,& & OP_APP,cp_file,OP_RD_CL,RD_CL,RD,DUMP use electrons, ONLY:n_sp_pol use LIVE_t, ONLY:live_timing diff --git a/ypp/symmetries/fix_symmetries.F b/ypp/symmetries/fix_symmetries.F index d9c74a59ce..9330185067 100644 --- a/ypp/symmetries/fix_symmetries.F +++ b/ypp/symmetries/fix_symmetries.F @@ -39,10 +39,9 @@ subroutine fix_symmetries(old_nsym,old_dl_sop,old_sop_inv,S_contains_TR) ! Dummies ! integer :: i1,i2 - integer :: is,n_syms_to_check - logical :: reject_symmetry,found_symm + integer :: is + logical :: reject_symmetry real(SP) :: v1(3),v2(3) - real(SP) :: symm_to_check(3,3,2) ! use_E_field=.FALSE. use_B_field=.FALSE. From 3d9d10d40a1f649e65de81de726f91b6bc435655 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sun, 10 Nov 2024 17:47:25 +0100 Subject: [PATCH 068/112] Version 5.3.0, Revision 23864, Hash 6a7c1eb110 MODIFIED * configure include/version/version.m4 lib/archive/package.list DELETED * config/stamps_and_lists/project_dependencies.stamp Changes: - [yambo] Slepc and Petsc version updated 3.22.0 --> 3.22.1 Patch sent by: Davide Sangalli --- configure | 4 ++-- include/version/version.m4 | 4 ++-- lib/archive/package.list | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 45cb628db7..a1ac7e8712 100755 --- a/configure +++ b/configure @@ -2969,8 +2969,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23796" -SHASH="b00c133c8b" +SREVISION="23864" +SHASH="6a7c1eb110" diff --git a/include/version/version.m4 b/include/version/version.m4 index 073717a540..21bfcd829b 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.3.0 r.23795 h.87d0217fe1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23796" -SHASH="b00c133c8b" +SREVISION="23864" +SHASH="6a7c1eb110" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/archive/package.list b/lib/archive/package.list index 8aa5b56566..66b7f6fc06 100644 --- a/lib/archive/package.list +++ b/lib/archive/package.list @@ -35,8 +35,8 @@ version_libxc=5.2.3 version_lapack=3.12.0 version_blacs=missing version_scalapack=2.2.1 -version_slepc=3.22.0 -version_petsc=3.22.0 +version_slepc=3.22.1 +version_petsc=3.22.1 version_fftw=3.3.10 version_fftqe=missing version_yaml=0.2.2 From a57fe2c717934e1997a44d2e0ea06dbc66dbaa32 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 13 Nov 2024 23:36:37 +0100 Subject: [PATCH 069/112] Version 5.3.0, Revision 23865, Hash 3d9d10d40a MODIFIED * configure include/version/version.m4 bse/K_diago_driver.F bse/K_kernel.F linear_algebra/MATRIX_slepc.F DELETED * isolv+gpu_from_yambo_gpl Bugs: - fixed issues introduced with previous changes Patch sent by: Davide Sangalli --- configure | 4 +-- include/version/version.m4 | 4 +-- isolv+gpu_from_yambo_gpl | 0 src/bse/K_diago_driver.F | 8 +++-- src/bse/K_kernel.F | 11 ++++--- src/linear_algebra/MATRIX_slepc.F | 53 +++++++++++++++++++------------ 6 files changed, 48 insertions(+), 32 deletions(-) delete mode 100644 isolv+gpu_from_yambo_gpl diff --git a/configure b/configure index a1ac7e8712..a0c5d10c2d 100755 --- a/configure +++ b/configure @@ -2969,8 +2969,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23864" -SHASH="6a7c1eb110" +SREVISION="23866" +SHASH="3d9d10d40a" diff --git a/include/version/version.m4 b/include/version/version.m4 index 21bfcd829b..59dd3de750 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.3.0 r.23795 h.87d0217fe1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23864" -SHASH="6a7c1eb110" +SREVISION="23866" +SHASH="3d9d10d40a" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/isolv+gpu_from_yambo_gpl b/isolv+gpu_from_yambo_gpl deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 4bdba3470d..5205cb2c23 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -487,11 +487,15 @@ subroutine K_slepc_local_init() call msg( 'sr', '[SLEPC] BSS_slepc_matrix_format ',BSS_slepc_matrix_format) ! call parser('BSSEnTarget',l_target_energy) + if(l_target_energy .and. BSS_slepc_pseudo_herm) then + BSS_slepc_pseudo_herm = .false. + call warning('Target energy not supported in pseudo-hermitian case. Switching to non-hermitian diagonalization') + endif ! if (index(BSS_slepc_matrix_format,'explicit')>0) & - & call msg( 's', '[SLEPC] Faster algorithm but BSE matrix re-distributed from internal to slepc parallel scheme') + & call msg( 's', '[SLEPC] Faster algorithm, BSE matrix re-distributed from internal to slepc parallel scheme') if (BSS_slepc_matrix_format=='shell') & - & call msg( 's', '[SLEPC] Slower algorithm but BSE matrix used with yambo parallel distribution scheme') + & call msg( 's', '[SLEPC] Slower algorithm, BSE matrix used with yambo parallel distribution scheme') ! ! Number of states for partial diagonalization !================================================ diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 0244f0311f..3daa6a48ef 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -302,7 +302,11 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) l_write_kernel=.false. l_write_kernel_step= index(BSK_IO_mode,"write_all_steps")/=0 ! - if (l_write_kernel_step) call warning("Experimental mode, IO at every step. Restart not possible") + if (l_write_kernel_step) then + call warning("Experimental mode, IO at every step. Restart not possible") + else + BSS_kernel_last_stored_block=n_BS_blks + endif ! BS_blk_done=.false. ! @@ -910,10 +914,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) call io_control(ACTION=WR_CL,COM=REP,ID=ID) call io_BS_PAR_free(ID_head,ID,"full",.true.) ! In this mode the blocks are written to disk after each step and the memory is freed - if (io_BS_K) then - if( l_write_kernel_step) BS_K_has_been_calculated_loaded=.false. - if(.not.l_write_kernel_step) BSS_kernel_last_stored_block=n_BS_blks - endif + if (io_BS_K.and.l_write_kernel_step) BS_K_has_been_calculated_loaded=.false. #else call io_control(ACTION=WR_CL,COM=REP,SEC=(/n_BS_blks+2/),ID=ID) io_BS_err=io_BS(iq,X,ID) diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index f14c96794c..fddda9735b 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -160,32 +160,43 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! endif ! - ! GD and JD always want stkind to be defined. This is done - ! automatically by slepc, however with this line, I get the info in output - if (epskind==EPSGD) stkind=STPRECOND - if (epskind==EPSJD) stkind=STPRECOND - if (stkind==STPRECOND .and. epskind==EPSGD) kspkind=KSPPREONLY - if (stkind==STPRECOND .and. epskind==EPSJD) kspkind=KSPBCGS + stkind="none" + kspkind="none" + pckind="nopc" ! - call EPSGetST(eps,st,ierr) - call STGetKSP(st,ksp,ierr) + if (epskind==EPSGD.or.epskind==EPSJD) then + ! GD and JD always want stkind to be defined. This is done + ! automatically by slepc, however with this line, I get the info in output + stkind=STPRECOND + if (epskind==EPSGD) kspkind=KSPPREONLY + if (epskind==EPSJD) kspkind=KSPBCGS + ! + endif ! - call STSetType(st,stkind,ierr) - call KSPSetType(ksp,kspkind,ierr) + if (l_precondition) then + ! + if (epskind==EPSKRYLOVSCHUR) stkind=STSINVERT + ! + ! Default + !if (stkind==STSINVERT) kspkind=KSPBCGS + if (stkind==STSINVERT) kspkind=KSPPREONLY + ! + ! From user + if(index(BSS_slepc_precondition,KSPPREONLY)/=0) kspkind=KSPPREONLY + if(index(BSS_slepc_precondition,KSPBCGS)/=0) kspkind=KSPBCGS + ! + endif ! - pckind="nopc" + if (epskind==EPSGD.or.epskind==EPSJD.or.l_precondition) then + call EPSGetST(eps,st,ierr) + call STGetKSP(st,ksp,ierr) + ! + call STSetType(st,stkind,ierr) + call KSPSetType(ksp,kspkind,ierr) + ! + endif ! if (l_precondition) then - ! - if (epskind==EPSKRYLOVSCHUR) stkind=STSINVERT - ! - ! Default - !if (stkind==STSINVERT) kspkind=KSPBCGS - if (stkind==STSINVERT) kspkind=KSPPREONLY - ! - ! From user - if(index(BSS_slepc_precondition,KSPPREONLY)/=0) kspkind=KSPPREONLY - if(index(BSS_slepc_precondition,KSPBCGS)/=0) kspkind=KSPBCGS ! ! Default if (stkind==STSINVERT) pckind=PCLU From f9985b570f13bec319f93125b4263d4dce48606a Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 14 Nov 2024 15:26:08 +0100 Subject: [PATCH 070/112] Version 5.3.0, Revision 23866, Hash a57fe2c717 MODIFIED * configure include/version/version.m4 bse/K_stored_in_a_big_matrix.F DELETED * config/stamps_and_lists/project_dependencies.stamp Bugs: - [yambo] Fixed issue with allocation Patch sent by: Davide Sangalli --- configure | 4 ++-- include/version/version.m4 | 4 ++-- src/bse/K_stored_in_a_big_matrix.F | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/configure b/configure index a0c5d10c2d..d0649694ea 100755 --- a/configure +++ b/configure @@ -2969,8 +2969,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23866" -SHASH="3d9d10d40a" +SREVISION="23867" +SHASH="a57fe2c717" diff --git a/include/version/version.m4 b/include/version/version.m4 index 59dd3de750..c599c94d7b 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.3.0 r.23795 h.87d0217fe1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23866" -SHASH="3d9d10d40a" +SREVISION="23867" +SHASH="a57fe2c717" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_stored_in_a_big_matrix.F b/src/bse/K_stored_in_a_big_matrix.F index 91bc5bc2fc..a2795ea694 100644 --- a/src/bse/K_stored_in_a_big_matrix.F +++ b/src/bse/K_stored_in_a_big_matrix.F @@ -63,7 +63,8 @@ subroutine K_stored_in_a_big_matrix(i_BS_mat,iq,what) if (H_pos(1)+H_shift(1)>H_pos(2)+H_shift(2)) cycle if (l_BS_ares_from_res.and.H_pos(1)>H_pos(2)) cycle ! - Mij=BS_blk(i_B)%mat(i_r,i_c) + if( allocated(BS_blk(i_B)%mat)) Mij=BS_blk(i_B)%mat(i_r,i_c) + if(.not.allocated(BS_blk(i_B)%mat)) Mij=cZERO ! ! Add energies to the diagonal ! From 8750a03db9994353d36a383738e23598e41441ce Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 14 Nov 2024 22:50:47 +0100 Subject: [PATCH 071/112] Version 5.3.0, Revision 23867, Hash f9985b570f MODIFIED * configure include/version/version.m4 Ymodules/mod_interfaces.F bse/K_diago_driver.F bse/K_driver_init.F interface/INIT_load.F linear_algebra/MATRIX_slepc.F DELETED * config/stamps_and_lists/project_dependencies.stamp Bugs: - [yambo] Fixed few issues with new implementation Changes: - [yambo] Improving logic of slepc part Patch sent by: Davide Sangalli --- configure | 4 ++-- include/version/version.m4 | 4 ++-- src/Ymodules/mod_interfaces.F | 3 +-- src/bse/K_diago_driver.F | 26 ++++++++++++++++---------- src/bse/K_driver_init.F | 10 +++------- src/interface/INIT_load.F | 2 +- src/linear_algebra/MATRIX_slepc.F | 27 +++++++++++++++++---------- 7 files changed, 42 insertions(+), 34 deletions(-) diff --git a/configure b/configure index d0649694ea..bdcf4b1414 100755 --- a/configure +++ b/configure @@ -2969,8 +2969,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23867" -SHASH="a57fe2c717" +SREVISION="23868" +SHASH="f9985b570f" diff --git a/include/version/version.m4 b/include/version/version.m4 index c599c94d7b..ab16b9c1d3 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.3.0 r.23795 h.87d0217fe1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23867" -SHASH="a57fe2c717" +SREVISION="23868" +SHASH="f9985b570f" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/Ymodules/mod_interfaces.F b/src/Ymodules/mod_interfaces.F index 7efad150b2..0b8c4149b4 100644 --- a/src/Ymodules/mod_interfaces.F +++ b/src/Ymodules/mod_interfaces.F @@ -154,14 +154,13 @@ subroutine el_density_of_states(Xk,Xen,dos_E,DOS_broadening,DOS_bands,dos_value, end subroutine el_density_of_states ! #if defined _SLEPC && !defined _NL - subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cmpl) + subroutine MATRIX_slepc(M_slepc,n_eig,V_right,V_left,E_real,E_cmpl) ! use pars, ONLY:SP,schlen use petscmatdef, ONLY:tmat #include #include Mat :: M_slepc ! matrix to diagonalize of stype from slepc - logical :: l_target_energy integer :: n_eig ! number of eigenvalues to compute complex(SP) :: V_right(:,:) ! right eigenvalues complex(SP), optional :: V_left(:,:) ! left eigenvalues diff --git a/src/bse/K_diago_driver.F b/src/bse/K_diago_driver.F index 5205cb2c23..4182eeeb19 100644 --- a/src/bse/K_diago_driver.F +++ b/src/bse/K_diago_driver.F @@ -25,8 +25,9 @@ subroutine K_diago_driver(iq,W,X_static) use stderr, ONLY:intc use BS, ONLY:BS_K_coupling,BS_H_dim,BS_K_dim,BS_perturbative_SOC,& & BS_res_ares_n_mat,l_BS_optics,l_BS_dichroism !,BS_Blocks_symmetrize_K,& - use BS_solvers, ONLY:io_BSS_diago,BSS_perturbative_width,BSS_mode,BSS_slepc_double_grp,& -& BSS_write_eig_2_db,BSS_eh_W,BS_mat,BSS_n_eig,BS_E,BSS_slepc_pseudo_herm + use BS_solvers, ONLY:io_BSS_diago,BSS_perturbative_width,BSS_mode,& +& BSS_write_eig_2_db,BSS_eh_W,BS_mat,BSS_n_eig,BS_E,BSS_slepc_pseudo_herm,& +& BSS_slepc_target_E,BSS_slepc_precondition use X_m, ONLY:X_t,X_OUTPUT_driver use electrons, ONLY:n_sp_pol,n_spinor use frequency, ONLY:w_samp @@ -44,7 +45,7 @@ subroutine K_diago_driver(iq,W,X_static) use BS_solvers, ONLY:BSS_slepc_approach,BSS_slepc_matrix_format,& & Slepc_v,BS_HAYVEC_free #endif - use BS, ONLY:l_BS_kerr,l_BS_magnons,l_BS_photolum,l_BS_ares_from_res + use BS, ONLY:l_BS_kerr,l_BS_magnons,l_BS_photolum use MAGNONS, ONLY:BSS_MAGN_free use PHOTOLUM, ONLY:BSS_PL_free ! @@ -62,7 +63,7 @@ subroutine K_diago_driver(iq,W,X_static) ! Work Space ! integer :: i_BS_mat,Input_n_eig - logical :: K_is_not_hermitian,l_diago,l_slepc,l_target_energy,l_dip_more + logical :: K_is_not_hermitian,l_diago,l_slepc,l_dip_more character(1) :: sec character(5) :: Solver ! @@ -191,18 +192,19 @@ subroutine K_diago_driver(iq,W,X_static) if (index(BSS_slepc_matrix_format,"shell")>0) then ! 1. Here we will define a PetscShell matrix and define the matrix-vector multiplication ! using the K_multiply_by_V function used in the Haydock method + ! control of hermitian / pseudo-hermitian / non hermitian is inside K_shell_matrix call K_shell_matrix(i_BS_mat,slepc_mat) else if (index(BSS_slepc_matrix_format,"explicit")>0) then ! 2. Here we create a distributed PETSC matrix from the BS_blks ! There are 2 cases - if (BS_K_coupling.and.l_BS_ares_from_res.and..not.index(BSS_slepc_matrix_format,"debug")>0) then + ! control of hermitian / pseudo-hermitian / non hermitian is in part explicit here + if (BSS_slepc_pseudo_herm) then ! 2.1. Nest matrix uses pseudo-hermitian structure of BSE, only for the coupling case call K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) else ! 2.2. Single PETSc matrix, for resonant case or coupling call K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) endif - ! endif endif #endif @@ -223,7 +225,7 @@ subroutine K_diago_driver(iq,W,X_static) ! if(l_diago) call LINEAR_ALGEBRA_driver(DIAGO,M=BS_mat,E_cmpl=BS_E,V_left=BS_V_left,V_right=BS_V_right) #if defined _SLEPC && !defined _NL - if(l_slepc) call MATRIX_slepc(slepc_mat,l_target_energy,BSS_n_eig,BS_V_right,V_left=BS_V_left,E_cmpl=BS_E) + if(l_slepc) call MATRIX_slepc(slepc_mat,BSS_n_eig,BS_V_right,V_left=BS_V_left,E_cmpl=BS_E) #endif ! if (BSS_write_eig_2_db) BS_mat=BS_V_right @@ -232,7 +234,7 @@ subroutine K_diago_driver(iq,W,X_static) ! if(l_diago) call LINEAR_ALGEBRA_driver(DIAGO,M=BS_mat,E_real=BS_E_real) #if defined _SLEPC && !defined _NL - if(l_slepc) call MATRIX_slepc(slepc_mat,l_target_energy,BSS_n_eig,BS_mat,E_real=BS_E_real) + if(l_slepc) call MATRIX_slepc(slepc_mat,BSS_n_eig,BS_mat,E_real=BS_E_real) #endif ! BS_E=cmplx(BS_E_real,0._SP,kind=SP) @@ -486,11 +488,15 @@ subroutine K_slepc_local_init() use com, ONLY:msg call msg( 'sr', '[SLEPC] BSS_slepc_matrix_format ',BSS_slepc_matrix_format) ! - call parser('BSSEnTarget',l_target_energy) - if(l_target_energy .and. BSS_slepc_pseudo_herm) then + if (BSS_slepc_target_E/=0._SP .and. BSS_slepc_pseudo_herm) then BSS_slepc_pseudo_herm = .false. call warning('Target energy not supported in pseudo-hermitian case. Switching to non-hermitian diagonalization') endif + if (BSS_slepc_precondition/="none" .and. BSS_slepc_pseudo_herm) then + BSS_slepc_pseudo_herm = .false. + call warning('Preconditioning not supported in pseudo-hermitian case. Switching to non-hermitian diagonalization') + endif + ! if (index(BSS_slepc_matrix_format,'explicit')>0) & & call msg( 's', '[SLEPC] Faster algorithm, BSE matrix re-distributed from internal to slepc parallel scheme') diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index bbb27d0c9c..1cef6940c0 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -251,16 +251,12 @@ subroutine K_driver_init(what,iq,Ken,Xk) & call error("Wrong value of slepc matrix format: "//trim(BSS_slepc_matrix_format)) ! ! Special case, slepc with distributed matrix need to explicitly compute the anti-resonant block + ! This was needed in the past. Now the older implementation can be imposed + ! chosing shell-debug matric format l_slepc_special = index(BSS_mode,'s')/=0 .and. BS_K_coupling .and. (BSS_slepc_matrix_format=="shell-debug") ! - ! The doubling is activated unless explicily imposed by input since slepc - ! with shells requires the extended K_multiply_by_V for the non hermitian algorithm - ! Slepc are not (yet) able to deal with a pseudo-hermitian algorithm in some cases - ! or if imposed with "debug" input value of slepc matrix - ! - call parser('ImposeSymm',l_flag) - if (l_slepc_special.and..not.l_flag) l_BS_ares_from_res=.FALSE. BSS_slepc_double_grp=l_BS_ares_from_res.and.l_slepc_special + if (l_slepc_special) l_BS_ares_from_res=.FALSE. ! BSS_slepc_pseudo_herm=BS_K_coupling .and. l_BS_ares_from_res .and. & & (.not.BSS_slepc_double_grp) .and. index(BSS_slepc_matrix_format,"debug")==0 diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index 9a4afa57ec..7673695e45 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -324,7 +324,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) call it(defs,'BSSSlepcApproach','[SLEPC] Approach ("Krylov-Schur","Generalized-Davidson","Jacobi-Davidson")',& & BSS_slepc_approach,verb_level=V_resp) call it(defs,'BSSNEig', '[SLEPC] Number of eigenvalues to compute',BSS_n_eig) - call it(defs,'BSSEnTarget', '[SLEPC] Target energy to find eigenvalues',BSS_slepc_target_E,E_unit) + call it(defs,'BSSEnTarget', '[SLEPC] Target energy to find eigenvalues',BSS_slepc_target_E,E_unit,verb_level=V_resp) call it(defs,'BSSSlepcMaxIt', '[SLEPC] Maximum number of iterations',BSS_slepc_maxit) call it(defs,'BSSSlepcPrecondition','[SLEPC] Precondition technique (none|preonly+jacobi|bcgs+jacobi)',& & BSS_slepc_precondition,verb_level=V_resp) diff --git a/src/linear_algebra/MATRIX_slepc.F b/src/linear_algebra/MATRIX_slepc.F index fddda9735b..e22fb17b49 100644 --- a/src/linear_algebra/MATRIX_slepc.F +++ b/src/linear_algebra/MATRIX_slepc.F @@ -14,7 +14,7 @@ #include #include ! -subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cmpl) +subroutine MATRIX_slepc(M_slepc,n_eig,V_right,V_left,E_real,E_cmpl) ! ! 10/06/2016 HM ! Use slepc to obtain the first few eigenpairs of a large matrix @@ -45,7 +45,6 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! arguments ! Mat :: M_slepc - logical :: l_target_energy integer :: n_eig ! number of eigenvalues to compute complex(SP) :: V_right(:,:) ! right eigenvalues complex(SP), optional :: V_left(:,:) ! left eigenvalues @@ -165,9 +164,13 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm pckind="nopc" ! if (epskind==EPSGD.or.epskind==EPSJD) then + ! + ! Define stkind ! GD and JD always want stkind to be defined. This is done ! automatically by slepc, however with this line, I get the info in output stkind=STPRECOND + ! + ! Define kspkind if (epskind==EPSGD) kspkind=KSPPREONLY if (epskind==EPSJD) kspkind=KSPBCGS ! @@ -175,12 +178,16 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! if (l_precondition) then ! + ! (re)Define stkind + ! Default if (epskind==EPSKRYLOVSCHUR) stkind=STSINVERT + ! From user + if(index(BSS_slepc_precondition,STSINVERT)/=0) stkind=STSINVERT ! + ! (re)Define stkind ! Default !if (stkind==STSINVERT) kspkind=KSPBCGS if (stkind==STSINVERT) kspkind=KSPPREONLY - ! ! From user if(index(BSS_slepc_precondition,KSPPREONLY)/=0) kspkind=KSPPREONLY if(index(BSS_slepc_precondition,KSPBCGS)/=0) kspkind=KSPBCGS @@ -190,13 +197,14 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if (epskind==EPSGD.or.epskind==EPSJD.or.l_precondition) then call EPSGetST(eps,st,ierr) call STGetKSP(st,ksp,ierr) - ! + ! Pass stkind and kspkind to slepc call STSetType(st,stkind,ierr) call KSPSetType(ksp,kspkind,ierr) - ! endif ! if (l_precondition) then + ! + ! Define pckind ! ! Default if (stkind==STSINVERT) pckind=PCLU @@ -207,7 +215,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm if(index(BSS_slepc_precondition,PCLU)/=0) pckind=PCLU ! call KSPGetPC(ksp,pc,ierr) - ! + ! Pass pckind to slepc call PCSetType(pc,pckind,ierr) ! endif @@ -224,9 +232,8 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm ! call EPSSetExtraction(eps, extr, ierr) ! - if (l_target_energy.or.l_precondition) then - target_energy=0._SP - if(l_target_energy) target_energy=BSS_slepc_target_E + if (BSS_slepc_target_E/=0._SP.or.l_precondition) then + target_energy=BSS_slepc_target_E call EPSSetTarget(eps,target_energy,ierr) call EPSSetWhichEigenpairs(eps,EPS_TARGET_REAL,ierr) else @@ -290,7 +297,7 @@ subroutine MATRIX_slepc(M_slepc,l_target_energy,n_eig,V_right,V_left,E_real,E_cm call msg( 'sr', '[SLEPC] Extraction method ',BSS_slepc_extraction) call msg( 'sr', '[SLEPC] Number of requested eigenvalues ', n_eig ) ! - if (l_target_energy.or.l_precondition) then + if (BSS_slepc_target_E/=0._SP.or.l_precondition) then call msg( 'nsr', '[SLEPC] Criterion is target energy ', real(target_energy,SP)*HA2EV,'[eV]') else call msg( 'nsr', '[SLEPC] Criterion is smaller eigenvalues') From 507065460d23abeecfc87f7950cea4a3d3b0c6e0 Mon Sep 17 00:00:00 2001 From: marini Date: Tue, 26 Nov 2024 17:43:38 +0100 Subject: [PATCH 072/112] Version 5.2.0, Revision 23167, Hash 718bd4594 MODIFIED * config/m4/scalapack.m4 config/mk/global/actions/compile_interfaces.mk config/mk/global/actions/compile_yambo.mk config/mk/global/actions/compile_ypp.mk config/mk/global/functions/help.mk config/mk/global/functions/mk_exe.mk config/mk/global/targets.mk config/report.in config/setup.in configure include/version/version.m4 sbin/check_packages.sh sbin/compilation/helper.sh sbin/compilation/stamp_remove.sh sbin/developer_tools/clean_unused_variables.tcsh Changes: - Labeling of libraries imported from maintenance/compilation. Patch sent by: marini --- config/m4/scalapack.m4 | 7 +++- .../mk/global/actions/compile_interfaces.mk | 2 +- config/mk/global/actions/compile_yambo.mk | 4 +-- config/mk/global/actions/compile_ypp.mk | 4 +-- config/mk/global/functions/help.mk | 7 ++-- config/mk/global/functions/mk_exe.mk | 6 ++-- config/mk/global/targets.mk | 2 +- config/report.in | 13 ++++--- config/setup.in | 2 +- configure | 35 +++++++++++-------- include/version/version.m4 | 6 ++-- sbin/check_packages.sh | 2 +- sbin/compilation/helper.sh | 4 +-- sbin/compilation/stamp_remove.sh | 4 +-- .../clean_unused_variables.tcsh | 2 +- 15 files changed, 55 insertions(+), 45 deletions(-) diff --git a/config/m4/scalapack.m4 b/config/m4/scalapack.m4 index 680c1a0a98..b24a92b595 100644 --- a/config/m4/scalapack.m4 +++ b/config/m4/scalapack.m4 @@ -54,6 +54,11 @@ fi # # Parse configure options # +if test "$enable_par_linalg" = "yes" ; then + enable_blacs="internal" ; + enable_scalapack="internal" ; +fi +# case $with_blacs_libs in yes) enable_blacs="internal" ;; no) enable_blacs="no" ; enable_par_linalg="no" ;; @@ -127,7 +132,7 @@ if test "$mpibuild" = "yes"; then fi # if test "$mpif_found" = "yes" && test "$enable_blacs" = "internal"; then - enable_blacs="yes" + enable_blacs="yes"; internal_blacs="yes"; BLACS_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libblacs.a ${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_C_init.a ${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_init.a"; if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libblacs.a" && test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_init.a"; then diff --git a/config/mk/global/actions/compile_interfaces.mk b/config/mk/global/actions/compile_interfaces.mk index f9392a7b5d..dfc21c629e 100644 --- a/config/mk/global/actions/compile_interfaces.mk +++ b/config/mk/global/actions/compile_interfaces.mk @@ -30,7 +30,7 @@ $(GOALS): @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs @+LIBS="$(YLIBDRIVER)";LAB="$@_Ydriver_";BASE="lib/yambo/Ydriver/src";ADF="$(I_PRECMP) -D_$@";$(todo_lib);$(mk_lib) - @+LIBS="$(2Y_LIBS)";BASE="src";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(2Y_LIBS)";LAB="_Y_";BASE="src";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) @+LIBS="int_modules";BASE="interfaces";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_yambo.mk b/config/mk/global/actions/compile_yambo.mk index bc30765182..3dd89ecd4a 100644 --- a/config/mk/global/actions/compile_yambo.mk +++ b/config/mk/global/actions/compile_yambo.mk @@ -30,7 +30,7 @@ endif # # Compilation # -yambo yambo_ph yambo_sc yambo_rt yambo_nl: +yambo yambo_ph yambo_sc yambo_rt yambo_nl: @rm -f ${compdir}/log/"compile_"$@".log" @rm -f ${compdir}/config/stamps_and_lists/compilation_stop_$@.stamp @touch ${compdir}/config/stamps_and_lists/compiling_$@.stamp @@ -39,6 +39,6 @@ yambo yambo_ph yambo_sc yambo_rt yambo_nl: @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs @+LIBS="$(YLIBDRIVER)";LAB="$@_Ydriver_";BASE="lib/yambo/Ydriver/src";ADF="$(PRECMP) -D_yambo";$(todo_lib);$(mk_lib) - @+LIBS="$(SRC_LIBS)";BASE="src";ADF="$(PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_ypp.mk b/config/mk/global/actions/compile_ypp.mk index 1c9e921168..4c8b1a9e01 100644 --- a/config/mk/global/actions/compile_ypp.mk +++ b/config/mk/global/actions/compile_ypp.mk @@ -53,7 +53,7 @@ ypp ypp_ph ypp_sc ypp_rt_gpl ypp_rt ypp_nl: @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs @+LIBS="$(YLIBDRIVER)";LAB="$@_Ydriver_";BASE="lib/yambo/Ydriver/src";ADF="$(YPP_PRECMP) -D_ypp";$(todo_lib);$(mk_lib) - @+LIBS="$(Y_SRC_LIBS)";BASE="src";ADF="$(Y_PRECMP)";$(todo_lib);$(mk_lib) - @+LIBS="$(YPP_SRC_LIBS)";LAB="_ypp_";BASE="ypp";ADF="$(YPP_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(Y_SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(Y_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(YPP_SRC_LIBS)";LAB="_YPP_";BASE="ypp";ADF="$(YPP_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(mk_exe) diff --git a/config/mk/global/functions/help.mk b/config/mk/global/functions/help.mk index a8c02bfe8a..348fe9b5cd 100644 --- a/config/mk/global/functions/help.mk +++ b/config/mk/global/functions/help.mk @@ -6,7 +6,7 @@ # Authors (see AUTHORS file for details): AM # define yambo_help - $(ECHO) "\n This is $(y_version)"; + $(ECHO) "\n This is $(y_version)\n"; if [ "$(1)" = "header" ] || [ -z "$(1)" ] ; then \ $(ECHO) "\n Use the following commands to get specific help:\n" ;\ $(ECHO) " to get general info on the Yambo projects included in this source use:\n >make help what=intro" ;\ @@ -31,8 +31,9 @@ define yambo_help $(ECHO) "\n *** Utils ***";\ $(ECHO) -n " [utils] "; for target in $(UTILS); do $(ECHO) -n " $$target" ; done;$(ECHO) ;\ $(ECHO) "\n *** Files & Packages ***" ;\ - $(ECHO) " make check-packages = check the packages required (and optional) for Yambo to compile correctly";\ - $(ECHO) " make check-files = list all git untracked files and empty directories.";\ + $(ECHO) " make check-packages = check the packages required (and optional) for Yambo to compile correctly";\ + $(ECHO) " make check-files = list all git untracked files and empty directories.";\ + $(ECHO) " make dependencies what=update = clean and update the .mod dependencies files.";\ $(ECHO) "\n *** Cleaning ***" ;\ $(ECHO) " The cleaning procedure of yambo is divided in several modules: bin int-libs driver Ydriver src ypp interfaces conf dep";\ $(ECHO) " Each of these module can be called by using";\ diff --git a/config/mk/global/functions/mk_exe.mk b/config/mk/global/functions/mk_exe.mk index 7eb28c2324..041fa2c73a 100644 --- a/config/mk/global/functions/mk_exe.mk +++ b/config/mk/global/functions/mk_exe.mk @@ -6,11 +6,11 @@ # Authors (see AUTHORS file for details): AM # define mk_exe - LLIBS="";for lib in $$XLIBS; do if test -f $(compdir)/lib/lib$$lib.a; then LLIBS="$$LLIBS -l$$lib" ; fi; done ; \ - for lib in $$X_ypp_LIBS; do if test -f $(compdir)/lib/lib_ypp_$$lib.a; then LLIBS="$$LLIBS -l_ypp_$$lib" ; fi ; done ; \ + LLIBS="";for lib in $$XLIBS; do if test -f $(compdir)/lib/lib_Y_$$lib.a; then LLIBS="$$LLIBS -l_Y_$$lib" ; fi; done ; \ + for lib in $$X_ypp_LIBS; do if test -f $(compdir)/lib/lib_YPP_$$lib.a; then LLIBS="$$LLIBS -l_YPP_$$lib" ; fi ; done ; \ for exe in $$X2DO; do \ if test ! -f $(compdir)/config/stamps_and_lists/$$exe.stamp && test ! -f $(compdir)/config/stamps_and_lists/compilation_stop_$$exe.stamp; then \ - DLIBS="-ldriver";for lib in $(YLIBDRIVER_LD); do DLIBS="$$DLIBS -l$$exe$$lib" ; done ; \ + DLIBS="-l_Y_driver";for lib in $(YLIBDRIVER_LD); do DLIBS="$$DLIBS -l$$exe$$lib" ; done ; \ ./sbin/compilation/helper.sh -d $$BASE -t $$exe -o .objects -m x -g $@ -- "$$DLIBS $$LLIBS $(xcpp) $$ADF"; \ cd $$BASE ; $(MAKE) $(MAKEFLAGS) VPATH=$(srcdir)/$$BASE exe || { grep Error $(compdir)/log/compile_$@.log ; exit "$$?"; } ; cd $(compdir); \ fi;\ diff --git a/config/mk/global/targets.mk b/config/mk/global/targets.mk index 3d894aa032..3068270841 100644 --- a/config/mk/global/targets.mk +++ b/config/mk/global/targets.mk @@ -23,4 +23,4 @@ MAIN = $(CORE) $(PH_PROJ) $(SC_PROJ) $(RT_PROJ) $(NL_PROJ) ALL = $(CORE) $(PH_PROJ) $(SC_PROJ) $(RT_PROJ) $(NL_PROJ) BROKEN = SCRIPTS = ydb.pl -EXE = $(CORE) $(PH_PROJ) $(SC_PROJ) $(RT_PROJ) $(GPL) $(NL_PROJ) $(BROKEN) $(SCRIPTS) +EXE = $(CORE) $(PH_PROJ) $(SC_PROJ) $(RT_PROJ) $(NL_PROJ) $(BROKEN) $(SCRIPTS) diff --git a/config/report.in b/config/report.in index 12ac9d49cf..0758feee3c 100644 --- a/config/report.in +++ b/config/report.in @@ -31,7 +31,12 @@ # [@CUDA_check@] CUDA # [@MPI_check@] MPI # [@OPENMP_check@] OpenMP -# [@PARIO_check@] Parallel I/O +# +# - I/O - +# +# [@PARIO_check@]: Parallel I/O @PARIO_info@ +# [@HDF5_check@]: HDF5 @HDF5_info@ +# [@NETCDF_check@]: NETCDF @NETCDF_info@ # # - LIBRARIES - # @@ -63,16 +68,10 @@ # # > OTHERs # -# [@Ydriver_check@] Ydriver : @Ydriver_LIB@ -# # [@LIBXC_check@] LibXC : @LIBXC_LIBS_R@ # @LIBXC_INCS_R@ # [@MPI_check@] MPI : @MPI_LIBS@ @MPI_info@ # @MPI_INCS@ -# [@FUTILE_check@] FUTILE : @FUTILE_LIBS_R@ -# @FUTILE_INCS_R@ -# [@YAML_check@] YAML : @YAML_LIBS_R@ -# @YAML_INCS_R@ # # - COMPILERS - # diff --git a/config/setup.in b/config/setup.in index 3353a99046..eb32b71b77 100644 --- a/config/setup.in +++ b/config/setup.in @@ -74,7 +74,7 @@ netcdf_flag = @NETCDFFLAGS@ lhdf5 = @HDF5_LIBS@ ihdf5 = @HDF5_INCS@ hdf5_opt = @HDF5_OPT@ -hdf5_mode = @HDF5_MODE@ # ( production | clean | debug ) +hdf5_mode = @HDF5_MODE@ # ( production | clean | debug ) io_lib_ver = @IO_LIB_VER@ llibxc = @LIBXC_LIBS@ ilibxc = @LIBXC_INCS@ diff --git a/configure b/configure index fe8d866ead..c127fc16cc 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23166 h.25ad1365b. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23167 h.718bd4594. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23166 h.25ad1365b' -PACKAGE_STRING='Yambo 5.2.0 r.23166 h.25ad1365b' +PACKAGE_VERSION='5.2.0 r.23167 h.718bd4594' +PACKAGE_STRING='Yambo 5.2.0 r.23167 h.718bd4594' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1600,7 +1600,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23166 h.25ad1365b to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23167 h.718bd4594 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1666,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23166 h.25ad1365b:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23167 h.718bd4594:";; esac cat <<\_ACEOF @@ -1876,7 +1876,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23166 h.25ad1365b +Yambo configure 5.2.0 r.23167 h.718bd4594 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2505,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23166 h.25ad1365b, which was +It was created by Yambo $as_me 5.2.0 r.23167 h.718bd4594, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3263,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23166" -SHASH="25ad1365b" +SREVISION="23167" +SHASH="718bd4594" @@ -13198,6 +13198,11 @@ fi # # Parse configure options # +if test "$enable_par_linalg" = "yes" ; then + enable_blacs="internal" ; + enable_scalapack="internal" ; +fi +# case $with_blacs_libs in yes) enable_blacs="internal" ;; no) enable_blacs="no" ; enable_par_linalg="no" ;; @@ -13299,7 +13304,7 @@ printf "%s\n" "$enable_scalapack" >&6; } fi # if test "$mpif_found" = "yes" && test "$enable_blacs" = "internal"; then - enable_blacs="yes" + enable_blacs="yes"; internal_blacs="yes"; BLACS_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libblacs.a ${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_C_init.a ${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_init.a"; if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libblacs.a" && test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libblacs_init.a"; then @@ -15410,7 +15415,7 @@ if test x"$enable_nvtx" = "x"; then enable_nvtx="no" ; fi # def_cuda="" CUDA_FLAGS="" -CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" +CUDA_LIBS="-cudalib=cufft,cublas,cusolver" # Available cc options: # cc20 Compile for compute capability 2.0 @@ -15432,12 +15437,12 @@ CUDA_LIBS="-Mcudalib=cufft,cublas,cusolver" printf %s "checking for CUDA support... " >&6; } if test x"$enable_cuda" = "xyes" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=cuda9.0,cc70,nollvm $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=cuda9.0,cc70,nollvm $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } elif ! test x"$enable_cuda" = "x" ; then def_cuda="-D_CUDA" - CUDA_FLAGS="-Mcuda=$enable_cuda $CUDA_LIBS" + CUDA_FLAGS="-cuda -gpu=$enable_cuda $CUDA_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 printf "%s\n" "$CUDA_FLAGS" >&6; } fi @@ -16578,7 +16583,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23166 h.25ad1365b, which was +This file was extended by Yambo $as_me 5.2.0 r.23167 h.718bd4594, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16642,7 +16647,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23166 h.25ad1365b +Yambo config.status 5.2.0 r.23167 h.718bd4594 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index e003cc675e..a8ff878fc3 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23166 h.25ad1365b, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23167 h.718bd4594, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23166" -SHASH="25ad1365b" +SREVISION="23167" +SHASH="718bd4594" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/sbin/check_packages.sh b/sbin/check_packages.sh index 2cc73f3785..451f840788 100755 --- a/sbin/check_packages.sh +++ b/sbin/check_packages.sh @@ -17,7 +17,7 @@ repeat(){ # for app in install build-essential ca-certificates curl file \ make gcc g++ gfortran git gnupg2 iproute2 \ -unzip m4 wget git zlib1g-dev ssh +unzip m4 wget git zlib1g-dev ssh cmake do res=`apt-cache policy $app |grep Installed|grep none` if [ ! -z "$res" ]; then diff --git a/sbin/compilation/helper.sh b/sbin/compilation/helper.sh index f806b9d262..184bff2426 100755 --- a/sbin/compilation/helper.sh +++ b/sbin/compilation/helper.sh @@ -91,7 +91,7 @@ fi # # CHECK if [ ! -f $cdir/$ofile ]; then - source ./sbin/compilation/verbosity.sh "WARNING helper.sh: $cdir/$ofile is not there. Exiting" + source ./sbin/compilation/verbosity.sh "WARNING helper.sh: $cdir/$ofile is not a file. Exiting" exit 0 fi # @@ -164,7 +164,7 @@ cp config/mk/local/makefile $cdir/Makefile # (i) to be saved, and (ii) to be re-compiled # If later the same project is re-compiled, the module is loaded, and all the files.o dependent on it are not tagged # (i) not to be saved, and (ii) not to be recompiled neither. -# They will be left in a version, which might be the one of another projects (e.g. linked to another versione of the module) +# They will be left in a version, which might be the one of another projects (e.g. linked to another version of the module) # if [ "$mode" == "x" ] ; then files_to_remove=`find $compdir -type f,l -name "*_to_save"` diff --git a/sbin/compilation/stamp_remove.sh b/sbin/compilation/stamp_remove.sh index 59b3d1436f..65b0fa359e 100755 --- a/sbin/compilation/stamp_remove.sh +++ b/sbin/compilation/stamp_remove.sh @@ -11,9 +11,9 @@ if [ $1 == "goal" ] && [ ! -z $goal ] ; then stamp=$compdir/config/stamps_and_li if [ $1 == "target.a" ] && [ ! -z $target ] ; then stamp=$compdir/config/stamps_and_lists/${target}.a.stamp ; fi if [ $1 == "lib" ] && [ ! -z $llib ] ; then if [[ "$file_src" == *"/ypp/$llib"* ]] ; then - stamp=$compdir/config/stamps_and_lists/lib_ypp_${llib}.a.stamp; + stamp=$compdir/config/stamps_and_lists/lib_YPP_${llib}.a.stamp; else - stamp=$compdir/config/stamps_and_lists/lib${llib}.a.stamp; + stamp=$compdir/config/stamps_and_lists/lib_Y_${llib}.a.stamp; fi fi if [ $1 == "exe" ] ; then stamp=`find $compdir/config/stamps_and_lists/ -name "compiling*" | sed "s/compiling_//"`; fi diff --git a/sbin/developer_tools/clean_unused_variables.tcsh b/sbin/developer_tools/clean_unused_variables.tcsh index c3b170b90e..3922a0a6a5 100755 --- a/sbin/developer_tools/clean_unused_variables.tcsh +++ b/sbin/developer_tools/clean_unused_variables.tcsh @@ -225,7 +225,7 @@ set FILES = ( ) if (-d $OBJ) then foreach kind ( "modified:" ) git status -uno $OBJ | grep $kind | grep -v '\.pl' | grep -v '\.pm' | grep -v '\.c' |grep -v '\.m4' | grep -v '\.git' |grep -v '\.\.\/' > LIST - cat LIST | grep -v "mod_" | grep -v "Makefile" | grep -v "configure" | grep -v "\.h" | grep -v "\.object" | grep -v "\.tcsh" | grep -v "lib/yambo" > LIST + cat LIST | grep -v "mod_" | grep -v "Makefile" | grep -v "configure" | grep -v "\.h" | grep -v "\.object" | grep -v "\.tcsh" | grep -v "\.dep" | grep -v "lib/yambo" > LIST sed -i -e 's/new file/new_file/g' LIST if ($kind =~ "renamed") then set FILES=($FILES `awk '{print $4}' "LIST"`) From 27aee7365e1650d4669198a8ef332aaccb8130ce Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 14:51:17 +0100 Subject: [PATCH 073/112] Automatic commit: configure regenerated after merge --- configure | 1585 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 1391 insertions(+), 194 deletions(-) diff --git a/configure b/configure index 0372c98f88..288253686f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23811 h.b713606d54. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23853 h.6230811aef. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23811 h.b713606d54' -PACKAGE_STRING='Yambo 5.2.0 r.23811 h.b713606d54' +PACKAGE_VERSION='5.2.0 r.23853 h.6230811aef' +PACKAGE_STRING='Yambo 5.2.0 r.23853 h.6230811aef' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -655,6 +655,10 @@ LAPACK_PETSC_INCS_R LAPACK_PETSC_LIBS_R BLAS_PETSC_INCS_R BLAS_PETSC_LIBS_R +LIBCUDA_INCS_R +LIBCUDA_LIBS_R +DEVXLIB_INCS_R +DEVXLIB_LIBS_R LIBXC_INCS_R LIBXC_LIBS_R SLEPC_INCS_R @@ -687,6 +691,8 @@ IOTK_INCS_R IOTK_LIBS_R MPI_info MPI_check +LIBCUDA_check +DEVXLIB_check LIBXC_check YPY_check YDB_check @@ -706,14 +712,40 @@ NETCDF_check HDF5_info HDF5_check PARIO_check +GPU_libinfo +GPU_check OPENMP_check CUDA_check MEM_profile_check TIME_profile_check KEEP_OBJS_check DP_check -CUDA_FLAGS -def_cuda +with_devxlib_branch +DEVXLIB_info +internal_devxlib +compile_devxlib +DEVXLIB_INCS +DEVXLIB_LIBS +MKLGPU_LIBS +LIBROCM_PATH +LIBROCM_INCS +LIBROCM_LIBS +DEVXLIB_CUDALIBS +DEVXLIB_FLAGS +GPU_INCS +GPU_LIBS +GPU_FLAGS +def_gpu +with_gpu_libs +with_cuda_int_libs +with_cuda_runtime +with_cuda_cc +internal_libcuda +compile_libcuda +use_libcuda +LIBCUDA_PATH +LIBCUDA_INCS +LIBCUDA_LIBS internal_libxc compile_libxc LIBXC_INCS @@ -772,6 +804,8 @@ def_scalapack enable_scalapack SCALAPACK_LIBS BLACS_LIBS +with_petsc_branch +with_slepc_branch internal_slepc internal_petsc compile_slepc @@ -808,10 +842,6 @@ internal_blas FLIBS YDB_dir GIT -with_ydriver_branch -DRIVER_INCS -Ydriver_check -Ydriver_LIB MPI_LIB_DIR MPI_INC_DIR MPI_LIBS @@ -837,6 +867,10 @@ IFLAG FCLIBS OPENMPLIBS def_openmp +GPU_SUPPORT +enable_openmp5 +enable_openacc +enable_cuda_fortran def_compiler HDF5_MODE DEBUG_FLAGS @@ -957,13 +991,15 @@ with_echo enable_options_check with_f90ext enable_debug_flags +enable_cuda_fortran +enable_openacc +enable_openmp5 enable_open_mp enable_mpi with_mpi_libs with_mpi_path with_mpi_libdir with_mpi_includedir -with_ydriver_branch enable_ydb with_blas_libs enable_int_linalg @@ -988,6 +1024,8 @@ with_petsc_incs with_petsc_path with_petsc_libdir with_petsc_includedir +with_slepc_branch +with_petsc_branch enable_par_linalg with_blacs_libs with_scalapack_libs @@ -1031,8 +1069,29 @@ with_libxc_libs with_libxc_path with_libxc_libdir with_libxc_includedir -enable_cuda +with_cuda_libs +with_cuda_incs +with_cuda_libdir +with_cuda_includedir +with_cuda_path +enable_cuda_libs_check +with_cuda_cc +with_cuda_runtime +with_cuda_int_libs enable_nvtx +with_gpu_libs +with_gpu_incs +with_rocm_libs +with_rocm_incs +with_rocm_libdir +with_rocm_includedir +with_rocm_path +with_mklgpu_libs +with_devxlib_libs +with_devxlib_path +with_devxlib_libdir +with_devxlib_includedir +with_devxlib_branch ' ac_precious_vars='build_alias host_alias @@ -1600,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23811 h.b713606d54 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23853 h.6230811aef to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1666,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23811 h.b713606d54:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23853 h.6230811aef:";; esac cat <<\_ACEOF @@ -1687,6 +1746,9 @@ Optional Features: --enable-options-check Enable the command line options check in driver.c. Default is yes. --enable-debug-flags Debug flags are set for compilation. Default is no. + --enable-cuda-fortran Enable CUDA support [default=no] + --enable-openacc Enable OPENACC support [default=no] + --enable-openmp5 Enable OPENMP5 support [default=no] --enable-open-mp Enable OpenMP support --enable-mpi Enable mpi parallelization . Default is yes. --enable-ydb Activate the YDB support @@ -1715,8 +1777,10 @@ Optional Features: no --enable-iotk Activate the IOTK support --enable-etsf-io Activate the ETSF_IO support - --enable-cuda= Enable CUDA support - --enable-nvtx= Enable NVTX support + --enable-cuda-libs-check=yes + The configure script will check CUDA installation + and report problems [default=yes] + --enable-nvtx= Enable NVTX support [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1730,8 +1794,6 @@ Optional Packages: --with-mpi-path= Path to the MPI install directory --with-mpi-libdir= Path to the MPI lib directory --with-mpi-includedir= Path to the MPI include directory - --with-ydriver-branch= - Use the of the ydriver repository. --with-blas-libs= Use BLAS libraries --with-lapack-libs= Use LAPACK libraries --with-fft-libs= Link to FFT libraries @@ -1751,6 +1813,8 @@ Optional Packages: --with-petsc-libdir= Path to the Petsc lib directory --with-petsc-includedir= Path to the Petsc include directory + --with-slepc-branch= Use the of the slepc repository. + --with-petsc-branch= Use the of the petsc repository. --with-blacs-libs=(libs|mkl) Use BLACS libraries or setup MKL --with-scalapack-libs=(libs|mkl) Use SCALAPACK libraries or setup MKL @@ -1789,6 +1853,33 @@ Optional Packages: --with-libxc-libdir= Path to the libxc lib directory --with-libxc-includedir= Path to the libxc include directory + --with-cuda-libs= Use libcuda libraries + --with-cuda-incs= Use libcuda include options + --with-cuda-libdir= Path to the libcuda lib directory + --with-cuda-includedir= Path to the libcuda include directory + --with-cuda-path= Path to libcuda install directory + --with-cuda-cc=VAL GPU architecture (Kepler: 35, Pascal: 60, Volta: 70, + Ampere: 80) [default=70] + --with-cuda-runtime=VAL CUDA runtime (Pascal: 8+, Volta: 9+) [default=10.1] + --with-cuda-int-libs=VAL + CUDA internal libraries () + [default=cuda,cufft,cublas,cusolver,cudart] + --with-gpu-libs= Use extra GPU-specific libraries + --with-gpu-incs= Includes for extra GPU-specific libraries + + --with-rocm-libs= Use librocm library + --with-rocm-incs= Use librocm include options + --with-rocm-libdir= Path to the rocm lib directory + --with-rocm-includedir= Path to the rocm include directory + --with-rocm-path= Path to rocm install directory + --with-mklgpu-libs= Use librocm library + --with-devxlib-libs= Use devxlib libraries + --with-devxlib-path= Path to devxlib install directory + --with-devxlib-libdir= Path to the devxlib lib directory + --with-devxlib-includedir= + Path to the devxlib include directory + --with-devxlib-branch= + Use the of the devxlib repository. Some influential environment variables: CC C compiler command @@ -1876,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23811 h.b713606d54 +Yambo configure 5.2.0 r.23853 h.6230811aef generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2505,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23811 h.b713606d54, which was +It was created by Yambo $as_me 5.2.0 r.23853 h.6230811aef, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3263,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23811" -SHASH="b713606d54" +SREVISION="23853" +SHASH="6230811aef" @@ -4616,15 +4707,6 @@ fi fi -# -# License-Identifier: GPL -# -# Copyright (C) 2016 The Yambo Team -# -# Authors (see AUTHORS file for details): AM -# - - # # General # @@ -4696,6 +4778,76 @@ fi # +# +# License-Identifier: GPL +# +# Copyright (C) 2007 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# + + +# +# License-Identifier: GPL +# +# Copyright (C) 2016 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# + + +# +# License-Identifier: GPL +# +# Copyright (C) 2010 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# # +################################################ +# Set FC FLAGS +# ---------------------------------- + +# + +# +# Original version Available from the GNU Autoconf Macro Archive at: +# http://autoconf-archive.cryp.to/macros-by-category.html +# +# License-Identifier: GPL +# +# Copyright (C) 2006 The Yambo Team +# +# Authors (see AUTHORS file for details): AM DS +# + +# +# License-Identifier: GPL +# +# Copyright (C) 2016 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# + + +# +# License-Identifier: GPL +# +# Copyright (C) 2016 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# + + +# +# License-Identifier: GPL +# +# Copyright (C) 2022 The Yambo Team +# +# Authors (see AUTHORS file for details): AM +# + + +# # =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_f90_module_flag.html # =========================================================================== @@ -4755,81 +4907,89 @@ fi +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== # -# License-Identifier: GPL -# -# Copyright (C) 2007 The Yambo Team -# -# Authors (see AUTHORS file for details): AM -# - - -# -# License-Identifier: GPL -# -# Copyright (C) 2016 The Yambo Team -# -# Authors (see AUTHORS file for details): AM +# SYNOPSIS # - - +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # -# License-Identifier: GPL +# DESCRIPTION # -# Copyright (C) 2010 The Yambo Team +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) # -# Authors (see AUTHORS file for details): AM -# # -################################################ -# Set FC FLAGS -# ---------------------------------- - +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. # - +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. # -# Original version Available from the GNU Autoconf Macro Archive at: -# http://autoconf-archive.cryp.to/macros-by-category.html +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. # -# License-Identifier: GPL +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. # -# Copyright (C) 2006 The Yambo Team +# LICENSE # -# Authors (see AUTHORS file for details): AM DS +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans # - +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. # -# License-Identifier: GPL +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. # -# Copyright (C) 2016 The Yambo Team +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . # -# Authors (see AUTHORS file for details): AF +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. # +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. - -# -# License-Identifier: GPL -# -# Copyright (C) 2016 The Yambo Team -# -# Authors (see AUTHORS file for details): AM -# +#serial 5 # -# License-Identifier: GPL -# -# Copyright (C) 2016 The Yambo Team # -# Authors (see AUTHORS file for details): AM +# Copyright (C) 2000-2021 the YAMBO team +# http://www.yambo-code.org # - - +# Authors (see AUTHORS file for details): AF # -# License-Identifier: GPL +# This file is distributed under the terms of the GNU +# General Public License. You can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; +# either version 2, or (at your option) any later version. # -# Copyright (C) 2022 The Yambo Team +# This program is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License +# for more details. # -# Authors (see AUTHORS file for details): AM +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, +# MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. # @@ -6789,6 +6949,16 @@ case "${host}" in #TIMER="ct_etime.o" if test -z "$F90SUFFIX"; then F90SUFFIX=".f90"; fi ;; + aarch*apple* | arm*apple* ) + build_os="apple" + #TIMER="ct_etime.o" + if test -z "$F90SUFFIX"; then F90SUFFIX=".f90"; fi + ;; + aarch*linux* | arm*linux* ) + build_os="linux" + #TIMER="ct_etime.o" + if test -z "$F90SUFFIX"; then F90SUFFIX=".f90"; fi + ;; powerpc64*linux* ) build_os="linux" #TIMER="ct_etime.o" @@ -7006,6 +7176,10 @@ case "${FC}" in FCKIND="intel" FCVERSION=`$FC -v 2>&1` ;; + *ifx*) + FCKIND="intel" + FCVERSION=`$FC -v 2>&1` + ;; *ifort*) FCKIND="intel" FCVERSION=`$FC -v 2>&1` @@ -7078,6 +7252,13 @@ SLK_FC_FLAGS="" case "${host}" in i?86*linux*) case "${FC}" in + *ftn* ) + SYSFLAGS="-O1 -g -emf -eZ" + FUFLAGS="-O0 -g -emf -eZ" + FCMFLAG="" + OMPFLAGS="-fopenmp" + DEBUG_FLAGS="-g " + ;; *pgf9* | *ftn* | *pgfortran* ) SYSFLAGS="-O1 -gopt -Mnoframe -Mdalign -Mbackslash -cpp" FUFLAGS="-O0 -Mbackslash" @@ -7115,7 +7296,7 @@ i?86*linux*) DEBUG_FLAGS="-Wall -pedantic -fbounds-check -ftrace=full" ;; *gfortran*) - SYSFLAGS="-O3 -g -mtune=native" + SYSFLAGS="-O3 -g -mtune=native -fno-lto" FUFLAGS="-O0 -mtune=native" SLK_FC_FLAGS="-fallow-argument-mismatch" FCMFLAG="" @@ -7167,7 +7348,7 @@ i?86*linux*) NETCDFFLAGS="-Df2cFortran" esac ;; -*86*apple* ) +*86*apple* | aarch*apple* | arm*apple* ) case "${FC}" in *pgf9* | *ftn* | *pgfortran* ) SYSFLAGS="-O1 -gopt -Mnoframe -Mdalign -Mbackslash -cpp" @@ -7227,6 +7408,13 @@ i?86*linux*) ;; ia64*linux* ) case "${FC}" in + *ftn* ) + SYSFLAGS="-O1 -g -emf -eZ" + FUFLAGS="-O0 -g -emf -eZ" + FCMFLAG="" + OMPFLAGS="-fopenmp" + DEBUG_FLAGS="-g " + ;; *pgf9* | *ftn* | *pgfortran* ) SYSFLAGS="-O1 -gopt -Mnoframe -Mdalign -Mbackslash -cpp" #SYSFLAGS="-O2 -g -fast -Munroll -Mnoframe -Mdalign -Mbackslash" @@ -7247,7 +7435,7 @@ ia64*linux* ) DEBUG_FLAGS="-g -Minform=inform -Mbounds -Mchkptr -Mchkstk -Meh_frame" ;; *gfortran*) - SYSFLAGS="-O3 -g -mtune=native" + SYSFLAGS="-O3 -g -mtune=native -fno-lto" FUFLAGS="-O0 -g -mtune=native" SLK_FC_FLAGS="-fallow-argument-mismatch" FCMFLAG="" @@ -7307,8 +7495,32 @@ ia64*linux* ) NETCDFFLAGS="-Df2cFortran" esac ;; +aarch*linux* | arm*linux* ) + case "${FC}" in + *gfortran*) + SYSFLAGS="-O3 -g -mtune=native -fno-lto" + FUFLAGS="-O0 -g -mtune=native" + SLK_FC_FLAGS="-fallow-argument-mismatch" + FCMFLAG="" + OMPFLAGS="-fopenmp" + NETCDFFLAGS="-DgFortran" + DEBUG_FLAGS="-Og -g -Wall -pedantic -fbounds-check -ffpe-trap=invalid,zero,overflow" + ;; + *) + SYSFLAGS="-g -O" + FUFLAGS="-O0" + NETCDFFLAGS="-Df2cFortran" + esac + ;; *x86*64* ) case "${FC}" in + *ftn* ) + SYSFLAGS="-O1 -g -emf -eZ" + FUFLAGS="-O0 -g -emf -eZ" + FCMFLAG="" + OMPFLAGS="-fopenmp" + DEBUG_FLAGS="-g " + ;; *pgf9* | *ftn* | *pgfortran* | *nvfortran* ) SYSFLAGS="-O1 -gopt -Mnoframe -Mdalign -Mbackslash -cpp" #SYSFLAGS="-O2 -g -Munroll -Mnoframe -Mdalign -Mbackslash -cpp" @@ -7320,7 +7532,7 @@ ia64*linux* ) DEBUG_FLAGS="-g -Minform=inform -Mbounds -Mchkptr -Mchkstk -Meh_frame -Mbackslash -cpp" ;; *gfortran*) - SYSFLAGS="-O3 -g -mtune=native" + SYSFLAGS="-O3 -g -mtune=native -fno-lto" FUFLAGS="-O0 -g -mtune=native" SLK_FC_FLAGS="-fallow-argument-mismatch" FCMFLAG="" @@ -7380,6 +7592,15 @@ ia64*linux* ) NETCDFFLAGS="-DpgiFortran" DEBUG_FLAGS="-CB -traceback -debug full" ;; + *ifx*) + OMPFLAGS="-qopenmp" + CPU_FLAG="" + FCMFLAG="-nofor-main" + CFLAGS="-O2 -std=gnu99" + SYSFLAGS="-O3 -g" + FUFLAGS="-O0 -g" + DEBUG_FLAGS="-CB -traceback -debug full" + ;; *openf9*) SYSFLAGS="-O2 -fno-second-underscore" FUFLAGS="-O0 -fno-second-underscore" @@ -7515,6 +7736,46 @@ printf "%s\n" "$NETCDFFLAGS" >&6; } # acx_save_fcflags="$FCFLAGS" FCFLAGS="$acx_save_fcflags $F90EXTFLAGS" +# +# ============================================================================ +# +# GPUs suppport +# +GPU_SUPPORT="no_gpu" +# +# Check whether --enable-cuda_fortran was given. +if test ${enable_cuda_fortran+y} +then : + enableval=$enable_cuda_fortran; +else $as_nop + enable_cuda_fortran="no" +fi + +# Check whether --enable-openacc was given. +if test ${enable_openacc+y} +then : + enableval=$enable_openacc; +else $as_nop + enable_openacc="no" +fi + +# Check whether --enable-openmp5 was given. +if test ${enable_openmp5+y} +then : + enableval=$enable_openmp5; +else $as_nop + enable_openmp5="no" +fi + +# +if test x"$enable_cuda_fortran" != "xno" ; then GPU_SUPPORT="cudaf" ; fi +if test x"$enable_openacc" != "xno" ; then GPU_SUPPORT="openacc" ; enable_open_mp="no"; fi +if test x"$enable_openmp5" != "xno" ; then GPU_SUPPORT="openmp5" ; fi +# + + + + # # ============================================================================ # @@ -8664,7 +8925,7 @@ case "${CPP}" in ;; *gcc* ) case "${host}" in - *86*apple* ) + *86*apple* | *arm*apple* ) if test -z "$CPPFLAGS"; then CPPFLAGS="-P -D_apple"; fi ;; * ) @@ -8684,7 +8945,7 @@ case "${CPP}" in ;; esac ;; - *86*apple* ) + *86*apple* | *arm*apple* ) if test -z "$CPPFLAGS"; then CPPFLAGS="-P -traditional -D_apple"; fi ;; powerpc64*linux* ) @@ -8775,6 +9036,9 @@ case "${FC}" in *gfortran | *g95) if test -z "$FPP"; then FPP="${FC} -E -P -cpp"; fi ;; + *nvfortran*) + if test -z "$FPP"; then FPP="${FC} -Mpreprocess -E"; fi + ;; # # some of the following could be uncommented once explicitly checked # @@ -9985,6 +10249,10 @@ printf "%s\n" "$MPIKIND" >&6; } MPI_PATH=`which $CC |sed "s/bin\/$CC//g"` + if ! test -d "$MPI_PATH/include"; then + MPI_PATH=`$CC -show | sed "s/.*-I//g"` ; + MPI_PATH=`echo ${MPI_PATH} | sed "s/\/include.*//g"` ; + fi # else # @@ -10276,38 +10544,62 @@ url_ydb=https://github.com/yambo-code/ydb.git # -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -# ============================================================================ -# Yambo Libs - - -DRIVER_INCS="-I$PWD/lib/yambo/Ydriver/include/ -I$PWD/include/driver" # - -# Check whether --with-ydriver-branch was given. -if test ${with_ydriver_branch+y} -then : - withval=$with_ydriver_branch; -else $as_nop - with_ydriver_branch=none -fi - +# Copyright (C) 2000-2021 the YAMBO team +# http://www.yambo-code.org +# +# Authors (see AUTHORS file for details): DS +# +# This file is distributed under the terms of the GNU +# General Public License. You can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; +# either version 2, or (at your option) any later version. +# +# This program is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, +# MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. # -if test x"$with_ydriver_branch" = "xnone"; then - Ydriver_check="D"; - Ydriver_LIB="Download" -else - Ydriver_check="G"; - Ydriver_LIB="GIT, branch $with_ydriver_branch" -fi +# +# +# Copyright (C) 2000-2021 the YAMBO team +# http://www.yambo-code.org +# +# Authors (see AUTHORS file for details): DS +# +# This file is distributed under the terms of the GNU +# General Public License. You can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; +# either version 2, or (at your option) any later version. +# +# This program is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, +# MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +# +# +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu # ============================================================================ # YDB/YAMBOpy @@ -12737,6 +13029,24 @@ then : fi + +# Check whether --with-slepc-branch was given. +if test ${with_slepc_branch+y} +then : + withval=$with_slepc_branch; +else $as_nop + with_slepc_branch=none +fi + + +# Check whether --with-petsc-branch was given. +if test ${with_petsc_branch+y} +then : + withval=$with_petsc_branch; +else $as_nop + with_petsc_branch=none +fi + # def_slepc="" petsc="no" @@ -13129,6 +13439,8 @@ fi + + # # ============================================================================ @@ -13979,8 +14291,10 @@ printf %s "checking for internal HDF5 library... " >&6; }; NETCDF_HDF5_PATH="${extlibs_path}/${FCKIND}/${FC}/${NETCDF_VER}/${IO_LIB_VER}" ; NETCDF_HDF5_PAR_PATH="${extlibs_path}/${FCKIND}/${FC}/${NETCDF_VER}/parallel" ; # - HDF5_LIBS_F="${NETCDF_HDF5_PATH}/lib/libhdf5_hl_fortran.a ${NETCDF_HDF5_PATH}/lib/libhdf5_fortran.a"; - HDF5_LIBS_C="${NETCDF_HDF5_PATH}/lib/libhdf5_hl.a ${NETCDF_HDF5_PATH}/lib/libhdf5.a"; + #HDF5_LIBS_F="${NETCDF_HDF5_PATH}/lib/libhdf5_hl_fortran.a ${NETCDF_HDF5_PATH}/lib/libhdf5_fortran.a"; + HDF5_LIBS_F="-L${NETCDF_HDF5_PATH}/lib/ -lhdf5_hl_fortran -lhdf5_fortran"; + #HDF5_LIBS_C="${NETCDF_HDF5_PATH}/lib/libhdf5_hl.a ${NETCDF_HDF5_PATH}/lib/libhdf5.a"; + HDF5_LIBS_C="-L${NETCDF_HDF5_PATH}/lib/ -lhdf5_hl -lhdf5"; HDF5_LIBS="$HDF5_LIBS_F $HDF5_LIBS_C"; HDF5_INCS="${IFLAG}${NETCDF_HDF5_PATH}/include" ; # @@ -13996,7 +14310,8 @@ printf "%s\n" "already compiled" >&6; } ; # compile_hdf5="no" ; IO_LIB_VER="parallel"; - HDF5_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5.a" ; + #HDF5_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_fortran.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5_hl.a ${NETCDF_HDF5_PAR_PATH}/lib/libhdf5.a" ; + HDF5_LIBS="-L${NETCDF_HDF5_PAR_PATH}/lib/ -lhdf5_hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5" ; HDF5_INCS="${IFLAG}${NETCDF_HDF5_PAR_PATH}/include" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 printf "%s\n" "already compiled (using parallel version)" >&6; } ; @@ -14420,9 +14735,11 @@ printf %s "checking for internal NETCDF library... " >&6; }; NETCDF_HDF5_PATH="${extlibs_path}/${FCKIND}/${FC}/${NETCDF_VER}/${IO_LIB_VER}" ; NETCDF_HDF5_PAR_PATH="${extlibs_path}/${FCKIND}/${FC}/${NETCDF_VER}/parallel" ; # - NETCDF_LIBS="${NETCDF_HDF5_PATH}/lib/libnetcdf.a" ; + #NETCDF_LIBS="${NETCDF_HDF5_PATH}/lib/libnetcdf.a" ; + NETCDF_LIBS="-L${NETCDF_HDF5_PATH}/lib/ -lnetcdf" ; NETCDF_INCS="${IFLAG}${NETCDF_HDF5_PATH}/include" ; - NETCDFF_LIBS="${NETCDF_HDF5_PATH}/lib/libnetcdff.a" ; + #NETCDFF_LIBS="${NETCDF_HDF5_PATH}/lib/libnetcdff.a" ; + NETCDFF_LIBS="-L${NETCDF_HDF5_PATH}/lib/ -lnetcdff" ; NETCDFF_INCS="${IFLAG}${NETCDF_HDF5_PATH}/include" ; # netcdf=yes ; @@ -14437,9 +14754,11 @@ printf "%s\n" "already compiled" >&6; } ; # compile_netcdf="no" ; IO_LIB_VER="parallel"; - NETCDF_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libnetcdf.a" ; + #NETCDF_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libnetcdf.a" ; + NETCDF_LIBS="-L${NETCDF_HDF5_PAR_PATH}/lib/ -lnetcdf" ; NETCDF_INCS="${IFLAG}${NETCDF_HDF5_PAR_PATH}/include" ; - NETCDFF_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libnetcdff.a" ; + #NETCDFF_LIBS="${NETCDF_HDF5_PAR_PATH}/lib/libnetcdff.a" ; + NETCDFF_LIBS="-L${NETCDF_HDF5_PAR_PATH}/lib/ -lnetcdff" ; NETCDFF_INCS="${IFLAG}${NETCDF_HDF5_PAR_PATH}/include" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: already compiled (using parallel version)" >&5 printf "%s\n" "already compiled (using parallel version)" >&6; } ; @@ -14571,7 +14890,6 @@ fi - # Check whether --with-futile_libs was given. if test ${with_futile_libs+y} then : @@ -14806,7 +15124,7 @@ fi # ============================================================================ # IOTK library - +# # Check whether --enable-iotk was given. if test ${enable_iotk+y} then : @@ -14882,14 +15200,16 @@ printf %s "checking for IOTK in $with_iotk_libdir... " >&6; } ; fi compile_p2y="yes" compile_iotk="no" IOTK_INCS="$IFLAG$try_iotk_incdir_src" - IOTK_LIBS="$try_iotk_libdir_src/libiotk.a" + #IOTK_LIBS="$try_iotk_libdir_src/libiotk.a" + IOTK_LIBS="-L$try_iotk_libdir_src/ -liotk" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } elif test -r $try_iotk_libdir/libiotk.a && test -e $try_iotk_incdir/iotk_module.mod ; then compile_p2y="yes" compile_iotk="no" IOTK_INCS="$IFLAG$try_iotk_incdir" - IOTK_LIBS="$try_iotk_libdir/libiotk.a" + #IOTK_LIBS="$try_iotk_libdir/libiotk.a" + IOTK_LIBS="-L$try_iotk_libdir/ -liotk" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else @@ -14918,7 +15238,8 @@ printf %s "checking for internal IOTK library... " >&6; } internal_iotk="yes" compile_p2y="yes" IOTK_INCS="${IFLAG}${extlibs_path}/${FCKIND}/${FC}/include/" - IOTK_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libiotk.a" + #IOTK_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libiotk.a" + IOTK_LIBS="-L${extlibs_path}/${FCKIND}/${FC}/lib -liotk" if ! test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libiotk.a" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/iotk_base.mod" || ! test -e "${extlibs_path}/${FCKIND}/${FC}/include/iotk_specials.h"; then compile_iotk="yes" if test ! -d lib ; then mkdir lib ; fi @@ -15104,8 +15425,6 @@ fi # ============================================================================ # LIBXC -acx_libxc_ok=no -compile_libxc=yes # Check whether --with-libxc_libs was given. @@ -15137,6 +15456,7 @@ fi +acx_libxc_ok="no" internal_libxc="no" compile_libxc="no" @@ -15374,7 +15694,8 @@ if test x"$acx_libxc_ok" = xno; then have_configured="no" internal_libxc="yes" # version 5 is used - LIBXC_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libxcf90.a ${extlibs_path}/${FCKIND}/${FC}/lib/libxcf03.a ${extlibs_path}/${FCKIND}/${FC}/lib/libxc.a" + #LIBXC_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libxcf90.a ${extlibs_path}/${FCKIND}/${FC}/lib/libxcf03.a ${extlibs_path}/${FCKIND}/${FC}/lib/libxc.a" + LIBXC_LIBS="-L${extlibs_path}/${FCKIND}/${FC}/lib/ -lxcf90 -lxcf03 -lxc" LIBXC_INCS="$IFLAG${extlibs_path}/${FCKIND}/${FC}/include" if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libxc.a" && test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libxcf90.a" && test -e ${extlibs_path}/${FCKIND}/${FC}/lib/libxcf03.a; then compile_libxc="no" @@ -15395,86 +15716,892 @@ FCFLAGS="$acx_libxc_save_FCFLAGS" LIBS="$acx_libxc_save_LIBS" # ============================================================================ -# CUDA +# CUDA LIBRARY + + + +# Check whether --with-cuda_libs was given. +if test ${with_cuda_libs+y} +then : + withval=$with_cuda_libs; +fi + + +# Check whether --with-cuda_incs was given. +if test ${with_cuda_incs+y} +then : + withval=$with_cuda_incs; +fi + +# + +# Check whether --with-cuda_libdir was given. +if test ${with_cuda_libdir+y} +then : + withval=$with_cuda_libdir; +fi + + +# Check whether --with-cuda_includedir was given. +if test ${with_cuda_includedir+y} +then : + withval=$with_cuda_includedir; +fi + +# + +# Check whether --with-cuda_path was given. +if test ${with_cuda_path+y} +then : + withval=$with_cuda_path; +fi + + +# +# Check whether --enable-cuda-libs-check was given. +if test ${enable_cuda_libs_check+y} +then : + enableval=$enable_cuda_libs_check; +else $as_nop + enable_cuda_libs_check=yes +fi + +# + +acx_libcuda_ok="no" +internal_libcuda="no" +compile_libcuda="no" +use_libcuda="no" + +acx_libcuda_save_LIBS="$LIBS" +acx_libcuda_save_FCFLAGS="$FCFLAGS" + +# Cuda libraries are needed only in one of the three following cases + +if test x"$enable_cuda_fortran" != "xno" || test x"$enable_openacc" != "xno" ; then + +#if test -z "$NVHPC" ; then +# +if test "x$with_cuda_path" = "x" ; then with_cuda_path="$CUDA_PATH" ; fi +if test "x$with_cuda_path" = "x" ; then with_cuda_path="$CUDA_ROOT" ; fi +if test "x$with_cuda_path" = "x" ; then with_cuda_path="$CUDA_HOME" ; fi + +LIBCUDA_PATH="$with_cuda_path" + +if test -d "$with_cuda_path"; then + libcuda_incdir="$with_cuda_path/include" + libcuda_libdir="$with_cuda_path/lib" + if ! test -d "$libcuda_libdir" ; then libcuda_libdir="$with_cuda_path/lib64" ; fi +fi +if test -d "$with_cuda_includedir"; then libcuda_incdir="$with_cuda_includedir" ; fi +if test -d "$with_cuda_libdir"; then libcuda_libdir="$with_cuda_libdir" ; fi + + +#Test to be finalized, for now it is always going to succeed + + +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + +testprog=" program main + + integer ierr + ierr=cuInit + ierr=cudaMalloc + ierr=cublasInit + ierr=cufftPlanMany + + end" + +LIBCUDA_INCS="" +if test x"$CUDA_INCS" != "x" ; then LIBCUDA_INCS="$CUDA_INCS" ; fi +if test x"$libcuda_incdir" != "x" ; then LIBCUDA_INCS="$IFLAG$libcuda_incdir" ; fi +if test x"$with_cuda_incs" != "x" ; then LIBCUDA_INCS="$with_cuda_incs" ; fi + +FCFLAGS="$LIBCUDA_INCS $acx_libcuda_save_FCFLAGS" + +# set from environment variable, if not blank +if test ! -z "$CUDA_LIBS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from environment" >&5 +printf %s "checking for libcuda from environment... " >&6; } + LIBCUDA_LIBS="$CUDA_LIBS" + LIBS="$LIBCUDA_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_libcuda_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# set from --with-cuda-libs flag +if test x"$acx_libcuda_ok" = xno && test ! -z "$with_cuda_libs" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from --with-cuda-libs" >&5 +printf %s "checking for libcuda from --with-cuda-libs... " >&6; } + LIBCUDA_LIBS="$with_cuda_libs" + LIBS="$LIBCUDA_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_libcuda_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# dynamic linkage, separate Fortran interface +if test x"$acx_libcuda_ok" = xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcuda from specified libcuda path, dynamic" >&5 +printf %s "checking for libcuda from specified libcuda path, dynamic... " >&6; } + LIBCUDA_LIBS="-L$libcuda_libdir -lcufft -lcusolver -lcublas -lcudart -lcuda" + LIBS="$LIBCUDA_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_libcuda_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# static linkage, separate Fortran interface +if test x"$acx_libcuda_ok" = xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking static" >&5 +printf %s "checking static... " >&6; } + LIBCUDA_LIBS="$libcuda_libdir/libcuda.a" + LIBS="$LIBCUDA_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_libcuda_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test x"$acx_libcuda_ok" = xyes; then + use_libcuda=yes + compile_libcuda=no + internal_libcuda=no + # + +printf "%s\n" "#define HAVE_LIBCUDA 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes." >&5 +printf "%s\n" "yes." >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found." >&5 +printf "%s\n" "not found." >&6; } + use_libcuda=no + compile_libcuda=no + internal_libcuda=no + LIBCUDA_LIBS="" + LIBCUDA_INCS="" + LIBCUDA_PATH="" +fi +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + + +# +# Internal libcuda not available at the moment +# +#if test x"$acx_libcuda_ok" = xno; then +# internal_libcuda="yes" +# LIBCUDA_LIBS="${extlibs_path}/${FCKIND}/${FC}/lib/libcuda.a" +# LIBCUDA_INCS="$IFLAG${extlibs_path}/${FCKIND}/${FC}/include" +# if test -e "${extlibs_path}/${FCKIND}/${FC}/lib/libcuda.a"; then +# compile_libcuda="no" +# AC_MSG_RESULT([Compatible external DevXlib not found/specified. Found internal already compiled.]) +# else +# compile_libcuda="yes" +# AC_MSG_RESULT([Compatible external DevXlib not found/specified. Internal to be compiled.]) +# fi +#fi + +#else +# use_libcuda=yes +# compile_libcuda=no +# internal_libcuda=no +# AC_DEFINE(HAVE_LIBCUDA, 1, [Defined if you have the LIBCUDA library.]) +# AC_MSG_RESULT([yes.]) +#fi +fi + + +FCFLAGS="$acx_libcuda_save_FCFLAGS" +LIBS="$acx_libcuda_save_LIBS" + + + + + + + + + +# ============================================================================ +# CUDA + +# + +# Check whether --with-cuda-cc was given. +if test ${with_cuda_cc+y} +then : + withval=$with_cuda_cc; +else $as_nop + with_cuda_cc=70 +fi + +# +# Available cc options +# cc20 Compile for compute capability 2.0 +# cc30 Compile for compute capability 3.0 +# cc35 Compile for compute capability 3.5 +# cc50 Compile for compute capability 5.0 +# cc60 Compile for compute capability 6.0 +# cc70 Compile for compute capability 7.0 +# cc80 Compile for compute capability 8.0 +# +# check your card at https://en.wikipedia.org/wiki/CUDA#GPUs_supported +# +# cc20 for Fermi cards +# cc30 / cc35 for Kepler cards (eg K20, K40, K80) +# cc50 for Maxwell cards +# cc60 for Pascal cards (eg P100) +# cc70 for Volta cards (eg V100) +# +# nvfortran options (nvfortran --help) +# +#-ta=host|multicore|tesla +# Choose target accelerator (supported only for OpenACC, DEPRECATED please refer to -acc and -gpu) +# host Compile for serial execution on the host CPU +# multicore Compile for parallel execution on the host CPU +# tesla Compile for parallel execution on a Tesla GPU +# +# -[no]acc[=gpu|host|multicore|[no]autopar|[no]routineseq|legacy|strict|verystrict|sync|[no]wait] +# Enable OpenACC directives +# gpu OpenACC directives are compiled for GPU execution only; please refer to -gpu for target specific options +# host Compile for serial execution on the host CPU +# multicore Compile for parallel execution on the host CPU +# [no]autopar Enable (default) or disable loop autoparallelization within acc parallel +# [no]routineseq Compile every routine for the device +# legacy Suppress warnings about deprecated PGI accelerator directives +# strict Issue warnings for non-OpenACC accelerator directives +# verystrict Fail with an error for any non-OpenACC accelerator directive +# sync Ignore async clauses +# [no]wait Wait for each device kernel to finish +# +#-gpu=cc35|cc50|cc60|cc62|cc70|cc72|cc75|cc80|ccall|cudaX.Y|fastmath|[no]flushz|[no]fma|keep|[no]lineinfo|llc|zeroinit|deepcopy|loadcache:{L1|L2}|maxregcount:|pinned|[no]rdc|safecache|[no]unroll|managed|beta|autocompare|redundant +# Select specific options for GPU code generation +# cc35 Compile for compute capability 3.5 +# cc50 Compile for compute capability 5.0 +# cc60 Compile for compute capability 6.0 +# cc62 Compile for compute capability 6.2 +# cc70 Compile for compute capability 7.0 +# cc72 Compile for compute capability 7.2 +# cc75 Compile for compute capability 7.5 +# cc80 Compile for compute capability 8.0 +# ccall Compile for all supported compute capabilities +# cudaX.Y Use CUDA X.Y Toolkit compatibility, where installed +# fastmath Use fast math library +# [no]flushz Enable flush-to-zero mode on the GPU +# [no]fma Generate fused mul-add instructions (default at -O3) +# keep Keep kernel files +# [no]lineinfo Generate GPU line information +# zeroinit Initialize allocated device memory with zero +# deepcopy Enable Full Deepcopy support in OpenACC Fortran +# loadcache Choose what hardware level cache to use for global memory loads +# L1 Use L1 cache +# L2 Use L2 cache +# maxregcount: Set maximum number of registers to use on the GPU +# pinned Use CUDA Pinned Memory +# [no]rdc Generate relocatable device code +# safecache Allows variable-sized array sections in cache directives and assumes they fit into CUDA shared memory +# [no]unroll Enable automatic inner loop unrolling (default at -O3) +# managed Use CUDA Managed Memory +# beta Enable beta code generation features +# autocompare Automatically compare CPU/GPU results: implies redundant +# redundant Redundant CPU/GPU execution + + + + +# Check whether --with-cuda-runtime was given. +if test ${with_cuda_runtime+y} +then : + withval=$with_cuda_runtime; +else $as_nop + with_cuda_runtime=10.1 +fi + +# + +# Check whether --with-cuda-int-libs was given. +if test ${with_cuda_int_libs+y} +then : + withval=$with_cuda_int_libs; +else $as_nop + with_cuda_int_libs=cufft,cublas,cusolver +fi + +# +# Check whether --enable-nvtx was given. +if test ${enable_nvtx+y} +then : + enableval=$enable_nvtx; +else $as_nop + enable_nvtx="no" +fi + +# + +# Check whether --with-gpu_libs was given. +if test ${with_gpu_libs+y} +then : + withval=$with_gpu_libs; +fi + + +# Check whether --with-gpu_incs was given. +if test ${with_gpu_incs+y} +then : + withval=$with_gpu_incs; +fi + +# + +# Check whether --with-rocm_libs was given. +if test ${with_rocm_libs+y} +then : + withval=$with_rocm_libs; +fi + + +# Check whether --with-rocm_incs was given. +if test ${with_rocm_incs+y} +then : + withval=$with_rocm_incs; +fi + + +# Check whether --with-rocm_libdir was given. +if test ${with_rocm_libdir+y} +then : + withval=$with_rocm_libdir; +fi + + +# Check whether --with-rocm_includedir was given. +if test ${with_rocm_includedir+y} +then : + withval=$with_rocm_includedir; +fi + + +# Check whether --with-rocm_path was given. +if test ${with_rocm_path+y} +then : + withval=$with_rocm_path; +fi + +# + +# Check whether --with-mklgpu_libs was given. +if test ${with_mklgpu_libs+y} +then : + withval=$with_mklgpu_libs; +fi + + +use_int_cuda_libs="no" +use_gpu_libs="no" +enable_nvtx=no +DEVXLIB_CUDALIBS="" +DEVXLIBLIB_FLAGS="" +GPU_LIBS="" +GPU_FLAGS="" +def_gpu="" + + + # + # If not set via the configure use the cuda libs internal to the pgi/nvidia compiler + DEVXLIB_CUDALIBS=""; + if test x"$LIBCUDA_LIBS" = "x" -o x"$with_cuda_libs" = "x" ; then + use_int_cuda_libs="yes" ; + DEVXLIB_CUDALIBS="${with_cuda_int_libs}"; + fi + + # + # GPU aux libraries + GPU_LIBS=""; + if test x"$GPU_LIBS" = "x" -o x"$with_gpu_libs" = "x" ; then + GPU_LIBS="$with_gpu_libs"; + fi + GPU_INCS=""; + if test x"$GPU_INCS" = "x" -o x"$with_gpu_incs" = "x" ; then + GPU_INCS="$with_gpu_incs"; + fi + +# +#if test "x$with_rocm_path" = "x" ; then with_rocm_path="$ROCM_PATH" ; fi +#if test "x$with_rocm_path" = "x" ; then with_rocm_path="$ROCM_ROOT" ; fi +#if test "x$with_rocm_path" = "x" ; then with_rocm_path="$ROCM_HOME" ; fi + +LIBROCM_PATH="$with_rocm_path" + +if test x"$with_rocm_path" != x"" && test -d "$with_rocm_path" ; then + librocm_incdir="$with_rocm_path/include" + librocm_libdir="$with_rocm_path/lib" + if ! test -d "$librocm_libdir" ; then librocm_libdir="$with_rocm_path/lib" ; fi +fi +if test x"$with_rocm_includedir" != x"" && test -d "$with_rocm_includedir" ; then + librocm_incdir="$with_rocm_includedir" + LIBROCM_LIBS="-L$librocm_libdir -lrocblas" +fi +if test x"$with_rocm_libdir" != "$with_rocm_libdir" && test -d "$with_rocm_libdir" ; then + librocm_libdir="$with_rocm_libdir" + LIBROCM_INCS="-I$librocm_incdir" +fi +# +if test x"$with_rocm_libs" != x"" ; then LIBROCM_LIBS="$with_rocm_libs" ; fi +if test x"$with_rocm_incs" != x"" ; then LIBROCM_INCS="$with_rocm_incs" ; fi + +# MKL-GPU +if test x"$with_mklgpu_libs" != x"" ; then MKLGPU_LIBS="$with_mklgpu_libs" ; fi + +# Cuda Fortran +if test x"$enable_cuda_fortran" != "xno" ; then + # + def_gpu="-D_GPU -D_CUDA -D_CUDAF" + # + # Flags to be passed to the devicexlib library + # + DEVXLIB_FLAGS="--enable-openmp --enable-cuda-fortran --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime}" + # + case "${FCVERSION}" in + *nvfortran*) + GPU_FLAGS="-cuda -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime}" + if test x"$use_int_cuda_libs" = "xyes" ; then + GPU_FLAGS+=" -cudalib=${with_cuda_int_libs}"; + fi + ;; + *) + GPU_FLAGS="-Mcuda=cc${with_cuda_cc},cuda${with_cuda_runtime}" + if test x"$use_int_cuda_libs" = "xyes" ; then + GPU_FLAGS+=" -Mcudalib=${with_cuda_int_libs}" + fi + esac + # + # Check CUDA + # + ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + + ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 +printf %s "checking for Fortran flag to compile .f90 files... " >&6; } +if test ${ac_cv_fc_srcext_f90+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=f90 +ac_fcflags_srcext_save=$ac_fcflags_srcext +ac_fcflags_srcext= +ac_cv_fc_srcext_f90=unknown +case $ac_ext in #( + [fF]77) ac_try=f77;; #( + *) ac_try=f95;; +esac +for ac_flag in none -qsuffix=f=f90 -Tf "-x $ac_try"; do + test "x$ac_flag" != xnone && ac_fcflags_srcext="$ac_flag" + cat > conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +if ac_fn_fc_try_compile "$LINENO" +then : + ac_cv_fc_srcext_f90=$ac_flag; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +done +rm -f conftest.$ac_objext conftest.f90 +ac_fcflags_srcext=$ac_fcflags_srcext_save + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 +printf "%s\n" "$ac_cv_fc_srcext_f90" >&6; } +if test "x$ac_cv_fc_srcext_f90" = xunknown; then + as_fn_error $? "Fortran could not compile .f90 files" "$LINENO" 5 +else + ac_fc_srcext=f90 + if test "x$ac_cv_fc_srcext_f90" = xnone; then + ac_fcflags_srcext="" + FCFLAGS_f90="" + else + ac_fcflags_srcext=$ac_cv_fc_srcext_f90 + FCFLAGS_f90=$ac_cv_fc_srcext_f90 + fi + -# -# Check whether --enable-cuda was given. -if test ${enable_cuda+y} -then : - enableval=$enable_cuda; fi +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu -# -# Check whether --enable-nvtx was given. -if test ${enable_nvtx+y} + as_CACHEVAR=`printf "%s\n" "ax_cv_check_fcflags__$GPU_FLAGS" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Fortran compiler accepts $GPU_FLAGS" >&5 +printf %s "checking whether Fortran compiler accepts $GPU_FLAGS... " >&6; } +if eval test \${$as_CACHEVAR+y} then : - enableval=$enable_nvtx; + printf %s "(cached) " >&6 +else $as_nop + + ax_check_save_flags=$FCFLAGS + FCFLAGS="$FCFLAGS $GPU_FLAGS" + cat > conftest.$ac_ext <<_ACEOF +MODULE test; use cudafor; END MODULE +_ACEOF +if ac_fn_fc_try_compile "$LINENO" +then : + eval "$as_CACHEVAR=yes" +else $as_nop + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + FCFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes" +then : + have_cudafor=yes +else $as_nop + have_cudafor=no fi -if test x"$enable_nvtx" = "x"; then enable_nvtx="no" ; fi -# -def_cuda="" -CUDA_FLAGS="" -CUDA_LIBS="-cudalib=cufft,cublas,cusolver" + ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu -# Available cc options: -# cc20 Compile for compute capability 2.0 -# cc30 Compile for compute capability 3.0 -# cc35 Compile for compute capability 3.5 -# cc50 Compile for compute capability 5.0 -# cc60 Compile for compute capability 6.0 -# cc70 Compile for compute capability 7.0 -# -# check your card at https://en.wikipedia.org/wiki/CUDA#GPUs_supported + if test "x$have_cudafor" != "xyes"; then + as_fn_error $? "You do not have the cudafor module. Are you using a PGI/NVIDIA compiler?" "$LINENO" 5 + fi + # + if ! test x"$enable_nvtx" = "xno" ; then + # + if test x"$enable_nvtx" = "xyes" ; then + def_gpu="$def_gpu -D_NVTX" + GPU_FLAGS="$GPU_FLAGS -lnvToolsExt" + elif ! test x"$enable_nvtx" = "x" ; then + def_gpu="$def_gpu -D_NVTX" + GPU_FLAGS="$GPU_FLAGS -L$enable_nvtx/lib64 -lnvToolsExt" + fi + fi +fi # -# cc20 for Fermi cards -# cc30 / cc35 for Kepler cards (eg K20, K40, K80) -# cc50 for Maxwell cards -# cc60 for Pascal cards (eg P100) -# cc70 for Volta cards (eg V100) +# Openacc # -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CUDA support" >&5 -printf %s "checking for CUDA support... " >&6; } -if test x"$enable_cuda" = "xyes" ; then - def_cuda="-D_CUDA" - CUDA_FLAGS="-cuda -gpu=cuda9.0,cc70,nollvm $CUDA_LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 -printf "%s\n" "$CUDA_FLAGS" >&6; } -elif ! test x"$enable_cuda" = "x" ; then - def_cuda="-D_CUDA" - CUDA_FLAGS="-cuda -gpu=$enable_cuda $CUDA_LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUDA_FLAGS" >&5 -printf "%s\n" "$CUDA_FLAGS" >&6; } -fi -# -if test x"$enable_cuda" = "x" -o x"$enable_cuda" = "xno" ; then - enable_nvtx=no - def_cuda="" - CUDA_FLAGS="" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +if test x"$enable_openacc" != "xno" ; then + # + # Flags to be passed to the devicexlib library + # + DEVXLIB_FLAGS="--enable-openacc --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime} " + def_gpu="-D_GPU -D_CUDA -D_OPENACC" + # + case "${FCVERSION}" in + *nvfortran*) + DEVXLIB_FLAGS+="--enable-openmp" + GPU_FLAGS="-acc=gpu,multicore -acclibs -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime} " # -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime}" + if test x"$use_int_cuda_libs" = "xyes" ; then + GPU_FLAGS+=" -cudalib=${with_cuda_int_libs}"; + fi + ;; + *pgfortran*) + DEVXLIB_FLAGS+="--enable-openmp" + GPU_FLAGS="-acc -acclibs -ta=tesla:cc${with_cuda_cc} " # -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime}" + if test x"$use_int_cuda_libs" = "xyes" ; then + GPU_FLAGS+=" -cudalib=${with_cuda_int_libs}"; + fi + ;; + *GNU* | *gnu*) + GPU_FLAGS="-fopenacc -foffload=-lm -foffload=-lgfortran" + # -foffload=nvptx-none + # -foffload=amdgcn-amdhsa -foffload=-march=gfx908 + # -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime} + esac + # fi # -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NVTX support" >&5 -printf %s "checking for NVTX support... " >&6; } -if ! test x"$enable_nvtx" = "xno" ; then - if test x"$enable_nvtx" = "xyes" ; then - def_cuda="$def_cuda -D_NVTX" - CUDA_FLAGS="$CUDA_FLAGS -lnvToolsExt" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - elif ! test x"$enable_nvtx" = "x" ; then - def_cuda="$def_cuda -D_NVTX" - CUDA_FLAGS="$CUDA_FLAGS -L$enable_nvtx/lib64 -lnvToolsExt" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - fi +# OpenMP5 +# +if test x"$enable_openmp5" != "xno" ; then + # + # Flags to be passed to the devicexlib library + # + def_gpu="-D_GPU -D_OPENMP_GPU" + GPU_FLAGS="-fopenmp" # -gpu=cc${with_cuda_cc},cuda${with_cuda_runtime}" + DEVXLIB_FLAGS="--enable-openmp5" # --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime}" + if test x"$LIBROCM_LIBS" != "x" ; then + DEVXLIB_FLAGS+=" --enable-rocblas --with-rocm-libs=$LIBROCM_LIBS"; + def_gpu="$def_gpu -D_HIP" + fi + if test x"$MKLGPU_LIBS" != "x" ; then + DEVXLIB_FLAGS+=" --enable-mkl-gpu" ; + def_gpu="$def_gpu -D_MKLGPU" + GPU_FLAGS="-qopenmp -fopenmp-targets=spir64" + fi + # fi # + + + + + + + + + + + + # +# ============================================================================ +# Device XLIB + + + + +# Check whether --with-devxlib_libs was given. +if test ${with_devxlib_libs+y} +then : + withval=$with_devxlib_libs; +fi + + +# Check whether --with-devxlib_path was given. +if test ${with_devxlib_path+y} +then : + withval=$with_devxlib_path; +fi + + +# Check whether --with-devxlib_libdir was given. +if test ${with_devxlib_libdir+y} +then : + withval=$with_devxlib_libdir; +fi + + +# Check whether --with-devxlib_includedir was given. +if test ${with_devxlib_includedir+y} +then : + withval=$with_devxlib_includedir; +fi + + + +# Check whether --with-devxlib-branch was given. +if test ${with_devxlib_branch+y} +then : + withval=$with_devxlib_branch; +else $as_nop + with_devxlib_branch=none +fi + + + +acx_devxlib_ok="no" +internal_devxlib="no" +compile_devxlib="no" + +DEVXLIB_info="" + +if test -d "$with_devxlib_path"; then + devxlib_incdir="$with_devxlib_path/include" + devxlib_libdir="$with_devxlib_path/lib" +fi +if test -d "$with_devxlib_includedir"; then devxlib_incdir="$with_devxlib_includedir" ; fi +if test -d "$with_devxlib_libdir"; then devxlib_libdir="$with_devxlib_libdir" ; fi + +DEVXLIB_INCS="$IFLAG$devxlib_incdir" + +acx_devxlib_save_LIBS="$LIBS" +acx_devxlib_save_FCFLAGS="$FCFLAGS" + +#This is fake, it is always going to fail +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for devxlib" >&5 +printf %s "checking for devxlib... " >&6; } + +testprog=" program main + + use devxlib + implicit none + + integer :: i + + end" + +FCFLAGS="$GPU_FLAGS $LIBCUDA_INCS $LIBROCM_INCS $DEVXLIB_INCS $acx_devxlib_save_FCFLAGS" + +# set from environment variable, if not blank +if test ! -z "$DEVXLIB_LIBS"; then + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# set from --with-devxlib-libs flag +if test x"$acx_devxlib_ok" = xno && test ! -z "$with_devxlib_libs" ; then + DEVXLIB_LIBS="$with_devxlib_libs" + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# dynamic linkage, separate Fortran interface +if test x"$acx_devxlib_ok" = xno; then + DEVXLIB_LIBS="-L$devxlib_libdir -ldevXlib" + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# static linkage, separate Fortran interface +if test x"$acx_devxlib_ok" = xno; then + DEVXLIB_LIBS="$devxlib_libdir/libdevXlib.a" + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# static linkage, combined Fortran interface (devxlib pre-r10730) +if test x"$acx_devxlib_ok" = xno; then + DEVXLIB_LIBS="$devxlib_libdir/libdevXlib.a" + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +# dynamic linkage, combined Fortran interface (devxlib pre-r10730) +if test x"$acx_devxlib_ok" = xno; then + DEVXLIB_LIBS="-L$devxlib_libdir -ldevXlib" + LIBS="$DEVXLIB_LIBS $LIBCUDA_LIBS $LIBROCM_LIBS" + cat > conftest.$ac_ext <<_ACEOF +$testprog +_ACEOF +if ac_fn_fc_try_link "$LINENO" +then : + acx_devxlib_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + + +if test x"$acx_devxlib_ok" = xyes; then + compile_devxlib=no + internal_devxlib=no + # + +printf "%s\n" "#define HAVE_DEVXLIB 1" >>confdefs.h + +fi + +if test x"$acx_devxlib_ok" = xno; then + internal_devxlib="yes" + #DEVXLIB_LIBS="${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/lib/libdevXlib.a" + DEVXLIB_LIBS="-L${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/lib -ldevXlib" + DEVXLIB_INCS="$IFLAG${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/include" + if test -e "${extlibs_path}/${FCKIND}/${FC}/${GPU_SUPPORT}/lib/libdevXlib.a"; then + compile_devxlib="no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Found internal already compiled." >&5 +printf "%s\n" "Compatible external DevXlib not found/specified. Found internal already compiled." >&6; } + else + if test x"$with_devxlib_branch" = "xnone"; then + DEVXLIB_info="(devxlib tarball)" + else + DEVXLIB_info="(devxlib $with_devxlib_branch branch)" + fi + compile_devxlib="yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Compatible external DevXlib not found/specified. Internal to be compiled." >&5 +printf "%s\n" "Compatible external DevXlib not found/specified. Internal to be compiled." >&6; } + fi +fi +FCFLAGS="$acx_devxlib_save_FCFLAGS" +LIBS="$acx_devxlib_save_LIBS" + + + + + + + + + + + # ============================================================================ # Prepare the REPORT file variables @@ -15493,7 +16620,7 @@ if test "$enable_time_profile" = "yes" ; then TIME_profile_check="X"; fi MEM_profile_check="-" if test "$enable_memory_profile" = "yes" ; then MEM_profile_check="X"; fi # -# - PARALLEL/CUDA SUPPORT - +# - PARALLEL/GPU SUPPORT - # CUDA_check="-" if ! test x"$enable_cuda" = "x"; then CUDA_check="X"; fi @@ -15511,6 +16638,12 @@ fi # OPENMP_check="-" if test "$enable_open_mp" = "yes" ; then OPENMP_check="X"; fi +# +GPU_check="-" +if test "$enable_cuda_fortran" = "yes" ; then GPU_check="X"; fi +if test "$enable_openacc" = "yes" ; then GPU_check="X"; fi +if test "$enable_openmp5" = "yes" ; then GPU_check="X"; fi + # # - LIBRARIES - # @@ -15586,6 +16719,7 @@ PETSC_check="-" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi @@ -15594,6 +16728,7 @@ SLEPC_check="-" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -15604,6 +16739,18 @@ if test "$internal_libxc" = "yes" ; then if test "$compile_libxc" = "no" ; then LIBXC_check="I"; fi fi # +DEVXLIB_check="E" +if test "$internal_devxlib" = "yes" ; then + if test "$compile_devxlib" = "yes"; then DEVXLIB_check="C"; fi + if test "$compile_devxlib" = "no" ; then DEVXLIB_check="I"; fi +fi +# +LIBCUDA_check="-" +if test "$use_libcuda" = "yes" ; then LIBCUDA_check="E"; fi + +GPU_libinfo="" +if test "$GPU_SUPPORT" = "cudaf" && test "$LIBCUDA_check" = "-" ; then GPU_libinfo="with internal cuda library"; fi +# YDB_check="-"; if test "$enable_ydb" = "yes" ; then YDB_check="X"; fi YPY_check="-"; @@ -15660,6 +16807,8 @@ fi + + # @@ -15680,6 +16829,8 @@ fi + + # # STRIPE [LIB] from paths # @@ -16027,6 +17178,52 @@ fi LIBXC_INCS_R=$STRIPE +# + +TMP1=`echo $DEVXLIB_LIBS | sed 's/\//+/g'` +TMP2=`echo $extlibs_path/${FCKIND}/${FC} | sed 's/\//+/g'` +TMP3=`echo $TMP1 | sed "s/$TMP2/\(LIB\)/g"` +STRIPE=`echo $TMP3 | sed 's/+/\//g'` +if [ -z "${1// }" ]; then + STRIPE="$STRIPE ("LIB")" +fi + +DEVXLIB_LIBS_R=$STRIPE + +TMP1=`echo $DEVXLIB_INCS | sed 's/\//+/g'` +TMP2=`echo $extlibs_path/${FCKIND}/${FC} | sed 's/\//+/g'` +TMP3=`echo $TMP1 | sed "s/$TMP2/\(LIB\)/g"` +STRIPE=`echo $TMP3 | sed 's/+/\//g'` +if [ -z "${1// }" ]; then + STRIPE="$STRIPE ("INC")" +fi + +DEVXLIB_INCS_R=$STRIPE + + +# + +TMP1=`echo $LIBCUDA_LIBS | sed 's/\//+/g'` +TMP2=`echo $extlibs_path/${FCKIND}/${FC} | sed 's/\//+/g'` +TMP3=`echo $TMP1 | sed "s/$TMP2/\(LIB\)/g"` +STRIPE=`echo $TMP3 | sed 's/+/\//g'` +if [ -z "${1// }" ]; then + STRIPE="$STRIPE ("LIB")" +fi + +LIBCUDA_LIBS_R=$STRIPE + +TMP1=`echo $LIBCUDA_INCS | sed 's/\//+/g'` +TMP2=`echo $extlibs_path/${FCKIND}/${FC} | sed 's/\//+/g'` +TMP3=`echo $TMP1 | sed "s/$TMP2/\(LIB\)/g"` +STRIPE=`echo $TMP3 | sed 's/+/\//g'` +if [ -z "${1// }" ]; then + STRIPE="$STRIPE ("INC")" +fi + +LIBCUDA_INCS_R=$STRIPE + + # TMP1=`echo $BLAS_PETSC_LIBS | sed 's/\//+/g'` @@ -16583,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23811 h.b713606d54, which was +This file was extended by Yambo $as_me 5.2.0 r.23853 h.6230811aef, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16647,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23811 h.b713606d54 +Yambo config.status 5.2.0 r.23853 h.6230811aef configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" From e76c856633d91eb835bc13f83c4f8d0656ececf7 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 14:51:29 +0100 Subject: [PATCH 074/112] Version 5.2.0, Revision 23854, Hash 27aee7365e MODIFIED * configure include/version/version.m4 Bugs: - Additions: - Changes: -Configure regenerated Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 288253686f..b24afba300 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23853 h.6230811aef. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23854 h.27aee7365e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23853 h.6230811aef' -PACKAGE_STRING='Yambo 5.2.0 r.23853 h.6230811aef' +PACKAGE_VERSION='5.2.0 r.23854 h.27aee7365e' +PACKAGE_STRING='Yambo 5.2.0 r.23854 h.27aee7365e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23853 h.6230811aef to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23854 h.27aee7365e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23853 h.6230811aef:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23854 h.27aee7365e:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23853 h.6230811aef +Yambo configure 5.2.0 r.23854 h.27aee7365e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23853 h.6230811aef, which was +It was created by Yambo $as_me 5.2.0 r.23854 h.27aee7365e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23853" -SHASH="6230811aef" +SREVISION="23854" +SHASH="27aee7365e" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23853 h.6230811aef, which was +This file was extended by Yambo $as_me 5.2.0 r.23854 h.27aee7365e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23853 h.6230811aef +Yambo config.status 5.2.0 r.23854 h.27aee7365e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a8ff878fc3..905d67be53 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23167 h.718bd4594, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23853 h.6230811aef, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23167" -SHASH="718bd4594" +SREVISION="23853" +SHASH="6230811aef" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From a0e94ead90554f44fdff6baa699f04013e9d7062 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 15:11:13 +0100 Subject: [PATCH 075/112] Working on compilation Version 5.2.0, Revision 23855, Hash e76c856633 MODIFIED * config/mk/global/libraries.mk configure include/headers/common/y_memory.h include/version/version.m4 RENAMED * Ymodules/.objects -> modules/Ymodules/.objects Ymodules/DOUBLE_project.dep -> modules/Ymodules/DOUBLE_project.dep Ymodules/ELPH_ITERATIVE_project.dep -> modules/Ymodules/ELPH_ITERATIVE_project.dep Ymodules/ELPH_project.dep -> modules/Ymodules/ELPH_project.dep Ymodules/NL_project.dep -> modules/Ymodules/NL_project.dep Ymodules/QED_project.dep -> modules/Ymodules/QED_project.dep Ymodules/RT_project.dep -> modules/Ymodules/RT_project.dep Ymodules/SC_project.dep -> modules/Ymodules/SC_project.dep Ymodules/SET_defaults.F -> modules/Ymodules/SET_defaults.F Ymodules/SET_logicals.F -> modules/Ymodules/SET_logicals.F Ymodules/YPP_ELPH_project.dep -> modules/Ymodules/YPP_ELPH_project.dep Ymodules/YPP_RT_project.dep -> modules/Ymodules/YPP_RT_project.dep Ymodules/mod_ACFDT.F -> modules/Ymodules/mod_ACFDT.F Ymodules/mod_ALLOC.F -> modules/Ymodules/mod_ALLOC.F Ymodules/mod_BS.F -> modules/Ymodules/mod_BS.F Ymodules/mod_BS_solvers.F -> modules/Ymodules/mod_BS_solvers.F Ymodules/mod_COLL_interfaces.F -> modules/Ymodules/mod_COLL_interfaces.F Ymodules/mod_DICHROISM.F -> modules/Ymodules/mod_DICHROISM.F Ymodules/mod_DIPOLES.F -> modules/Ymodules/mod_DIPOLES.F Ymodules/mod_D_lattice.F -> modules/Ymodules/mod_D_lattice.F Ymodules/mod_ELPH.F -> modules/Ymodules/mod_ELPH.F Ymodules/mod_FFT.F -> modules/Ymodules/mod_FFT.F Ymodules/mod_H_interfaces.F -> modules/Ymodules/mod_H_interfaces.F Ymodules/mod_IO.F -> modules/Ymodules/mod_IO.F Ymodules/mod_IO_interfaces.F -> modules/Ymodules/mod_IO_interfaces.F Ymodules/mod_LIVE_t.F -> modules/Ymodules/mod_LIVE_t.F Ymodules/mod_MAGNONS.F -> modules/Ymodules/mod_MAGNONS.F Ymodules/mod_MPA.F -> modules/Ymodules/mod_MPA.F Ymodules/mod_NL_interfaces.F -> modules/Ymodules/mod_NL_interfaces.F Ymodules/mod_OUTPUT.F -> modules/Ymodules/mod_OUTPUT.F Ymodules/mod_Overlaps.F -> modules/Ymodules/mod_Overlaps.F Ymodules/mod_PHOTOLUM.F -> modules/Ymodules/mod_PHOTOLUM.F Ymodules/mod_POL_FIT.F -> modules/Ymodules/mod_POL_FIT.F Ymodules/mod_QP.F -> modules/Ymodules/mod_QP.F Ymodules/mod_QP_CTL.F -> modules/Ymodules/mod_QP_CTL.F Ymodules/mod_RT_control.F -> modules/Ymodules/mod_RT_control.F Ymodules/mod_RT_iterative.F -> modules/Ymodules/mod_RT_iterative.F Ymodules/mod_RT_lifetimes.F -> modules/Ymodules/mod_RT_lifetimes.F Ymodules/mod_RT_occupations.F -> modules/Ymodules/mod_RT_occupations.F Ymodules/mod_RT_operations.F -> modules/Ymodules/mod_RT_operations.F Ymodules/mod_RT_output.F -> modules/Ymodules/mod_RT_output.F Ymodules/mod_R_lattice.F -> modules/Ymodules/mod_R_lattice.F Ymodules/mod_SC.F -> modules/Ymodules/mod_SC.F Ymodules/mod_SLK.F -> modules/Ymodules/mod_SLK.F Ymodules/mod_TDDFT.F -> modules/Ymodules/mod_TDDFT.F Ymodules/mod_X.F -> modules/Ymodules/mod_X.F Ymodules/mod_atom_proj.F -> modules/Ymodules/mod_atom_proj.F Ymodules/mod_collision_el.F -> modules/Ymodules/mod_collision_el.F Ymodules/mod_collision_ext.F -> modules/Ymodules/mod_collision_ext.F Ymodules/mod_com.F -> modules/Ymodules/mod_com.F Ymodules/mod_com_interfcs.F -> modules/Ymodules/mod_com_interfcs.F Ymodules/mod_cudafor.F -> modules/Ymodules/mod_cudafor.F Ymodules/mod_cufft.F -> modules/Ymodules/mod_cufft.F Ymodules/mod_cusolverdn_y.F -> modules/Ymodules/mod_cusolverdn_y.F Ymodules/mod_cutoff_ws.F -> modules/Ymodules/mod_cutoff_ws.F Ymodules/mod_debug.F -> modules/Ymodules/mod_debug.F Ymodules/mod_descriptors.F -> modules/Ymodules/mod_descriptors.F Ymodules/mod_drivers.F -> modules/Ymodules/mod_drivers.F Ymodules/mod_electric.F -> modules/Ymodules/mod_electric.F Ymodules/mod_electrons.F -> modules/Ymodules/mod_electrons.F Ymodules/mod_fields.F -> modules/Ymodules/mod_fields.F Ymodules/mod_frequency.F -> modules/Ymodules/mod_frequency.F Ymodules/mod_functions.F -> modules/Ymodules/mod_functions.F Ymodules/mod_global_XC.F -> modules/Ymodules/mod_global_XC.F Ymodules/mod_gpu.F -> modules/Ymodules/mod_gpu.F Ymodules/mod_hamiltonian.F -> modules/Ymodules/mod_hamiltonian.F Ymodules/mod_hip.F -> modules/Ymodules/mod_hip.F Ymodules/mod_hipfft.F -> modules/Ymodules/mod_hipfft.F Ymodules/mod_interfaces.F -> modules/Ymodules/mod_interfaces.F Ymodules/mod_interpolate.F -> modules/Ymodules/mod_interpolate.F Ymodules/mod_interpolate_tools.F -> modules/Ymodules/mod_interpolate_tools.F Ymodules/mod_lexical_sort.F -> modules/Ymodules/mod_lexical_sort.F Ymodules/mod_linear_algebra.F -> modules/Ymodules/mod_linear_algebra.F Ymodules/mod_logo.F -> modules/Ymodules/mod_logo.F Ymodules/mod_magnetic.F -> modules/Ymodules/mod_magnetic.F Ymodules/mod_matrix.F -> modules/Ymodules/mod_matrix.F Ymodules/mod_matrix_operate.F -> modules/Ymodules/mod_matrix_operate.F Ymodules/mod_memory.F -> modules/Ymodules/mod_memory.F Ymodules/mod_mklfft_gpu.F -> modules/Ymodules/mod_mklfft_gpu.F Ymodules/mod_nl_optics.F -> modules/Ymodules/mod_nl_optics.F Ymodules/mod_openmp.F -> modules/Ymodules/mod_openmp.F Ymodules/mod_parallel.F -> modules/Ymodules/mod_parallel.F Ymodules/mod_parallel_interface.F -> modules/Ymodules/mod_parallel_interface.F Ymodules/mod_pars.F -> modules/Ymodules/mod_pars.F Ymodules/mod_plasma.F -> modules/Ymodules/mod_plasma.F Ymodules/mod_pseudo.F -> modules/Ymodules/mod_pseudo.F Ymodules/mod_real_time.F -> modules/Ymodules/mod_real_time.F Ymodules/mod_stderr.F -> modules/Ymodules/mod_stderr.F Ymodules/mod_timing.F -> modules/Ymodules/mod_timing.F Ymodules/mod_units.F -> modules/Ymodules/mod_units.F Ymodules/mod_vec_operate.F -> modules/Ymodules/mod_vec_operate.F Ymodules/mod_wave_func.F -> modules/Ymodules/mod_wave_func.F Ymodules/mod_wrapper.F -> modules/Ymodules/mod_wrapper.F Ymodules/mod_wrapper_omp.F -> modules/Ymodules/mod_wrapper_omp.F Ymodules/mod_xc_functionals.F -> modules/Ymodules/mod_xc_functionals.F Ymodules/mod_zeros.F -> modules/Ymodules/mod_zeros.F Bugs: - Additions: - Changes: - Patch sent by: Claudio Attaccalite --- config/mk/global/libraries.mk | 10 ++++----- configure | 22 +++++++++---------- include/headers/common/y_memory.h | 2 +- include/version/version.m4 | 6 ++--- src/{ => modules}/Ymodules/.objects | 0 src/{ => modules}/Ymodules/DOUBLE_project.dep | 0 .../Ymodules/ELPH_ITERATIVE_project.dep | 0 src/{ => modules}/Ymodules/ELPH_project.dep | 0 src/{ => modules}/Ymodules/NL_project.dep | 0 src/{ => modules}/Ymodules/QED_project.dep | 0 src/{ => modules}/Ymodules/RT_project.dep | 0 src/{ => modules}/Ymodules/SC_project.dep | 0 src/{ => modules}/Ymodules/SET_defaults.F | 0 src/{ => modules}/Ymodules/SET_logicals.F | 0 .../Ymodules/YPP_ELPH_project.dep | 0 src/{ => modules}/Ymodules/YPP_RT_project.dep | 0 src/{ => modules}/Ymodules/mod_ACFDT.F | 0 src/{ => modules}/Ymodules/mod_ALLOC.F | 0 src/{ => modules}/Ymodules/mod_BS.F | 0 src/{ => modules}/Ymodules/mod_BS_solvers.F | 0 .../Ymodules/mod_COLL_interfaces.F | 0 src/{ => modules}/Ymodules/mod_DICHROISM.F | 0 src/{ => modules}/Ymodules/mod_DIPOLES.F | 0 src/{ => modules}/Ymodules/mod_D_lattice.F | 0 src/{ => modules}/Ymodules/mod_ELPH.F | 0 src/{ => modules}/Ymodules/mod_FFT.F | 0 src/{ => modules}/Ymodules/mod_H_interfaces.F | 0 src/{ => modules}/Ymodules/mod_IO.F | 0 .../Ymodules/mod_IO_interfaces.F | 0 src/{ => modules}/Ymodules/mod_LIVE_t.F | 0 src/{ => modules}/Ymodules/mod_MAGNONS.F | 0 src/{ => modules}/Ymodules/mod_MPA.F | 0 .../Ymodules/mod_NL_interfaces.F | 0 src/{ => modules}/Ymodules/mod_OUTPUT.F | 0 src/{ => modules}/Ymodules/mod_Overlaps.F | 0 src/{ => modules}/Ymodules/mod_PHOTOLUM.F | 0 src/{ => modules}/Ymodules/mod_POL_FIT.F | 0 src/{ => modules}/Ymodules/mod_QP.F | 0 src/{ => modules}/Ymodules/mod_QP_CTL.F | 0 src/{ => modules}/Ymodules/mod_RT_control.F | 0 src/{ => modules}/Ymodules/mod_RT_iterative.F | 0 src/{ => modules}/Ymodules/mod_RT_lifetimes.F | 0 .../Ymodules/mod_RT_occupations.F | 0 .../Ymodules/mod_RT_operations.F | 0 src/{ => modules}/Ymodules/mod_RT_output.F | 0 src/{ => modules}/Ymodules/mod_R_lattice.F | 0 src/{ => modules}/Ymodules/mod_SC.F | 0 src/{ => modules}/Ymodules/mod_SLK.F | 0 src/{ => modules}/Ymodules/mod_TDDFT.F | 0 src/{ => modules}/Ymodules/mod_X.F | 0 src/{ => modules}/Ymodules/mod_atom_proj.F | 0 src/{ => modules}/Ymodules/mod_collision_el.F | 0 .../Ymodules/mod_collision_ext.F | 0 src/{ => modules}/Ymodules/mod_com.F | 0 src/{ => modules}/Ymodules/mod_com_interfcs.F | 0 src/{ => modules}/Ymodules/mod_cudafor.F | 0 src/{ => modules}/Ymodules/mod_cufft.F | 0 src/{ => modules}/Ymodules/mod_cusolverdn_y.F | 0 src/{ => modules}/Ymodules/mod_cutoff_ws.F | 0 src/{ => modules}/Ymodules/mod_debug.F | 0 src/{ => modules}/Ymodules/mod_descriptors.F | 0 src/{ => modules}/Ymodules/mod_drivers.F | 0 src/{ => modules}/Ymodules/mod_electric.F | 0 src/{ => modules}/Ymodules/mod_electrons.F | 0 src/{ => modules}/Ymodules/mod_fields.F | 0 src/{ => modules}/Ymodules/mod_frequency.F | 0 src/{ => modules}/Ymodules/mod_functions.F | 0 src/{ => modules}/Ymodules/mod_global_XC.F | 0 src/{ => modules}/Ymodules/mod_gpu.F | 0 src/{ => modules}/Ymodules/mod_hamiltonian.F | 0 src/{ => modules}/Ymodules/mod_hip.F | 0 src/{ => modules}/Ymodules/mod_hipfft.F | 0 src/{ => modules}/Ymodules/mod_interfaces.F | 0 src/{ => modules}/Ymodules/mod_interpolate.F | 0 .../Ymodules/mod_interpolate_tools.F | 0 src/{ => modules}/Ymodules/mod_lexical_sort.F | 0 .../Ymodules/mod_linear_algebra.F | 0 src/{ => modules}/Ymodules/mod_logo.F | 0 src/{ => modules}/Ymodules/mod_magnetic.F | 0 src/{ => modules}/Ymodules/mod_matrix.F | 0 .../Ymodules/mod_matrix_operate.F | 0 src/{ => modules}/Ymodules/mod_memory.F | 0 src/{ => modules}/Ymodules/mod_mklfft_gpu.F | 0 src/{ => modules}/Ymodules/mod_nl_optics.F | 0 src/{ => modules}/Ymodules/mod_openmp.F | 0 src/{ => modules}/Ymodules/mod_parallel.F | 0 .../Ymodules/mod_parallel_interface.F | 0 src/{ => modules}/Ymodules/mod_pars.F | 0 src/{ => modules}/Ymodules/mod_plasma.F | 0 src/{ => modules}/Ymodules/mod_pseudo.F | 0 src/{ => modules}/Ymodules/mod_real_time.F | 0 src/{ => modules}/Ymodules/mod_stderr.F | 0 src/{ => modules}/Ymodules/mod_timing.F | 0 src/{ => modules}/Ymodules/mod_units.F | 0 src/{ => modules}/Ymodules/mod_vec_operate.F | 0 src/{ => modules}/Ymodules/mod_wave_func.F | 0 src/{ => modules}/Ymodules/mod_wrapper.F | 0 src/{ => modules}/Ymodules/mod_wrapper_omp.F | 0 .../Ymodules/mod_xc_functionals.F | 0 src/{ => modules}/Ymodules/mod_zeros.F | 0 100 files changed, 20 insertions(+), 20 deletions(-) rename src/{ => modules}/Ymodules/.objects (100%) rename src/{ => modules}/Ymodules/DOUBLE_project.dep (100%) rename src/{ => modules}/Ymodules/ELPH_ITERATIVE_project.dep (100%) rename src/{ => modules}/Ymodules/ELPH_project.dep (100%) rename src/{ => modules}/Ymodules/NL_project.dep (100%) rename src/{ => modules}/Ymodules/QED_project.dep (100%) rename src/{ => modules}/Ymodules/RT_project.dep (100%) rename src/{ => modules}/Ymodules/SC_project.dep (100%) rename src/{ => modules}/Ymodules/SET_defaults.F (100%) rename src/{ => modules}/Ymodules/SET_logicals.F (100%) rename src/{ => modules}/Ymodules/YPP_ELPH_project.dep (100%) rename src/{ => modules}/Ymodules/YPP_RT_project.dep (100%) rename src/{ => modules}/Ymodules/mod_ACFDT.F (100%) rename src/{ => modules}/Ymodules/mod_ALLOC.F (100%) rename src/{ => modules}/Ymodules/mod_BS.F (100%) rename src/{ => modules}/Ymodules/mod_BS_solvers.F (100%) rename src/{ => modules}/Ymodules/mod_COLL_interfaces.F (100%) rename src/{ => modules}/Ymodules/mod_DICHROISM.F (100%) rename src/{ => modules}/Ymodules/mod_DIPOLES.F (100%) rename src/{ => modules}/Ymodules/mod_D_lattice.F (100%) rename src/{ => modules}/Ymodules/mod_ELPH.F (100%) rename src/{ => modules}/Ymodules/mod_FFT.F (100%) rename src/{ => modules}/Ymodules/mod_H_interfaces.F (100%) rename src/{ => modules}/Ymodules/mod_IO.F (100%) rename src/{ => modules}/Ymodules/mod_IO_interfaces.F (100%) rename src/{ => modules}/Ymodules/mod_LIVE_t.F (100%) rename src/{ => modules}/Ymodules/mod_MAGNONS.F (100%) rename src/{ => modules}/Ymodules/mod_MPA.F (100%) rename src/{ => modules}/Ymodules/mod_NL_interfaces.F (100%) rename src/{ => modules}/Ymodules/mod_OUTPUT.F (100%) rename src/{ => modules}/Ymodules/mod_Overlaps.F (100%) rename src/{ => modules}/Ymodules/mod_PHOTOLUM.F (100%) rename src/{ => modules}/Ymodules/mod_POL_FIT.F (100%) rename src/{ => modules}/Ymodules/mod_QP.F (100%) rename src/{ => modules}/Ymodules/mod_QP_CTL.F (100%) rename src/{ => modules}/Ymodules/mod_RT_control.F (100%) rename src/{ => modules}/Ymodules/mod_RT_iterative.F (100%) rename src/{ => modules}/Ymodules/mod_RT_lifetimes.F (100%) rename src/{ => modules}/Ymodules/mod_RT_occupations.F (100%) rename src/{ => modules}/Ymodules/mod_RT_operations.F (100%) rename src/{ => modules}/Ymodules/mod_RT_output.F (100%) rename src/{ => modules}/Ymodules/mod_R_lattice.F (100%) rename src/{ => modules}/Ymodules/mod_SC.F (100%) rename src/{ => modules}/Ymodules/mod_SLK.F (100%) rename src/{ => modules}/Ymodules/mod_TDDFT.F (100%) rename src/{ => modules}/Ymodules/mod_X.F (100%) rename src/{ => modules}/Ymodules/mod_atom_proj.F (100%) rename src/{ => modules}/Ymodules/mod_collision_el.F (100%) rename src/{ => modules}/Ymodules/mod_collision_ext.F (100%) rename src/{ => modules}/Ymodules/mod_com.F (100%) rename src/{ => modules}/Ymodules/mod_com_interfcs.F (100%) rename src/{ => modules}/Ymodules/mod_cudafor.F (100%) rename src/{ => modules}/Ymodules/mod_cufft.F (100%) rename src/{ => modules}/Ymodules/mod_cusolverdn_y.F (100%) rename src/{ => modules}/Ymodules/mod_cutoff_ws.F (100%) rename src/{ => modules}/Ymodules/mod_debug.F (100%) rename src/{ => modules}/Ymodules/mod_descriptors.F (100%) rename src/{ => modules}/Ymodules/mod_drivers.F (100%) rename src/{ => modules}/Ymodules/mod_electric.F (100%) rename src/{ => modules}/Ymodules/mod_electrons.F (100%) rename src/{ => modules}/Ymodules/mod_fields.F (100%) rename src/{ => modules}/Ymodules/mod_frequency.F (100%) rename src/{ => modules}/Ymodules/mod_functions.F (100%) rename src/{ => modules}/Ymodules/mod_global_XC.F (100%) rename src/{ => modules}/Ymodules/mod_gpu.F (100%) rename src/{ => modules}/Ymodules/mod_hamiltonian.F (100%) rename src/{ => modules}/Ymodules/mod_hip.F (100%) rename src/{ => modules}/Ymodules/mod_hipfft.F (100%) rename src/{ => modules}/Ymodules/mod_interfaces.F (100%) rename src/{ => modules}/Ymodules/mod_interpolate.F (100%) rename src/{ => modules}/Ymodules/mod_interpolate_tools.F (100%) rename src/{ => modules}/Ymodules/mod_lexical_sort.F (100%) rename src/{ => modules}/Ymodules/mod_linear_algebra.F (100%) rename src/{ => modules}/Ymodules/mod_logo.F (100%) rename src/{ => modules}/Ymodules/mod_magnetic.F (100%) rename src/{ => modules}/Ymodules/mod_matrix.F (100%) rename src/{ => modules}/Ymodules/mod_matrix_operate.F (100%) rename src/{ => modules}/Ymodules/mod_memory.F (100%) rename src/{ => modules}/Ymodules/mod_mklfft_gpu.F (100%) rename src/{ => modules}/Ymodules/mod_nl_optics.F (100%) rename src/{ => modules}/Ymodules/mod_openmp.F (100%) rename src/{ => modules}/Ymodules/mod_parallel.F (100%) rename src/{ => modules}/Ymodules/mod_parallel_interface.F (100%) rename src/{ => modules}/Ymodules/mod_pars.F (100%) rename src/{ => modules}/Ymodules/mod_plasma.F (100%) rename src/{ => modules}/Ymodules/mod_pseudo.F (100%) rename src/{ => modules}/Ymodules/mod_real_time.F (100%) rename src/{ => modules}/Ymodules/mod_stderr.F (100%) rename src/{ => modules}/Ymodules/mod_timing.F (100%) rename src/{ => modules}/Ymodules/mod_units.F (100%) rename src/{ => modules}/Ymodules/mod_vec_operate.F (100%) rename src/{ => modules}/Ymodules/mod_wave_func.F (100%) rename src/{ => modules}/Ymodules/mod_wrapper.F (100%) rename src/{ => modules}/Ymodules/mod_wrapper_omp.F (100%) rename src/{ => modules}/Ymodules/mod_xc_functionals.F (100%) rename src/{ => modules}/Ymodules/mod_zeros.F (100%) diff --git a/config/mk/global/libraries.mk b/config/mk/global/libraries.mk index 8408554c64..b158a26dc3 100644 --- a/config/mk/global/libraries.mk +++ b/config/mk/global/libraries.mk @@ -14,15 +14,15 @@ include lib/archive/package.list # INT_LIBS = qe_pseudo slatec math77 local YAMBO_INT_LIBS= Yio -YLIBIO = Ymodules Yio +YLIBIO = modules Yio YLIBIO_LD = $(YLIBIO) # # Yambo folders #=============== # -BASIC_LIBS = driver tools Ymodules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ +BASIC_LIBS = driver tools modules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ xc_functionals interface stop_and_restart wf_and_fft bz_ops coulomb -BASIC_LIBS_LD= tools memory allocations communicate Ymodules matrices linear_algebra bz_ops parallel parser output common timing Yio io $(IO_MODE) \ +BASIC_LIBS_LD= tools memory allocations communicate modules matrices linear_algebra bz_ops parallel parser output common timing Yio io $(IO_MODE) \ xc_functionals interface stop_and_restart wf_and_fft coulomb MAIN_LIBS = $(BASIC_LIBS) interpolate qp_control setup tddft dipoles pol_function qp acfdt bse @@ -55,9 +55,9 @@ PJ_NLLIBS_LD = $(BASIC_LIBS_LD) interpolate real_time_control qp_control setup \ # Yambo folders needed by Interfaces #===================================== # -2Y_LIBS = driver tools Ymodules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ +2Y_LIBS = driver tools modules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ setup interface stop_and_restart bz_ops -2Y_LIBS_LD = tools memory allocations communicate Ymodules matrices linear_algebra parallel parser output common timing Yio io $(IO_MODE) \ +2Y_LIBS_LD = tools memory allocations communicate modules matrices linear_algebra parallel parser output common timing Yio io $(IO_MODE) \ setup interface stop_and_restart bz_ops # # YPP folders diff --git a/configure b/configure index b24afba300..033d10a6fe 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23854 h.27aee7365e. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23855 h.e76c856633. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23854 h.27aee7365e' -PACKAGE_STRING='Yambo 5.2.0 r.23854 h.27aee7365e' +PACKAGE_VERSION='5.2.0 r.23855 h.e76c856633' +PACKAGE_STRING='Yambo 5.2.0 r.23855 h.e76c856633' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23854 h.27aee7365e to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23855 h.e76c856633 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23854 h.27aee7365e:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23855 h.e76c856633:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23854 h.27aee7365e +Yambo configure 5.2.0 r.23855 h.e76c856633 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23854 h.27aee7365e, which was +It was created by Yambo $as_me 5.2.0 r.23855 h.e76c856633, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23854" -SHASH="27aee7365e" +SREVISION="23855" +SHASH="e76c856633" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23854 h.27aee7365e, which was +This file was extended by Yambo $as_me 5.2.0 r.23855 h.e76c856633, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23854 h.27aee7365e +Yambo config.status 5.2.0 r.23855 h.e76c856633 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/headers/common/y_memory.h b/include/headers/common/y_memory.h index f5bd84fe64..f211109a53 100644 --- a/include/headers/common/y_memory.h +++ b/include/headers/common/y_memory.h @@ -8,7 +8,7 @@ */ use pars, ONLY:IPL - use memory, ONLY:MEM_err,MEM_msg,MEM_count,MEM_global_mesg + use y_memory, ONLY:MEM_err,MEM_msg,MEM_count,MEM_global_mesg implicit none diff --git a/include/version/version.m4 b/include/version/version.m4 index 905d67be53..281c61562e 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23853 h.6230811aef, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23854 h.27aee7365e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23853" -SHASH="6230811aef" +SREVISION="23854" +SHASH="27aee7365e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/Ymodules/.objects b/src/modules/Ymodules/.objects similarity index 100% rename from src/Ymodules/.objects rename to src/modules/Ymodules/.objects diff --git a/src/Ymodules/DOUBLE_project.dep b/src/modules/Ymodules/DOUBLE_project.dep similarity index 100% rename from src/Ymodules/DOUBLE_project.dep rename to src/modules/Ymodules/DOUBLE_project.dep diff --git a/src/Ymodules/ELPH_ITERATIVE_project.dep b/src/modules/Ymodules/ELPH_ITERATIVE_project.dep similarity index 100% rename from src/Ymodules/ELPH_ITERATIVE_project.dep rename to src/modules/Ymodules/ELPH_ITERATIVE_project.dep diff --git a/src/Ymodules/ELPH_project.dep b/src/modules/Ymodules/ELPH_project.dep similarity index 100% rename from src/Ymodules/ELPH_project.dep rename to src/modules/Ymodules/ELPH_project.dep diff --git a/src/Ymodules/NL_project.dep b/src/modules/Ymodules/NL_project.dep similarity index 100% rename from src/Ymodules/NL_project.dep rename to src/modules/Ymodules/NL_project.dep diff --git a/src/Ymodules/QED_project.dep b/src/modules/Ymodules/QED_project.dep similarity index 100% rename from src/Ymodules/QED_project.dep rename to src/modules/Ymodules/QED_project.dep diff --git a/src/Ymodules/RT_project.dep b/src/modules/Ymodules/RT_project.dep similarity index 100% rename from src/Ymodules/RT_project.dep rename to src/modules/Ymodules/RT_project.dep diff --git a/src/Ymodules/SC_project.dep b/src/modules/Ymodules/SC_project.dep similarity index 100% rename from src/Ymodules/SC_project.dep rename to src/modules/Ymodules/SC_project.dep diff --git a/src/Ymodules/SET_defaults.F b/src/modules/Ymodules/SET_defaults.F similarity index 100% rename from src/Ymodules/SET_defaults.F rename to src/modules/Ymodules/SET_defaults.F diff --git a/src/Ymodules/SET_logicals.F b/src/modules/Ymodules/SET_logicals.F similarity index 100% rename from src/Ymodules/SET_logicals.F rename to src/modules/Ymodules/SET_logicals.F diff --git a/src/Ymodules/YPP_ELPH_project.dep b/src/modules/Ymodules/YPP_ELPH_project.dep similarity index 100% rename from src/Ymodules/YPP_ELPH_project.dep rename to src/modules/Ymodules/YPP_ELPH_project.dep diff --git a/src/Ymodules/YPP_RT_project.dep b/src/modules/Ymodules/YPP_RT_project.dep similarity index 100% rename from src/Ymodules/YPP_RT_project.dep rename to src/modules/Ymodules/YPP_RT_project.dep diff --git a/src/Ymodules/mod_ACFDT.F b/src/modules/Ymodules/mod_ACFDT.F similarity index 100% rename from src/Ymodules/mod_ACFDT.F rename to src/modules/Ymodules/mod_ACFDT.F diff --git a/src/Ymodules/mod_ALLOC.F b/src/modules/Ymodules/mod_ALLOC.F similarity index 100% rename from src/Ymodules/mod_ALLOC.F rename to src/modules/Ymodules/mod_ALLOC.F diff --git a/src/Ymodules/mod_BS.F b/src/modules/Ymodules/mod_BS.F similarity index 100% rename from src/Ymodules/mod_BS.F rename to src/modules/Ymodules/mod_BS.F diff --git a/src/Ymodules/mod_BS_solvers.F b/src/modules/Ymodules/mod_BS_solvers.F similarity index 100% rename from src/Ymodules/mod_BS_solvers.F rename to src/modules/Ymodules/mod_BS_solvers.F diff --git a/src/Ymodules/mod_COLL_interfaces.F b/src/modules/Ymodules/mod_COLL_interfaces.F similarity index 100% rename from src/Ymodules/mod_COLL_interfaces.F rename to src/modules/Ymodules/mod_COLL_interfaces.F diff --git a/src/Ymodules/mod_DICHROISM.F b/src/modules/Ymodules/mod_DICHROISM.F similarity index 100% rename from src/Ymodules/mod_DICHROISM.F rename to src/modules/Ymodules/mod_DICHROISM.F diff --git a/src/Ymodules/mod_DIPOLES.F b/src/modules/Ymodules/mod_DIPOLES.F similarity index 100% rename from src/Ymodules/mod_DIPOLES.F rename to src/modules/Ymodules/mod_DIPOLES.F diff --git a/src/Ymodules/mod_D_lattice.F b/src/modules/Ymodules/mod_D_lattice.F similarity index 100% rename from src/Ymodules/mod_D_lattice.F rename to src/modules/Ymodules/mod_D_lattice.F diff --git a/src/Ymodules/mod_ELPH.F b/src/modules/Ymodules/mod_ELPH.F similarity index 100% rename from src/Ymodules/mod_ELPH.F rename to src/modules/Ymodules/mod_ELPH.F diff --git a/src/Ymodules/mod_FFT.F b/src/modules/Ymodules/mod_FFT.F similarity index 100% rename from src/Ymodules/mod_FFT.F rename to src/modules/Ymodules/mod_FFT.F diff --git a/src/Ymodules/mod_H_interfaces.F b/src/modules/Ymodules/mod_H_interfaces.F similarity index 100% rename from src/Ymodules/mod_H_interfaces.F rename to src/modules/Ymodules/mod_H_interfaces.F diff --git a/src/Ymodules/mod_IO.F b/src/modules/Ymodules/mod_IO.F similarity index 100% rename from src/Ymodules/mod_IO.F rename to src/modules/Ymodules/mod_IO.F diff --git a/src/Ymodules/mod_IO_interfaces.F b/src/modules/Ymodules/mod_IO_interfaces.F similarity index 100% rename from src/Ymodules/mod_IO_interfaces.F rename to src/modules/Ymodules/mod_IO_interfaces.F diff --git a/src/Ymodules/mod_LIVE_t.F b/src/modules/Ymodules/mod_LIVE_t.F similarity index 100% rename from src/Ymodules/mod_LIVE_t.F rename to src/modules/Ymodules/mod_LIVE_t.F diff --git a/src/Ymodules/mod_MAGNONS.F b/src/modules/Ymodules/mod_MAGNONS.F similarity index 100% rename from src/Ymodules/mod_MAGNONS.F rename to src/modules/Ymodules/mod_MAGNONS.F diff --git a/src/Ymodules/mod_MPA.F b/src/modules/Ymodules/mod_MPA.F similarity index 100% rename from src/Ymodules/mod_MPA.F rename to src/modules/Ymodules/mod_MPA.F diff --git a/src/Ymodules/mod_NL_interfaces.F b/src/modules/Ymodules/mod_NL_interfaces.F similarity index 100% rename from src/Ymodules/mod_NL_interfaces.F rename to src/modules/Ymodules/mod_NL_interfaces.F diff --git a/src/Ymodules/mod_OUTPUT.F b/src/modules/Ymodules/mod_OUTPUT.F similarity index 100% rename from src/Ymodules/mod_OUTPUT.F rename to src/modules/Ymodules/mod_OUTPUT.F diff --git a/src/Ymodules/mod_Overlaps.F b/src/modules/Ymodules/mod_Overlaps.F similarity index 100% rename from src/Ymodules/mod_Overlaps.F rename to src/modules/Ymodules/mod_Overlaps.F diff --git a/src/Ymodules/mod_PHOTOLUM.F b/src/modules/Ymodules/mod_PHOTOLUM.F similarity index 100% rename from src/Ymodules/mod_PHOTOLUM.F rename to src/modules/Ymodules/mod_PHOTOLUM.F diff --git a/src/Ymodules/mod_POL_FIT.F b/src/modules/Ymodules/mod_POL_FIT.F similarity index 100% rename from src/Ymodules/mod_POL_FIT.F rename to src/modules/Ymodules/mod_POL_FIT.F diff --git a/src/Ymodules/mod_QP.F b/src/modules/Ymodules/mod_QP.F similarity index 100% rename from src/Ymodules/mod_QP.F rename to src/modules/Ymodules/mod_QP.F diff --git a/src/Ymodules/mod_QP_CTL.F b/src/modules/Ymodules/mod_QP_CTL.F similarity index 100% rename from src/Ymodules/mod_QP_CTL.F rename to src/modules/Ymodules/mod_QP_CTL.F diff --git a/src/Ymodules/mod_RT_control.F b/src/modules/Ymodules/mod_RT_control.F similarity index 100% rename from src/Ymodules/mod_RT_control.F rename to src/modules/Ymodules/mod_RT_control.F diff --git a/src/Ymodules/mod_RT_iterative.F b/src/modules/Ymodules/mod_RT_iterative.F similarity index 100% rename from src/Ymodules/mod_RT_iterative.F rename to src/modules/Ymodules/mod_RT_iterative.F diff --git a/src/Ymodules/mod_RT_lifetimes.F b/src/modules/Ymodules/mod_RT_lifetimes.F similarity index 100% rename from src/Ymodules/mod_RT_lifetimes.F rename to src/modules/Ymodules/mod_RT_lifetimes.F diff --git a/src/Ymodules/mod_RT_occupations.F b/src/modules/Ymodules/mod_RT_occupations.F similarity index 100% rename from src/Ymodules/mod_RT_occupations.F rename to src/modules/Ymodules/mod_RT_occupations.F diff --git a/src/Ymodules/mod_RT_operations.F b/src/modules/Ymodules/mod_RT_operations.F similarity index 100% rename from src/Ymodules/mod_RT_operations.F rename to src/modules/Ymodules/mod_RT_operations.F diff --git a/src/Ymodules/mod_RT_output.F b/src/modules/Ymodules/mod_RT_output.F similarity index 100% rename from src/Ymodules/mod_RT_output.F rename to src/modules/Ymodules/mod_RT_output.F diff --git a/src/Ymodules/mod_R_lattice.F b/src/modules/Ymodules/mod_R_lattice.F similarity index 100% rename from src/Ymodules/mod_R_lattice.F rename to src/modules/Ymodules/mod_R_lattice.F diff --git a/src/Ymodules/mod_SC.F b/src/modules/Ymodules/mod_SC.F similarity index 100% rename from src/Ymodules/mod_SC.F rename to src/modules/Ymodules/mod_SC.F diff --git a/src/Ymodules/mod_SLK.F b/src/modules/Ymodules/mod_SLK.F similarity index 100% rename from src/Ymodules/mod_SLK.F rename to src/modules/Ymodules/mod_SLK.F diff --git a/src/Ymodules/mod_TDDFT.F b/src/modules/Ymodules/mod_TDDFT.F similarity index 100% rename from src/Ymodules/mod_TDDFT.F rename to src/modules/Ymodules/mod_TDDFT.F diff --git a/src/Ymodules/mod_X.F b/src/modules/Ymodules/mod_X.F similarity index 100% rename from src/Ymodules/mod_X.F rename to src/modules/Ymodules/mod_X.F diff --git a/src/Ymodules/mod_atom_proj.F b/src/modules/Ymodules/mod_atom_proj.F similarity index 100% rename from src/Ymodules/mod_atom_proj.F rename to src/modules/Ymodules/mod_atom_proj.F diff --git a/src/Ymodules/mod_collision_el.F b/src/modules/Ymodules/mod_collision_el.F similarity index 100% rename from src/Ymodules/mod_collision_el.F rename to src/modules/Ymodules/mod_collision_el.F diff --git a/src/Ymodules/mod_collision_ext.F b/src/modules/Ymodules/mod_collision_ext.F similarity index 100% rename from src/Ymodules/mod_collision_ext.F rename to src/modules/Ymodules/mod_collision_ext.F diff --git a/src/Ymodules/mod_com.F b/src/modules/Ymodules/mod_com.F similarity index 100% rename from src/Ymodules/mod_com.F rename to src/modules/Ymodules/mod_com.F diff --git a/src/Ymodules/mod_com_interfcs.F b/src/modules/Ymodules/mod_com_interfcs.F similarity index 100% rename from src/Ymodules/mod_com_interfcs.F rename to src/modules/Ymodules/mod_com_interfcs.F diff --git a/src/Ymodules/mod_cudafor.F b/src/modules/Ymodules/mod_cudafor.F similarity index 100% rename from src/Ymodules/mod_cudafor.F rename to src/modules/Ymodules/mod_cudafor.F diff --git a/src/Ymodules/mod_cufft.F b/src/modules/Ymodules/mod_cufft.F similarity index 100% rename from src/Ymodules/mod_cufft.F rename to src/modules/Ymodules/mod_cufft.F diff --git a/src/Ymodules/mod_cusolverdn_y.F b/src/modules/Ymodules/mod_cusolverdn_y.F similarity index 100% rename from src/Ymodules/mod_cusolverdn_y.F rename to src/modules/Ymodules/mod_cusolverdn_y.F diff --git a/src/Ymodules/mod_cutoff_ws.F b/src/modules/Ymodules/mod_cutoff_ws.F similarity index 100% rename from src/Ymodules/mod_cutoff_ws.F rename to src/modules/Ymodules/mod_cutoff_ws.F diff --git a/src/Ymodules/mod_debug.F b/src/modules/Ymodules/mod_debug.F similarity index 100% rename from src/Ymodules/mod_debug.F rename to src/modules/Ymodules/mod_debug.F diff --git a/src/Ymodules/mod_descriptors.F b/src/modules/Ymodules/mod_descriptors.F similarity index 100% rename from src/Ymodules/mod_descriptors.F rename to src/modules/Ymodules/mod_descriptors.F diff --git a/src/Ymodules/mod_drivers.F b/src/modules/Ymodules/mod_drivers.F similarity index 100% rename from src/Ymodules/mod_drivers.F rename to src/modules/Ymodules/mod_drivers.F diff --git a/src/Ymodules/mod_electric.F b/src/modules/Ymodules/mod_electric.F similarity index 100% rename from src/Ymodules/mod_electric.F rename to src/modules/Ymodules/mod_electric.F diff --git a/src/Ymodules/mod_electrons.F b/src/modules/Ymodules/mod_electrons.F similarity index 100% rename from src/Ymodules/mod_electrons.F rename to src/modules/Ymodules/mod_electrons.F diff --git a/src/Ymodules/mod_fields.F b/src/modules/Ymodules/mod_fields.F similarity index 100% rename from src/Ymodules/mod_fields.F rename to src/modules/Ymodules/mod_fields.F diff --git a/src/Ymodules/mod_frequency.F b/src/modules/Ymodules/mod_frequency.F similarity index 100% rename from src/Ymodules/mod_frequency.F rename to src/modules/Ymodules/mod_frequency.F diff --git a/src/Ymodules/mod_functions.F b/src/modules/Ymodules/mod_functions.F similarity index 100% rename from src/Ymodules/mod_functions.F rename to src/modules/Ymodules/mod_functions.F diff --git a/src/Ymodules/mod_global_XC.F b/src/modules/Ymodules/mod_global_XC.F similarity index 100% rename from src/Ymodules/mod_global_XC.F rename to src/modules/Ymodules/mod_global_XC.F diff --git a/src/Ymodules/mod_gpu.F b/src/modules/Ymodules/mod_gpu.F similarity index 100% rename from src/Ymodules/mod_gpu.F rename to src/modules/Ymodules/mod_gpu.F diff --git a/src/Ymodules/mod_hamiltonian.F b/src/modules/Ymodules/mod_hamiltonian.F similarity index 100% rename from src/Ymodules/mod_hamiltonian.F rename to src/modules/Ymodules/mod_hamiltonian.F diff --git a/src/Ymodules/mod_hip.F b/src/modules/Ymodules/mod_hip.F similarity index 100% rename from src/Ymodules/mod_hip.F rename to src/modules/Ymodules/mod_hip.F diff --git a/src/Ymodules/mod_hipfft.F b/src/modules/Ymodules/mod_hipfft.F similarity index 100% rename from src/Ymodules/mod_hipfft.F rename to src/modules/Ymodules/mod_hipfft.F diff --git a/src/Ymodules/mod_interfaces.F b/src/modules/Ymodules/mod_interfaces.F similarity index 100% rename from src/Ymodules/mod_interfaces.F rename to src/modules/Ymodules/mod_interfaces.F diff --git a/src/Ymodules/mod_interpolate.F b/src/modules/Ymodules/mod_interpolate.F similarity index 100% rename from src/Ymodules/mod_interpolate.F rename to src/modules/Ymodules/mod_interpolate.F diff --git a/src/Ymodules/mod_interpolate_tools.F b/src/modules/Ymodules/mod_interpolate_tools.F similarity index 100% rename from src/Ymodules/mod_interpolate_tools.F rename to src/modules/Ymodules/mod_interpolate_tools.F diff --git a/src/Ymodules/mod_lexical_sort.F b/src/modules/Ymodules/mod_lexical_sort.F similarity index 100% rename from src/Ymodules/mod_lexical_sort.F rename to src/modules/Ymodules/mod_lexical_sort.F diff --git a/src/Ymodules/mod_linear_algebra.F b/src/modules/Ymodules/mod_linear_algebra.F similarity index 100% rename from src/Ymodules/mod_linear_algebra.F rename to src/modules/Ymodules/mod_linear_algebra.F diff --git a/src/Ymodules/mod_logo.F b/src/modules/Ymodules/mod_logo.F similarity index 100% rename from src/Ymodules/mod_logo.F rename to src/modules/Ymodules/mod_logo.F diff --git a/src/Ymodules/mod_magnetic.F b/src/modules/Ymodules/mod_magnetic.F similarity index 100% rename from src/Ymodules/mod_magnetic.F rename to src/modules/Ymodules/mod_magnetic.F diff --git a/src/Ymodules/mod_matrix.F b/src/modules/Ymodules/mod_matrix.F similarity index 100% rename from src/Ymodules/mod_matrix.F rename to src/modules/Ymodules/mod_matrix.F diff --git a/src/Ymodules/mod_matrix_operate.F b/src/modules/Ymodules/mod_matrix_operate.F similarity index 100% rename from src/Ymodules/mod_matrix_operate.F rename to src/modules/Ymodules/mod_matrix_operate.F diff --git a/src/Ymodules/mod_memory.F b/src/modules/Ymodules/mod_memory.F similarity index 100% rename from src/Ymodules/mod_memory.F rename to src/modules/Ymodules/mod_memory.F diff --git a/src/Ymodules/mod_mklfft_gpu.F b/src/modules/Ymodules/mod_mklfft_gpu.F similarity index 100% rename from src/Ymodules/mod_mklfft_gpu.F rename to src/modules/Ymodules/mod_mklfft_gpu.F diff --git a/src/Ymodules/mod_nl_optics.F b/src/modules/Ymodules/mod_nl_optics.F similarity index 100% rename from src/Ymodules/mod_nl_optics.F rename to src/modules/Ymodules/mod_nl_optics.F diff --git a/src/Ymodules/mod_openmp.F b/src/modules/Ymodules/mod_openmp.F similarity index 100% rename from src/Ymodules/mod_openmp.F rename to src/modules/Ymodules/mod_openmp.F diff --git a/src/Ymodules/mod_parallel.F b/src/modules/Ymodules/mod_parallel.F similarity index 100% rename from src/Ymodules/mod_parallel.F rename to src/modules/Ymodules/mod_parallel.F diff --git a/src/Ymodules/mod_parallel_interface.F b/src/modules/Ymodules/mod_parallel_interface.F similarity index 100% rename from src/Ymodules/mod_parallel_interface.F rename to src/modules/Ymodules/mod_parallel_interface.F diff --git a/src/Ymodules/mod_pars.F b/src/modules/Ymodules/mod_pars.F similarity index 100% rename from src/Ymodules/mod_pars.F rename to src/modules/Ymodules/mod_pars.F diff --git a/src/Ymodules/mod_plasma.F b/src/modules/Ymodules/mod_plasma.F similarity index 100% rename from src/Ymodules/mod_plasma.F rename to src/modules/Ymodules/mod_plasma.F diff --git a/src/Ymodules/mod_pseudo.F b/src/modules/Ymodules/mod_pseudo.F similarity index 100% rename from src/Ymodules/mod_pseudo.F rename to src/modules/Ymodules/mod_pseudo.F diff --git a/src/Ymodules/mod_real_time.F b/src/modules/Ymodules/mod_real_time.F similarity index 100% rename from src/Ymodules/mod_real_time.F rename to src/modules/Ymodules/mod_real_time.F diff --git a/src/Ymodules/mod_stderr.F b/src/modules/Ymodules/mod_stderr.F similarity index 100% rename from src/Ymodules/mod_stderr.F rename to src/modules/Ymodules/mod_stderr.F diff --git a/src/Ymodules/mod_timing.F b/src/modules/Ymodules/mod_timing.F similarity index 100% rename from src/Ymodules/mod_timing.F rename to src/modules/Ymodules/mod_timing.F diff --git a/src/Ymodules/mod_units.F b/src/modules/Ymodules/mod_units.F similarity index 100% rename from src/Ymodules/mod_units.F rename to src/modules/Ymodules/mod_units.F diff --git a/src/Ymodules/mod_vec_operate.F b/src/modules/Ymodules/mod_vec_operate.F similarity index 100% rename from src/Ymodules/mod_vec_operate.F rename to src/modules/Ymodules/mod_vec_operate.F diff --git a/src/Ymodules/mod_wave_func.F b/src/modules/Ymodules/mod_wave_func.F similarity index 100% rename from src/Ymodules/mod_wave_func.F rename to src/modules/Ymodules/mod_wave_func.F diff --git a/src/Ymodules/mod_wrapper.F b/src/modules/Ymodules/mod_wrapper.F similarity index 100% rename from src/Ymodules/mod_wrapper.F rename to src/modules/Ymodules/mod_wrapper.F diff --git a/src/Ymodules/mod_wrapper_omp.F b/src/modules/Ymodules/mod_wrapper_omp.F similarity index 100% rename from src/Ymodules/mod_wrapper_omp.F rename to src/modules/Ymodules/mod_wrapper_omp.F diff --git a/src/Ymodules/mod_xc_functionals.F b/src/modules/Ymodules/mod_xc_functionals.F similarity index 100% rename from src/Ymodules/mod_xc_functionals.F rename to src/modules/Ymodules/mod_xc_functionals.F diff --git a/src/Ymodules/mod_zeros.F b/src/modules/Ymodules/mod_zeros.F similarity index 100% rename from src/Ymodules/mod_zeros.F rename to src/modules/Ymodules/mod_zeros.F From ee1983a80f61275fd77f5958f30202ece4be636b Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 15:19:19 +0100 Subject: [PATCH 076/112] Version 5.2.0, Revision 23856, Hash a0e94ead90 MODIFIED * configure include/version/version.m4 RENAMED * modules/Ymodules/.objects -> modules/.objects modules/Ymodules/DOUBLE_project.dep -> modules/DOUBLE_project.dep modules/Ymodules/ELPH_ITERATIVE_project.dep -> modules/ELPH_ITERATIVE_project.dep modules/Ymodules/ELPH_project.dep -> modules/ELPH_project.dep modules/Ymodules/NL_project.dep -> modules/NL_project.dep modules/Ymodules/QED_project.dep -> modules/QED_project.dep modules/Ymodules/RT_project.dep -> modules/RT_project.dep modules/Ymodules/SC_project.dep -> modules/SC_project.dep modules/Ymodules/SET_defaults.F -> modules/SET_defaults.F modules/Ymodules/SET_logicals.F -> modules/SET_logicals.F modules/Ymodules/YPP_ELPH_project.dep -> modules/YPP_ELPH_project.dep modules/Ymodules/YPP_RT_project.dep -> modules/YPP_RT_project.dep modules/Ymodules/mod_ACFDT.F -> modules/mod_ACFDT.F modules/Ymodules/mod_ALLOC.F -> modules/mod_ALLOC.F modules/Ymodules/mod_BS.F -> modules/mod_BS.F modules/Ymodules/mod_BS_solvers.F -> modules/mod_BS_solvers.F modules/Ymodules/mod_COLL_interfaces.F -> modules/mod_COLL_interfaces.F modules/Ymodules/mod_DICHROISM.F -> modules/mod_DICHROISM.F modules/Ymodules/mod_DIPOLES.F -> modules/mod_DIPOLES.F modules/Ymodules/mod_D_lattice.F -> modules/mod_D_lattice.F modules/Ymodules/mod_ELPH.F -> modules/mod_ELPH.F modules/Ymodules/mod_FFT.F -> modules/mod_FFT.F modules/Ymodules/mod_H_interfaces.F -> modules/mod_H_interfaces.F modules/Ymodules/mod_IO.F -> modules/mod_IO.F modules/Ymodules/mod_IO_interfaces.F -> modules/mod_IO_interfaces.F modules/Ymodules/mod_LIVE_t.F -> modules/mod_LIVE_t.F modules/Ymodules/mod_MAGNONS.F -> modules/mod_MAGNONS.F modules/Ymodules/mod_MPA.F -> modules/mod_MPA.F modules/Ymodules/mod_NL_interfaces.F -> modules/mod_NL_interfaces.F modules/Ymodules/mod_OUTPUT.F -> modules/mod_OUTPUT.F modules/Ymodules/mod_Overlaps.F -> modules/mod_Overlaps.F modules/Ymodules/mod_PHOTOLUM.F -> modules/mod_PHOTOLUM.F modules/Ymodules/mod_POL_FIT.F -> modules/mod_POL_FIT.F modules/Ymodules/mod_QP.F -> modules/mod_QP.F modules/Ymodules/mod_QP_CTL.F -> modules/mod_QP_CTL.F modules/Ymodules/mod_RT_control.F -> modules/mod_RT_control.F modules/Ymodules/mod_RT_iterative.F -> modules/mod_RT_iterative.F modules/Ymodules/mod_RT_lifetimes.F -> modules/mod_RT_lifetimes.F modules/Ymodules/mod_RT_occupations.F -> modules/mod_RT_occupations.F modules/Ymodules/mod_RT_operations.F -> modules/mod_RT_operations.F modules/Ymodules/mod_RT_output.F -> modules/mod_RT_output.F modules/Ymodules/mod_R_lattice.F -> modules/mod_R_lattice.F modules/Ymodules/mod_SC.F -> modules/mod_SC.F modules/Ymodules/mod_SLK.F -> modules/mod_SLK.F modules/Ymodules/mod_TDDFT.F -> modules/mod_TDDFT.F modules/Ymodules/mod_X.F -> modules/mod_X.F modules/Ymodules/mod_atom_proj.F -> modules/mod_atom_proj.F modules/Ymodules/mod_collision_el.F -> modules/mod_collision_el.F modules/Ymodules/mod_collision_ext.F -> modules/mod_collision_ext.F modules/Ymodules/mod_com.F -> modules/mod_com.F modules/Ymodules/mod_com_interfcs.F -> modules/mod_com_interfcs.F modules/Ymodules/mod_cudafor.F -> modules/mod_cudafor.F modules/Ymodules/mod_cufft.F -> modules/mod_cufft.F modules/Ymodules/mod_cusolverdn_y.F -> modules/mod_cusolverdn_y.F modules/Ymodules/mod_cutoff_ws.F -> modules/mod_cutoff_ws.F modules/Ymodules/mod_debug.F -> modules/mod_debug.F modules/Ymodules/mod_descriptors.F -> modules/mod_descriptors.F modules/Ymodules/mod_drivers.F -> modules/mod_drivers.F modules/Ymodules/mod_electric.F -> modules/mod_electric.F modules/Ymodules/mod_electrons.F -> modules/mod_electrons.F modules/Ymodules/mod_fields.F -> modules/mod_fields.F modules/Ymodules/mod_frequency.F -> modules/mod_frequency.F modules/Ymodules/mod_functions.F -> modules/mod_functions.F modules/Ymodules/mod_global_XC.F -> modules/mod_global_XC.F modules/Ymodules/mod_gpu.F -> modules/mod_gpu.F modules/Ymodules/mod_hamiltonian.F -> modules/mod_hamiltonian.F modules/Ymodules/mod_hip.F -> modules/mod_hip.F modules/Ymodules/mod_hipfft.F -> modules/mod_hipfft.F modules/Ymodules/mod_interfaces.F -> modules/mod_interfaces.F modules/Ymodules/mod_interpolate.F -> modules/mod_interpolate.F modules/Ymodules/mod_interpolate_tools.F -> modules/mod_interpolate_tools.F modules/Ymodules/mod_lexical_sort.F -> modules/mod_lexical_sort.F modules/Ymodules/mod_linear_algebra.F -> modules/mod_linear_algebra.F modules/Ymodules/mod_logo.F -> modules/mod_logo.F modules/Ymodules/mod_magnetic.F -> modules/mod_magnetic.F modules/Ymodules/mod_matrix.F -> modules/mod_matrix.F modules/Ymodules/mod_matrix_operate.F -> modules/mod_matrix_operate.F modules/Ymodules/mod_memory.F -> modules/mod_memory.F modules/Ymodules/mod_mklfft_gpu.F -> modules/mod_mklfft_gpu.F modules/Ymodules/mod_nl_optics.F -> modules/mod_nl_optics.F modules/Ymodules/mod_openmp.F -> modules/mod_openmp.F modules/Ymodules/mod_parallel.F -> modules/mod_parallel.F modules/Ymodules/mod_parallel_interface.F -> modules/mod_parallel_interface.F modules/Ymodules/mod_pars.F -> modules/mod_pars.F modules/Ymodules/mod_plasma.F -> modules/mod_plasma.F modules/Ymodules/mod_pseudo.F -> modules/mod_pseudo.F modules/Ymodules/mod_real_time.F -> modules/mod_real_time.F modules/Ymodules/mod_stderr.F -> modules/mod_stderr.F modules/Ymodules/mod_timing.F -> modules/mod_timing.F modules/Ymodules/mod_units.F -> modules/mod_units.F modules/Ymodules/mod_vec_operate.F -> modules/mod_vec_operate.F modules/Ymodules/mod_wave_func.F -> modules/mod_wave_func.F modules/Ymodules/mod_wrapper.F -> modules/mod_wrapper.F modules/Ymodules/mod_wrapper_omp.F -> modules/mod_wrapper_omp.F modules/Ymodules/mod_xc_functionals.F -> modules/mod_xc_functionals.F modules/Ymodules/mod_zeros.F -> modules/mod_zeros.F Bugs: - Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++---------- include/version/version.m4 | 6 ++--- src/modules/{Ymodules => }/.objects | 0 src/modules/{Ymodules => }/DOUBLE_project.dep | 0 .../{Ymodules => }/ELPH_ITERATIVE_project.dep | 0 src/modules/{Ymodules => }/ELPH_project.dep | 0 src/modules/{Ymodules => }/NL_project.dep | 0 src/modules/{Ymodules => }/QED_project.dep | 0 src/modules/{Ymodules => }/RT_project.dep | 0 src/modules/{Ymodules => }/SC_project.dep | 0 src/modules/{Ymodules => }/SET_defaults.F | 0 src/modules/{Ymodules => }/SET_logicals.F | 0 .../{Ymodules => }/YPP_ELPH_project.dep | 0 src/modules/{Ymodules => }/YPP_RT_project.dep | 0 src/modules/{Ymodules => }/mod_ACFDT.F | 0 src/modules/{Ymodules => }/mod_ALLOC.F | 0 src/modules/{Ymodules => }/mod_BS.F | 0 src/modules/{Ymodules => }/mod_BS_solvers.F | 0 .../{Ymodules => }/mod_COLL_interfaces.F | 0 src/modules/{Ymodules => }/mod_DICHROISM.F | 0 src/modules/{Ymodules => }/mod_DIPOLES.F | 0 src/modules/{Ymodules => }/mod_D_lattice.F | 0 src/modules/{Ymodules => }/mod_ELPH.F | 0 src/modules/{Ymodules => }/mod_FFT.F | 0 src/modules/{Ymodules => }/mod_H_interfaces.F | 0 src/modules/{Ymodules => }/mod_IO.F | 0 .../{Ymodules => }/mod_IO_interfaces.F | 0 src/modules/{Ymodules => }/mod_LIVE_t.F | 0 src/modules/{Ymodules => }/mod_MAGNONS.F | 0 src/modules/{Ymodules => }/mod_MPA.F | 0 .../{Ymodules => }/mod_NL_interfaces.F | 0 src/modules/{Ymodules => }/mod_OUTPUT.F | 0 src/modules/{Ymodules => }/mod_Overlaps.F | 0 src/modules/{Ymodules => }/mod_PHOTOLUM.F | 0 src/modules/{Ymodules => }/mod_POL_FIT.F | 0 src/modules/{Ymodules => }/mod_QP.F | 0 src/modules/{Ymodules => }/mod_QP_CTL.F | 0 src/modules/{Ymodules => }/mod_RT_control.F | 0 src/modules/{Ymodules => }/mod_RT_iterative.F | 0 src/modules/{Ymodules => }/mod_RT_lifetimes.F | 0 .../{Ymodules => }/mod_RT_occupations.F | 0 .../{Ymodules => }/mod_RT_operations.F | 0 src/modules/{Ymodules => }/mod_RT_output.F | 0 src/modules/{Ymodules => }/mod_R_lattice.F | 0 src/modules/{Ymodules => }/mod_SC.F | 0 src/modules/{Ymodules => }/mod_SLK.F | 0 src/modules/{Ymodules => }/mod_TDDFT.F | 0 src/modules/{Ymodules => }/mod_X.F | 0 src/modules/{Ymodules => }/mod_atom_proj.F | 0 src/modules/{Ymodules => }/mod_collision_el.F | 0 .../{Ymodules => }/mod_collision_ext.F | 0 src/modules/{Ymodules => }/mod_com.F | 0 src/modules/{Ymodules => }/mod_com_interfcs.F | 0 src/modules/{Ymodules => }/mod_cudafor.F | 0 src/modules/{Ymodules => }/mod_cufft.F | 0 src/modules/{Ymodules => }/mod_cusolverdn_y.F | 0 src/modules/{Ymodules => }/mod_cutoff_ws.F | 0 src/modules/{Ymodules => }/mod_debug.F | 0 src/modules/{Ymodules => }/mod_descriptors.F | 0 src/modules/{Ymodules => }/mod_drivers.F | 0 src/modules/{Ymodules => }/mod_electric.F | 0 src/modules/{Ymodules => }/mod_electrons.F | 0 src/modules/{Ymodules => }/mod_fields.F | 0 src/modules/{Ymodules => }/mod_frequency.F | 0 src/modules/{Ymodules => }/mod_functions.F | 0 src/modules/{Ymodules => }/mod_global_XC.F | 0 src/modules/{Ymodules => }/mod_gpu.F | 0 src/modules/{Ymodules => }/mod_hamiltonian.F | 0 src/modules/{Ymodules => }/mod_hip.F | 0 src/modules/{Ymodules => }/mod_hipfft.F | 0 src/modules/{Ymodules => }/mod_interfaces.F | 0 src/modules/{Ymodules => }/mod_interpolate.F | 0 .../{Ymodules => }/mod_interpolate_tools.F | 0 src/modules/{Ymodules => }/mod_lexical_sort.F | 0 .../{Ymodules => }/mod_linear_algebra.F | 0 src/modules/{Ymodules => }/mod_logo.F | 0 src/modules/{Ymodules => }/mod_magnetic.F | 0 src/modules/{Ymodules => }/mod_matrix.F | 0 .../{Ymodules => }/mod_matrix_operate.F | 0 src/modules/{Ymodules => }/mod_memory.F | 0 src/modules/{Ymodules => }/mod_mklfft_gpu.F | 0 src/modules/{Ymodules => }/mod_nl_optics.F | 0 src/modules/{Ymodules => }/mod_openmp.F | 0 src/modules/{Ymodules => }/mod_parallel.F | 0 .../{Ymodules => }/mod_parallel_interface.F | 0 src/modules/{Ymodules => }/mod_pars.F | 0 src/modules/{Ymodules => }/mod_plasma.F | 0 src/modules/{Ymodules => }/mod_pseudo.F | 0 src/modules/{Ymodules => }/mod_real_time.F | 0 src/modules/{Ymodules => }/mod_stderr.F | 0 src/modules/{Ymodules => }/mod_timing.F | 0 src/modules/{Ymodules => }/mod_units.F | 0 src/modules/{Ymodules => }/mod_vec_operate.F | 0 src/modules/{Ymodules => }/mod_wave_func.F | 0 src/modules/{Ymodules => }/mod_wrapper.F | 0 src/modules/{Ymodules => }/mod_wrapper_omp.F | 0 .../{Ymodules => }/mod_xc_functionals.F | 0 src/modules/{Ymodules => }/mod_zeros.F | 0 98 files changed, 14 insertions(+), 14 deletions(-) rename src/modules/{Ymodules => }/.objects (100%) rename src/modules/{Ymodules => }/DOUBLE_project.dep (100%) rename src/modules/{Ymodules => }/ELPH_ITERATIVE_project.dep (100%) rename src/modules/{Ymodules => }/ELPH_project.dep (100%) rename src/modules/{Ymodules => }/NL_project.dep (100%) rename src/modules/{Ymodules => }/QED_project.dep (100%) rename src/modules/{Ymodules => }/RT_project.dep (100%) rename src/modules/{Ymodules => }/SC_project.dep (100%) rename src/modules/{Ymodules => }/SET_defaults.F (100%) rename src/modules/{Ymodules => }/SET_logicals.F (100%) rename src/modules/{Ymodules => }/YPP_ELPH_project.dep (100%) rename src/modules/{Ymodules => }/YPP_RT_project.dep (100%) rename src/modules/{Ymodules => }/mod_ACFDT.F (100%) rename src/modules/{Ymodules => }/mod_ALLOC.F (100%) rename src/modules/{Ymodules => }/mod_BS.F (100%) rename src/modules/{Ymodules => }/mod_BS_solvers.F (100%) rename src/modules/{Ymodules => }/mod_COLL_interfaces.F (100%) rename src/modules/{Ymodules => }/mod_DICHROISM.F (100%) rename src/modules/{Ymodules => }/mod_DIPOLES.F (100%) rename src/modules/{Ymodules => }/mod_D_lattice.F (100%) rename src/modules/{Ymodules => }/mod_ELPH.F (100%) rename src/modules/{Ymodules => }/mod_FFT.F (100%) rename src/modules/{Ymodules => }/mod_H_interfaces.F (100%) rename src/modules/{Ymodules => }/mod_IO.F (100%) rename src/modules/{Ymodules => }/mod_IO_interfaces.F (100%) rename src/modules/{Ymodules => }/mod_LIVE_t.F (100%) rename src/modules/{Ymodules => }/mod_MAGNONS.F (100%) rename src/modules/{Ymodules => }/mod_MPA.F (100%) rename src/modules/{Ymodules => }/mod_NL_interfaces.F (100%) rename src/modules/{Ymodules => }/mod_OUTPUT.F (100%) rename src/modules/{Ymodules => }/mod_Overlaps.F (100%) rename src/modules/{Ymodules => }/mod_PHOTOLUM.F (100%) rename src/modules/{Ymodules => }/mod_POL_FIT.F (100%) rename src/modules/{Ymodules => }/mod_QP.F (100%) rename src/modules/{Ymodules => }/mod_QP_CTL.F (100%) rename src/modules/{Ymodules => }/mod_RT_control.F (100%) rename src/modules/{Ymodules => }/mod_RT_iterative.F (100%) rename src/modules/{Ymodules => }/mod_RT_lifetimes.F (100%) rename src/modules/{Ymodules => }/mod_RT_occupations.F (100%) rename src/modules/{Ymodules => }/mod_RT_operations.F (100%) rename src/modules/{Ymodules => }/mod_RT_output.F (100%) rename src/modules/{Ymodules => }/mod_R_lattice.F (100%) rename src/modules/{Ymodules => }/mod_SC.F (100%) rename src/modules/{Ymodules => }/mod_SLK.F (100%) rename src/modules/{Ymodules => }/mod_TDDFT.F (100%) rename src/modules/{Ymodules => }/mod_X.F (100%) rename src/modules/{Ymodules => }/mod_atom_proj.F (100%) rename src/modules/{Ymodules => }/mod_collision_el.F (100%) rename src/modules/{Ymodules => }/mod_collision_ext.F (100%) rename src/modules/{Ymodules => }/mod_com.F (100%) rename src/modules/{Ymodules => }/mod_com_interfcs.F (100%) rename src/modules/{Ymodules => }/mod_cudafor.F (100%) rename src/modules/{Ymodules => }/mod_cufft.F (100%) rename src/modules/{Ymodules => }/mod_cusolverdn_y.F (100%) rename src/modules/{Ymodules => }/mod_cutoff_ws.F (100%) rename src/modules/{Ymodules => }/mod_debug.F (100%) rename src/modules/{Ymodules => }/mod_descriptors.F (100%) rename src/modules/{Ymodules => }/mod_drivers.F (100%) rename src/modules/{Ymodules => }/mod_electric.F (100%) rename src/modules/{Ymodules => }/mod_electrons.F (100%) rename src/modules/{Ymodules => }/mod_fields.F (100%) rename src/modules/{Ymodules => }/mod_frequency.F (100%) rename src/modules/{Ymodules => }/mod_functions.F (100%) rename src/modules/{Ymodules => }/mod_global_XC.F (100%) rename src/modules/{Ymodules => }/mod_gpu.F (100%) rename src/modules/{Ymodules => }/mod_hamiltonian.F (100%) rename src/modules/{Ymodules => }/mod_hip.F (100%) rename src/modules/{Ymodules => }/mod_hipfft.F (100%) rename src/modules/{Ymodules => }/mod_interfaces.F (100%) rename src/modules/{Ymodules => }/mod_interpolate.F (100%) rename src/modules/{Ymodules => }/mod_interpolate_tools.F (100%) rename src/modules/{Ymodules => }/mod_lexical_sort.F (100%) rename src/modules/{Ymodules => }/mod_linear_algebra.F (100%) rename src/modules/{Ymodules => }/mod_logo.F (100%) rename src/modules/{Ymodules => }/mod_magnetic.F (100%) rename src/modules/{Ymodules => }/mod_matrix.F (100%) rename src/modules/{Ymodules => }/mod_matrix_operate.F (100%) rename src/modules/{Ymodules => }/mod_memory.F (100%) rename src/modules/{Ymodules => }/mod_mklfft_gpu.F (100%) rename src/modules/{Ymodules => }/mod_nl_optics.F (100%) rename src/modules/{Ymodules => }/mod_openmp.F (100%) rename src/modules/{Ymodules => }/mod_parallel.F (100%) rename src/modules/{Ymodules => }/mod_parallel_interface.F (100%) rename src/modules/{Ymodules => }/mod_pars.F (100%) rename src/modules/{Ymodules => }/mod_plasma.F (100%) rename src/modules/{Ymodules => }/mod_pseudo.F (100%) rename src/modules/{Ymodules => }/mod_real_time.F (100%) rename src/modules/{Ymodules => }/mod_stderr.F (100%) rename src/modules/{Ymodules => }/mod_timing.F (100%) rename src/modules/{Ymodules => }/mod_units.F (100%) rename src/modules/{Ymodules => }/mod_vec_operate.F (100%) rename src/modules/{Ymodules => }/mod_wave_func.F (100%) rename src/modules/{Ymodules => }/mod_wrapper.F (100%) rename src/modules/{Ymodules => }/mod_wrapper_omp.F (100%) rename src/modules/{Ymodules => }/mod_xc_functionals.F (100%) rename src/modules/{Ymodules => }/mod_zeros.F (100%) diff --git a/configure b/configure index 033d10a6fe..dbbad0fc7a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23855 h.e76c856633. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23856 h.a0e94ead90. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23855 h.e76c856633' -PACKAGE_STRING='Yambo 5.2.0 r.23855 h.e76c856633' +PACKAGE_VERSION='5.2.0 r.23856 h.a0e94ead90' +PACKAGE_STRING='Yambo 5.2.0 r.23856 h.a0e94ead90' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23855 h.e76c856633 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23856 h.a0e94ead90 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23855 h.e76c856633:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23856 h.a0e94ead90:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23855 h.e76c856633 +Yambo configure 5.2.0 r.23856 h.a0e94ead90 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23855 h.e76c856633, which was +It was created by Yambo $as_me 5.2.0 r.23856 h.a0e94ead90, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23855" -SHASH="e76c856633" +SREVISION="23856" +SHASH="a0e94ead90" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23855 h.e76c856633, which was +This file was extended by Yambo $as_me 5.2.0 r.23856 h.a0e94ead90, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23855 h.e76c856633 +Yambo config.status 5.2.0 r.23856 h.a0e94ead90 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 281c61562e..e87848c92b 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23854 h.27aee7365e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23855 h.e76c856633, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23854" -SHASH="27aee7365e" +SREVISION="23855" +SHASH="e76c856633" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/modules/Ymodules/.objects b/src/modules/.objects similarity index 100% rename from src/modules/Ymodules/.objects rename to src/modules/.objects diff --git a/src/modules/Ymodules/DOUBLE_project.dep b/src/modules/DOUBLE_project.dep similarity index 100% rename from src/modules/Ymodules/DOUBLE_project.dep rename to src/modules/DOUBLE_project.dep diff --git a/src/modules/Ymodules/ELPH_ITERATIVE_project.dep b/src/modules/ELPH_ITERATIVE_project.dep similarity index 100% rename from src/modules/Ymodules/ELPH_ITERATIVE_project.dep rename to src/modules/ELPH_ITERATIVE_project.dep diff --git a/src/modules/Ymodules/ELPH_project.dep b/src/modules/ELPH_project.dep similarity index 100% rename from src/modules/Ymodules/ELPH_project.dep rename to src/modules/ELPH_project.dep diff --git a/src/modules/Ymodules/NL_project.dep b/src/modules/NL_project.dep similarity index 100% rename from src/modules/Ymodules/NL_project.dep rename to src/modules/NL_project.dep diff --git a/src/modules/Ymodules/QED_project.dep b/src/modules/QED_project.dep similarity index 100% rename from src/modules/Ymodules/QED_project.dep rename to src/modules/QED_project.dep diff --git a/src/modules/Ymodules/RT_project.dep b/src/modules/RT_project.dep similarity index 100% rename from src/modules/Ymodules/RT_project.dep rename to src/modules/RT_project.dep diff --git a/src/modules/Ymodules/SC_project.dep b/src/modules/SC_project.dep similarity index 100% rename from src/modules/Ymodules/SC_project.dep rename to src/modules/SC_project.dep diff --git a/src/modules/Ymodules/SET_defaults.F b/src/modules/SET_defaults.F similarity index 100% rename from src/modules/Ymodules/SET_defaults.F rename to src/modules/SET_defaults.F diff --git a/src/modules/Ymodules/SET_logicals.F b/src/modules/SET_logicals.F similarity index 100% rename from src/modules/Ymodules/SET_logicals.F rename to src/modules/SET_logicals.F diff --git a/src/modules/Ymodules/YPP_ELPH_project.dep b/src/modules/YPP_ELPH_project.dep similarity index 100% rename from src/modules/Ymodules/YPP_ELPH_project.dep rename to src/modules/YPP_ELPH_project.dep diff --git a/src/modules/Ymodules/YPP_RT_project.dep b/src/modules/YPP_RT_project.dep similarity index 100% rename from src/modules/Ymodules/YPP_RT_project.dep rename to src/modules/YPP_RT_project.dep diff --git a/src/modules/Ymodules/mod_ACFDT.F b/src/modules/mod_ACFDT.F similarity index 100% rename from src/modules/Ymodules/mod_ACFDT.F rename to src/modules/mod_ACFDT.F diff --git a/src/modules/Ymodules/mod_ALLOC.F b/src/modules/mod_ALLOC.F similarity index 100% rename from src/modules/Ymodules/mod_ALLOC.F rename to src/modules/mod_ALLOC.F diff --git a/src/modules/Ymodules/mod_BS.F b/src/modules/mod_BS.F similarity index 100% rename from src/modules/Ymodules/mod_BS.F rename to src/modules/mod_BS.F diff --git a/src/modules/Ymodules/mod_BS_solvers.F b/src/modules/mod_BS_solvers.F similarity index 100% rename from src/modules/Ymodules/mod_BS_solvers.F rename to src/modules/mod_BS_solvers.F diff --git a/src/modules/Ymodules/mod_COLL_interfaces.F b/src/modules/mod_COLL_interfaces.F similarity index 100% rename from src/modules/Ymodules/mod_COLL_interfaces.F rename to src/modules/mod_COLL_interfaces.F diff --git a/src/modules/Ymodules/mod_DICHROISM.F b/src/modules/mod_DICHROISM.F similarity index 100% rename from src/modules/Ymodules/mod_DICHROISM.F rename to src/modules/mod_DICHROISM.F diff --git a/src/modules/Ymodules/mod_DIPOLES.F b/src/modules/mod_DIPOLES.F similarity index 100% rename from src/modules/Ymodules/mod_DIPOLES.F rename to src/modules/mod_DIPOLES.F diff --git a/src/modules/Ymodules/mod_D_lattice.F b/src/modules/mod_D_lattice.F similarity index 100% rename from src/modules/Ymodules/mod_D_lattice.F rename to src/modules/mod_D_lattice.F diff --git a/src/modules/Ymodules/mod_ELPH.F b/src/modules/mod_ELPH.F similarity index 100% rename from src/modules/Ymodules/mod_ELPH.F rename to src/modules/mod_ELPH.F diff --git a/src/modules/Ymodules/mod_FFT.F b/src/modules/mod_FFT.F similarity index 100% rename from src/modules/Ymodules/mod_FFT.F rename to src/modules/mod_FFT.F diff --git a/src/modules/Ymodules/mod_H_interfaces.F b/src/modules/mod_H_interfaces.F similarity index 100% rename from src/modules/Ymodules/mod_H_interfaces.F rename to src/modules/mod_H_interfaces.F diff --git a/src/modules/Ymodules/mod_IO.F b/src/modules/mod_IO.F similarity index 100% rename from src/modules/Ymodules/mod_IO.F rename to src/modules/mod_IO.F diff --git a/src/modules/Ymodules/mod_IO_interfaces.F b/src/modules/mod_IO_interfaces.F similarity index 100% rename from src/modules/Ymodules/mod_IO_interfaces.F rename to src/modules/mod_IO_interfaces.F diff --git a/src/modules/Ymodules/mod_LIVE_t.F b/src/modules/mod_LIVE_t.F similarity index 100% rename from src/modules/Ymodules/mod_LIVE_t.F rename to src/modules/mod_LIVE_t.F diff --git a/src/modules/Ymodules/mod_MAGNONS.F b/src/modules/mod_MAGNONS.F similarity index 100% rename from src/modules/Ymodules/mod_MAGNONS.F rename to src/modules/mod_MAGNONS.F diff --git a/src/modules/Ymodules/mod_MPA.F b/src/modules/mod_MPA.F similarity index 100% rename from src/modules/Ymodules/mod_MPA.F rename to src/modules/mod_MPA.F diff --git a/src/modules/Ymodules/mod_NL_interfaces.F b/src/modules/mod_NL_interfaces.F similarity index 100% rename from src/modules/Ymodules/mod_NL_interfaces.F rename to src/modules/mod_NL_interfaces.F diff --git a/src/modules/Ymodules/mod_OUTPUT.F b/src/modules/mod_OUTPUT.F similarity index 100% rename from src/modules/Ymodules/mod_OUTPUT.F rename to src/modules/mod_OUTPUT.F diff --git a/src/modules/Ymodules/mod_Overlaps.F b/src/modules/mod_Overlaps.F similarity index 100% rename from src/modules/Ymodules/mod_Overlaps.F rename to src/modules/mod_Overlaps.F diff --git a/src/modules/Ymodules/mod_PHOTOLUM.F b/src/modules/mod_PHOTOLUM.F similarity index 100% rename from src/modules/Ymodules/mod_PHOTOLUM.F rename to src/modules/mod_PHOTOLUM.F diff --git a/src/modules/Ymodules/mod_POL_FIT.F b/src/modules/mod_POL_FIT.F similarity index 100% rename from src/modules/Ymodules/mod_POL_FIT.F rename to src/modules/mod_POL_FIT.F diff --git a/src/modules/Ymodules/mod_QP.F b/src/modules/mod_QP.F similarity index 100% rename from src/modules/Ymodules/mod_QP.F rename to src/modules/mod_QP.F diff --git a/src/modules/Ymodules/mod_QP_CTL.F b/src/modules/mod_QP_CTL.F similarity index 100% rename from src/modules/Ymodules/mod_QP_CTL.F rename to src/modules/mod_QP_CTL.F diff --git a/src/modules/Ymodules/mod_RT_control.F b/src/modules/mod_RT_control.F similarity index 100% rename from src/modules/Ymodules/mod_RT_control.F rename to src/modules/mod_RT_control.F diff --git a/src/modules/Ymodules/mod_RT_iterative.F b/src/modules/mod_RT_iterative.F similarity index 100% rename from src/modules/Ymodules/mod_RT_iterative.F rename to src/modules/mod_RT_iterative.F diff --git a/src/modules/Ymodules/mod_RT_lifetimes.F b/src/modules/mod_RT_lifetimes.F similarity index 100% rename from src/modules/Ymodules/mod_RT_lifetimes.F rename to src/modules/mod_RT_lifetimes.F diff --git a/src/modules/Ymodules/mod_RT_occupations.F b/src/modules/mod_RT_occupations.F similarity index 100% rename from src/modules/Ymodules/mod_RT_occupations.F rename to src/modules/mod_RT_occupations.F diff --git a/src/modules/Ymodules/mod_RT_operations.F b/src/modules/mod_RT_operations.F similarity index 100% rename from src/modules/Ymodules/mod_RT_operations.F rename to src/modules/mod_RT_operations.F diff --git a/src/modules/Ymodules/mod_RT_output.F b/src/modules/mod_RT_output.F similarity index 100% rename from src/modules/Ymodules/mod_RT_output.F rename to src/modules/mod_RT_output.F diff --git a/src/modules/Ymodules/mod_R_lattice.F b/src/modules/mod_R_lattice.F similarity index 100% rename from src/modules/Ymodules/mod_R_lattice.F rename to src/modules/mod_R_lattice.F diff --git a/src/modules/Ymodules/mod_SC.F b/src/modules/mod_SC.F similarity index 100% rename from src/modules/Ymodules/mod_SC.F rename to src/modules/mod_SC.F diff --git a/src/modules/Ymodules/mod_SLK.F b/src/modules/mod_SLK.F similarity index 100% rename from src/modules/Ymodules/mod_SLK.F rename to src/modules/mod_SLK.F diff --git a/src/modules/Ymodules/mod_TDDFT.F b/src/modules/mod_TDDFT.F similarity index 100% rename from src/modules/Ymodules/mod_TDDFT.F rename to src/modules/mod_TDDFT.F diff --git a/src/modules/Ymodules/mod_X.F b/src/modules/mod_X.F similarity index 100% rename from src/modules/Ymodules/mod_X.F rename to src/modules/mod_X.F diff --git a/src/modules/Ymodules/mod_atom_proj.F b/src/modules/mod_atom_proj.F similarity index 100% rename from src/modules/Ymodules/mod_atom_proj.F rename to src/modules/mod_atom_proj.F diff --git a/src/modules/Ymodules/mod_collision_el.F b/src/modules/mod_collision_el.F similarity index 100% rename from src/modules/Ymodules/mod_collision_el.F rename to src/modules/mod_collision_el.F diff --git a/src/modules/Ymodules/mod_collision_ext.F b/src/modules/mod_collision_ext.F similarity index 100% rename from src/modules/Ymodules/mod_collision_ext.F rename to src/modules/mod_collision_ext.F diff --git a/src/modules/Ymodules/mod_com.F b/src/modules/mod_com.F similarity index 100% rename from src/modules/Ymodules/mod_com.F rename to src/modules/mod_com.F diff --git a/src/modules/Ymodules/mod_com_interfcs.F b/src/modules/mod_com_interfcs.F similarity index 100% rename from src/modules/Ymodules/mod_com_interfcs.F rename to src/modules/mod_com_interfcs.F diff --git a/src/modules/Ymodules/mod_cudafor.F b/src/modules/mod_cudafor.F similarity index 100% rename from src/modules/Ymodules/mod_cudafor.F rename to src/modules/mod_cudafor.F diff --git a/src/modules/Ymodules/mod_cufft.F b/src/modules/mod_cufft.F similarity index 100% rename from src/modules/Ymodules/mod_cufft.F rename to src/modules/mod_cufft.F diff --git a/src/modules/Ymodules/mod_cusolverdn_y.F b/src/modules/mod_cusolverdn_y.F similarity index 100% rename from src/modules/Ymodules/mod_cusolverdn_y.F rename to src/modules/mod_cusolverdn_y.F diff --git a/src/modules/Ymodules/mod_cutoff_ws.F b/src/modules/mod_cutoff_ws.F similarity index 100% rename from src/modules/Ymodules/mod_cutoff_ws.F rename to src/modules/mod_cutoff_ws.F diff --git a/src/modules/Ymodules/mod_debug.F b/src/modules/mod_debug.F similarity index 100% rename from src/modules/Ymodules/mod_debug.F rename to src/modules/mod_debug.F diff --git a/src/modules/Ymodules/mod_descriptors.F b/src/modules/mod_descriptors.F similarity index 100% rename from src/modules/Ymodules/mod_descriptors.F rename to src/modules/mod_descriptors.F diff --git a/src/modules/Ymodules/mod_drivers.F b/src/modules/mod_drivers.F similarity index 100% rename from src/modules/Ymodules/mod_drivers.F rename to src/modules/mod_drivers.F diff --git a/src/modules/Ymodules/mod_electric.F b/src/modules/mod_electric.F similarity index 100% rename from src/modules/Ymodules/mod_electric.F rename to src/modules/mod_electric.F diff --git a/src/modules/Ymodules/mod_electrons.F b/src/modules/mod_electrons.F similarity index 100% rename from src/modules/Ymodules/mod_electrons.F rename to src/modules/mod_electrons.F diff --git a/src/modules/Ymodules/mod_fields.F b/src/modules/mod_fields.F similarity index 100% rename from src/modules/Ymodules/mod_fields.F rename to src/modules/mod_fields.F diff --git a/src/modules/Ymodules/mod_frequency.F b/src/modules/mod_frequency.F similarity index 100% rename from src/modules/Ymodules/mod_frequency.F rename to src/modules/mod_frequency.F diff --git a/src/modules/Ymodules/mod_functions.F b/src/modules/mod_functions.F similarity index 100% rename from src/modules/Ymodules/mod_functions.F rename to src/modules/mod_functions.F diff --git a/src/modules/Ymodules/mod_global_XC.F b/src/modules/mod_global_XC.F similarity index 100% rename from src/modules/Ymodules/mod_global_XC.F rename to src/modules/mod_global_XC.F diff --git a/src/modules/Ymodules/mod_gpu.F b/src/modules/mod_gpu.F similarity index 100% rename from src/modules/Ymodules/mod_gpu.F rename to src/modules/mod_gpu.F diff --git a/src/modules/Ymodules/mod_hamiltonian.F b/src/modules/mod_hamiltonian.F similarity index 100% rename from src/modules/Ymodules/mod_hamiltonian.F rename to src/modules/mod_hamiltonian.F diff --git a/src/modules/Ymodules/mod_hip.F b/src/modules/mod_hip.F similarity index 100% rename from src/modules/Ymodules/mod_hip.F rename to src/modules/mod_hip.F diff --git a/src/modules/Ymodules/mod_hipfft.F b/src/modules/mod_hipfft.F similarity index 100% rename from src/modules/Ymodules/mod_hipfft.F rename to src/modules/mod_hipfft.F diff --git a/src/modules/Ymodules/mod_interfaces.F b/src/modules/mod_interfaces.F similarity index 100% rename from src/modules/Ymodules/mod_interfaces.F rename to src/modules/mod_interfaces.F diff --git a/src/modules/Ymodules/mod_interpolate.F b/src/modules/mod_interpolate.F similarity index 100% rename from src/modules/Ymodules/mod_interpolate.F rename to src/modules/mod_interpolate.F diff --git a/src/modules/Ymodules/mod_interpolate_tools.F b/src/modules/mod_interpolate_tools.F similarity index 100% rename from src/modules/Ymodules/mod_interpolate_tools.F rename to src/modules/mod_interpolate_tools.F diff --git a/src/modules/Ymodules/mod_lexical_sort.F b/src/modules/mod_lexical_sort.F similarity index 100% rename from src/modules/Ymodules/mod_lexical_sort.F rename to src/modules/mod_lexical_sort.F diff --git a/src/modules/Ymodules/mod_linear_algebra.F b/src/modules/mod_linear_algebra.F similarity index 100% rename from src/modules/Ymodules/mod_linear_algebra.F rename to src/modules/mod_linear_algebra.F diff --git a/src/modules/Ymodules/mod_logo.F b/src/modules/mod_logo.F similarity index 100% rename from src/modules/Ymodules/mod_logo.F rename to src/modules/mod_logo.F diff --git a/src/modules/Ymodules/mod_magnetic.F b/src/modules/mod_magnetic.F similarity index 100% rename from src/modules/Ymodules/mod_magnetic.F rename to src/modules/mod_magnetic.F diff --git a/src/modules/Ymodules/mod_matrix.F b/src/modules/mod_matrix.F similarity index 100% rename from src/modules/Ymodules/mod_matrix.F rename to src/modules/mod_matrix.F diff --git a/src/modules/Ymodules/mod_matrix_operate.F b/src/modules/mod_matrix_operate.F similarity index 100% rename from src/modules/Ymodules/mod_matrix_operate.F rename to src/modules/mod_matrix_operate.F diff --git a/src/modules/Ymodules/mod_memory.F b/src/modules/mod_memory.F similarity index 100% rename from src/modules/Ymodules/mod_memory.F rename to src/modules/mod_memory.F diff --git a/src/modules/Ymodules/mod_mklfft_gpu.F b/src/modules/mod_mklfft_gpu.F similarity index 100% rename from src/modules/Ymodules/mod_mklfft_gpu.F rename to src/modules/mod_mklfft_gpu.F diff --git a/src/modules/Ymodules/mod_nl_optics.F b/src/modules/mod_nl_optics.F similarity index 100% rename from src/modules/Ymodules/mod_nl_optics.F rename to src/modules/mod_nl_optics.F diff --git a/src/modules/Ymodules/mod_openmp.F b/src/modules/mod_openmp.F similarity index 100% rename from src/modules/Ymodules/mod_openmp.F rename to src/modules/mod_openmp.F diff --git a/src/modules/Ymodules/mod_parallel.F b/src/modules/mod_parallel.F similarity index 100% rename from src/modules/Ymodules/mod_parallel.F rename to src/modules/mod_parallel.F diff --git a/src/modules/Ymodules/mod_parallel_interface.F b/src/modules/mod_parallel_interface.F similarity index 100% rename from src/modules/Ymodules/mod_parallel_interface.F rename to src/modules/mod_parallel_interface.F diff --git a/src/modules/Ymodules/mod_pars.F b/src/modules/mod_pars.F similarity index 100% rename from src/modules/Ymodules/mod_pars.F rename to src/modules/mod_pars.F diff --git a/src/modules/Ymodules/mod_plasma.F b/src/modules/mod_plasma.F similarity index 100% rename from src/modules/Ymodules/mod_plasma.F rename to src/modules/mod_plasma.F diff --git a/src/modules/Ymodules/mod_pseudo.F b/src/modules/mod_pseudo.F similarity index 100% rename from src/modules/Ymodules/mod_pseudo.F rename to src/modules/mod_pseudo.F diff --git a/src/modules/Ymodules/mod_real_time.F b/src/modules/mod_real_time.F similarity index 100% rename from src/modules/Ymodules/mod_real_time.F rename to src/modules/mod_real_time.F diff --git a/src/modules/Ymodules/mod_stderr.F b/src/modules/mod_stderr.F similarity index 100% rename from src/modules/Ymodules/mod_stderr.F rename to src/modules/mod_stderr.F diff --git a/src/modules/Ymodules/mod_timing.F b/src/modules/mod_timing.F similarity index 100% rename from src/modules/Ymodules/mod_timing.F rename to src/modules/mod_timing.F diff --git a/src/modules/Ymodules/mod_units.F b/src/modules/mod_units.F similarity index 100% rename from src/modules/Ymodules/mod_units.F rename to src/modules/mod_units.F diff --git a/src/modules/Ymodules/mod_vec_operate.F b/src/modules/mod_vec_operate.F similarity index 100% rename from src/modules/Ymodules/mod_vec_operate.F rename to src/modules/mod_vec_operate.F diff --git a/src/modules/Ymodules/mod_wave_func.F b/src/modules/mod_wave_func.F similarity index 100% rename from src/modules/Ymodules/mod_wave_func.F rename to src/modules/mod_wave_func.F diff --git a/src/modules/Ymodules/mod_wrapper.F b/src/modules/mod_wrapper.F similarity index 100% rename from src/modules/Ymodules/mod_wrapper.F rename to src/modules/mod_wrapper.F diff --git a/src/modules/Ymodules/mod_wrapper_omp.F b/src/modules/mod_wrapper_omp.F similarity index 100% rename from src/modules/Ymodules/mod_wrapper_omp.F rename to src/modules/mod_wrapper_omp.F diff --git a/src/modules/Ymodules/mod_xc_functionals.F b/src/modules/mod_xc_functionals.F similarity index 100% rename from src/modules/Ymodules/mod_xc_functionals.F rename to src/modules/mod_xc_functionals.F diff --git a/src/modules/Ymodules/mod_zeros.F b/src/modules/mod_zeros.F similarity index 100% rename from src/modules/Ymodules/mod_zeros.F rename to src/modules/mod_zeros.F From f7562267d1076377736719f8f10da92ceb2264f6 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 15:30:51 +0100 Subject: [PATCH 077/112] Version 5.2.0, Revision 23857, Hash ee1983a80f MODIFIED * configure include/headers/common/y_memory.h include/version/version.m4 allocations/DIPOLE_ALLOC_elemental.F io/io_X.F Bugs: -Many fixes for the compilation Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 ++++----- include/headers/common/y_memory.h | 63 +++++++++++++++++++++++- include/version/version.m4 | 6 +-- src/allocations/DIPOLE_ALLOC_elemental.F | 2 +- src/io/io_X.F | 2 +- 5 files changed, 78 insertions(+), 17 deletions(-) diff --git a/configure b/configure index dbbad0fc7a..c080aebd4b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23856 h.a0e94ead90. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23857 h.ee1983a80f. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23856 h.a0e94ead90' -PACKAGE_STRING='Yambo 5.2.0 r.23856 h.a0e94ead90' +PACKAGE_VERSION='5.2.0 r.23857 h.ee1983a80f' +PACKAGE_STRING='Yambo 5.2.0 r.23857 h.ee1983a80f' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23856 h.a0e94ead90 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23857 h.ee1983a80f to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23856 h.a0e94ead90:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23857 h.ee1983a80f:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23856 h.a0e94ead90 +Yambo configure 5.2.0 r.23857 h.ee1983a80f generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23856 h.a0e94ead90, which was +It was created by Yambo $as_me 5.2.0 r.23857 h.ee1983a80f, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23856" -SHASH="a0e94ead90" +SREVISION="23857" +SHASH="ee1983a80f" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23856 h.a0e94ead90, which was +This file was extended by Yambo $as_me 5.2.0 r.23857 h.ee1983a80f, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23856 h.a0e94ead90 +Yambo config.status 5.2.0 r.23857 h.ee1983a80f configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/headers/common/y_memory.h b/include/headers/common/y_memory.h index f211109a53..21ccd762ff 100644 --- a/include/headers/common/y_memory.h +++ b/include/headers/common/y_memory.h @@ -46,11 +46,72 @@ allocate(x, mold=y, &NEWLINE& stat=MEM_err,errmsg=MEM_msg)NEWLINE \ YAMBO_ALLOC_CHECK(x) -#define YAMBO_FREE(x) \ + /* free */ + +#define YAMBO_FREE_NO_DEV_CHECK(x) \ if (.not.allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ if ( allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ if ( allocated(x)) &NEWLINE& deallocate(x) + +#if defined _OPENACC || defined _OPENMP_GPU +#define YAMBO_FREE(x) \ + if ( .not.allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ + if ( allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ + if ( devxlib_mapped(x)) &NEWLINE& call error(QUOTES Trying to deallocate var x still on device memory QUOTES)NEWLINE \ + if ( allocated(x)) &NEWLINE& deallocate(x) +#else +#define YAMBO_FREE(x) YAMBO_FREE_NO_DEV_CHECK(x) +#endif + #define YAMBO_FREE_P(x) \ if (.not.associated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ if ( associated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ if ( associated(x)) &NEWLINE& deallocate(x);nullify(x) + + /* device allocations, OPENACC/OPENMP_GPU, CUDAF */ + +#if defined _OPENACC || defined _OPENMP_GPU + +#define YAMBO_ALLOC_CHECK_GPU(x) \ + if ( allocated(x)) &NEWLINE& call MEM_count_d(QUOTES x QUOTES,x)NEWLINE \ + if (.not.allocated(x)) &NEWLINE& call MEM_error(QUOTES x QUOTES) +#define YAMBO_ALLOC_GPU(x,SIZE) \ + if (.not.allocated(x)) then NEWLINE YAMBO_ALLOC(x,SIZE) NEWLINE \ + endif NEWLINE \ + call devxlib_map(x) NEWLINE \ + YAMBO_ALLOC_CHECK_GPU(x) +#define YAMBO_ALLOC_GPU_SOURCE(x,y) \ + if (.not.allocated(x)) then NEWLINE call error("[ALLOC] x not allocated") NEWLINE \ + endif NEWLINE \ + call devxlib_map(x) NEWLINE \ + call devxlib_memcpy_h2d(x,y) NEWLINE \ + YAMBO_ALLOC_CHECK_GPU(x) +#define YAMBO_ALLOC_GPU_MOLD(x,y) \ + if (.not.allocated(x)) then NEWLINE YAMBO_ALLOC_MOLD(x,y) NEWLINE \ + endif NEWLINE \ + call devxlib_map(x) NEWLINE \ + YAMBO_ALLOC_CHECK_GPU(x) + +#define YAMBO_FREE_GPU(x) \ + if (.not.allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ + if ( allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ + if ( allocated(x)) &NEWLINE& call devxlib_unmap(x,MEM_err) + +#else + +#define YAMBO_ALLOC_GPU(x,SIZE) \ + allocate(x SIZE, &NEWLINE& stat=MEM_err,errmsg=MEM_msg)NEWLINE \ + YAMBO_ALLOC_CHECK(x) +#define YAMBO_ALLOC_GPU_SOURCE(x,y) \ + allocate(x, source=y, &NEWLINE& stat=MEM_err,errmsg=MEM_msg)NEWLINE \ + YAMBO_ALLOC_CHECK(x) +#define YAMBO_ALLOC_GPU_MOLD(x,y) \ + allocate(x, mold=y, &NEWLINE& stat=MEM_err,errmsg=MEM_msg)NEWLINE \ + YAMBO_ALLOC_CHECK(x) + +#define YAMBO_FREE_GPU(x) \ + if (.not.allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,int(-1,KIND=IPL))NEWLINE \ + if ( allocated(x)) &NEWLINE& call MEM_free(QUOTES x QUOTES,size(x,KIND=IPL))NEWLINE \ + if ( allocated(x)) &NEWLINE& deallocate(x) + +#endif diff --git a/include/version/version.m4 b/include/version/version.m4 index e87848c92b..44b4921e87 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23855 h.e76c856633, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23856 h.a0e94ead90, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23855" -SHASH="e76c856633" +SREVISION="23856" +SHASH="a0e94ead90" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/allocations/DIPOLE_ALLOC_elemental.F b/src/allocations/DIPOLE_ALLOC_elemental.F index 11c46c1719..6cbf3cda3f 100644 --- a/src/allocations/DIPOLE_ALLOC_elemental.F +++ b/src/allocations/DIPOLE_ALLOC_elemental.F @@ -11,7 +11,7 @@ subroutine DIPOLE_ALLOC_elemental(what,d) use electrons, ONLY:n_sp_pol,n_spinor use pars, ONLY:cZERO ! -#include +#include ! character(*) :: what integer, optional :: d(:) diff --git a/src/io/io_X.F b/src/io/io_X.F index ff845340e5..c064af651f 100644 --- a/src/io/io_X.F +++ b/src/io/io_X.F @@ -11,7 +11,7 @@ integer function io_X(X,Xw,ID) use units, ONLY:HA2EV use R_lattice, ONLY:g_vec use ALLOC, ONLY:X_ALLOC_elemental - use X_m, ONLY:X_t,X_mat,X_RLcomp_ig,X_desc + use X_m, ONLY:X_t,X_mat,X_RLcomp_ig,X_desc,X_par use frequency, ONLY:w_samp use IO_int, ONLY:io_connect,io_disconnect,io_elemental,io_bulk,io_header,& & def_variable_bulk,io_variable_bulk,def_variable_elemental,io_variable_elemental,& From 76a9727737aadd97b9c19c40262b357e69ef9d7e Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 15:41:23 +0100 Subject: [PATCH 078/112] Version 5.2.0, Revision 23858, Hash f7562267d1 MODIFIED * configure include/version/version.m4 dipoles/DIPOLE_g_space.F dipoles/DIPOLE_p_matrix_elements.F dipoles/DIPOLE_shifted_grids.F Bugs: -Fixed more compilations bug Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_g_space.F | 9 ++++++--- src/dipoles/DIPOLE_p_matrix_elements.F | 2 ++ src/dipoles/DIPOLE_shifted_grids.F | 2 +- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/configure b/configure index c080aebd4b..6ad6fccf6b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23857 h.ee1983a80f. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23858 h.f7562267d1. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23857 h.ee1983a80f' -PACKAGE_STRING='Yambo 5.2.0 r.23857 h.ee1983a80f' +PACKAGE_VERSION='5.2.0 r.23858 h.f7562267d1' +PACKAGE_STRING='Yambo 5.2.0 r.23858 h.f7562267d1' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23857 h.ee1983a80f to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23858 h.f7562267d1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23857 h.ee1983a80f:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23858 h.f7562267d1:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23857 h.ee1983a80f +Yambo configure 5.2.0 r.23858 h.f7562267d1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23857 h.ee1983a80f, which was +It was created by Yambo $as_me 5.2.0 r.23858 h.f7562267d1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23857" -SHASH="ee1983a80f" +SREVISION="23858" +SHASH="f7562267d1" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23857 h.ee1983a80f, which was +This file was extended by Yambo $as_me 5.2.0 r.23858 h.f7562267d1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23857 h.ee1983a80f +Yambo config.status 5.2.0 r.23858 h.f7562267d1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 44b4921e87..184226eb07 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23856 h.a0e94ead90, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23857 h.ee1983a80f, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23856" -SHASH="a0e94ead90" +SREVISION="23857" +SHASH="ee1983a80f" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index a6c2dad23d..3bce88d12a 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -5,11 +5,13 @@ ! ! Authors (see AUTHORS file for details): AM DS ! +#include +! subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! This routine returns and . ! - use pars, ONLY:SP,cZERO + use pars, ONLY:SP,cZERO,schlen use drivers, ONLY:l_sc_run use interfaces, ONLY:WF_load,WF_free use LIVE_t, ONLY:live_timing @@ -38,7 +40,8 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! Work Space ! - logical :: l_use_comm,l_check + character(schlen) :: live_t_string + logical :: l_eval_DIP_iR,l_eval_DIP_V,l_eval_DIP_P2,l_use_comm,l_check logical, allocatable :: element_1D_spin(:) integer :: ik,ic_wf,iv_wf,i_wf,ic,iv,ib,ifrag,pp_dim_yambo,pp_dim_atom,& & i_sp_pol,N_elements_todo,ik_mem,ic_min,is,ia,pp_range(2),npp,npp_tab @@ -146,7 +149,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! Main loop over k in IBZ ! - if (N_elements_todo>0) call live_timing(trim(g_space_obs)//" [g-space]",N_elements_todo) + if (N_elements_todo>0) call live_timing(trim(live_t_string),N_elements_todo) ! do i_sp_pol=1,n_sp_pol ! diff --git a/src/dipoles/DIPOLE_p_matrix_elements.F b/src/dipoles/DIPOLE_p_matrix_elements.F index a7443c84e1..f2c8e0f1ca 100644 --- a/src/dipoles/DIPOLE_p_matrix_elements.F +++ b/src/dipoles/DIPOLE_p_matrix_elements.F @@ -5,6 +5,8 @@ ! ! Authors (see AUTHORS file for details): AM DS ! +#include +! subroutine DIPOLE_p_matrix_elements(Xk,iv_wf,ic_wf,ik,rho,rho_spinor,P2,l_eval_P2,l_eval_M_spin) ! use pars, ONLY:SP,cZERO,pi diff --git a/src/dipoles/DIPOLE_shifted_grids.F b/src/dipoles/DIPOLE_shifted_grids.F index 4b3f2de1e9..8e626eb522 100644 --- a/src/dipoles/DIPOLE_shifted_grids.F +++ b/src/dipoles/DIPOLE_shifted_grids.F @@ -29,7 +29,7 @@ subroutine DIPOLE_shifted_grids(Xen,Xk,Dip) use DIPOLES, ONLY:DIPOLE_t,DIP_iR,DIP_v,num_shifted_grids,shifted_grids_obs use vec_operate, ONLY:degeneration_finder use timing_m, ONLY:timing - use wrapper, ONLY:Vstar_dot_V + use wrapper, ONLY:Vstar_dot_V_gpu use wave_func, ONLY:wf_ng,wf_igk,WF,wf_ncx,WAVEs #if defined _SC use SC, ONLY:SC_bands From 3e234cb8ca0a07b2c6fe589fbe0b0c0dd5015fd0 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 15:45:01 +0100 Subject: [PATCH 079/112] Version 5.2.0, Revision 23859, Hash 76a9727737 MODIFIED * configure include/version/version.m4 bse/.objects bse/K_blocks.F Bugs: -Fixing more bugs Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/.objects | 3 +-- src/bse/K_blocks.F | 1 + 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 6ad6fccf6b..72a8b0b316 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23858 h.f7562267d1. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23859 h.76a9727737. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23858 h.f7562267d1' -PACKAGE_STRING='Yambo 5.2.0 r.23858 h.f7562267d1' +PACKAGE_VERSION='5.2.0 r.23859 h.76a9727737' +PACKAGE_STRING='Yambo 5.2.0 r.23859 h.76a9727737' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23858 h.f7562267d1 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23859 h.76a9727737 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23858 h.f7562267d1:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23859 h.76a9727737:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23858 h.f7562267d1 +Yambo configure 5.2.0 r.23859 h.76a9727737 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23858 h.f7562267d1, which was +It was created by Yambo $as_me 5.2.0 r.23859 h.76a9727737, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23858" -SHASH="f7562267d1" +SREVISION="23859" +SHASH="76a9727737" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23858 h.f7562267d1, which was +This file was extended by Yambo $as_me 5.2.0 r.23859 h.76a9727737, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23858 h.f7562267d1 +Yambo config.status 5.2.0 r.23859 h.76a9727737 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 184226eb07..fa65356b60 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23857 h.ee1983a80f, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23858 h.f7562267d1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23857" -SHASH="ee1983a80f" +SREVISION="23858" +SHASH="f7562267d1" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/.objects b/src/bse/.objects index a2f9ee2ab2..4695c066c7 100644 --- a/src/bse/.objects +++ b/src/bse/.objects @@ -10,8 +10,7 @@ SLK_objects = K_inversion_do_it_SLK.o #endif objs = K_blocks.o K_driver_init.o K_dipoles.o K_IP.o K_IP_sort.o \ K_Transitions_setup.o K_Transition_check.o \ - K_driver.o BSE_utilities.o \ - K_WF_phases.o \ + K_driver.o BSE_utilities.o K_WF_phases.o \ K_kernel.o $(PARIO_objects) K_correlation_collisions_dir.o K_correlation_collisions_std.o K_exchange_collisions.o \ K_correlation_kernel_dir.o K_correlation_kernel_std.o K_exchange_kernel.o \ K_restart.o K_solvers.o K_Haydock.o K_Haydock_response.o K_Haydock_gather.o K_Haydock_scatter.o K_screened_interaction.o \ diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 33fa129594..83807924bc 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -27,6 +27,7 @@ subroutine K_blocks( ) & BS_n_eh_spaces,BS_res_ares_n_mat,BS_IO_dim,l_BS_ares_from_res use com, ONLY:msg ! +#include #include ! complex(SP), allocatable :: BS_MAT(:) From c6853fe7cceacf008b506a0f86211d86783e7c58 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 16:03:26 +0100 Subject: [PATCH 080/112] Version 5.2.0, Revision 23860, Hash 3e234cb8ca MODIFIED * configure driver/yambo.F include/headers/common/parallel_memory.h include/version/version.m4 bse/K_blocks.F bse/K_dipoles.F bse/K_driver_init.F bse/K_kernel.F Bugs: - Additions: -Last fixes Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- driver/yambo.F | 2 +- include/headers/common/parallel_memory.h | 4 ++-- include/version/version.m4 | 6 +++--- src/bse/K_blocks.F | 1 - src/bse/K_dipoles.F | 2 +- src/bse/K_driver_init.F | 2 +- src/bse/K_kernel.F | 2 +- 8 files changed, 20 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 72a8b0b316..6d600a1e2d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23859 h.76a9727737. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23860 h.3e234cb8ca. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23859 h.76a9727737' -PACKAGE_STRING='Yambo 5.2.0 r.23859 h.76a9727737' +PACKAGE_VERSION='5.2.0 r.23860 h.3e234cb8ca' +PACKAGE_STRING='Yambo 5.2.0 r.23860 h.3e234cb8ca' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23859 h.76a9727737 to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23860 h.3e234cb8ca to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23859 h.76a9727737:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23860 h.3e234cb8ca:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23859 h.76a9727737 +Yambo configure 5.2.0 r.23860 h.3e234cb8ca generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23859 h.76a9727737, which was +It was created by Yambo $as_me 5.2.0 r.23860 h.3e234cb8ca, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23859" -SHASH="76a9727737" +SREVISION="23860" +SHASH="3e234cb8ca" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23859 h.76a9727737, which was +This file was extended by Yambo $as_me 5.2.0 r.23860 h.3e234cb8ca, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23859 h.76a9727737 +Yambo config.status 5.2.0 r.23860 h.3e234cb8ca configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/driver/yambo.F b/driver/yambo.F index 315f382a56..b399387012 100644 --- a/driver/yambo.F +++ b/driver/yambo.F @@ -16,7 +16,7 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! use drivers, ONLY:l_HF_and_locXC,l_sc_run,l_eval_collisions,l_real_time,& & l_optics,l_chi,l_em1s,l_ppa,l_mpa,l_bss,l_bse,l_em1d,l_X,& -& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr +& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr,l_gpu_test #if defined _SCALAPACK use drivers, ONLY:l_slk_test #endif diff --git a/include/headers/common/parallel_memory.h b/include/headers/common/parallel_memory.h index 75ef9bdcb9..da6c88b966 100644 --- a/include/headers/common/parallel_memory.h +++ b/include/headers/common/parallel_memory.h @@ -7,11 +7,11 @@ */ - use memory, ONLY:MEM_global_mesg + use y_memory, ONLY:MEM_global_mesg use parallel_m, ONLY:PAR_COM_HOST use parallel_int, ONLY:PP_redux_wait,PP_wait -#include +#include integer(IPL) :: HOST_SIZE(1),LOCAL_SIZE(1) diff --git a/include/version/version.m4 b/include/version/version.m4 index fa65356b60..a789756cb2 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23858 h.f7562267d1, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23859 h.76a9727737, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23858" -SHASH="f7562267d1" +SREVISION="23859" +SHASH="76a9727737" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_blocks.F b/src/bse/K_blocks.F index 83807924bc..33fa129594 100644 --- a/src/bse/K_blocks.F +++ b/src/bse/K_blocks.F @@ -27,7 +27,6 @@ subroutine K_blocks( ) & BS_n_eh_spaces,BS_res_ares_n_mat,BS_IO_dim,l_BS_ares_from_res use com, ONLY:msg ! -#include #include ! complex(SP), allocatable :: BS_MAT(:) diff --git a/src/bse/K_dipoles.F b/src/bse/K_dipoles.F index dda90cdd96..9680d24773 100644 --- a/src/bse/K_dipoles.F +++ b/src/bse/K_dipoles.F @@ -20,7 +20,7 @@ subroutine K_dipoles(iq,Ken,Xk,q,X_oscillators,Dip) use interfaces, ONLY:WF_load,WF_free use electrons, ONLY:levels,spin use X_m, ONLY:X_t,global_gauge,i_G_shift - use DIPOLES, ONLY:DIPOLE_t,DIP_alloc,DIP_rotated + use DIPOLES, ONLY:DIPOLE_t use BS_solvers, ONLY:BSS_Vnl_included,BSS_Q_dir,BSS_E_dir,BSS_P_dir use BS, ONLY:BS_T_grp,BS_K_coupling,BS_nT_grps,BSE_L_kind,BS_bands,& & BS_dip_size,l_BS_trace,BS_n_eh_spaces,& diff --git a/src/bse/K_driver_init.F b/src/bse/K_driver_init.F index a3cdb98d9e..6507039588 100644 --- a/src/bse/K_driver_init.F +++ b/src/bse/K_driver_init.F @@ -8,7 +8,7 @@ subroutine K_driver_init(what,iq,Ken,Xk) ! use R_lattice, ONLY:bz_samp - use electrons, ONLY:levels,n_sp_pol + use electrons, ONLY:levels,n_sp_pol,n_spin use parser_m, ONLY:parser use parallel_m, ONLY:PARALLEL_default_mode use stderr, ONLY:STRING_match diff --git a/src/bse/K_kernel.F b/src/bse/K_kernel.F index 199d157805..8939b7ede8 100644 --- a/src/bse/K_kernel.F +++ b/src/bse/K_kernel.F @@ -77,7 +77,7 @@ subroutine K_kernel(iq,Ken,Xk,q,X,Xw,W_bss) & i_kmq_t,i_pmq_t,i_k_bz_mem,i_kmq_bz_mem,qindx_tmp(2) ! OMP LAST DEF integer :: i_k_bz_last,i_p_bz_last,i_pmq_bz_last,i_kmq_bz_last, & -& iq_W_bz_last,ig_W_last,iq_W_bz_mq_last,ig_W_mq_last +& iq_W_bz_last,ig_W_last,iq_W_bz_mq_last,ig_W_mq_last,ig_W_final ! integer :: i_block,O_ng_shift,O_ng_exch,O_ng_tddft,iHxc,NG(2),NK(2),& & ig_kmq,ig_pmq,ig_W_mq,iq_W_bz_mq,iq_W_mq,iq_W_s_mq,& From cb4195b08d32ed7d458a6aa87444b6fb2b06ebc7 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 16:39:29 +0100 Subject: [PATCH 081/112] Version 5.2.0, Revision 23861, Hash c6853fe7cc MODIFIED * config/mk/global/actions/compile_interfaces.mk config/mk/global/actions/compile_yambo.mk config/mk/global/actions/compile_ypp.mk configure include/version/version.m4 Bugs: -Fixed libraries names Additions: - Changes: - Patch sent by: Claudio Attaccalite --- .../mk/global/actions/compile_interfaces.mk | 2 +- config/mk/global/actions/compile_yambo.mk | 2 +- config/mk/global/actions/compile_ypp.mk | 4 ++-- configure | 22 +++++++++---------- include/version/version.m4 | 6 ++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/config/mk/global/actions/compile_interfaces.mk b/config/mk/global/actions/compile_interfaces.mk index e5ea6f3d73..54f29a8c45 100644 --- a/config/mk/global/actions/compile_interfaces.mk +++ b/config/mk/global/actions/compile_interfaces.mk @@ -29,7 +29,7 @@ $(GOALS): @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(2Y_LIBS)";BASE="src";ADF="$(I_PRECMP) -D_$@";$(todo_lib);$(mk_lib) + @+LIBS="$(2Y_LIBS)";LAB="_Y_";BASE="src";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) @+LIBS="int_modules";BASE="interfaces";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_yambo.mk b/config/mk/global/actions/compile_yambo.mk index c6f1ab6601..29248ca57c 100644 --- a/config/mk/global/actions/compile_yambo.mk +++ b/config/mk/global/actions/compile_yambo.mk @@ -38,6 +38,6 @@ yambo yambo_ph yambo_sc yambo_rt yambo_nl: @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(SRC_LIBS)";BASE="src";ADF="$(PRECMP) -D_yambo";$(todo_lib);$(mk_lib) + @+LIBS="$(SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_ypp.mk b/config/mk/global/actions/compile_ypp.mk index 5cf33f9113..e4ade53fb9 100644 --- a/config/mk/global/actions/compile_ypp.mk +++ b/config/mk/global/actions/compile_ypp.mk @@ -52,7 +52,7 @@ ypp ypp_ph ypp_sc ypp_rt_gpl ypp_rt ypp_nl: @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(Y_SRC_LIBS)";BASE="src";ADF="$(Y_PRECMP) -D_ypp";$(todo_lib);$(mk_lib) - @+LIBS="$(YPP_SRC_LIBS)";LAB="_ypp_";BASE="ypp";ADF="$(YPP_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(Y_SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(Y_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(YPP_SRC_LIBS)";LAB="_YPP_";BASE="ypp";ADF="$(YPP_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(mk_exe) diff --git a/configure b/configure index 6d600a1e2d..12906c6890 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23860 h.3e234cb8ca. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23861 h.c6853fe7cc. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23860 h.3e234cb8ca' -PACKAGE_STRING='Yambo 5.2.0 r.23860 h.3e234cb8ca' +PACKAGE_VERSION='5.2.0 r.23861 h.c6853fe7cc' +PACKAGE_STRING='Yambo 5.2.0 r.23861 h.c6853fe7cc' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23860 h.3e234cb8ca to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23861 h.c6853fe7cc to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23860 h.3e234cb8ca:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23861 h.c6853fe7cc:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23860 h.3e234cb8ca +Yambo configure 5.2.0 r.23861 h.c6853fe7cc generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23860 h.3e234cb8ca, which was +It was created by Yambo $as_me 5.2.0 r.23861 h.c6853fe7cc, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23860" -SHASH="3e234cb8ca" +SREVISION="23861" +SHASH="c6853fe7cc" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23860 h.3e234cb8ca, which was +This file was extended by Yambo $as_me 5.2.0 r.23861 h.c6853fe7cc, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23860 h.3e234cb8ca +Yambo config.status 5.2.0 r.23861 h.c6853fe7cc configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a789756cb2..ee4041f98a 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23859 h.76a9727737, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23860 h.3e234cb8ca, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23859" -SHASH="76a9727737" +SREVISION="23860" +SHASH="3e234cb8ca" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From e5c0c10ceb5dc19a8a0b544dfbbf0cf5760defc0 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 27 Nov 2024 16:48:56 +0100 Subject: [PATCH 082/112] Version 5.2.0, Revision 23862, Hash cb4195b08d MODIFIED * config/mk/global/actions/compile_interfaces.mk config/mk/global/actions/compile_yambo.mk config/mk/global/actions/compile_ypp.mk include/version/version.m4 Changes: - added definitions of yambo / ypp /interfaces Patch sent by: Davide Sangalli --- config/mk/global/actions/compile_interfaces.mk | 2 +- config/mk/global/actions/compile_yambo.mk | 2 +- config/mk/global/actions/compile_ypp.mk | 2 +- include/version/version.m4 | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/mk/global/actions/compile_interfaces.mk b/config/mk/global/actions/compile_interfaces.mk index 54f29a8c45..25b8ac9f48 100644 --- a/config/mk/global/actions/compile_interfaces.mk +++ b/config/mk/global/actions/compile_interfaces.mk @@ -29,7 +29,7 @@ $(GOALS): @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(2Y_LIBS)";LAB="_Y_";BASE="src";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(2Y_LIBS)";LAB="_Y_";BASE="src";ADF="$(I_PRECMP) -D_$@";$(todo_lib);$(mk_lib) @+LIBS="int_modules";BASE="interfaces";ADF="$(I_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="interfaces/$@";XLIBS="$(2Y_LIBS_LD)";ADF="$(I_PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_yambo.mk b/config/mk/global/actions/compile_yambo.mk index 29248ca57c..9b3d5c3317 100644 --- a/config/mk/global/actions/compile_yambo.mk +++ b/config/mk/global/actions/compile_yambo.mk @@ -38,6 +38,6 @@ yambo yambo_ph yambo_sc yambo_rt yambo_nl: @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(PRECMP) -D_yambo";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(EXE_LIBS)";ADF="$(PRECMP)";$(mk_exe) diff --git a/config/mk/global/actions/compile_ypp.mk b/config/mk/global/actions/compile_ypp.mk index e4ade53fb9..897e2340e1 100644 --- a/config/mk/global/actions/compile_ypp.mk +++ b/config/mk/global/actions/compile_ypp.mk @@ -52,7 +52,7 @@ ypp ypp_ph ypp_sc ypp_rt_gpl ypp_rt ypp_nl: @$(MAKE) $(MAKEFLAGS) dependencies @$(MAKE) $(MAKEFLAGS) ext-libs @$(MAKE) $(MAKEFLAGS) int-libs - @+LIBS="$(Y_SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(Y_PRECMP)";$(todo_lib);$(mk_lib) + @+LIBS="$(Y_SRC_LIBS)";LAB="_Y_";BASE="src";ADF="$(Y_PRECMP) -D_ypp";$(todo_lib);$(mk_lib) @+LIBS="$(YPP_SRC_LIBS)";LAB="_YPP_";BASE="ypp";ADF="$(YPP_PRECMP)";$(todo_lib);$(mk_lib) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(todo_driver) @+X2DO="$@";BASE="driver";XLIBS="$(Y_EXE_LIBS)";X_ypp_LIBS="$(YPP_EXE_LIBS)";ADF="$(YPP_PRECMP)";$(mk_exe) diff --git a/include/version/version.m4 b/include/version/version.m4 index ee4041f98a..e03eaf9252 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23860 h.3e234cb8ca, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23862 h.cb4195b08d, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23860" -SHASH="3e234cb8ca" +SREVISION="23862" +SHASH="cb4195b08d" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 1ad0edd8161784508e09c61a35bbbf7f33ff5048 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 16:56:56 +0100 Subject: [PATCH 083/112] Version 5.2.0, Revision 23863, Hash e5c0c10ceb MODIFIED * config/mk/global/functions/mk_exe.mk Bugs: - Additions: -Trying fixing driver Changes: - Patch sent by: Claudio Attaccalite --- config/mk/global/functions/mk_exe.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config/mk/global/functions/mk_exe.mk b/config/mk/global/functions/mk_exe.mk index d521c72602..3112cca056 100644 --- a/config/mk/global/functions/mk_exe.mk +++ b/config/mk/global/functions/mk_exe.mk @@ -10,8 +10,7 @@ define mk_exe for lib in $$X_ypp_LIBS; do if test -f $(compdir)/lib/lib_YPP_$$lib.a; then LLIBS="$$LLIBS -l_YPP_$$lib" ; fi ; done ; \ for exe in $$X2DO; do \ if test ! -f $(compdir)/config/stamps_and_lists/$$exe.stamp && test ! -f $(compdir)/config/stamps_and_lists/compilation_stop_$$exe.stamp; then \ - DLIBS="-ldriver"; \ - ./sbin/compilation/helper.sh -d $$BASE -t $$exe -o .objects -m x -g $@ -- "$$DLIBS $$LLIBS $(xcpp) $$ADF"; \ + ./sbin/compilation/helper.sh -d $$BASE -t $$exe -o .objects -m x -g $@ -- "$$LLIBS $(xcpp) $$ADF"; \ cd $$BASE ; $(MAKE) $(MAKEFLAGS) VPATH=$(srcdir)/$$BASE exe || { grep Error $(compdir)/log/compile_$@.log ; exit "$$?"; } ; cd $(compdir); \ fi;\ if test ! -f $(compdir)/config/stamps_and_lists/$$exe.stamp; then \ From 9f2f9c264156300518a7a0c2f09798ca246a80bd Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 17:15:01 +0100 Subject: [PATCH 084/112] Version 5.2.0, Revision 23864, Hash 1ad0edd816 MODIFIED * config/mk/global/libraries.mk include/version/version.m4 Bugs: - Additions: -Fixed driver Changes: - Patch sent by: Claudio Attaccalite --- config/mk/global/libraries.mk | 2 +- include/version/version.m4 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/mk/global/libraries.mk b/config/mk/global/libraries.mk index b158a26dc3..d15307c4cd 100644 --- a/config/mk/global/libraries.mk +++ b/config/mk/global/libraries.mk @@ -22,7 +22,7 @@ YLIBIO_LD = $(YLIBIO) # BASIC_LIBS = driver tools modules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ xc_functionals interface stop_and_restart wf_and_fft bz_ops coulomb -BASIC_LIBS_LD= tools memory allocations communicate modules matrices linear_algebra bz_ops parallel parser output common timing Yio io $(IO_MODE) \ +BASIC_LIBS_LD= driver tools memory allocations communicate modules matrices linear_algebra bz_ops parallel parser output common timing Yio io $(IO_MODE) \ xc_functionals interface stop_and_restart wf_and_fft coulomb MAIN_LIBS = $(BASIC_LIBS) interpolate qp_control setup tddft dipoles pol_function qp acfdt bse diff --git a/include/version/version.m4 b/include/version/version.m4 index e03eaf9252..8c7afce7ab 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23862 h.cb4195b08d, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23863 h.e5c0c10ceb, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23862" -SHASH="cb4195b08d" +SREVISION="23863" +SHASH="e5c0c10ceb" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 8fbdf4a093f191988339d0bf59814a98463814b7 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 27 Nov 2024 17:17:57 +0100 Subject: [PATCH 085/112] Version 5.2.0, Revision 23865, Hash 9f2f9c2641 MODIFIED * include/version/version.m4 Bugs: - Additions: - Changes: - Patch sent by: Claudio Attaccalite --- include/version/version.m4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index 8c7afce7ab..7823d883c4 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23863 h.e5c0c10ceb, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23864 h.1ad0edd816, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23863" -SHASH="e5c0c10ceb" +SREVISION="23864" +SHASH="1ad0edd816" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 83ac26213cefbfe99987a9894fc85f0012106a6e Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 27 Nov 2024 17:19:43 +0100 Subject: [PATCH 086/112] Version 5.2.0, Revision 23866, Hash 8fbdf4a093 MODIFIED * include/version/version.m4 dipoles/DIPOLE_g_space.F Changes: - [yambo] Fixed DIPOLE_g_space Patch sent by: Davide Sangalli --- include/version/version.m4 | 6 +++--- src/dipoles/DIPOLE_g_space.F | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index 7823d883c4..368194ba16 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23864 h.1ad0edd816, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23866 h.8fbdf4a093, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23864" -SHASH="1ad0edd816" +SREVISION="23866" +SHASH="8fbdf4a093" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/dipoles/DIPOLE_g_space.F b/src/dipoles/DIPOLE_g_space.F index 3bce88d12a..c256860975 100644 --- a/src/dipoles/DIPOLE_g_space.F +++ b/src/dipoles/DIPOLE_g_space.F @@ -22,6 +22,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) use D_lattice, ONLY:n_atomic_species,n_atoms_species use R_lattice, ONLY:bz_samp,g_vec_d,g_vec use DIPOLES, ONLY:DIPOLE_t,DIP_iR,P_square,DIP_P,DIP_v,DIP_P_spinor,g_space_obs + use ALLOC, ONLY:DIPOLE_alloc_elemental use X_m, ONLY:l_X_terminator use IO_int, ONLY:io_control use IO_m, ONLY:manage_action,RD_CL_IF_END,OP_RD,OP_RD_CL @@ -138,7 +139,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! ! sum_kb workspace ! - call DIP_alloc("DIP_work",[pp_dim_yambo]) + call DIPOLE_alloc_elemental("DIP_work",[pp_dim_yambo]) ! endif live_t_string='Dipoles: P (T)' @@ -332,7 +333,7 @@ subroutine DIPOLE_g_space(Xen,Xk,Dip) ! CLEAN ! if (l_use_comm) then - call DIP_alloc("DIP_work") + call DIPOLE_alloc_elemental("DIP_work") if (have_gpu) then YAMBO_FREE_GPU(DEV_VAR(kbv)) YAMBO_FREE_GPU(XX) From bf9108895c8b5d7d37e8ac00b1bd9c9ffdd83b33 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 27 Nov 2024 17:31:02 +0100 Subject: [PATCH 087/112] Version 5.2.0, Revision 23867, Hash 83ac26213c MODIFIED * config/mk/global/libraries.mk include/version/version.m4 Bugs: - [a2y] Fixed interfaces compilation Patch sent by: Davide Sangalli --- config/mk/global/libraries.mk | 2 +- include/version/version.m4 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/mk/global/libraries.mk b/config/mk/global/libraries.mk index d15307c4cd..c428e0dcea 100644 --- a/config/mk/global/libraries.mk +++ b/config/mk/global/libraries.mk @@ -57,7 +57,7 @@ PJ_NLLIBS_LD = $(BASIC_LIBS_LD) interpolate real_time_control qp_control setup \ # 2Y_LIBS = driver tools modules memory allocations matrices linear_algebra parallel parser communicate output common timing Yio io $(IO_MODE) \ setup interface stop_and_restart bz_ops -2Y_LIBS_LD = tools memory allocations communicate modules matrices linear_algebra parallel parser output common timing Yio io $(IO_MODE) \ +2Y_LIBS_LD = driver tools memory allocations communicate modules matrices linear_algebra parallel parser output common timing Yio io $(IO_MODE) \ setup interface stop_and_restart bz_ops # # YPP folders diff --git a/include/version/version.m4 b/include/version/version.m4 index 368194ba16..7db7386c14 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23866 h.8fbdf4a093, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23867 h.83ac26213c, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23866" -SHASH="8fbdf4a093" +SREVISION="23867" +SHASH="83ac26213c" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 5626cad4bdf509327966066d9cb96d09d31681fc Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 28 Nov 2024 09:53:35 +0100 Subject: [PATCH 088/112] Version 5.2.0, Revision 23868, Hash bf9108895c MODIFIED * include/version/version.m4 wf_and_fft/WF_apply_symm_incl.F wf_and_fft/WF_symm_kpoint_incl.F wf_and_fft/scatter_Bamp_incl.F wf_and_fft/scatter_Gamp_incl.F Changes: - [yambo] Fixed warning messages in DEV_SUB "redefined" Patch sent by: Davide Sangalli --- include/version/version.m4 | 6 +++--- src/wf_and_fft/WF_apply_symm_incl.F | 1 + src/wf_and_fft/WF_symm_kpoint_incl.F | 1 + src/wf_and_fft/scatter_Bamp_incl.F | 1 + src/wf_and_fft/scatter_Gamp_incl.F | 1 + 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index 7db7386c14..182ee069d0 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23867 h.83ac26213c, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23868 h.bf9108895c, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23867" -SHASH="83ac26213c" +SREVISION="23868" +SHASH="bf9108895c" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/wf_and_fft/WF_apply_symm_incl.F b/src/wf_and_fft/WF_apply_symm_incl.F index bb439b802b..bc2547e5e0 100644 --- a/src/wf_and_fft/WF_apply_symm_incl.F +++ b/src/wf_and_fft/WF_apply_symm_incl.F @@ -31,6 +31,7 @@ #else # include # undef _GPU_LOC +# undef DEV_SUB # define DEV_SUB(x) CAT(x,_gpu) # include"WF_apply_symm.F" # include diff --git a/src/wf_and_fft/WF_symm_kpoint_incl.F b/src/wf_and_fft/WF_symm_kpoint_incl.F index 6cf86a2b05..aba983efa2 100644 --- a/src/wf_and_fft/WF_symm_kpoint_incl.F +++ b/src/wf_and_fft/WF_symm_kpoint_incl.F @@ -31,6 +31,7 @@ #else # include # undef _GPU_LOC +# undef DEV_SUB # define DEV_SUB(x) CAT(x,_gpu) # include"WF_symm_kpoint.F" # include diff --git a/src/wf_and_fft/scatter_Bamp_incl.F b/src/wf_and_fft/scatter_Bamp_incl.F index 952ff20efb..43726c38ba 100644 --- a/src/wf_and_fft/scatter_Bamp_incl.F +++ b/src/wf_and_fft/scatter_Bamp_incl.F @@ -29,6 +29,7 @@ #else # include # undef _GPU_LOC +# undef DEV_SUB # define DEV_SUB(x) CAT(x,_gpu) # include"scatter_Bamp.F" # include diff --git a/src/wf_and_fft/scatter_Gamp_incl.F b/src/wf_and_fft/scatter_Gamp_incl.F index c7303bce50..0111b83f47 100644 --- a/src/wf_and_fft/scatter_Gamp_incl.F +++ b/src/wf_and_fft/scatter_Gamp_incl.F @@ -31,6 +31,7 @@ #else # include # undef _GPU_LOC +# undef DEV_SUB # define DEV_SUB(x) CAT(x,_gpu) # include"scatter_Gamp.F" # include From 2b99d940953d4122dccd611be8983632a0961acf Mon Sep 17 00:00:00 2001 From: marini Date: Thu, 28 Nov 2024 10:02:08 +0100 Subject: [PATCH 089/112] Version 5.2.0, Revision 23868, Hash bf9108895 MODIFIED * include/version/version.m4 collisions/COLLISIONS_HXC.F collisions/LSEX_potential.F Bugs: - _sc compilation fixed Patch sent by: marini --- include/version/version.m4 | 6 +++--- src/collisions/COLLISIONS_HXC.F | 2 +- src/collisions/LSEX_potential.F | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index 7db7386c14..649d062b79 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23867 h.83ac26213c, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23868 h.bf9108895, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23867" -SHASH="83ac26213c" +SREVISION="23868" +SHASH="bf9108895" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/collisions/COLLISIONS_HXC.F b/src/collisions/COLLISIONS_HXC.F index b5b80d9270..f81e0f43c5 100644 --- a/src/collisions/COLLISIONS_HXC.F +++ b/src/collisions/COLLISIONS_HXC.F @@ -34,7 +34,7 @@ subroutine COLLISIONS_HXC(X,Xk,E,k,q,Xw) use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,io_COLLs use ALLOC, ONLY:X_ALLOC_elemental use X_m, ONLY:X_mat,X_t - use interfaces, ONLY:WF_load,TDDFT_ALDA_R_space + use interfaces, ONLY:WF_load,TDDFT_ALDA_eh_space_R_kernel use wave_func, ONLY:WF,WF_buffer,WF_buffered_IO use R_lattice, ONLY:qindx_S,bz_samp,g_rot,minus_G use hamiltonian, ONLY:B_mat_index diff --git a/src/collisions/LSEX_potential.F b/src/collisions/LSEX_potential.F index 172ee9a5ce..e1dbf75cb8 100644 --- a/src/collisions/LSEX_potential.F +++ b/src/collisions/LSEX_potential.F @@ -19,7 +19,8 @@ subroutine LSEX_potential(q,X,Xw) use electrons, ONLY:levels,spin_occ use collision_el, ONLY:elemental_collision,elemental_collision_free, & & elemental_collision_alloc - use X_m, ONLY:X_mat,X_ALLOC_elemental,X_t + use X_m, ONLY:X_mat,X_t + use ALLOC, ONLY:X_ALLOC_elemental use IO_int, ONLY:io_control use IO_m, ONLY:OP_RD_CL,REP,VERIFY,NONE,RD_CL,OP_RD,RD_CL_IF_END,manage_action, & & deliver_IO_error_message From 66de4a6bba3abae0e0c47097e82e450641e1a3a1 Mon Sep 17 00:00:00 2001 From: Andrea Ferretti Date: Thu, 28 Nov 2024 11:21:07 +0100 Subject: [PATCH 090/112] compilation fixed --- driver/yambo.F | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/driver/yambo.F b/driver/yambo.F index b399387012..40f8ac275c 100644 --- a/driver/yambo.F +++ b/driver/yambo.F @@ -16,10 +16,8 @@ integer function yambo(np,pid,lnstr,iinf,iind,iod,icd,ijs,instr,inf,ind,od,com_d ! use drivers, ONLY:l_HF_and_locXC,l_sc_run,l_eval_collisions,l_real_time,& & l_optics,l_chi,l_em1s,l_ppa,l_mpa,l_bss,l_bse,l_em1d,l_X,& -& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr,l_gpu_test -#if defined _SCALAPACK - use drivers, ONLY:l_slk_test -#endif +& l_gw0,l_life,l_acfdt,l_dipoles,l_nl_optics,l_elel_corr,l_gpu_test,& +& l_slk_test #if defined _ELPH use drivers, ONLY:l_elph_Hamiltonian #endif From edb079615f2ce6657b109ef8f0d7ca5ba3241daa Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Thu, 28 Nov 2024 15:04:01 +0100 Subject: [PATCH 091/112] Version 5.2.0, Revision 23872, Hash 66de4a6bba MODIFIED * lib/qe_pseudo/DOUBLE_project.dep lib/slatec/DOUBLE_project.dep allocations/DIPOLE_ALLOC_elemental.F Bugs: -Fixed missing allocation in dipoles Additions: - Changes: - Patch sent by: Claudio Attaccalite --- lib/qe_pseudo/DOUBLE_project.dep | 1 + lib/slatec/DOUBLE_project.dep | 2 +- src/allocations/DIPOLE_ALLOC_elemental.F | 13 ++++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/qe_pseudo/DOUBLE_project.dep b/lib/qe_pseudo/DOUBLE_project.dep index eb9021637a..fbc606fa4d 100644 --- a/lib/qe_pseudo/DOUBLE_project.dep +++ b/lib/qe_pseudo/DOUBLE_project.dep @@ -39,4 +39,5 @@ us_module.o uspp.o ylmr2.o + objects.o diff --git a/lib/slatec/DOUBLE_project.dep b/lib/slatec/DOUBLE_project.dep index b24664a8ce..2049458d1e 100644 --- a/lib/slatec/DOUBLE_project.dep +++ b/lib/slatec/DOUBLE_project.dep @@ -1,4 +1,4 @@ - avint.o + objects.oavint.o besi0.o besi0e.o besi1.o diff --git a/src/allocations/DIPOLE_ALLOC_elemental.F b/src/allocations/DIPOLE_ALLOC_elemental.F index 6cbf3cda3f..ceda299b56 100644 --- a/src/allocations/DIPOLE_ALLOC_elemental.F +++ b/src/allocations/DIPOLE_ALLOC_elemental.F @@ -7,10 +7,13 @@ ! subroutine DIPOLE_ALLOC_elemental(what,d) ! - use DIPOLES, ONLY:DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIP_S + use DIPOLES, ONLY:DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square, & +& DIP_S,DIP_work_drho use electrons, ONLY:n_sp_pol,n_spinor use pars, ONLY:cZERO + use gpu_m, ONLY:have_gpu ! +#include #include ! character(*) :: what @@ -42,6 +45,9 @@ subroutine DIPOLE_ALLOC_elemental(what,d) case('P_square') if (.not.allocated(P_square)) return YAMBO_FREE(P_square) + case('DIP_work') + YAMBO_FREE_GPU(DEV_VAR(DIP_work_drho)) + YAMBO_FREE(DIP_work_drho) end select ! return @@ -81,6 +87,11 @@ subroutine DIPOLE_ALLOC_elemental(what,d) if (allocated(P_square)) return YAMBO_ALLOC(P_square,(d(1):d(2),d(3):d(4),d(5),n_sp_pol)) P_square=cZERO + case('DIP_work') + YAMBO_ALLOC(DIP_work_drho,(n_spinor,3,d(1))) + if (have_gpu) then + YAMBO_ALLOC_GPU(DEV_VAR(DIP_work_drho),(n_spinor,3,d(1))) + endif end select ! end subroutine From 2432b58e51cb4fbb16d6a9044bd196925b5aff00 Mon Sep 17 00:00:00 2001 From: Andrea Ferretti Date: Thu, 28 Nov 2024 15:20:41 +0100 Subject: [PATCH 092/112] bug fixed in DIP workspace allocations --- src/allocations/DIPOLE_ALLOC_elemental.F | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/allocations/DIPOLE_ALLOC_elemental.F b/src/allocations/DIPOLE_ALLOC_elemental.F index 6cbf3cda3f..bbdad108e8 100644 --- a/src/allocations/DIPOLE_ALLOC_elemental.F +++ b/src/allocations/DIPOLE_ALLOC_elemental.F @@ -5,11 +5,15 @@ ! ! Authors (see AUTHORS file for details): AM ! +#include +! subroutine DIPOLE_ALLOC_elemental(what,d) ! - use DIPOLES, ONLY:DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIP_S + use DIPOLES, ONLY:DIP_iR,DIP_v,DIP_P,DIP_orbital,DIP_spin,DIP_P_spinor,P_square,DIP_S,& +& DIP_work_drho,DEV_VAR(DIP_work_drho) use electrons, ONLY:n_sp_pol,n_spinor use pars, ONLY:cZERO + use gpu_m, ONLY:have_gpu ! #include ! @@ -42,6 +46,9 @@ subroutine DIPOLE_ALLOC_elemental(what,d) case('P_square') if (.not.allocated(P_square)) return YAMBO_FREE(P_square) + case('DIP_work') + YAMBO_FREE_GPU(DEV_VAR(DIP_work_drho)) + YAMBO_FREE(DIP_work_drho) end select ! return @@ -81,6 +88,11 @@ subroutine DIPOLE_ALLOC_elemental(what,d) if (allocated(P_square)) return YAMBO_ALLOC(P_square,(d(1):d(2),d(3):d(4),d(5),n_sp_pol)) P_square=cZERO + case('DIP_work') + YAMBO_ALLOC(DIP_work_drho,(n_spinor,3,d(1))) + if (have_gpu) then + YAMBO_ALLOC_GPU(DEV_VAR(DIP_work_drho),(n_spinor,3,d(1))) + endif end select ! end subroutine From 6f782241304c1ef76eeca0dd49d42876ff6c2acf Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Fri, 29 Nov 2024 11:22:03 +0100 Subject: [PATCH 093/112] Version 5.2.0, Revision 23875, Hash b1118c8d9 MODIFIED * configure include/version/version.m4 Bugs: - Additions: -Configure updated Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 12906c6890..07dfe0ff07 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23861 h.c6853fe7cc. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23875 h.b1118c8d9. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23861 h.c6853fe7cc' -PACKAGE_STRING='Yambo 5.2.0 r.23861 h.c6853fe7cc' +PACKAGE_VERSION='5.2.0 r.23875 h.b1118c8d9' +PACKAGE_STRING='Yambo 5.2.0 r.23875 h.b1118c8d9' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23861 h.c6853fe7cc to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23875 h.b1118c8d9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23861 h.c6853fe7cc:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23875 h.b1118c8d9:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23861 h.c6853fe7cc +Yambo configure 5.2.0 r.23875 h.b1118c8d9 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23861 h.c6853fe7cc, which was +It was created by Yambo $as_me 5.2.0 r.23875 h.b1118c8d9, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23861" -SHASH="c6853fe7cc" +SREVISION="23875" +SHASH="b1118c8d9" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23861 h.c6853fe7cc, which was +This file was extended by Yambo $as_me 5.2.0 r.23875 h.b1118c8d9, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23861 h.c6853fe7cc +Yambo config.status 5.2.0 r.23875 h.b1118c8d9 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 182ee069d0..a58e355410 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23868 h.bf9108895c, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23875 h.b1118c8d9, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23868" -SHASH="bf9108895c" +SREVISION="23875" +SHASH="b1118c8d9" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 761e5987358cef8222916bb4eff0a9abf10ea7cd Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 30 Nov 2024 15:11:05 +0100 Subject: [PATCH 094/112] Version 5.3.0, Revision 23876, Hash 6f78224130 MODIFIED * configure include/version/version.m4 Changes: - [yambo] Version updated to 5.3.0 Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 8 ++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 07dfe0ff07..2e16d89d2e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23875 h.b1118c8d9. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23877 h.6f78224130. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23875 h.b1118c8d9' -PACKAGE_STRING='Yambo 5.2.0 r.23875 h.b1118c8d9' +PACKAGE_VERSION='5.3.0 r.23877 h.6f78224130' +PACKAGE_STRING='Yambo 5.3.0 r.23877 h.6f78224130' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23875 h.b1118c8d9 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23877 h.6f78224130 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23875 h.b1118c8d9:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23877 h.6f78224130:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23875 h.b1118c8d9 +Yambo configure 5.3.0 r.23877 h.6f78224130 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23875 h.b1118c8d9, which was +It was created by Yambo $as_me 5.3.0 r.23877 h.6f78224130, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23875" -SHASH="b1118c8d9" +SREVISION="23877" +SHASH="6f78224130" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23875 h.b1118c8d9, which was +This file was extended by Yambo $as_me 5.3.0 r.23877 h.6f78224130, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23875 h.b1118c8d9 +Yambo config.status 5.3.0 r.23877 h.6f78224130 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index a58e355410..053f32f52d 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23875 h.b1118c8d9, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23877 h.6f78224130, yambo@yambo-code.org) SVERSION="5" -SSUBVERSION="2" +SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23875" -SHASH="b1118c8d9" +SREVISION="23877" +SHASH="6f78224130" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 145a6c347e04b30fff1681c79c2c49c48918ad93 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Sat, 30 Nov 2024 19:25:49 +0100 Subject: [PATCH 095/112] Version 5.3.0, Revision 23877, Hash 761e598735 MODIFIED * configure stop_and_restart/STOP_now.F Bugs: -Better coding in case of stop_now Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- src/stop_and_restart/STOP_now.F | 6 ++++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/configure b/configure index 2e16d89d2e..116ddde774 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23877 h.6f78224130. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23878 h.761e598735. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23877 h.6f78224130' -PACKAGE_STRING='Yambo 5.3.0 r.23877 h.6f78224130' +PACKAGE_VERSION='5.3.0 r.23878 h.761e598735' +PACKAGE_STRING='Yambo 5.3.0 r.23878 h.761e598735' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23877 h.6f78224130 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23878 h.761e598735 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23877 h.6f78224130:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23878 h.761e598735:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23877 h.6f78224130 +Yambo configure 5.3.0 r.23878 h.761e598735 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23877 h.6f78224130, which was +It was created by Yambo $as_me 5.3.0 r.23878 h.761e598735, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23877" -SHASH="6f78224130" +SREVISION="23878" +SHASH="761e598735" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23877 h.6f78224130, which was +This file was extended by Yambo $as_me 5.3.0 r.23878 h.761e598735, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23877 h.6f78224130 +Yambo config.status 5.3.0 r.23878 h.761e598735 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/src/stop_and_restart/STOP_now.F b/src/stop_and_restart/STOP_now.F index 5f30c898b2..f8fbf744f3 100644 --- a/src/stop_and_restart/STOP_now.F +++ b/src/stop_and_restart/STOP_now.F @@ -18,6 +18,9 @@ logical function STOP_now(DO_IT_NOW) #endif #if defined _RT || defined _QED || defined _NL use real_time, ONLY:RT_bands +#endif +#if defined NL + use nl_optics, ONLY:NL_bands #endif ! implicit none @@ -57,6 +60,9 @@ logical function STOP_now(DO_IT_NOW) #endif #if defined _RT || defined _QED || defined _NL RT_bands=bands_save(3,:) +#endif +#if defined _NL + NL_bands=bands_save(3,:) #endif ! if (len_trim(USER_wall_time_string)>0.and.& From ffb5b21f0e115b099978a96ddaccf1c57d053581 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 30 Nov 2024 20:43:08 +0100 Subject: [PATCH 096/112] Version 5.3.0, Revision 23878, Hash 145a6c347e MODIFIED * config/m4/device_xlib.m4 config/m4/gpu.m4 config/m4/libcuda.m4 config/mk/global/no_configure_help.mk configure include/version/version.m4 Changes: - yambo website links fixed Patch sent by: Davide Sangalli --- config/m4/device_xlib.m4 | 2 +- config/m4/gpu.m4 | 2 +- config/m4/libcuda.m4 | 2 +- config/mk/global/no_configure_help.mk | 2 +- configure | 28 +++++++++++++-------------- include/version/version.m4 | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/config/m4/device_xlib.m4 b/config/m4/device_xlib.m4 index 9202eee963..7c913feef3 100644 --- a/config/m4/device_xlib.m4 +++ b/config/m4/device_xlib.m4 @@ -1,7 +1,7 @@ # # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): DS # diff --git a/config/m4/gpu.m4 b/config/m4/gpu.m4 index ccb4c4c85d..2338bc7388 100644 --- a/config/m4/gpu.m4 +++ b/config/m4/gpu.m4 @@ -1,6 +1,6 @@ # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): AF # diff --git a/config/m4/libcuda.m4 b/config/m4/libcuda.m4 index 525099a8a4..50ceaf0563 100644 --- a/config/m4/libcuda.m4 +++ b/config/m4/libcuda.m4 @@ -1,7 +1,7 @@ # # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): DS # diff --git a/config/mk/global/no_configure_help.mk b/config/mk/global/no_configure_help.mk index 8a82a62141..07dc04a915 100644 --- a/config/mk/global/no_configure_help.mk +++ b/config/mk/global/no_configure_help.mk @@ -15,7 +15,7 @@ $(info ) $(info More help on how to use and tune the configure script options can be found on the wiki webpage:) $(info ) - $(info http://www.yambo-code.org/wiki/index.php?title=Installation) + $(info http://www.yambo-code.eu/wiki/index.php?title=Installation) $(info ) $(info * * * Yambo Libraries * * *) $(info ) diff --git a/configure b/configure index 116ddde774..560d4c81e3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23878 h.761e598735. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23878 h.145a6c347e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23878 h.761e598735' -PACKAGE_STRING='Yambo 5.3.0 r.23878 h.761e598735' +PACKAGE_VERSION='5.3.0 r.23878 h.145a6c347e' +PACKAGE_STRING='Yambo 5.3.0 r.23878 h.145a6c347e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23878 h.761e598735 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23878 h.145a6c347e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23878 h.761e598735:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23878 h.145a6c347e:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23878 h.761e598735 +Yambo configure 5.3.0 r.23878 h.145a6c347e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23878 h.761e598735, which was +It was created by Yambo $as_me 5.3.0 r.23878 h.145a6c347e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3352,10 +3352,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" -SSUBVERSION="2" +SSUBVERSION="3" SPATCHLEVEL="0" SREVISION="23878" -SHASH="761e598735" +SHASH="145a6c347e" @@ -4970,7 +4970,7 @@ fi # # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): AF # @@ -10546,7 +10546,7 @@ url_ydb=https://github.com/yambo-code/ydb.git # # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): DS # @@ -10572,7 +10572,7 @@ url_ydb=https://github.com/yambo-code/ydb.git # # # Copyright (C) 2000-2021 the YAMBO team -# http://www.yambo-code.org +# http://www.yambo-code.eu # # Authors (see AUTHORS file for details): DS # @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23878 h.761e598735, which was +This file was extended by Yambo $as_me 5.3.0 r.23878 h.145a6c347e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23878 h.761e598735 +Yambo config.status 5.3.0 r.23878 h.145a6c347e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 053f32f52d..ba00427269 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23877 h.6f78224130, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23878 h.145a6c347e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23877" -SHASH="6f78224130" +SREVISION="23878" +SHASH="145a6c347e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From dc8636813e829ba4cbf43d89de465b6872cc521a Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 30 Nov 2024 22:32:29 +0100 Subject: [PATCH 097/112] Version 5.3.0, Revision 23879, Hash ffb5b21f0e MODIFIED * configure include/version/version.m4 stop_and_restart/STOP_now.F Bugs: - [yambo_nl] compilation fixed Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/stop_and_restart/STOP_now.F | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 560d4c81e3..df1aa8441c 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23878 h.145a6c347e. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23879 h.ffb5b21f0e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23878 h.145a6c347e' -PACKAGE_STRING='Yambo 5.3.0 r.23878 h.145a6c347e' +PACKAGE_VERSION='5.3.0 r.23879 h.ffb5b21f0e' +PACKAGE_STRING='Yambo 5.3.0 r.23879 h.ffb5b21f0e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23878 h.145a6c347e to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23879 h.ffb5b21f0e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23878 h.145a6c347e:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23879 h.ffb5b21f0e:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23878 h.145a6c347e +Yambo configure 5.3.0 r.23879 h.ffb5b21f0e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23878 h.145a6c347e, which was +It was created by Yambo $as_me 5.3.0 r.23879 h.ffb5b21f0e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23878" -SHASH="145a6c347e" +SREVISION="23879" +SHASH="ffb5b21f0e" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23878 h.145a6c347e, which was +This file was extended by Yambo $as_me 5.3.0 r.23879 h.ffb5b21f0e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23878 h.145a6c347e +Yambo config.status 5.3.0 r.23879 h.ffb5b21f0e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index ba00427269..85025c87f8 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23878 h.145a6c347e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23879 h.ffb5b21f0e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23878" -SHASH="145a6c347e" +SREVISION="23879" +SHASH="ffb5b21f0e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/stop_and_restart/STOP_now.F b/src/stop_and_restart/STOP_now.F index f8fbf744f3..0ab1b4e409 100644 --- a/src/stop_and_restart/STOP_now.F +++ b/src/stop_and_restart/STOP_now.F @@ -19,7 +19,7 @@ logical function STOP_now(DO_IT_NOW) #if defined _RT || defined _QED || defined _NL use real_time, ONLY:RT_bands #endif -#if defined NL +#if defined _NL use nl_optics, ONLY:NL_bands #endif ! From 51ccc4644247740f31fabd649d1b39979e0113c8 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Sat, 30 Nov 2024 22:42:10 +0100 Subject: [PATCH 098/112] Version 5.3.0, Revision 23880, Hash dc8636813e MODIFIED * configure include/version/version.m4 bse/K_diago_overlap_matrix.F collisions/Build_LSEX_collisions.F collisions/OSCLL_load.F common/eval_Gradient_gpu.F io/io_OSCLL.F linear_algebra/SERIAL_lin_system_gpu.F matrices/MATRIX_transpose.F modules/mod_gpu.F modules/mod_hip.F modules/mod_mklfft_gpu.F nloptics/NL_test_collisions.F parallel/PARALLEL_global_Oscillators.F wf_and_fft/fft_3d_hip.F Changes: - Fixed headers Patch sent by: Davide Sangalli --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/bse/K_diago_overlap_matrix.F | 22 +++------------------- src/collisions/Build_LSEX_collisions.F | 22 +++------------------- src/collisions/OSCLL_load.F | 22 +++------------------- src/common/eval_Gradient_gpu.F | 22 +++------------------- src/io/io_OSCLL.F | 22 +++------------------- src/linear_algebra/SERIAL_lin_system_gpu.F | 22 +++------------------- src/matrices/MATRIX_transpose.F | 22 +++------------------- src/modules/mod_gpu.F | 22 +++------------------- src/modules/mod_hip.F | 21 +++------------------ src/modules/mod_mklfft_gpu.F | 22 +++------------------- src/nloptics/NL_test_collisions.F | 21 +++------------------ src/parallel/PARALLEL_global_Oscillators.F | 22 +++------------------- src/wf_and_fft/fft_3d_hip.F | 22 +++------------------- 15 files changed, 53 insertions(+), 259 deletions(-) diff --git a/configure b/configure index df1aa8441c..a9baf658ea 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23879 h.ffb5b21f0e. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23880 h.dc8636813e. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23879 h.ffb5b21f0e' -PACKAGE_STRING='Yambo 5.3.0 r.23879 h.ffb5b21f0e' +PACKAGE_VERSION='5.3.0 r.23880 h.dc8636813e' +PACKAGE_STRING='Yambo 5.3.0 r.23880 h.dc8636813e' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23879 h.ffb5b21f0e to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23880 h.dc8636813e to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23879 h.ffb5b21f0e:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23880 h.dc8636813e:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23879 h.ffb5b21f0e +Yambo configure 5.3.0 r.23880 h.dc8636813e generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23879 h.ffb5b21f0e, which was +It was created by Yambo $as_me 5.3.0 r.23880 h.dc8636813e, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23879" -SHASH="ffb5b21f0e" +SREVISION="23880" +SHASH="dc8636813e" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23879 h.ffb5b21f0e, which was +This file was extended by Yambo $as_me 5.3.0 r.23880 h.dc8636813e, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23879 h.ffb5b21f0e +Yambo config.status 5.3.0 r.23880 h.dc8636813e configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 85025c87f8..9f237e6fef 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23879 h.ffb5b21f0e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23880 h.dc8636813e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23879" -SHASH="ffb5b21f0e" +SREVISION="23880" +SHASH="dc8636813e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/bse/K_diago_overlap_matrix.F b/src/bse/K_diago_overlap_matrix.F index d697371978..a7bf505fa3 100644 --- a/src/bse/K_diago_overlap_matrix.F +++ b/src/bse/K_diago_overlap_matrix.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2020 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2020 the YAMBO team ! ! Authors (see AUTHORS file for details): AM, MG, DS ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! subroutine K_diago_overlap_matrix(BS_V_left,BS_V_right,BS_overlap) ! use pars, ONLY:SP,cZERO,cONE diff --git a/src/collisions/Build_LSEX_collisions.F b/src/collisions/Build_LSEX_collisions.F index 12ede33754..32cae39518 100644 --- a/src/collisions/Build_LSEX_collisions.F +++ b/src/collisions/Build_LSEX_collisions.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2022 the LUMEN team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2020 the YAMBO team ! ! Authors (see AUTHORS file for details): CA ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! subroutine Build_LSEX_collisions(k,q,i_qp,COLL) ! ! This subroutine calculate the long-range part of the Screened exchange diff --git a/src/collisions/OSCLL_load.F b/src/collisions/OSCLL_load.F index 766a5add11..54848b8971 100644 --- a/src/collisions/OSCLL_load.F +++ b/src/collisions/OSCLL_load.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2020 the YAMBO team ! ! Authors (see AUTHORS file for details): CA ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! subroutine OSCLL_load(q,k) ! ! Evaluate oscillators for the Local-SEX diff --git a/src/common/eval_Gradient_gpu.F b/src/common/eval_Gradient_gpu.F index a42e7ba02a..e53ddb4f29 100644 --- a/src/common/eval_Gradient_gpu.F +++ b/src/common/eval_Gradient_gpu.F @@ -1,25 +1,9 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL ! -! Authors (see AUTHORS file for details): AM MG AF -! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. +! Copyright (C) 2016 The Yambo Team ! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +! Authors (see AUTHORS file for details): AM MG AF ! #include ! diff --git a/src/io/io_OSCLL.F b/src/io/io_OSCLL.F index 929e63d92b..dc53d1b509 100644 --- a/src/io/io_OSCLL.F +++ b/src/io/io_OSCLL.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2018 The Yambo Team ! ! Authors (see AUTHORS file for details): CA ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! integer function io_OSCLL(q,ID) ! use pars, ONLY:SP,schlen,IP_YIO diff --git a/src/linear_algebra/SERIAL_lin_system_gpu.F b/src/linear_algebra/SERIAL_lin_system_gpu.F index 357fcc9b13..dc1369bbfd 100644 --- a/src/linear_algebra/SERIAL_lin_system_gpu.F +++ b/src/linear_algebra/SERIAL_lin_system_gpu.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2018 the Yambo Team ! ! Authors (see AUTHORS file for details): AF ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! subroutine SERIAL_lin_system_gpu(n,nrhs,A_d,B_d) ! ! Solve the linear system diff --git a/src/matrices/MATRIX_transpose.F b/src/matrices/MATRIX_transpose.F index 0928145dec..d50c7e58a3 100644 --- a/src/matrices/MATRIX_transpose.F +++ b/src/matrices/MATRIX_transpose.F @@ -1,25 +1,9 @@ ! -! Copyright (C) 2000-2020 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL ! -! Authors (see AUTHORS file for details): AM -! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. +! Copyright (C) 2015 the Yambo Team ! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +! Authors (see AUTHORS file for details): AM ! subroutine MATRIX_transpose( operation, M_in, M_out ) ! diff --git a/src/modules/mod_gpu.F b/src/modules/mod_gpu.F index e49dd419f4..3ca2564215 100644 --- a/src/modules/mod_gpu.F +++ b/src/modules/mod_gpu.F @@ -1,25 +1,9 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL ! -! Authors (see AUTHORS file for details): MF, AF -! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. +! Copyright (C) 2022 the Yambo Team ! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +! Authors (see AUTHORS file for details): MF, AF ! !================ module gpu_m diff --git a/src/modules/mod_hip.F b/src/modules/mod_hip.F index 026ea712c9..1c1be1d210 100644 --- a/src/modules/mod_hip.F +++ b/src/modules/mod_hip.F @@ -1,25 +1,10 @@ ! -! Copyright (C) 2000-2023 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2022 the Yambo Team ! ! Authors (see AUTHORS file for details): AF ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. ! diff --git a/src/modules/mod_mklfft_gpu.F b/src/modules/mod_mklfft_gpu.F index bc8297eb97..56feeecc3c 100644 --- a/src/modules/mod_mklfft_gpu.F +++ b/src/modules/mod_mklfft_gpu.F @@ -1,25 +1,9 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL ! -! Authors (see AUTHORS file for details): AF +! Copyright (C) 2021 the YAMBO team ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +! Authors (see AUTHORS file for details): AF ! #if defined _OPENMP_GPU && defined _MKLGPU !===================================================================== diff --git a/src/nloptics/NL_test_collisions.F b/src/nloptics/NL_test_collisions.F index c1a8b93a24..56f0be55f7 100644 --- a/src/nloptics/NL_test_collisions.F +++ b/src/nloptics/NL_test_collisions.F @@ -1,25 +1,10 @@ ! -! Copyright (C) 2000-2017 the LUMEN team +! License-Identifier: GPL +! +! Copyright (C) 2019 the Yambo Team ! ! Authors (see AUTHORS file for details): MG CA ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! subroutine NL_test_collisions(k,q) ! ! Test-collisions built on the fly from V/W diff --git a/src/parallel/PARALLEL_global_Oscillators.F b/src/parallel/PARALLEL_global_Oscillators.F index f954228ee5..99c0ab7ff1 100644 --- a/src/parallel/PARALLEL_global_Oscillators.F +++ b/src/parallel/PARALLEL_global_Oscillators.F @@ -1,25 +1,9 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL ! -! Authors (see AUTHORS file for details): CA MG DS -! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. +! Copyright (C) 2020 the YAMBO team ! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. +! Authors (see AUTHORS file for details): CA MG DS ! subroutine PARALLEL_global_Oscillators(E,Xk,q) ! diff --git a/src/wf_and_fft/fft_3d_hip.F b/src/wf_and_fft/fft_3d_hip.F index 0ccb368c69..8893f7b002 100644 --- a/src/wf_and_fft/fft_3d_hip.F +++ b/src/wf_and_fft/fft_3d_hip.F @@ -1,26 +1,10 @@ ! -! Copyright (C) 2000-2022 the YAMBO team -! http://www.yambo-code.org +! License-Identifier: GPL +! +! Copyright (C) 2022 the YAMBO team ! ! Authors (see AUTHORS file for details): AF ! -! This file is distributed under the terms of the GNU -! General Public License. You can redistribute it and/or -! modify it under the terms of the GNU General Public -! License as published by the Free Software Foundation; -! either version 2, or (at your option) any later version. -! -! This program is distributed in the hope that it will -! be useful, but WITHOUT ANY WARRANTY; without even the -! implied warranty of MERCHANTABILITY or FITNESS FOR A -! PARTICULAR PURPOSE. See the GNU General Public License -! for more details. -! -! You should have received a copy of the GNU General Public -! License along with this program; if not, write to the Free -! Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, -! MA 02111-1307, USA or visit http://www.gnu.org/copyleft/gpl.txt. -! !===================================================================== ! Driver to 3D FFT: FFTW, Goedecker ! From ca711d2b0be6765062d80e870c5a79a8803a19ce Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Mon, 2 Dec 2024 11:03:38 +0100 Subject: [PATCH 099/112] Version 5.3.0, Revision 23881, Hash 51ccc4644 MODIFIED * configure include/version/version.m4 common/LEVELS_respect_degenerations.F interface/INIT_activate.F interface/INIT_load.F Bugs: - Additions: -Changed behaviour default is the old one Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_respect_degenerations.F | 20 ++++++++++---------- src/interface/INIT_activate.F | 2 +- src/interface/INIT_load.F | 2 +- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/configure b/configure index a9baf658ea..4ae38df2be 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23880 h.dc8636813e. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23881 h.51ccc4644. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23880 h.dc8636813e' -PACKAGE_STRING='Yambo 5.3.0 r.23880 h.dc8636813e' +PACKAGE_VERSION='5.3.0 r.23881 h.51ccc4644' +PACKAGE_STRING='Yambo 5.3.0 r.23881 h.51ccc4644' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23880 h.dc8636813e to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23881 h.51ccc4644 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23880 h.dc8636813e:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23881 h.51ccc4644:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23880 h.dc8636813e +Yambo configure 5.3.0 r.23881 h.51ccc4644 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23880 h.dc8636813e, which was +It was created by Yambo $as_me 5.3.0 r.23881 h.51ccc4644, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23880" -SHASH="dc8636813e" +SREVISION="23881" +SHASH="51ccc4644" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23880 h.dc8636813e, which was +This file was extended by Yambo $as_me 5.3.0 r.23881 h.51ccc4644, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23880 h.dc8636813e +Yambo config.status 5.3.0 r.23881 h.51ccc4644 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 9f237e6fef..c9a238bc2d 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23880 h.dc8636813e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23881 h.51ccc4644, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23880" -SHASH="dc8636813e" +SREVISION="23881" +SHASH="51ccc4644" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index 23bcfb05a0..d90f231b93 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -37,13 +37,13 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) ! Work Space ! integer :: B_user(2),B_fixed(2),i_f - logical :: l_USER_fields(16),SKIP_it + logical :: l_USER_fields(16),DegFix character(2) :: X_str ! ! By defaulft I assume that the degeneration is lifted ! but if the flag SkipDegFix is activated this operation is not done ! - call parser('SkipDegFix',SKIP_it) + call parser('CheckDegFix',DegFix) ! ! Check for USER definitions !--------------------------- @@ -62,44 +62,44 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) if (i_f==3) X_str="Xd" if (i_f==4) X_str="Xp" if (i_f==5) X_str="Xm" - call fix_and_message(X_str,.not.SKIP_it,X(i_f)%ib) + call fix_and_message(X_str,DegFix,X(i_f)%ib) endif if (i_f==6) then call levels_check(E,Dip%ib) - call fix_and_message("Dipoles",.not.SKIP_it,Dip%ib) + call fix_and_message("Dipoles",DegFix,Dip%ib) endif #if defined _RT || defined _NL if (i_f==8) then call levels_check(E,RT_bands) - call fix_and_message("Real-Time",.not.SKIP_it,RT_bands) + call fix_and_message("Real-Time",DegFix,RT_bands) endif #endif if (i_f==7) then call levels_check(E,BS_bands) - call fix_and_message("BS",.not.SKIP_it,BS_bands) + call fix_and_message("BS",DegFix,BS_bands) endif #if defined _SC if (i_f==7) then call levels_check(E,SC_bands) - call fix_and_message("SC",.not.SKIP_it,SC_bands) + call fix_and_message("SC",DegFix,SC_bands) endif #endif #if defined _NL if (i_f==10) then call levels_check(E,NL_bands) - call fix_and_message("NL",.not.SKIP_it,NL_bands) + call fix_and_message("NL",DegFix,NL_bands) endif #endif #if defined _SC || defined _RT || defined _QED || defined _NL if (i_f==11) then call levels_check(E,COLL_bands) - call fix_and_message("COLLISIONS",.not.SKIP_it,COLL_bands) + call fix_and_message("COLLISIONS",DegFix,COLL_bands) endif #endif #if defined _QED if (i_f==12) then call levels_check(E,QP_n_G_bands) - call fix_and_message("QED",.not.SKIP_it,QP_n_G_bands) + call fix_and_message("QED",DegFix,QP_n_G_bands) endif #endif ! diff --git a/src/interface/INIT_activate.F b/src/interface/INIT_activate.F index 7ef8276300..e1c7da57f3 100644 --- a/src/interface/INIT_activate.F +++ b/src/interface/INIT_activate.F @@ -42,7 +42,7 @@ subroutine INIT_activate() ! !Common ! - call initactivate(1,'StdoHash Nelectro ElecTemp BoseTemp OccTresh NLogCPUs DBsIOoff DBsFRAGpm EvalMagn MEM_tresh') + call initactivate(1,'StdoHash Nelectro ElecTemp BoseTemp OccTresh NLogCPUs DBsIOoff DBsFRAGpm EvalMagn MEM_tresh DegFix') ! !FFT ! diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index 7072d7cfd7..e1e756a491 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -207,7 +207,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) #endif call it('f',defs,'WFbuffIO','[IO] Wave-functions buffered I/O',verb_level=V_io) call it('f',defs,'NoDiagSC','New setup for non-diagonal supercells',verb_level=V_general) - call it('f',defs,'SkipDegFix','Do not force the code to impose the energy levels to respect their degeneracy',verb_level=V_general) + call it('f',defs,'DegFix','Force the code to impose the energy levels to respect their degeneracy',verb_level=V_general) ! ! Parallel Setup ! From 4d20cdbf0239d2bf5cc50279d78deabd52b68081 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Mon, 2 Dec 2024 11:04:32 +0100 Subject: [PATCH 100/112] Version 5.3.0, Revision 23882, Hash ca711d2b0 MODIFIED * configure include/version/version.m4 interface/INIT_load.F Bugs: - Additions: -Flag present in all inputs Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/interface/INIT_load.F | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 4ae38df2be..70f33bebd8 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23881 h.51ccc4644. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23882 h.ca711d2b0. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23881 h.51ccc4644' -PACKAGE_STRING='Yambo 5.3.0 r.23881 h.51ccc4644' +PACKAGE_VERSION='5.3.0 r.23882 h.ca711d2b0' +PACKAGE_STRING='Yambo 5.3.0 r.23882 h.ca711d2b0' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23881 h.51ccc4644 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23882 h.ca711d2b0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23881 h.51ccc4644:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23882 h.ca711d2b0:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23881 h.51ccc4644 +Yambo configure 5.3.0 r.23882 h.ca711d2b0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23881 h.51ccc4644, which was +It was created by Yambo $as_me 5.3.0 r.23882 h.ca711d2b0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23881" -SHASH="51ccc4644" +SREVISION="23882" +SHASH="ca711d2b0" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23881 h.51ccc4644, which was +This file was extended by Yambo $as_me 5.3.0 r.23882 h.ca711d2b0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23881 h.51ccc4644 +Yambo config.status 5.3.0 r.23882 h.ca711d2b0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index c9a238bc2d..c31b5a9078 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23881 h.51ccc4644, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23882 h.ca711d2b0, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23881" -SHASH="51ccc4644" +SREVISION="23882" +SHASH="ca711d2b0" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/interface/INIT_load.F b/src/interface/INIT_load.F index e1e756a491..acf17ae301 100644 --- a/src/interface/INIT_load.F +++ b/src/interface/INIT_load.F @@ -207,7 +207,7 @@ subroutine INIT_load(defs,en,q,k,X,Xw,Dip) #endif call it('f',defs,'WFbuffIO','[IO] Wave-functions buffered I/O',verb_level=V_io) call it('f',defs,'NoDiagSC','New setup for non-diagonal supercells',verb_level=V_general) - call it('f',defs,'DegFix','Force the code to impose the energy levels to respect their degeneracy',verb_level=V_general) + call it('f',defs,'DegFix','Force the code to impose the energy levels to respect their degeneracy') ! ! Parallel Setup ! From afb82f3ac2316686251fd37677b7a731345c463a Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 4 Dec 2024 14:09:32 +0100 Subject: [PATCH 101/112] Version 5.3.0, Revision 23883, Hash 4d20cdbf02 MODIFIED * Makefile configure include/version/version.m4 Bugs: - [compilation] Following user suggestion from #160 Patch sent by: Davide Sangalli --- Makefile | 20 ++++++++++---------- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 205738176b..67dfc3d26d 100644 --- a/Makefile +++ b/Makefile @@ -33,25 +33,25 @@ help: changelog: ./sbin/gitchangelog.py > ChangeLog interfaces: - @for target in $(INTERFCS) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(INTERFCS) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done gpl: - @for target in $(GPL) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(GPL) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done core: - @for target in $(CORE) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(CORE) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done ph-project: - @for target in $(PH_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(PH_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done sc-project: - @for target in $(SC_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(SC_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done mag-project: - @for target in $(MAG_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(MAG_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done rt-project: - @for target in $(RT_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(RT_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done nl-project: - @for target in $(NL_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(NL_PROJ) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done main: - @for target in $(MAIN) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(MAIN) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done all: - @for target in $(ALL) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; break;fi ; done + @for target in $(ALL) ; do $(MAKE) $(MAKEFLAGS) $$target; if test ! -f "$(bindir)/$$target"; then echo "$$target build failed"; exit 1;fi ; done ext-libs: @for target in $(EXT_LIBS) ; do if ! test "$$target" = Ydriver; then $(MAKE) $(MAKEFLAGS) $$target; fi; done int-libs: diff --git a/configure b/configure index 70f33bebd8..87a0ec5fa5 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23882 h.ca711d2b0. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23883 h.4d20cdbf02. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23882 h.ca711d2b0' -PACKAGE_STRING='Yambo 5.3.0 r.23882 h.ca711d2b0' +PACKAGE_VERSION='5.3.0 r.23883 h.4d20cdbf02' +PACKAGE_STRING='Yambo 5.3.0 r.23883 h.4d20cdbf02' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23882 h.ca711d2b0 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23883 h.4d20cdbf02 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23882 h.ca711d2b0:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23883 h.4d20cdbf02:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23882 h.ca711d2b0 +Yambo configure 5.3.0 r.23883 h.4d20cdbf02 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23882 h.ca711d2b0, which was +It was created by Yambo $as_me 5.3.0 r.23883 h.4d20cdbf02, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23882" -SHASH="ca711d2b0" +SREVISION="23883" +SHASH="4d20cdbf02" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23882 h.ca711d2b0, which was +This file was extended by Yambo $as_me 5.3.0 r.23883 h.4d20cdbf02, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23882 h.ca711d2b0 +Yambo config.status 5.3.0 r.23883 h.4d20cdbf02 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index c31b5a9078..309092ef90 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23882 h.ca711d2b0, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23883 h.4d20cdbf02, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23882" -SHASH="ca711d2b0" +SREVISION="23883" +SHASH="4d20cdbf02" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 26ead102d4c914e92fb248e17555887a157f2b5b Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Thu, 5 Dec 2024 21:04:23 +0100 Subject: [PATCH 102/112] Version 5.3.0, Revision 23872, Hash 27b840107a MODIFIED * configure include/version/version.m4 lib/archive/package.list NEW * Changes: - slepc and petsc versione upgraded to 22.2 Patch sent by: Davide Sangalli --- configure | 14 ++++++++++---- include/version/version.m4 | 4 ++-- lib/archive/package.list | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/configure b/configure index a27a3cba25..63e044434a 100755 --- a/configure +++ b/configure @@ -696,6 +696,8 @@ DEVXLIB_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -3354,8 +3356,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23800" -SHASH="7db510283b" +SREVISION="23872" +SHASH="27b840107a" @@ -16684,19 +16686,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -16790,6 +16794,8 @@ fi + + # diff --git a/include/version/version.m4 b/include/version/version.m4 index b249e9dbf1..fc537b7cd0 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -2,8 +2,8 @@ AC_INIT(Yambo, 5.3.0 r.23795 h.87d0217fe1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23800" -SHASH="7db510283b" +SREVISION="23872" +SHASH="27b840107a" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/archive/package.list b/lib/archive/package.list index e5e0a1c1dd..b99339a696 100644 --- a/lib/archive/package.list +++ b/lib/archive/package.list @@ -33,8 +33,8 @@ version_libxc=5.2.3 version_lapack=3.12.0 version_blacs=missing version_scalapack=2.2.1 -version_slepc=3.22.1 -version_petsc=3.22.1 +version_slepc=3.22.2 +version_petsc=3.22.2 version_fftw=3.3.10 version_fftqe=missing version_yaml=0.2.2 From 3c4af63afd17c716f2aa9c31d8492e2b6b2c0e0f Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Fri, 6 Dec 2024 15:46:41 +0100 Subject: [PATCH 103/112] Version 5.3.0, Revision 23884, Hash afb82f3ac MODIFIED * configure include/version/version.m4 common/LEVELS_respect_degenerations.F Bugs: -Bug reading flag Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/common/LEVELS_respect_degenerations.F | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 87a0ec5fa5..52c9588cd6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23883 h.4d20cdbf02. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23884 h.afb82f3ac. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23883 h.4d20cdbf02' -PACKAGE_STRING='Yambo 5.3.0 r.23883 h.4d20cdbf02' +PACKAGE_VERSION='5.3.0 r.23884 h.afb82f3ac' +PACKAGE_STRING='Yambo 5.3.0 r.23884 h.afb82f3ac' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23883 h.4d20cdbf02 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23884 h.afb82f3ac to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23883 h.4d20cdbf02:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23884 h.afb82f3ac:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23883 h.4d20cdbf02 +Yambo configure 5.3.0 r.23884 h.afb82f3ac generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23883 h.4d20cdbf02, which was +It was created by Yambo $as_me 5.3.0 r.23884 h.afb82f3ac, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23883" -SHASH="4d20cdbf02" +SREVISION="23884" +SHASH="afb82f3ac" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23883 h.4d20cdbf02, which was +This file was extended by Yambo $as_me 5.3.0 r.23884 h.afb82f3ac, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23883 h.4d20cdbf02 +Yambo config.status 5.3.0 r.23884 h.afb82f3ac configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 309092ef90..cd7dc8047b 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23883 h.4d20cdbf02, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23884 h.afb82f3ac, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23883" -SHASH="4d20cdbf02" +SREVISION="23884" +SHASH="afb82f3ac" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/LEVELS_respect_degenerations.F b/src/common/LEVELS_respect_degenerations.F index d90f231b93..daff75a6f3 100644 --- a/src/common/LEVELS_respect_degenerations.F +++ b/src/common/LEVELS_respect_degenerations.F @@ -43,7 +43,7 @@ subroutine LEVELS_respect_degenerations(E,Dip,X) ! By defaulft I assume that the degeneration is lifted ! but if the flag SkipDegFix is activated this operation is not done ! - call parser('CheckDegFix',DegFix) + call parser('DegFix',DegFix) ! ! Check for USER definitions !--------------------------- From 4679cafa1927697258a66c2413a9250577496112 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Fri, 6 Dec 2024 15:47:20 +0100 Subject: [PATCH 104/112] Version 5.3.0, Revision 23885, Hash 3c4af63af MODIFIED * configure include/version/version.m4 Bugs: - Additions: -configure regenerated Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 52c9588cd6..e213490ab7 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23884 h.afb82f3ac. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23886 h.3c4af63af. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23884 h.afb82f3ac' -PACKAGE_STRING='Yambo 5.3.0 r.23884 h.afb82f3ac' +PACKAGE_VERSION='5.3.0 r.23886 h.3c4af63af' +PACKAGE_STRING='Yambo 5.3.0 r.23886 h.3c4af63af' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23884 h.afb82f3ac to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23886 h.3c4af63af to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23884 h.afb82f3ac:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23886 h.3c4af63af:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23884 h.afb82f3ac +Yambo configure 5.3.0 r.23886 h.3c4af63af generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23884 h.afb82f3ac, which was +It was created by Yambo $as_me 5.3.0 r.23886 h.3c4af63af, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23884" -SHASH="afb82f3ac" +SREVISION="23886" +SHASH="3c4af63af" @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23884 h.afb82f3ac, which was +This file was extended by Yambo $as_me 5.3.0 r.23886 h.3c4af63af, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23884 h.afb82f3ac +Yambo config.status 5.3.0 r.23886 h.3c4af63af configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index cd7dc8047b..6339c8fabc 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23884 h.afb82f3ac, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23886 h.3c4af63af, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23884" -SHASH="afb82f3ac" +SREVISION="23886" +SHASH="3c4af63af" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From d7cf4a00d32f9d56600323dc8c7a89ff3dde8a7e Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Mon, 9 Dec 2024 12:21:27 +0100 Subject: [PATCH 105/112] Version 5.3.0, Revision 23886, Hash 4679cafa1 MODIFIED * config/m4/acx_fortran_flags.m4 config/m4/acx_fpp.m4 config/m4/acx_mpi.m4 configure include/version/version.m4 Bugs: - Additions: -Configure updated to Intel OneAPI 2025 Changes: - Patch sent by: Claudio Attaccalite --- config/m4/acx_fortran_flags.m4 | 8 +++--- config/m4/acx_fpp.m4 | 2 +- config/m4/acx_mpi.m4 | 14 +++++------ configure | 46 +++++++++++++++++----------------- include/version/version.m4 | 6 ++--- 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/config/m4/acx_fortran_flags.m4 b/config/m4/acx_fortran_flags.m4 index ea5cc54faf..c1abc095a6 100644 --- a/config/m4/acx_fortran_flags.m4 +++ b/config/m4/acx_fortran_flags.m4 @@ -78,7 +78,7 @@ i?86*linux*) NETCDFFLAGS="-DgFortran" DEBUG_FLAGS="-Og -g -Wall -pedantic -fbounds-check -ffpe-trap=invalid,zero,overflow" ;; - *ifort*) + *ifort* | *ifx* ) OMPFLAGS="-openmp" NETCDFFLAGS="-DpgiFortran" CPU_FLAG="" @@ -88,7 +88,7 @@ i?86*linux*) CPU_FLAG="-xHost" #CPU_FLAG=" " ;; - *2021* ) + *2021* | *2022* | *2023* | *2024* | *2025* ) CPU_FLAG=" " OMPFLAGS="-qopenmp -parallel" FCMFLAG="-nofor-main" @@ -329,7 +329,7 @@ aarch*linux* | arm*linux* ) OMPFLAGS="-openmp" NETCDFFLAGS="-DpgiFortran" ;; - *ifort*) + *ifort* | *ifx* ) OMPFLAGS="-openmp" CPU_FLAG="" FCMFLAG="-nofor_main" @@ -338,7 +338,7 @@ aarch*linux* | arm*linux* ) #CPU_FLAG="-xHost" CPU_FLAG=" " ;; - *2020* | *2021* ) + *2020* | *2021* | *2022* | *2023* | *2024* | *2025* ) CPU_FLAG=" " OMPFLAGS="-qopenmp -parallel" FCMFLAG="-nofor-main" diff --git a/config/m4/acx_fpp.m4 b/config/m4/acx_fpp.m4 index d98477ce4a..a497e40653 100644 --- a/config/m4/acx_fpp.m4 +++ b/config/m4/acx_fpp.m4 @@ -14,7 +14,7 @@ case "${FC}" in # # does not work properly # - *ifort*) + *ifort* | *ifx* ) if test -z "$FPP"; then FPP="fpp -free -P"; fi ;; *gfortran | *g95) diff --git a/config/m4/acx_mpi.m4 b/config/m4/acx_mpi.m4 index df1cf72dfb..ac408920bd 100644 --- a/config/m4/acx_mpi.m4 +++ b/config/m4/acx_mpi.m4 @@ -16,11 +16,11 @@ AC_LANG_CASE([C], [ AC_REQUIRE([AC_PROG_CC]) AC_ARG_VAR(MPICC,[Parallel C compiler command]) if test x"$MPICC" = "x" ; then - AC_CHECK_PROGS(MPICC_test,$MPICC mpipgicc mpiicc mpicc hcc mpcc mpcc_r mpxlc cmpicc, $CC) + AC_CHECK_PROGS(MPICC_test,$MPICC mpipgicc mpiicc mpicc mpiicpx hcc mpcc mpcc_r mpxlc cmpicc, $CC) else AC_CHECK_FILES($MPICC, [MPICC_test=$MPICC], - [AC_CHECK_PROGS(MPICC_test,$MPICC mpipgicc mpiicc mpicc hcc mpcc mpcc_r mpxlc cmpicc, $CC)]) + [AC_CHECK_PROGS(MPICC_test,$MPICC mpipgicc mpiicc mpicc mpiicpx hcc mpcc mpcc_r mpxlc cmpicc, $CC)]) fi MPICC=$MPICC_test CC=$MPICC_test @@ -38,13 +38,13 @@ AC_LANG_CASE([C], [ if ! test x"$MPIF77" = "x" ; then AC_CHECK_FILE($MPIF77, [MPIF77_test=$MPIF77], - [AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77)]) + [AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77)]) elif ! test x"$MPIFC" = "x" ; then AC_CHECK_FILE($MPIFC, [MPIF77_test=$MPIFC], - [AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77)]) + [AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77)]) else - AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77) + AC_CHECK_PROGS(MPIF77_test,$MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77) fi MPIF77=$MPIF77_test F77=$MPIF77_test @@ -53,11 +53,11 @@ AC_LANG_CASE([C], [ AC_REQUIRE([AC_PROG_FC]) AC_ARG_VAR(MPIFC,[Parallel Fortran compiler command]) if test x"$MPIFC" = "x" ; then - AC_CHECK_PROGS(MPIFC_test,$MPIFC mpipgifort mpiifort mpifort mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r, $FC) + AC_CHECK_PROGS(MPIFC_test,$MPIFC mpipgifort mpiifort mpifort mpif90 mpiifx mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r, $FC) else AC_CHECK_FILE($MPIFC, [MPIFC_test=$MPIFC], - [AC_CHECK_PROGS(MPIFC_test,$MPIFC mpipgifort mpiifort mpifort mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r, $FC)]) + [AC_CHECK_PROGS(MPIFC_test,$MPIFC mpipgifort mpiifort mpifort mpiifx mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r, $FC)]) fi MPIFC=$MPIFC_test FC=$MPIFC_test diff --git a/configure b/configure index e213490ab7..ee4443f21a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23886 h.3c4af63af. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23887 h.4679cafa1. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23886 h.3c4af63af' -PACKAGE_STRING='Yambo 5.3.0 r.23886 h.3c4af63af' +PACKAGE_VERSION='5.3.0 r.23887 h.4679cafa1' +PACKAGE_STRING='Yambo 5.3.0 r.23887 h.4679cafa1' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23886 h.3c4af63af to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23887 h.4679cafa1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23886 h.3c4af63af:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23887 h.4679cafa1:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23886 h.3c4af63af +Yambo configure 5.3.0 r.23887 h.4679cafa1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23886 h.3c4af63af, which was +It was created by Yambo $as_me 5.3.0 r.23887 h.4679cafa1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23886" -SHASH="3c4af63af" +SREVISION="23887" +SHASH="4679cafa1" @@ -7304,7 +7304,7 @@ i?86*linux*) NETCDFFLAGS="-DgFortran" DEBUG_FLAGS="-Og -g -Wall -pedantic -fbounds-check -ffpe-trap=invalid,zero,overflow" ;; - *ifort*) + *ifort* | *ifx* ) OMPFLAGS="-openmp" NETCDFFLAGS="-DpgiFortran" CPU_FLAG="" @@ -7314,7 +7314,7 @@ i?86*linux*) CPU_FLAG="-xHost" #CPU_FLAG=" " ;; - *2021* ) + *2021* | *2022* | *2023* | *2024* | *2025* ) CPU_FLAG=" " OMPFLAGS="-qopenmp -parallel" FCMFLAG="-nofor-main" @@ -7555,7 +7555,7 @@ aarch*linux* | arm*linux* ) OMPFLAGS="-openmp" NETCDFFLAGS="-DpgiFortran" ;; - *ifort*) + *ifort* | *ifx* ) OMPFLAGS="-openmp" CPU_FLAG="" FCMFLAG="-nofor_main" @@ -7564,7 +7564,7 @@ aarch*linux* | arm*linux* ) #CPU_FLAG="-xHost" CPU_FLAG=" " ;; - *2020* | *2021* ) + *2020* | *2021* | *2022* | *2023* | *2024* | *2025* ) CPU_FLAG=" " OMPFLAGS="-qopenmp -parallel" FCMFLAG="-nofor-main" @@ -9030,7 +9030,7 @@ case "${FC}" in # # does not work properly # - *ifort*) + *ifort* | *ifx* ) if test -z "$FPP"; then FPP="fpp -free -P"; fi ;; *gfortran | *g95) @@ -9420,7 +9420,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test x"$MPIFC" = "x" ; then - for ac_prog in $MPIFC mpipgifort mpiifort mpifort mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r + for ac_prog in $MPIFC mpipgifort mpiifort mpifort mpif90 mpiifx mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -9491,7 +9491,7 @@ if eval test \"x\$"$as_ac_File"\" = x"yes" then : MPIFC_test=$MPIFC else $as_nop - for ac_prog in $MPIFC mpipgifort mpiifort mpifort mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r + for ac_prog in $MPIFC mpipgifort mpiifort mpifort mpiifx mpif90 mpxlf90 mpxlf mpf90 mpxlf95 mpxlf_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -9729,7 +9729,7 @@ if eval test \"x\$"$as_ac_File"\" = x"yes" then : MPIF77_test=$MPIF77 else $as_nop - for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c + for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -9802,7 +9802,7 @@ if eval test \"x\$"$as_ac_File"\" = x"yes" then : MPIF77_test=$MPIFC else $as_nop - for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c + for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -9853,7 +9853,7 @@ test -n "$MPIF77_test" || MPIF77_test="$F77" fi else - for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c + for ac_prog in $MPIF77 $MPIFC mpipgifort mpiifort mpifort mpiifx mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -9996,7 +9996,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$MPICC" = "x" ; then - for ac_prog in $MPICC mpipgicc mpiicc mpicc hcc mpcc mpcc_r mpxlc cmpicc + for ac_prog in $MPICC mpipgicc mpiicc mpicc mpiicpx hcc mpcc mpcc_r mpxlc cmpicc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -10071,7 +10071,7 @@ cat >>confdefs.h <<_ACEOF _ACEOF MPICC_test=$MPICC else $as_nop - for ac_prog in $MPICC mpipgicc mpiicc mpicc hcc mpcc mpcc_r mpxlc cmpicc + for ac_prog in $MPICC mpipgicc mpiicc mpicc mpiicpx hcc mpcc mpcc_r mpxlc cmpicc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -17780,7 +17780,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23886 h.3c4af63af, which was +This file was extended by Yambo $as_me 5.3.0 r.23887 h.4679cafa1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17844,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23886 h.3c4af63af +Yambo config.status 5.3.0 r.23887 h.4679cafa1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 6339c8fabc..e1e8567ccf 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23886 h.3c4af63af, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23887 h.4679cafa1, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23886" -SHASH="3c4af63af" +SREVISION="23887" +SHASH="4679cafa1" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 8803efb3149a2a8064be5536b02951049f9f5fdf Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Mon, 9 Dec 2024 12:28:12 +0100 Subject: [PATCH 106/112] Version 5.3.0, Revision 23887, Hash d7cf4a00d MODIFIED * config/m4/acx_fortran_flags.m4 config/m4/acx_get_fc_kind.m4 configure include/version/version.m4 Bugs: -Fixed configure for intel 2025 Additions: - Changes: - Patch sent by: Claudio Attaccalite --- config/m4/acx_fortran_flags.m4 | 8 +++---- config/m4/acx_get_fc_kind.m4 | 14 +++++++---- configure | 44 ++++++++++++++++++---------------- include/version/version.m4 | 6 ++--- 4 files changed, 40 insertions(+), 32 deletions(-) diff --git a/config/m4/acx_fortran_flags.m4 b/config/m4/acx_fortran_flags.m4 index c1abc095a6..54823efcd5 100644 --- a/config/m4/acx_fortran_flags.m4 +++ b/config/m4/acx_fortran_flags.m4 @@ -104,7 +104,7 @@ i?86*linux*) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip $CPU_FLAG" + SYSFLAGS="-assume bscc -O3 -g $CPU_FLAG" FUFLAGS="-assume bscc -O0 $CPU_FLAG" DEBUG_FLAGS="-check all -CB -traceback -check bound" ;; @@ -166,7 +166,7 @@ i?86*linux*) CPU_FLAG="-mtune=pentium4" ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" FCMFLAG="-nofor_main" OMPFLAGS="-openmp" @@ -243,7 +243,7 @@ ia64*linux* ) CPU_FLAG="" ;; esac - SYSFLAGS="-assume bscc -O2 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O2 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" FCMFLAG="-nofor_main" OMPFLAGS="-openmp" @@ -361,7 +361,7 @@ aarch*linux* | arm*linux* ) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" NETCDFFLAGS="-DpgiFortran" DEBUG_FLAGS="-CB -traceback -debug full" diff --git a/config/m4/acx_get_fc_kind.m4 b/config/m4/acx_get_fc_kind.m4 index 55fb539586..b337d15845 100644 --- a/config/m4/acx_get_fc_kind.m4 +++ b/config/m4/acx_get_fc_kind.m4 @@ -35,11 +35,7 @@ case "${FC}" in FCKIND="intel" FCVERSION=`$FC -v 2>&1` ;; - *ifx*) - FCKIND="intel" - FCVERSION=`$FC -v 2>&1` - ;; - *ifort*) + *ifort* | *ifx* ) FCKIND="intel" FCVERSION=`$FC -v 2>&1` $FC -v >& ver_ @@ -56,6 +52,10 @@ case "${FC}" in VER_18=`grep 18. ver_ | wc -l` VER_19=`grep 19. ver_ | wc -l` VER_2021=`grep 2021. ver_ | wc -l` + VER_2022=`grep 2022. ver_ | wc -l` + VER_2023=`grep 2023. ver_ | wc -l` + VER_2024=`grep 2024. ver_ | wc -l` + VER_2025=`grep 2025. ver_ | wc -l` if ! test "$VER_8" = "0"; then INTELVERSION="8" ; fi if ! test "$VER_9" = "0"; then INTELVERSION="9" ; fi if ! test "$VER_10" = "0"; then INTELVERSION="10" ; fi @@ -69,6 +69,10 @@ case "${FC}" in if ! test "$VER_18" = "0"; then INTELVERSION="18" ; fi if ! test "$VER_19" = "0"; then INTELVERSION="19" ; fi if ! test "$VER_2021" = "0"; then INTELVERSION="2021" ; fi + if ! test "$VER_2022" = "0"; then INTELVERSION="2022" ; fi + if ! test "$VER_2023" = "0"; then INTELVERSION="2023" ; fi + if ! test "$VER_2024" = "0"; then INTELVERSION="2024" ; fi + if ! test "$VER_2025" = "0"; then INTELVERSION="2025" ; fi rm -f ver_ ;; *) diff --git a/configure b/configure index ee4443f21a..93c06aa840 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23887 h.4679cafa1. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23888 h.d7cf4a00d. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23887 h.4679cafa1' -PACKAGE_STRING='Yambo 5.3.0 r.23887 h.4679cafa1' +PACKAGE_VERSION='5.3.0 r.23888 h.d7cf4a00d' +PACKAGE_STRING='Yambo 5.3.0 r.23888 h.d7cf4a00d' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23887 h.4679cafa1 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23888 h.d7cf4a00d to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23887 h.4679cafa1:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23888 h.d7cf4a00d:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23887 h.4679cafa1 +Yambo configure 5.3.0 r.23888 h.d7cf4a00d generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23887 h.4679cafa1, which was +It was created by Yambo $as_me 5.3.0 r.23888 h.d7cf4a00d, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23887" -SHASH="4679cafa1" +SREVISION="23888" +SHASH="d7cf4a00d" @@ -7176,11 +7176,7 @@ case "${FC}" in FCKIND="intel" FCVERSION=`$FC -v 2>&1` ;; - *ifx*) - FCKIND="intel" - FCVERSION=`$FC -v 2>&1` - ;; - *ifort*) + *ifort* | *ifx* ) FCKIND="intel" FCVERSION=`$FC -v 2>&1` $FC -v >& ver_ @@ -7197,6 +7193,10 @@ case "${FC}" in VER_18=`grep 18. ver_ | wc -l` VER_19=`grep 19. ver_ | wc -l` VER_2021=`grep 2021. ver_ | wc -l` + VER_2022=`grep 2022. ver_ | wc -l` + VER_2023=`grep 2023. ver_ | wc -l` + VER_2024=`grep 2024. ver_ | wc -l` + VER_2025=`grep 2025. ver_ | wc -l` if ! test "$VER_8" = "0"; then INTELVERSION="8" ; fi if ! test "$VER_9" = "0"; then INTELVERSION="9" ; fi if ! test "$VER_10" = "0"; then INTELVERSION="10" ; fi @@ -7210,6 +7210,10 @@ case "${FC}" in if ! test "$VER_18" = "0"; then INTELVERSION="18" ; fi if ! test "$VER_19" = "0"; then INTELVERSION="19" ; fi if ! test "$VER_2021" = "0"; then INTELVERSION="2021" ; fi + if ! test "$VER_2022" = "0"; then INTELVERSION="2022" ; fi + if ! test "$VER_2023" = "0"; then INTELVERSION="2023" ; fi + if ! test "$VER_2024" = "0"; then INTELVERSION="2024" ; fi + if ! test "$VER_2025" = "0"; then INTELVERSION="2025" ; fi rm -f ver_ ;; *) @@ -7330,7 +7334,7 @@ i?86*linux*) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip $CPU_FLAG" + SYSFLAGS="-assume bscc -O3 -g $CPU_FLAG" FUFLAGS="-assume bscc -O0 $CPU_FLAG" DEBUG_FLAGS="-check all -CB -traceback -check bound" ;; @@ -7392,7 +7396,7 @@ i?86*linux*) CPU_FLAG="-mtune=pentium4" ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" FCMFLAG="-nofor_main" OMPFLAGS="-openmp" @@ -7469,7 +7473,7 @@ ia64*linux* ) CPU_FLAG="" ;; esac - SYSFLAGS="-assume bscc -O2 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O2 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" FCMFLAG="-nofor_main" OMPFLAGS="-openmp" @@ -7587,7 +7591,7 @@ aarch*linux* | arm*linux* ) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g -ip ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" NETCDFFLAGS="-DpgiFortran" DEBUG_FLAGS="-CB -traceback -debug full" @@ -17780,7 +17784,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23887 h.4679cafa1, which was +This file was extended by Yambo $as_me 5.3.0 r.23888 h.d7cf4a00d, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17848,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23887 h.4679cafa1 +Yambo config.status 5.3.0 r.23888 h.d7cf4a00d configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index e1e8567ccf..fc1445c228 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23887 h.4679cafa1, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23888 h.d7cf4a00d, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23887" -SHASH="4679cafa1" +SREVISION="23888" +SHASH="d7cf4a00d" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) From 482cde76e83f1c5cc2278e7abb1e10604446b3eb Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Mon, 9 Dec 2024 14:07:28 +0100 Subject: [PATCH 107/112] Version 5.3.0, Revision 23888, Hash 8803efb31 MODIFIED * configure include/version/version.m4 qp/QP_real_axis.F Bugs: -Fixed bug in real-axis GW with Ifort... tests in progress Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- include/version/version.m4 | 6 +++--- src/qp/QP_real_axis.F | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 93c06aa840..2aee894686 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23888 h.d7cf4a00d. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23889 h.8803efb31. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23888 h.d7cf4a00d' -PACKAGE_STRING='Yambo 5.3.0 r.23888 h.d7cf4a00d' +PACKAGE_VERSION='5.3.0 r.23889 h.8803efb31' +PACKAGE_STRING='Yambo 5.3.0 r.23889 h.8803efb31' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23888 h.d7cf4a00d to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23889 h.8803efb31 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23888 h.d7cf4a00d:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23889 h.8803efb31:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23888 h.d7cf4a00d +Yambo configure 5.3.0 r.23889 h.8803efb31 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23888 h.d7cf4a00d, which was +It was created by Yambo $as_me 5.3.0 r.23889 h.8803efb31, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23888" -SHASH="d7cf4a00d" +SREVISION="23889" +SHASH="8803efb31" @@ -17784,7 +17784,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23888 h.d7cf4a00d, which was +This file was extended by Yambo $as_me 5.3.0 r.23889 h.8803efb31, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17848,7 +17848,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23888 h.d7cf4a00d +Yambo config.status 5.3.0 r.23889 h.8803efb31 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index fc1445c228..52182faa73 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23888 h.d7cf4a00d, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23889 h.8803efb31, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23888" -SHASH="d7cf4a00d" +SREVISION="23889" +SHASH="8803efb31" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/qp/QP_real_axis.F b/src/qp/QP_real_axis.F index 06879c6818..b17335ea63 100644 --- a/src/qp/QP_real_axis.F +++ b/src/qp/QP_real_axis.F @@ -497,6 +497,7 @@ subroutine QP_real_axis(X,Xen,Xk,en,k,q,qp,Xw,Dip,GW_iter) enddo qp_loop ! call MATRIX_reset(X_par(1)) + deallocate(X_par) ! if (.not.l_life) then ! From 01005b4b3200807d2d0666900edb1872027f253c Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Tue, 10 Dec 2024 16:08:17 +0100 Subject: [PATCH 108/112] Version 5.3.0, Revision 23889, Hash 482cde76e8 MODIFIED * configure bse/EPS_via_perturbative_inversion.F bse/K_inversion_Lo.F bse/K_inversion_driver.F bse/K_inversion_engine.F Bugs: -Partial fix for the BSE inversion with ifort-2025 Additions: - Changes: - Patch sent by: Claudio Attaccalite --- configure | 22 +++++++++++----------- src/bse/EPS_via_perturbative_inversion.F | 2 ++ src/bse/K_inversion_Lo.F | 1 + src/bse/K_inversion_driver.F | 4 ++-- src/bse/K_inversion_engine.F | 12 ++++++------ 5 files changed, 22 insertions(+), 19 deletions(-) diff --git a/configure b/configure index 2aee894686..6d222914a6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23889 h.8803efb31. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23890 h.482cde76e8. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23889 h.8803efb31' -PACKAGE_STRING='Yambo 5.3.0 r.23889 h.8803efb31' +PACKAGE_VERSION='5.3.0 r.23890 h.482cde76e8' +PACKAGE_STRING='Yambo 5.3.0 r.23890 h.482cde76e8' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23889 h.8803efb31 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23890 h.482cde76e8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23889 h.8803efb31:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23890 h.482cde76e8:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23889 h.8803efb31 +Yambo configure 5.3.0 r.23890 h.482cde76e8 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23889 h.8803efb31, which was +It was created by Yambo $as_me 5.3.0 r.23890 h.482cde76e8, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23889" -SHASH="8803efb31" +SREVISION="23890" +SHASH="482cde76e8" @@ -17784,7 +17784,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23889 h.8803efb31, which was +This file was extended by Yambo $as_me 5.3.0 r.23890 h.482cde76e8, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17848,7 +17848,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23889 h.8803efb31 +Yambo config.status 5.3.0 r.23890 h.482cde76e8 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/src/bse/EPS_via_perturbative_inversion.F b/src/bse/EPS_via_perturbative_inversion.F index 8605251431..dee4c421cb 100644 --- a/src/bse/EPS_via_perturbative_inversion.F +++ b/src/bse/EPS_via_perturbative_inversion.F @@ -44,6 +44,8 @@ integer function EPS_via_perturbative_inversion(n,m,n_loop,D,C,f,Lo) complex(SP) ::R_x_D_nm1(n,m),R_x_D_n(n,m),delta_f,fo ! EPS_via_perturbative_inversion=0 + R_x_D_nm1=cZERO + R_x_D_n =cZERO ! ! IP part ! diff --git a/src/bse/K_inversion_Lo.F b/src/bse/K_inversion_Lo.F index a0e9eecb05..7f472010d4 100644 --- a/src/bse/K_inversion_Lo.F +++ b/src/bse/K_inversion_Lo.F @@ -48,6 +48,7 @@ subroutine K_inversion_Lo(iq,W,E,k,Lo_dim,Lo_n_loop,Lo) ! ! Zeroing !======= + SF=cZERO if (X_do_obs("pl")) PL(:,3) = rZERO if (X_do_obs("eps")) Resp_ii(:,3:4) = cZERO ! diff --git a/src/bse/K_inversion_driver.F b/src/bse/K_inversion_driver.F index 531ad70426..e5dc512ce6 100644 --- a/src/bse/K_inversion_driver.F +++ b/src/bse/K_inversion_driver.F @@ -184,7 +184,7 @@ subroutine K_inversion_driver(iq,W,E,k,q) & TOTAL=W%n_freqs,NCPU=PAR_COM_SLK_INDEX_local%n_CPU) call live_timing('Perturbative inversion ',PAR_IND_freqs%n_of_elements(PAR_IND_FREQ_ID)) ! - call K_inversion_engine("any",1,W%n_freqs,iq,PAR_IND_freqs,W,Lo,Lo_dim,Lo_n_loop,.FALSE.) + call K_inversion_engine("any",1,W%n_freqs,PAR_IND_freqs,W,Lo,Lo_dim,Lo_n_loop,.FALSE.) ! call PP_redux_wait(K_INV_EPS%err,COMM=PAR_COM_SLK_INDEX_local%COMM) call PP_redux_wait(Resp_ii(:,2),COMM=PAR_COM_SLK_INDEX_local%COMM) @@ -292,7 +292,7 @@ subroutine do_it_FULL(TYP) ! iw=TYP%iw_full(i1) ! - call K_inversion_engine(TYP%what,iw,1,iq,PAR_IND_freqs,W,Lo,Lo_dim,Lo_n_loop,.TRUE.) + call K_inversion_engine(TYP%what,iw,1,PAR_IND_freqs,W,Lo,Lo_dim,Lo_n_loop,.TRUE.) ! call live_timing(steps=1) ! diff --git a/src/bse/K_inversion_engine.F b/src/bse/K_inversion_engine.F index 9fb2bed2dc..df1c856344 100644 --- a/src/bse/K_inversion_engine.F +++ b/src/bse/K_inversion_engine.F @@ -5,7 +5,7 @@ ! ! Authors (see AUTHORS file for details): AM DS ! -subroutine K_inversion_engine(what,iw_2start,iw_2do,iq,px,W,Lo,Lo_dim,Lo_n_loop,do_it_full) +subroutine K_inversion_engine(what,iw_2start,iw_2do,px,W,Lo,Lo_dim,Lo_n_loop,do_it_full) ! use pars, ONLY:SP,cZERO use parallel_m, ONLY:PP_indexes @@ -20,12 +20,12 @@ subroutine K_inversion_engine(what,iw_2start,iw_2do,iq,px,W,Lo,Lo_dim,Lo_n_loop, ! #include ! - character(3) :: what - integer :: iw_2start,iw_2do,iq,Lo_dim,Lo_n_loop + type(w_samp),intent(in) :: W + complex(SP), intent(in) :: Lo(BS_H_dim,W%n_freqs,Lo_dim) + logical, intent(in) :: do_it_full + integer, intent(in) :: Lo_dim,iw_2start,iw_2do,Lo_n_loop + character(3),intent(in) :: what type(PP_indexes) :: px - type(w_samp) :: W - complex(SP) :: Lo(BS_H_dim,W%n_freqs,Lo_dim) - logical :: do_it_full ! ! Work Space ! From 82cb1824ef3cf804fa30fd03cd77e2f4838bfd5e Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Tue, 10 Dec 2024 16:29:31 +0100 Subject: [PATCH 109/112] Version 5.3.0, Revision 23890, Hash 01005b4b32 MODIFIED * config/m4/acx_fortran_flags.m4 configure include/version/version.m4 common/Kramers_Kronig.F Bugs: -Fixed bug iusse #163 Additions: - Changes: - Patch sent by: Claudio Attaccalite --- config/m4/acx_fortran_flags.m4 | 4 ++-- configure | 26 +++++++++++++------------- include/version/version.m4 | 6 +++--- src/common/Kramers_Kronig.F | 6 ++++-- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/config/m4/acx_fortran_flags.m4 b/config/m4/acx_fortran_flags.m4 index 54823efcd5..59a129fc74 100644 --- a/config/m4/acx_fortran_flags.m4 +++ b/config/m4/acx_fortran_flags.m4 @@ -104,7 +104,7 @@ i?86*linux*) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g $CPU_FLAG" + SYSFLAGS="-assume bscc -O2 -g $CPU_FLAG" FUFLAGS="-assume bscc -O0 $CPU_FLAG" DEBUG_FLAGS="-check all -CB -traceback -check bound" ;; @@ -361,7 +361,7 @@ aarch*linux* | arm*linux* ) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O2 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" NETCDFFLAGS="-DpgiFortran" DEBUG_FLAGS="-CB -traceback -debug full" diff --git a/configure b/configure index 6d222914a6..4194c44ce7 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23890 h.482cde76e8. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23891 h.01005b4b32. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23890 h.482cde76e8' -PACKAGE_STRING='Yambo 5.3.0 r.23890 h.482cde76e8' +PACKAGE_VERSION='5.3.0 r.23891 h.01005b4b32' +PACKAGE_STRING='Yambo 5.3.0 r.23891 h.01005b4b32' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -1659,7 +1659,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23890 h.482cde76e8 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23891 h.01005b4b32 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1725,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23890 h.482cde76e8:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23891 h.01005b4b32:";; esac cat <<\_ACEOF @@ -1967,7 +1967,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23890 h.482cde76e8 +Yambo configure 5.3.0 r.23891 h.01005b4b32 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2596,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23890 h.482cde76e8, which was +It was created by Yambo $as_me 5.3.0 r.23891 h.01005b4b32, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3354,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23890" -SHASH="482cde76e8" +SREVISION="23891" +SHASH="01005b4b32" @@ -7334,7 +7334,7 @@ i?86*linux*) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g $CPU_FLAG" + SYSFLAGS="-assume bscc -O2 -g $CPU_FLAG" FUFLAGS="-assume bscc -O0 $CPU_FLAG" DEBUG_FLAGS="-check all -CB -traceback -check bound" ;; @@ -7591,7 +7591,7 @@ aarch*linux* | arm*linux* ) CPU_FLAG=" " ;; esac - SYSFLAGS="-assume bscc -O3 -g ${CPU_FLAG}" + SYSFLAGS="-assume bscc -O2 -g ${CPU_FLAG}" FUFLAGS="-assume bscc -O0 -g ${CPU_FLAG}" NETCDFFLAGS="-DpgiFortran" DEBUG_FLAGS="-CB -traceback -debug full" @@ -17784,7 +17784,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23890 h.482cde76e8, which was +This file was extended by Yambo $as_me 5.3.0 r.23891 h.01005b4b32, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17848,7 +17848,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23890 h.482cde76e8 +Yambo config.status 5.3.0 r.23891 h.01005b4b32 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index 52182faa73..f674602a16 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23889 h.8803efb31, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23890 h.482cde76e8, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23889" -SHASH="8803efb31" +SREVISION="23890" +SHASH="482cde76e8" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/Kramers_Kronig.F b/src/common/Kramers_Kronig.F index 368b8eebf5..678e472f23 100644 --- a/src/common/Kramers_Kronig.F +++ b/src/common/Kramers_Kronig.F @@ -17,7 +17,7 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) ! ! fo is not INITIALIZED to 0. ! ! - use pars, ONLY:SP + use pars, ONLY:SP,cZERO ! implicit none ! @@ -30,6 +30,8 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) ! integer :: i1,i2 complex(SP) :: m(ni-1),q(ni-1) + m=cZERO + q=cZERO ! do i1=1,ni-1 m(i1)=(fi(i1)-fi(i1+1))/(wi(i1)-wi(i1+1)) @@ -41,7 +43,7 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) do i2=1,ni-1 fo(i1)=fo(i1)+m(i2)*(wi(i2)-wi(i2+1))+& & (q(i2)+m(i2)*(wo(i1)-y0))*& -& log((wi(i2)-wo(i1)+y0)/(wi(i2+1)-wo(i1)+y0)) +& (log(wi(i2)-wo(i1)+y0)-log(wi(i2+1)-wo(i1)+y0)) enddo enddo ! From f4ffae3a738db9ea91e49d41ffd3a8082eaeacd4 Mon Sep 17 00:00:00 2001 From: Claudio Attaccalite Date: Wed, 11 Dec 2024 11:56:21 +0100 Subject: [PATCH 110/112] Version 5.3.0, Revision 23891, Hash 82cb1824e MODIFIED * include/version/version.m4 common/Kramers_Kronig.F Bugs: - Additions: - Changes: -Restored old subroutine Patch sent by: Claudio Attaccalite --- include/version/version.m4 | 6 +++--- src/common/Kramers_Kronig.F | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/include/version/version.m4 b/include/version/version.m4 index f674602a16..e49a5c65da 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23890 h.482cde76e8, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23891 h.82cb1824e, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23890" -SHASH="482cde76e8" +SREVISION="23891" +SHASH="82cb1824e" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/src/common/Kramers_Kronig.F b/src/common/Kramers_Kronig.F index 678e472f23..368b8eebf5 100644 --- a/src/common/Kramers_Kronig.F +++ b/src/common/Kramers_Kronig.F @@ -17,7 +17,7 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) ! ! fo is not INITIALIZED to 0. ! ! - use pars, ONLY:SP,cZERO + use pars, ONLY:SP ! implicit none ! @@ -30,8 +30,6 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) ! integer :: i1,i2 complex(SP) :: m(ni-1),q(ni-1) - m=cZERO - q=cZERO ! do i1=1,ni-1 m(i1)=(fi(i1)-fi(i1+1))/(wi(i1)-wi(i1+1)) @@ -43,7 +41,7 @@ subroutine Kramers_Kronig(fi,wi,ni,fo,wo,no,y0) do i2=1,ni-1 fo(i1)=fo(i1)+m(i2)*(wi(i2)-wi(i2+1))+& & (q(i2)+m(i2)*(wo(i1)-y0))*& -& (log(wi(i2)-wo(i1)+y0)-log(wi(i2+1)-wo(i1)+y0)) +& log((wi(i2)-wo(i1)+y0)/(wi(i2+1)-wo(i1)+y0)) enddo enddo ! From 04bbd278d5ade45e3b98706d42169a6dac0fc9a0 Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 11 Dec 2024 23:22:45 +0100 Subject: [PATCH 111/112] Version 5.2.0, Revision 23950, Hash 679093ec7f MODIFIED * config/m4/gpu.m4 config/setup.in configure include/version/version.m4 lib/petsc/Makefile.loc lib/slepc/Makefile.loc bse/K_stored_in_a_nest_matrix.F bse/K_stored_in_a_slepc_matrix.F Changes: - [yambo] Small changes to slepc gpu porting related coding Patch sent by: Davide Sangalli --- config/m4/gpu.m4 | 2 ++ config/setup.in | 1 + configure | 35 +++++++++++++++++----------- include/version/version.m4 | 6 ++--- lib/petsc/Makefile.loc | 7 +++--- lib/slepc/Makefile.loc | 2 +- src/bse/K_stored_in_a_nest_matrix.F | 8 +++++-- src/bse/K_stored_in_a_slepc_matrix.F | 6 ++++- 8 files changed, 44 insertions(+), 23 deletions(-) diff --git a/config/m4/gpu.m4 b/config/m4/gpu.m4 index ccb4c4c85d..42a3d0aedf 100644 --- a/config/m4/gpu.m4 +++ b/config/m4/gpu.m4 @@ -194,6 +194,7 @@ if test x"$enable_cuda_fortran" != "xno" ; then # Flags to be passed to the devicexlib library # DEVXLIB_FLAGS="--enable-openmp --enable-cuda-fortran --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime}" + PETSC_FLAGS="--with-cuda" # case "${FCVERSION}" in *nvfortran*) @@ -295,6 +296,7 @@ AC_SUBST(GPU_LIBS) AC_SUBST(GPU_INCS) AC_SUBST(DEVXLIB_FLAGS) AC_SUBST(DEVXLIB_CUDALIBS) +AC_SUBST(PETSC_FLAGS) AC_SUBST(LIBROCM_LIBS) AC_SUBST(LIBROCM_INCS) AC_SUBST(LIBROCM_PATH) diff --git a/config/setup.in b/config/setup.in index 8ae2e922fa..2b29296c33 100644 --- a/config/setup.in +++ b/config/setup.in @@ -52,6 +52,7 @@ lblas = @BLAS_LIBS@ llapack = @LAPACK_LIBS@ lblaspetsc = @BLAS_PETSC_LIBS@ llapackpetsc= @LAPACK_PETSC_LIBS@ +petsc_flgs = @PETSC_FLAGS@ lblacs = @BLACS_LIBS@ lscalapack = @SCALAPACK_LIBS@ lslepc = @SLEPC_LIBS@ diff --git a/configure b/configure index 0810db7a91..d4958c07b1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23884 h.24d60eb8ca. +# Generated by GNU Autoconf 2.71 for Yambo 5.2.0 r.23950 h.679093ec7f. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.2.0 r.23884 h.24d60eb8ca' -PACKAGE_STRING='Yambo 5.2.0 r.23884 h.24d60eb8ca' +PACKAGE_VERSION='5.2.0 r.23950 h.679093ec7f' +PACKAGE_STRING='Yambo 5.2.0 r.23950 h.679093ec7f' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -696,6 +696,8 @@ DEVXLIB_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -730,6 +732,7 @@ MKLGPU_LIBS LIBROCM_PATH LIBROCM_INCS LIBROCM_LIBS +PETSC_FLAGS DEVXLIB_CUDALIBS DEVXLIB_FLAGS GPU_INCS @@ -1659,7 +1662,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.2.0 r.23884 h.24d60eb8ca to adapt to many kinds of systems. +\`configure' configures Yambo 5.2.0 r.23950 h.679093ec7f to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1728,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.2.0 r.23884 h.24d60eb8ca:";; + short | recursive ) echo "Configuration of Yambo 5.2.0 r.23950 h.679093ec7f:";; esac cat <<\_ACEOF @@ -1967,7 +1970,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.2.0 r.23884 h.24d60eb8ca +Yambo configure 5.2.0 r.23950 h.679093ec7f generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2599,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.2.0 r.23884 h.24d60eb8ca, which was +It was created by Yambo $as_me 5.2.0 r.23950 h.679093ec7f, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3357,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23884" -SHASH="24d60eb8ca" +SREVISION="23950" +SHASH="679093ec7f" @@ -16191,6 +16194,7 @@ if test x"$enable_cuda_fortran" != "xno" ; then # Flags to be passed to the devicexlib library # DEVXLIB_FLAGS="--enable-openmp --enable-cuda-fortran --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime}" + PETSC_FLAGS="--with-cuda" # case "${FCVERSION}" in *nvfortran*) @@ -16390,6 +16394,7 @@ fi + # # ============================================================================ @@ -16716,19 +16721,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -16822,6 +16829,8 @@ fi + + # @@ -17780,7 +17789,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.2.0 r.23884 h.24d60eb8ca, which was +This file was extended by Yambo $as_me 5.2.0 r.23950 h.679093ec7f, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17844,7 +17853,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.2.0 r.23884 h.24d60eb8ca +Yambo config.status 5.2.0 r.23950 h.679093ec7f configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index b7be45031f..24c0fddaa5 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.2.0 r.23884 h.24d60eb8ca, yambo@yambo-code.org) +AC_INIT(Yambo, 5.2.0 r.23950 h.679093ec7f, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="2" SPATCHLEVEL="0" -SREVISION="23884" -SHASH="24d60eb8ca" +SREVISION="23950" +SHASH="679093ec7f" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL) diff --git a/lib/petsc/Makefile.loc b/lib/petsc/Makefile.loc index 8d92719e2b..6604c44ef2 100644 --- a/lib/petsc/Makefile.loc +++ b/lib/petsc/Makefile.loc @@ -7,7 +7,7 @@ include ../../config/setup include ../archive/package.list # LIBNAME=libpetsc.a -LIBPATH=$(libs_prefix)/$(fc_kind)/${fc}/${yprecision} +LIBPATH=$(libs_prefix)/$(fc_kind)/${fc}/${yprecision} #-${gpu_support} LIBRARY=$(LIBPATH)/lib/$(LIBNAME) # PACKAGE=$(pkgname_petsc) @@ -15,13 +15,14 @@ TARBALL=$(tarball_petsc) # include ../config/external_libs_commons.mk include ../config/external_libs_defs.mk +# FOPTFLAGS="$(fcflags)" COPTFLAGS="$(cflags)" \ # PETSC_ARCH=yambo_${yprecision}_complex -CONFFLAGS=--prefix="$(LIBPATH)" \ +CONFFLAGS=--prefix="$(LIBPATH)" $(petsc_flgs) \ + FOPTFLAGS="-O1" COPTFLAGS="-O2" \ --PETSC_ARCH=${PETSC_ARCH} \ --with-ssl=0 \ --with-x=0 \ - --with-cxx=0 \ --with-debugging=no \ --with-shared-libraries=$(spetsc) \ --with-blaslapack-lib="$(llapackpetsc) $(lblaspetsc)" \ diff --git a/lib/slepc/Makefile.loc b/lib/slepc/Makefile.loc index bf0ce94985..fd32d8ad8a 100644 --- a/lib/slepc/Makefile.loc +++ b/lib/slepc/Makefile.loc @@ -7,7 +7,7 @@ include ../../config/setup include ../archive/package.list # LIBNAME=libslepc.a -LIBPATH=$(libs_prefix)/$(fc_kind)/${fc}/${yprecision} +LIBPATH=$(libs_prefix)/$(fc_kind)/${fc}/${yprecision} #-${gpu_support} LIBRARY=$(LIBPATH)/lib/$(LIBNAME) # PACKAGE=$(pkgname_slepc) diff --git a/src/bse/K_stored_in_a_nest_matrix.F b/src/bse/K_stored_in_a_nest_matrix.F index ee44533d50..5b7fd1b61f 100644 --- a/src/bse/K_stored_in_a_nest_matrix.F +++ b/src/bse/K_stored_in_a_nest_matrix.F @@ -61,16 +61,20 @@ subroutine K_stored_in_a_nest_matrix(i_BS_mat,iq,slepc_mat) call MatCreate(PETSC_COMM_WORLD,R,ierr) call MatSetSizes(R,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) call MatSetType(R,MATDENSE,ierr) + if (have_cuda) then #if defined(PETSC_HAVE_CUDA) - if (have_cuda) call MatSetType(R,MATDENSECUDA,ierr) + call MatSetType(R,MATDENSECUDA,ierr) +#else + call warning("Yambo has cuda support. Petsc doesn't. Look for a petsc with gpu support") #endif + endif call MatSetFromOptions(R,ierr) call MatSetUp(R,ierr) ! call MatCreate(PETSC_COMM_WORLD,C,ierr) call MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim/2,SL_H_dim/2,ierr) call MatSetType(C,MATDENSE,ierr) -#ifdef PETSC_HAVE_CUDA +#if defined(PETSC_HAVE_CUDA) if (have_cuda) call MatSetType(C,MATDENSECUDA,ierr) #endif call MatSetFromOptions(C,ierr) diff --git a/src/bse/K_stored_in_a_slepc_matrix.F b/src/bse/K_stored_in_a_slepc_matrix.F index f33d51ba00..6b3b73d826 100644 --- a/src/bse/K_stored_in_a_slepc_matrix.F +++ b/src/bse/K_stored_in_a_slepc_matrix.F @@ -59,9 +59,13 @@ subroutine K_stored_in_a_slepc_matrix(i_BS_mat,iq,slepc_mat) call MatSetSizes(slepc_mat,PETSC_DECIDE,PETSC_DECIDE,SL_H_dim,SL_H_dim,ierr) call MatSetType(slepc_mat, MATDENSE,ierr) + if (have_cuda) then #if defined(PETSC_HAVE_CUDA) - if (have_cuda) call MatSetType(slepc_mat,MATDENSECUDA,ierr) + call MatSetType(slepc_mat,MATDENSECUDA,ierr) +#else + call warning("Yambo has cuda support. Petsc doesn't. Look for a petsc with gpu support") #endif + endif call MatSetUp(slepc_mat,ierr) ! From 5e47aefcb748eac27730dc4e5c5b25203a880aff Mon Sep 17 00:00:00 2001 From: Davide Sangalli Date: Wed, 11 Dec 2024 23:38:17 +0100 Subject: [PATCH 112/112] Version 5.3.0, Revision 23968, Hash b8c1c1628c MODIFIED * configure include/version/version.m4 Changes: - configure re-generated after merge Patch sent by: Davide Sangalli --- configure | 35 ++++++++++++++++++++++------------- include/version/version.m4 | 6 +++--- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 4194c44ce7..ceda943965 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23891 h.01005b4b32. +# Generated by GNU Autoconf 2.71 for Yambo 5.3.0 r.23968 h.b8c1c1628c. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Yambo' PACKAGE_TARNAME='yambo' -PACKAGE_VERSION='5.3.0 r.23891 h.01005b4b32' -PACKAGE_STRING='Yambo 5.3.0 r.23891 h.01005b4b32' +PACKAGE_VERSION='5.3.0 r.23968 h.b8c1c1628c' +PACKAGE_STRING='Yambo 5.3.0 r.23968 h.b8c1c1628c' PACKAGE_BUGREPORT='yambo@yambo-code.org' PACKAGE_URL='' @@ -696,6 +696,8 @@ DEVXLIB_check LIBXC_check YPY_check YDB_check +SLEPC_info +PETSC_info SLEPC_check PETSC_check SLK_check @@ -730,6 +732,7 @@ MKLGPU_LIBS LIBROCM_PATH LIBROCM_INCS LIBROCM_LIBS +PETSC_FLAGS DEVXLIB_CUDALIBS DEVXLIB_FLAGS GPU_INCS @@ -1659,7 +1662,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Yambo 5.3.0 r.23891 h.01005b4b32 to adapt to many kinds of systems. +\`configure' configures Yambo 5.3.0 r.23968 h.b8c1c1628c to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1725,7 +1728,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Yambo 5.3.0 r.23891 h.01005b4b32:";; + short | recursive ) echo "Configuration of Yambo 5.3.0 r.23968 h.b8c1c1628c:";; esac cat <<\_ACEOF @@ -1967,7 +1970,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Yambo configure 5.3.0 r.23891 h.01005b4b32 +Yambo configure 5.3.0 r.23968 h.b8c1c1628c generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2596,7 +2599,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Yambo $as_me 5.3.0 r.23891 h.01005b4b32, which was +It was created by Yambo $as_me 5.3.0 r.23968 h.b8c1c1628c, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3354,8 +3357,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23891" -SHASH="01005b4b32" +SREVISION="23968" +SHASH="b8c1c1628c" @@ -16195,6 +16198,7 @@ if test x"$enable_cuda_fortran" != "xno" ; then # Flags to be passed to the devicexlib library # DEVXLIB_FLAGS="--enable-openmp --enable-cuda-fortran --with-cuda-cc=${with_cuda_cc} --with-cuda-runtime=${with_cuda_runtime}" + PETSC_FLAGS="--with-cuda" # case "${FCVERSION}" in *nvfortran*) @@ -16394,6 +16398,7 @@ fi + # # ============================================================================ @@ -16720,19 +16725,21 @@ if test "$internal_blacs" = "yes" ; then fi # PETSC_check="-" +PETSC_info="" if test "$internal_petsc" = "yes" ; then if test "$compile_petsc" = "yes" ; then PETSC_check="C"; fi if test "$compile_petsc" = "no" ; then PETSC_check="I"; fi - if ! test "$with_petsc_branch" = "none"; then PETSC_LIBS="$PETSC_LIBS (git branch $with_petsc_branch)"; fi + if ! test "$with_petsc_branch" = "none"; then PETSC_info="(git branch $with_petsc_branch)"; fi elif test "$enable_petsc" = "yes" ; then PETSC_check="E" fi # SLEPC_check="-" +SLEPC_info="" if test "$internal_slepc" = "yes" ; then if test "$compile_slepc" = "yes" ; then SLEPC_check="C"; fi if test "$compile_slepc" = "no" ; then SLEPC_check="I"; fi - if ! test "$with_slepc_branch" = "none"; then SLEPC_LIBS="$SLEPC_LIBS (git branch $with_slepc_branch)"; fi + if ! test "$with_slepc_branch" = "none"; then SLEPC_info="(git branch $with_slepc_branch)"; fi elif test "$enable_slepc" = "yes" ; then SLEPC_check="E" fi @@ -16826,6 +16833,8 @@ fi + + # @@ -17784,7 +17793,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Yambo $as_me 5.3.0 r.23891 h.01005b4b32, which was +This file was extended by Yambo $as_me 5.3.0 r.23968 h.b8c1c1628c, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17848,7 +17857,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Yambo config.status 5.3.0 r.23891 h.01005b4b32 +Yambo config.status 5.3.0 r.23968 h.b8c1c1628c configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/include/version/version.m4 b/include/version/version.m4 index e49a5c65da..efcc702df0 100644 --- a/include/version/version.m4 +++ b/include/version/version.m4 @@ -1,9 +1,9 @@ -AC_INIT(Yambo, 5.3.0 r.23891 h.82cb1824e, yambo@yambo-code.org) +AC_INIT(Yambo, 5.3.0 r.23968 h.b8c1c1628c, yambo@yambo-code.org) SVERSION="5" SSUBVERSION="3" SPATCHLEVEL="0" -SREVISION="23891" -SHASH="82cb1824e" +SREVISION="23968" +SHASH="b8c1c1628c" AC_SUBST(SVERSION) AC_SUBST(SSUBVERSION) AC_SUBST(SPATCHLEVEL)