diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index c1b0b228..85ed5f84 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -1,8 +1,8 @@ - real*8 function lgamma(x) + real*8 function logabsgamma(x) implicit none real*8, intent(in) :: x - lgamma = log(abs(gamma(x))) - end function lgamma + logabsgamma = log(abs(gamma(x))) + end function logabsgamma BEGIN_PROVIDER [ integer, NSOMOMax] &BEGIN_PROVIDER [ integer, NCSFMax] @@ -31,7 +31,7 @@ real*8 :: coeff, binom1, binom2 integer MS integer ncfgpersomo - real*8, external :: lgamma + real*8, external :: logabsgamma detDimperBF = 0 MS = elec_alpha_num-elec_beta_num ! number of cfgs = number of dets for 0 somos @@ -58,21 +58,21 @@ ncfg = ncfgpersomo - ncfgprev if(iand(MS,1) .EQ. 0) then !dimcsfpercfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) - binom1 = dexp(lgamma(1.0d0*(i+1)) & - - lgamma(1.0d0*((i/2)+1)) & - - lgamma(1.0d0*(i-((i/2))+1))); - binom2 = dexp(lgamma(1.0d0*(i+1)) & - - lgamma(1.0d0*(((i/2)+1)+1)) & - - lgamma(1.0d0*(i-((i/2)+1)+1))); + binom1 = dexp(logabsgamma(1.0d0*(i+1)) & + - logabsgamma(1.0d0*((i/2)+1)) & + - logabsgamma(1.0d0*(i-((i/2))+1))); + binom2 = dexp(logabsgamma(1.0d0*(i+1)) & + - logabsgamma(1.0d0*(((i/2)+1)+1)) & + - logabsgamma(1.0d0*(i-((i/2)+1)+1))); dimcsfpercfg = max(1,nint(binom1 - binom2)) else !dimcsfpercfg = max(1,nint((binom(i,(i+1)/2)-binom(i,(i+3)/2)))) - binom1 = dexp(lgamma(1.0d0*(i+1)) & - - lgamma(1.0d0*(((i+1)/2)+1)) & - - lgamma(1.0d0*(i-(((i+1)/2))+1))); - binom2 = dexp(lgamma(1.0d0*(i+1)) & - - lgamma(1.0d0*((((i+3)/2)+1)+1)) & - - lgamma(1.0d0*(i-(((i+3)/2)+1)+1))); + binom1 = dexp(logabsgamma(1.0d0*(i+1)) & + - logabsgamma(1.0d0*(((i+1)/2)+1)) & + - logabsgamma(1.0d0*(i-(((i+1)/2))+1))); + binom2 = dexp(logabsgamma(1.0d0*(i+1)) & + - logabsgamma(1.0d0*((((i+3)/2)+1)+1)) & + - logabsgamma(1.0d0*(i-(((i+3)/2)+1)+1))); dimcsfpercfg = max(1,nint(binom1 - binom2)) endif n_CSF += ncfg * dimcsfpercfg diff --git a/src/davidson/diagonalize_ci.irp.f b/src/davidson/diagonalize_ci.irp.f index da5fb950..06744934 100644 --- a/src/davidson/diagonalize_ci.irp.f +++ b/src/davidson/diagonalize_ci.irp.f @@ -57,8 +57,8 @@ END_PROVIDER enddo ! Deactivated temporarily: bug in N_csf -! do_csf = s2_eig .and. only_expected_s2 .and. (expected_s2 == 0.d0) - do_csf = .False. + do_csf = s2_eig .and. only_expected_s2 .and. (expected_s2 == 0.d0) +! do_csf = .False. if (diag_algorithm == "Davidson") then