mirror of
https://github.com/LCPQ/quantum_package
synced 2024-11-13 09:34:02 +01:00
60 lines
1.5 KiB
Fortran
60 lines
1.5 KiB
Fortran
program foboscf
|
|
implicit none
|
|
call run_prepare
|
|
no_oa_or_av_opt = .True.
|
|
touch no_oa_or_av_opt
|
|
call routine_fobo_scf
|
|
call save_mos
|
|
|
|
end
|
|
|
|
subroutine run_prepare
|
|
implicit none
|
|
no_oa_or_av_opt = .False.
|
|
touch no_oa_or_av_opt
|
|
call damping_SCF
|
|
call diag_inactive_virt_and_update_mos
|
|
end
|
|
|
|
subroutine routine_fobo_scf
|
|
implicit none
|
|
integer :: i,j
|
|
print*,''
|
|
print*,''
|
|
character*(64) :: label
|
|
label = "Natural"
|
|
do i = 1, 5
|
|
print*,'*******************************************************************************'
|
|
print*,'*******************************************************************************'
|
|
print*,'FOBO-SCF Iteration ',i
|
|
print*,'*******************************************************************************'
|
|
print*,'*******************************************************************************'
|
|
if(speed_up_convergence_foboscf)then
|
|
if(i==3)then
|
|
threshold_lmct = max(threshold_lmct,0.001)
|
|
threshold_mlct = max(threshold_mlct,0.05)
|
|
soft_touch threshold_lmct threshold_mlct
|
|
endif
|
|
if(i==4)then
|
|
threshold_lmct = max(threshold_lmct,0.005)
|
|
threshold_mlct = max(threshold_mlct,0.07)
|
|
soft_touch threshold_lmct threshold_mlct
|
|
endif
|
|
if(i==5)then
|
|
threshold_lmct = max(threshold_lmct,0.01)
|
|
threshold_mlct = max(threshold_mlct,0.1)
|
|
soft_touch threshold_lmct threshold_mlct
|
|
endif
|
|
endif
|
|
call FOBOCI_lmct_mlct_old_thr
|
|
call save_osoci_natural_mos
|
|
call damping_SCF
|
|
call diag_inactive_virt_and_update_mos
|
|
call clear_mo_map
|
|
call provide_properties
|
|
enddo
|
|
|
|
|
|
|
|
end
|