From 60ecb0006fa8a54dbea1a54eadbd559b450a8964 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 12 Dec 2017 15:28:27 +0100 Subject: [PATCH] Fixed memory leak in 4idx --- plugins/Full_CI_ZMQ/fci_zmq_nos.irp.f | 2 +- plugins/mrcepa0/dressing_slave.irp.f | 2 +- src/FourIdx/four_index_slave.irp.f | 5 ++--- src/FourIdx/four_index_zmq.irp.f | 2 -- src/Integrals_Bielec/mo_bi_integrals.irp.f | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/Full_CI_ZMQ/fci_zmq_nos.irp.f b/plugins/Full_CI_ZMQ/fci_zmq_nos.irp.f index c29f9640..01405ef8 100644 --- a/plugins/Full_CI_ZMQ/fci_zmq_nos.irp.f +++ b/plugins/Full_CI_ZMQ/fci_zmq_nos.irp.f @@ -158,7 +158,7 @@ program fci_zmq call map_deinit(mo_integrals_map) FREE mo_integrals_map PROVIDE mo_integrals_map - call four_index_transform_zmq(ao_integrals_map,mo_integrals_map, & + call four_index_transform_block(ao_integrals_map,mo_integrals_map, & mo_coef, size(mo_coef,1), & 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, & 1, 1, 1, 1, mo_num, mo_num, mo_num, mo_num) diff --git a/plugins/mrcepa0/dressing_slave.irp.f b/plugins/mrcepa0/dressing_slave.irp.f index 115d1749..972db860 100644 --- a/plugins/mrcepa0/dressing_slave.irp.f +++ b/plugins/mrcepa0/dressing_slave.irp.f @@ -59,7 +59,6 @@ subroutine mrsc2_dressing_slave(thread,iproc) integer, external :: connect_to_taskserver, disconnect_from_taskserver !double precision, external :: get_dij - integer, external :: add_task_to_taskserver zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then @@ -514,6 +513,7 @@ end logical, external :: is_in_wavefunction, isInCassd, detEq character*(512) :: task integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_socket_pull + integer, external :: add_task_to_taskserver integer :: KKsize = 1000000 diff --git a/src/FourIdx/four_index_slave.irp.f b/src/FourIdx/four_index_slave.irp.f index 06604760..029c444d 100644 --- a/src/FourIdx/four_index_slave.irp.f +++ b/src/FourIdx/four_index_slave.irp.f @@ -279,7 +279,7 @@ subroutine four_index_transform_slave_work(map_a,matrix_B,LDB, & enddo !$OMP END DO - deallocate(key,value,V,T) + deallocate(key,value,V,T,U,T2d,V2d) !$OMP BARRIER !$OMP MASTER call four_idx_push_results(zmq_socket_push, 0_8, 0.d0, 0, task_id) @@ -287,7 +287,6 @@ subroutine four_index_transform_slave_work(map_a,matrix_B,LDB, & call end_zmq_push_socket(zmq_socket_push) !$OMP END PARALLEL - deallocate(l_pointer) - deallocate(a_array_ik,a_array_j,a_array_value) + deallocate(l_pointer,a_array_ik,a_array_j,a_array_value) end diff --git a/src/FourIdx/four_index_zmq.irp.f b/src/FourIdx/four_index_zmq.irp.f index 1726a778..4e0673b1 100644 --- a/src/FourIdx/four_index_zmq.irp.f +++ b/src/FourIdx/four_index_zmq.irp.f @@ -20,8 +20,6 @@ subroutine four_index_transform_zmq(map_a,map_c,matrix_B,LDB, & integer, intent(in) :: a_start, b_start, c_start, d_start integer, intent(in) :: a_end , b_end , c_end , d_end - double precision, allocatable :: T(:,:), U(:,:,:), V(:,:) - double precision, allocatable :: T2d(:,:), V2d(:,:) integer :: i_max, j_max, k_max, l_max integer :: i_min, j_min, k_min, l_min integer :: i, j, k, l, ik, ll diff --git a/src/Integrals_Bielec/mo_bi_integrals.irp.f b/src/Integrals_Bielec/mo_bi_integrals.irp.f index 3fa01292..479b373d 100644 --- a/src/Integrals_Bielec/mo_bi_integrals.irp.f +++ b/src/Integrals_Bielec/mo_bi_integrals.irp.f @@ -133,7 +133,7 @@ BEGIN_PROVIDER [ logical, mo_bielec_integrals_in_map ] ! mo_coef, size(mo_coef,1), & ! 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, & ! 1, 1, 1, 1, mo_num, mo_num, mo_num, mo_num) -! + ! call four_index_transform(ao_integrals_map,mo_integrals_map, & ! mo_coef, size(mo_coef,1), & ! 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, &