w90_transport Subroutine

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

Uses

  • proc~~w90_transport~~UsesGraph proc~w90_transport w90_transport module~w90_comms w90_comms proc~w90_transport->module~w90_comms module~w90_error_base w90_error_base proc~w90_transport->module~w90_error_base module~w90_transport_mod w90_transport_mod proc~w90_transport->module~w90_transport_mod module~w90_comms->module~w90_error_base module~w90_constants w90_constants module~w90_comms->module~w90_constants module~w90_transport_mod->module~w90_comms module~w90_transport_mod->module~w90_constants module~w90_error w90_error module~w90_transport_mod->module~w90_error module~w90_error->module~w90_comms module~w90_error->module~w90_error_base

performs a variety of transport calculations

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~~w90_transport~~CallsGraph proc~w90_transport w90_transport proc~comms_sync_error comms_sync_error proc~w90_transport->proc~comms_sync_error proc~mpirank mpirank proc~w90_transport->proc~mpirank proc~prterr prterr proc~w90_transport->proc~prterr proc~tran_main tran_main proc~w90_transport->proc~tran_main proc~prterr->proc~mpirank 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~mpisize mpisize proc~prterr->proc~mpisize proc~hamiltonian_get_hr hamiltonian_get_hr proc~tran_main->proc~hamiltonian_get_hr proc~hamiltonian_setup hamiltonian_setup proc~tran_main->proc~hamiltonian_setup proc~hamiltonian_write_hr hamiltonian_write_hr proc~tran_main->proc~hamiltonian_write_hr proc~io_stopwatch_start io_stopwatch_start proc~tran_main->proc~io_stopwatch_start proc~io_stopwatch_stop io_stopwatch_stop proc~tran_main->proc~io_stopwatch_stop proc~set_error_dealloc set_error_dealloc proc~tran_main->proc~set_error_dealloc proc~tran_bulk tran_bulk proc~tran_main->proc~tran_bulk proc~tran_cut_hr_one_dim tran_cut_hr_one_dim proc~tran_main->proc~tran_cut_hr_one_dim proc~tran_find_integral_signatures tran_find_integral_signatures proc~tran_main->proc~tran_find_integral_signatures proc~tran_get_ht tran_get_ht proc~tran_main->proc~tran_get_ht proc~tran_lcr tran_lcr proc~tran_main->proc~tran_lcr proc~tran_lcr_2c2_build_ham tran_lcr_2c2_build_ham proc~tran_main->proc~tran_lcr_2c2_build_ham proc~tran_lcr_2c2_sort tran_lcr_2c2_sort proc~tran_main->proc~tran_lcr_2c2_sort proc~tran_parity_enforce tran_parity_enforce proc~tran_main->proc~tran_parity_enforce proc~tran_reduce_hr tran_reduce_hr proc~tran_main->proc~tran_reduce_hr proc~tran_write_xyz tran_write_xyz proc~tran_main->proc~tran_write_xyz 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~hamiltonian_get_hr->proc~io_stopwatch_start proc~hamiltonian_get_hr->proc~io_stopwatch_stop proc~hamiltonian_get_hr->proc~set_error_dealloc proc~set_error_alloc set_error_alloc proc~hamiltonian_get_hr->proc~set_error_alloc proc~utility_cart_to_frac utility_cart_to_frac proc~hamiltonian_get_hr->proc~utility_cart_to_frac proc~utility_frac_to_cart utility_frac_to_cart proc~hamiltonian_get_hr->proc~utility_frac_to_cart proc~utility_inverse_mat utility_inverse_mat proc~hamiltonian_get_hr->proc~utility_inverse_mat proc~hamiltonian_wigner_seitz hamiltonian_wigner_seitz proc~hamiltonian_setup->proc~hamiltonian_wigner_seitz proc~hamiltonian_setup->proc~set_error_alloc proc~hamiltonian_write_hr->proc~io_stopwatch_start proc~hamiltonian_write_hr->proc~io_stopwatch_stop proc~io_date io_date proc~hamiltonian_write_hr->proc~io_date proc~set_error_file set_error_file proc~hamiltonian_write_hr->proc~set_error_file proc~set_error_dealloc->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_dealloc->proc~set_base_error proc~tran_bulk->proc~io_stopwatch_start proc~tran_bulk->proc~io_stopwatch_stop proc~tran_bulk->proc~set_error_dealloc proc~tran_bulk->proc~io_date proc~tran_bulk->proc~set_error_alloc proc~tran_green tran_green proc~tran_bulk->proc~tran_green proc~tran_read_htx tran_read_htX proc~tran_bulk->proc~tran_read_htx proc~tran_transfer tran_transfer proc~tran_bulk->proc~tran_transfer zgemm zgemm proc~tran_bulk->zgemm proc~tran_cut_hr_one_dim->proc~io_stopwatch_start proc~tran_cut_hr_one_dim->proc~io_stopwatch_stop proc~tran_find_integral_signatures->proc~io_stopwatch_start proc~tran_find_integral_signatures->proc~io_stopwatch_stop proc~tran_find_integral_signatures->proc~set_error_dealloc proc~tran_find_integral_signatures->proc~set_error_alloc proc~tran_find_integral_signatures->proc~set_error_file proc~tran_get_ht->proc~io_stopwatch_start proc~tran_get_ht->proc~io_stopwatch_stop proc~tran_get_ht->proc~io_date proc~tran_get_ht->proc~set_error_alloc proc~set_error_fatal set_error_fatal proc~tran_get_ht->proc~set_error_fatal proc~tran_lcr->proc~io_stopwatch_start proc~tran_lcr->proc~io_stopwatch_stop proc~tran_lcr->proc~set_error_dealloc proc~tran_lcr->proc~io_date proc~tran_lcr->proc~set_error_alloc proc~tran_lcr->proc~set_error_fatal proc~tran_lcr->proc~tran_green proc~tran_read_htc tran_read_htC proc~tran_lcr->proc~tran_read_htc proc~tran_lcr->proc~tran_read_htx proc~tran_read_htxy tran_read_htXY proc~tran_lcr->proc~tran_read_htxy proc~tran_lcr->proc~tran_transfer zgbsv zgbsv proc~tran_lcr->zgbsv proc~tran_lcr->zgemm proc~tran_lcr_2c2_build_ham->proc~io_stopwatch_start proc~tran_lcr_2c2_build_ham->proc~io_stopwatch_stop proc~tran_lcr_2c2_build_ham->proc~set_error_dealloc proc~tran_lcr_2c2_build_ham->proc~tran_cut_hr_one_dim proc~tran_lcr_2c2_build_ham->proc~tran_reduce_hr proc~tran_lcr_2c2_build_ham->proc~io_date proc~tran_lcr_2c2_build_ham->proc~set_error_alloc proc~tran_lcr_2c2_build_ham->proc~set_error_fatal proc~tran_lcr_2c2_sort->proc~io_stopwatch_start proc~tran_lcr_2c2_sort->proc~io_stopwatch_stop proc~tran_lcr_2c2_sort->proc~set_error_dealloc proc~tran_lcr_2c2_sort->proc~tran_cut_hr_one_dim proc~tran_lcr_2c2_sort->proc~tran_reduce_hr proc~tran_lcr_2c2_sort->proc~tran_write_xyz proc~check_and_sort_similar_centres check_and_sort_similar_centres proc~tran_lcr_2c2_sort->proc~check_and_sort_similar_centres proc~group group proc~tran_lcr_2c2_sort->proc~group proc~master_sort_and_group master_sort_and_group proc~tran_lcr_2c2_sort->proc~master_sort_and_group proc~tran_lcr_2c2_sort->proc~set_error_alloc proc~tran_lcr_2c2_sort->proc~set_error_fatal proc~sort sort proc~tran_lcr_2c2_sort->proc~sort proc~tran_parity_enforce->proc~io_stopwatch_start proc~tran_parity_enforce->proc~io_stopwatch_stop proc~tran_reduce_hr->proc~io_stopwatch_start proc~tran_reduce_hr->proc~io_stopwatch_stop proc~tran_reduce_hr->proc~set_error_alloc proc~tran_reduce_hr->proc~set_error_fatal proc~tran_write_xyz->proc~io_date proc~check_and_sort_similar_centres->proc~io_stopwatch_start proc~check_and_sort_similar_centres->proc~io_stopwatch_stop proc~check_and_sort_similar_centres->proc~set_error_dealloc proc~check_and_sort_similar_centres->proc~tran_write_xyz proc~check_and_sort_similar_centres->proc~set_error_alloc proc~check_and_sort_similar_centres->proc~set_error_fatal proc~group->proc~set_error_dealloc proc~group->proc~set_error_alloc proc~hamiltonian_wigner_seitz->proc~io_stopwatch_start proc~hamiltonian_wigner_seitz->proc~io_stopwatch_stop proc~hamiltonian_wigner_seitz->proc~set_error_dealloc proc~hamiltonian_wigner_seitz->proc~set_error_alloc proc~hamiltonian_wigner_seitz->proc~set_error_fatal proc~utility_metric utility_metric proc~hamiltonian_wigner_seitz->proc~utility_metric proc~master_sort_and_group->proc~io_stopwatch_start proc~master_sort_and_group->proc~io_stopwatch_stop proc~master_sort_and_group->proc~set_error_dealloc proc~master_sort_and_group->proc~group proc~master_sort_and_group->proc~set_error_alloc proc~master_sort_and_group->proc~sort proc~set_error_alloc->proc~comms_sync_error proc~set_error_alloc->proc~set_base_error proc~set_error_fatal->proc~comms_sync_error proc~set_error_fatal->proc~set_base_error proc~set_error_file->proc~comms_sync_error proc~set_error_file->proc~set_base_error proc~tran_green->proc~set_error_dealloc proc~tran_green->proc~set_error_alloc proc~tran_green->proc~set_error_fatal proc~tran_green->zgemm zgesv zgesv proc~tran_green->zgesv proc~tran_read_htc->proc~set_error_file proc~tran_read_htx->proc~set_error_file proc~tran_read_htxy->proc~set_error_file proc~tran_transfer->proc~set_error_dealloc proc~tran_transfer->proc~set_error_alloc proc~tran_transfer->proc~set_error_fatal proc~tran_transfer->zgemm proc~set_error_unconv set_error_unconv proc~tran_transfer->proc~set_error_unconv zaxpy zaxpy proc~tran_transfer->zaxpy zcopy zcopy proc~tran_transfer->zcopy proc~tran_transfer->zgesv proc~utility_inv3 utility_inv3 proc~utility_inverse_mat->proc~utility_inv3 proc~set_error_unconv->proc~comms_sync_error proc~set_error_unconv->proc~set_base_error

