* G08CDF Example Program Text * Mark 22 Revised. NAG Copyright 2006. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER N1MAX, N2MAX, MSTATE, MSEED PARAMETER (N1MAX=100,N2MAX=50,MSTATE=200,MSEED=1) * .. Local Scalars .. DOUBLE PRECISION D, P, Z INTEGER GENID, IFAIL, LSEED, LSTATE, N1, N2, NTYPE, SUBID * .. Local Arrays .. DOUBLE PRECISION SX(N1MAX), SY(N2MAX), X(N1MAX), Y(N2MAX) INTEGER SEED(MSEED), STATE(MSTATE) * .. External Subroutines .. EXTERNAL G05KFF, G05SQF, G08CDF * .. Executable Statements .. WRITE (NOUT,*) 'G08CDF Example Program Results' * Skip heading in data file READ (NIN,*) READ (NIN,*) N1, N2 WRITE (NOUT,*) IF (N1.LE.N1MAX .AND. N2.LE.N2MAX) THEN IFAIL = 0 * GENID and SUBID identify the base generator GENID = 1 SUBID = 1 * Initialize the seed SEED(1) = 423523 * Initialize the generator to a repeatable sequence LSTATE = MSTATE LSEED = MSEED CALL G05KFF(GENID,SUBID,SEED,LSEED,STATE,LSTATE,IFAIL) * Generate some U(A,B) variates CALL G05SQF(N1,0.0D0,2.0D0,STATE,X,IFAIL) CALL G05SQF(N2,0.25D0,2.25D0,STATE,Y,IFAIL) * READ (NIN,*) NTYPE IFAIL = -1 * CALL G08CDF(N1,X,N2,Y,NTYPE,D,Z,P,SX,SY,IFAIL) * IF (IFAIL.NE.0) WRITE (NOUT,99999) '** IFAIL = ', IFAIL IF (IFAIL.GE.0) THEN WRITE (NOUT,99998) 'Test statistic D = ', D WRITE (NOUT,99998) 'Z statistic = ', Z WRITE (NOUT,99998) 'Tail probability = ', P END IF ELSE WRITE (NOUT,99997) 'N1 or N2 is out of range: N1 = ', N1, + ' and N2 = ', N2 END IF * 99999 FORMAT (1X,A,I5) 99998 FORMAT (1X,A,F8.4) 99997 FORMAT (1X,A,I7,A,I7) END