pf_random_at Interface

public interface pf_random_at

One uniform real64 in [0, 1): value draw (default 1) of stream i under seed.

i is integer(int32) or integer(int64); the two give identical values, because an int32 stream sign-extends before it reaches the counter. seed and draw are always integer(int64), so an explicit draw literal is written 3_int64.


Module Procedures

private pure elemental function pf_random_at_i32(seed, i, draw) result(r)

pf_random_at for an integer(int32) stream index.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: seed

the stream family's seed

integer(kind=int32), intent(in) :: i

stream index; sign-extends, so any value is valid

integer(kind=int64), intent(in), optional :: draw

1-based value index; absent means 1

Return Value real(kind=real64)

a uniform draw in [0, 1)

private pure elemental function pf_random_at_i64(seed, i, draw) result(r)

pf_random_at for an integer(int64) stream index.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: seed

the stream family's seed

integer(kind=int64), intent(in) :: i

stream index; every value is valid, negatives included

integer(kind=int64), intent(in), optional :: draw

1-based value index; absent means 1

Return Value real(kind=real64)

a uniform draw in [0, 1)