2014-05-13 13:57:58 +02:00
|
|
|
use bitmasks
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ integer, N_states ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Number of states to consider
|
|
|
|
END_DOC
|
|
|
|
N_states = 1
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ integer, N_det ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Number of determinants in the wave function
|
|
|
|
END_DOC
|
2014-05-14 15:40:40 +02:00
|
|
|
N_det = 1
|
2014-05-13 13:57:58 +02:00
|
|
|
END_PROVIDER
|
|
|
|
|
2014-05-14 15:40:40 +02:00
|
|
|
BEGIN_PROVIDER [ integer, psi_det_size ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Size of the psi_det/psi_coef arrays
|
|
|
|
END_DOC
|
|
|
|
psi_det_size = 1000
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ integer(bit_kind), psi_det, (N_int,2,psi_det_size) ]
|
|
|
|
&BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ]
|
2014-05-13 13:57:58 +02:00
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! The wave function. Initialized with Hartree-Fock
|
|
|
|
END_DOC
|
|
|
|
|
|
|
|
integer, save :: ifirst = 0
|
|
|
|
|
|
|
|
if (ifirst == 0) then
|
|
|
|
ifirst = 1
|
|
|
|
psi_det = 0_bit_kind
|
|
|
|
psi_coef = 0.d0
|
|
|
|
|
|
|
|
integer :: i
|
|
|
|
do i=1,N_int
|
|
|
|
psi_det(i,1,1) = HF_bitmask(i,1)
|
|
|
|
psi_det(i,2,1) = HF_bitmask(i,2)
|
|
|
|
enddo
|
|
|
|
|
|
|
|
do i=1,N_states
|
|
|
|
psi_coef(i,i) = 1.d0
|
|
|
|
enddo
|
|
|
|
endif
|
|
|
|
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
|