10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-28 08:02:20 +02:00
quantum_package/src/Hartree_Fock/mo_SCF_iterations.irp.f

38 lines
953 B
FortranFixed
Raw Normal View History

2014-04-23 22:10:36 +02:00
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
2014-04-26 01:18:26 +02:00
E0 = HF_energy
2014-04-23 22:10:36 +02:00
i_it = 0
n_it_scf_max = 100
SCF_energy_before = huge(1.d0)
SCF_energy_after = E0
print *, E0
2014-04-26 01:18:26 +02:00
mo_label = "Canonical"
thresh_SCF = 1.d-10
do while (i_it < 10 .or. dabs(SCF_energy_before - SCF_energy_after) > thresh_SCF)
2014-04-23 22:10:36 +02:00
SCF_energy_before = SCF_energy_after
2014-04-26 01:18:26 +02:00
mo_coef = eigenvectors_Fock_matrix_mo
TOUCH mo_coef mo_label
call clear_mo_map
SCF_energy_after = HF_energy
2014-04-23 22:10:36 +02:00
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
2014-04-26 01:18:26 +02:00
call save_mos
2014-04-23 22:10:36 +02:00
end