da_random_seed.inc
References to this file elsewhere.
1 subroutine da_random_seed
2
3 !-----------------------------------------------------------------------
4 ! Purpose: TBD
5 !-----------------------------------------------------------------------
6
7 implicit none
8
9 integer :: seed_size
10 integer, allocatable :: seed_array(:)
11
12 !----------------------------------------------------------------------------
13 ! Check that right seed_size is being used:
14 !----------------------------------------------------------------------------
15
16 call random_seed(size=seed_size) ! Get size of seed array.
17 allocate(seed_array(1:seed_size))
18 seed_array(1:seed_size) = 0
19
20 if (put_rand_seed) then ! Manually set random seed.
21 if (seed_size /= 2) then
22 write(unit=stdout,fmt='(a)') &
23 ' Warning: only setting first two values of seed_array'
24 end if
25
26 seed_array(1) = seed_array1
27 seed_array(2) = seed_array2
28 write(unit=stdout,fmt='(a,i16)')' Setting seed_array(1) = ', seed_array1
29 write(unit=stdout,fmt='(a,i16)')' Setting seed_array(2) = ', seed_array2
30 call random_seed(put=seed_array(1:seed_size)) ! Set random seed.
31 else ! Random seed set "randomly"
32 call random_seed
33 call random_seed(get=seed_array(1:seed_size))
34 write(unit=stdout,fmt='(a,10i16)')' Random number seed array = ', seed_array
35 end if
36
37 deallocate(seed_array)
38
39 end subroutine da_random_seed
40
41