From eede4e24d3ef2bacf53162582d706d3d093c688b Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 26 Jul 2018 11:31:36 +0200 Subject: [PATCH] Fixed ijkl bitmask --- src/Bitmask/bitmasks.irp.f | 17 ++++++++++------- src/Determinants/Fock_diag.irp.f | 9 +++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/Bitmask/bitmasks.irp.f b/src/Bitmask/bitmasks.irp.f index efb39119..f0caea96 100644 --- a/src/Bitmask/bitmasks.irp.f +++ b/src/Bitmask/bitmasks.irp.f @@ -21,14 +21,17 @@ BEGIN_PROVIDER [ integer(bit_kind), full_ijkl_bitmask, (N_int) ] ! Bitmask to include all possible MOs END_DOC - integer :: i,j,n - n = mod(mo_tot_num-1,bit_kind_size)+1 + integer :: i,j,k full_ijkl_bitmask = 0_bit_kind - do i=1,N_int-1 - full_ijkl_bitmask(i) = not(0_bit_kind) - enddo - do i=1,n - full_ijkl_bitmask(N_int) = ibset(full_ijkl_bitmask(N_int),i-1) + do j=1,N_int + k=0 + do i=0,bit_kind_size-1 + k=k+1 + if (mo_class(k) /= 'Deleted') then + full_ijkl_bitmask(j) = ibset(full_ijkl_bitmask(j),i) + endif + if (k == mo_tot_num) exit + enddo enddo END_PROVIDER diff --git a/src/Determinants/Fock_diag.irp.f b/src/Determinants/Fock_diag.irp.f index 01393fe1..75c577ed 100644 --- a/src/Determinants/Fock_diag.irp.f +++ b/src/Determinants/Fock_diag.irp.f @@ -21,10 +21,19 @@ subroutine build_fock_tmp(fock_diag_tmp,det_ref,Nint) if (Ne(1) /= elec_alpha_num) then print *, 'Error in build_fock_tmp (alpha)', Ne(1), Ne(2) + call debug_det(det_ref,N_int) + print *, occ(:,1) + print *, occ(:,2) + do i=1,10000 + occ(i,1) = fock_diag_tmp(1,mo_tot_num+i) !traceback + enddo stop -1 endif if (Ne(2) /= elec_beta_num) then print *, 'Error in build_fock_tmp (beta)', Ne(1), Ne(2) + do i=1,10000 + occ(i,1) = fock_diag_tmp(1,mo_tot_num+i) !traceback + enddo stop -1 endif