From 22b28fc77435dc74268a952a3c1e30e016601d66 Mon Sep 17 00:00:00 2001 From: ydamour Date: Tue, 22 Mar 2022 10:49:39 +0100 Subject: [PATCH 1/4] csf fix segfault --- src/csf/sigma_vector.irp.f | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index 4d409f50..beb827ba 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -52,10 +52,15 @@ ncfgpersomo = cfg_seniority_index(i+2) else k = 0 - do while(cfg_seniority_index(i+2+k) < ncfgpersomo) - k = k + 2 - ncfgpersomo = cfg_seniority_index(i+2+k) - enddo + if ((i+2+k) < size(cfg_seniority_index,1)) then + do while(cfg_seniority_index(i+2+k) < ncfgpersomo) + k = k + 2 + if ((i+2+k) >= size(cfg_seniority_index,1)) then + exit + endif + ncfgpersomo = cfg_seniority_index(i+2+k) + enddo + endif endif endif ncfg = ncfgpersomo - ncfgprev @@ -75,10 +80,15 @@ ncfgprev = cfg_seniority_index(i+2) else k = 0 - do while(cfg_seniority_index(i+2+k) < ncfgprev) - k = k + 2 - ncfgprev = cfg_seniority_index(i+2+k) - enddo + if ((i+2+k) < size(cfg_seniority_index,1)) then + do while(cfg_seniority_index(i+2+k) < ncfgprev) + k = k + 2 + if ((i+2+k) >= size(cfg_seniority_index,1)) then + exit + endif + ncfgprev = cfg_seniority_index(i+2+k) + enddo + endif endif enddo END_PROVIDER From 8a759e6a943ae3604dc0d7636c4a2bf9da6af03c Mon Sep 17 00:00:00 2001 From: ydamour Date: Thu, 24 Mar 2022 16:14:31 +0100 Subject: [PATCH 2/4] csf remove do while loops --- src/csf/sigma_vector.irp.f | 58 +++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index beb827ba..026dd839 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -51,16 +51,24 @@ if(cfg_seniority_index(i+2) > ncfgpersomo) then ncfgpersomo = cfg_seniority_index(i+2) else - k = 0 - if ((i+2+k) < size(cfg_seniority_index,1)) then - do while(cfg_seniority_index(i+2+k) < ncfgpersomo) - k = k + 2 - if ((i+2+k) >= size(cfg_seniority_index,1)) then - exit - endif - ncfgpersomo = cfg_seniority_index(i+2+k) - enddo - endif + ! l = i+k+2 + ! Loop over l with a constraint to ensure that l <= size(cfg_seniority_index,1)-1 + ! Old version commented just below + do l = min(size(cfg_seniority_index,1)-1, i+2), size(cfg_seniority_index,1)-1, 2 + if (cfg_seniority_index(l) >= ncfgpersomo) then + ncfgpersomo = cfg_seniority_index(l) + endif + enddo + !k = 0 + !if ((i+2+k) < size(cfg_seniority_index,1)) then + ! do while(cfg_seniority_index(i+2+k) < ncfgpersomo) + ! k = k + 2 + ! if ((i+2+k) >= size(cfg_seniority_index,1)) then + ! exit + ! endif + ! ncfgpersomo = cfg_seniority_index(i+2+k) + ! enddo + !endif endif endif ncfg = ncfgpersomo - ncfgprev @@ -79,16 +87,26 @@ if(cfg_seniority_index(i+2) > ncfgprev) then ncfgprev = cfg_seniority_index(i+2) else - k = 0 - if ((i+2+k) < size(cfg_seniority_index,1)) then - do while(cfg_seniority_index(i+2+k) < ncfgprev) - k = k + 2 - if ((i+2+k) >= size(cfg_seniority_index,1)) then - exit - endif - ncfgprev = cfg_seniority_index(i+2+k) - enddo - endif + ! l = i+k+2 + ! Loop over l with a constraint to ensure that l <= size(cfg_seniority_index,1)-1 + ! Old version commented just below + do l = min(size(cfg_seniority_index,1)-1, i+2), size(cfg_seniority_index,1)-1, 2 + print*,'l' + if (cfg_seniority_index(l) >= ncfgprev) then + ncfgprev = cfg_seniority_index(l) + endif + print*,'ncfgprev', ncfgprev + enddo + !k = 0 + !if ((i+2+k) < size(cfg_seniority_index,1)) then + ! do while(cfg_seniority_index(i+2+k) < ncfgprev) + ! k = k + 2 + ! if ((i+2+k) >= size(cfg_seniority_index,1)) then + ! exit + ! endif + ! ncfgprev = cfg_seniority_index(i+2+k) + ! enddo + !endif endif enddo END_PROVIDER From bda895104242464d927be55e4b6a8426e23975c0 Mon Sep 17 00:00:00 2001 From: ydamour Date: Thu, 24 Mar 2022 16:18:51 +0100 Subject: [PATCH 3/4] remove print --- src/csf/sigma_vector.irp.f | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index 026dd839..5aaba9a3 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -91,11 +91,9 @@ ! Loop over l with a constraint to ensure that l <= size(cfg_seniority_index,1)-1 ! Old version commented just below do l = min(size(cfg_seniority_index,1)-1, i+2), size(cfg_seniority_index,1)-1, 2 - print*,'l' if (cfg_seniority_index(l) >= ncfgprev) then ncfgprev = cfg_seniority_index(l) endif - print*,'ncfgprev', ncfgprev enddo !k = 0 !if ((i+2+k) < size(cfg_seniority_index,1)) then From 511a80e062213a76d2bc7aa7cf7179c74786de24 Mon Sep 17 00:00:00 2001 From: ydamour Date: Mon, 28 Mar 2022 20:08:35 +0200 Subject: [PATCH 4/4] add excitation energies in eV --- src/cis/cis.irp.f | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/cis/cis.irp.f b/src/cis/cis.irp.f index ab2294ad..f72197c2 100644 --- a/src/cis/cis.irp.f +++ b/src/cis/cis.irp.f @@ -62,6 +62,7 @@ subroutine run else call H_apply_cis endif + print*,'' print *, 'N_det = ', N_det print*,'******************************' print *, 'Energies of the states:' @@ -69,11 +70,13 @@ subroutine run print *, i, CI_energy(i) enddo if (N_states > 1) then - print*,'******************************' - print*,'Excitation energies ' + print*,'' + print*,'******************************************************' + print*,'Excitation energies (au) (eV)' do i = 2, N_states - print*, i ,CI_energy(i) - CI_energy(1) + print*, i ,CI_energy(i) - CI_energy(1), (CI_energy(i) - CI_energy(1))/0.0367502d0 enddo + print*,'' endif call ezfio_set_cis_energy(CI_energy)