2019-01-25 11:39:31 +01:00
|
|
|
subroutine orthonormalize_mos
|
|
|
|
implicit none
|
2020-11-11 01:12:52 +01:00
|
|
|
integer :: m,p,s,i
|
2019-01-25 11:39:31 +01:00
|
|
|
m = size(mo_coef,1)
|
|
|
|
p = size(mo_overlap,1)
|
2020-11-11 01:12:52 +01:00
|
|
|
do i=1,4
|
|
|
|
call ortho_lowdin(mo_overlap,p,mo_num,mo_coef,m,ao_num,lin_dep_cutoff)
|
|
|
|
call nullify_small_elements(ao_num,mo_num,mo_coef,size(mo_coef,1),1.d-10)
|
|
|
|
enddo
|
|
|
|
if (restore_symm) then
|
2020-11-11 01:39:39 +01:00
|
|
|
call restore_symmetry(ao_num, mo_num, mo_coef, size(mo_coef,1), 1.d-10)
|
2020-11-11 01:12:52 +01:00
|
|
|
endif
|
|
|
|
SOFT_TOUCH mo_coef
|
2019-01-25 11:39:31 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|