utility_frac_to_cart Subroutine

public subroutine utility_frac_to_cart(frac, cart, real_lat)

Convert from fractional to Cartesian coordinates

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: frac(3)
real(kind=dp), intent(out) :: cart(3)
real(kind=dp), intent(in) :: real_lat(3,3)

Called by

proc~~utility_frac_to_cart~~CalledByGraph proc~utility_frac_to_cart utility_frac_to_cart proc~hamiltonian_get_hr hamiltonian_get_hr proc~hamiltonian_get_hr->proc~utility_frac_to_cart proc~kmesh_get kmesh_get proc~kmesh_get->proc~utility_frac_to_cart proc~plot_wannier plot_wannier proc~plot_wannier->proc~utility_frac_to_cart proc~r_wz_sc R_wz_sc proc~r_wz_sc->proc~utility_frac_to_cart proc~readwrite_get_atoms readwrite_get_atoms proc~readwrite_get_atoms->proc~utility_frac_to_cart proc~utility_translate_home utility_translate_home proc~utility_translate_home->proc~utility_frac_to_cart proc~w90_readwrite_get_centre_constraints w90_readwrite_get_centre_constraints proc~w90_readwrite_get_centre_constraints->proc~utility_frac_to_cart proc~w90_wannier90_readwrite_write w90_wannier90_readwrite_write proc~w90_wannier90_readwrite_write->proc~utility_frac_to_cart proc~wann_main wann_main proc~wann_main->proc~utility_frac_to_cart proc~wann_main_gamma wann_main_gamma proc~wann_main_gamma->proc~utility_frac_to_cart proc~ws_translate_dist ws_translate_dist proc~ws_translate_dist->proc~utility_frac_to_cart proc~ws_translate_dist->proc~r_wz_sc proc~plot_interpolate_bands plot_interpolate_bands proc~plot_interpolate_bands->proc~ws_translate_dist proc~plot_main plot_main proc~plot_main->proc~hamiltonian_get_hr proc~plot_main->proc~plot_wannier proc~plot_main->proc~ws_translate_dist proc~plot_main->proc~plot_interpolate_bands proc~plot_write_vdw_data plot_write_vdw_data proc~plot_main->proc~plot_write_vdw_data proc~plot_write_xyz plot_write_xyz proc~plot_main->proc~plot_write_xyz proc~plot_write_vdw_data->proc~utility_translate_home proc~plot_write_xyz->proc~utility_translate_home proc~pw90common_wanint_setup pw90common_wanint_setup proc~pw90common_wanint_setup->proc~ws_translate_dist proc~tran_main tran_main proc~tran_main->proc~hamiltonian_get_hr proc~w90_create_kmesh w90_create_kmesh proc~w90_create_kmesh->proc~kmesh_get proc~w90_print_info~2 w90_print_info proc~w90_print_info~2->proc~w90_wannier90_readwrite_write proc~w90_readwrite_read_atoms w90_readwrite_read_atoms proc~w90_readwrite_read_atoms->proc~readwrite_get_atoms proc~w90_wannier90_readwrite_read_constrained_centres w90_wannier90_readwrite_read_constrained_centres proc~w90_wannier90_readwrite_read_constrained_centres->proc~w90_readwrite_get_centre_constraints proc~w90_wannierise~2 w90_wannierise proc~w90_wannierise~2->proc~wann_main proc~w90_wannierise~2->proc~wann_main_gamma program~postw90 postw90 program~postw90->proc~kmesh_get program~postw90->proc~pw90common_wanint_setup proc~w90_postw90_readwrite_read w90_postw90_readwrite_read program~postw90->proc~w90_postw90_readwrite_read proc~w90_get_gkpb~2 w90_get_gkpb proc~w90_get_gkpb~2->proc~w90_create_kmesh proc~w90_get_nnkp~2 w90_get_nnkp proc~w90_get_nnkp~2->proc~w90_create_kmesh proc~w90_get_nn~2 w90_get_nn proc~w90_get_nn~2->proc~w90_create_kmesh proc~w90_plot w90_plot proc~w90_plot->proc~plot_main proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_atoms proc~w90_print_info w90_print_info proc~w90_print_info->proc~w90_print_info~2 proc~w90_transport w90_transport proc~w90_transport->proc~tran_main proc~w90_wannier90_readwrite_read w90_wannier90_readwrite_read proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_constrained_centres proc~w90_wannier90_readwrite_read_special w90_wannier90_readwrite_read_special proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_atoms proc~w90_wannierise w90_wannierise proc~w90_wannierise->proc~w90_wannierise~2 proc~write_kmesh write_kmesh proc~write_kmesh->proc~w90_create_kmesh program~wannier wannier program~wannier->proc~w90_print_info~2 program~wannier->proc~w90_wannierise~2 program~wannier->proc~w90_get_nn~2 program~wannier->proc~w90_plot program~wannier->proc~w90_transport program~wannier->proc~write_kmesh proc~input_reader_special input_reader_special program~wannier->proc~input_reader_special proc~w90_input_reader~2 w90_input_reader program~wannier->proc~w90_input_reader~2 proc~input_reader_special->proc~w90_wannier90_readwrite_read_special proc~w90_get_gkpb w90_get_gkpb proc~w90_get_gkpb->proc~w90_get_gkpb~2 proc~w90_get_nn w90_get_nn proc~w90_get_nn->proc~w90_get_nn~2 proc~w90_get_nnkp w90_get_nnkp proc~w90_get_nnkp->proc~w90_get_nnkp~2 proc~w90_input_reader~2->proc~w90_wannier90_readwrite_read proc~w90_input_setopt w90_input_setopt proc~w90_input_setopt->proc~w90_wannier90_readwrite_read proc~w90_input_setopt->proc~w90_wannier90_readwrite_read_special proc~w90_input_reader w90_input_reader proc~w90_input_reader->proc~w90_input_reader~2 proc~w90_input_setopt_f w90_input_setopt_f proc~w90_input_setopt_f->proc~w90_input_setopt

Source Code

  subroutine utility_frac_to_cart(frac, cart, real_lat)
    !================================================!
    !
    !!  Convert from fractional to Cartesian coordinates
    !
    !================================================
    implicit none

    real(kind=dp), intent(in)  :: real_lat(3, 3)
    real(kind=dp), intent(in)  :: frac(3)
    real(kind=dp), intent(out) :: cart(3)

    integer :: i

    do i = 1, 3
      cart(i) = real_lat(1, i)*frac(1) + real_lat(2, i)*frac(2) + real_lat(3, i)*frac(3)
    end do

    return

  end subroutine utility_frac_to_cart