utility_compar Subroutine

public subroutine utility_compar(a, b, ifpos, ifneg)

Uses

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

Compares two vectors

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: a(3)
real(kind=dp), intent(in) :: b(3)
integer, intent(out) :: ifpos
integer, intent(out) :: ifneg

Called by

proc~~utility_compar~~CalledByGraph proc~utility_compar utility_compar proc~get_cc_r get_CC_R proc~get_cc_r->proc~utility_compar proc~kmesh_get kmesh_get proc~kmesh_get->proc~utility_compar proc~berry_main berry_main proc~berry_main->proc~get_cc_r proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~get_cc_r proc~k_path k_path proc~k_path->proc~get_cc_r proc~k_slice k_slice proc~k_slice->proc~get_cc_r proc~w90_create_kmesh w90_create_kmesh proc~w90_create_kmesh->proc~kmesh_get program~postw90 postw90 program~postw90->proc~kmesh_get program~postw90->proc~berry_main program~postw90->proc~gyrotropic_main program~postw90->proc~k_path program~postw90->proc~k_slice 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~write_kmesh write_kmesh proc~write_kmesh->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 program~wannier wannier program~wannier->proc~w90_get_nn~2 program~wannier->proc~write_kmesh

Source Code

  subroutine utility_compar(a, b, ifpos, ifneg)
    !================================================!
    !
    !! Compares two vectors
    !
    !================================================
    use w90_constants, only: eps8

    implicit none

    real(kind=dp), intent(in) :: a(3)
    real(kind=dp), intent(in) :: b(3)
    integer, intent(out) :: ifpos, ifneg

    real(kind=dp) :: rrp, rrm

    rrp = (a(1) - b(1))**2 + (a(2) - b(2))**2 + (a(3) - b(3))**2
    rrm = (a(1) + b(1))**2 + (a(2) + b(2))**2 + (a(3) + b(3))**2
    ifpos = 0
    if (abs(rrp) .lt. eps8) ifpos = 1
    ifneg = 0
    if (abs(rrm) .lt. eps8) ifneg = 1

    return

  end subroutine utility_compar