subroutine overlaps(common_data, istdout, istderr, ierr)
use w90_error_base, only: w90_error_type
use w90_error, only: set_error_fatal
use w90_overlap, only: overlap_read
implicit none
! arguments
integer, intent(in) :: istdout, istderr
integer, intent(out) :: ierr
type(lib_common_type), intent(inout) :: common_data
! local variables
logical :: cp_pp = .false.
type(w90_error_type), allocatable :: error
ierr = 0
if (.not. common_data%setup_complete) then
call set_error_fatal(error, 'Error: kmesh is not setup before reading overlap matrix', common_data%comm)
call prterr(error, ierr, istdout, istderr, common_data%comm)
return
end if
! projections are stored in u_opt
call overlap_read(common_data%kmesh_info, common_data%select_proj, common_data%u_matrix_opt, &
common_data%m_matrix_local, common_data%num_bands, common_data%num_kpts, &
common_data%num_proj, common_data%num_wann, common_data%print_output, &
common_data%print_output%timing_level, cp_pp, common_data%use_bloch_phases, &
common_data%seedname, istdout, common_data%timer, common_data%dist_kpoints, &
error, common_data%comm)
if (allocated(error)) then
call prterr(error, ierr, istdout, istderr, common_data%comm)
return
end if
end subroutine overlaps