mirror of
https://github.com/LCPQ/quantum_package
synced 2024-07-27 21:27:35 +02:00
34 lines
885 B
FortranFixed
34 lines
885 B
FortranFixed
|
program scf_iteration
|
||
|
use bitmasks
|
||
|
implicit none
|
||
|
double precision :: SCF_energy_before,SCF_energy_after,diag_H_mat_elem,get_mo_bielec_integral
|
||
|
double precision :: E0
|
||
|
integer :: i_it
|
||
|
|
||
|
E0 = ref_bitmask_energy + nuclear_repulsion
|
||
|
i_it = 0
|
||
|
n_it_scf_max = 100
|
||
|
SCF_energy_before = huge(1.d0)
|
||
|
SCF_energy_after = E0
|
||
|
print *, E0
|
||
|
do while (dabs(SCF_energy_before - SCF_energy_after) > thresh_SCF)
|
||
|
SCF_energy_before = SCF_energy_after
|
||
|
call diagonalize_fock()
|
||
|
SCF_energy_after = ref_bitmask_energy + nuclear_repulsion
|
||
|
print*,SCF_energy_after
|
||
|
i_it +=1
|
||
|
if(i_it > n_it_scf_max)exit
|
||
|
enddo
|
||
|
|
||
|
if (i_it == n_it_scf_max) then
|
||
|
stop 'Failed'
|
||
|
endif
|
||
|
if (SCF_energy_after - E0 > thresh_SCF) then
|
||
|
stop 'Failed'
|
||
|
endif
|
||
|
mo_label = "Canonical"
|
||
|
TOUCH mo_label mo_coef
|
||
|
call save_mos
|
||
|
|
||
|
end
|