100 USE yomhook
,ONLY : lhook, dr_hook
101 USE parkind1
,ONLY : jprb
115 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iseed
116 INTEGER :: i, iin, iclock
117 REAL(KIND=JPRB) :: zhook_handle
119 IF (lhook) CALL dr_hook(
'MODE_RANDOM_NUMBER:INIT_RANDOM_SEED',0,zhook_handle)
121 CALL random_seed(
size = iin)
124 CALL system_clock(count=iclock)
126 iseed(:) = iclock + 37 * (/ (i - 1, i = 1, iin) /)
128 CALL random_seed(put = iseed)
132 IF (lhook) CALL dr_hook(
'MODE_RANDOM_NUMBER:INIT_RANDOM_SEED',1,zhook_handle)
153 REAL :: zs = 0.449871, zt = -0.386595, za = 0.19600, zb = 0.25472, &
154 zr1 = 0.27597, zr2 = 0.27846, zu, zv, zx, zy, zq
156 REAL(KIND=JPRB) :: zhook_handle
160 IF (lhook) CALL dr_hook(
'MODE_RANDOM_NUMBER:RANDOM_NORMAL',0,zhook_handle)
164 CALL random_number(zu)
165 CALL random_number(zv)
167 zv = 1.7156 * (zv - xhalf)
173 zq = zx**2 + zy*(za*zy - zb*zx)
182 IF (zv**2 < -4.0*log(zu)*zu**2)
EXIT
189 IF (lhook) CALL dr_hook(
'MODE_RANDOM_NUMBER:RANDOM_NORMAL',1,zhook_handle)
real function random_normal()
subroutine init_random_seed()