diff --git a/src/becke_numerical_grid/grid_becke_vector.irp.f b/src/becke_numerical_grid/grid_becke_vector.irp.f index a72200f7..343bd054 100644 --- a/src/becke_numerical_grid/grid_becke_vector.irp.f +++ b/src/becke_numerical_grid/grid_becke_vector.irp.f @@ -58,3 +58,17 @@ END_PROVIDER enddo END_PROVIDER + +BEGIN_PROVIDER [double precision, final_grid_points_transp, (n_points_final_grid,3)] + implicit none + BEGIN_DOC +! Transposed final_grid_points + END_DOC + + integer :: i,j + do j=1,3 + do i=1,n_points_final_grid + final_grid_points_transp(i,j) = final_grid_points(j,i) + enddo + enddo +END_PROVIDER diff --git a/src/csf/conversion.irp.f b/src/csf/conversion.irp.f index b52b766d..9f7f4442 100644 --- a/src/csf/conversion.irp.f +++ b/src/csf/conversion.irp.f @@ -65,22 +65,11 @@ subroutine convertWFfromDETtoCSF(N_st,psi_coef_det_in, psi_coef_cfg_out) enddo ! Test 1 -! if(iand(MS,1) .EQ. 0) then -! bfIcfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) -! else -! bfIcfg = max(1,nint((binom(s,(s+1)/2)-binom(s,((s+1)/2)+1)))) -! endif - -! Test 2 -! double precision :: binom1, binom2 -! double precision, external :: logabsgamma -! binom1 = dexp(logabsgamma(1.0d0*(s+1)) & -! - logabsgamma(1.0d0*(((s+1)/2)+1)) & -! - logabsgamma(1.0d0*(s-(((s+1)/2))+1))); -! binom2 = dexp(logabsgamma(1.0d0*(s+1)) & -! - logabsgamma(1.0d0*((((s+3)/2)+1)+1)) & -! - logabsgamma(1.0d0*(s-(((s+3)/2)+1)+1))); -! bfIcfg = max(1,nint(binom1 - binom2)) + if(iand(MS,1) .EQ. 0) then + bfIcfg = max(1,nint((binom(s,s/2)-binom(s,s/2+1)))) + else + bfIcfg = max(1,nint((binom(s,(s+1)/2)-binom(s,((s+1)/2)+1)))) + endif ! perhaps blocking with CFGs of same seniority ! can be more efficient diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index 7286e91e..4d409f50 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -65,23 +65,9 @@ dimcsfpercfg = 2 else if(iand(MS,1) .EQ. 0) then -! dimcsfpercfg = max(1,nint((binom(i,i/2)-binom(i,i/2+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)) + dimcsfpercfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) else -! dimcsfpercfg = max(1,nint((binom(i,(i+1)/2)-binom(i,(i+3)/2)))) - 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)) + dimcsfpercfg = max(1,nint((binom(i,(i+1)/2)-binom(i,(i+3)/2)))) endif endif n_CSF += ncfg * dimcsfpercfg diff --git a/src/davidson/diagonalize_ci.irp.f b/src/davidson/diagonalize_ci.irp.f index 54e248cc..46ad8f78 100644 --- a/src/davidson/diagonalize_ci.irp.f +++ b/src/davidson/diagonalize_ci.irp.f @@ -3,6 +3,7 @@ BEGIN_PROVIDER [ double precision, CI_energy, (N_states_diag) ] BEGIN_DOC ! :c:data:`n_states` lowest eigenvalues of the |CI| matrix END_DOC + PROVIDE distributed_davidson integer :: j character*(8) :: st @@ -246,6 +247,7 @@ subroutine diagonalize_CI ! eigenstates of the |CI| matrix. END_DOC integer :: i,j + PROVIDE distributed_davidson do j=1,N_states do i=1,N_det psi_coef(i,j) = CI_eigenvectors(i,j) diff --git a/src/utils/sort.irp.f b/src/utils/sort.irp.f index a63eb4a3..ff40263c 100644 --- a/src/utils/sort.irp.f +++ b/src/utils/sort.irp.f @@ -356,7 +356,8 @@ BEGIN_TEMPLATE if ( isize < 32) then call insertion_$Xsort(x,iorder,isize) else - call $Xradix_sort(x,iorder,isize,-1) +! call $Xradix_sort(x,iorder,isize,-1) + call quick_$Xsort(x,iorder,isize) endif end subroutine $Xsort @@ -450,7 +451,8 @@ BEGIN_TEMPLATE if ( isize < 32) then call insertion_$Xsort(x,iorder,isize) else - call $Xradix_sort(x,iorder,isize,-1) +! call $Xradix_sort(x,iorder,isize,-1) + call quick_$Xsort(x,iorder,isize) endif end subroutine $Xsort