Commit 897edfb6 authored by Elisa Rebolini's avatar Elisa Rebolini
Browse files

add some extra comments on type(connect)

parent 122fb6e1
Pipeline #10470 failed with stage
in 24 minutes and 26 seconds
......@@ -550,13 +550,15 @@ contains
tmp2(:) = 0
iter1 = 0
iter2 = 0
!Iterate over the active det of list dlb
!Count the number of detb which connects with 1 or 2 differences
do idetb = 1, dlb%ndetcas
ndiff = count_diff(dla%elms(ideta),dlb%elms(idetb), o_info%nact)
if ((ndiff + deltaNel) .eq. 2) then
if ((ndiff + deltaNel) .eq. 2) then !CM1
iter1 = iter1 + 1
tmp1(iter1) = idetb
else if ((ndiff + deltaNel) .eq. 4) then
else if ((ndiff + deltaNel) .eq. 4) then !CM2
iter2 = iter2 + 1
tmp2(iter2) = idetb
endif
......@@ -564,8 +566,10 @@ contains
call vec_init(dla%connect1(idlb), ideta, iter1)
call vec_init(dla%connect1orb(idlb), ideta, iter1)
!Store the list of detb connecting with 1 diff CM1(deta)
if (iter1 .ne. 0) then
dla%connect1(idlb)%vl(ideta)%p%elms = tmp1(1:iter1)
!For each determinant connecting to deta, store the orbitals connecting in a type(connect) vec_storage.F90
do idet = 1, iter1
idetb = tmp1(idet)
call fill_connect(dla%connect1orb(idlb)%vl(ideta)%p%elms(idet)%p, &
......@@ -575,10 +579,12 @@ contains
call vec_init(dla%connect2(idlb), ideta, iter2)
call vec_init(dla%connect2orb(idlb), ideta, iter2)
!Store the list of detb connecting with 2 diff CM2(deta)
if (iter2 .ne. 0) then
dla%connect2(idlb)%vl(ideta)%p%elms = tmp2(1:iter2)
do idet = 1, iter2
idetb = tmp2(idet)
idetb = tmp2(idet)
!For each determinant connecting to deta, store the orbitals connecting in a type(connect) vec_storage.F90
call fill_connect(dla%connect2orb(idlb)%vl(ideta)%p%elms(idet)%p, &
dla%elms(ideta), dlb%elms(idetb), no, nact)
enddo
......@@ -605,6 +611,9 @@ contains
!> @param[in] nact Nb of active orbitals
!> @param[out] nCM1 Nb of connecting detact
!> @param[out] detCM1 Indices of the connecting detact in rj
!> @param[out] detCM1orb (optional) Array of connection information for each CM1
!! which contains diffi, diffj, spindiffi, spindiffj, sign_act, Ndiffact_I, Ndiffact_J, nandIJ,
!! andIJ(:), spinandIJ(:)
!$==================================================================
subroutine CM1_spindetact_list(ri, rj, idet, nact, nCM1, detCM1, detCM1orb)
type(spindetact_list), intent(in) :: ri, rj
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment