* G05TDF Example Program Text * Mark 22 Release. NAG Copyright 2006. * .. Parameters .. INTEGER NOUT PARAMETER (NOUT=6) INTEGER NP, MSEED, MSTATE, N, LR PARAMETER (NP=11,MSEED=1,MSTATE=633,N=20,LR=60) * .. Local Scalars .. INTEGER GENID, I, IFAIL, IP1, ITYPE, LSEED, LSTATE, SUBID * .. Local Arrays .. DOUBLE PRECISION P(NP), R(LR) INTEGER SEED(MSEED), STATE(MSTATE), X(N) * .. External Subroutines .. EXTERNAL G05KFF, G05TDF * .. Data statements .. DATA P/0.01D0, 0.02D0, 0.04D0, 0.08D0, 0.2D0, 0.3D0, + 0.2D0, 0.08D0, 0.04D0, 0.02D0, 0.01D0/ * .. Executable Statements .. WRITE (NOUT,*) 'G05TDF Example Program Results' WRITE (NOUT,*) * Set the lowest value for the distribution IP1 = -5 * P is a PDF ITYPE = 1 * Initialize the seed SEED(1) = 1762543 * GENID and SUBID identify the base generator GENID = 1 SUBID = 1 * Initialize the generator to a repeatable sequence LSTATE = MSTATE LSEED = MSEED IFAIL = 1 CALL G05KFF(GENID,SUBID,SEED,LSEED,STATE,LSTATE,IFAIL) IF (IFAIL.NE.0) THEN WRITE (NOUT,99998) IFAIL GO TO 20 END IF * Generate the variates * Choose MODE = 2 IFAIL = 1 CALL G05TDF(2,N,P,NP,IP1,ITYPE,R,LR,STATE,X,IFAIL) IF (IFAIL.NE.0) THEN WRITE (NOUT,99997) IFAIL GO TO 20 END IF * Display the variates WRITE (NOUT,99999) (X(I),I=1,N) * 20 CONTINUE * 99999 FORMAT (1X,I12) 99998 FORMAT (1X,' ** G05KFF returned with IFAIL = ',I5) 99997 FORMAT (1X,' ** G05TDF returned with IFAIL = ',I5) END