2016-09-15 18:34:07 +02:00
|
|
|
program print_1h2p
|
|
|
|
implicit none
|
|
|
|
read_wf = .True.
|
|
|
|
touch read_wf
|
|
|
|
call routine
|
|
|
|
end
|
|
|
|
|
|
|
|
subroutine routine
|
|
|
|
implicit none
|
|
|
|
double precision,allocatable :: matrix_1h2p(:,:,:)
|
|
|
|
allocate (matrix_1h2p(N_det,N_det,N_states))
|
|
|
|
integer :: i,j,istate
|
|
|
|
do i = 1, N_det
|
|
|
|
do j = 1, N_det
|
|
|
|
do istate = 1, N_states
|
|
|
|
matrix_1h2p(i,j,istate) = 0.d0
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
enddo
|
2016-09-18 19:46:13 +02:00
|
|
|
if(.False.)then
|
|
|
|
call give_1h2p_contrib(matrix_1h2p)
|
2016-09-15 18:34:07 +02:00
|
|
|
double precision :: accu
|
|
|
|
accu = 0.d0
|
|
|
|
do i = 1, N_det
|
|
|
|
do j = 1, N_det
|
|
|
|
accu += matrix_1h2p(i,j,1) * psi_coef(i,1) * psi_coef(j,1)
|
|
|
|
enddo
|
|
|
|
enddo
|
2016-09-18 19:46:13 +02:00
|
|
|
print*, 'second order ', accu
|
|
|
|
endif
|
|
|
|
|
|
|
|
if(.True.)then
|
|
|
|
do i = 1, N_det
|
|
|
|
do j = 1, N_det
|
|
|
|
do istate = 1, N_states
|
|
|
|
matrix_1h2p(i,j,istate) = 0.d0
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
call give_1h2p_new(matrix_1h2p)
|
|
|
|
accu = 0.d0
|
|
|
|
do i = 1, N_det
|
|
|
|
do j = 1, N_det
|
|
|
|
accu += matrix_1h2p(i,j,1) * psi_coef(i,1) * psi_coef(j,1)
|
|
|
|
enddo
|
|
|
|
enddo
|
2016-09-18 20:53:28 +02:00
|
|
|
endif
|
2016-09-18 19:46:13 +02:00
|
|
|
print*, 'third order ', accu
|
2016-09-15 18:34:07 +02:00
|
|
|
|
|
|
|
deallocate (matrix_1h2p)
|
|
|
|
end
|