2015-06-17 18:22:08 +02:00
|
|
|
subroutine huckel_guess
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Build the MOs using the extended Huckel model
|
|
|
|
END_DOC
|
|
|
|
integer :: i,j
|
2015-09-22 13:26:20 +02:00
|
|
|
double precision :: accu
|
2015-06-17 18:22:08 +02:00
|
|
|
double precision :: c
|
|
|
|
character*(64) :: label
|
2017-09-14 11:36:27 +02:00
|
|
|
double precision, allocatable :: A(:,:)
|
2015-06-17 18:22:08 +02:00
|
|
|
label = "Guess"
|
2017-09-14 11:36:27 +02:00
|
|
|
c = 0.5d0 * 1.75d0
|
2015-07-06 14:06:49 +02:00
|
|
|
|
2017-09-14 11:36:27 +02:00
|
|
|
allocate (A(ao_num, ao_num))
|
2017-09-13 10:04:35 +02:00
|
|
|
A = 0.d0
|
2015-06-17 18:22:08 +02:00
|
|
|
do j=1,ao_num
|
|
|
|
do i=1,ao_num
|
2017-09-13 10:04:35 +02:00
|
|
|
A(i,j) = c * ao_overlap(i,j) * (ao_mono_elec_integral_diag(i) + ao_mono_elec_integral_diag(j))
|
2015-06-17 18:22:08 +02:00
|
|
|
enddo
|
2017-09-13 10:04:35 +02:00
|
|
|
A(j,j) = ao_mono_elec_integral_diag(j) + ao_bi_elec_integral_alpha(j,j)
|
2015-06-17 18:22:08 +02:00
|
|
|
enddo
|
2017-09-13 10:04:35 +02:00
|
|
|
|
|
|
|
Fock_matrix_ao_alpha(1:ao_num,1:ao_num) = A(1:ao_num,1:ao_num)
|
|
|
|
Fock_matrix_ao_beta (1:ao_num,1:ao_num) = A(1:ao_num,1:ao_num)
|
|
|
|
|
|
|
|
! TOUCH mo_coef
|
|
|
|
|
2017-09-13 09:06:32 +02:00
|
|
|
TOUCH Fock_matrix_ao_alpha Fock_matrix_ao_beta
|
2015-06-17 18:22:08 +02:00
|
|
|
mo_coef = eigenvectors_fock_matrix_mo
|
|
|
|
SOFT_TOUCH mo_coef
|
|
|
|
call save_mos
|
2017-09-14 11:36:27 +02:00
|
|
|
deallocate(A)
|
2015-06-17 18:22:08 +02:00
|
|
|
|
|
|
|
end
|