overlaps Subroutine

public subroutine overlaps(common_data, istdout, istderr, ierr)

Uses

  • proc~~overlaps~~UsesGraph proc~overlaps overlaps module~w90_error w90_error proc~overlaps->module~w90_error module~w90_error_base w90_error_base proc~overlaps->module~w90_error_base module~w90_overlap w90_overlap proc~overlaps->module~w90_overlap module~w90_error->module~w90_error_base module~w90_comms w90_comms module~w90_error->module~w90_comms module~w90_overlap->module~w90_comms module~w90_constants w90_constants module~w90_overlap->module~w90_constants module~w90_comms->module~w90_error_base module~w90_comms->module~w90_constants

Arguments

Type IntentOptional Attributes Name
type(lib_common_type), intent(inout) :: common_data
integer, intent(in) :: istdout
integer, intent(in) :: istderr
integer, intent(out) :: ierr

Calls

proc~~overlaps~~CallsGraph proc~overlaps overlaps proc~overlap_read overlap_read proc~overlaps->proc~overlap_read proc~prterr prterr proc~overlaps->proc~prterr proc~set_error_fatal set_error_fatal proc~overlaps->proc~set_error_fatal proc~overlap_read->proc~set_error_fatal proc~io_stopwatch_start io_stopwatch_start proc~overlap_read->proc~io_stopwatch_start proc~io_stopwatch_stop io_stopwatch_stop proc~overlap_read->proc~io_stopwatch_stop proc~mpirank mpirank proc~overlap_read->proc~mpirank proc~overlap_rotate overlap_rotate proc~overlap_read->proc~overlap_rotate proc~set_error_alloc set_error_alloc proc~overlap_read->proc~set_error_alloc proc~set_error_dealloc set_error_dealloc proc~overlap_read->proc~set_error_dealloc proc~set_error_file set_error_file proc~overlap_read->proc~set_error_file interface~comms_no_sync_bcast comms_no_sync_bcast proc~prterr->interface~comms_no_sync_bcast interface~comms_no_sync_recv comms_no_sync_recv proc~prterr->interface~comms_no_sync_recv interface~comms_no_sync_send comms_no_sync_send proc~prterr->interface~comms_no_sync_send proc~prterr->proc~mpirank proc~mpisize mpisize proc~prterr->proc~mpisize proc~comms_sync_error comms_sync_error proc~set_error_fatal->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_fatal->proc~set_base_error proc~comms_no_sync_bcast_char comms_no_sync_bcast_char interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_char proc~comms_no_sync_bcast_cmplx comms_no_sync_bcast_cmplx interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_cmplx proc~comms_no_sync_bcast_int comms_no_sync_bcast_int interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_int proc~comms_no_sync_bcast_logical comms_no_sync_bcast_logical interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_logical proc~comms_no_sync_bcast_real comms_no_sync_bcast_real interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_real proc~comms_no_sync_recv_char comms_no_sync_recv_char interface~comms_no_sync_recv->proc~comms_no_sync_recv_char proc~comms_no_sync_recv_cmplx comms_no_sync_recv_cmplx interface~comms_no_sync_recv->proc~comms_no_sync_recv_cmplx proc~comms_no_sync_recv_int comms_no_sync_recv_int interface~comms_no_sync_recv->proc~comms_no_sync_recv_int proc~comms_no_sync_recv_logical comms_no_sync_recv_logical interface~comms_no_sync_recv->proc~comms_no_sync_recv_logical proc~comms_no_sync_recv_real comms_no_sync_recv_real interface~comms_no_sync_recv->proc~comms_no_sync_recv_real proc~comms_no_sync_send_char comms_no_sync_send_char interface~comms_no_sync_send->proc~comms_no_sync_send_char proc~comms_no_sync_send_cmplx comms_no_sync_send_cmplx interface~comms_no_sync_send->proc~comms_no_sync_send_cmplx proc~comms_no_sync_send_int comms_no_sync_send_int interface~comms_no_sync_send->proc~comms_no_sync_send_int proc~comms_no_sync_send_logical comms_no_sync_send_logical interface~comms_no_sync_send->proc~comms_no_sync_send_logical proc~comms_no_sync_send_real comms_no_sync_send_real interface~comms_no_sync_send->proc~comms_no_sync_send_real proc~overlap_rotate->proc~set_error_fatal proc~overlap_rotate->proc~io_stopwatch_start proc~overlap_rotate->proc~io_stopwatch_stop dspev dspev proc~overlap_rotate->dspev proc~set_error_alloc->proc~comms_sync_error proc~set_error_alloc->proc~set_base_error proc~set_error_dealloc->proc~comms_sync_error proc~set_error_dealloc->proc~set_base_error proc~set_error_file->proc~comms_sync_error proc~set_error_file->proc~set_base_error

Called by

proc~~overlaps~~CalledByGraph proc~overlaps overlaps program~wannier wannier program~wannier->proc~overlaps

Source Code

  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