encode_part_sign Subroutine

public subroutine encode_part_sign(ilut, real_sgn, part_type)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(inout) :: ilut(0:NIfTot)
real(kind=dp), intent(in) :: real_sgn
integer, intent(in) :: part_type

Contents

Source Code


Source Code

    subroutine encode_part_sign(ilut, real_sgn, part_type)

        ! Encode only the real OR imaginary component of the sign for the
        ! walker. Sign argument is now a scalar.
        !
        ! In:    real_sgn  - The new sign component
        !        part_type - Update real/imaginary part. 1 ==> Re, 2 ==> Im
        ! InOut:  ilut     - The bit representation to update

        integer(n_int), intent(inout) :: ilut(0:NIfTot)
        integer, intent(in) :: part_type
        real(dp), intent(in) :: real_sgn
        integer(n_int) :: sgn

        sgn = transfer(real_sgn, sgn)
        iLut(IlutBits%ind_pop + part_type - 1) = sgn

    end subroutine encode_part_sign