utility_cart_to_frac Subroutine

public subroutine utility_cart_to_frac(cart, frac, inv_lat)

Convert from Cartesian to fractional coordinates

Arguments

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

Called by

proc~~utility_cart_to_frac~~CalledByGraph proc~utility_cart_to_frac utility_cart_to_frac proc~hamiltonian_get_hr hamiltonian_get_hr proc~hamiltonian_get_hr->proc~utility_cart_to_frac proc~kmesh_get kmesh_get proc~kmesh_get->proc~utility_cart_to_frac proc~plot_wannier plot_wannier proc~plot_wannier->proc~utility_cart_to_frac proc~pw90common_fourier_r_to_k_new_second_d_tb_conv pw90common_fourier_R_to_k_new_second_d_TB_conv proc~pw90common_fourier_r_to_k_new_second_d_tb_conv->proc~utility_cart_to_frac proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv pw90common_fourier_R_to_k_vec_dadb_TB_conv proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv->proc~utility_cart_to_frac proc~r_wz_sc R_wz_sc proc~r_wz_sc->proc~utility_cart_to_frac proc~readwrite_get_atoms readwrite_get_atoms proc~readwrite_get_atoms->proc~utility_cart_to_frac proc~utility_translate_home utility_translate_home proc~utility_translate_home->proc~utility_cart_to_frac proc~w90_postw90_readwrite_write w90_postw90_readwrite_write proc~w90_postw90_readwrite_write->proc~utility_cart_to_frac proc~w90_readwrite_get_projections w90_readwrite_get_projections proc~w90_readwrite_get_projections->proc~utility_cart_to_frac proc~w90_readwrite_read_atoms w90_readwrite_read_atoms proc~w90_readwrite_read_atoms->proc~utility_cart_to_frac proc~w90_readwrite_read_atoms->proc~readwrite_get_atoms proc~w90_wannier90_readwrite_write w90_wannier90_readwrite_write proc~w90_wannier90_readwrite_write->proc~utility_cart_to_frac proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv proc~plot_main plot_main proc~plot_main->proc~hamiltonian_get_hr proc~plot_main->proc~plot_wannier 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~ws_translate_dist ws_translate_dist proc~plot_main->proc~ws_translate_dist proc~plot_interpolate_bands plot_interpolate_bands proc~plot_main->proc~plot_interpolate_bands proc~plot_write_vdw_data->proc~utility_translate_home proc~plot_write_xyz->proc~utility_translate_home 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_postw90_readwrite_read w90_postw90_readwrite_read proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_atoms proc~w90_print_info~2 w90_print_info proc~w90_print_info~2->proc~w90_wannier90_readwrite_write proc~w90_wannier90_readwrite_read_projections w90_wannier90_readwrite_read_projections proc~w90_wannier90_readwrite_read_projections->proc~w90_readwrite_get_projections proc~w90_wannier90_readwrite_read_special w90_wannier90_readwrite_read_special proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_atoms proc~w90_wannier90_readwrite_read_special->proc~w90_wannier90_readwrite_read_projections proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~pw90common_fourier_r_to_k_new_second_d_tb_conv proc~ws_translate_dist->proc~r_wz_sc program~postw90 postw90 program~postw90->proc~kmesh_get program~postw90->proc~w90_postw90_readwrite_write program~postw90->proc~w90_postw90_readwrite_read proc~berry_main berry_main program~postw90->proc~berry_main proc~pw90common_wanint_setup pw90common_wanint_setup program~postw90->proc~pw90common_wanint_setup proc~berry_main->proc~berry_get_sc_klist proc~input_reader_special input_reader_special proc~input_reader_special->proc~w90_wannier90_readwrite_read_special proc~plot_interpolate_bands->proc~ws_translate_dist proc~pw90common_wanint_setup->proc~ws_translate_dist 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_input_setopt w90_input_setopt proc~w90_input_setopt->proc~w90_wannier90_readwrite_read_special proc~w90_plot w90_plot proc~w90_plot->proc~plot_main 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~write_kmesh write_kmesh proc~write_kmesh->proc~w90_create_kmesh program~wannier wannier program~wannier->proc~w90_print_info~2 program~wannier->proc~input_reader_special program~wannier->proc~w90_get_nn~2 program~wannier->proc~w90_plot program~wannier->proc~w90_transport program~wannier->proc~write_kmesh 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_setopt_f w90_input_setopt_f proc~w90_input_setopt_f->proc~w90_input_setopt

Source Code

  subroutine utility_cart_to_frac(cart, frac, inv_lat)
    !================================================!
    !
    !!  Convert from Cartesian to fractional coordinates
    !
    !================================================

    implicit none

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

    integer :: i

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

    return

  end subroutine utility_cart_to_frac