From 8dd2dcb44f29fc5b46ff6e91303421fbdad0c4d4 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 29 Nov 2017 09:35:11 +0100 Subject: [PATCH] Reduced memory in 4idx --- src/FourIdx/four_index_block.irp.f | 6 +++--- src/Integrals_Bielec/mo_bi_integrals.irp.f | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/FourIdx/four_index_block.irp.f b/src/FourIdx/four_index_block.irp.f index 633905af..8666bdee 100644 --- a/src/FourIdx/four_index_block.irp.f +++ b/src/FourIdx/four_index_block.irp.f @@ -65,15 +65,15 @@ subroutine four_index_transform_block(map_a,map_c,matrix_B,LDB, & integer*8 :: new_size new_size = max(1024_8, 5_8 * map_a % n_elements ) - allocate(a_array_ik(new_size), a_array_j(new_size), a_array_value(new_size)) - - integer :: ipass, npass integer*8 :: tempspace tempspace = (new_size * 16_8) / (1024_8 * 1024_8) npass = int(min(int(l_end-l_start,8),1_8 + tempspace / 2048_8),4) ! 2 GiB of scratch space l_block = (l_end-l_start+1)/npass + allocate(a_array_ik(new_size/npass), a_array_j(new_size/npass), a_array_value(new_size/npass)) + + integer :: ipass, npass ipass = 0 do l_start_block = l_start, l_end, l_block ipass = ipass+1 diff --git a/src/Integrals_Bielec/mo_bi_integrals.irp.f b/src/Integrals_Bielec/mo_bi_integrals.irp.f index 4487841d..5f2faa2d 100644 --- a/src/Integrals_Bielec/mo_bi_integrals.irp.f +++ b/src/Integrals_Bielec/mo_bi_integrals.irp.f @@ -119,15 +119,15 @@ BEGIN_PROVIDER [ logical, mo_bielec_integrals_in_map ] else ! call add_integrals_to_map(full_ijkl_bitmask_4) -! 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_tot_num, mo_tot_num, mo_tot_num, mo_tot_num) - - call four_index_transform(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_tot_num, mo_tot_num, mo_tot_num, mo_tot_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, & +! 1, 1, 1, 1, mo_tot_num, mo_tot_num, mo_tot_num, mo_tot_num) integer*8 :: get_mo_map_size, mo_map_size mo_map_size = get_mo_map_size()