pf_random_fill_exp_portable Interface

public interface pf_random_fill_exp_portable

pf_random_fill_exp through the frozen logarithm; element k is exactly pf_random_exp_portable_at(seed, i, draw+k-1).

Same arguments and same preconditions as pf_random_fill_exp, and the same reasons for taking no threads=. Not pure, for the reason pf_random_exp_portable_at gives.


Module Procedures

private subroutine pf_random_fill_exp_portable_i32(seed, i, v, draw)

pf_random_fill_exp_portable from 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

real(kind=real64), intent(out) :: v(:)

filled with values draw .. draw+size(v)-1

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

1-based starting value index; absent means 1

private subroutine pf_random_fill_exp_portable_i64(seed, i, v, draw)

pf_random_fill_exp_portable from 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

real(kind=real64), intent(out) :: v(:)

filled with values draw .. draw+size(v)-1

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

1-based starting value index; absent means 1