mirror of https://gitlab.com/scemama/qmcchem.git
Still working
This commit is contained in:
parent
9a16fb6003
commit
49b4dece2e
489
src/det.irp.f
489
src/det.irp.f
|
@ -180,8 +180,10 @@ END_PROVIDER
|
|||
|
||||
integer (qmckl_exit_code) :: rc
|
||||
integer (qmckl_context) :: context
|
||||
integer(kind=8) :: ddim, nupdates, updates_index(1)
|
||||
real(c_double) :: updates(elec_alpha_num,1), breakdown
|
||||
integer(kind=8) :: ddim, nupdates
|
||||
real(c_double) :: breakdown
|
||||
real(c_double), allocatable :: updates(:,:)
|
||||
|
||||
|
||||
!DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: tmp_inv, tmp_det
|
||||
|
||||
|
@ -271,81 +273,144 @@ END_PROVIDER
|
|||
ddet = 0.d0
|
||||
|
||||
if (n_to_do < shiftl(elec_alpha_num,1)) then
|
||||
do while ( n_to_do > 0 )
|
||||
ddet = det_alpha_value_curr ! remember value of det_alpha_value_curr
|
||||
n_to_do_old = n_to_do ! remember n_to_do value
|
||||
n_to_do = 0
|
||||
do l=1,n_to_do_old
|
||||
k = to_do(l) ! select electron to change
|
||||
imo = mo_list_alpha_curr(k) ! select mo to change
|
||||
|
||||
slater_matrix_alpha_inv_det = slater_matrix_alpha_inv_det / ddet
|
||||
|
||||
open(unit = 2000, file = "SlaterA_old.dat")
|
||||
open(unit = 3000, file = "SlaterA_old_inv.dat")
|
||||
do i=1, elec_alpha_num
|
||||
do j=1, elec_alpha_num
|
||||
write(2000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
write(3000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
end do
|
||||
write(2000,*)
|
||||
write(3000,*)
|
||||
ddet = det_alpha_value_curr ! set ddet to the current value
|
||||
slater_matrix_alpha_inv_det = slater_matrix_alpha_inv_det / ddet
|
||||
|
||||
! open(unit = 2000, file = "SlaterB_old.dat")
|
||||
! open(unit = 3000, file = "SlaterB_old_inv.dat")
|
||||
! do i=1, elec_alpha_num
|
||||
! do j=1, elec_alpha_num
|
||||
! write(2000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
! write(3000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
! end do
|
||||
! write(2000,*)
|
||||
! write(3000,*)
|
||||
! end do
|
||||
! flush(2000)
|
||||
! flush(3000)
|
||||
! close(2000)
|
||||
! close(3000)
|
||||
|
||||
allocate(updates(elec_alpha_num, n_to_do))
|
||||
do j = 1, n_to_do ! do for all updates
|
||||
k = to_do(j) ! find back the electron we need to update
|
||||
imo = mo_list_alpha_curr(k) ! find column/row/MO for electron k
|
||||
! write(*,*) "n_to_do : ", n_to_do
|
||||
! write(*,*) "j, k = to_do(j), imo = mo_list_alpha_curr(k) : ", j, k, imo
|
||||
do i = 1, elec_alpha_num ! run over all electrons
|
||||
updates(i, j) = mo_value(i, imo) - slater_matrix_alpha(i, k)
|
||||
slater_matrix_alpha(i, k) = mo_value(i, imo)
|
||||
end do
|
||||
flush(2000)
|
||||
flush(3000)
|
||||
close(2000)
|
||||
close(3000)
|
||||
|
||||
do i = 1,elec_alpha_num
|
||||
updates(i,1) = mo_value(i, imo) - slater_matrix_alpha(i, imo)
|
||||
slater_matrix_alpha(i,imo) = mo_value(i, imo)
|
||||
end do
|
||||
|
||||
context = qmckl_context_create()
|
||||
ddim = elec_alpha_num
|
||||
nupdates = 1
|
||||
updates_index(1) = imo
|
||||
breakdown = 1e-3
|
||||
rc = qmckl_sherman_morrison_splitting(context, &
|
||||
ddim, &
|
||||
nupdates, &
|
||||
updates, &
|
||||
updates_index, &
|
||||
breakdown, &
|
||||
slater_matrix_alpha_inv_det(1:elec_alpha_num, 1:elec_alpha_num), &
|
||||
ddet)
|
||||
rc = qmckl_context_destroy(context)
|
||||
|
||||
open(unit = 4000, file = "SlaterA.dat")
|
||||
open(unit = 5000, file = "SlaterA_inv.dat")
|
||||
do i=1, elec_alpha_num
|
||||
do j=1, elec_alpha_num
|
||||
write(4000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
write(5000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
end do
|
||||
write(4000,*)
|
||||
write(5000,*)
|
||||
end do
|
||||
flush(4000)
|
||||
flush(5000)
|
||||
close(4000)
|
||||
close(5000)
|
||||
|
||||
end do
|
||||
|
||||
context = qmckl_context_create()
|
||||
breakdown = 1e-3
|
||||
rc = qmckl_sherman_morrison_smw32s(context, &
|
||||
int(elec_alpha_num, kind=8), &
|
||||
int(n_to_do, kind=8), &
|
||||
updates, &
|
||||
int(to_do, kind=8), &
|
||||
breakdown, &
|
||||
slater_matrix_alpha_inv_det(1:elec_alpha_num, 1:elec_alpha_num), &
|
||||
ddet)
|
||||
rc = qmckl_context_destroy(context)
|
||||
|
||||
! open(unit = 4000, file = "SlaterB.dat")
|
||||
! open(unit = 5000, file = "SlaterB_inv.dat")
|
||||
! do i=1, elec_alpha_num
|
||||
! do j=1, elec_alpha_num
|
||||
! write(4000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
! write(5000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
! end do
|
||||
! write(4000,*)
|
||||
! write(5000,*)
|
||||
! end do
|
||||
! flush(4000)
|
||||
! flush(5000)
|
||||
! close(4000)
|
||||
! close(5000)
|
||||
|
||||
slater_matrix_alpha_inv_det = slater_matrix_alpha_inv_det * ddet
|
||||
det_alpha_value_curr = ddet
|
||||
deallocate(updates)
|
||||
|
||||
|
||||
if (ddet /= 0.d0) then
|
||||
det_alpha_value_curr = ddet
|
||||
else
|
||||
n_to_do += 1
|
||||
to_do(n_to_do) = k
|
||||
ddet = det_alpha_value_curr
|
||||
endif
|
||||
enddo
|
||||
if (n_to_do == n_to_do_old) then
|
||||
ddet = 0.d0
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
! do while ( n_to_do > 0 )
|
||||
! ddet = det_alpha_value_curr ! remember value of det_alpha_value_curr
|
||||
! n_to_do_old = n_to_do ! remember n_to_do value
|
||||
! n_to_do = 0
|
||||
! do l=1,n_to_do_old
|
||||
! k = to_do(l) ! select electron to change
|
||||
! imo = mo_list_alpha_curr(k) ! select mo to change
|
||||
|
||||
! slater_matrix_alpha_inv_det = slater_matrix_alpha_inv_det / ddet
|
||||
|
||||
! open(unit = 2000, file = "SlaterA_old.dat")
|
||||
! open(unit = 3000, file = "SlaterA_old_inv.dat")
|
||||
! do i=1, elec_alpha_num
|
||||
! do j=1, elec_alpha_num
|
||||
! write(2000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
! write(3000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
! end do
|
||||
! write(2000,*)
|
||||
! write(3000,*)
|
||||
! end do
|
||||
! flush(2000)
|
||||
! flush(3000)
|
||||
! close(2000)
|
||||
! close(3000)
|
||||
|
||||
! do i = 1,elec_alpha_num
|
||||
! updates(i,1) = mo_value(i, imo) - slater_matrix_alpha(i, imo)
|
||||
! slater_matrix_alpha(i,imo) = mo_value(i, imo)
|
||||
! end do
|
||||
|
||||
! context = qmckl_context_create()
|
||||
! ddim = elec_alpha_num
|
||||
! nupdates = 1
|
||||
! updates_index(1) = imo
|
||||
! breakdown = 1e-3
|
||||
! rc = qmckl_sherman_morrison_splitting(context, &
|
||||
! ddim, &
|
||||
! nupdates, &
|
||||
! updates, &
|
||||
! updates_index, &
|
||||
! breakdown, &
|
||||
! slater_matrix_alpha_inv_det(1:elec_alpha_num, 1:elec_alpha_num), &
|
||||
! ddet)
|
||||
! rc = qmckl_context_destroy(context)
|
||||
|
||||
! open(unit = 4000, file = "SlaterA.dat")
|
||||
! open(unit = 5000, file = "SlaterA_inv.dat")
|
||||
! do i=1, elec_alpha_num
|
||||
! do j=1, elec_alpha_num
|
||||
! write(4000,"(E23.15, 1X)", advance="no") slater_matrix_alpha(j,i) ! avoid transpose later
|
||||
! write(5000,"(E23.15, 1X)", advance="no") slater_matrix_alpha_inv_det(i,j)
|
||||
! end do
|
||||
! write(4000,*)
|
||||
! write(5000,*)
|
||||
! end do
|
||||
! flush(4000)
|
||||
! flush(5000)
|
||||
! close(4000)
|
||||
! close(5000)
|
||||
|
||||
! slater_matrix_alpha_inv_det = slater_matrix_alpha_inv_det * ddet
|
||||
|
||||
! if (ddet /= 0.d0) then
|
||||
! det_alpha_value_curr = ddet
|
||||
! else
|
||||
! n_to_do += 1
|
||||
! to_do(n_to_do) = k
|
||||
! ddet = det_alpha_value_curr
|
||||
! endif
|
||||
! enddo
|
||||
! if (n_to_do == n_to_do_old) then
|
||||
! ddet = 0.d0
|
||||
! exit
|
||||
! endif
|
||||
! enddo
|
||||
|
||||
endif
|
||||
|
||||
|
@ -402,18 +467,16 @@ END_PROVIDER
|
|||
|
||||
double precision :: ddet
|
||||
integer :: i,j,k,imo,l
|
||||
integer :: to_do(elec_alpha_num-mo_closed_num), n_to_do_old, n_to_do
|
||||
integer :: to_do(elec_alpha_num - mo_closed_num), n_to_do_old, n_to_do
|
||||
double precision :: tmp_inv(elec_alpha_num_8)
|
||||
real :: tmp_det(elec_alpha_num_8)
|
||||
integer, save :: ifirst
|
||||
|
||||
integer (qmckl_exit_code) :: rc
|
||||
integer (qmckl_context) :: context
|
||||
integer(kind=8) :: ddim, nupdates
|
||||
integer(c_int64_t) :: ddim, nupdates
|
||||
real(c_double) :: breakdown
|
||||
integer(kind=8), allocatable, dimension(:) :: updates_index
|
||||
real(c_double), allocatable, dimension(:,:) :: updates
|
||||
|
||||
real(c_double), allocatable :: updates(:,:)
|
||||
|
||||
if (elec_beta_num == 0) then
|
||||
det_beta_value_curr = 0.d0
|
||||
|
@ -439,11 +502,11 @@ END_PROVIDER
|
|||
enddo
|
||||
|
||||
! make swaps and keep 1 update
|
||||
write(*,*) "Value of mo_exc_beta_curr = ", mo_exc_beta_curr
|
||||
! write(*,*) "Value of mo_exc_beta_curr = ", mo_exc_beta_curr
|
||||
if (n_to_do > 1 .and. mo_exc_beta_curr == 1) then
|
||||
|
||||
if (iand(n_to_do+1,1)==1) then
|
||||
write(*,*) "Value of n_to_do+1, iand(n_to_do+1,1)", n_to_do+1, iand(n_to_do+1,1)
|
||||
! write(*,*) "Value of n_to_do+1, iand(n_to_do+1,1)", n_to_do+1, iand(n_to_do+1,1)
|
||||
det_beta_value_curr = -det_beta_value_curr
|
||||
!DIR$ VECTOR ALWAYS
|
||||
!DIR$ VECTOR ALIGNED
|
||||
|
@ -506,148 +569,152 @@ END_PROVIDER
|
|||
ddet = 0.d0
|
||||
|
||||
if (n_to_do < shiftl(elec_beta_num,1)) then !! Why compare to double the number of electrons?
|
||||
write(*,*) "Value of elec_beta_num, shiftl(elec_beta_num,1)", elec_beta_num, shiftl(elec_beta_num,1)
|
||||
! write(*,*) "Value of elec_beta_num, shiftl(elec_beta_num,1)", elec_beta_num, shiftl(elec_beta_num,1)
|
||||
|
||||
|
||||
ddet = det_beta_value_curr ! set ddet to the current value
|
||||
slater_matrix_beta_inv_det = slater_matrix_beta_inv_det / ddet
|
||||
|
||||
! open(unit = 2000, file = "SlaterB_old.dat")
|
||||
! open(unit = 3000, file = "SlaterB_old_inv.dat")
|
||||
! do i=1, elec_beta_num
|
||||
! do j=1, elec_beta_num
|
||||
! write(2000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
! write(3000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
! end do
|
||||
! write(2000,*)
|
||||
! write(3000,*)
|
||||
! end do
|
||||
! flush(2000)
|
||||
! flush(3000)
|
||||
! close(2000)
|
||||
! close(3000)
|
||||
|
||||
allocate(updates(elec_beta_num, n_to_do))
|
||||
do j = 1, n_to_do ! do for all updates
|
||||
k = to_do(j) ! find back the electron we need to update
|
||||
imo = mo_list_beta_curr(k) ! find column/row/MO for electron k
|
||||
! write(*,*) "n_to_do : ", n_to_do
|
||||
! write(*,*) "j, k = to_do(j), imo = mo_list_beta_curr(k) : ", j, k, imo
|
||||
do i = 1, elec_beta_num ! run over all electrons
|
||||
updates(i, j) = mo_value(elec_alpha_num + i, imo) - slater_matrix_beta(i, k)
|
||||
slater_matrix_beta(i, k) = mo_value(elec_alpha_num + i, imo)
|
||||
end do
|
||||
end do
|
||||
|
||||
context = qmckl_context_create()
|
||||
breakdown = 1e-3
|
||||
rc = qmckl_sherman_morrison_smw32s(context, &
|
||||
int(elec_beta_num, kind=8), &
|
||||
int(n_to_do, kind=8), &
|
||||
updates, &
|
||||
int(to_do, kind=8), &
|
||||
breakdown, &
|
||||
slater_matrix_beta_inv_det(1:elec_beta_num, 1:elec_beta_num), &
|
||||
ddet)
|
||||
rc = qmckl_context_destroy(context)
|
||||
|
||||
! open(unit = 4000, file = "SlaterB.dat")
|
||||
! open(unit = 5000, file = "SlaterB_inv.dat")
|
||||
! do i=1, elec_beta_num
|
||||
! do j=1, elec_beta_num
|
||||
! write(4000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
! write(5000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
! end do
|
||||
! write(4000,*)
|
||||
! write(5000,*)
|
||||
! end do
|
||||
! flush(4000)
|
||||
! flush(5000)
|
||||
! close(4000)
|
||||
! close(5000)
|
||||
|
||||
slater_matrix_beta_inv_det = slater_matrix_beta_inv_det * ddet
|
||||
det_beta_value_curr = ddet
|
||||
deallocate(updates)
|
||||
|
||||
|
||||
|
||||
! !! THIS WHOLE WHILE LOOP NEEDS TO BE REPLACED WITH 1 CALL TO QMCKL_SHERMAN_MORRISON_SMWB32S()
|
||||
! do while ( n_to_do > 0 )
|
||||
! ! keep doing this until there are no more updates.
|
||||
! ! This can take multiple runs over the updates stored in to_do()
|
||||
! ddet = det_beta_value_curr ! set ddet to the current value
|
||||
! n_to_do_old = n_to_do ! remember how many updates there are
|
||||
! n_to_do = 0 ! create a new list of update that need to be applied
|
||||
|
||||
! do l=1,n_to_do_old ! first run over all updates
|
||||
! k = to_do(l) ! find back the electron we need to update
|
||||
! imo = mo_list_beta_curr(k) ! find column/row/MO for electron k
|
||||
|
||||
! slater_matrix_beta_inv_det = slater_matrix_beta_inv_det / ddet
|
||||
|
||||
! open(unit = 2000, file = "SlaterB_old.dat")
|
||||
! open(unit = 3000, file = "SlaterB_old_inv.dat")
|
||||
! do i=1, elec_beta_num
|
||||
! do j=1, elec_beta_num
|
||||
! write(2000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
! write(3000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
! end do
|
||||
! write(2000,*)
|
||||
! write(3000,*)
|
||||
! end do
|
||||
! flush(2000)
|
||||
! flush(3000)
|
||||
! close(2000)
|
||||
! close(3000)
|
||||
|
||||
! do i = 1,elec_beta_num
|
||||
! updates(i,1) = mo_value(elec_alpha_num + i, imo) - slater_matrix_beta(i, k)
|
||||
! slater_matrix_beta(i, k) = mo_value(elec_alpha_num + i, imo)
|
||||
! end do
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
! ddet = det_beta_value_curr ! set ddet to the current value
|
||||
allocate(updates(elec_beta_num, n_to_do), &
|
||||
updates_index(n_to_do))
|
||||
|
||||
! do j = 1, n_to_do ! do for all updates
|
||||
! k = to_do(j) ! find back the electron we need to update
|
||||
! imo = mo_list_beta_curr(k) ! find column/row/MO for electron k
|
||||
! write(*,*) "n_to_do : ", n_to_do
|
||||
! write(*,*) "j, k = to_do(j), imo = mo_list_beta_curr(k) : ", j, k, imo
|
||||
! do i = 1, elec_beta_num ! run over all electrons
|
||||
! updates(i, j) = mo_value(elec_alpha_num + i, imo) - slater_matrix_beta(i, k)
|
||||
! slater_matrix_beta(i, k) = mo_value(elec_alpha_num + i, imo)
|
||||
! end do
|
||||
! end do
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
!! THIS WHOLE WHILE LOOP NEEDS TO BE REPLACED WITH 1 CALL TO QMCKL_SHERMAN_MORRISON_SMWB32S()
|
||||
do while ( n_to_do > 0 )
|
||||
! keep doing this until there are no more updates.
|
||||
! This can take multiple runs over the updates stored in to_do()
|
||||
ddet = det_beta_value_curr ! set ddet to the current value
|
||||
n_to_do_old = n_to_do ! remember how many updates there are
|
||||
n_to_do = 0 ! create a new list of update that need to be applied
|
||||
|
||||
do l=1,n_to_do_old ! first run over all updates
|
||||
k = to_do(l) ! find back the electron we need to update
|
||||
imo = mo_list_beta_curr(k) ! find column/row/MO for electron k
|
||||
|
||||
slater_matrix_beta_inv_det = slater_matrix_beta_inv_det / ddet
|
||||
|
||||
open(unit = 2000, file = "SlaterB_old.dat")
|
||||
open(unit = 3000, file = "SlaterB_old_inv.dat")
|
||||
do i=1, elec_beta_num
|
||||
do j=1, elec_beta_num
|
||||
write(2000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
write(3000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
end do
|
||||
write(2000,*)
|
||||
write(3000,*)
|
||||
end do
|
||||
flush(2000)
|
||||
flush(3000)
|
||||
close(2000)
|
||||
close(3000)
|
||||
|
||||
do i = 1,elec_beta_num
|
||||
updates(i,1) = mo_value(elec_alpha_num + i, imo) - slater_matrix_beta(i, k)
|
||||
slater_matrix_beta(i, k) = mo_value(elec_alpha_num + i, imo)
|
||||
end do
|
||||
|
||||
context = qmckl_context_create()
|
||||
ddim = elec_beta_num
|
||||
nupdates = 1
|
||||
updates_index(1) = k
|
||||
breakdown = 1e-3
|
||||
rc = qmckl_sherman_morrison_splitting(context, &
|
||||
ddim, &
|
||||
nupdates, &
|
||||
updates, &
|
||||
updates_index, &
|
||||
breakdown, &
|
||||
slater_matrix_beta_inv_det(1:elec_beta_num, 1:elec_beta_num), &
|
||||
ddet)
|
||||
rc = qmckl_context_destroy(context)
|
||||
! context = qmckl_context_create()
|
||||
! ddim = elec_beta_num
|
||||
! nupdates = 1
|
||||
! updates_index(1) = k
|
||||
! breakdown = 1e-3
|
||||
! rc = qmckl_sherman_morrison_splitting(context, &
|
||||
! ddim, &
|
||||
! nupdates, &
|
||||
! updates, &
|
||||
! updates_index, &
|
||||
! breakdown, &
|
||||
! slater_matrix_beta_inv_det(1:elec_beta_num, 1:elec_beta_num), &
|
||||
! ddet)
|
||||
! rc = qmckl_context_destroy(context)
|
||||
|
||||
open(unit = 4000, file = "SlaterB.dat")
|
||||
open(unit = 5000, file = "SlaterB_inv.dat")
|
||||
do i=1, elec_beta_num
|
||||
do j=1, elec_beta_num
|
||||
write(4000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
write(5000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
end do
|
||||
write(4000,*)
|
||||
write(5000,*)
|
||||
end do
|
||||
flush(4000)
|
||||
flush(5000)
|
||||
close(4000)
|
||||
close(5000)
|
||||
|
||||
slater_matrix_beta_inv_det = slater_matrix_beta_inv_det * ddet
|
||||
stop
|
||||
|
||||
if (ddet /= 0.d0) then
|
||||
det_beta_value_curr = ddet
|
||||
else
|
||||
n_to_do += 1
|
||||
to_do(n_to_do) = k
|
||||
ddet = det_beta_value_curr
|
||||
endif
|
||||
enddo
|
||||
if (n_to_do == n_to_do_old) then
|
||||
ddet = 0.d0
|
||||
exit
|
||||
endif
|
||||
enddo !! all updates have been done
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
! open(unit = 4000, file = "SlaterB.dat")
|
||||
! open(unit = 5000, file = "SlaterB_inv.dat")
|
||||
! do i=1, elec_beta_num
|
||||
! do j=1, elec_beta_num
|
||||
! write(4000,"(E23.15, 1X)", advance="no") slater_matrix_beta(j,i) ! avoid transpose later
|
||||
! write(5000,"(E23.15, 1X)", advance="no") slater_matrix_beta_inv_det(i,j)
|
||||
! end do
|
||||
! write(4000,*)
|
||||
! write(5000,*)
|
||||
! end do
|
||||
! flush(4000)
|
||||
! flush(5000)
|
||||
! close(4000)
|
||||
! close(5000)
|
||||
|
||||
! slater_matrix_beta_inv_det = slater_matrix_beta_inv_det * ddet
|
||||
! stop
|
||||
|
||||
! if (ddet /= 0.d0) then
|
||||
! det_beta_value_curr = ddet
|
||||
! else
|
||||
! n_to_do += 1
|
||||
! to_do(n_to_do) = k
|
||||
! ddet = det_beta_value_curr
|
||||
! endif
|
||||
! enddo
|
||||
! if (n_to_do == n_to_do_old) then
|
||||
! ddet = 0.d0
|
||||
! exit
|
||||
! endif
|
||||
! enddo !! all updates have been done
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue