From 5e920a33d1e41b897a22c80d96233a6892a3a6e2 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 18 May 2017 11:35:01 +0200 Subject: [PATCH] Reduced memory --- plugins/Full_CI_ZMQ/selection.irp.f | 30 ++++++++++++----------------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/plugins/Full_CI_ZMQ/selection.irp.f b/plugins/Full_CI_ZMQ/selection.irp.f index 03197c95..357d42f7 100644 --- a/plugins/Full_CI_ZMQ/selection.irp.f +++ b/plugins/Full_CI_ZMQ/selection.irp.f @@ -315,8 +315,6 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d integer :: N_holes(2), N_particles(2) integer :: hole_list(N_int*bit_kind_size,2) integer :: particle_list(N_int*bit_kind_size,2) - integer(bit_kind), allocatable:: preinteresting_det(:,:,:) - allocate (preinteresting_det(N_int,2,N_det)) call bitstring_to_list_ab(hole , hole_list , N_holes , N_int) call bitstring_to_list_ab(particle, particle_list, N_particles, N_int) @@ -404,10 +402,6 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d if(i <= N_det_selectors) then preinteresting(0) += 1 preinteresting(preinteresting(0)) = i - do j=1,N_int - preinteresting_det(j,1,preinteresting(0)) = psi_det_sorted(j,1,i) - preinteresting_det(j,2,preinteresting(0)) = psi_det_sorted(j,2,i) - enddo else if(nt <= 2) then prefullinteresting(0) += 1 prefullinteresting(prefullinteresting(0)) = i @@ -433,32 +427,32 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d do ii=1,preinteresting(0) i = preinteresting(ii) - mobMask(1,1) = iand(negMask(1,1), preinteresting_det(1,1,ii)) - mobMask(1,2) = iand(negMask(1,2), preinteresting_det(1,2,ii)) + mobMask(1,1) = iand(negMask(1,1), psi_det_sorted(1,1,preinteresting(ii))) + mobMask(1,2) = iand(negMask(1,2), psi_det_sorted(1,2,preinteresting(ii))) nt = popcnt(mobMask(1, 1)) + popcnt(mobMask(1, 2)) do j=2,N_int - mobMask(j,1) = iand(negMask(j,1), preinteresting_det(j,1,ii)) - mobMask(j,2) = iand(negMask(j,2), preinteresting_det(j,2,ii)) + mobMask(j,1) = iand(negMask(j,1), psi_det_sorted(1,1,preinteresting(ii))) + mobMask(j,2) = iand(negMask(j,2), psi_det_sorted(1,2,preinteresting(ii))) nt = nt+ popcnt(mobMask(j, 1)) + popcnt(mobMask(j, 2)) end do if(nt <= 4) then interesting(0) += 1 interesting(interesting(0)) = i - minilist(1,1,interesting(0)) = preinteresting_det(1,1,ii) - minilist(1,2,interesting(0)) = preinteresting_det(1,2,ii) + minilist(1,1,interesting(0)) = psi_det_sorted(1,1,preinteresting(ii)) + minilist(1,2,interesting(0)) = psi_det_sorted(1,2,preinteresting(ii)) do j=2,N_int - minilist(j,1,interesting(0)) = preinteresting_det(j,1,ii) - minilist(j,2,interesting(0)) = preinteresting_det(j,2,ii) + minilist(j,1,interesting(0)) = psi_det_sorted(1,1,preinteresting(ii)) + minilist(j,2,interesting(0)) = psi_det_sorted(1,2,preinteresting(ii)) enddo if(nt <= 2) then fullinteresting(0) += 1 fullinteresting(fullinteresting(0)) = i - fullminilist(1,1,fullinteresting(0)) = preinteresting_det(1,1,ii) - fullminilist(1,2,fullinteresting(0)) = preinteresting_det(1,2,ii) + fullminilist(1,1,fullinteresting(0)) = psi_det_sorted(1,1,preinteresting(ii)) + fullminilist(1,2,fullinteresting(0)) = psi_det_sorted(1,2,preinteresting(ii)) do j=2,N_int - fullminilist(j,1,fullinteresting(0)) = preinteresting_det(j,1,ii) - fullminilist(j,2,fullinteresting(0)) = preinteresting_det(j,2,ii) + fullminilist(j,1,fullinteresting(0)) = psi_det_sorted(1,1,preinteresting(ii)) + fullminilist(j,2,fullinteresting(0)) = psi_det_sorted(1,2,preinteresting(ii)) enddo end if end if