mirror of
https://github.com/LCPQ/quantum_package
synced 2024-09-16 17:35:42 +02:00
94f01c0892
* Add config for knl * Add mising readme * Add .gitignore * Add pseudo to qp_convert * Working pseudo * Dressed matrix for pt2 works for one state * now eigenfunction of S^2 * minor modifs in printing * Fixed the perturbation with psi_ref instead of psi_det * Trying do really fo sin free multiple excitations * Beginning to merge MRCC and MRPT * final version of MRPT, at least I hope * Fix 404: Update Zlib Url. * Delete ifort_knl.cfg * Update module_handler.py * Update pot_ao_pseudo_ints.irp.f * Update map_module.f90 * Restaure map_module.f90 * Update configure * Update configure * Update sort.irp.f * Update sort.irp.f * Update selection.irp.f * Update selection.irp.f * Update dressing.irp.f * TApplencourt IRPF90 -> LCPQ * Remove `irpf90.make` in dependency * Update configure * Missing PROVIDE * Missing PROVIDE * Missing PROVIDE * Missing PROVIDE * Update configure * pouet * density based mrpt2 * debugging FOBOCI * Added SCF_density * New version of FOBOCI * added density.irp.f * minor changes in plugins/FOBOCI/SC2_1h1p.irp.f * added track_orb.irp.f * minor changes * minor modifs in FOBOCI * med * Minor changes * minor changes * strange things in MRPT * minor modifs mend * Fix #185 (Graphviz API / Python 2.6) * beginning to debug dft * fixed the factor 2 in lebedev * DFT integration works for non overlapping densities * DFT begins to work with lda * KS LDA is okay * added core integrals * mend * Beginning logn range integrals * Trying to handle two sets of integrals * beginning to clean erf integrals * Handling of two different mo and ao integrals map
114 lines
2.6 KiB
Fortran
114 lines
2.6 KiB
Fortran
program loc_int
|
|
implicit none
|
|
integer :: i,j,k,l,iorb,jorb
|
|
double precision :: exchange_int(mo_tot_num)
|
|
integer :: iorder(mo_tot_num)
|
|
integer :: indices(mo_tot_num,2)
|
|
logical :: list_core_inact_check(mo_tot_num)
|
|
integer :: n_rot
|
|
indices = 0
|
|
list_core_inact_check = .True.
|
|
n_rot = 0
|
|
do i = 1, n_core_inact_orb
|
|
iorb = list_core_inact(i)
|
|
exchange_int = 0.d0
|
|
iorder = 0
|
|
print*,''
|
|
if(list_core_inact_check(iorb) .eqv. .False.)cycle
|
|
do j = i+1, n_core_inact_orb
|
|
jorb = list_core_inact(j)
|
|
iorder(jorb) = jorb
|
|
if(list_core_inact_check(jorb) == .False.)then
|
|
exchange_int(jorb) = 0.d0
|
|
else
|
|
exchange_int(jorb) = -mo_bielec_integral_jj_exchange(iorb,jorb)
|
|
endif
|
|
enddo
|
|
n_rot += 1
|
|
call dsort(exchange_int,iorder,mo_tot_num)
|
|
indices(n_rot,1) = iorb
|
|
indices(n_rot,2) = iorder(1)
|
|
list_core_inact_check(iorder(1)) = .False.
|
|
enddo
|
|
print*,'****************************'
|
|
print*,'-+++++++++++++++++++++++++'
|
|
do i = 1, n_rot
|
|
iorb = indices(i,1)
|
|
jorb = indices(i,2)
|
|
print*,iorb,jorb
|
|
call mix_mo_jk(iorb,jorb)
|
|
enddo
|
|
|
|
indices = 0
|
|
list_core_inact_check = .True.
|
|
n_rot = 0
|
|
do i = 1, n_act_orb
|
|
iorb = list_act(i)
|
|
exchange_int = 0.d0
|
|
iorder = 0
|
|
print*,''
|
|
if(list_core_inact_check(iorb) .eqv. .False.)cycle
|
|
do j = i+1, n_act_orb
|
|
jorb = list_act(j)
|
|
iorder(jorb) = jorb
|
|
if(list_core_inact_check(jorb) == .False.)then
|
|
exchange_int(jorb) = 0.d0
|
|
else
|
|
exchange_int(jorb) = -mo_bielec_integral_jj_exchange(iorb,jorb)
|
|
endif
|
|
enddo
|
|
n_rot += 1
|
|
call dsort(exchange_int,iorder,mo_tot_num)
|
|
indices(n_rot,1) = iorb
|
|
indices(n_rot,2) = iorder(1)
|
|
list_core_inact_check(iorder(1)) = .False.
|
|
enddo
|
|
print*,'****************************'
|
|
print*,'-+++++++++++++++++++++++++'
|
|
do i = 1, n_rot
|
|
iorb = indices(i,1)
|
|
jorb = indices(i,2)
|
|
print*,iorb,jorb
|
|
call mix_mo_jk(iorb,jorb)
|
|
enddo
|
|
|
|
indices = 0
|
|
list_core_inact_check = .True.
|
|
n_rot = 0
|
|
do i = 1, n_virt_orb
|
|
iorb = list_virt(i)
|
|
exchange_int = 0.d0
|
|
iorder = 0
|
|
print*,''
|
|
if(list_core_inact_check(iorb) .eqv. .False.)cycle
|
|
do j = i+1, n_virt_orb
|
|
jorb = list_virt(j)
|
|
iorder(jorb) = jorb
|
|
if(list_core_inact_check(jorb) == .False.)then
|
|
exchange_int(jorb) = 0.d0
|
|
else
|
|
exchange_int(jorb) = -mo_bielec_integral_jj_exchange(iorb,jorb)
|
|
endif
|
|
enddo
|
|
n_rot += 1
|
|
call dsort(exchange_int,iorder,mo_tot_num)
|
|
indices(n_rot,1) = iorb
|
|
indices(n_rot,2) = iorder(1)
|
|
list_core_inact_check(iorder(1)) = .False.
|
|
enddo
|
|
print*,'****************************'
|
|
print*,'-+++++++++++++++++++++++++'
|
|
do i = 1, n_rot
|
|
iorb = indices(i,1)
|
|
jorb = indices(i,2)
|
|
print*,iorb,jorb
|
|
call mix_mo_jk(iorb,jorb)
|
|
enddo
|
|
|
|
|
|
|
|
call save_mos
|
|
|
|
|
|
end
|