2632
2633
2634
2635
2636
2637
2638
2639 INTEGER IDUMM
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
2673
2674
2675
2676 DOUBLE PRECISION DIVFAC, POW16
2677 parameter( divfac = 2.147483648d+9,
2678 $ pow16 = 6.5536d+4 )
2679
2680
2681 INTEGER J( 2 )
2682
2683
2685
2686
2687 INTRINSIC dble
2688
2689
2690 INTEGER IACS( 4 ), IRAND( 2 )
2691 COMMON /rancom/ irand, iacs
2692
2693
2694 SAVE /rancom/
2695
2696
2697
2698 pb_dran = ( dble( irand( 1 ) ) + pow16 * dble( irand( 2 ) ) ) /
2699 $ divfac
2700
2701 CALL pb_lmul( irand, iacs, j )
2702 CALL pb_ladd( j, iacs( 3 ), irand )
2703
2704 RETURN
2705
2706
2707
subroutine pb_ladd(j, k, i)
subroutine pb_lmul(k, j, i)
double precision function pb_dran(idumm)