10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-23 04:43:50 +01:00

Forgot file

This commit is contained in:
Anthony Scemama 2017-12-18 18:05:06 +01:00
parent e837d7d2ad
commit 7bb866e8ad
3 changed files with 34 additions and 18 deletions

View File

@ -0,0 +1,10 @@
module dress_types
type dress_buffer
double precision, pointer :: buf(:,:,:), buf0(:,:), coef(:)
double precision :: N
integer, pointer :: det_to_buf(:), buf_to_det(:)
integer :: free_under, pos, N_slot
logical :: full
endtype
end module

View File

@ -4,6 +4,14 @@ BEGIN_PROVIDER [ integer, fragment_first ]
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [ integer, mrcc_stoch_istate ]
implicit none
BEGIN_DOC
! State considered
END_DOC
mrcc_stoch_istate = 1
END_PROVIDER
subroutine ZMQ_mrcc(E, mrcc, delta, delta_s2, relative_error) subroutine ZMQ_mrcc(E, mrcc, delta, delta_s2, relative_error)
use dress_types use dress_types
use f77_zmq use f77_zmq
@ -14,7 +22,7 @@ subroutine ZMQ_mrcc(E, mrcc, delta, delta_s2, relative_error)
integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_socket_pull integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_socket_pull
integer, external :: omp_get_thread_num integer, external :: omp_get_thread_num
double precision, intent(in) :: relative_error, E double precision, intent(in) :: relative_error, E(N_states)
double precision, intent(out) :: mrcc(N_states) double precision, intent(out) :: mrcc(N_states)
double precision, intent(out) :: delta(N_states, N_det_non_ref) double precision, intent(out) :: delta(N_states, N_det_non_ref)
double precision, intent(out) :: delta_s2(N_states, N_det_non_ref) double precision, intent(out) :: delta_s2(N_states, N_det_non_ref)
@ -67,6 +75,7 @@ subroutine ZMQ_mrcc(E, mrcc, delta, delta_s2, relative_error)
! end do ! end do
integer(ZMQ_PTR), external :: new_zmq_to_qp_run_socket integer(ZMQ_PTR), external :: new_zmq_to_qp_run_socket
integer, external :: add_task_to_taskserver, zmq_set_running
integer :: ipos integer :: ipos
ipos=1 ipos=1
do i=1,N_mrcc_jobs do i=1,N_mrcc_jobs
@ -152,7 +161,6 @@ subroutine mrcc_collector(zmq_socket_pull, E, relative_error, delta, delta_s2, m
integer(ZMQ_PTR) :: zmq_to_qp_run_socket integer(ZMQ_PTR) :: zmq_to_qp_run_socket
integer(ZMQ_PTR), external :: new_zmq_pull_socket integer(ZMQ_PTR), external :: new_zmq_pull_socket
integer(ZMQ_PTR) :: zmq_socket_pull
integer :: more integer :: more
integer :: i, j, k, i_state, N, ntask integer :: i, j, k, i_state, N, ntask
@ -191,7 +199,6 @@ subroutine mrcc_collector(zmq_socket_pull, E, relative_error, delta, delta_s2, m
actually_computed = .false. actually_computed = .false.
zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() zmq_to_qp_run_socket = new_zmq_to_qp_run_socket()
zmq_socket_pull = new_zmq_pull_socket()
allocate(task_id(N_det_generators), ind(1)) allocate(task_id(N_det_generators), ind(1))
more = 1 more = 1
if (time0 < 0.d0) then if (time0 < 0.d0) then
@ -340,7 +347,6 @@ subroutine mrcc_collector(zmq_socket_pull, E, relative_error, delta, delta_s2, m
call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket)
call end_zmq_pull_socket(zmq_socket_pull)
end subroutine end subroutine

View File

@ -195,27 +195,27 @@ BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ]
exists = (label == mo_label) exists = (label == mo_label)
endif endif
endif endif
endif
if (exists) then if (exists) then
double precision, allocatable :: psi_coef_read(:,:) double precision, allocatable :: psi_coef_read(:,:)
allocate (psi_coef_read(N_det,N_states)) allocate (psi_coef_read(N_det,N_states))
call ezfio_get_determinants_psi_coef(psi_coef_read) print *, 'Read psi_coef', N_det, N_states
do k=1,N_states call ezfio_get_determinants_psi_coef(psi_coef_read)
do i=1,N_det do k=1,N_states
psi_coef(i,k) = psi_coef_read(i,k) do i=1,N_det
psi_coef(i,k) = psi_coef_read(i,k)
enddo
enddo enddo
enddo deallocate(psi_coef_read)
deallocate(psi_coef_read)
print *, 'Read psi_coef'
endif
endif endif
endif endif
IRP_IF MPI IRP_IF MPI
include 'mpif.h' include 'mpif.h'
integer :: ierr integer :: ierr
call MPI_BCAST( psi_coef, N_states*psi_det_size, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr) call MPI_BCAST( psi_coef, size(psi_coef), MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then if (ierr /= MPI_SUCCESS) then
stop 'Unable to read psi_coef with MPI' stop 'Unable to read psi_coef with MPI'
endif endif