@@ -8,16 +8,25 @@ PROGRAM boundaries_test
88
99DOUBLE PRECISION , ALLOCATABLE , DIMENSION (:,:,:) :: Q, Qall
1010DOUBLE PRECISION :: dx, dy, dz, x, y, z
11- INTEGER :: Nx, Ny, Nz, seed, time1(8 ), i, j, k
12-
13- CALL DATE_AND_TIME (values= time1)
14- seed = 1000 * time1(7 )+ time1(8 )
15- CALL SRAND(seed)
11+ INTEGER :: Nx, Ny, Nz, seed_size, i, j, k, clock
12+ INTEGER , PARAMETER :: N_min = 25 , N_max = 256
13+ INTEGER , ALLOCATABLE , DIMENSION (:) :: seed
14+ REAL random_real
15+
16+ CALL RANDOM_SEED (size = seed_size)
17+ ALLOCATE (seed(seed_size))
18+ CALL SYSTEM_CLOCK (count = clock)
19+ seed = clock + 37 * (/ (i - 1 , i = 1 , seed_size) / )
20+ CALL RANDOM_SEED (put = seed)
21+ DEALLOCATE (seed)
1622
1723! Create random integer values for Nx, Ny, Nz
18- Nx = 25 + INT (RAND()* 256 )
19- Ny = 25 + INT (RAND()* 256 )
20- Nz = 25 + INT (RAND()* 256 )
24+ CALL RANDOM_NUMBER (random_real)
25+ Nx = N_min + FLOOR ( (N_max+1 - N_min)* random_real )
26+ CALL RANDOM_NUMBER (random_real)
27+ Ny = N_min + FLOOR ( (N_max+1 - N_min)* random_real )
28+ CALL RANDOM_NUMBER (random_real)
29+ Nz = N_min + FLOOR ( (N_max+1 - N_min)* random_real )
2130
2231dx = 1.0 / DBLE (Nx)
2332dy = 1.0 / DBLE (Ny)
@@ -106,4 +115,4 @@ PROGRAM boundaries_test
106115
107116PRINT * , ' \x1B[32m[0] -- Successful: Ghost cell values generated by boundaries module match directly inserted values.\x1B[0m'
108117
109- END PROGRAM boundaries_test
118+ END PROGRAM boundaries_test
0 commit comments