2628
2629
2630
2631
2632
2633
2634
2635 INTEGER IDUMM
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672 REAL DIVFAC, POW16
2673 parameter( divfac = 2.147483648e+9,
2674 $ pow16 = 6.5536e+4 )
2675
2676
2677 INTEGER J( 2 )
2678
2679
2681
2682
2683 INTRINSIC real
2684
2685
2686 INTEGER IACS( 4 ), IRAND( 2 )
2687 COMMON /rancom/ irand, iacs
2688
2689
2690 SAVE /rancom/
2691
2692
2693
2694 pb_sran = ( real( irand( 1 ) ) + pow16 * real( irand( 2 ) ) ) /
2695 $ divfac
2696
2697 CALL pb_lmul( irand, iacs, j )
2698 CALL pb_ladd( j, iacs( 3 ), irand )
2699
2700 RETURN
2701
2702
2703
subroutine pb_ladd(j, k, i)
subroutine pb_lmul(k, j, i)
real function pb_sran(idumm)