From 7ff904edc3fddb117d90f27b51f2e36cee8d02bf Mon Sep 17 00:00:00 2001 From: edoapra Date: Wed, 23 Apr 2025 14:45:58 -0700 Subject: [PATCH] use peigs only when USE_PEIGS is on --- src/NWints/dk/int_1edk_ga.F | 4 +--- src/NWints/dk/int_1edkso_ga.F | 4 +--- src/ddscf/rohf_diis.F | 4 +--- src/ddscf/rohf_scat.F | 4 +--- src/gwmol/gw_analytic_rpa.F | 8 ++------ src/gwmol/gw_init.F | 2 +- src/gwmol/gw_invdiag.F | 4 +++- src/mcscf/mcscf_aux.F | 12 +++--------- src/mp2_grad/mp2_make_nos.F | 4 +--- src/nwdft/lr_tddft/tddft_lanczos.F | 7 +++++++ src/nwdft/lr_tddft/tddft_lanczos_tda.F | 7 +++++++ src/nwdft/rt_tddft/rtutils/rt_tddft_movecs_gs.F | 9 ++++++++- src/nwdft/util/GNUmakefile | 5 ++++- src/nwpw/nwpwlib/utilities/task_paulsmatrix.F | 6 ++++++ 14 files changed, 46 insertions(+), 34 deletions(-) diff --git a/src/NWints/dk/int_1edk_ga.F b/src/NWints/dk/int_1edk_ga.F index 375f42b174..f6b126f214 100644 --- a/src/NWints/dk/int_1edk_ga.F +++ b/src/NWints/dk/int_1edk_ga.F @@ -182,7 +182,6 @@ c if (.not. ma_push_get(MT_DBL,nbf,'psquared',p2m_a,p2Im_a)) $ call errquit('int_1edk_ga: ma_push_get failed psquared',0, & MA_ERR) -#ifdef PARALLEL_DIAG #ifdef SCALAPACK c pdsygv is unstable since it uses the inaccurate pdsyevx cold call ga_pdsygv(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) @@ -202,9 +201,8 @@ c diag f_prime c_prime c c=inv(chol)_t*c_prime call ga_dgemm('n','n',nbf,nbf,nbf,1.0d0,tempg_a,tmpg_a, Z 0.0d0,ug_a) -#else +#elif defined(PEIGS) call ga_diag(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) -#endif #else call ga_diag_seq(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) #endif diff --git a/src/NWints/dk/int_1edkso_ga.F b/src/NWints/dk/int_1edkso_ga.F index aa861e4d4d..1d251ec3a0 100644 --- a/src/NWints/dk/int_1edkso_ga.F +++ b/src/NWints/dk/int_1edkso_ga.F @@ -168,7 +168,6 @@ c if (.not. ma_push_get(MT_DBL,nbf,'psquared',p2m_a,p2Im_a)) $ call errquit('int_1edk_ga: ma_push_get failed psquared',0, & MA_ERR) -#ifdef PARALLEL_DIAG #ifdef SCALAPACK c pdsygv is unstable since it uses the inaccurate pdsyevx cold call ga_pdsygv(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) @@ -191,9 +190,8 @@ c diag f_prime c_prime c c=inv(chol)_t*c_prime call ga_dgemm('n','n',nbf,nbf,nbf,1.0d0,tempg_a,tmpg_a, Z 0.0d0,ug_a) -#else +#elif defined(PEIGS) call ga_diag(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) -#endif #else call ga_diag_seq(Tg_a,tempg_a,Ug_a,dbl_mb(p2Im_a)) #endif diff --git a/src/ddscf/rohf_diis.F b/src/ddscf/rohf_diis.F index 00c583a5f0..41c54e0b23 100644 --- a/src/ddscf/rohf_diis.F +++ b/src/ddscf/rohf_diis.F @@ -203,12 +203,10 @@ c if ( util_print('evp_input', print_never) ) then call scf_dump_evp_input(rtdb,g_fock,g_over) endif -#if defined(PARALLEL_DIAG) #ifdef SCALAPACK call ga_pdsygv(g_fock,g_over, g_tmp, dbl_mb(k_eval)) -#else +#elif defined(PEIGS) call ga_diag( g_fock, g_over, g_tmp, dbl_mb(k_eval)) -#endif #else call ga_diag_seq( g_fock, g_over, g_tmp, dbl_mb(k_eval)) #endif diff --git a/src/ddscf/rohf_scat.F b/src/ddscf/rohf_scat.F index 021adcc291..5a1dd84936 100644 --- a/src/ddscf/rohf_scat.F +++ b/src/ddscf/rohf_scat.F @@ -371,12 +371,10 @@ c call ga_dgemm('t','n',nscat,nscat,nbf_all, & 1.0d0, g_tran, g_tmp, 1.0d0, g_scat) c -#if defined(PARALLEL_DIAG) #ifdef SCALAPACK call ga_pdsygv(g_scat, g_over, g_tmpscat, dbl_mb(k_evals+nbf)) -#else +#elif defined(PEIGS) call ga_diag(g_scat, g_over, g_tmpscat, dbl_mb(k_evals+nbf)) -#endif #else call ga_diag_seq(g_scat, g_over, g_tmpscat, dbl_mb(k_evals+nbf)) #endif diff --git a/src/gwmol/gw_analytic_rpa.F b/src/gwmol/gw_analytic_rpa.F index 0c4f248be5..184f4242a0 100644 --- a/src/gwmol/gw_analytic_rpa.F +++ b/src/gwmol/gw_analytic_rpa.F @@ -94,12 +94,10 @@ C ! ! Perform the Eigendecomposition of the Casida matrix ! -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call dft_scaleig(g_rpa,g_rpa,omega,0) -#else +#elif defined(PEIGS) call ga_diag_std(g_rpa,g_rpa,omega) -#endif #else call ga_diag_std_seq(g_rpa,g_rpa,omega) #endif @@ -247,12 +245,10 @@ c ECRPA pending c pars%ecrpa = c Diagonalize RPA matrix -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call dft_scaleig(g_rpa,g_rpa,omega,0) -#else +#elif defined(PEIGS) call ga_diag_std(g_rpa,g_rpa,omega) -#endif #else call ga_diag_std_seq(g_rpa,g_rpa,omega) #endif diff --git a/src/gwmol/gw_init.F b/src/gwmol/gw_init.F index 12d415512a..81dba45f59 100644 --- a/src/gwmol/gw_init.F +++ b/src/gwmol/gw_init.F @@ -335,7 +335,7 @@ c c pars%fdstep = 0.0005d0 -#if defined(PARALLEL_DIAG) && defined(SCALAPACK) +#if defined(SCALAPACK) call slexit call slexit2 call slexit3 diff --git a/src/gwmol/gw_invdiag.F b/src/gwmol/gw_invdiag.F index 376f7b7024..ce8bb85bd7 100644 --- a/src/gwmol/gw_invdiag.F +++ b/src/gwmol/gw_invdiag.F @@ -105,8 +105,10 @@ c #ifdef SCALAPACK call dft_scaleig(g_tmp, g_tmp2, DBl_MB(iev), P 0) -#else +#elif defined(PEIGS) call ga_diag_std(g_tmp,g_tmp2,DBl_MB(iev)) +#else + call ga_diag_std_seq(g_tmp,g_tmp2,DBl_MB(iev)) #endif ! diff --git a/src/mcscf/mcscf_aux.F b/src/mcscf/mcscf_aux.F index acad9cacb7..2a4175033a 100644 --- a/src/mcscf/mcscf_aux.F +++ b/src/mcscf/mcscf_aux.F @@ -1195,12 +1195,10 @@ c call ga_copy_patch( 'n', g_gfock, 1, nclosed, 1, nclosed, $ g_tmp, 1, nclosed, 1, nclosed ) call ga_symmetrize( g_tmp ) -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call ga_pdsyev (g_tmp, g_u, eps, 0) -#else +#elif defined(PEIGS) call ga_diag_std( g_tmp, g_u, eps ) -#endif #else call ga_diag_std_seq( g_tmp, g_u, eps ) #endif @@ -1224,12 +1222,10 @@ c call ga_copy_patch( 'n', g_gfock, aoff, aend, aoff, aend, $ g_tmp, 1, nact, 1, nact ) call ga_symmetrize( g_tmp ) -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call ga_pdsyev (g_tmp, g_u, eps(aoff), 0) -#else +#elif defined(PEIGS) call ga_diag_std( g_tmp, g_u, eps(aoff) ) -#endif #else call ga_diag_std_seq( g_tmp, g_u, eps(aoff) ) #endif @@ -1254,12 +1250,10 @@ c $ 2.d0, g_afock, aoff, nbf, aoff, nbf, $ g_tmp, 1, nvir, 1, nvir ) call ga_symmetrize( g_tmp ) -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call ga_pdsyev (g_tmp, g_u, eps(aoff), 0) -#else +#elif defined(PEIGS) call ga_diag_std( g_tmp, g_u, eps(aoff) ) -#endif #else call ga_diag_std_seq( g_tmp, g_u, eps(aoff) ) #endif diff --git a/src/mp2_grad/mp2_make_nos.F b/src/mp2_grad/mp2_make_nos.F index 532ea84140..efe87c568c 100644 --- a/src/mp2_grad/mp2_make_nos.F +++ b/src/mp2_grad/mp2_make_nos.F @@ -99,12 +99,10 @@ c to most weakly occupied, negate the density. c call ga_scale(g_dens,-1.0d0) c -#ifdef PARALLEL_DIAG #ifdef SCALAPACK call ga_pdsyev (g_dens, g_work, dbl_mb(k_eval+ioff), 0) -#else +#elif defined(PEIGS) call ga_diag_std(g_dens, g_work, dbl_mb(k_eval+ioff)) -#endif #else call ga_diag_std_seq(g_dens, g_work, dbl_mb(k_eval+ioff)) #endif diff --git a/src/nwdft/lr_tddft/tddft_lanczos.F b/src/nwdft/lr_tddft/tddft_lanczos.F index 5f43c6181a..1dcc2a687b 100644 --- a/src/nwdft/lr_tddft/tddft_lanczos.F +++ b/src/nwdft/lr_tddft/tddft_lanczos.F @@ -570,7 +570,14 @@ c dbl_mb(k_h+j-1) = 0.0d0 enddo +#ifdef SCALAPACK + call dft_scaleig(g_h,g_hvec,dbl_mb(k_h), + P mdeg) +#elif defined(PEIGS) call ga_diag_std(g_h,g_hvec,dbl_mb(k_h)) +#else + call ga_diag_std_seq(g_h,g_hvec,dbl_mb(k_h)) +#endif cccc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CJB Analyse diff --git a/src/nwdft/lr_tddft/tddft_lanczos_tda.F b/src/nwdft/lr_tddft/tddft_lanczos_tda.F index 34d25cd818..b019725a3f 100644 --- a/src/nwdft/lr_tddft/tddft_lanczos_tda.F +++ b/src/nwdft/lr_tddft/tddft_lanczos_tda.F @@ -575,7 +575,14 @@ c dbl_mb(k_h+j-1) = 0.0d0 enddo +#ifdef SCALAPACK + call dft_scaleig(g_h,g_hvec,dbl_mb(k_h), + P mdeg) +#elif defined(PEIGS) call ga_diag_std(g_h,g_hvec,dbl_mb(k_h)) +#else + call ga_diag_std_seq(g_h,g_hvec,dbl_mb(k_h)) +#endif cccc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CJB Analyse diff --git a/src/nwdft/rt_tddft/rtutils/rt_tddft_movecs_gs.F b/src/nwdft/rt_tddft/rtutils/rt_tddft_movecs_gs.F index 2333c6585e..0b92ae38a8 100644 --- a/src/nwdft/rt_tddft/rtutils/rt_tddft_movecs_gs.F +++ b/src/nwdft/rt_tddft/rtutils/rt_tddft_movecs_gs.F @@ -68,7 +68,14 @@ C call ga_zero (g_fockre_mo) call ga_zero (g_fockim_mo) call convert_z2d (g_zfock_mo, g_fockre_mo, g_fockim_mo) - call ga_diag_std (g_fockre_mo, g_movecs_gs, dbl_mb(ievals)) +#ifdef SCALAPACK + call dft_scaleig(g_fockre_mo, g_movecs_gs, dbl_mb(ievals), + P params%ns_mo) +#elif defined(PEIGS) + call ga_diag_std(g_fockre_mo, g_movecs_gs, dbl_mb(ievals)) +#else + call ga_diag_std_seq(g_fockre_mo, g_movecs_gs, dbl_mb(ievals)) +#endif C XXX diff --git a/src/nwdft/util/GNUmakefile b/src/nwdft/util/GNUmakefile index 786fe8138f..c0b4e30fb3 100644 --- a/src/nwdft/util/GNUmakefile +++ b/src/nwdft/util/GNUmakefile @@ -1,6 +1,9 @@ #$Id$ - OBJ= ga_chol.o ga_inverse.o ga_chol_seq.o ga_inv_seq.o dft_invio.o dft_print_mats.o dft_save_mats.o + OBJ= ga_chol_seq.o ga_inv_seq.o dft_invio.o dft_print_mats.o dft_save_mats.o +ifdef _USE_PEIGS + OBJ+= ga_chol.o ga_inverse.o +endif OBJ_OPTIMIZE= \ diff --git a/src/nwpw/nwpwlib/utilities/task_paulsmatrix.F b/src/nwpw/nwpwlib/utilities/task_paulsmatrix.F index 8ea1f28615..c25835f778 100644 --- a/src/nwpw/nwpwlib/utilities/task_paulsmatrix.F +++ b/src/nwpw/nwpwlib/utilities/task_paulsmatrix.F @@ -185,7 +185,13 @@ c > read_time,diag_time) if (oprint) >write(luout,*) "Into diagonalize matrix,current time=",cpu2-cpu1 +#ifdef SCALAPACK + call ga_pdsyev(hmatrix,vmatrix,eigs,0) +#elif defined(PEIGS) call ga_diag_std(hmatrix,vmatrix,eigs) +#else + call ga_diag_std_seq(hmatrix,vmatrix,eigs) +#endif call current_second(cpu3) !*** destroy the ga matrix hmatrix ***