Called by

proc~~w90_transport~~CalledByGraph proc~w90_transport w90_transport program~wannier wannier program~wannier->proc~w90_transport

Source Code

  subroutine w90_transport(common_data, istdout, istderr, ierr)
    !! performs a variety of transport calculations

    use w90_comms, only: mpirank, comms_sync_error
    use w90_error_base, only: w90_error_type
    use w90_transport_mod, only: tran_main

    implicit none

    ! arguments
    integer, intent(in) :: istdout, istderr
    integer, intent(out) :: ierr
    type(lib_common_type), intent(inout) :: common_data ! because of ham_logical

    ! local variables
    type(w90_error_type), allocatable :: error

    ierr = 0

    ! fixme(jj) what are our preconditions?

    ! currently tran_main is entirely serial
    if (mpirank(common_data%comm) == 0) then
      call tran_main(common_data%atom_data, common_data%dis_manifold, &
                     common_data%fermi_energy_list, common_data%ham_logical, common_data%kpt_latt, &
                     common_data%output_file, common_data%real_space_ham, common_data%tran, &
                     common_data%print_output, common_data%wannier_data, common_data%ws_region, &
                     common_data%w90_calculation, common_data%ham_k, common_data%ham_r, &
                     common_data%u_matrix, common_data%u_matrix_opt, common_data%eigval, &
                     common_data%real_lattice, common_data%wannier_centres_translated, &
                     common_data%irvec, common_data%mp_grid, common_data%ndegen, &
                     common_data%shift_vec, common_data%nrpts, common_data%num_bands, &
                     common_data%num_kpts, common_data%num_wann, common_data%rpt_origin, &
                     common_data%band_plot%mode, common_data%have_disentangled, &
                     common_data%lsitesymmetry, common_data%seedname, istdout, common_data%timer, &
                     error, common_data%comm)
    end if
    call comms_sync_error(common_data%comm, error, 0) ! this is necessary after root's excursion alone
    if (allocated(error)) then
      call prterr(error, ierr, istdout, istderr, common_data%comm)
      return
    end if
  end subroutine w90_transport