apply_mirror Function

public function apply_mirror(in_orbs, mirror_axis) result(out_orbs)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: in_orbs(nBasis/2)
character(len=1), intent(in) :: mirror_axis

Return Value integer, (nBasis/2)


Contents

Source Code


Source Code

    function apply_mirror(in_orbs, mirror_axis) result(out_orbs)
        ! function to mirror the k- or r- vectors along a specified axis
        integer, intent(in) :: in_orbs(nBasis / 2)
        character(1), intent(in) :: mirror_axis
        integer :: out_orbs(nBasis / 2)
#ifdef DEBUG_
        character(*), parameter :: this_routine = "apply_mirror"
#endif
        integer :: i

        if (.not. t_symmetry_mirror .or. mirror_axis == '0') then
            out_orbs = in_orbs
            return
        end if

        do i = 1, nBasis / 2
            out_orbs(i) = mirror(in_orbs(i), mirror_axis)
        end do

    end function apply_mirror