Skip to content

Commit 71ea284

Browse files
authored
Add files via upload
Random number generation corrected
1 parent e8f1396 commit 71ea284

File tree

1 file changed

+35
-22
lines changed

1 file changed

+35
-22
lines changed

source/SEM.for

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
IMPLICIT NONE
1010
DOUBLE PRECISION :: VOL,Ly,Lz,ENNE,XMIN,XMAX,YMIN,TI
1111
DOUBLE PRECISION :: YMAX,ZMIN,ZMAX,PI,U0,HU,RIZ,RDIVz,UAVE(3)
12-
DOUBLE PRECISION :: SIGMA_VALUE,NE_SEM,MAXVSEM,MINVSEM
12+
DOUBLE PRECISION :: SIGMA_VALUE,NE_SEM,MAXVSEM,MINVSEM,rrandom
1313
INTEGER :: DIVY,DIVZ,IY,IZ,II,N,I,J,M,IT,IGLOBAL
1414
INTEGER,allocatable,dimension(:)::lsy,lsz,ley,lez
1515
!THE BOX DIMENSIONS ARE DIFINED AS [XLENGHT] * [Ly] * [Lz]
@@ -111,17 +111,22 @@
111111

112112
UAVE = UAVE / (DIVY * DIVZ)
113113
VOL = (XMAX - XMIN) * (YMAX - YMIN) * (ZMAX - ZMIN)
114+
115+
call RANDOM_SEED()
114116
!GENERATION OF THE EDDY LOCATION INSIDE THE BOX AND INITIALIZATION OF THE [Ksem] VECTOR
115117
DO II=1,N
116-
X_EDDY(1,II) = (XMAX - XMIN) * RAND() + XMIN
117-
X_EDDY(2,II) = (YMAX - YMIN) * RAND() + YMIN
118-
X_EDDY(3,II) = (ZMAX - ZMIN) * RAND() + ZMIN
118+
119+
call RANDOM_NUMBER(rrandom)
120+
X_EDDY(1,II) = (XMAX - XMIN) * rrandom + XMIN
121+
X_EDDY(2,II) = (YMAX - YMIN) * rrandom + YMIN
122+
X_EDDY(3,II) = (ZMAX - ZMIN) * rrandom + ZMIN
119123
Ksem(II) = 0
120124
!INITIALIZATION OF THE INTENSITIES. FOR EVERY DIRECTION THE AVERAGE INTENSITY VALUE IS CALCULATED AND
121125
!IT IS FORCED TO BE LOWER THAN THE [VLIM] VALUE
122-
EPSILO(1,II) = (RAND()*2.0D0 - 1.0D0)
123-
EPSILO(2,II) = (RAND()*2.0D0 - 1.0D0)
124-
EPSILO(3,II) = (RAND()*2.0D0 - 1.0D0)
126+
call RANDOM_NUMBER(rrandom)
127+
EPSILO(1,II) = (rrandom*2.0D0 - 1.0D0)
128+
EPSILO(2,II) = (rrandom*2.0D0 - 1.0D0)
129+
EPSILO(3,II) = (rrandom*2.0D0 - 1.0D0)
125130
END DO
126131
!INITIALIZATION OF THE [R(3,3)] MATRIX WITH THE CHOLENSKY DECOMPOSITION
127132
!OF THE REYNOLDS STRESS TENSOR
@@ -196,42 +201,50 @@
196201
!THE SEM BOX DEFINED EARLIER
197202
!WHEN A EDDY IS RE-GENERATE THE Ksem(I) FACTOR ASSUME THE 1 VALUE. THIS VALUE IS USED LATER TO
198203
!GENERATE A NEW INTENSITY FOR THE NEW EDDY
204+
199205
IF (X_EDDY(1,II) > XMAX) THEN
206+
call RANDOM_NUMBER(rrandom)
200207
X_EDDY(1,II) = XMIN
201-
X_EDDY(2,II) = (YMAX - YMIN) * RAND() + YMIN
202-
X_EDDY(3,II) = (ZMAX - ZMIN) * RAND() + ZMIN
208+
X_EDDY(2,II) = (YMAX - YMIN) * rrandom + YMIN
209+
X_EDDY(3,II) = (ZMAX - ZMIN) * rrandom + ZMIN
203210
Ksem(II) = 1
204211
ELSE IF (X_EDDY(1,II) < XMIN) THEN
212+
call RANDOM_NUMBER(rrandom)
205213
X_EDDY(1,II) = XMAX
206-
X_EDDY(2,II) = (YMAX - YMIN) * RAND() + ZMIN
207-
X_EDDY(3,II) = (ZMAX - ZMIN) * RAND() + ZMIN
214+
X_EDDY(2,II) = (YMAX - YMIN) * rrandom + ZMIN
215+
X_EDDY(3,II) = (ZMAX - ZMIN) * rrandom + ZMIN
208216
Ksem(II) = 1
209217
ELSE IF (X_EDDY(2,II) > YMAX) THEN
210-
X_EDDY(1,II) = (XMAX - XMIN) * RAND() + XMIN
218+
call RANDOM_NUMBER(rrandom)
219+
X_EDDY(1,II) = (XMAX - XMIN) * rrandom + XMIN
211220
X_EDDY(2,II) = YMIN
212-
X_EDDY(3,II) = (ZMAX - ZMIN) * RAND() + ZMIN
221+
X_EDDY(3,II) = (ZMAX - ZMIN) * rrandom + ZMIN
213222
Ksem(II) = 1
214223
ELSE IF (X_EDDY(2,II) < YMIN) THEN
215-
X_EDDY(1,II) = (XMAX - XMIN) * RAND() + XMIN
224+
call RANDOM_NUMBER(rrandom)
225+
X_EDDY(1,II) = (XMAX - XMIN) * rrandom + XMIN
216226
X_EDDY(2,II) = YMAX
217-
X_EDDY(3,II) = (ZMAX - ZMIN) * RAND() + ZMIN
227+
X_EDDY(3,II) = (ZMAX - ZMIN) * rrandom + ZMIN
218228
Ksem(II) = 1
219229
ELSE IF (X_EDDY(3,II) > ZMAX) THEN
220-
X_EDDY(1,II) = (XMAX - XMIN) * RAND() + XMIN
221-
X_EDDY(2,II) = (YMAX - YMIN) * RAND() + ZMIN
230+
call RANDOM_NUMBER(rrandom)
231+
X_EDDY(1,II) = (XMAX - XMIN) * rrandom + XMIN
232+
X_EDDY(2,II) = (YMAX - YMIN) * rrandom + ZMIN
222233
X_EDDY(3,II) = ZMIN
223234
Ksem(II) = 1
224235
ELSE IF (X_EDDY(3,II) < ZMIN) THEN
225-
X_EDDY(1,II) = (XMAX - XMIN) * RAND() + XMIN
226-
X_EDDY(2,II) = (YMAX - YMIN) * RAND() + ZMIN
236+
call RANDOM_NUMBER(rrandom)
237+
X_EDDY(1,II) = (XMAX - XMIN) * rrandom + XMIN
238+
X_EDDY(2,II) = (YMAX - YMIN) * rrandom + ZMIN
227239
X_EDDY(3,II) = ZMAX
228240
Ksem(II) = 1
229241
END IF
230242
!INTENSITY GENERATION FOR THE RE-CREATED EDDIES. WE ARE USING THE Ksem FACTOR AS EXPLAINED FATOR.
231243
IF (Ksem(II)== 1) THEN
232-
EPSILO(3,II) = (RAND()*2.0D0 - 1.0D0)
233-
EPSILO(2,II) = (RAND()*2.0D0 - 1.0D0)
234-
EPSILO(1,II) = (RAND()*2.0D0 - 1.0D0)
244+
call RANDOM_NUMBER(rrandom)
245+
EPSILO(3,II) = (rrandom*2.0D0 - 1.0D0)
246+
EPSILO(2,II) = (rrandom*2.0D0 - 1.0D0)
247+
EPSILO(1,II) = (rrandom*2.0D0 - 1.0D0)
235248
END IF
236249
Ksem(II) = 0
237250
END DO

0 commit comments

Comments
 (0)