From 02b5b77afcc6116aac19fb2793f1da211d350382 Mon Sep 17 00:00:00 2001 From: Daniel Mejia-Rodriguez Date: Fri, 17 Oct 2025 13:07:11 -0700 Subject: [PATCH] Correct size for W, KW, and MKW --- src/bsemol/bse_buildw.F | 2 ++ src/bsemol/bse_davidson.F | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/bsemol/bse_buildw.F b/src/bsemol/bse_buildw.F index bb4d308675..e3dd8e4858 100644 --- a/src/bsemol/bse_buildw.F +++ b/src/bsemol/bse_buildw.F @@ -58,6 +58,8 @@ C !Factorize dieletric matrix for further use call dpftrf('n','l',nri,w,info) + if(info.ne.0) + & call errquit(pname//'Failed to decompose dielectric',info,0) !Deallocate deallocate(factor,stat=alloc) diff --git a/src/bsemol/bse_davidson.F b/src/bsemol/bse_davidson.F index 4780d1e252..9c494f4f15 100644 --- a/src/bsemol/bse_davidson.F +++ b/src/bsemol/bse_davidson.F @@ -101,9 +101,6 @@ $ ga_duplicate(g_x,g_s,'s').and. $ ga_duplicate(g_x,g_ks,'ks').and. $ ga_duplicate(g_x,g_mks,'mks').and. - $ ga_duplicate(g_x,g_w,'w').and. - $ ga_duplicate(g_x,g_kw,'kw').and. - $ ga_duplicate(g_x,g_mkw,'mkw').and. $ ga_duplicate(g_x,g_trials,'trials') if(.not.stat) call errquit('ga create failed',103,GA_ERR) call ga_zero(g_y) @@ -111,10 +108,21 @@ call ga_zero(g_s) call ga_zero(g_ks) call ga_zero(g_mks) + call ga_zero(g_trials) + + ! W, K*W, and M*K*W are fixed to nroots columns + g_w = ga_create_handle() + call ga_set_data(g_w, 2, (/npoles, pars%nroots/), mt_dbl) + call ga_set_array_name(g_w, 'w') + call ga_set_tiled_irreg_proc_grid(g_w, int_mb(k_map), + $ (/pars%nblocks, 1/), (/ga_nnodes(), 1/)) + stat = ga_allocate(g_w) + stat = stat .and. ga_duplicate(g_w, g_kw, 'kw') .and. + $ ga_duplicate(g_w, g_mkw, 'mkw') + if(.not.stat) call errquit('Could not allocate g_w', 0, GA_ERR) call ga_zero(g_w) call ga_zero(g_kw) call ga_zero(g_mkw) - call ga_zero(g_trials) g_wia = ga_create_handle() call ga_set_data(g_wia,1,npoles,mt_dbl)