10442
10443
10444
10445
10446
10447
10448
10449 INTEGER IDUMM
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486 REAL DIVFAC, POW16
10487 parameter( divfac = 2.147483648e+9,
10488 $ pow16 = 6.5536e+4 )
10489
10490
10491 INTEGER J( 2 )
10492
10493
10495
10496
10497 INTRINSIC real
10498
10499
10500 INTEGER IACS( 4 ), IRAND( 2 )
10501 COMMON /rancom/ irand, iacs
10502
10503
10504 SAVE /rancom/
10505
10506
10507
10508 pb_sran = ( real( irand( 1 ) ) + pow16 * real( irand( 2 ) ) ) /
10509 $ divfac
10510
10511 CALL pb_lmul( irand, iacs, j )
10512 CALL pb_ladd( j, iacs( 3 ), irand )
10513
10514 RETURN
10515
10516
10517
subroutine pb_ladd(j, k, i)
subroutine pb_lmul(k, j, i)
real function pb_sran(idumm)