pf_random_key Interface

public interface pf_random_key

Derives an independent seed from a seed and a label, so one seed can fan out into families.

label is integer(int32) or integer(int64); seed and the result are integer(int64). A derived key IS a seed, so derivations compose by nesting.


Module Procedures

private pure elemental function pf_random_key_i32(seed, label) result(r)

pf_random_key for an integer(int32) label.

Arguments

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

the seed to derive from

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

which derived family; sign-extends

Return Value integer(kind=int64)

an independent seed

private pure elemental function pf_random_key_i64(seed, label) result(r)

pf_random_key for an integer(int64) label.

Arguments

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

the seed to derive from

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

which derived family

Return Value integer(kind=int64)

an independent seed