9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2025-01-12 04:58:08 +01:00

Moved some factors around for efficiency.

This commit is contained in:
vijay gopal chilkuri 2021-03-13 17:25:08 +01:00
parent ecab5c52d7
commit baeb9765d9

View File

@ -918,6 +918,7 @@ subroutine calculate_sigma_vector_cfg_nst_naive_store(psi_out, psi_in, n_st, sze
real*8, external :: mo_two_e_integral real*8, external :: mo_two_e_integral
real*8, external :: get_two_e_integral real*8, external :: get_two_e_integral
real*8 :: diag_energies(n_CSF) real*8 :: diag_energies(n_CSF)
real*8 :: tmpvar, tmptot
! allocate ! allocate
allocate(alphas_Icfg(N_INT,2,max(sze,100))) allocate(alphas_Icfg(N_INT,2,max(sze,100)))
@ -1131,13 +1132,21 @@ subroutine calculate_sigma_vector_cfg_nst_naive_store(psi_out, psi_in, n_st, sze
call convertOrbIdsToModelSpaceIds(alphas_Icfg(:,:,k), connectedI_alpha(:,:,j), p, q, extype, pmodel, qmodel) call convertOrbIdsToModelSpaceIds(alphas_Icfg(:,:,k), connectedI_alpha(:,:,j), p, q, extype, pmodel, qmodel)
rowsikpq = AIJpqMatrixDimsList(NSOMOalpha,extype,pmodel,qmodel,1) rowsikpq = AIJpqMatrixDimsList(NSOMOalpha,extype,pmodel,qmodel,1)
colsikpq = AIJpqMatrixDimsList(NSOMOalpha,extype,pmodel,qmodel,2) colsikpq = AIJpqMatrixDimsList(NSOMOalpha,extype,pmodel,qmodel,2)
allocate(CCmattmp(colsikpq,n_st))
do kk = 1,n_st do kk = 1,n_st
do l = 1,rowsTKI do m = 1,colsikpq
do m = 1,colsikpq CCmattmp(m,kk) = psi_in(idxs_connectedI_alpha(j)+m-1,kk)
TKI(l,kk,totcolsTKI+m) = AIJpqContainer(NSOMOalpha,extype,pmodel,qmodel,l,m) * psi_in(idxs_connectedI_alpha(j)+m-1,kk) enddo
enddo
do kk = 1,n_st
do m = 1,colsikpq
tmpvar = CCmattmp(m,kk)
do l = 1,rowsTKI
TKI(l,kk,totcolsTKI+m) = AIJpqContainer(NSOMOalpha,extype,pmodel,qmodel,l,m) * tmpvar
enddo enddo
enddo enddo
enddo enddo
deallocate(CCmattmp)
do m = 1,colsikpq do m = 1,colsikpq
do l = 1,nconnectedI do l = 1,nconnectedI
! <ij|kl> = (ik|jl) ! <ij|kl> = (ik|jl)
@ -1201,9 +1210,11 @@ subroutine calculate_sigma_vector_cfg_nst_naive_store(psi_out, psi_in, n_st, sze
!print *,">j=",j,rowsikpq,colsikpq, ">>",totcolsTKI,",",idxs_connectedI_alpha(j) !print *,">j=",j,rowsikpq,colsikpq, ">>",totcolsTKI,",",idxs_connectedI_alpha(j)
do kk = 1,n_st do kk = 1,n_st
do m = 1,colsikpq do m = 1,colsikpq
tmpvar = psi_out(idxs_connectedI_alpha(j)+m-1,kk)
do l = 1,rowsTKI do l = 1,rowsTKI
psi_out(idxs_connectedI_alpha(j)+m-1,kk) += AIJpqContainer(NSOMOalpha,extype,pmodel,qmodel,l,m) * TKIGIJ(l,kk,j) tmpvar += AIJpqContainer(NSOMOalpha,extype,pmodel,qmodel,l,m) * TKIGIJ(l,kk,j)
enddo enddo
psi_out(idxs_connectedI_alpha(j)+m-1,kk) = tmpvar
enddo enddo
enddo enddo
totcolsTKI += colsikpq totcolsTKI += colsikpq