mirror of
https://github.com/LCPQ/quantum_package
synced 2025-01-11 05:28:29 +01:00
Change in MRCC_utils
This commit is contained in:
parent
d49776cad7
commit
c9d6f89aa8
@ -628,7 +628,7 @@ BEGIN_PROVIDER [ double precision, dIj_unique, (hh_shortcut(hh_shortcut(0)+1)-1,
|
|||||||
t = 0d0
|
t = 0d0
|
||||||
r1 = 1
|
r1 = 1
|
||||||
r2 = 1
|
r2 = 1
|
||||||
do while(A_ind(r1, at_row) * A_ind(r2, a_col) /= 0)
|
do while ((A_ind(r1, at_row) /= 0).and.(A_ind(r2, a_col) /= 0))
|
||||||
if(A_ind(r1, at_row) < A_ind(r2, a_col)) then
|
if(A_ind(r1, at_row) < A_ind(r2, a_col)) then
|
||||||
r1 += 1
|
r1 += 1
|
||||||
else if(A_ind(r1, at_row) > A_ind(r2, a_col)) then
|
else if(A_ind(r1, at_row) > A_ind(r2, a_col)) then
|
||||||
|
@ -118,61 +118,7 @@ subroutine ao_bielec_integrals_in_map_slave(thread,iproc)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
subroutine pull_integrals(zmq_socket_pull, n_integrals, buffer_i, buffer_value, task_id)
|
|
||||||
use f77_zmq
|
|
||||||
use map_module
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! How the collector pulls the computed integrals
|
|
||||||
END_DOC
|
|
||||||
integer(ZMQ_PTR), intent(in) :: zmq_socket_pull
|
|
||||||
integer, intent(out) :: n_integrals
|
|
||||||
integer(key_kind), intent(out) :: buffer_i(*)
|
|
||||||
real(integral_kind), intent(out) :: buffer_value(*)
|
|
||||||
integer, intent(out) :: task_id
|
|
||||||
integer :: rc
|
|
||||||
|
|
||||||
rc = f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0)
|
|
||||||
if (rc == -1) then
|
|
||||||
n_integrals = 0
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
if (rc /= 4) then
|
|
||||||
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0)'
|
|
||||||
stop 'error'
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (n_integrals >= 0) then
|
|
||||||
|
|
||||||
rc = f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0)
|
|
||||||
if (rc /= key_kind*n_integrals) then
|
|
||||||
print *, rc, key_kind, n_integrals
|
|
||||||
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0)'
|
|
||||||
stop 'error'
|
|
||||||
endif
|
|
||||||
|
|
||||||
rc = f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0)
|
|
||||||
if (rc /= integral_kind*n_integrals) then
|
|
||||||
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0)'
|
|
||||||
stop 'error'
|
|
||||||
endif
|
|
||||||
|
|
||||||
rc = f77_zmq_recv( zmq_socket_pull, task_id, 4, 0)
|
|
||||||
if (rc /= 4) then
|
|
||||||
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, task_id, 4, 0)'
|
|
||||||
stop 'error'
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
! Activate if zmq_socket_pull is a REP
|
|
||||||
! rc = f77_zmq_send( zmq_socket_pull, 0, 4, 0)
|
|
||||||
! if (rc /= 4) then
|
|
||||||
! print *, irp_here, ' : f77_zmq_send (zmq_socket_pull,...'
|
|
||||||
! stop 'error'
|
|
||||||
! endif
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
subroutine ao_bielec_integrals_in_map_collector
|
subroutine ao_bielec_integrals_in_map_collector
|
||||||
@ -196,21 +142,59 @@ subroutine ao_bielec_integrals_in_map_collector
|
|||||||
integer(ZMQ_PTR) :: zmq_socket_pull
|
integer(ZMQ_PTR) :: zmq_socket_pull
|
||||||
|
|
||||||
integer*8 :: control, accu
|
integer*8 :: control, accu
|
||||||
integer :: task_id, more
|
integer :: task_id, more, sze
|
||||||
|
|
||||||
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()
|
zmq_socket_pull = new_zmq_pull_socket()
|
||||||
|
|
||||||
allocate ( buffer_i(ao_num*ao_num), buffer_value(ao_num*ao_num) )
|
sze = ao_num*ao_num
|
||||||
|
allocate ( buffer_i(sze), buffer_value(sze) )
|
||||||
|
|
||||||
accu = 0_8
|
accu = 0_8
|
||||||
more = 1
|
more = 1
|
||||||
do while (more == 1)
|
do while (more == 1)
|
||||||
|
|
||||||
call pull_integrals(zmq_socket_pull, n_integrals, buffer_i, buffer_value, task_id)
|
rc = f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0)
|
||||||
|
if (rc == -1) then
|
||||||
|
n_integrals = 0
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
if (rc /= 4) then
|
||||||
|
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0)'
|
||||||
|
stop 'error'
|
||||||
|
endif
|
||||||
|
|
||||||
if (n_integrals >= 0) then
|
if (n_integrals >= 0) then
|
||||||
|
|
||||||
|
if (n_integrals > sze) then
|
||||||
|
deallocate (buffer_value, buffer_i)
|
||||||
|
sze = n_integrals
|
||||||
|
allocate (buffer_value(sze), buffer_i(sze))
|
||||||
|
endif
|
||||||
|
|
||||||
|
rc = f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0)
|
||||||
|
if (rc /= key_kind*n_integrals) then
|
||||||
|
print *, rc, key_kind, n_integrals
|
||||||
|
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0)'
|
||||||
|
stop 'error'
|
||||||
|
endif
|
||||||
|
|
||||||
|
rc = f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0)
|
||||||
|
if (rc /= integral_kind*n_integrals) then
|
||||||
|
print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0)'
|
||||||
|
stop 'error'
|
||||||
|
endif
|
||||||
|
|
||||||
|
rc = f77_zmq_recv( zmq_socket_pull, task_id, 4, 0)
|
||||||
|
|
||||||
|
! Activate if zmq_socket_pull is a REP
|
||||||
|
! rc = f77_zmq_send( zmq_socket_pull, 0, 4, 0)
|
||||||
|
! if (rc /= 4) then
|
||||||
|
! print *, irp_here, ' : f77_zmq_send (zmq_socket_pull,...'
|
||||||
|
! stop 'error'
|
||||||
|
! endif
|
||||||
|
|
||||||
|
|
||||||
call insert_into_ao_integrals_map(n_integrals,buffer_i,buffer_value)
|
call insert_into_ao_integrals_map(n_integrals,buffer_i,buffer_value)
|
||||||
accu += n_integrals
|
accu += n_integrals
|
||||||
if (task_id /= 0) then
|
if (task_id /= 0) then
|
||||||
|
Loading…
Reference in New Issue
Block a user