diff --git a/src/csf/configurations.irp.f b/src/csf/configurations.irp.f index 3ecaa517..ce5d48ab 100644 --- a/src/csf/configurations.irp.f +++ b/src/csf/configurations.irp.f @@ -332,7 +332,7 @@ subroutine configuration_to_dets_tree_addressing(o,d,sze,n_alpha,Nint) end - BEGIN_PROVIDER [ integer(bit_kind), psi_configuration, (N_int,2,N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_configuration, (N_int,2,psi_det_size) ] &BEGIN_PROVIDER [ integer, N_configuration ] implicit none BEGIN_DOC diff --git a/src/davidson/davidson_parallel.irp.f b/src/davidson/davidson_parallel.irp.f index b642d7a4..e627dfc9 100644 --- a/src/davidson/davidson_parallel.irp.f +++ b/src/davidson/davidson_parallel.irp.f @@ -99,7 +99,7 @@ subroutine davidson_slave_work(zmq_to_qp_run_socket, zmq_socket_push, N_st, sze, integer :: rc, ni, nj integer*8 :: rc8 - integer :: N_states_read, N_det_read + integer :: N_states_read, N_det_read, psi_det_size_read integer :: N_det_selectors_read, N_det_generators_read integer, external :: zmq_get_dvector diff --git a/src/davidson/davidson_parallel_csf.irp.f b/src/davidson/davidson_parallel_csf.irp.f index 8a8fcc4a..d8e9bffa 100644 --- a/src/davidson/davidson_parallel_csf.irp.f +++ b/src/davidson/davidson_parallel_csf.irp.f @@ -99,7 +99,7 @@ subroutine davidson_csf_slave_work(zmq_to_qp_run_socket, zmq_socket_push, N_st, integer :: rc, ni, nj integer*8 :: rc8 - integer :: N_states_read, N_det_read + integer :: N_states_read, N_det_read, psi_det_size_read integer :: N_det_selectors_read, N_det_generators_read integer, external :: zmq_get_dvector diff --git a/src/davidson/davidson_parallel_nos2.irp.f b/src/davidson/davidson_parallel_nos2.irp.f index dcc9687d..597b001f 100644 --- a/src/davidson/davidson_parallel_nos2.irp.f +++ b/src/davidson/davidson_parallel_nos2.irp.f @@ -99,7 +99,7 @@ subroutine davidson_nos2_slave_work(zmq_to_qp_run_socket, zmq_socket_push, N_st, integer :: rc, ni, nj integer*8 :: rc8 - integer :: N_states_read, N_det_read + integer :: N_states_read, N_det_read, psi_det_size_read integer :: N_det_selectors_read, N_det_generators_read integer, external :: zmq_get_dvector diff --git a/src/davidson/u0_hs2_u0.irp.f b/src/davidson/u0_hs2_u0.irp.f index e67777e7..38fb56bd 100644 --- a/src/davidson/u0_hs2_u0.irp.f +++ b/src/davidson/u0_hs2_u0.irp.f @@ -6,7 +6,7 @@ ! ! psi_s2(i) = $\langle \Psi_i | S^2 | \Psi_i \rangle$ END_DOC - call u_0_HS2_u_0(psi_energy,psi_s2,psi_coef,N_det,psi_det,N_int,N_states,N_det) + call u_0_HS2_u_0(psi_energy,psi_s2,psi_coef,N_det,psi_det,N_int,N_states,psi_det_size) integer :: i do i=N_det+1,N_states psi_energy(i) = 0.d0 diff --git a/src/davidson/u0_wee_u0.irp.f b/src/davidson/u0_wee_u0.irp.f index e53d76ea..0c543aca 100644 --- a/src/davidson/u0_wee_u0.irp.f +++ b/src/davidson/u0_wee_u0.irp.f @@ -4,7 +4,7 @@ BEGIN_PROVIDER [ double precision, psi_energy_two_e, (N_states) ] ! Energy of the current wave function END_DOC integer :: i,j - call u_0_H_u_0_two_e(psi_energy_two_e,psi_coef,N_det,psi_det,N_int,N_states,N_det) + call u_0_H_u_0_two_e(psi_energy_two_e,psi_coef,N_det,psi_det,N_int,N_states,psi_det_size) do i=N_det+1,N_states psi_energy_two_e(i) = 0.d0 enddo diff --git a/src/determinants/determinants.irp.f b/src/determinants/determinants.irp.f index 36da8c07..4b317025 100644 --- a/src/determinants/determinants.irp.f +++ b/src/determinants/determinants.irp.f @@ -70,7 +70,42 @@ BEGIN_PROVIDER [integer, max_degree_exc] enddo END_PROVIDER -BEGIN_PROVIDER [ integer(bit_kind), psi_det, (N_int,2,N_det) ] +BEGIN_PROVIDER [ integer, psi_det_size ] + implicit none + BEGIN_DOC + ! Size of the psi_det and psi_coef arrays + END_DOC + PROVIDE ezfio_filename + logical :: exists + psi_det_size = 1 + PROVIDE mpi_master + if (read_wf) then + if (mpi_master) then + call ezfio_has_determinants_n_det(exists) + if (exists) then + call ezfio_get_determinants_n_det(psi_det_size) + else + psi_det_size = 1 + endif + call write_int(6,psi_det_size,'Dimension of the psi arrays') + endif + IRP_IF MPI_DEBUG + print *, irp_here, mpi_rank + call MPI_BARRIER(MPI_COMM_WORLD, ierr) + IRP_ENDIF + IRP_IF MPI + include 'mpif.h' + integer :: ierr + call MPI_BCAST( psi_det_size, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + if (ierr /= MPI_SUCCESS) then + stop 'Unable to read psi_det_size with MPI' + endif + IRP_ENDIF + endif + +END_PROVIDER + +BEGIN_PROVIDER [ integer(bit_kind), psi_det, (N_int,2,psi_det_size) ] implicit none BEGIN_DOC ! The determinants of the wave function. Initialized with Hartree-Fock if the |EZFIO| file @@ -141,7 +176,7 @@ END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_coef, (N_det,N_states) ] +BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! The wave function coefficients. Initialized with Hartree-Fock if the |EZFIO| file @@ -154,7 +189,7 @@ BEGIN_PROVIDER [ double precision, psi_coef, (N_det,N_states) ] PROVIDE read_wf N_det mo_label ezfio_filename psi_coef = 0.d0 - do i=1,min(N_states,N_det) + do i=1,min(N_states,psi_det_size) psi_coef(i,i) = 1.d0 enddo @@ -202,7 +237,7 @@ BEGIN_PROVIDER [ double precision, psi_coef, (N_det,N_states) ] END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_average_norm_contrib, (N_det) ] +BEGIN_PROVIDER [ double precision, psi_average_norm_contrib, (psi_det_size) ] implicit none BEGIN_DOC ! Contribution of determinants to the state-averaged density. @@ -252,10 +287,10 @@ END_PROVIDER !==============================================================================! - BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_sorted, (N_det,N_states) ] -&BEGIN_PROVIDER [ double precision, psi_average_norm_contrib_sorted, (N_det) ] -&BEGIN_PROVIDER [ integer, psi_det_sorted_order, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_sorted, (psi_det_size,N_states) ] +&BEGIN_PROVIDER [ double precision, psi_average_norm_contrib_sorted, (psi_det_size) ] +&BEGIN_PROVIDER [ integer, psi_det_sorted_order, (psi_det_size) ] implicit none BEGIN_DOC ! Wave function sorted by determinants contribution to the norm (state-averaged) @@ -284,12 +319,17 @@ END_PROVIDER psi_det_sorted_order(iorder(i)) = i enddo + psi_det_sorted(:,:,N_det+1:psi_det_size) = 0_bit_kind + psi_coef_sorted(N_det+1:psi_det_size,:) = 0.d0 + psi_average_norm_contrib_sorted(N_det+1:psi_det_size) = 0.d0 + psi_det_sorted_order(N_det+1:psi_det_size) = 0 + deallocate(iorder) END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_bit, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_sorted_bit, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_bit, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_sorted_bit, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! Determinants on which we apply $\langle i|H|psi \rangle$ for perturbation. @@ -315,6 +355,9 @@ subroutine sort_dets_by_det_search_key(Ndet, det_in, coef_in, sze, det_out, coef ! Determinants are sorted according to their :c:func:`det_search_key`. ! Useful to accelerate the search of a random determinant in the wave ! function. + ! + ! /!\ The first dimension of coef_out and coef_in need to be psi_det_size + ! END_DOC integer :: i,j,k integer, allocatable :: iorder(:) @@ -448,11 +491,7 @@ subroutine save_wavefunction_truncated(thr) endif enddo if (mpi_master) then - call save_wavefunction_general(N_det_save, & - min(N_states,N_det_save), & - psi_det_sorted, & - size(psi_coef_sorted,1), & - psi_coef_sorted) + call save_wavefunction_general(N_det_save,min(N_states,N_det_save),psi_det_sorted,size(psi_coef_sorted,1),psi_coef_sorted) endif end diff --git a/src/determinants/h_apply.irp.f b/src/determinants/h_apply.irp.f index 246ff209..d01ad1c7 100644 --- a/src/determinants/h_apply.irp.f +++ b/src/determinants/h_apply.irp.f @@ -159,7 +159,10 @@ subroutine copy_H_apply_buffer_to_wf enddo ! Update array sizes - TOUCH N_det + if (psi_det_size < N_det) then + psi_det_size = N_det + TOUCH psi_det_size + endif ! Restore backup in resized array do i=1,N_det_old @@ -177,7 +180,7 @@ subroutine copy_H_apply_buffer_to_wf !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(j,k,i) FIRSTPRIVATE(N_det_old) & - !$OMP SHARED(N_int,H_apply_buffer,psi_det,psi_coef,N_states,N_det) + !$OMP SHARED(N_int,H_apply_buffer,psi_det,psi_coef,N_states,psi_det_size) j=0 !$ j=omp_get_thread_num() do k=0,j-1 diff --git a/src/determinants/psi_cas.irp.f b/src/determinants/psi_cas.irp.f index 125ec1e1..19a1c260 100644 --- a/src/determinants/psi_cas.irp.f +++ b/src/determinants/psi_cas.irp.f @@ -1,8 +1,8 @@ use bitmasks - BEGIN_PROVIDER [ integer(bit_kind), psi_cas, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_cas_coef, (N_det,n_states) ] -&BEGIN_PROVIDER [ integer, idx_cas, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_cas, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_cas_coef, (psi_det_size,n_states) ] +&BEGIN_PROVIDER [ integer, idx_cas, (psi_det_size) ] &BEGIN_PROVIDER [ integer, N_det_cas ] implicit none BEGIN_DOC @@ -44,8 +44,8 @@ use bitmasks END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_cas_sorted_bit, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_cas_coef_sorted_bit, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_cas_sorted_bit, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_cas_coef_sorted_bit, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! |CAS| determinants sorted to accelerate the search of a random determinant in the wave @@ -58,9 +58,9 @@ END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_non_cas_coef, (N_det,n_states) ] -&BEGIN_PROVIDER [ integer, idx_non_cas, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_cas_coef, (psi_det_size,n_states) ] +&BEGIN_PROVIDER [ integer, idx_non_cas, (psi_det_size) ] &BEGIN_PROVIDER [ integer, N_det_non_cas ] implicit none BEGIN_DOC @@ -97,8 +97,8 @@ END_PROVIDER N_det_non_cas = i_non_cas END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas_sorted_bit, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_non_cas_coef_sorted_bit, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas_sorted_bit, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_cas_coef_sorted_bit, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! |CAS| determinants sorted to accelerate the search of a random determinant in the wave diff --git a/src/determinants/s2.irp.f b/src/determinants/s2.irp.f index abae212f..2c1a8757 100644 --- a/src/determinants/s2.irp.f +++ b/src/determinants/s2.irp.f @@ -110,7 +110,7 @@ END_PROVIDER ! array of the averaged values of the S^2 operator on the various states END_DOC integer :: i - call u_0_S2_u_0(s2_values,psi_coef,n_det,psi_det,N_int,N_states,N_det) + call u_0_S2_u_0(s2_values,psi_coef,n_det,psi_det,N_int,N_states,psi_det_size) do i = 1, N_states s_values(i) = 0.5d0 *(-1.d0 + dsqrt(1.d0 + 4 * s2_values(i))) enddo diff --git a/src/determinants/spindeterminants.irp.f b/src/determinants/spindeterminants.irp.f index e4a857a9..dd55e112 100644 --- a/src/determinants/spindeterminants.irp.f +++ b/src/determinants/spindeterminants.irp.f @@ -24,7 +24,7 @@ integer*8 function spin_det_search_key(det,Nint) end -BEGIN_PROVIDER [ integer(bit_kind), psi_det_alpha, (N_int,N_det) ] +BEGIN_PROVIDER [ integer(bit_kind), psi_det_alpha, (N_int,psi_det_size) ] implicit none BEGIN_DOC ! List of $\alpha$ determinants of psi_det @@ -39,7 +39,7 @@ BEGIN_PROVIDER [ integer(bit_kind), psi_det_alpha, (N_int,N_det) ] END_PROVIDER -BEGIN_PROVIDER [ integer(bit_kind), psi_det_beta, (N_int,N_det) ] +BEGIN_PROVIDER [ integer(bit_kind), psi_det_beta, (N_int,psi_det_size) ] implicit none BEGIN_DOC ! List of $\beta$ determinants of psi_det @@ -56,7 +56,7 @@ END_PROVIDER BEGIN_TEMPLATE - BEGIN_PROVIDER [ integer(bit_kind), psi_det_$alpha_unique, (N_int,N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_$alpha_unique, (N_int,psi_det_size) ] &BEGIN_PROVIDER [ integer, N_det_$alpha_unique ] implicit none BEGIN_DOC diff --git a/src/determinants/zmq.irp.f b/src/determinants/zmq.irp.f index 7288de05..5a114533 100644 --- a/src/determinants/zmq.irp.f +++ b/src/determinants/zmq.irp.f @@ -10,6 +10,7 @@ integer function zmq_put_psi(zmq_to_qp_run_socket,worker_id) integer, external :: zmq_put_N_states integer, external :: zmq_put_N_det + integer, external :: zmq_put_psi_det_size integer*8, external :: zmq_put_psi_det integer*8, external :: zmq_put_psi_coef @@ -22,6 +23,10 @@ integer function zmq_put_psi(zmq_to_qp_run_socket,worker_id) zmq_put_psi = -1 return endif + if (zmq_put_psi_det_size(zmq_to_qp_run_socket, worker_id) == -1) then + zmq_put_psi = -1 + return + endif if (zmq_put_psi_det(zmq_to_qp_run_socket, worker_id) == -1) then zmq_put_psi = -1 return @@ -46,6 +51,7 @@ integer function zmq_get_psi_notouch(zmq_to_qp_run_socket, worker_id) integer, external :: zmq_get_N_states integer, external :: zmq_get_N_det + integer, external :: zmq_get_psi_det_size integer*8, external :: zmq_get_psi_det integer*8, external :: zmq_get_psi_coef @@ -59,15 +65,19 @@ integer function zmq_get_psi_notouch(zmq_to_qp_run_socket, worker_id) zmq_get_psi_notouch = -1 return endif - - if (size(psi_det,kind=8) /= N_int*2_8*N_det*bit_kind) then - deallocate(psi_det) - allocate(psi_det(N_int,2,N_det)) + if (zmq_get_psi_det_size(zmq_to_qp_run_socket, worker_id) == -1) then + zmq_get_psi_notouch = -1 + return endif - if (size(psi_coef,kind=8) /= N_det*N_states) then + if (size(psi_det,kind=8) /= N_int*2_8*psi_det_size*bit_kind) then + deallocate(psi_det) + allocate(psi_det(N_int,2,psi_det_size)) + endif + + if (size(psi_coef,kind=8) /= psi_det_size*N_states) then deallocate(psi_coef) - allocate(psi_coef(N_det,N_states)) + allocate(psi_coef(psi_det_size,N_states)) endif if (zmq_get_psi_det(zmq_to_qp_run_socket, worker_id) == -1_8) then @@ -92,7 +102,7 @@ integer function zmq_get_psi(zmq_to_qp_run_socket, worker_id) integer, intent(in) :: worker_id integer, external :: zmq_get_psi_notouch zmq_get_psi = zmq_get_psi_notouch(zmq_to_qp_run_socket, worker_id) - SOFT_TOUCH psi_det psi_coef N_det N_states + SOFT_TOUCH psi_det psi_coef psi_det_size N_det N_states end @@ -256,7 +266,7 @@ integer function zmq_get_psi_bilinear(zmq_to_qp_run_socket, worker_id) return endif - SOFT_TOUCH psi_bilinear_matrix_values psi_bilinear_matrix_rows psi_bilinear_matrix_columns psi_bilinear_matrix_order psi_det psi_coef N_det N_states psi_det_beta_unique psi_det_alpha_unique N_det_beta_unique N_det_alpha_unique + SOFT_TOUCH psi_bilinear_matrix_values psi_bilinear_matrix_rows psi_bilinear_matrix_columns psi_bilinear_matrix_order psi_det psi_coef psi_det_size N_det N_states psi_det_beta_unique psi_det_alpha_unique N_det_beta_unique N_det_alpha_unique end @@ -364,6 +374,7 @@ N_states ;; N_det ;; N_det_alpha_unique ;; N_det_beta_unique ;; +psi_det_size ;; END_TEMPLATE diff --git a/src/generators_cas/generators.irp.f b/src/generators_cas/generators.irp.f index e499f703..b2f58202 100644 --- a/src/generators_cas/generators.irp.f +++ b/src/generators_cas/generators.irp.f @@ -20,11 +20,11 @@ BEGIN_PROVIDER [ integer, N_det_generators ] call write_int(6,N_det_generators,'Number of generators') END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_generators, (N_det,N_states) ] -&BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_gen, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_sorted_gen, (N_det,N_states) ] -&BEGIN_PROVIDER [ integer, psi_det_sorted_gen_order, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_generators, (psi_det_size,N_states) ] +&BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_gen, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_sorted_gen, (psi_det_size,N_states) ] +&BEGIN_PROVIDER [ integer, psi_det_sorted_gen_order, (psi_det_size) ] implicit none BEGIN_DOC ! For Single reference wave functions, the generator is the diff --git a/src/generators_full/generators.irp.f b/src/generators_full/generators.irp.f index 376e5e3e..7f18947f 100644 --- a/src/generators_full/generators.irp.f +++ b/src/generators_full/generators.irp.f @@ -22,8 +22,8 @@ BEGIN_PROVIDER [ integer, N_det_generators ] call write_int(6,N_det_generators,'Number of generators') END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_generators, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_generators, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! For Single reference wave functions, the generator is the @@ -34,9 +34,9 @@ END_PROVIDER END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_gen, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_sorted_gen, (N_det,N_states) ] -&BEGIN_PROVIDER [ integer, psi_det_sorted_gen_order, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_sorted_gen, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_sorted_gen, (psi_det_size,N_states) ] +&BEGIN_PROVIDER [ integer, psi_det_sorted_gen_order, (psi_det_size) ] implicit none BEGIN_DOC diff --git a/src/perturbation/selection.irp.f b/src/perturbation/selection.irp.f index d5947d25..f3f03673 100644 --- a/src/perturbation/selection.irp.f +++ b/src/perturbation/selection.irp.f @@ -90,12 +90,12 @@ subroutine remove_small_contributions enddo !$OMP PARALLEL DEFAULT(NONE) & !$OMP PRIVATE(i,j,i_H_psi_array) & - !$OMP SHARED(k,psi_det_sorted,psi_coef_sorted,N_int,N_det,N_states, & + !$OMP SHARED(k,psi_det_sorted,psi_coef_sorted,N_int,N_det,psi_det_size,N_states, & !$OMP selection_criterion_min,keep,N_det_generators) & !$OMP REDUCTION(+:N_removed) !$OMP DO do i=2*N_det_generators+1, N_det - call i_H_psi(psi_det_sorted(1,1,i),psi_det_sorted,psi_coef_sorted,N_int,min(N_det,2*N_det_generators),N_det,N_states,i_H_psi_array) + call i_H_psi(psi_det_sorted(1,1,i),psi_det_sorted,psi_coef_sorted,N_int,min(N_det,2*N_det_generators),psi_det_size,N_states,i_H_psi_array) keep(i) = .False. do j=1,N_states keep(i) = keep(i) .or. (-(psi_coef_sorted(i,j)*i_H_psi_array(j)) > selection_criterion_min) diff --git a/src/psiref_cas/psi_ref.irp.f b/src/psiref_cas/psi_ref.irp.f index 0e1df986..78dd2239 100644 --- a/src/psiref_cas/psi_ref.irp.f +++ b/src/psiref_cas/psi_ref.irp.f @@ -1,8 +1,8 @@ use bitmasks - BEGIN_PROVIDER [ integer(bit_kind), psi_ref, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_ref_coef, (N_det,n_states) ] -&BEGIN_PROVIDER [ integer, idx_ref, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_ref, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_ref_coef, (psi_det_size,n_states) ] +&BEGIN_PROVIDER [ integer, idx_ref, (psi_det_size) ] &BEGIN_PROVIDER [ integer, N_det_ref ] implicit none BEGIN_DOC @@ -26,7 +26,7 @@ use bitmasks END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_ref_coef_inv, (N_det,n_states) ] +BEGIN_PROVIDER [ double precision, psi_ref_coef_inv, (psi_det_size,n_states) ] implicit none BEGIN_DOC ! 1/psi_ref_coef @@ -41,8 +41,8 @@ BEGIN_PROVIDER [ double precision, psi_ref_coef_inv, (N_det,n_states) ] END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_ref_restart, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_ref_coef_restart, (N_det,n_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_ref_restart, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_ref_coef_restart, (psi_det_size,n_states) ] implicit none BEGIN_DOC ! Projection of the CAS wave function on the restart wave function. diff --git a/src/psiref_utils/psi_ref_utils.irp.f b/src/psiref_utils/psi_ref_utils.irp.f index 185d9778..19e42283 100644 --- a/src/psiref_utils/psi_ref_utils.irp.f +++ b/src/psiref_utils/psi_ref_utils.irp.f @@ -1,8 +1,8 @@ use bitmasks - BEGIN_PROVIDER [ integer(bit_kind), psi_ref_sorted_bit, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_ref_coef_sorted_bit, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_ref_sorted_bit, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_ref_coef_sorted_bit, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! Reference determinants sorted to accelerate the search of a random determinant in the wave @@ -14,7 +14,7 @@ use bitmasks END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_ref_coef_transp, (n_states,N_det) ] +BEGIN_PROVIDER [ double precision, psi_ref_coef_transp, (n_states,psi_det_size) ] implicit none BEGIN_DOC ! Transposed psi_ref_coef @@ -27,7 +27,7 @@ BEGIN_PROVIDER [ double precision, psi_ref_coef_transp, (n_states,N_det) ] enddo END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_ref_coef_normalized, (N_det,n_states) ] +BEGIN_PROVIDER [ double precision, psi_ref_coef_normalized, (psi_det_size,n_states) ] implicit none BEGIN_DOC ! Normalized coefficients of the reference @@ -43,7 +43,7 @@ BEGIN_PROVIDER [ double precision, psi_ref_coef_normalized, (N_det,n_states) ] END_PROVIDER -BEGIN_PROVIDER [ double precision, psi_non_ref_coef_transp, (n_states,N_det) ] +BEGIN_PROVIDER [ double precision, psi_non_ref_coef_transp, (n_states,psi_det_size) ] implicit none BEGIN_DOC ! Transposed psi_non_ref_coef @@ -56,10 +56,10 @@ BEGIN_PROVIDER [ double precision, psi_non_ref_coef_transp, (n_states,N_det) ] enddo END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_non_ref_coef, (N_det,n_states) ] -&BEGIN_PROVIDER [ integer, idx_non_ref, (N_det) ] -&BEGIN_PROVIDER [ integer, idx_non_ref_rev, (N_det) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_ref_coef, (psi_det_size,n_states) ] +&BEGIN_PROVIDER [ integer, idx_non_ref, (psi_det_size) ] +&BEGIN_PROVIDER [ integer, idx_non_ref_rev, (psi_det_size) ] &BEGIN_PROVIDER [ integer, N_det_non_ref ] implicit none BEGIN_DOC @@ -102,8 +102,8 @@ END_PROVIDER endif END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_restart, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_non_ref_coef_restart, (N_det,n_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_restart, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_ref_coef_restart, (psi_det_size,n_states) ] implicit none BEGIN_DOC ! Set of determinants which are not part of the reference, defined from the application @@ -144,8 +144,8 @@ END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_sorted_bit, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_non_ref_coef_sorted_bit, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_sorted_bit, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_ref_coef_sorted_bit, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! Reference determinants sorted to accelerate the search of a random determinant in the wave diff --git a/src/selectors_utils/selectors.irp.f b/src/selectors_utils/selectors.irp.f index 765bd5e8..92366d1d 100644 --- a/src/selectors_utils/selectors.irp.f +++ b/src/selectors_utils/selectors.irp.f @@ -2,7 +2,7 @@ use bitmasks BEGIN_PROVIDER [ integer, psi_selectors_size ] implicit none - psi_selectors_size = N_det + psi_selectors_size = psi_det_size END_PROVIDER BEGIN_PROVIDER [ double precision, psi_selectors_coef_transp, (N_states,psi_selectors_size) ] diff --git a/src/single_ref_method/generators.irp.f b/src/single_ref_method/generators.irp.f index dd6985a5..ce71f996 100644 --- a/src/single_ref_method/generators.irp.f +++ b/src/single_ref_method/generators.irp.f @@ -9,8 +9,8 @@ BEGIN_PROVIDER [ integer, N_det_generators ] N_det_generators = 1 END_PROVIDER - BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,N_det) ] -&BEGIN_PROVIDER [ double precision, psi_coef_generators, (N_det,N_states) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_det_generators, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_coef_generators, (psi_det_size,N_states) ] implicit none BEGIN_DOC ! For Single reference wave functions, the generator is the