BEGIN_PROVIDER [double precision, ao_potential_alpha_xc, (ao_num, ao_num)] &BEGIN_PROVIDER [double precision, ao_potential_beta_xc, (ao_num, ao_num)] implicit none integer :: i,j,k,l ao_potential_alpha_xc = 0.d0 ao_potential_beta_xc = 0.d0 if(same_xc_func)then do i = 1, ao_num do j = 1, ao_num ao_potential_alpha_xc(j,i) = potential_xc_alpha_ao(j,i,1) ao_potential_beta_xc(j,i) = potential_xc_beta_ao(j,i,1) enddo enddo else do i = 1, ao_num do j = 1, ao_num ao_potential_alpha_xc(j,i) = potential_c_alpha_ao(j,i,1) + potential_x_alpha_ao(j,i,1) ao_potential_beta_xc(j,i) = potential_c_beta_ao(j,i,1) + potential_x_beta_ao(j,i,1) enddo enddo endif END_PROVIDER BEGIN_PROVIDER [double precision, e_exchange_dft] implicit none e_exchange_dft = energy_x(1) END_PROVIDER BEGIN_PROVIDER [double precision, e_correlation_dft] implicit none e_correlation_dft = energy_c(1) END_PROVIDER