utility_recip_lattice_base Subroutine

public subroutine utility_recip_lattice_base(real_lat, recip_lat, volume)

Uses

  • proc~~utility_recip_lattice_base~~UsesGraph proc~utility_recip_lattice_base utility_recip_lattice_base module~w90_constants w90_constants proc~utility_recip_lattice_base->module~w90_constants

Calculates the reciprical lattice vectors and the cell volume

Arguments

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

Calls

proc~~utility_recip_lattice_base~~CallsGraph proc~utility_recip_lattice_base utility_recip_lattice_base proc~utility_inv3 utility_inv3 proc~utility_recip_lattice_base->proc~utility_inv3

Called by

proc~~utility_recip_lattice_base~~CalledByGraph proc~utility_recip_lattice_base utility_recip_lattice_base proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->proc~utility_recip_lattice_base proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->proc~utility_recip_lattice_base proc~berry_get_shc_klist berry_get_shc_klist proc~berry_get_shc_klist->proc~utility_recip_lattice_base proc~calctdfanddos calcTDFandDOS proc~calctdfanddos->proc~utility_recip_lattice_base proc~dis_main dis_main proc~dis_main->proc~utility_recip_lattice_base proc~dos_main dos_main proc~dos_main->proc~utility_recip_lattice_base proc~geninterp_main geninterp_main proc~geninterp_main->proc~utility_recip_lattice_base proc~k_path k_path proc~k_path->proc~utility_recip_lattice_base proc~k_path->proc~berry_get_shc_klist proc~k_slice k_slice proc~k_slice->proc~utility_recip_lattice_base proc~k_slice->proc~berry_get_shc_klist proc~utility_recip_lattice utility_recip_lattice proc~k_slice->proc~utility_recip_lattice proc~kmesh_write kmesh_write proc~kmesh_write->proc~utility_recip_lattice_base proc~plot_main plot_main proc~plot_main->proc~utility_recip_lattice_base proc~plot_wannier plot_wannier 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~plot_wannier->proc~utility_recip_lattice_base proc~utility_recip_lattice->proc~utility_recip_lattice_base proc~utility_translate_home utility_translate_home proc~utility_translate_home->proc~utility_recip_lattice_base proc~w90_postw90_readwrite_write w90_postw90_readwrite_write proc~w90_postw90_readwrite_write->proc~utility_recip_lattice_base proc~w90_wannier90_readwrite_write w90_wannier90_readwrite_write proc~w90_wannier90_readwrite_write->proc~utility_recip_lattice_base proc~w90_wannier90_readwrite_write_chkpt w90_wannier90_readwrite_write_chkpt proc~w90_wannier90_readwrite_write_chkpt->proc~utility_recip_lattice_base proc~berry_main berry_main proc~berry_main->proc~berry_get_kubo_k proc~berry_main->proc~berry_get_sc_klist proc~berry_main->proc~berry_get_shc_klist proc~boltzwann_main boltzwann_main proc~boltzwann_main->proc~calctdfanddos proc~kmesh_get kmesh_get proc~kmesh_get->proc~utility_recip_lattice proc~plot_write_vdw_data->proc~utility_translate_home proc~plot_write_xyz->proc~utility_translate_home proc~w90_disentangle~2 w90_disentangle proc~w90_disentangle~2->proc~dis_main proc~w90_plot w90_plot proc~w90_plot->proc~plot_main proc~w90_postw90_readwrite_read w90_postw90_readwrite_read proc~w90_postw90_readwrite_read->proc~utility_recip_lattice proc~w90_postw90_readwrite_readall w90_postw90_readwrite_readall proc~w90_postw90_readwrite_readall->proc~utility_recip_lattice proc~w90_print_info~2 w90_print_info proc~w90_print_info~2->proc~w90_wannier90_readwrite_write proc~w90_readwrite_read_chkpt_header w90_readwrite_read_chkpt_header proc~w90_readwrite_read_chkpt_header->proc~utility_recip_lattice proc~write_chkpt write_chkpt proc~write_chkpt->proc~w90_wannier90_readwrite_write_chkpt proc~write_kmesh write_kmesh proc~write_kmesh->proc~kmesh_write proc~w90_create_kmesh w90_create_kmesh proc~write_kmesh->proc~w90_create_kmesh program~postw90 postw90 program~postw90->proc~dos_main program~postw90->proc~geninterp_main program~postw90->proc~k_path program~postw90->proc~k_slice program~postw90->proc~w90_postw90_readwrite_write program~postw90->proc~berry_main program~postw90->proc~boltzwann_main program~postw90->proc~kmesh_get program~postw90->proc~w90_postw90_readwrite_read proc~w90_readwrite_read_chkpt w90_readwrite_read_chkpt program~postw90->proc~w90_readwrite_read_chkpt proc~w90_create_kmesh->proc~kmesh_get proc~w90_disentangle w90_disentangle proc~w90_disentangle->proc~w90_disentangle~2 proc~w90_print_info w90_print_info proc~w90_print_info->proc~w90_print_info~2 proc~w90_readwrite_read_chkpt->proc~w90_readwrite_read_chkpt_header program~wannier wannier program~wannier->proc~w90_disentangle~2 program~wannier->proc~w90_plot program~wannier->proc~w90_print_info~2 program~wannier->proc~write_chkpt program~wannier->proc~write_kmesh proc~read_chkpt read_chkpt program~wannier->proc~read_chkpt proc~w90_get_nn~2 w90_get_nn program~wannier->proc~w90_get_nn~2 proc~read_chkpt->proc~w90_readwrite_read_chkpt 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->proc~w90_create_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

Source Code

  subroutine utility_recip_lattice_base(real_lat, recip_lat, volume)
    !================================================!
    !
    !!  Calculates the reciprical lattice vectors and the cell volume
    !
    !================================================

    use w90_constants, only: dp, twopi, eps5

    implicit none
    real(kind=dp), intent(in)  :: real_lat(3, 3)
    real(kind=dp), intent(out) :: recip_lat(3, 3)
    real(kind=dp), intent(out) :: volume

    call utility_inv3(real_lat, recip_lat, volume)

    if (abs(volume) > eps5) then
      recip_lat = twopi*recip_lat/volume
      volume = abs(volume)
    end if

    return

  end subroutine utility_recip_lattice_base